diff --git a/upgrade.properties b/upgrade.properties index f39bff95..2b30a0a3 100644 --- a/upgrade.properties +++ b/upgrade.properties @@ -1,6 +1,6 @@ # 本文件用于已部署好的系统检测自己是否需要升级使用 lastVersion=1.0.1 -upgradeContent=1、增加wiki文档模块;2、dubbo文档支持使用元数据生成参数和返回值;3、框架进行了大的拆分;4、增加升级通知;5、细节优化; +upgradeContent=1、增加wiki文档模块;2、dubbo文档支持使用元数据生成参数和返回值;3、框架进行了大的拆分;4、增加升级通知;5、细节优化 upgradeUrl=https://gitee.com/zyplayer/zyplayer-doc/releases -nextStep=1、支持直接同步到git的文档;2、支持微信文章拉取; +nextStep=1、支持直接同步到git的文档;2、支持微信文章拉取 diff --git a/zyplayer-doc-db/src/main/resources/doc-db.html b/zyplayer-doc-db/src/main/resources/doc-db.html index 4d946895..40a334bc 100644 --- a/zyplayer-doc-db/src/main/resources/doc-db.html +++ b/zyplayer-doc-db/src/main/resources/doc-db.html @@ -175,6 +175,22 @@ 暮光:城中城 +
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
diff --git a/zyplayer-doc-db/src/main/resources/webjars/doc-db/css/doc-db.css b/zyplayer-doc-db/src/main/resources/webjars/doc-db/css/doc-db.css index 46dc4ee5..977c84ba 100644 --- a/zyplayer-doc-db/src/main/resources/webjars/doc-db/css/doc-db.css +++ b/zyplayer-doc-db/src/main/resources/webjars/doc-db/css/doc-db.css @@ -1,41 +1,43 @@ -html,body{width: 100%;height: 100%;} - -.container{padding-top: 20px;} - -.table-info,.table-columns{margin-top: 10px;} - -.table-info .desc{margin-top: 10px;} -#tableDescInput{display: none;} - -#tableDescShow .icon-edit{cursor: pointer;margin-left: 20px;display: none;} - -.modal-table-box{margin-top: 10px; max-height: 500px;overflow-y: auto;} - -#fuzzySearchModal .table td:nth-child(3){word-break:break-all;max-width: 400px;} -#doExport{margin-right: 10px;} - -#exportModal .alert{margin-top: 10px;} - -#exportUl{list-style: none;} -#exportUl li{float: left; border: 1px solid #ccc;padding: 10px 15px; margin: 0 10px 10px 0; background-color: #ccc;cursor: pointer;} -#exportUl li.checked{border: 1px solid #3f51b5;background-color: #8666b8;color:#fff;} - -/* S-覆盖原生样式 */ -.chosen-container-single .chosen-single div b {margin-top: 8px;} -/* E-覆盖原生样式 */ - -/* S-JSON展示的样式 */ -pre.json{margin-top:0px;margin-bottom:0px;} -pre.json .canvas{font:10pt georgia;background-color:#ececec;color:#000000;border:1px solid #cecece;} -pre.json .objectBrace{color:#00aa00;font-weight:bold;} -pre.json .arrayBrace{color:#0033ff;font-weight:bold;} -pre.json .propertyName{color:#cc0000;font-weight:bold;} -pre.json .string{color:#007777;} -pre.json .number{color:#aa00aa;} -pre.json .boolean{color:#0000ff;} -pre.json .function{color:#aa6633;text-decoration:italic;} -pre.json .null{color:#0000ff;} -pre.json .comma{color:#000000;font-weight:bold;} -pre img{cursor: pointer;} -/* E-JSON展示的样式 */ - +html,body{width: 100%;height: 100%;} + +.container{padding-top: 20px;} + +.table-info,.table-columns{margin-top: 10px;} + +.table-info .desc{margin-top: 10px;} +#tableDescInput{display: none;} + +#tableDescShow .icon-edit{cursor: pointer;margin-left: 20px;display: none;} + +.modal-table-box{margin-top: 10px; max-height: 500px;overflow-y: auto;} + +#fuzzySearchModal .table td:nth-child(3){word-break:break-all;max-width: 400px;} +#doExport{margin-right: 10px;} + +#exportModal .alert{margin-top: 10px;} + +#exportUl{list-style: none;} +#exportUl li{float: left; border: 1px solid #ccc;padding: 10px 15px; margin: 0 10px 10px 0; background-color: #ccc;cursor: pointer;} +#exportUl li.checked{border: 1px solid #3f51b5;background-color: #8666b8;color:#fff;} + +.upgrade-info{display: none;} + +/* S-覆盖原生样式 */ +.chosen-container-single .chosen-single div b {margin-top: 8px;} +/* E-覆盖原生样式 */ + +/* S-JSON展示的样式 */ +pre.json{margin-top:0px;margin-bottom:0px;} +pre.json .canvas{font:10pt georgia;background-color:#ececec;color:#000000;border:1px solid #cecece;} +pre.json .objectBrace{color:#00aa00;font-weight:bold;} +pre.json .arrayBrace{color:#0033ff;font-weight:bold;} +pre.json .propertyName{color:#cc0000;font-weight:bold;} +pre.json .string{color:#007777;} +pre.json .number{color:#aa00aa;} +pre.json .boolean{color:#0000ff;} +pre.json .function{color:#aa6633;text-decoration:italic;} +pre.json .null{color:#0000ff;} +pre.json .comma{color:#000000;font-weight:bold;} +pre img{cursor: pointer;} +/* E-JSON展示的样式 */ + diff --git a/zyplayer-doc-db/src/main/resources/webjars/doc-db/js/doc-db.js b/zyplayer-doc-db/src/main/resources/webjars/doc-db/js/doc-db.js index 2b77f508..d700161e 100644 --- a/zyplayer-doc-db/src/main/resources/webjars/doc-db/js/doc-db.js +++ b/zyplayer-doc-db/src/main/resources/webjars/doc-db/js/doc-db.js @@ -168,6 +168,7 @@ $(document).ready(function(){ } }); initData(); + checkSystemUpgrade(); }); function initData(){ @@ -375,3 +376,20 @@ function fuzzySearchByDesc(){ }); } +function checkSystemUpgrade() { + ajaxTemp("system/info/upgrade", "post", "json", {}, function (json) { + if (json.errCode == 200 && !!json.data) { + $(".upgrade-info").show(); + $("#upgradeNowVersion").html(json.data.nowVersion); + $("#upgradeLastVersion").html(json.data.lastVersion); + $("#upgradeUrl").html("" + json.data.upgradeUrl + ""); + $("#upgradeContent").html(json.data.upgradeContent); + console.log("zyplayer-doc发现新版本:" + + "\n升级地址:" + json.data.upgradeUrl + + "\n当前版本:" + json.data.nowVersion + + "\n最新版本:" + json.data.lastVersion + + "\n升级内容:" + json.data.upgradeContent + ); + } + }); +} \ No newline at end of file diff --git a/zyplayer-doc-dubbo/src/main/resources/doc-dubbo.html b/zyplayer-doc-dubbo/src/main/resources/doc-dubbo.html index 39f946f7..33336962 100644 --- a/zyplayer-doc-dubbo/src/main/resources/doc-dubbo.html +++ b/zyplayer-doc-dubbo/src/main/resources/doc-dubbo.html @@ -162,6 +162,14 @@ 暮光:城中城 + 欢迎加群讨论,QQ群号:466363173,欢迎提交需求,欢迎使用和加入开发! @@ -219,6 +227,8 @@ value: 'java.lang.Integer' }], paramTypeValue: "java.lang.String", + // 升级信息 + upgradeInfo: {}, } }, watch: { @@ -228,6 +238,7 @@ // 无论发布在哪、如何修改源码,请勿删除本行原作者信息,感谢 console.log("%c项目信息:\n开发者列表:暮光:城中城\n项目地址:https://gitee.com/zyplayer/zyplayer-doc", "color:red"); this.doGetServiceList(); + this.checkSystemUpgrade(); }, methods: { handleOpen(key, keyPath) { @@ -423,7 +434,20 @@ app.requestResult = json.errMsg; } }); - } + }, + checkSystemUpgrade() { + ajaxTemp("system/info/upgrade", "post", "json", {}, function (json) { + if (json.errCode == 200 && !!json.data) { + app.upgradeInfo = json.data; + console.log("zyplayer-doc发现新版本:" + + "\n升级地址:" + json.data.upgradeUrl + + "\n当前版本:" + json.data.nowVersion + + "\n最新版本:" + json.data.lastVersion + + "\n升级内容:" + json.data.upgradeContent + ); + } + }); + }, } }); diff --git a/zyplayer-doc-grpc/src/main/resources/doc-grpc.html b/zyplayer-doc-grpc/src/main/resources/doc-grpc.html index 6dfbcbd8..f59de2b3 100644 --- a/zyplayer-doc-grpc/src/main/resources/doc-grpc.html +++ b/zyplayer-doc-grpc/src/main/resources/doc-grpc.html @@ -93,6 +93,14 @@ 暮光:城中城 + 欢迎加群讨论,QQ群号:466363173,欢迎提交需求,欢迎使用和加入开发! @@ -149,6 +157,8 @@ value: 'java.lang.Integer' }], paramTypeValue: "java.lang.String", + // 升级信息 + upgradeInfo: {}, } }, watch: { @@ -158,6 +168,7 @@ // 无论发布在哪、如何修改源码,请勿删除本行原作者信息,感谢 console.log("%c项目信息:\n项目地址:https://gitee.com/zyplayer/zyplayer-doc", "color:red"); this.doGetServiceList(); + this.checkSystemUpgrade(); }, methods: { handleOpen(key, keyPath) { @@ -346,7 +357,20 @@ } } return requestResult; - } + }, + checkSystemUpgrade() { + ajaxTemp("system/info/upgrade", "post", "json", {}, function (json) { + if (json.errCode == 200 && !!json.data) { + app.upgradeInfo = json.data; + console.log("zyplayer-doc发现新版本:" + + "\n升级地址:" + json.data.upgradeUrl + + "\n当前版本:" + json.data.nowVersion + + "\n最新版本:" + json.data.lastVersion + + "\n升级内容:" + json.data.upgradeContent + ); + } + }); + }, } }); diff --git a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/Application.java b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/Application.java index 0a0b4a3e..ba4c7fa0 100644 --- a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/Application.java +++ b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/Application.java @@ -9,6 +9,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableScheduling; import java.net.InetAddress; import java.util.Optional; @@ -16,6 +17,7 @@ import java.util.Optional; /** * 程序启动器 */ +@EnableScheduling @SpringBootApplication @ComponentScan(basePackages = {"com.zyplayer.doc.manage", "com.zyplayer.doc.data"}) public class Application extends SpringBootServletInitializer { diff --git a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/framework/config/DocGrpcConfig.java b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/framework/config/DocGrpcConfig.java deleted file mode 100644 index 4acdec36..00000000 --- a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/framework/config/DocGrpcConfig.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.zyplayer.doc.manage.framework.config; - -/** - * 开启zyplayer-doc-grpc服务 - * - * @author 暮光:城中城 - * @since 2018年11月11日 - */ -//@EnableDocGrpc -//@Configuration -public class DocGrpcConfig { - -} diff --git a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/task/SchedulerTask.java b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/task/SchedulerTask.java new file mode 100644 index 00000000..da608542 --- /dev/null +++ b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/task/SchedulerTask.java @@ -0,0 +1,47 @@ +package com.zyplayer.doc.manage.task; + +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSON; +import com.zyplayer.doc.manage.utils.UpgradeUtil; +import com.zyplayer.doc.manage.utils.bean.UpgradeInfo; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.io.StringReader; +import java.util.Objects; +import java.util.Properties; + +@Component +public class SchedulerTask { + + @Value("${zyplayer.doc.manage.version:''}") + private String nowVersion; + @Value("${zyplayer.doc.manage.upgradePropertiesUrl:''}") + private String upgradePropertiesUrl; + +// @Scheduled(cron = "0/10 * * * * ? ") + @Scheduled(cron = "0 0 1 * * ?") + public void upgradeTask() { + // 检查更新,访问的码云服务器获取升级内容的 + if (StringUtils.isBlank(upgradePropertiesUrl)) { + return; + } + try { + String upgradeStr = HttpRequest.get(upgradePropertiesUrl).execute().body(); + Properties properties = new Properties(); + properties.load(new StringReader(upgradeStr)); + if (Objects.equals(nowVersion, properties.getProperty("lastVersion"))) { + return; + } + properties.setProperty("nowVersion", nowVersion); + String jsonString = JSON.toJSONString(properties); + UpgradeUtil.upgradeInfo = JSON.parseObject(jsonString, UpgradeInfo.class); + } catch (Exception e) { + e.printStackTrace(); + } + } +} + diff --git a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/utils/UpgradeUtil.java b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/utils/UpgradeUtil.java new file mode 100644 index 00000000..bce3c7f4 --- /dev/null +++ b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/utils/UpgradeUtil.java @@ -0,0 +1,9 @@ +package com.zyplayer.doc.manage.utils; + +import com.zyplayer.doc.manage.utils.bean.UpgradeInfo; + +import java.util.Properties; + +public class UpgradeUtil { + public static UpgradeInfo upgradeInfo; +} diff --git a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/utils/bean/UpgradeInfo.java b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/utils/bean/UpgradeInfo.java new file mode 100644 index 00000000..8fb37f49 --- /dev/null +++ b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/utils/bean/UpgradeInfo.java @@ -0,0 +1,52 @@ +package com.zyplayer.doc.manage.utils.bean; + +/** + * 升级信息对象 + */ +public class UpgradeInfo { + private String nowVersion; + private String lastVersion; + private String upgradeContent; + private String upgradeUrl; + private String nextStep; + + public String getLastVersion() { + return lastVersion; + } + + public void setLastVersion(String lastVersion) { + this.lastVersion = lastVersion; + } + + public String getUpgradeContent() { + return upgradeContent; + } + + public void setUpgradeContent(String upgradeContent) { + this.upgradeContent = upgradeContent; + } + + public String getUpgradeUrl() { + return upgradeUrl; + } + + public void setUpgradeUrl(String upgradeUrl) { + this.upgradeUrl = upgradeUrl; + } + + public String getNextStep() { + return nextStep; + } + + public void setNextStep(String nextStep) { + this.nextStep = nextStep; + } + + public String getNowVersion() { + return nowVersion; + } + + public void setNowVersion(String nowVersion) { + this.nowVersion = nowVersion; + } +} diff --git a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/web/manage/SystemInfoController.java b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/web/manage/SystemInfoController.java new file mode 100644 index 00000000..5ea76135 --- /dev/null +++ b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/web/manage/SystemInfoController.java @@ -0,0 +1,19 @@ +package com.zyplayer.doc.manage.web.manage; + +import com.zyplayer.doc.core.json.DocResponseJson; +import com.zyplayer.doc.core.json.ResponseJson; +import com.zyplayer.doc.manage.utils.UpgradeUtil; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/system/info") +public class SystemInfoController { + + @PostMapping("/upgrade") + public ResponseJson upgradeInfo() { + return DocResponseJson.ok(UpgradeUtil.upgradeInfo); + } + +} diff --git a/zyplayer-doc-manage/src/main/resources/application.yml b/zyplayer-doc-manage/src/main/resources/application.yml index 429e76f4..0c1d4e25 100644 --- a/zyplayer-doc-manage/src/main/resources/application.yml +++ b/zyplayer-doc-manage/src/main/resources/application.yml @@ -32,8 +32,12 @@ zyplayer: proxy-request: # 允许代理请求的域名,正则表达式,多个使用 ; 分割,必须设置,防止通过代理接口访问到内部资源,实在觉得没必要可设置为:.+ white-domain: \S+\.zyplayer\.com;127.0.1:8080;\S+\.xiaominfo\.com; - # zyplayer_doc_manage管理端的数据库配置 + # zyplayer_doc_manage相关配置 manage: + # 版本和升级信息获取地址 + version: 1.0.1 + upgradePropertiesUrl: https://gitee.com/zyplayer/zyplayer-doc/raw/master/upgrade.properties + # 管理端的数据库配置 datasource: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/zyplayer_doc_manage?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useSSL=false diff --git a/zyplayer-doc-swagger/src/main/resources/document.html b/zyplayer-doc-swagger/src/main/resources/document.html index 85777a7b..2f672d8c 100644 --- a/zyplayer-doc-swagger/src/main/resources/document.html +++ b/zyplayer-doc-swagger/src/main/resources/document.html @@ -75,7 +75,8 @@ 使用中您有任何的意见和建议都可到源码地址处反馈哦!
源码地址:zyplayer-doc-swagger(还有其他很多功能哦), 前端框架:zui(很不错), - 我的网站:空间轴自由发挥(都已很久未维护) + 我的网站:空间轴自由发挥(都已很久未维护)
+
diff --git a/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui.js b/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui.js index 7fca97b1..d12cff53 100644 --- a/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui.js +++ b/zyplayer-doc-swagger/src/main/resources/webjars/mg-ui/js/mg-ui.js @@ -71,6 +71,7 @@ $(document).ready(function(){ ]; $('#rightZpages').tabs({tabs: tabsArr}); rightContentTabs = $('#rightZpages').data('zui.tabs'); + checkSystemUpgrade(); }); /** @@ -1051,3 +1052,23 @@ function initDashboard(){ $('#homePageDashboard').append('
'); $('#homePageDashboard .dashboard').append(template); } + +function checkSystemUpgrade() { + ajaxTemp("system/info/upgrade", "post", "json", {}, function (json) { + if (json.errCode == 200 && !!json.data) { + $("#upgradeInfoBox").html( + "发现新版本" + + ",当前版本:" + json.data.nowVersion + + ",最新版本:" + json.data.lastVersion + "" + + "
升级地址:" + json.data.upgradeUrl + "" + + "
升级内容:" + json.data.upgradeContent + ); + console.log("zyplayer-doc发现新版本:" + + "\n升级地址:" + json.data.upgradeUrl + + "\n当前版本:" + json.data.nowVersion + + "\n最新版本:" + json.data.lastVersion + + "\n升级内容:" + json.data.upgradeContent + ); + } + }); +} \ No newline at end of file diff --git a/zyplayer-doc-wiki/src/main/resources/doc-wiki.html b/zyplayer-doc-wiki/src/main/resources/doc-wiki.html index 45131ee1..12c46fb5 100644 --- a/zyplayer-doc-wiki/src/main/resources/doc-wiki.html +++ b/zyplayer-doc-wiki/src/main/resources/doc-wiki.html @@ -237,6 +237,14 @@ 暮光:城中城 + 欢迎加群讨论,QQ群号:466363173,欢迎提交需求,欢迎使用和加入开发! @@ -312,30 +320,35 @@ recommentInfo: {}, // 页面跳转相关 initOver: false, - urlParam: { - pageId: 0 - }, + doNotPushState: false, + urlParamPageId: 0, + urlParam: {}, + // 升级信息 + upgradeInfo: {}, } }, watch: { - urlParam: { - handler(newVal, oldVal) { - if (!this.initOver) return; - var params = urlToParam(newVal).slice(1); + urlParamPageId: function (newVal, oldVal) { + if (!this.initOver) return; + var oldPageId = oldVal || 0; + // console.log(app.doNotPushState, newVal, oldVal); + if (app.doNotPushState) { + app.doNotPushState = false; + } else { + this.urlParam.pageId = newVal; + var params = urlToParam(this.urlParam).slice(1); window.history.pushState(null, null, '?' + params); - console.log(newVal, oldVal, params); - var oldPageId = oldVal.pageId || 0; - if (!!newVal.pageId && newVal.pageId > 0 && newVal.pageId !== oldPageId) { - this.wikiPageExpandedKeys = [parseInt(newVal.pageId)]; - this.loadPageDetail(newVal.pageId); - } - }, - deep: true, immediate: true + } + if (!!newVal && newVal > 0 && newVal !== oldPageId) { + this.wikiPageExpandedKeys = [newVal]; + this.loadPageDetail(newVal); + } } }, mounted: function () { this.init(); this.loadSpaceList(); + this.checkSystemUpgrade(); this.initOver = true; }, methods: { @@ -568,7 +581,7 @@ ajaxTemp("zyplayer-doc-wiki/page/update", "post", "json", param, function (json) { if (validateResult(json)) { Toast.success("保存成功!"); - app.loadPageDetail(json.data.id); + app.urlParamPageId = json.data.id; app.doGetPageList(null); } }); @@ -580,7 +593,7 @@ } console.log("点击节点:", data); app.lastClickNode = data; - this.loadPageDetail(app.lastClickNode.id); + app.urlParamPageId = app.lastClickNode.id; }, handleNodeExpand(node) { if (node.children.length > 0 && node.children[0].needLoad) { @@ -639,7 +652,6 @@ app.pageContent = json.data.pageContent || {}; app.pageFileList = json.data.fileList || []; app.uploadFormData = {pageId: app.wikiPage.id}; - app.urlParam.pageId = app.wikiPage.id; } }); this.loadCommentList(pageId); @@ -725,13 +737,20 @@ } } }, - init(){ - page.newPageContentEditor = new window.wangEditor('#newPageContentDiv'); - page.newPageContentEditor.customConfig.uploadImgServer = 'zyplayer-doc-wiki/common/upload'; - page.newPageContentEditor.customConfig.zIndex = 100; - page.newPageContentEditor.customConfig.pasteFilterStyle = false; - page.newPageContentEditor.create(); - // 初始化页面参数 + checkSystemUpgrade() { + ajaxTemp("system/info/upgrade", "post", "json", {}, function (json) { + if (json.errCode == 200 && !!json.data) { + app.upgradeInfo = json.data; + console.log("zyplayer-doc发现新版本:" + + "\n升级地址:" + json.data.upgradeUrl + + "\n当前版本:" + json.data.nowVersion + + "\n最新版本:" + json.data.lastVersion + + "\n升级内容:" + json.data.upgradeContent + ); + } + }); + }, + createUrlParam() { var url = document.location.toString(); if (url.indexOf("?") >= 0) { var urlParam = {}; @@ -746,8 +765,23 @@ urlParam[param[0]] = param[1]; } } + if (!!urlParam.pageId) { + this.urlParamPageId = parseInt(urlParam.pageId); + } this.urlParam = urlParam; } + }, + init(){ + page.newPageContentEditor = new window.wangEditor('#newPageContentDiv'); + page.newPageContentEditor.customConfig.uploadImgServer = 'zyplayer-doc-wiki/common/upload'; + page.newPageContentEditor.customConfig.zIndex = 100; + page.newPageContentEditor.customConfig.pasteFilterStyle = false; + page.newPageContentEditor.create(); + this.createUrlParam(); + window.addEventListener("popstate", function (e) { + app.doNotPushState = true; + app.createUrlParam(); + }, false); } } }); diff --git a/zyplayer-doc-wiki/src/main/resources/open-wiki.html b/zyplayer-doc-wiki/src/main/resources/open-wiki.html index e06f84a9..e0380bdd 100644 --- a/zyplayer-doc-wiki/src/main/resources/open-wiki.html +++ b/zyplayer-doc-wiki/src/main/resources/open-wiki.html @@ -147,25 +147,27 @@ recommentInfo: {}, // 页面跳转相关 initOver: false, - urlParam: { - pageId: 0 - }, + doNotPushState: false, + urlParamPageId: 0, + urlParam: {}, } }, watch: { - urlParam: { - handler(newVal, oldVal) { - if (!this.initOver) return; - var params = urlToParam(newVal).slice(1); + urlParamPageId: function (newVal, oldVal) { + if (!this.initOver) return; + var oldPageId = oldVal || 0; + // console.log(app.doNotPushState, newVal, oldVal); + if (app.doNotPushState) { + app.doNotPushState = false; + } else { + this.urlParam.pageId = newVal; + var params = urlToParam(this.urlParam).slice(1); window.history.pushState(null, null, '?' + params); - console.log(newVal, oldVal, params); - var oldPageId = oldVal.pageId || 0; - if (!!newVal.pageId && newVal.pageId > 0 && newVal.pageId !== oldPageId) { - this.wikiPageExpandedKeys = [parseInt(newVal.pageId)]; - this.loadPageDetail(newVal.pageId); - } - }, - deep: true, immediate: true + } + if (!!newVal && newVal > 0 && newVal !== oldPageId) { + this.wikiPageExpandedKeys = [newVal]; + this.loadPageDetail(newVal); + } } }, mounted: function () { @@ -189,7 +191,7 @@ } console.log("点击节点:", data); app.lastClickNode = data; - this.loadPageDetail(app.lastClickNode.id); + app.urlParamPageId = app.lastClickNode.id; }, handleNodeExpand(node) { if (node.children.length > 0 && node.children[0].needLoad) { @@ -208,7 +210,6 @@ app.pageContent = json.data.pageContent || {}; app.pageFileList = json.data.fileList || []; app.uploadFormData = {pageId: app.wikiPage.id}; - app.urlParam.pageId = app.wikiPage.id; } }); }, @@ -255,13 +256,7 @@ } } }, - init(){ - page.newPageContentEditor = new window.wangEditor('#newPageContentDiv'); - page.newPageContentEditor.customConfig.uploadImgServer = 'zyplayer-doc-wiki/common/upload'; - page.newPageContentEditor.customConfig.zIndex = 100; - page.newPageContentEditor.customConfig.pasteFilterStyle = false; - page.newPageContentEditor.create(); - // 初始化页面参数 + createUrlParam() { var url = document.location.toString(); if (url.indexOf("?") >= 0) { var urlParam = {}; @@ -276,8 +271,23 @@ urlParam[param[0]] = param[1]; } } + if (!!urlParam.pageId) { + this.urlParamPageId = parseInt(urlParam.pageId); + } this.urlParam = urlParam; } + }, + init(){ + page.newPageContentEditor = new window.wangEditor('#newPageContentDiv'); + page.newPageContentEditor.customConfig.uploadImgServer = 'zyplayer-doc-wiki/common/upload'; + page.newPageContentEditor.customConfig.zIndex = 100; + page.newPageContentEditor.customConfig.pasteFilterStyle = false; + page.newPageContentEditor.create(); + this.createUrlParam(); + window.addEventListener("popstate", function (e) { + app.doNotPushState = true; + app.createUrlParam(); + }, false); } } }); diff --git a/zyplayer-doc-wiki/src/main/resources/webjars/doc-wiki/js/common.js b/zyplayer-doc-wiki/src/main/resources/webjars/doc-wiki/js/common.js index 64d833ec..5abaad2f 100644 --- a/zyplayer-doc-wiki/src/main/resources/webjars/doc-wiki/js/common.js +++ b/zyplayer-doc-wiki/src/main/resources/webjars/doc-wiki/js/common.js @@ -27,7 +27,7 @@ function deserialize(value) { } function validateResult(result) { - if(result.errCode == 200) { + if (result.errCode == 200) { return true; } else { Toast.error(result.errMsg);