Jelajahi Sumber

Merge branch 'ment-Tag' into 'master-copy'

Ment tag

See merge request spfm/spfm-market-front!414
杨壁繁 2 tahun lalu
induk
melakukan
8fb42bba9e
34 mengubah file dengan 60664 tambahan dan 1430 penghapusan
  1. 1 0
      .gitignore
  2. 4 0
      config/excel.env.js
  3. 15 2
      config/index.js
  4. 3 3
      package.json
  5. 1 1
      public/index.html
  6. 22904 0
      public/luckSheetExcel.js
  7. 4151 0
      public/luckysheet.umd.js
  8. 42 0
      public/static/js/luckysheet/demoData/demoFeature.js
  9. 1578 0
      public/static/js/luckysheet/demoData/sheetCell.js
  10. 4918 0
      public/static/js/luckysheet/demoData/sheetChart.js
  11. 67 0
      public/static/js/luckysheet/demoData/sheetComment.js
  12. 6541 0
      public/static/js/luckysheet/demoData/sheetConditionFormat.js
  13. 579 0
      public/static/js/luckysheet/demoData/sheetDataVerification.js
  14. 6600 0
      public/static/js/luckysheet/demoData/sheetFormula.js
  15. 159 0
      public/static/js/luckysheet/demoData/sheetPicture.js
  16. 189 0
      public/static/js/luckysheet/demoData/sheetPivotTable.js
  17. 741 0
      public/static/js/luckysheet/demoData/sheetPivotTableData.js
  18. 7066 0
      public/static/js/luckysheet/demoData/sheetSparkline.js
  19. 1068 0
      public/static/js/luckysheet/demoData/sheetTable.js
  20. 1944 0
      public/static/js/luckysheet/index.html
  21. 0 1
      public/static/js/url.js
  22. 582 508
      public/static/views/onlineShareExcel.html
  23. 3 0
      src/assets/js/url.js
  24. 47 0
      src/assets/js/util.js
  25. 181 175
      src/components/uploadDown.vue
  26. 2 0
      src/main.js
  27. 232 0
      src/pages/main/luckySheet/index.vue
  28. 125 52
      src/pages/main/onlineExcel/index.vue
  29. 742 641
      src/pages/main/terminal/advertincrease.vue
  30. 20 12
      src/pages/main/terminals/advchecks.vue
  31. 6 3
      src/pages/main/terminals/advertincreases.vue
  32. 120 31
      src/pages/main/terminals/components/adverts.vue
  33. 1 1
      src/router/index.js
  34. 32 0
      vue.config.js

+ 1 - 0
.gitignore

@@ -1,6 +1,7 @@
 .DS_Store
 node_modules
 /dist
+dist.zip
 
 # local env files
 .env.local

+ 4 - 0
config/excel.env.js

@@ -0,0 +1,4 @@
+const excelUrl = {
+  dev: 'http://192.168.2.124:7777'
+}
+export default excelUrl;

+ 15 - 2
config/index.js

@@ -5,6 +5,19 @@
 const path = require('path')
 // import common from '../src/assets/js/common.js';
 module.exports = {
+  rules: [
+    {
+      test: /\.(woff2?eot|ttf|otf)(\?.*)?$/,
+      loader: "url-loader",
+      options: {
+        limit: 10003,
+        name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
+      }
+
+
+    }
+
+  ],
   dev: {
 
     // Paths
@@ -34,7 +47,7 @@ module.exports = {
     notifyOnErrors: true,
     poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
 
-    
+
     /**
      * Source Maps
      */
@@ -77,7 +90,7 @@ module.exports = {
     // Before setting to `true`, make sure to:
     // npm install --save-dev compression-webpack-plugin
     productionGzip: false,
-    productionGzipExtensions: ['js', 'css'],
+    productionGzipExtensions: ['js', 'css', 'eot', 'svg', 'ttf'],
 
     // Run the build command with an extra argument to
     // View the bundle analyzer report after build finishes:

+ 3 - 3
package.json

@@ -42,9 +42,9 @@
     "xlsx": "^0.16.9"
   },
   "devDependencies": {
-    "@vue/cli-plugin-babel": "^4.1.2",
-    "@vue/cli-plugin-eslint": "^4.1.2",
-    "@vue/cli-service": "^4.1.2",
+    "@vue/cli-plugin-babel": "^4.5.0",
+    "@vue/cli-plugin-eslint": "~4.5.0",
+    "@vue/cli-service": "~4.5.0",
     "babel-eslint": "^10.0.3",
     "babel-plugin-component": "^1.1.1",
     "compression-webpack-plugin": "^3.0.1",

+ 1 - 1
public/index.html

@@ -40,4 +40,4 @@
   </script>
 </body>
 
-</html>
+</html>

File diff ditekan karena terlalu besar
+ 22904 - 0
public/luckSheetExcel.js


File diff ditekan karena terlalu besar
+ 4151 - 0
public/luckysheet.umd.js


+ 42 - 0
public/static/js/luckysheet/demoData/demoFeature.js

@@ -0,0 +1,42 @@
+
+// Features specially written for demo
+
+(function() {
+
+    // language
+    function language(params) {
+        
+        var lang = navigator.language||navigator.userLanguage;//常规浏览器语言和IE浏览器
+        lang = lang.substr(0, 2);//截取lang前2位字符
+
+        return lang;
+
+    }
+    // Tencent Forum Link Button
+    function supportButton() {
+        const text = language() === 'zh' ? '反馈' : 'Forum';
+        const link = language() === 'zh' ? 'https://support.qq.com/product/288322' : 'https://groups.google.com/g/luckysheet';
+
+        document.querySelector("body").insertAdjacentHTML('beforeend', '<a id="container" href="'+ link +'" target="_blank" style="z-index:2;width:50px;height:50px;line-height:50px;position:fixed;right:40px;bottom:86px;border-radius:50px;cursor:pointer;background:rgb(71,133,249);color:#fff;text-align:center;text-decoration:none;">'+ text +'</a>');
+    }
+    
+    supportButton()
+
+    /**
+     * Get url parameters
+     */
+    function getRequest() {
+        var vars = {};
+        var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,    
+        function(m,key,value) {
+          vars[key] = value;
+        });
+        return vars;
+    }
+
+    window.luckysheetDemoUtil = {
+        language:language,
+        getRequest:getRequest
+    }
+    
+})()

File diff ditekan karena terlalu besar
+ 1578 - 0
public/static/js/luckysheet/demoData/sheetCell.js


File diff ditekan karena terlalu besar
+ 4918 - 0
public/static/js/luckysheet/demoData/sheetChart.js


+ 67 - 0
public/static/js/luckysheet/demoData/sheetComment.js

@@ -0,0 +1,67 @@
+window.sheetComment = {
+	"name": "Comment",
+	"color": "",
+	"config": {
+		"columnlen": {
+			"2": 102
+		}
+	},
+	"index": "5",
+	"chart": [],
+	"status": 0,
+	"order": "5",
+	"column": 18,
+	"row": 36,
+	"celldata": [{
+		"r": 2,
+		"c": 2,
+		"v": {
+			"m": "HoverShown",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "HoverShown",
+			"bl": 1,
+			"ps": {
+				"left": null,
+				"top": null,
+				"width": null,
+				"height": null,
+				"value": "Hello world!",
+				"isshow": false
+			}
+		}
+	}, {
+		"r": 7,
+		"c": 2,
+		"v": {
+			"m": "Size",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Size",
+			"bl": 1,
+			"ps": {
+				"left": null,
+				"top": null,
+				"width": null,
+				"height": null,
+				"value": "Hello,world!",
+				"isshow": true
+			}
+		}
+	}],
+	"ch_width": 4748,
+	"rh_height": 1790,
+	"luckysheet_select_save": [{
+		"row": [0, 0],
+		"column": [0, 0]
+	}],
+	"luckysheet_selection_range": [],
+	"scrollLeft": 0,
+	"scrollTop": 0
+}
+
+// export default sheetComment;

File diff ditekan karena terlalu besar
+ 6541 - 0
public/static/js/luckysheet/demoData/sheetConditionFormat.js


File diff ditekan karena terlalu besar
+ 579 - 0
public/static/js/luckysheet/demoData/sheetDataVerification.js


File diff ditekan karena terlalu besar
+ 6600 - 0
public/static/js/luckysheet/demoData/sheetFormula.js


File diff ditekan karena terlalu besar
+ 159 - 0
public/static/js/luckysheet/demoData/sheetPicture.js


+ 189 - 0
public/static/js/luckysheet/demoData/sheetPivotTable.js

@@ -0,0 +1,189 @@
+window.sheetPivotTable = {
+	"name": "PivotTable",
+	"color": "",
+	"config": {},
+	"index": "7",
+	"chart": [],
+	"status": 0,
+	"order": "7",
+	"column": 18,
+	"row": 36,
+	"celldata": [{
+		"r": 0,
+		"c": 0,
+		"v": "count:score"
+	}, {
+		"r": 0,
+		"c": 1,
+		"v": "science"
+	}, {
+		"r": 0,
+		"c": 2,
+		"v": "mathematics"
+	}, {
+		"r": 0,
+		"c": 3,
+		"v": "foreign language"
+	}, {
+		"r": 0,
+		"c": 4,
+		"v": "English"
+	}, {
+		"r": 0,
+		"c": 5,
+		"v": "total"
+	}, {
+		"r": 1,
+		"c": 0,
+		"v": "Alex"
+	}, {
+		"r": 1,
+		"c": 1,
+		"v": 1
+	}, {
+		"r": 1,
+		"c": 2,
+		"v": 1
+	}, {
+		"r": 1,
+		"c": 3,
+		"v": 1
+	}, {
+		"r": 1,
+		"c": 4,
+		"v": 1
+	}, {
+		"r": 1,
+		"c": 5,
+		"v": 4
+	}, {
+		"r": 2,
+		"c": 0,
+		"v": "Joy"
+	}, {
+		"r": 2,
+		"c": 1,
+		"v": 1
+	}, {
+		"r": 2,
+		"c": 2,
+		"v": 1
+	}, {
+		"r": 2,
+		"c": 3,
+		"v": 1
+	}, {
+		"r": 2,
+		"c": 4,
+		"v": 1
+	}, {
+		"r": 2,
+		"c": 5,
+		"v": 4
+	}, {
+		"r": 3,
+		"c": 0,
+		"v": "Tim"
+	}, {
+		"r": 3,
+		"c": 1,
+		"v": 1
+	}, {
+		"r": 3,
+		"c": 2,
+		"v": 1
+	}, {
+		"r": 3,
+		"c": 3,
+		"v": 1
+	}, {
+		"r": 3,
+		"c": 4,
+		"v": 1
+	}, {
+		"r": 3,
+		"c": 5,
+		"v": 4
+	}, {
+		"r": 4,
+		"c": 0,
+		"v": "total"
+	}, {
+		"r": 4,
+		"c": 1,
+		"v": 3
+	}, {
+		"r": 4,
+		"c": 2,
+		"v": 3
+	}, {
+		"r": 4,
+		"c": 3,
+		"v": 3
+	}, {
+		"r": 4,
+		"c": 4,
+		"v": 3
+	}, {
+		"r": 4,
+		"c": 5,
+		"v": 12
+	}],
+	"ch_width": 4748,
+	"rh_height": 1790,
+	"luckysheet_select_save": [{
+		"row": [0, 0],
+		"column": [0, 0]
+	}],
+	"luckysheet_selection_range": [],
+	"scrollLeft": 0,
+	"scrollTop": 0,
+	"isPivotTable": true,
+	"pivotTable": {
+		"pivot_select_save": {
+			"left": 0,
+			"width": 73,
+			"top": 0,
+			"height": 19,
+			"left_move": 0,
+			"width_move": 369,
+			"top_move": 0,
+			"height_move": 259,
+			"row": [0, 12],
+			"column": [0, 4],
+			"row_focus": 0,
+			"column_focus": 0
+		},
+		"pivotDataSheetIndex": 6, //The sheet index where the source data is located
+		"column": [{
+			"index": 3,
+			"name": "subject",
+			"fullname": "subject"
+		}],
+		"row": [{
+			"index": 1,
+			"name": "student",
+			"fullname": "student"
+		}],
+		"filter": [],
+		"values": [{
+			"index": 4,
+			"name": "score",
+			"fullname": "count:score",
+			"sumtype": "COUNTA",
+			"nameindex": 0
+		}],
+		"showType": "column",
+		"pivotDatas": [
+			["count:score", "science", "mathematics", "foreign language", "English", "total"],
+			["Alex", 1, 1, 1, 1, 4],
+			["Joy", 1, 1, 1, 1, 4],
+			["Tim", 1, 1, 1, 1, 4],
+			["total", 3, 3, 3, 3, 12]
+		],
+		"drawPivotTable": false,
+		"pivotTableBoundary": [5, 6]
+	}
+}
+
+// export default sheetPivotTable;

+ 741 - 0
public/static/js/luckysheet/demoData/sheetPivotTableData.js

@@ -0,0 +1,741 @@
+window.sheetPivotTableData = {
+	"name": "PivotTableData",
+	"color": "",
+	"config": {
+		"merge": {}
+	},
+	"index": "6",
+	"chart": [],
+	"status": 0,
+	"order": "6",
+	"hide": 0,
+	"column": 18,
+	"row": 36,
+	"celldata": [{
+		"r": 0,
+		"c": 0,
+		"v": {
+			"m": "Mock test",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Mock test"
+		}
+	}, {
+		"r": 0,
+		"c": 1,
+		"v": {
+			"m": "student",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "student"
+		}
+	}, {
+		"r": 0,
+		"c": 2,
+		"v": {
+			"m": "class",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "class"
+		}
+	}, {
+		"r": 0,
+		"c": 3,
+		"v": {
+			"m": "subject",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "subject"
+		}
+	}, {
+		"r": 0,
+		"c": 4,
+		"v": {
+			"m": "score",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "score"
+		}
+	}, {
+		"r": 1,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 1,
+		"c": 1,
+		"v": {
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Joy",
+			"m": "Joy"
+		}
+	}, {
+		"r": 1,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 1,
+		"c": 3,
+		"v": {
+			"m": "English",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "English"
+		}
+	}, {
+		"r": 1,
+		"c": 4,
+		"v": {
+			"v": 96,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "96"
+		}
+	}, {
+		"r": 2,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 2,
+		"c": 1,
+		"v": {
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Joy",
+			"m": "Joy"
+		}
+	}, {
+		"r": 2,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 2,
+		"c": 3,
+		"v": {
+			"m": "mathematics",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "mathematics"
+		}
+	}, {
+		"r": 2,
+		"c": 4,
+		"v": {
+			"v": 110,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "110"
+		}
+	}, {
+		"r": 3,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 3,
+		"c": 1,
+		"v": {
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Joy",
+			"m": "Joy"
+		}
+	}, {
+		"r": 3,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 3,
+		"c": 3,
+		"v": {
+			"m": "foreign language",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "foreign language"
+		}
+	}, {
+		"r": 3,
+		"c": 4,
+		"v": {
+			"v": 87,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "87"
+		}
+	}, {
+		"r": 4,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 4,
+		"c": 1,
+		"v": {
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Joy",
+			"m": "Joy"
+		}
+	}, {
+		"r": 4,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 4,
+		"c": 3,
+		"v": {
+			"m": "science",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "science"
+		}
+	}, {
+		"r": 4,
+		"c": 4,
+		"v": {
+			"v": 266,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "266"
+		}
+	}, {
+		"r": 5,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 5,
+		"c": 1,
+		"v": {
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Tim",
+			"m": "Tim"
+		}
+	}, {
+		"r": 5,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 5,
+		"c": 3,
+		"v": {
+			"m": "English",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "English"
+		}
+	}, {
+		"r": 5,
+		"c": 4,
+		"v": {
+			"v": 92,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "92"
+		}
+	}, {
+		"r": 6,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 6,
+		"c": 1,
+		"v": {
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Tim",
+			"m": "Tim"
+		}
+	}, {
+		"r": 6,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 6,
+		"c": 3,
+		"v": {
+			"m": "mathematics",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "mathematics"
+		}
+	}, {
+		"r": 6,
+		"c": 4,
+		"v": {
+			"v": 100,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "100"
+		}
+	}, {
+		"r": 7,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 7,
+		"c": 1,
+		"v": {
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Tim",
+			"m": "Tim"
+		}
+	}, {
+		"r": 7,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 7,
+		"c": 3,
+		"v": {
+			"m": "foreign language",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "foreign language"
+		}
+	}, {
+		"r": 7,
+		"c": 4,
+		"v": {
+			"v": 90,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "90"
+		}
+	}, {
+		"r": 8,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 8,
+		"c": 1,
+		"v": {
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Tim",
+			"m": "Tim"
+		}
+	}, {
+		"r": 8,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 8,
+		"c": 3,
+		"v": {
+			"m": "science",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "science"
+		}
+	}, {
+		"r": 8,
+		"c": 4,
+		"v": {
+			"v": 255,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "255"
+		}
+	}, {
+		"r": 9,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 9,
+		"c": 1,
+		"v": {
+			"m": "Alex",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Alex"
+		}
+	}, {
+		"r": 9,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 9,
+		"c": 3,
+		"v": {
+			"m": "English",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "English"
+		}
+	}, {
+		"r": 9,
+		"c": 4,
+		"v": {
+			"v": 108,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "108"
+		}
+	}, {
+		"r": 10,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 10,
+		"c": 1,
+		"v": {
+			"m": "Alex",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Alex"
+		}
+	}, {
+		"r": 10,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 10,
+		"c": 3,
+		"v": {
+			"m": "mathematics",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "mathematics"
+		}
+	}, {
+		"r": 10,
+		"c": 4,
+		"v": {
+			"v": 117,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "117"
+		}
+	}, {
+		"r": 11,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 11,
+		"c": 1,
+		"v": {
+			"m": "Alex",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Alex"
+		}
+	}, {
+		"r": 11,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 11,
+		"c": 3,
+		"v": {
+			"m": "foreign language",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "foreign language"
+		}
+	}, {
+		"r": 11,
+		"c": 4,
+		"v": {
+			"v": 88,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "88"
+		}
+	}, {
+		"r": 12,
+		"c": 0,
+		"v": {
+			"m": "first round",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "first round"
+		}
+	}, {
+		"r": 12,
+		"c": 1,
+		"v": {
+			"m": "Alex",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Alex"
+		}
+	}, {
+		"r": 12,
+		"c": 2,
+		"v": {
+			"m": "Class one",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "Class one"
+		}
+	}, {
+		"r": 12,
+		"c": 3,
+		"v": {
+			"m": "science",
+			"ct": {
+				"fa": "General",
+				"t": "g"
+			},
+			"v": "science"
+		}
+	}, {
+		"r": 12,
+		"c": 4,
+		"v": {
+			"v": 278,
+			"ct": {
+				"fa": "General",
+				"t": "n"
+			},
+			"m": "278"
+		}
+	}],
+	"ch_width": 4748,
+	"rh_height": 1790,
+	"luckysheet_select_save": [{
+		"row": [0, 0],
+		"column": [0, 0]
+	}],
+	"luckysheet_selection_range": [],
+	"scrollLeft": 0,
+	"scrollTop": 0
+}
+
+// export default sheetPivotTableData;

File diff ditekan karena terlalu besar
+ 7066 - 0
public/static/js/luckysheet/demoData/sheetSparkline.js


File diff ditekan karena terlalu besar
+ 1068 - 0
public/static/js/luckysheet/demoData/sheetTable.js


File diff ditekan karena terlalu besar
+ 1944 - 0
public/static/js/luckysheet/index.html


+ 0 - 1
public/static/js/url.js

@@ -4,7 +4,6 @@
 // var ctx = "http://192.168.1.250:8890"//agile_sign_web的服务
  
 var ctx = apiConfig.ctx //agile_sign_web的服务
-var oldVersion = apiConfig.oldVersion //agile_sign_seal_web的服务
 //  var ctx = "http://192.168.1.79:8080"
 var rootD = apiConfig.rootD 
 var cv = 2; //1  开发。2 测试

File diff ditekan karena terlalu besar
+ 582 - 508
public/static/views/onlineShareExcel.html


+ 3 - 0
src/assets/js/url.js

@@ -26,6 +26,9 @@ const urls = {
         getQueryMultiTaskId:ctxForm + "/queryMultiTaskId",
         getComplateLastMan:ctxForm + "/complateLastMan"
     },
+    excelList:{
+
+    },
     distribute: {
         sendMsg: ctx + '/api/distribute/create', //创建分发
         findMyComment: ctx + '/api/comment/findMyComment', //查询

+ 47 - 0
src/assets/js/util.js

@@ -35,6 +35,53 @@ util.hasPermission = function(permission) {
 
   return found;
 };
+util.ajaxJson = function (msg, url, param, callBack, beforeSend, async) {
+
+
+
+  $.ajax({
+    type: "POST",
+    url: url,
+    global: true,
+    data: JSON.stringify(param),
+    contentType: "application/json;charset=UTF-8",
+    beforeSend: function (req) {
+
+      req.setRequestHeader("agileauthtoken", window.sessionStorage.agileauthtoken);
+
+      if ($.isFunction(beforeSend)) {
+
+        beforeSend.call(this, req);
+      }
+
+
+    },
+    xhrFields: {
+      withCredentials: false //跨域session保持
+    },
+    async: async == undefined ? true : async,
+    dataType: "json",
+    success: function (page) {
+
+      // util.disLoad();
+
+      if ($.isFunction(callBack)) {
+
+        callBack.call(this, page);
+      }
+
+    },
+    error: function (xhr, textStatus, errorThrow) {
+
+      // util.disLoad();
+
+      // util.closeAll();
+
+      // util.error("系统异常!");
+    }
+  });
+
+},
 //获取前端地址参数对象
 util.getRequestSearchObject = function() {
   var url = window.location.search; //获取url中"?"符后的字串

+ 181 - 175
src/components/uploadDown.vue

@@ -1,197 +1,203 @@
 <template>
-    <div class="back-box">
-        <div v-for="item in infolist" :key="item.id" @click="downcheck(item)">
-            <i class="iconfont icon-word" v-if="item.type==='word'"></i>
-            <i class="iconfont icon-excel" v-if="item.type==='excel'"></i>
-            <i class="iconfont icon-ppt" v-if="item.type==='ppt'"></i>
-            <i class="iconfont icon-wenjian" v-if="item.type==='wenjian'"></i>
-            <i class="el-icon-picture" v-if="item.type==='png'"></i>
-            <el-tooltip class="item" effect="dark" :content="item.fileName" placement="right" :enterable="false">
-                <span class="tab-long">{{item.fileName}}</span>
-            </el-tooltip>
-            <div class="seedown" v-if="datalist.type===2">
-                <a @click="uploaddown(item)">下载</a>
-                <a @click="uploadsee(item)">预览</a>
-            </div>
-        </div>
-        <div class="if-box-top" v-if="ifrshow" @keyup.esc="ifrshow=false">
-            <i class="el-icon-close" @click="ifrshow=false"></i>
-            <iframe
-                height="100%"
-                width="100%"
-                :src="srcsc">
-            </iframe>
-        </div>
+  <div class="back-box">
+    <div v-for="item in infolist" :key="item.id" @click="downcheck(item)">
+      <i class="iconfont icon-word" v-if="item.type === 'word'"></i>
+      <i class="iconfont icon-excel" v-if="item.type === 'excel'"></i>
+      <i class="iconfont icon-ppt" v-if="item.type === 'ppt'"></i>
+      <i class="iconfont icon-wenjian" v-if="item.type === 'wenjian'"></i>
+      <i class="el-icon-picture" v-if="item.type === 'png'"></i>
+      <el-tooltip
+        class="item"
+        effect="dark"
+        :content="item.fileName"
+        placement="right"
+        :enterable="false"
+      >
+        <span class="tab-long">{{ item.fileName }}</span>
+      </el-tooltip>
+      <div class="seedown" v-if="datalist.type === 2">
+        <a @click="uploaddown(item)">下载</a>
+        <a @click="uploadsee(item)">预览</a>
+      </div>
     </div>
+    <div class="if-box-top" v-if="ifrshow" @keyup.esc="ifrshow = false">
+      <i class="el-icon-close" @click="ifrshow = false"></i>
+      <iframe height="100%" width="100%" :src="srcsc"> </iframe>
+    </div>
+  </div>
 </template>
 <script>
-    export default {
-        props: ['datalist', 'dialogStatus'],
-        data() {
-            return {
-                infolist: [],
-                status: false,
-                srcsc: '',
-                ifrshow:false,
-            }
-        },
-        methods: {
-            downcheck(v) {
-                if (this.datalist.type === 1) {
-                    this.uploaddown(v);
-                }
-            },
-            uploadsee(v) {
-                let url = encodeURIComponent(Base64.encode(v.callPath));
-                this.srcsc = 'http://10.230.15.228:8012/onlinePreview?url=' + url;
-                this.ifrshow=true;
-                // window.open('http://114.215.71.182:8012/onlinePreview?url=' + url);
-            },
-            //下载e
-            uploaddown(v) {
-                let fileData = v;
-                this.$http({
-                    url: this.datalist.url,
-                    method: "post",
-                    headers: {
-                        "Content-Type": "application/json",
-                    },
-                    responseType: "blob",
-                    data: {"id": fileData.id, "fileName": fileData.fileName},
-                }).then((response) => {
-                    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
-                        let blob = new Blob([response.data], {
-                            type: 'application/vnd.ms-excel'
-                        });
-                        window.navigator.msSaveOrOpenBlob(blob, fileData.fileName);
-                    } else {
-                        /* 火狐谷歌的文件下载方式 */
-                        var blob = new Blob([response.data])
-                        var downloadElement = document.createElement('a')
-                        var href = window.URL.createObjectURL(blob);
-                        downloadElement.href = href;
-                        downloadElement.download = fileData.fileName;
-                        document.body.appendChild(downloadElement);
-                        downloadElement.click();
-                        document.body.removeChild(downloadElement);
-                        window.URL.revokeObjectURL(href);
-                    }
-                });
-            },
-            dataHandle() {
-                this.infolist = this.datalist.attList;
-                if (this.infolist) {
-                    for (let i = 0; i < this.infolist.length; i++) {
-                        let f = this.infolist[i].fileName.split(".");
-                        let type = f[f.length - 1];
-                        if (type === 'doc' || type === 'docx') {
-                            this.infolist[i].type = 'word';
-                        } else if (type === 'ppt') {
-                            this.infolist[i].type = 'ppt';
-                        } else if (type === 'xlsx' || type === 'xls') {
-                            this.infolist[i].type = 'excel';
-                        } else if (type === 'png' || type === 'jpg' || type === 'svg' || type === 'gif' || type === 'psd') {
-                            this.infolist[i].type = 'png';
-                        } else {
-                            this.infolist[i].type = 'wenjian';
-                        }
-                    }
-                }
-            }
-        },
-        mounted() {
-
-        },
-        created() {
-            this.dataHandle();
+export default {
+  props: ["datalist", "dialogStatus"],
+  data() {
+    return {
+      infolist: [],
+      status: false,
+      srcsc: "",
+      ifrshow: false,
+    };
+  },
+  methods: {
+    downcheck(v) {
+      if (this.datalist.type === 1) {
+        this.uploaddown(v);
+      }
+    },
+    uploadsee(v) {
+      let url = encodeURIComponent(v.callPath);
+      this.srcsc = "http://114.215.71.182:8012/onlinePreview?url=" + url;
+      this.ifrshow = true;
+      // window.open('http://114.215.71.182:8012/onlinePreview?url=' + url);
+    },
+    //下载e
+    uploaddown(v) {
+      let fileData = v;
+      this.$http({
+        url: this.datalist.url,
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
         },
-        watch: {
-            dialogStatus() {
-                this.$forceUpdate()
-                let _this = this;
-                _this.dataHandle();
-            }
+        responseType: "blob",
+        data: { id: fileData.id, fileName: fileData.fileName },
+      }).then((response) => {
+        if (window.navigator && window.navigator.msSaveOrOpenBlob) {
+          let blob = new Blob([response.data], {
+            type: "application/vnd.ms-excel",
+          });
+          window.navigator.msSaveOrOpenBlob(blob, fileData.fileName);
+        } else {
+          /* 火狐谷歌的文件下载方式 */
+          var blob = new Blob([response.data]);
+          var downloadElement = document.createElement("a");
+          var href = window.URL.createObjectURL(blob);
+          downloadElement.href = href;
+          downloadElement.download = fileData.fileName;
+          document.body.appendChild(downloadElement);
+          downloadElement.click();
+          document.body.removeChild(downloadElement);
+          window.URL.revokeObjectURL(href);
         }
-    }
+      });
+    },
+    dataHandle() {
+      this.infolist = this.datalist.attList;
+      if (this.infolist) {
+        for (let i = 0; i < this.infolist.length; i++) {
+          let f = this.infolist[i].fileName.split(".");
+          let type = f[f.length - 1];
+          if (type === "doc" || type === "docx") {
+            this.infolist[i].type = "word";
+          } else if (type === "ppt") {
+            this.infolist[i].type = "ppt";
+          } else if (type === "xlsx" || type === "xls") {
+            this.infolist[i].type = "excel";
+          } else if (
+            type === "png" ||
+            type === "jpg" ||
+            type === "svg" ||
+            type === "gif" ||
+            type === "psd"
+          ) {
+            this.infolist[i].type = "png";
+          } else {
+            this.infolist[i].type = "wenjian";
+          }
+        }
+      }
+    },
+  },
+  mounted() {
+    this.dataHandle();
+    console.log(this.infolist);
+  },
+  created() {},
+  watch: {
+    dialogStatus() {
+      this.$forceUpdate();
+      let _this = this;
+      _this.dataHandle();
+    },
+  },
+};
 </script>
 <style scoped lang="scss">
-    .if-box-top{
-        background: #fff;
-        width: 80vw;
-        height: 80vh;
-        margin-top: 10vh;
-        margin-left: 10vw;
-    }
+.if-box-top {
+  background: #fff;
+  width: 80vw;
+  height: 80vh;
+  margin-top: 10vh;
+  margin-left: 10vw;
+}
 
-    .iconfont {
-        font-size: 42px;
-    }
+.iconfont {
+  font-size: 42px;
+}
 
-    .icon-excel {
-        color: #67DB63;
-    }
+.icon-excel {
+  color: #67db63;
+}
 
-    .icon-word {
-        color: #FF654E;
-    }
+.icon-word {
+  color: #ff654e;
+}
 
-    .icon-ppt {
-        color: #FF8943;
-    }
+.icon-ppt {
+  color: #ff8943;
+}
 
-    .icon-wenjian {
-        color: #ccc;
-    }
+.icon-wenjian {
+  color: #ccc;
+}
 
-    .el-icon-picture {
-        font-size: 36px;
-        color: #ccc;
-        background: #fff;
-        padding: 4px 2px;
-        margin-bottom: 2px;
-        border-radius: 3px;
-    }
+.el-icon-picture {
+  font-size: 36px;
+  color: #ccc;
+  background: #fff;
+  padding: 4px 2px;
+  margin-bottom: 2px;
+  border-radius: 3px;
+}
 
-    .back-box {
-        margin-top: 20px;
-        background: #F2F2F2;
-        padding: 20px;
+.back-box {
+  margin-top: 20px;
+  background: #f2f2f2;
+  padding: 20px;
 
-        div {
-            display: inline-block;
-            text-align: center;
-            margin-right: 20px;
-            cursor: pointer;
+  div {
+    display: inline-block;
+    text-align: center;
+    margin-right: 20px;
+    cursor: pointer;
 
-            span {
-                display: block;
-                width: 80px;
-                overflow: hidden;
-                padding-top: 5px;
-                margin: 0 10px;
-                overflow: hidden;
-                text-overflow: ellipsis;
-                display: -webkit-box; /* 将对象作为弹性伸缩盒子模型显示 */
-                -webkit-line-clamp: 1; /* 控制最多显示几行 */
-                -webkit-box-orient: vertical; /* 设置或检索伸缩盒对象的子元素的排列方式 */
-            }
-        }
-
-        .seedown {
-            margin: 0;
-            margin-top: 5px;
+    span {
+      display: block;
+      width: 80px;
+      overflow: hidden;
+      padding-top: 5px;
+      margin: 0 10px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      display: -webkit-box; /* 将对象作为弹性伸缩盒子模型显示 */
+      -webkit-line-clamp: 1; /* 控制最多显示几行 */
+      -webkit-box-orient: vertical; /* 设置或检索伸缩盒对象的子元素的排列方式 */
+    }
+  }
 
-            a {
-                font-size: 12px;
-                padding: 2px 5px;
-                border: 1px solid transparent;
-                color: #999;
-            }
+  .seedown {
+    margin: 0;
+    margin-top: 5px;
 
-            a:hover {
-                color: #0b82ff;
-            }
-        }
+    a {
+      font-size: 12px;
+      padding: 2px 5px;
+      border: 1px solid transparent;
+      color: #999;
     }
 
+    a:hover {
+      color: #0b82ff;
+    }
+  }
+}
 </style>

+ 2 - 0
src/main.js

@@ -12,6 +12,7 @@ import fullscreen from 'vue-fullscreen'
 import VueContextMenu from 'vue-contextmenu'
 
 import Urls from './assets/js/url.js' //路径共用
+import excelUrl from '../config/excel.env.js'
 import util from './assets/js/util.js'
 import common from './assets/js/common.js' //公共注册
 import http from './assets/js/http.js'
@@ -22,6 +23,7 @@ import VueEditor from "vue2-editor"
 Vue.use(VueEditor)
 Vue.use(FormMaking)
 Vue.prototype.$url = Urls
+Vue.prototype.$excelUrl = excelUrl
 Vue.prototype.$util = util
 Vue.prototype.common = common
 Vue.prototype.$axios = http //axios 设置

+ 232 - 0
src/pages/main/luckySheet/index.vue

@@ -0,0 +1,232 @@
+<template>
+  <div class="flex-count">
+    <div class="flex-count-header">
+      <span>在线文档-文件管理</span>
+      <el-button type="primary" class="header-button" @click="clickSave"
+        >新建</el-button
+      >
+    </div>
+
+    <Table @clickDemand="clickDemand" :list="lable" ref="TableList"> </Table>
+    <!-- <div v-for="(item, index) in optionsExcel" :key="index">
+      <div @click="clickSee(item)">{{ item.option.title }}</div>
+    </div>
+    <el-button @click="newExcle">新建</el-button>
+    <div
+      id="luckysheet"
+      v-show="excelStatus"
+      style="
+        margin: 0px;
+        padding: 0px;
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        left: 0px;
+        top: 0px;
+      "
+    ></div> -->
+  </div>
+</template>
+
+<script>
+import axios from "axios";
+import luckyexcel from "luckyexcel";
+import Table from "../../../components/el-form.vue";
+export default {
+  components: {
+    Table,
+  },
+  data() {
+    return {
+      excelStatus: false,
+      optionsExcel: [],
+      ids: "",
+      lable: {
+        name: "first",
+        height: "650",
+        titledata: [
+          {
+            label: "名称",
+            prop: "needName",
+            width: 300,
+            color: "#0682CD",
+          },
+          {
+            label: "创建时间",
+            prop: "needType",
+            width: 200,
+          },
+          {
+            label: "创建科室",
+            prop: "applyDept",
+            width: 200,
+          },
+          {
+            label: "创建人",
+            prop: "applyDepartment",
+            width: 200,
+          },
+          {
+            label: "权限状态",
+            prop: "proposer",
+            width: 200,
+          },
+        ], //表格头
+        data: [], //内容数据
+        loading: true,
+        pageData: {
+          total: 100, // 总条数
+          pageSize: 10, // 每页数量
+          pageNum: 1, // 页码
+        },
+        isSelection: true, // 表格有多选时设置
+        isOperation: false, // 表格有操作列时设置
+        isIndex: false, // 列表序号
+        operation: {
+          // 表格有操作列时设置
+          label: "操作", // 列名
+          width: "50", // 根据实际情况给宽度
+          data: [
+            {
+              label: "操作", // 操作名称
+              type: "", //按钮类型
+              handleRow: (e, r, o) => {
+                // this.disabled = true;
+                // this.dialogTitle = "查看";
+                // if (r.taskName === "起草") {
+                //   this.disabled = false;
+                // } else {
+                //   this.disabled = true;
+                // }
+                // this.fromList = r;
+                // this.clickForm(r);
+                // this.getFromQuery(r);
+                // this.dialogStatus = true;
+                // setTimeout(() => {
+                //   this.getBtnStatus(r);
+                // }, 500);
+                // this.formWorkId = r.id;
+                // this.formId = r.taskId;
+                // this.taskName = r.taskName;
+                // this.getQuery()
+              }, // 自定义事件
+            },
+          ],
+        },
+      },
+    };
+  },
+  created() {
+    this.getAllExcel();
+  },
+  mounted() {},
+  methods: {
+    clickSave() {
+      this.$http({
+        url: "/market/cOnlineExcel/addExcel",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {
+          folderId: '',
+        },
+      }).then((res) => {
+        // if (res.data.result === 1) {
+        //   _this.$message({
+        //     message: res.data.desc,
+        //     type: "error",
+        //   });
+        // } else {
+        //   _this.$message({
+        //     message: "成功",
+        //     type: "success",
+        //   });
+        //   var id = res.data.desc;
+        //   _this.addNewStatus = false;
+        //   //放入id,切换到excel模式
+        //   document.getElementById("excelId").setAttribute("value", id);
+        //   _this.showExcel = true;
+        // }
+      });
+    },
+    clickSee(e) {
+      this.$http({
+        url: "/api/sheet/workbook/" + e.id,
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {},
+      }).then((res) => {
+        this.ids = e.id;
+        // this.optionsExcel = res.data;
+        let options = {
+          container: "luckysheet",
+          title: "123123",
+          allowUpdate: true,
+          lang: "zh",
+          loadUrl:
+            window.location.protocol +
+            "//43.138.50.94:7777" +
+            "/sheet/worksheet/" +
+            this.ids,
+          loadSheetUrl:
+            window.location.protocol +
+            "//43.138.50.94:7777" +
+            "/sheet/loadsheet/" +
+            this.ids,
+          updateUrl:
+            "ws://" +
+            "//43.138.50.94:7777" +
+            "/ws/" +
+            JSON.parse(window.sessionStorage.userInfo).loginName +
+            "/" +
+            this.ids,
+        };
+        window.luckysheet.create(options);
+        this.excelStatus = true;
+      });
+    },
+    //获取所有
+    getAllExcel() {
+      let data = {};
+      axios
+        .post("http://43.138.50.94:7777/sheet/allSheet", data)
+        .then((res) => {
+          console.log(res);
+          this.optionsExcel = res.data;
+        });
+    },
+    newExcle() {
+      let data = {};
+      axios.post("http://43.138.50.94:7777/sheet/create", data).then((res) => {
+        console.log(res);
+        let list = {
+          name: res.data.name,
+          id: res.data.id,
+        };
+        this.optionsExcel.push(list);
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.flex-count {
+  background-color: #fff;
+  .flex-count-header {
+    display: flex;
+    flex-direction: column;
+    span {
+      font-size: 22px;
+      margin: 20px 0 0 30px;
+    }
+    .header-button {
+      width: 10%;
+      margin: 20px 0 20px 30px;
+    }
+  }
+}
+</style>

+ 125 - 52
src/pages/main/onlineExcel/index.vue

@@ -2,7 +2,7 @@
     <fullscreen :fullscreen.sync="fullscreen" class="container">
         <div class="container">
             <div class="main-box container-box">
-                <input type="hidden" id="excelId"/>
+                <input type="hidden" id="excelId" />
                 <div class="inner-left" style="overflow: hidden">
                     <!--                <div class="button-list">-->
                     <!--                    <el-button type="primary" @click="showExcel = true" plain>excel</el-button>-->
@@ -10,27 +10,26 @@
                     <!--                </div>-->
                     <div style="margin: 10px 0">
                         <el-input placeholder="请输入内容" v-model="filterText" class="input-with-select" clearable
-                                  @change="() => {if (!filterText) {searchMenu();}}">
+                            @change="() => { if (!filterText) { searchMenu(); } }">
                             <el-button slot="append" @click="searchMenu" icon="el-icon-search"></el-button>
                         </el-input>
                     </div>
                     <div v-loading="loading" style="height: calc(100% - 100px);overflow-y: scroll;overflow-x: scroll">
                         <el-tree ref="tree" class="tree-line" :expand-on-click-node="false" :auto-expand-parent="true"
-                                 :default-expand-all="true" :default-checked-keys="checkedMenu" :data="menuList"
-                                 @check="checkChange"
-                                 @node-click="nodeClick" :filter-node-method="filterNode" node-key="functionCode"
-                                 style="width: 300px">
-                        <span class="custom-tree-node" slot-scope="{ node }">
-                            <span>
-                                <span v-if="node.data.type == 4"
-                                      style="color: #009cff" class="iconfont icon-wenjianjia"></span>
-                                <span v-else style="color: #fdb441" class="iconfont icon-wenjian"></span>
-                                <span
-                                    :style="node.data.hasOwnProperty('parent')? 'font-size:14px;padding-left:5px':'font-size:12px;padding-left:5px'">{{
-                                        node.data.functionName
-                                    }}</span>
+                            :default-expand-all="true" :default-checked-keys="checkedMenu" :data="menuList"
+                            @check="checkChange" @node-click="nodeClick" :filter-node-method="filterNode"
+                            node-key="functionCode" style="width: 300px">
+                            <span class="custom-tree-node" slot-scope="{ node }">
+                                <span>
+                                    <span v-if="node.data.type == 4" style="color: #009cff"
+                                        class="iconfont icon-wenjianjia"></span>
+                                    <span v-else style="color: #fdb441" class="iconfont icon-wenjian"></span>
+                                    <span
+                                        :style="node.data.hasOwnProperty('parent') ? 'font-size:14px;padding-left:5px' : 'font-size:12px;padding-left:5px'">{{
+                                            node.data.functionName
+                                        }}</span>
+                                </span>
                             </span>
-                        </span>
                         </el-tree>
                     </div>
                     <div class="tree-action"></div>
@@ -40,19 +39,21 @@
                         <toolList @iconCli='iconCli' :tooltit='tooltit' style="margin: 10px"></toolList>
                         <div style="margin-top: 20px;float: left;" class="bigbtns">
                             <el-button style="margin-left: 20px;" class="btn-check" size="medium" type="primary"
-                                       @click="addNewStatus = true">新建
+                                @click="addNewStatus = true">新建
                             </el-button>
+                            <input style="margin-left:30px" id="upload-file" name="file" type="file" @change="handleUpload">
                         </div>
+                        
                         <div style="margin-top: 20px;float: right;margin-right: 20px" class="bigbtns"
-                             v-if="selectionSize != 0">
+                            v-if="selectionSize != 0">
                             <el-button style="margin-left: 5px;" class="btn-check" size="small" type="primary"
-                                       @click="delExcel()">删除
+                                @click="delExcel()">删除
                             </el-button>
                             <el-button style="margin-left: 5px;" class="btn-check" size="small" type="primary"
-                                       @click="cancelSelection()">取消
+                                @click="cancelSelection()">取消
                             </el-button>
                             <el-button style="margin-left: 5px;" class="btn-check" size="small" type="primary"
-                                       @click="moveStatus = true">移动到
+                                @click="moveStatus = true">移动到
                             </el-button>
                         </div>
                     </div>
@@ -61,8 +62,8 @@
                             <span v-if="selectionSize != 0">已选{{ selectionSize }}项</span>
                         </div>
                         <el-table height="calc(100% - 60px)" class="com-table" ref="multipleTable" :data="tableData"
-                                  tooltip-effect="dark" size="small" border style="width: 100%" v-loading="loading"
-                                  @selection-change="handleSelectionChange">
+                            tooltip-effect="dark" size="small" border style="width: 100%" v-loading="loading"
+                            @selection-change="handleSelectionChange">
                             <el-table-column type="selection" width="45"></el-table-column>
                             <el-table-column prop="fileName" label="名称">
                             </el-table-column>
@@ -81,38 +82,40 @@
                             <el-table-column label="操作" width="180px" align="center" fixed="right">
                                 <template slot-scope="scope">
                                     <el-button size="mini" type="primary" @click="moveToEdit(scope.row)"
-                                               :disabled="scope.row.shareEditStatus==1">编辑
+                                        :disabled="scope.row.shareEditStatus == 1">编辑
                                     </el-button>
                                 </template>
                             </el-table-column>
                         </el-table>
                         <el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next"
-                                       background
-                                       :total="total">
+                            background :total="total">
                         </el-pagination>
                     </div>
 
                     <div class="container" id="container" v-else>
                         <fullscreen :fullscreen.sync="excelFullScreen" class="container">
                             <iframe id="excelIframe" height="100%" width="100%"
-                                    src="/marketfront/static/views/onlineShareExcel.html"
-                                    frameborder="0"></iframe>
+                                src="/static/views/onlineShareExcel.html" frameborder="0"></iframe>
                         </fullscreen>
                     </div>
                 </div>
             </div>
-            <el-dialog :title="'新建'" :visible.sync="addNewStatus" width="300px" :destroy-on-close="true"
-                       :modal-append-to-body="false" :close-on-click-modal="false">
+            <el-dialog :title="'新建'" :visible.sync="addNewStatus" width="450px" :destroy-on-close="true"
+                :modal-append-to-body="false" :close-on-click-modal="false">
                 <div>
                     <!--                <el-button type="primary" @click="addExcel()" plain class="iconfont icon-wenjian">在线文档</el-button>-->
                     <!--                <el-button type="primary" @click="addFolderStatus = true" plain class="iconfont icon-wenjianjia">文件夹</el-button>-->
-                    <div style="padding-bottom: 30px">
+                    <div style="padding-bottom: 30px;display:flex">
                         <div style="width: 85px;display: inline-block;cursor: pointer" @click="addExcel()">
                             <span class="iconfont icon-wenjian" style="font-size: 80px;color: dodgerblue"></span>
                             <p style="margin-left: 20px;margin-top: 10px">在线文档</p>
                         </div>
+                        <div style="width: 85px;display: inline-block;margin-left: 70px;cursor: pointer">
+                            <span class="iconfont icon-excel" style="font-size: 80px;color: dodgerblue"></span>
+                            <input id="upload-file" name="file" type="file" @change="handleUpload">
+                        </div>
                         <div style="width: 85px;display: inline-block;margin-left: 70px;cursor: pointer"
-                             @click="addFolderStatus = true">
+                            @click="addFolderStatus = true">
                             <span class="iconfont icon-wenjianjia" style="font-size: 80px;color: dodgerblue"></span>
                             <p style="margin-left: 20px;margin-top: 10px">文件夹</p>
                         </div>
@@ -120,14 +123,14 @@
                 </div>
             </el-dialog>
             <el-dialog :title="'新增文件夹'" :visible.sync="addFolderStatus" width="50%" :destroy-on-close="true"
-                       :modal-append-to-body="false" :close-on-click-modal="false">
+                :modal-append-to-body="false" :close-on-click-modal="false">
                 <div v-loading="loading">
                     <el-form :model="infolist" ref="infolist">
                         <div class="online">
                             <el-form-item prop="name">
                                 <span>文件夹名称</span>
                                 <el-input v-model="infolist.name" placeholder="文件夹名称"
-                                          :disabled="disableStatus"></el-input>
+                                    :disabled="disableStatus"></el-input>
                             </el-form-item>
                         </div>
                     </el-form>
@@ -138,7 +141,7 @@
                 </div>
             </el-dialog>
             <el-dialog :title="'分享选项'" :visible.sync="shareStatus" width="550px" :destroy-on-close="true"
-                       :modal-append-to-body="false" :close-on-click-modal="false">
+                :modal-append-to-body="false" :close-on-click-modal="false">
                 <div style="margin-left: 30px;padding-bottom: 20px" v-loading='shareLoading'>
                     <el-button type="primary" @click="processExcelShare(1)" plain>仅我可编辑</el-button>
                     <el-button type="primary" @click="openOADialog(2)" plain>部门内所有人可编辑</el-button>
@@ -146,16 +149,16 @@
                 </div>
             </el-dialog>
             <el-dialog title="选择填报人" :visible.sync="checkexa" width="50%" :destroy-on-close="true"
-                       :modal-append-to-body="false" :close-on-click-modal="false" v-loading="shareLoading">
+                :modal-append-to-body="false" :close-on-click-modal="false" v-loading="shareLoading">
                 <div>
                     <el-form :model="exaList" ref="addInfoList">
                         <el-form-item prop="processUserId" class="info-line online">
                             <span style="width: 80px;margin-right: 20px">审批人员</span>
                             <deptTreeUserNew class="tree" @treeCheck="treeCheckonly" :defaultList="defaultList"
-                                             :type="depttype" :closeList="closeList"></deptTreeUserNew>
+                                :type="depttype" :closeList="closeList"></deptTreeUserNew>
                             <div class="tree treeUser">
-                                <p v-for="(item,index) in treeList" :key="index">{{ item.receiveName }}
-                                    <i @click="deletes(item,index)" class="el-icon-error"></i>
+                                <p v-for="(item, index) in treeList" :key="index">{{ item.receiveName }}
+                                    <i @click="deletes(item, index)" class="el-icon-error"></i>
                                 </p>
                             </div>
                         </el-form-item>
@@ -168,19 +171,19 @@
                 </div>
             </el-dialog>
             <el-dialog title="移动到" :visible.sync="moveStatus" width="500px" :destroy-on-close="true"
-                       :modal-append-to-body="false" :close-on-click-modal="false">
+                :modal-append-to-body="false" :close-on-click-modal="false">
                 <div>
                     <el-tree ref="tree" class="tree-line" :expand-on-click-node="false" :auto-expand-parent="true"
-                             :default-expand-all="true" :default-checked-keys="checkedMenu" :data="moveMenuList"
-                             @check="checkChange"
-                             @node-click="folderNodeClick" node-key="functionCode" @expand-on-click-node="false">
+                        :default-expand-all="true" :default-checked-keys="checkedMenu" :data="moveMenuList"
+                        @check="checkChange" @node-click="folderNodeClick" node-key="functionCode"
+                        @expand-on-click-node="false">
                         <span class="custom-tree-node" slot-scope="{ node }">
                             <span>
-                                <span v-if="node.data.type == 4"
-                                      style="color: #009cff" class="iconfont icon-wenjianjia"></span>
+                                <span v-if="node.data.type == 4" style="color: #009cff"
+                                    class="iconfont icon-wenjianjia"></span>
                                 <span v-else style="color: #fdb441" class="iconfont icon-wenjian"></span>
                                 <span
-                                    :style="node.data.hasOwnProperty('parent')? 'font-size:14px;padding-left:5px':'font-size:12px;padding-left:5px'">{{
+                                    :style="node.data.hasOwnProperty('parent') ? 'font-size:14px;padding-left:5px' : 'font-size:12px;padding-left:5px'">{{
                                         node.data.functionName
                                     }}</span>
                             </span>
@@ -195,20 +198,22 @@
                 </div>
             </el-dialog>
             <myMessage :messTit='messTit' @closeMessage="processDel" :centerDialogVisible="delVisible"
-                       v-if="delVisible"></myMessage>
+                v-if="delVisible"></myMessage>
             <myMessageRadio :messTit='oaTitle' @closeMessage="processOa" :centerDialogVisible="oaVisible"
-                            v-if="oaVisible" yesBtnName="是" noBtnName="否" ok-btn-name="提交"></myMessageRadio>
+                v-if="oaVisible" yesBtnName="是" noBtnName="否" ok-btn-name="提交"></myMessageRadio>
         </div>
     </fullscreen>
 </template>
 
 <script>
+import LuckyExcel from "luckyexcel";
 import pForm from "../../../components/p-form";
 import toolList from "../../../components/toolList";
 import myMessage from "../../../components/myMessage.vue";
 import myMessageNew from "../../../components/myMessageNew.vue";
 import myMessageRadio from "../../../components/myMessageRadio.vue";
 import deptTreeUserNew from "../../../components/deptTreeUserNew.vue"
+import {ajaxJson} from '../../../../public/static/js/util'
 
 export default {
     components: {
@@ -274,6 +279,71 @@ export default {
         }
     },
     methods: {
+        //外部导入
+        addExport(e) {
+            this.$http({
+                url: '/market/cOnlineExcel/addExcel',
+                method: "post",
+                headers: {
+                    "Content-Type": "application/json",
+                },
+                data: {
+                    folderId: '',
+                },
+            }).then((res) => {
+                console.log(res);
+                res.data.desc
+                this.startUpload(e, res.data.desc)
+            });
+        },
+        startUpload(e, res) {
+            let _this = this;
+            let files = e.target.files;
+            if (files == null || files.length == 0) {
+                window.top.$vm.$message({
+                    message: '没有文件导入',
+                    type: 'info'
+                })
+                return;
+            }
+            let name = files[0].name;
+            let suffixArr = name.split("."),
+                suffix = suffixArr[suffixArr.length - 1];
+            if (suffix != "xlsx") {
+                window.top.$vm.$message({
+                    message: '目前只支持xlsx文件的导入',
+                    type: 'info'
+                })
+                return;
+            }
+            // 解析文件
+            LuckyExcel.transformExcelToLucky(files[0], function (exportJson, luckysheetfile) {
+                if (exportJson.sheets == null || exportJson.sheets.length == 0) {
+                    window.top.$vm.$message({
+                        message: '无法读取excel文件的内容,当前不支持xls文件',
+                        type: 'info'
+                    })
+                    return;
+                }
+                let exceljson = JSON.stringify(exportJson)
+                _this.$util.ajaxJson("正在导入中", "http://192.168.2.124:7777/sheet/excel/importFile", { exceldata: exceljson, id: res }, function (res) {
+                    // console.log('[ res ] >', res)
+                    _this.addNewStatus = false;
+                    document.getElementById('excelId').setAttribute("value", res.id);
+                    _this.showExcel = true;
+  
+
+                });
+            }
+            );
+            console.log(e); //文件
+            console.log(res);//excel id
+
+        },
+        handleUpload(e) {
+            this.addExport(e)
+
+        },
         processWoNo() {
             console.log(this.woNo);
             var _this = this;
@@ -303,6 +373,7 @@ export default {
                     //放入id,切换到excel模式
                     document.getElementById('excelId').setAttribute("value", id);
                     _this.showExcel = true;
+                    console.log(_this.showExcel);
                 }
             });
         },
@@ -462,6 +533,7 @@ export default {
         },
         //打开excel
         moveToEdit(row) {
+
             //放入id,切换到excel模式
             document.getElementById('excelId').setAttribute("value", row.id);
             this.showExcel = true;
@@ -483,6 +555,7 @@ export default {
                     folderId: folderId,
                 },
             }).then((res) => {
+                console.log(res);
                 if (res.data.result === 1) {
                     _this.$message({
                         message: res.data.desc,
@@ -806,7 +879,7 @@ export default {
         overflow: hidden;
         display: flex;
 
-        > div {
+        >div {
             background-color: white;
         }
 
@@ -828,7 +901,7 @@ export default {
     }
 }
 
-.el-button + .el-button {
+.el-button+.el-button {
     margin-left: 20px;
 }
 
@@ -899,11 +972,11 @@ export default {
     }
 
     // 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
-    & > .el-tree-node::after {
+    &>.el-tree-node::after {
         border-top: none;
     }
 
-    & > .el-tree-node::before {
+    &>.el-tree-node::before {
         border-left: none;
     }
 

File diff ditekan karena terlalu besar
+ 742 - 641
src/pages/main/terminal/advertincrease.vue


+ 20 - 12
src/pages/main/terminals/advchecks.vue

@@ -45,8 +45,14 @@
       <el-dialog title="广告管理" v-if="dialogStatus" :visible.sync="dialogStatus" width="80%" :destroy-on-close="true"
         :modal-append-to-body="false" :close-on-click-modal="false">
         <div>
-          <advert v-if="typestatsu === 2" @closeEdio="closeEdio" :componentInfo="componentInfo"
-            :componentStatus="componentStatus" :changeinfo="changeinfo" :saveStatus="saveStatus"></advert>
+          <advert
+            v-if="typestatsu === 2"
+            @closeEdio="closeEdio"
+            :draftStatus="draftStatus"
+            :componentInfo="componentInfo"
+            :componentStatus="componentStatus"
+            :changeinfo="changeinfo"
+          ></advert>
         </div>
       </el-dialog>
 
@@ -88,7 +94,8 @@ export default {
   },
   data() {
     return {
-      clickStatus: '',
+      draftStatus:true,
+      clickStatus:"",
       tooltit: "广告管理",
       auditStatus: false,
       fullscreen: false,
@@ -397,27 +404,27 @@ export default {
     },
     // 分页
     currchange(v) {
+      console.log(123);
+      console.log(v);
       this.pageSize = v;
-      this.getList(this.advstatus);
+      console.log(this.clickStatus);
+      this.getList(this.clickStatus);
     },
     advchange(e) {
-      this.pageSize = 1
       this.total = 0
-      this.getList(e);
-
+      this.pageSize = 1
+      this.clickStatus = e
+      this.getList(this.clickStatus);
     },
     //处理申请
     dialogCheck(n, v) {
 
       if (v == 1) {
-        console.log(n);
         this.changeinfo = false;
         this.saveStatus = false
       } else {
-        if (n.taskName == '起草') {
-          this.saveStatus = true;
-        }else{
-          this.saveStatus = false
+        if(n.taskName == "科室经理审批"){
+          this.draftStatus = false;
         }
         this.changeinfo = true;
       }
@@ -496,6 +503,7 @@ export default {
       this.getList(this.params, this.pageSize);
       this.typestatsu = 1;
       this.dialogStatus = false;
+      this.draftStatus = true;
       this.componentStatus = false;
     },
     gettype() {

+ 6 - 3
src/pages/main/terminals/advertincreases.vue

@@ -207,6 +207,7 @@
               <p>
                 {{ treeListonly.leaderAuditName }}
                 <i
+
                   v-if="treeListonly.leaderAuditName"
                   @click="deletes()"
                   class="el-icon-error"
@@ -425,11 +426,12 @@ export default {
         fileList: [],
       },
       checkList: [],
+      rest:'',//自有渠道其他
       spreadchannelzList: [],
       checkList1: "",
       checkList2: [],
       spreadchannelwList: [],
-      checkList3: "",
+      other: "",
       checkexa: false,
       treeListonly: {},
       defaultList: [],
@@ -446,8 +448,8 @@ export default {
         processDefinitionKey: "ggsj_process",
       },
       requestForm: {
-          fresourceId: "99e7da22-5f04-11ed-b399-e00084564cce", //线上环境
-        // fresourceId: "e817fc35-5a51-11ed-8912-00505687dcd3", //测试环境
+          // fresourceId: "99e7da22-5f04-11ed-b399-e00084564cce", //线上环境
+        fresourceId: "e817fc35-5a51-11ed-8912-00505687dcd3", //测试环境
         // fresourceId: "3c9baf21-3e43-11ed-ad6b-d6cd97160e00",//本地环境
         processDefinitionKey: "ggsj_process",
       },
@@ -521,6 +523,7 @@ export default {
       }).then((res) => {
         this.request_form.businessKey = res.data.body;
         this.clickHandle(res.data.body);
+        this.$message.success('保存成功')
       });
     },
     async clickHandle(e) {

+ 120 - 31
src/pages/main/terminals/components/adverts.vue

@@ -5,17 +5,29 @@
         <div class="info-line">
           <el-form-item prop="need_name">
             <span>申请标题</span>
-            <el-input :disabled="!saveStatus" v-model="infoApply.need_name" placeholder="申请标题"></el-input>
+            <el-input
+              :disabled="draftStatus"
+              v-model="infoApply.need_name"
+              placeholder="申请标题"
+            ></el-input>
           </el-form-item>
           <el-form-item prop="applydept">
             <span>申请流程</span>
-            <el-input disabled v-model="applydept" placeholder="广告申请"></el-input>
+            <el-input
+              disabled
+              v-model="applydept"
+              placeholder="广告申请"
+            ></el-input>
           </el-form-item>
         </div>
         <div class="info-line">
           <el-form-item prop="applydept">
             <span>申请部门</span>
-            <el-input :disabled="!saveStatus" v-model="infoApply.applydept" placeholder="申请部门"></el-input>
+            <el-input
+              :disabled="draftStatus"
+              v-model="infoApply.applydept"
+              placeholder="申请部门"
+            ></el-input>
             <!-- <el-select disabled clearable v-model="infoApply.dept" placeholder="申请部门">
                             <el-option v-for="items in terminalopt" :key="items.id" :label="items.ou" :value="items.id">
                             </el-option>
@@ -29,12 +41,21 @@
         <div class="info-line">
           <el-form-item>
             <span>申请时间</span>
-            <el-date-picker disabled v-model="infoApply.time" type="date" placeholder="申请时间">
+            <el-date-picker
+              disabled
+              v-model="infoApply.proposer_time"
+              type="date"
+              placeholder="申请时间"
+            >
             </el-date-picker>
           </el-form-item>
           <el-form-item prop="tel">
             <span>联系电话</span>
-            <el-input :disabled="!saveStatus" v-model="infoApply.tel" placeholder="联系电话"></el-input>
+            <el-input
+              :disabled="draftStatus"
+              v-model="infoApply.tel"
+              placeholder="联系电话"
+            ></el-input>
           </el-form-item>
         </div>
         <div class="info-line">
@@ -45,8 +66,13 @@
           </el-form-item>
           <el-form-item>
             <span>完成时间</span>
-            <el-date-picker :disabled="!saveStatus" v-model="infoApply.donetime" type="date" placeholder="完成时间"
-              :pickerOptions="pickerOptions">
+            <el-date-picker
+              v-model="infoApply.donetime"
+              type="date"
+              :disabled="draftStatus"
+              placeholder="完成时间"
+              :pickerOptions="pickerOptions"
+            >
             </el-date-picker>
           </el-form-item>
         </div>
@@ -54,16 +80,35 @@
         <div class="info-line">
           <el-form-item>
             <span>紧急程度</span>
-            <el-select :disabled="!saveStatus" clearable v-model="infoApply.importance" placeholder="紧急程度">
-              <el-option v-for="items in fireopt" :key="items.dataCode" :label="items.dataName" :value="items.dataCode">
+            <el-select
+              clearable
+              :disabled="draftStatus"
+              v-model="infoApply.importance"
+              placeholder="紧急程度"
+            >
+              <el-option
+                v-for="items in fireopt"
+                :key="items.dataCode"
+                :label="items.dataName"
+                :value="items.dataCode"
+              >
               </el-option>
             </el-select>
           </el-form-item>
           <el-form-item>
             <span>素材类型</span>
-            <el-select :disabled="!saveStatus" clearable v-model="infoApply.sourcetype" placeholder="素材类型">
-              <el-option v-for="items in materTypeopt" :key="items.dataCode" :label="items.dataName"
-                :value="items.dataCode">
+            <el-select
+              clearable
+              :disabled="draftStatus"
+              v-model="infoApply.sourcetype"
+              placeholder="素材类型"
+            >
+              <el-option
+                v-for="items in materTypeopt"
+                :key="items.dataCode"
+                :label="items.dataName"
+                :value="items.dataCode"
+              >
               </el-option>
             </el-select>
           </el-form-item>
@@ -84,16 +129,31 @@
 
         <el-form-item class="info-line online">
           <span>宣传内容</span>
-          <el-input :disabled="!saveStatus" v-model="infoApply.sellingpoint" placeholder="广告宣传内容" type="textarea"
-            :rows="3"></el-input>
+          <el-input
+            v-model="infoApply.sellingpoint"
+            :disabled="draftStatus"
+            placeholder="广告宣传内容"
+            type="textarea"
+            :rows="3"
+          ></el-input>
         </el-form-item>
         <el-form-item class="info-line online">
           <span>其他说明</span>
-          <el-input :disabled="!saveStatus" v-model="infoApply.procontent" placeholder="设计稿内容描述" type="textarea"
-            :rows="3"></el-input>
+          <el-input
+            v-model="infoApply.procontent"
+            :disabled="draftStatus"
+            placeholder="设计稿内容描述"
+            type="textarea"
+            :rows="3"
+          ></el-input>
         </el-form-item>
         <div style="padding: 0 20px 0 100px; margin-bottom: 20px">
-          <uploadDown ref="myupload" :datalist="datalist" :dialogStatus="uploadstatus"></uploadDown>
+          <uploadDown
+            v-if="uploadDownStatus"
+            ref="myupload"
+            :datalist="datalist"
+            :dialogStatus="uploadstatus"
+          ></uploadDown>
         </div>
         <div style="padding: 0 20px 0 100px; margin-bottom: 20px" v-if="uploadsts">
           <myUpload @uploadBack="uploadBack" :fileInfo="fileInfo" :fileList="fileInfo.fileList">
@@ -146,8 +206,12 @@
       <Workflow :list="infoApply" :requestForm="requestForm" @updateForm="updateForm" />
     </el-dialog>
     <div slot="footer" class="dialog-footer">
-      <el-button v-if="changeinfo" type="primary" @click="dialogCli(2)">处 理</el-button>
-      <el-button v-if="saveStatus" type="primary" @click="dialogCli(4)">保 存</el-button>
+      <el-button v-if="changeinfo" type="primary" @click="dialogCli(2)"
+        >处 理</el-button
+      >
+      <el-button v-if="!draftStatus" type="primary" @click="dialogClis()"
+        >保 存</el-button
+      >
       <!-- <el-button v-if="changeinfo" type="primary" @click="dialogCli(1)"
         >驳 回</el-button
       > -->
@@ -162,7 +226,7 @@ import Workflow from "../../../../components/workflowBase";
 import uploadDown from "../../../../components/uploadDown.vue";
 import myUpload from "../../../../components/upload.vue";
 export default {
-  props: ["componentInfo", "componentStatus", "changeinfo", "saveStatus"],
+  props: ["componentInfo", "componentStatus", "changeinfo", "draftStatus"],
   components: {
     uploadDown,
     myUpload,
@@ -170,10 +234,12 @@ export default {
   },
   data() {
     return {
-      applydept: '广告申请',
+      applydept:'广告申请',
+      // draftStatus:'',//起草状态更改表单状态
+      uploadDownStatus: false,
       requestForm: {
-        fresourceId: "99e7da22-5f04-11ed-b399-e00084564cce", //线上环境
-        // fresourceId: "e817fc35-5a51-11ed-8912-00505687dcd3", //测试环境
+        // fresourceId: "99e7da22-5f04-11ed-b399-e00084564cce", //线上环境
+        fresourceId: "e817fc35-5a51-11ed-8912-00505687dcd3", //测试环境
         // fresourceId: "3c9baf21-3e43-11ed-ad6b-d6cd97160e00", //本地环境
         processDefinitionKey: "ggsj_process",
       },
@@ -402,6 +468,18 @@ export default {
       return list;
     },
     //添加
+    dialogClis() {
+      this.$http({
+        url: "/market/ggsj/update",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: this.infoApply,
+      }).then((res) => {
+        console.log(res);
+      });
+    },
     dialogCli(v) {
       if(v ==2 ){
         this.checkexa = true;
@@ -470,8 +548,8 @@ export default {
           list.mkFileShareAttachList = this.attList;
           if (this.mkFileShareAttachList) {
             this.mkFileShareAttachList.map((item) => {
-              list.mkFileShareAttachList.push(item)
-            })
+              list.mkFileShareAttachList.push(item);
+            });
           }
           this.$http({
             url: "/market/ggsj/update",
@@ -687,18 +765,15 @@ export default {
         console.log(res);
         this.mkFileShareAttachList = res.data.mkFileShareAttachList;
         if (res.data.paramVal) {
-
         }
-        console.log(
-          (this.$refs.myupload.infolist = res.data.mkFileShareAttachList)
-        );
-        // this.datalist.attList = res.data.mkFileShareAttachList;
+        this.datalist.attList = res.data.mkFileShareAttachList;
+        this.uploadDownStatus = true;
       });
     },
     handleClose() {
       console.log(123);
       this.checkexa = false;
-    }
+    },
   },
   computed: {
     pickerOptions: function () {
@@ -730,6 +805,20 @@ export default {
       }
     },
   },
+  computed: {
+    pickerOptions: function () {
+      return {
+        disabledDate(time) {
+          // if(time.getTime() < Date.now() - 8.64e7 || (time.getTime() > Date.now() && time.getTime() < Date.now() + 8.64e7*3) ){
+          //     return true
+          // }
+          if (time.getTime() < Date.now() + 8.64e7 * 3) {
+            return true;
+          }
+        },
+      };
+    },
+  },
 };
 </script>
 

+ 1 - 1
src/router/index.js

@@ -2111,6 +2111,7 @@ const routes = [{
                 ['../pages/main/leader/demand/supportState.vue'], resolve)
         },
         {
+
             meta: {
                 name: '在线文档',
                 keepAlive: false
@@ -2120,7 +2121,6 @@ const routes = [{
             component: (resolve) => require( /* webpackChunkName: "system" */['../pages/main/onlineExcel/index'], resolve)
         },
         {
-            
             meta: {
                 name: '协同编辑',
                 keepAlive: false

+ 32 - 0
vue.config.js

@@ -85,6 +85,7 @@ module.exports = {
             //     new WebpackLifeCyclePlugin(),
             //     // new BundleAnalyzerPlugin()
             // ]
+
         }
     },
     parallel: true,
@@ -93,7 +94,11 @@ module.exports = {
         proxy: {
             // 开发环境变化可注释 ⬇️⬇️
             "/market/CMK": {
+<<<<<<< HEAD
+                target: "http://43.138.50.94:9600",
+=======
                 target: "http://192.168.2.124:9113",
+>>>>>>> 994fc041f082ba5e33229f3e58f7c4b6c7b355c4
                 ws: false,
                 changeOrigin: true,
                 pathRewrite: {
@@ -101,7 +106,11 @@ module.exports = {
                 },
             },
             "/market/mk": {
+<<<<<<< HEAD
+                target: "http://43.138.50.94:9600",
+=======
                 target: "http://192.168.2.124:9113",
+>>>>>>> 994fc041f082ba5e33229f3e58f7c4b6c7b355c4
                 ws: false,
                 changeOrigin: true,
                 pathRewrite: {
@@ -109,7 +118,11 @@ module.exports = {
                 },
             },
             "/market/techcentergj": {
+<<<<<<< HEAD
+                target: "http://43.138.50.94:9600",
+=======
                 target: "http://192.168.2.124:9113",
+>>>>>>> 994fc041f082ba5e33229f3e58f7c4b6c7b355c4
                 ws: false,
                 changeOrigin: true,
                 pathRewrite: {
@@ -117,13 +130,25 @@ module.exports = {
                 },
             },
             "/mkWangge": {
+<<<<<<< HEAD
+                target: "http://43.138.50.94:9600",
+=======
                 target: "http://192.168.2.124:9113",
+>>>>>>> 994fc041f082ba5e33229f3e58f7c4b6c7b355c4
                 ws: false,
                 changeOrigin: true,
                 pathRewrite: {
                     "^/market": "",
                 },
             },
+            "/api": {
+                target: "http://43.138.50.94:7777",
+                ws: false,
+                changeOrigin: true,
+                pathRewrite: {
+                    "^/api": "",
+                },
+            },
             // 开发环境变化可注释 ⬆️⬆️
             "/": {
                 // target: 'http://192.168.2.145:9600/spfm',
@@ -133,10 +158,17 @@ module.exports = {
                 // target: 'http://192.168.1.9:9600/spfm',
                 // target: 'http://127.0.0.1:9600/',
                 // target: 'http://192.168.0.156:9600/',
+<<<<<<< HEAD
+                // target: 'http://192.168.2.170:9600/',
+                // target: 'http://192.168.2.169:9600/',
+                target: "http://192.168.2.124:9600/",
+                // target:'http://43.138.50.94:9600',
+=======
                 // target: 'http://192.168.2.44:9600/',
                 target: 'http://192.168.2.124:9600/',
                 // target: "http://124.223.66.248:9600",
                 // target: "http://43.138.50.94:9600",
+>>>>>>> 994fc041f082ba5e33229f3e58f7c4b6c7b355c4
                 changeOrigin: true,
             },
         },