From 3bf72a9b2e370363b901fc4724a0da23bbb7a0c1 Mon Sep 17 00:00:00 2001 From: 5herhom <35916131+5herhom@users.noreply.github.com> Date: Tue, 18 Feb 2020 11:54:50 +0800 Subject: [PATCH 01/25] Update install.sh Repair the issue that two ips are gotten when installing. --- bin/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/install.sh b/bin/install.sh index 7a3c300a4d..e96327b873 100644 --- a/bin/install.sh +++ b/bin/install.sh @@ -104,7 +104,7 @@ source ${DISTRIBUTION} isSuccess "load config" local_host="`hostname --fqdn`" -ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1' ) function isLocal(){ if [ "$1" == "127.0.0.1" ];then From 3ac5c49bb49beed10cb81b88f0413ba201e33fed Mon Sep 17 00:00:00 2001 From: 5herhom <35916131+5herhom@users.noreply.github.com> Date: Tue, 18 Feb 2020 12:00:50 +0800 Subject: [PATCH 02/25] Update checkServices.sh Repair the bug that two ips are gotten. --- bin/checkServices.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/checkServices.sh b/bin/checkServices.sh index 2b45c3e666..72df04be43 100644 --- a/bin/checkServices.sh +++ b/bin/checkServices.sh @@ -31,7 +31,7 @@ MICRO_SERVICE_PORT=$3 local_host="`hostname --fqdn`" -ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') function isLocal(){ if [ "$1" == "127.0.0.1" ];then From c845f62cca06ffeebe353e3e93d38c0ef0080f9b Mon Sep 17 00:00:00 2001 From: 5herhom <35916131+5herhom@users.noreply.github.com> Date: Tue, 18 Feb 2020 12:01:43 +0800 Subject: [PATCH 03/25] Update install.sh --- bin/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/install.sh b/bin/install.sh index e96327b873..170b03360c 100644 --- a/bin/install.sh +++ b/bin/install.sh @@ -104,7 +104,7 @@ source ${DISTRIBUTION} isSuccess "load config" local_host="`hostname --fqdn`" -ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1' ) +ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') function isLocal(){ if [ "$1" == "127.0.0.1" ];then From f3495fbfa43cb2b77d563cf994416168474ad74c Mon Sep 17 00:00:00 2001 From: 5herhom <35916131+5herhom@users.noreply.github.com> Date: Tue, 18 Feb 2020 12:03:47 +0800 Subject: [PATCH 04/25] Update start-all.sh Repair bug that two ips are gotten. --- bin/start-all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/start-all.sh b/bin/start-all.sh index b61af2ff0b..98a07f6bdc 100644 --- a/bin/start-all.sh +++ b/bin/start-all.sh @@ -43,7 +43,7 @@ fi } local_host="`hostname --fqdn`" -ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') function isLocal(){ if [ "$1" == "127.0.0.1" ];then From c88cb8ddbbc00017b4fbc033bfeeef097f460425 Mon Sep 17 00:00:00 2001 From: 5herhom <35916131+5herhom@users.noreply.github.com> Date: Tue, 18 Feb 2020 12:05:02 +0800 Subject: [PATCH 05/25] Update stop-all.sh Repair the bug that two ips are gotten. --- bin/stop-all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/stop-all.sh b/bin/stop-all.sh index c707085a39..838b9babc9 100644 --- a/bin/stop-all.sh +++ b/bin/stop-all.sh @@ -34,7 +34,7 @@ export DISTRIBUTION=${DISTRIBUTION:-"${CONF_DIR}/config.sh"} source ${DISTRIBUTION} local_host="`hostname --fqdn`" -ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') function isSuccess(){ if [ $? -ne 0 ]; then From 9a095fd9cea1a3f23a74339e4ee4137bb5e4798b Mon Sep 17 00:00:00 2001 From: 5herhom <35916131+5herhom@users.noreply.github.com> Date: Tue, 18 Feb 2020 14:54:01 +0800 Subject: [PATCH 06/25] Update config.sh --- web/config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/config.sh b/web/config.sh index 5cebe73d0b..864e492715 100644 --- a/web/config.sh +++ b/web/config.sh @@ -5,4 +5,4 @@ dss_web_port="8088" linkis_gateway_url="http://localhost:9001" #dss nginx ip -dss_nginx_ip=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +dss_nginx_ip=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') From 96a94c2914e1dc5e31052277f726bdbb6afd3478 Mon Sep 17 00:00:00 2001 From: 5herhom <35916131+5herhom@users.noreply.github.com> Date: Tue, 18 Feb 2020 15:00:20 +0800 Subject: [PATCH 07/25] =?UTF-8?q?Update=20DSS=E5=BF=AB=E9=80=9F=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E4=BD=BF=E7=94=A8=E6=96=87=E6=A1=A3.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\205\344\275\277\347\224\250\346\226\207\346\241\243.md" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/docs/zh_CN/ch2/DSS\345\277\253\351\200\237\345\256\211\350\243\205\344\275\277\347\224\250\346\226\207\346\241\243.md" "b/docs/zh_CN/ch2/DSS\345\277\253\351\200\237\345\256\211\350\243\205\344\275\277\347\224\250\346\226\207\346\241\243.md" index 70f03db110..4657b3bb20 100644 --- "a/docs/zh_CN/ch2/DSS\345\277\253\351\200\237\345\256\211\350\243\205\344\275\277\347\224\250\346\226\207\346\241\243.md" +++ "b/docs/zh_CN/ch2/DSS\345\277\253\351\200\237\345\256\211\350\243\205\344\275\277\347\224\250\346\226\207\346\241\243.md" @@ -132,7 +132,7 @@ dss_port="8088" linkis_url="http://127.0.0.1:9001" # dss ip address -dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') ``` 环境准备完毕,点我进入 [五、安装和使用](https://github.com/WeBankFinTech/DataSphereStudio/blob/master/docs/zh_CN/ch2/DSS%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.md#%E4%BA%94%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8) @@ -243,7 +243,7 @@ dss_port="8088" linkis_url="http://127.0.0.1:9001" # dss ip address -dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') ``` 环境准备完毕,点我进入 [五、安装和使用](https://github.com/WeBankFinTech/DataSphereStudio/blob/master/docs/zh_CN/ch2/DSS%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.md#%E4%BA%94%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8) @@ -365,7 +365,7 @@ dss_port="8088" linkis_url="http://127.0.0.1:9001" # dss ip address -dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') ``` 环境准备完毕,点我进入 [五、安装和使用](https://github.com/WeBankFinTech/DataSphereStudio/blob/master/docs/zh_CN/ch2/DSS%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3.md#%E4%BA%94%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8) From 43a7e666dcfd9cf68d4abbeabcfc6d89bc61b8a8 Mon Sep 17 00:00:00 2001 From: 5herhom <35916131+5herhom@users.noreply.github.com> Date: Tue, 18 Feb 2020 15:01:44 +0800 Subject: [PATCH 08/25] Update DSS Quick Installation Guide.md --- docs/en_US/ch2/DSS Quick Installation Guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en_US/ch2/DSS Quick Installation Guide.md b/docs/en_US/ch2/DSS Quick Installation Guide.md index f4b8cd1595..b05eac6f6b 100644 --- a/docs/en_US/ch2/DSS Quick Installation Guide.md +++ b/docs/en_US/ch2/DSS Quick Installation Guide.md @@ -103,7 +103,7 @@ dss_port="8088" linkis_url="http://127.0.0.1:9001" # dss ip address -dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') ``` The environment is ready, click me to enter ****[4. Installation and use](https://github.com/WeBankFinTech/DataSphereStudio/blob/master/docs/en_US/ch2/DSS%20Quick%20Installation%20Guide.md#four-installation-and-use)** @@ -219,7 +219,7 @@ dss_port="8088" linkis_url="http://127.0.0.1:9001" # dss ip address -dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') +dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1') ``` The environment is ready, click me to enter **[Four Installation and use](https://github.com/WeBankFinTech/DataSphereStudio/blob/master/docs/en_US/ch2/DSS%20Quick%20Installation%20Guide.md#four-installation-and-use)** From f0316e8f378f7df73418e18f27ddb6002be01d6d Mon Sep 17 00:00:00 2001 From: "xyqiao@vip.qq.com" Date: Sun, 15 Mar 2020 15:34:11 +0800 Subject: [PATCH 09/25] #116 --- .../service/AbstractEventCheckReceiver.java | 57 +++++++++++++------ 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/eventchecker-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/schedulis/jobtype/service/AbstractEventCheckReceiver.java b/eventchecker-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/schedulis/jobtype/service/AbstractEventCheckReceiver.java index 4f0a85e07f..fbd1c887ae 100644 --- a/eventchecker-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/schedulis/jobtype/service/AbstractEventCheckReceiver.java +++ b/eventchecker-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/schedulis/jobtype/service/AbstractEventCheckReceiver.java @@ -80,39 +80,62 @@ boolean updateMsgOffset(int jobId, Properties props, Logger log, String[] consum boolean result = false; String vNewMsgID = "-1"; PreparedStatement updatePstmt = null; + PreparedStatement pstmtForGetID = null; Connection msgConn = null; vNewMsgID = setConsumedMsg(props,log,consumedMsgInfo); try { if(StringUtils.isNotEmpty(vNewMsgID) && StringUtils.isNotBlank(vNewMsgID) && !"-1".equals(vNewMsgID)){ msgConn = getEventCheckerConnection(props,log); if(msgConn == null) return false; - int vProcessID = jobId; - String vReceiveTime = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");; - String sqlForUpdateMsg = "INSERT INTO event_status(receiver,topic,msg_name,receive_time,msg_id) VALUES(?,?,?,?,?) ON DUPLICATE KEY UPDATE receive_time=VALUES(receive_time),msg_id= CASE WHEN msg_id= " + lastMsgId + " THEN VALUES(msg_id) ELSE msg_id END"; - log.info("last message offset {} is:" + lastMsgId); - updatePstmt = msgConn.prepareCall(sqlForUpdateMsg); - updatePstmt.setString(1, receiver); - updatePstmt.setString(2, topic); - updatePstmt.setString(3, msgName); - updatePstmt.setString(4, vReceiveTime); - updatePstmt.setString(5, vNewMsgID); - int updaters = updatePstmt.executeUpdate(); - log.info("updateMsgOffset successful {} update result is:" + updaters); - if(updaters != 0){ - log.info("Received message successfully , update message status succeeded, consumed flow execution ID: " + vProcessID); - //return true after update success - result = true; + msgConn.setAutoCommit(false); + String sqlForReadMsgID = "SELECT msg_id FROM event_status WHERE receiver=? AND topic=? AND msg_name=? for update"; + pstmtForGetID = msgConn.prepareCall(sqlForReadMsgID); + pstmtForGetID.setString(1, receiver); + pstmtForGetID.setString(2, topic); + pstmtForGetID.setString(3, msgName); + ResultSet rs = pstmtForGetID.executeQuery(); + String nowLastMsgId = rs.last()==true ? rs.getString("msg_id"):"0"; + log.info("receive message successfully , Now check to see if the latest offset has changed ,nowLastMsgId is {} " + nowLastMsgId); + if("0".equals(nowLastMsgId) || nowLastMsgId.equals(lastMsgId)){ + + int vProcessID = jobId; + String vReceiveTime = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");; + String sqlForUpdateMsg = "INSERT INTO event_status(receiver,topic,msg_name,receive_time,msg_id) VALUES(?,?,?,?,?) ON DUPLICATE KEY UPDATE receive_time=VALUES(receive_time),msg_id= CASE WHEN msg_id= " + lastMsgId + " THEN VALUES(msg_id) ELSE msg_id END"; + log.info("last message offset {} is:" + lastMsgId); + updatePstmt = msgConn.prepareCall(sqlForUpdateMsg); + updatePstmt.setString(1, receiver); + updatePstmt.setString(2, topic); + updatePstmt.setString(3, msgName); + updatePstmt.setString(4, vReceiveTime); + updatePstmt.setString(5, vNewMsgID); + int updaters = updatePstmt.executeUpdate(); + log.info("updateMsgOffset successful {} update result is:" + updaters); + if(updaters != 0){ + log.info("Received message successfully , update message status succeeded, consumed flow execution ID: " + vProcessID); + //return true after update success + result = true; + }else{ + log.info("Received message successfully , update message status failed, consumed flow execution ID: " + vProcessID); + result = false; + } }else{ - log.info("Received message successfully , update message status failed, consumed flow execution ID: " + vProcessID); + log.info("the latest offset has changed , Keep waiting for the signal"); result = false; } + msgConn.commit(); }else{ result = false; } }catch (SQLException e){ log.error("Error update Msg Offset" + e); + try { + msgConn.rollback(); + } catch (SQLException ex) { + log.error("transaction rollback failed " + e); + } return false; }finally { + closeQueryStmt(pstmtForGetID, log); closeQueryStmt(updatePstmt, log); closeConnection(msgConn, log); } From 1233c4ee1afed567b670cfa42f2769734d814f47 Mon Sep 17 00:00:00 2001 From: zwx-master <1208247854@qq.com> Date: Wed, 3 Jun 2020 15:59:26 +0800 Subject: [PATCH 10/25] sql and pyspark associate script --- web/src/js/module/process/component/associateScript.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/src/js/module/process/component/associateScript.vue b/web/src/js/module/process/component/associateScript.vue index 26b4ea9697..545c633390 100644 --- a/web/src/js/module/process/component/associateScript.vue +++ b/web/src/js/module/process/component/associateScript.vue @@ -38,7 +38,7 @@ import { isEmpty, cloneDeep } from 'lodash'; import storage from '@/js/helper/storage'; import directoryDialog from '@js/component/directoryDialog/index.vue'; - +import { ext } from '@/js/service/nodeType'; export default { components: { directoryDialog, @@ -82,8 +82,8 @@ export default { this.setFileTree(); }); this.filterNode = (node) => { - const type = this.nodeData.type.slice(this.nodeData.type.lastIndexOf('.') + 1, this.nodeData.type.length); - const match = this.supportModes.find((item) => item.rule.test(node.label) && item.flowType === type); + const model = ext[this.nodeData.type]; + const match = this.supportModes.find((item) => item.rule.test(node.label) && item.flowType === model); return !node.isLeaf || (node.isLeaf && match); }; }, From 6f631247f1a3118068426f00cefdff341dd576c1 Mon Sep 17 00:00:00 2001 From: zwx-master <1208247854@qq.com> Date: Fri, 12 Jun 2020 09:37:32 +0800 Subject: [PATCH 11/25] OpenFile interface data modification --- web/src/js/module/process/module.vue | 2 +- web/src/js/module/workbench/container.vue | 4 ++-- web/src/js/module/workbench/script/result.vue | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/web/src/js/module/process/module.vue b/web/src/js/module/process/module.vue index 5b734c3bbd..ef04ba41c5 100644 --- a/web/src/js/module/process/module.vue +++ b/web/src/js/module/process/module.vue @@ -1635,7 +1635,7 @@ export default { const fileName = `${time.getTime()}${match.ext}`; const params = { fileName, - scriptContent: rst.fileContent, + scriptContent: rst.fileContent[0][0], metadata: rst.params, }; api.fetch('/filesystem/saveScriptToBML', params, 'post') diff --git a/web/src/js/module/workbench/container.vue b/web/src/js/module/workbench/container.vue index 64c7dd8e2f..68773e0067 100644 --- a/web/src/js/module/workbench/container.vue +++ b/web/src/js/module/workbench/container.vue @@ -441,13 +441,13 @@ export default { api.fetch('/filesystem/openFile', { path: option.path, }, 'get').then((rst) => { - const ismodifyByOldTab = option.code && !rst.fileContent; + const ismodifyByOldTab = option.code && !rst.fileContent[0][0]; const params = ismodifyByOldTab ? option.params : this.convertSettingParams(rst.params); this[methodName]({ id: md5Path, filename: option.filename, filepath: option.path, - code: rst.fileContent || option.code, + code: rst.fileContent[0][0] || option.code, params, type: option.type, saveAs: option.saveAs || false, diff --git a/web/src/js/module/workbench/script/result.vue b/web/src/js/module/workbench/script/result.vue index 30c0458a87..ad40b71dd0 100644 --- a/web/src/js/module/workbench/script/result.vue +++ b/web/src/js/module/workbench/script/result.vue @@ -78,7 +78,7 @@ v-else-if="result.type === '5'" :style="{'height': resultHeight}" class="html-result-div" - v-html="result.bodyRows"/> + v-html="result.bodyRows[0][0]"/> {{ $t('message.workBench.body.script.result.emptyText') }} From 74ace5a181788074a0efab6d896c6d9fd31db9aa Mon Sep 17 00:00:00 2001 From: zwx-master <1208247854@qq.com> Date: Thu, 18 Jun 2020 10:27:24 +0800 Subject: [PATCH 12/25] Add default value for eventcheck parameter: msg.body --- web/src/js/module/process/module.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/js/module/process/module.vue b/web/src/js/module/process/module.vue index ef04ba41c5..06846caa42 100644 --- a/web/src/js/module/process/module.vue +++ b/web/src/js/module/process/module.vue @@ -797,7 +797,7 @@ export default { 'msgName': '', 'queryFrequency': 10, 'maxReceiveHours': 12, - 'msgSavekey': '', + 'msgSavekey': 'msg.body', 'onlyReceiveToday': 'true', }, }); From 58e69692cf35ae551296b30f3f7a4eef17ae44a1 Mon Sep 17 00:00:00 2001 From: zwx-master <1208247854@qq.com> Date: Thu, 18 Jun 2020 10:41:47 +0800 Subject: [PATCH 13/25] Result set sorting --- web/src/js/component/table/index.js | 2 +- .../js/component/table/resultTable/body.vue | 285 ++++++++++++++++++ .../js/component/table/resultTable/header.vue | 128 ++++++++ .../js/component/table/resultTable/list.vue | 102 +++++++ .../js/component/table/resultTable/table.vue | 188 ++++++++++++ web/src/js/module/workbench/script/result.vue | 153 +++++++++- 6 files changed, 851 insertions(+), 7 deletions(-) create mode 100644 web/src/js/component/table/resultTable/body.vue create mode 100644 web/src/js/component/table/resultTable/header.vue create mode 100644 web/src/js/component/table/resultTable/list.vue create mode 100644 web/src/js/component/table/resultTable/table.vue diff --git a/web/src/js/component/table/index.js b/web/src/js/component/table/index.js index 350c6b1a73..5def7449c0 100644 --- a/web/src/js/component/table/index.js +++ b/web/src/js/component/table/index.js @@ -15,7 +15,7 @@ * */ -import WeTable from './table.vue'; +import WeTable from './resultTable/table.vue'; import historyTable from './historyTable/historyTable.vue'; export default { WeTable, diff --git a/web/src/js/component/table/resultTable/body.vue b/web/src/js/component/table/resultTable/body.vue new file mode 100644 index 0000000000..502a4aa3f2 --- /dev/null +++ b/web/src/js/component/table/resultTable/body.vue @@ -0,0 +1,285 @@ + + + diff --git a/web/src/js/component/table/resultTable/header.vue b/web/src/js/component/table/resultTable/header.vue new file mode 100644 index 0000000000..f8bfc2fec5 --- /dev/null +++ b/web/src/js/component/table/resultTable/header.vue @@ -0,0 +1,128 @@ + + diff --git a/web/src/js/component/table/resultTable/list.vue b/web/src/js/component/table/resultTable/list.vue new file mode 100644 index 0000000000..aab7cf4e1e --- /dev/null +++ b/web/src/js/component/table/resultTable/list.vue @@ -0,0 +1,102 @@ + + diff --git a/web/src/js/component/table/resultTable/table.vue b/web/src/js/component/table/resultTable/table.vue new file mode 100644 index 0000000000..faa5693b04 --- /dev/null +++ b/web/src/js/component/table/resultTable/table.vue @@ -0,0 +1,188 @@ + + + + diff --git a/web/src/js/module/workbench/script/result.vue b/web/src/js/module/workbench/script/result.vue index ad40b71dd0..b0b6842d10 100644 --- a/web/src/js/module/workbench/script/result.vue +++ b/web/src/js/module/workbench/script/result.vue @@ -36,6 +36,7 @@ :height="tableData.height" :columns="data.headRows" :data="data.bodyRows" + @on-sort-change="sortChange" @on-current-change="onRowClick" class="result-normal-table"> @@ -58,7 +59,8 @@ @on-scroll="saveOffset" @dbl-click="copyLabel" @on-click="onWeTableRowClick" - @change-status="changeStatus"/> + @change-status="changeStatus" + @handleSortClick="handleSortClick"/> { + if (head.content === col.content) { + sortIndex = index + } + }) + // 大于50列排序现将要排序的列和原始index保持 + let sortColumnAll = this.originRows.map((row, index) => { + return { + originIndex: index, + value: row[sortIndex] + } + }) + // 将找出的列排序 + sortColumnAll = this.arraySortByName(sortColumnAll, col.columnType, 'value');// 从小到大 + let newRow = []; + if (order === 'asc') {// 升序 + sortColumnAll.map((item, index) => { + newRow[index] = this.originRows[item.originIndex]; + }) + this.originRows = newRow; + } else if (order === 'desc') {// 降序 + sortColumnAll.reverse(); + sortColumnAll.map((item, index) => { + newRow[index] = this.originRows[item.originIndex]; + }) + this.originRows = newRow; + } else if (order === 'normal') {// 恢复原来数据 + this.originRows = this.result.bodyRows || []; + this.data.originRows = this.originRows; + } + this.pageingData(); + }, + addCellClassName() { + // 需要将每一行中的NULL挑选出来 + if (this.tableData.type === 'normal') { + this.originRows = this.originRows.map((row) => { + row.cellClassName = {}; + Object.keys(row).forEach((key)=> { + if (row[key] === 'NULL') { + row.cellClassName[key] = 'is-null'; + } + }) + return row; + }) + } + }, + sortChange({column, key, order}) { + this.originRows = this.arraySortByName(this.originRows, column.columnType, key);// 从小到大 + if (order === 'asc') {// 升序 + this.addCellClassName(); + } else if (order === 'desc') {// 降序 + this.originRows.reverse(); + this.addCellClassName(); + } else if (order === 'normal') {// 恢复原来数据 + if (this.tableData.type === 'normal') { + this.originRows = this.result.bodyRows.map((row) => { + let newItem = {}; + const NullList = []; + row.forEach((item, index) => { + Object.assign(newItem, { + [this.result.headRows[index]]: item, + }); + if (item === 'NULL') { + NullList.push(this.result.headRows[index]); + } + }); + // 对于NULL值加上高亮样式 + if (NullList.length) { + newItem.cellClassName = {}; + NullList.forEach((item) => { + newItem.cellClassName[item] = 'is-null'; + }); + } + return newItem; + }); + } else { + this.originRows = this.result.bodyRows || []; + } + this.data.originRows = this.originRows; + } + this.pageingData(); + }, + arraySortByName(list, valueType, key) { + if (list === undefined || list === null) return []; + list.sort((a, b) => { + let strA = a[key]; + let strB = b[key]; + // 谁为非法值谁在前面 + if (strA === undefined || strA === null || strA === '' || strA === ' ' || strA === ' ' || strA === 'NULL') { + return -1; + } + if (strB === undefined || strB === null || strB === '' || strB === ' ' || strB === ' ' || strB === 'NULL') { + return 1; + } + // 如果为整数型大小 + if (['int', 'float', 'double', 'long', 'short', 'bigInt', 'decimal'].includes(valueType.toLowerCase())) { + + return strA - strB; + } + const charAry = strA.split(''); + for (const i in charAry) { + if ((this.charCompare(strA[i], strB[i]) !== 0)) { + return this.charCompare(strA[i], strB[i]); + } + } + // 如果通过上面的循环对比还比不出来,就无解了,直接返回-1 + return -1; + }); + return list; + }, + charCompare(charA, charB) { + // 谁为非法值谁在前面 + if (charA === undefined || charA === null || charA === '' || charA === ' ' || charA === ' ') { + return -1; + } + if (charB === undefined || charB === null || charB === '' || charB === ' ' || charB === ' ') { + return 1; + } + if (!this.notChinese(charA)) { + charA = pinyin(charA)[0][0]; + } + if (!this.notChinese(charB)) { + charB = pinyin(charB)[0][0]; + } + return charA.localeCompare(charB); + }, + notChinese(char) { + const charCode = char.charCodeAt(0); + return charCode >= 0 && charCode <= 128; + }, initOffset() { let cache = this.script.result.cache; let x = 0; @@ -279,6 +422,7 @@ export default { let headRows = this.result.headRows || []; this.data.headRows = []; this.data.bodyRows = []; + this.originRows = this.result.bodyRows || []; this.tableData.total = this.result.total; if (this.tableData.type === 'normal') { @@ -289,10 +433,7 @@ export default { this.data.headRows.push({ title, key: item, - sortable: 'true', - sortMethod: function(a, b, type) { - return util.sort(a, b, type); - }, + sortable: 'custom', columnType, renderHeader: (h, params) => { return h('span', { @@ -362,7 +503,7 @@ export default { this.data.bodyRows = newArr; } }, - change(page) { + change(page = 1) { this.hightLightRow = null; this.page.current = page; this.pageingData(); From 1eb94f839411769d645bcce26fa97b6451f76ef0 Mon Sep 17 00:00:00 2001 From: zwx-master <1208247854@qq.com> Date: Thu, 18 Jun 2020 14:22:24 +0800 Subject: [PATCH 14/25] query tab name editfy --- web/src/js/module/hiveSidebar/hiveSidebar.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/js/module/hiveSidebar/hiveSidebar.vue b/web/src/js/module/hiveSidebar/hiveSidebar.vue index 4479c4d27b..2edfe52691 100644 --- a/web/src/js/module/hiveSidebar/hiveSidebar.vue +++ b/web/src/js/module/hiveSidebar/hiveSidebar.vue @@ -307,8 +307,8 @@ export default { this.dispatch('Workbench:pasteInEditor', value, this.node); }, queryTable() { - const tabName = `${this.currentAcitved.dbName}.${this.currentAcitved.name}`; - const code = `select * from ${tabName} limit 100`; + const tabName = `${this.currentAcitved.dbName}_${this.currentAcitved.name}`; + const code = `select * from ${this.currentAcitved.dbName}.${this.currentAcitved.name} limit 100`; const filename = `${tabName}_select.hql`; const md5Path = util.md5(filename); this.dispatch('Workbench:add', { From e332e07c893583db86451794f10134d1b3d5179d Mon Sep 17 00:00:00 2001 From: liuyou2 <405240259@qq.com> Date: Fri, 19 Jun 2020 11:40:42 +0800 Subject: [PATCH 15/25] Fix the bug for check table error when dataObject is not well-formed #Fixes #160 --- .../schedulis/jobtype/connector/DataCheckerDao.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/datachecker-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/schedulis/jobtype/connector/DataCheckerDao.java b/datachecker-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/schedulis/jobtype/connector/DataCheckerDao.java index d3caeac010..d84a0d4bc6 100644 --- a/datachecker-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/schedulis/jobtype/connector/DataCheckerDao.java +++ b/datachecker-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/schedulis/jobtype/connector/DataCheckerDao.java @@ -158,8 +158,9 @@ private long getTotalCount(Map proObjectMap, Connection conn, L private PreparedStatement getStatement(Connection conn, String dataObject) throws SQLException { String dataScape = dataObject.contains("{") ? "Partition" : "Table"; - String dbName = dataObject.split("\\.")[0]; - String tableName = dataObject.split("\\.")[1]; + String[] dataObjectArray = dataObject.split("\\."); + String dbName = dataObjectArray[0]; + String tableName = dataObjectArray[1]; if(dataScape.equals("Partition")) { Pattern pattern = Pattern.compile("\\{([^\\}]+)\\}"); Matcher matcher = pattern.matcher(dataObject); @@ -174,11 +175,13 @@ private PreparedStatement getStatement(Connection conn, String dataObject) throw pstmt.setString(2, tableName); pstmt.setString(3, partitionName); return pstmt; - } else { + } else if(dataObjectArray.length == 2){ PreparedStatement pstmt = conn.prepareCall(SQL_SOURCE_TYPE_JOB_TABLE); pstmt.setString(1, dbName); pstmt.setString(2, tableName); return pstmt; + }else { + throw new SQLException("Incorrect input format for dataObject "+ dataObject); } } From bc37ee0de029d5870b50b8257ac5153073b06af4 Mon Sep 17 00:00:00 2001 From: liuyou2 <405240259@qq.com> Date: Fri, 19 Jun 2020 16:03:51 +0800 Subject: [PATCH 16/25] flow runtime execute cost time is not correct #Fixes #162 --- .../execution/entrance/restful/FlowExecutionRestfulApi.java | 6 ++++++ .../flow/execution/entrance/node/DefaultNodeRunner.scala | 5 +++++ .../dss/flow/execution/entrance/node/NodeRunner.scala | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/dss-flow-execution-entrance/src/main/java/com/webank/wedatasphere/dss/flow/execution/entrance/restful/FlowExecutionRestfulApi.java b/dss-flow-execution-entrance/src/main/java/com/webank/wedatasphere/dss/flow/execution/entrance/restful/FlowExecutionRestfulApi.java index 807de60299..8ad6dcb51f 100644 --- a/dss-flow-execution-entrance/src/main/java/com/webank/wedatasphere/dss/flow/execution/entrance/restful/FlowExecutionRestfulApi.java +++ b/dss-flow-execution-entrance/src/main/java/com/webank/wedatasphere/dss/flow/execution/entrance/restful/FlowExecutionRestfulApi.java @@ -70,6 +70,12 @@ public Response execution(@PathParam("id") String id) { message = Message.ok("Successfully get job execution info"); message.setMethod("/api/entrance/" + id + "/execution"); message.setStatus(0); + long nowTime = System.currentTimeMillis(); + flowEntranceJob.getFlowContext().getRunningNodes().forEach((k, v) -> { + if (v != null) { + v.setNowTime(nowTime); + } + }); message.data("runningJobs", FlowContext$.MODULE$.convertView(flowEntranceJob.getFlowContext().getRunningNodes())); List> pendingList = FlowContext$.MODULE$.convertView(flowEntranceJob.getFlowContext().getPendingNodes()); pendingList.addAll(FlowContext$.MODULE$.convertView(flowEntranceJob.getFlowContext().getSkippedNodes())); diff --git a/dss-flow-execution-entrance/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/node/DefaultNodeRunner.scala b/dss-flow-execution-entrance/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/node/DefaultNodeRunner.scala index 89ddc910a4..ad2526f03c 100644 --- a/dss-flow-execution-entrance/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/node/DefaultNodeRunner.scala +++ b/dss-flow-execution-entrance/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/node/DefaultNodeRunner.scala @@ -49,6 +49,8 @@ class DefaultNodeRunner extends NodeRunner with Logging { private var startTime: Long = _ + private var nowTime:Long = _ + private var lastGetStatusTime: Long = 0 override def getNode: SchedulerNode = this.node @@ -156,4 +158,7 @@ class DefaultNodeRunner extends NodeRunner with Logging { override def setStartTime(startTime: Long): Unit = this.startTime = startTime + override def getNowTime(): Long = this.nowTime + + override def setNowTime(nowTime: Long): Unit = this.nowTime = nowTime } diff --git a/dss-flow-execution-entrance/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/node/NodeRunner.scala b/dss-flow-execution-entrance/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/node/NodeRunner.scala index 5e090fe29e..f0a40fd57a 100644 --- a/dss-flow-execution-entrance/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/node/NodeRunner.scala +++ b/dss-flow-execution-entrance/src/main/scala/com/webank/wedatasphere/dss/flow/execution/entrance/node/NodeRunner.scala @@ -75,6 +75,10 @@ abstract class NodeRunner extends Runnable with Logging{ def setStartTime(startTime: Long): Unit + def getNowTime():Long + + def setNowTime(nowTime: Long):Unit + protected def transitionState(toState: NodeExecutionState): Unit = Utils.tryAndWarn{ if (getStatus == toState) return info(s"from state $getStatus to $toState") From cc70227a4124112a1affd7c3588e9b4b408c61be Mon Sep 17 00:00:00 2001 From: liuyou2 <405240259@qq.com> Date: Fri, 19 Jun 2020 16:30:13 +0800 Subject: [PATCH 17/25] The script in the workflow has been executed, but the execution time has been increasing, and the process does not go down #Fixes #165 --- .../node/execution/parser/JobParamsParser.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/dss-linkis-node-execution/src/main/java/com/webank/wedatasphere/dss/linkis/node/execution/parser/JobParamsParser.java b/dss-linkis-node-execution/src/main/java/com/webank/wedatasphere/dss/linkis/node/execution/parser/JobParamsParser.java index 5c9e013c6b..27174fbcc8 100644 --- a/dss-linkis-node-execution/src/main/java/com/webank/wedatasphere/dss/linkis/node/execution/parser/JobParamsParser.java +++ b/dss-linkis-node-execution/src/main/java/com/webank/wedatasphere/dss/linkis/node/execution/parser/JobParamsParser.java @@ -24,8 +24,10 @@ import com.webank.wedatasphere.dss.linkis.node.execution.job.Job; import com.webank.wedatasphere.dss.linkis.node.execution.job.SignalSharedJob; import com.webank.wedatasphere.dss.linkis.node.execution.utils.LinkisJobExecutionUtils; - +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -33,7 +35,7 @@ * Created by johnnwang on 2019/11/3. */ public class JobParamsParser implements JobParser { - + private static final Logger LOGGER = LoggerFactory.getLogger(JobParamsParser.class); private JobSignalKeyCreator signalKeyCreator; public JobSignalKeyCreator getSignalKeyCreator() { @@ -61,8 +63,12 @@ public void parseJob(Job job) throws Exception { if (sharedValue != null) { Collection values = sharedValue.values(); for(Object value : values){ - Map variableMap = LinkisJobExecutionUtils.gson.fromJson(value.toString(), new TypeToken>() {}.getType()); - putParamsMap(job.getParams(), "variable", variableMap); + List> list = LinkisJobExecutionUtils.gson.fromJson(value.toString(), List.class); + Map totalMap = new HashMap<>(); + for (Map kv : list) { + totalMap.putAll(kv); + } + putParamsMap(job.getParams(), "variable", totalMap); } } // put configuration From b0572f3eba1fafb5c7b8a42b8df11aad66768f74 Mon Sep 17 00:00:00 2001 From: liuyou2 <405240259@qq.com> Date: Fri, 19 Jun 2020 21:17:23 +0800 Subject: [PATCH 18/25] run_date variable can not be shown correctly #Fixes #161 --- .../entrance/execute/AppJointEntranceEngine.scala | 15 +++++++++++++++ pom.xml | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/plugins/linkis/linkis-appjoint-entrance/src/main/scala/com/webank/wedatasphere/dss/linkis/appjoint/entrance/execute/AppJointEntranceEngine.scala b/plugins/linkis/linkis-appjoint-entrance/src/main/scala/com/webank/wedatasphere/dss/linkis/appjoint/entrance/execute/AppJointEntranceEngine.scala index 26e4305d49..e16c9b93e5 100644 --- a/plugins/linkis/linkis-appjoint-entrance/src/main/scala/com/webank/wedatasphere/dss/linkis/appjoint/entrance/execute/AppJointEntranceEngine.scala +++ b/plugins/linkis/linkis-appjoint-entrance/src/main/scala/com/webank/wedatasphere/dss/linkis/appjoint/entrance/execute/AppJointEntranceEngine.scala @@ -31,6 +31,7 @@ import com.webank.wedatasphere.dss.linkis.appjoint.entrance.job.AppJointExecuteR import com.webank.wedatasphere.linkis.common.exception.ErrorException import com.webank.wedatasphere.linkis.common.utils.{Logging, Utils} import com.webank.wedatasphere.linkis.entrance.execute.{EngineExecuteAsynReturn, EntranceEngine, EntranceJob} +import com.webank.wedatasphere.linkis.entrance.interceptor.impl.CustomVariableUtils import com.webank.wedatasphere.linkis.protocol.engine.{JobProgressInfo, RequestTask} import com.webank.wedatasphere.linkis.protocol.query.RequestPersistTask import com.webank.wedatasphere.linkis.scheduler.executer._ @@ -156,6 +157,9 @@ class AppJointEntranceEngine(properties: util.Map[String, Any]) val nodeType = nodeContext.getAppJointNode.getNodeType val realAppJointType = if (nodeType.contains(".")) nodeType.substring(0, nodeType.indexOf(".")) else nodeType val appJoint = AppJointManager.getAppJoint(realAppJointType) + if((realAppJointType.toLowerCase()).contains("datacheck")){ + replaceCustomVariables(nodeContext.getRuntimeMap) + } val user = if (null != runTimeMap.get("user")) runTimeMap.get("user").toString else null val session = if (StringUtils.isNotEmpty(user)){ if (appJoint.getSecurityService != null) appJoint.getSecurityService.login(user) else null @@ -189,8 +193,19 @@ class AppJointEntranceEngine(properties: util.Map[String, Any]) ErrorExecuteResponse(s"cannot do this executeRequest $executeRequest", new ErrorException(80056, s"cannot do this executeRequest $executeRequest")) } + private def replaceCustomVariables(runTimeMap:java.util.Map[String, Object]):Unit = { + val key = "check.object" + val value:String = if (null != runTimeMap.get(key)) runTimeMap.get(key).toString else "" + val task = new RequestPersistTask + task.setExecutionCode(value) + task.setParams(new util.HashMap[String, Object]()) + val (result, code) = CustomVariableUtils.replaceCustomVar(task, "sql") + logger.info(s"after code replace code is $code") + if (result) runTimeMap(key) = code + } } + case class AppJointEntranceExecuteException(errMsg:String) extends ErrorException(70046, errMsg) class AppJointEntranceAsyncExecuteResponse extends AsynReturnExecuteResponse with Logging{ diff --git a/pom.xml b/pom.xml index 76737321d2..ff14d65f7c 100644 --- a/pom.xml +++ b/pom.xml @@ -48,7 +48,7 @@ 0.7.0 - 0.9.3 + 0.9.4 2.11.8 1.8 3.3.3 From d6c24d25b3cf7dbbc2c1232f73e8332f890d782c Mon Sep 17 00:00:00 2001 From: "xing.huang" Date: Mon, 22 Jun 2020 11:28:33 +0800 Subject: [PATCH 19/25] 'utf-8' is not a valid value for the Content-Encoding header --- .../scheduler/azkaban/service/AzkabanProjectService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dss-azkaban-scheduler-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/scheduler/azkaban/service/AzkabanProjectService.java b/dss-azkaban-scheduler-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/scheduler/azkaban/service/AzkabanProjectService.java index 2f2f98e4d0..eb536b14b7 100644 --- a/dss-azkaban-scheduler-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/scheduler/azkaban/service/AzkabanProjectService.java +++ b/dss-azkaban-scheduler-appjoint/src/main/java/com/webank/wedatasphere/dss/appjoint/scheduler/azkaban/service/AzkabanProjectService.java @@ -80,11 +80,11 @@ public Project createProject(Project project, Session session) throws AppJointEr params.add(new BasicNameValuePair("name", project.getName())); params.add(new BasicNameValuePair("description", project.getDescription())); HttpPost httpPost = new HttpPost(projectUrl); - httpPost.addHeader(HTTP.CONTENT_ENCODING, "UTF-8"); + httpPost.addHeader(HTTP.CONTENT_ENCODING, HTTP.IDENTITY_CODING); CookieStore cookieStore = new BasicCookieStore(); cookieStore.addCookie(session.getCookies()[0]); - HttpEntity entity = EntityBuilder.create().setContentEncoding("UTF-8"). - setContentType(ContentType.create("application/x-www-form-urlencoded", Consts.UTF_8)) + HttpEntity entity = EntityBuilder.create() + .setContentType(ContentType.create("application/x-www-form-urlencoded", Consts.UTF_8)) .setParameters(params).build(); httpPost.setEntity(entity); CloseableHttpClient httpClient = null; From e67f9ce11ff2f72572a730aea68b6d70f7ff8346 Mon Sep 17 00:00:00 2001 From: liuyou2 <405240259@qq.com> Date: Mon, 22 Jun 2020 14:47:54 +0800 Subject: [PATCH 20/25] Update DSS with linkis version 0.9.4 and solves some compilation errors #Fixes #168 --- assembly/pom.xml | 2 +- conf/config.sh | 2 +- datachecker-appjoint/pom.xml | 2 +- docs/en_US/ch1/DataSphereStudio_Compile_Manual.md | 2 +- docs/en_US/ch2/Azkaban_LinkisJobType_Deployment_Manual.md | 2 +- ...SS\347\274\226\350\257\221\346\226\207\346\241\243.md" | 2 +- dss-appjoint-auth/pom.xml | 7 ++++++- .../dss/appjoint/auth/impl/AppJointAuthImpl.scala | 5 +++-- dss-appjoint-core/pom.xml | 8 +++++++- dss-appjoint-loader/pom.xml | 4 ++-- dss-application/pom.xml | 2 +- dss-azkaban-scheduler-appjoint/pom.xml | 2 +- dss-common/pom.xml | 2 +- dss-flow-execution-entrance/pom.xml | 2 +- dss-linkis-node-execution/pom.xml | 2 +- dss-scheduler-appjoint-core/pom.xml | 2 +- dss-server/pom.xml | 4 ++-- dss-server/src/main/assembly/distribution.xml | 3 --- eventchecker-appjoint/pom.xml | 2 +- plugins/azkaban/linkis-jobtype/pom.xml | 2 +- plugins/linkis/linkis-appjoint-entrance/pom.xml | 2 +- pom.xml | 4 ++-- qualitis-appjoint/appjoint/pom.xml | 2 +- sendemail-appjoint/sendemail-core/pom.xml | 2 +- visualis-appjoint/appjoint/pom.xml | 8 +++++++- 25 files changed, 46 insertions(+), 31 deletions(-) diff --git a/assembly/pom.xml b/assembly/pom.xml index 29934071c0..8a81a449df 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 diff --git a/conf/config.sh b/conf/config.sh index dea8a60d7b..7fc8e9e4e7 100644 --- a/conf/config.sh +++ b/conf/config.sh @@ -77,4 +77,4 @@ AZKABAN_ADRESS_PORT=8081 QUALITIS_ADRESS_IP=127.0.0.1 QUALITIS_ADRESS_PORT=8090 -DSS_VERSION=0.7.0 +DSS_VERSION=0.8.0 diff --git a/datachecker-appjoint/pom.xml b/datachecker-appjoint/pom.xml index c2d804486c..706f88359f 100644 --- a/datachecker-appjoint/pom.xml +++ b/datachecker-appjoint/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 diff --git a/docs/en_US/ch1/DataSphereStudio_Compile_Manual.md b/docs/en_US/ch1/DataSphereStudio_Compile_Manual.md index 6a24df612d..106ebcbb95 100644 --- a/docs/en_US/ch1/DataSphereStudio_Compile_Manual.md +++ b/docs/en_US/ch1/DataSphereStudio_Compile_Manual.md @@ -6,7 +6,7 @@ ```xml - 0.7.0 + 0.8.0 0.9.3 2.11.8 1.8 diff --git a/docs/en_US/ch2/Azkaban_LinkisJobType_Deployment_Manual.md b/docs/en_US/ch2/Azkaban_LinkisJobType_Deployment_Manual.md index d70a87eedc..33cb3808cb 100644 --- a/docs/en_US/ch2/Azkaban_LinkisJobType_Deployment_Manual.md +++ b/docs/en_US/ch2/Azkaban_LinkisJobType_Deployment_Manual.md @@ -2,7 +2,7 @@ ## 1. Ready work -1.Click [release](https://github.com/WeBankFinTech/DataSphereStudio/releases/download/0.7.0/linkis-jobtype-0.7.0.zip) to select the corresponding installation package to download: +1.Click [release](https://github.com/WeBankFinTech/DataSphereStudio/releases/download/0.8.0/linkis-jobtype-0.8.0.zip) to select the corresponding installation package to download: - linkis-jobtype-$version.zip diff --git "a/docs/zh_CN/ch1/DSS\347\274\226\350\257\221\346\226\207\346\241\243.md" "b/docs/zh_CN/ch1/DSS\347\274\226\350\257\221\346\226\207\346\241\243.md" index 0b4d82f0b8..8f078c512a 100644 --- "a/docs/zh_CN/ch1/DSS\347\274\226\350\257\221\346\226\207\346\241\243.md" +++ "b/docs/zh_CN/ch1/DSS\347\274\226\350\257\221\346\226\207\346\241\243.md" @@ -6,7 +6,7 @@ ```xml - 0.7.0 + 0.8.0 0.9.3 2.11.8 1.8 diff --git a/dss-appjoint-auth/pom.xml b/dss-appjoint-auth/pom.xml index 595ad36f0b..fc09399d04 100644 --- a/dss-appjoint-auth/pom.xml +++ b/dss-appjoint-auth/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 @@ -38,6 +38,11 @@ linkis-common ${linkis.version} + + javax.servlet + javax.servlet-api + 3.1.0 + diff --git a/dss-appjoint-auth/src/main/scala/com/webank/wedatasphere/dss/appjoint/auth/impl/AppJointAuthImpl.scala b/dss-appjoint-auth/src/main/scala/com/webank/wedatasphere/dss/appjoint/auth/impl/AppJointAuthImpl.scala index 7413baf5f6..15dd7e3072 100644 --- a/dss-appjoint-auth/src/main/scala/com/webank/wedatasphere/dss/appjoint/auth/impl/AppJointAuthImpl.scala +++ b/dss-appjoint-auth/src/main/scala/com/webank/wedatasphere/dss/appjoint/auth/impl/AppJointAuthImpl.scala @@ -24,8 +24,9 @@ import com.webank.wedatasphere.dss.appjoint.auth.{AppJointAuth, RedirectMsg} import com.webank.wedatasphere.linkis.common.utils.Logging import com.webank.wedatasphere.linkis.httpclient.dws.DWSHttpClient import com.webank.wedatasphere.linkis.httpclient.dws.config.DWSClientConfigBuilder -import javax.servlet.http.{Cookie, HttpServletRequest} +import javax.servlet.http.HttpServletRequest import org.apache.commons.io.IOUtils +import org.apache.http.impl.cookie.BasicClientCookie import scala.collection.JavaConversions._ @@ -68,7 +69,7 @@ class AppJointAuthImpl private() extends AppJointAuth with Logging { val index = cookie.indexOf("=") val key = cookie.substring(0, index).trim val value = cookie.substring(index + 1).trim - userInfoAction.addCookie(new Cookie(key, value)) + userInfoAction.addCookie(new BasicClientCookie(key, value)) } val redirectMsg = new RedirectMsgImpl redirectMsg.setRedirectUrl(request.getParameter(AppJointAuthImpl.REDIRECT_KEY)) diff --git a/dss-appjoint-core/pom.xml b/dss-appjoint-core/pom.xml index 0c00f2cd7f..b27a98f70e 100644 --- a/dss-appjoint-core/pom.xml +++ b/dss-appjoint-core/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 @@ -50,6 +50,12 @@ dss-common ${dss.version} + + + com.webank.wedatasphere.linkis + linkis-httpclient + ${linkis.version} + diff --git a/dss-appjoint-loader/pom.xml b/dss-appjoint-loader/pom.xml index 7dc9097f34..3134933be6 100644 --- a/dss-appjoint-loader/pom.xml +++ b/dss-appjoint-loader/pom.xml @@ -22,12 +22,12 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 dss-appjoint-loader - 0.7.0 + 0.8.0 diff --git a/dss-application/pom.xml b/dss-application/pom.xml index 1a55a80350..2c9fdc039b 100644 --- a/dss-application/pom.xml +++ b/dss-application/pom.xml @@ -23,7 +23,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 dss-application diff --git a/dss-azkaban-scheduler-appjoint/pom.xml b/dss-azkaban-scheduler-appjoint/pom.xml index a6d8945341..b9110cd5a7 100644 --- a/dss-azkaban-scheduler-appjoint/pom.xml +++ b/dss-azkaban-scheduler-appjoint/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 diff --git a/dss-common/pom.xml b/dss-common/pom.xml index bbf896bfa5..7787005843 100644 --- a/dss-common/pom.xml +++ b/dss-common/pom.xml @@ -23,7 +23,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 dss-common diff --git a/dss-flow-execution-entrance/pom.xml b/dss-flow-execution-entrance/pom.xml index 97d12b24be..abeccba5c0 100644 --- a/dss-flow-execution-entrance/pom.xml +++ b/dss-flow-execution-entrance/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 diff --git a/dss-linkis-node-execution/pom.xml b/dss-linkis-node-execution/pom.xml index b98c33987a..5a0993e4f8 100644 --- a/dss-linkis-node-execution/pom.xml +++ b/dss-linkis-node-execution/pom.xml @@ -24,7 +24,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 dss-linkis-node-execution diff --git a/dss-scheduler-appjoint-core/pom.xml b/dss-scheduler-appjoint-core/pom.xml index b09213fc83..42a5bc856f 100644 --- a/dss-scheduler-appjoint-core/pom.xml +++ b/dss-scheduler-appjoint-core/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 diff --git a/dss-server/pom.xml b/dss-server/pom.xml index b0627677bc..55d2812539 100644 --- a/dss-server/pom.xml +++ b/dss-server/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 @@ -145,7 +145,7 @@ com.webank.wedatasphere.dss dss-scheduler-appjoint-core - 0.7.0 + 0.8.0 diff --git a/dss-server/src/main/assembly/distribution.xml b/dss-server/src/main/assembly/distribution.xml index 560fc34e34..cba104e837 100644 --- a/dss-server/src/main/assembly/distribution.xml +++ b/dss-server/src/main/assembly/distribution.xml @@ -82,7 +82,6 @@ com.netflix.ribbon:ribbon-loadbalancer:jar com.netflix.ribbon:ribbon-transport:jar com.netflix.servo:servo-core:jar - com.ning:async-http-client:jar com.sun.jersey.contribs:jersey-apache-client4:jar com.sun.jersey:jersey-client:jar com.sun.jersey:jersey-core:jar @@ -137,8 +136,6 @@ joda-time:joda-time:jar log4j:log4j:jar mysql:mysql-connector-java:jar - net.databinder.dispatch:dispatch-core_2.11:jar - net.databinder.dispatch:dispatch-json4s-jackson_2.11:jar org.antlr:antlr-runtime:jar org.antlr:stringtemplate:jar org.apache.commons:commons-compress:jar diff --git a/eventchecker-appjoint/pom.xml b/eventchecker-appjoint/pom.xml index 8c38e47474..80243766f3 100644 --- a/eventchecker-appjoint/pom.xml +++ b/eventchecker-appjoint/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 diff --git a/plugins/azkaban/linkis-jobtype/pom.xml b/plugins/azkaban/linkis-jobtype/pom.xml index 56225d510a..54497a7f30 100644 --- a/plugins/azkaban/linkis-jobtype/pom.xml +++ b/plugins/azkaban/linkis-jobtype/pom.xml @@ -23,7 +23,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 com.webank.wedatasphere.dss linkis-jobtype diff --git a/plugins/linkis/linkis-appjoint-entrance/pom.xml b/plugins/linkis/linkis-appjoint-entrance/pom.xml index 0651c396ef..6e0d82a240 100644 --- a/plugins/linkis/linkis-appjoint-entrance/pom.xml +++ b/plugins/linkis/linkis-appjoint-entrance/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 diff --git a/pom.xml b/pom.xml index ff14d65f7c..4040e500d1 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ pom com.webank.wedatasphere.dss dss - 0.7.0 + 0.8.0 dss-common @@ -47,7 +47,7 @@ - 0.7.0 + 0.8.0 0.9.4 2.11.8 1.8 diff --git a/qualitis-appjoint/appjoint/pom.xml b/qualitis-appjoint/appjoint/pom.xml index d32ad4bb8a..5792638658 100644 --- a/qualitis-appjoint/appjoint/pom.xml +++ b/qualitis-appjoint/appjoint/pom.xml @@ -5,7 +5,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 diff --git a/sendemail-appjoint/sendemail-core/pom.xml b/sendemail-appjoint/sendemail-core/pom.xml index 97c3c167dd..ebff3d1ea3 100644 --- a/sendemail-appjoint/sendemail-core/pom.xml +++ b/sendemail-appjoint/sendemail-core/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 diff --git a/visualis-appjoint/appjoint/pom.xml b/visualis-appjoint/appjoint/pom.xml index ab48a6148b..afe7b4e616 100644 --- a/visualis-appjoint/appjoint/pom.xml +++ b/visualis-appjoint/appjoint/pom.xml @@ -22,7 +22,7 @@ dss com.webank.wedatasphere.dss - 0.7.0 + 0.8.0 4.0.0 @@ -52,6 +52,12 @@ provided true + + + net.databinder.dispatch + dispatch-core_2.11 + 0.12.3 + From c5287439b9db3cda3c602c9e579180e1ce4c5e7e Mon Sep 17 00:00:00 2001 From: liuyou2 <405240259@qq.com> Date: Mon, 22 Jun 2020 16:55:22 +0800 Subject: [PATCH 21/25] Update DSS with linkis version 0.9.4 and solves some compilation errors #Fixes #168 --- docs/en_US/ch1/DataSphereStudio_Compile_Manual.md | 2 +- docs/en_US/ch2/DSS Quick Installation Guide.md | 4 ++-- .../DSS\347\274\226\350\257\221\346\226\207\346\241\243.md" | 2 +- ...\205\344\275\277\347\224\250\346\226\207\346\241\243.md" | 6 +++--- dss-linkis-node-execution/pom.xml | 4 ++-- dss-server/pom.xml | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/en_US/ch1/DataSphereStudio_Compile_Manual.md b/docs/en_US/ch1/DataSphereStudio_Compile_Manual.md index 106ebcbb95..46b95c4067 100644 --- a/docs/en_US/ch1/DataSphereStudio_Compile_Manual.md +++ b/docs/en_US/ch1/DataSphereStudio_Compile_Manual.md @@ -7,7 +7,7 @@ ```xml 0.8.0 - 0.9.3 + 0.9.4 2.11.8 1.8 3.3.3 diff --git a/docs/en_US/ch2/DSS Quick Installation Guide.md b/docs/en_US/ch2/DSS Quick Installation Guide.md index f4b8cd1595..a7e7a5a5ff 100644 --- a/docs/en_US/ch2/DSS Quick Installation Guide.md +++ b/docs/en_US/ch2/DSS Quick Installation Guide.md @@ -17,7 +17,7 @@ DSS also implements the integration of many external systems, such as [Qualitis] DSS environment configuration can be divided into three steps, including basic software installation, backend environment configuration, and frontend environment configuration. The details are as below: ### 2.1 Frontend and backend basic software installation -Linkis standard version (above 0.9.3). How to install [Linkis](https://github.com/WeBankFinTech/Linkis/blob/master/docs/en_US/ch1/deploy.md) +Linkis standard version (above 0.9.4). How to install [Linkis](https://github.com/WeBankFinTech/Linkis/blob/master/docs/en_US/ch1/deploy.md) JDK (above 1.8.0_141). How to install [JDK](https://www.runoob.com/java/java-environment-setup.html) @@ -111,7 +111,7 @@ The environment is ready, click me to enter ****[4. Installation and use](https: ## Three Standard DSS environment configuration preparation The standard DSS environment preparation is also divided into three parts, the frontEnd-end and back-end basic software installation, back-end environment preparation, and frontEnd-end environment preparation. The details are as follows: ### 3.1 frontEnd and BackEnd basic software installation -Linkis standard version (above 0.9.3), [How to install Linkis](https://github.com/WeBankFinTech/Linkis/blob/master/docs/en_US/ch1/deploy.md) +Linkis standard version (above 0.9.4), [How to install Linkis](https://github.com/WeBankFinTech/Linkis/blob/master/docs/en_US/ch1/deploy.md) JDK (above 1.8.0_141), How to install [JDK](https://www.runoob.com/java/java-environment-setup.html) diff --git "a/docs/zh_CN/ch1/DSS\347\274\226\350\257\221\346\226\207\346\241\243.md" "b/docs/zh_CN/ch1/DSS\347\274\226\350\257\221\346\226\207\346\241\243.md" index 8f078c512a..fe0b0b0002 100644 --- "a/docs/zh_CN/ch1/DSS\347\274\226\350\257\221\346\226\207\346\241\243.md" +++ "b/docs/zh_CN/ch1/DSS\347\274\226\350\257\221\346\226\207\346\241\243.md" @@ -7,7 +7,7 @@ ```xml 0.8.0 - 0.9.3 + 0.9.4 2.11.8 1.8 3.3.3 diff --git "a/docs/zh_CN/ch2/DSS\345\277\253\351\200\237\345\256\211\350\243\205\344\275\277\347\224\250\346\226\207\346\241\243.md" "b/docs/zh_CN/ch2/DSS\345\277\253\351\200\237\345\256\211\350\243\205\344\275\277\347\224\250\346\226\207\346\241\243.md" index e775e8380e..2b9035504d 100644 --- "a/docs/zh_CN/ch2/DSS\345\277\253\351\200\237\345\256\211\350\243\205\344\275\277\347\224\250\346\226\207\346\241\243.md" +++ "b/docs/zh_CN/ch2/DSS\345\277\253\351\200\237\345\256\211\350\243\205\344\275\277\347\224\250\346\226\207\346\241\243.md" @@ -32,7 +32,7 @@ ## 二、精简版DSS环境配置准备 DSS环境配置准备分为三部分,前后端基础软件安装、后端环境配置准备和前端环配置境准备,详细介绍如下: ### 2.1 前后端基础软件安装 -Linkis精简版(0.9.3及以上),[如何安装Linkis](https://github.com/WeBankFinTech/Linkis/wiki/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8Linkis) +Linkis精简版(0.9.4及以上),[如何安装Linkis](https://github.com/WeBankFinTech/Linkis/wiki/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8Linkis) JDK (1.8.0_141以上),[如何安装JDK](https://www.runoob.com/java/java-environment-setup.html) @@ -143,7 +143,7 @@ dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/ ## 三、简单版DSS环境配置准备 DSS环境配置准备分为三部分,前后端基础软件安装、后端环境配置准备和前端环配置境准备,详细介绍如下: ### 3.1 前后端基础软件安装 -Linkis简单版(0.9.3及以上),[如何安装Linkis](https://github.com/WeBankFinTech/Linkis/wiki/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8Linkis) +Linkis简单版(0.9.4及以上),[如何安装Linkis](https://github.com/WeBankFinTech/Linkis/wiki/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8Linkis) JDK (1.8.0_141以上),[如何安装JDK](https://www.runoob.com/java/java-environment-setup.html) @@ -251,7 +251,7 @@ dss_ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/ ## 四、标准版DSS环境配置准备 标准版DSS环境准备也分为三部分,前后端基础软件安装、后端环境准备和前端环境准备,详细介绍如下: ### 4.1 前后端基础软件安装 -Linkis标准版(0.9.3及以上),[如何安装Linkis](https://github.com/WeBankFinTech/Linkis/wiki/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8Linkis) +Linkis标准版(0.9.4及以上),[如何安装Linkis](https://github.com/WeBankFinTech/Linkis/wiki/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8Linkis) JDK (1.8.0_141以上),[如何安装JDK](https://www.runoob.com/java/java-environment-setup.html) diff --git a/dss-linkis-node-execution/pom.xml b/dss-linkis-node-execution/pom.xml index 5a0993e4f8..29fd8ae27a 100644 --- a/dss-linkis-node-execution/pom.xml +++ b/dss-linkis-node-execution/pom.xml @@ -33,13 +33,13 @@ com.webank.wedatasphere.linkis linkis-ujes-client - 0.9.3 + ${linkis.version} com.webank.wedatasphere.linkis linkis-workspace-httpclient - 0.9.3 + ${linkis.version} diff --git a/dss-server/pom.xml b/dss-server/pom.xml index 55d2812539..4408aa02df 100644 --- a/dss-server/pom.xml +++ b/dss-server/pom.xml @@ -117,7 +117,7 @@ com.webank.wedatasphere.linkis - 0.9.3 + ${linkis.version} From 706932cfbc5d5415b19af6d4d873305eb617140c Mon Sep 17 00:00:00 2001 From: liuyou2 <405240259@qq.com> Date: Wed, 24 Jun 2020 12:33:09 +0800 Subject: [PATCH 22/25] Update DSS with linkis version 0.9.4 and solves some compilation errors #Fixes #168 --- assembly/pom.xml | 2 +- ...stenerEventBusNodeExecutionScheduler.scala | 22 ++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/assembly/pom.xml b/assembly/pom.xml index 8a81a449df..2b930b76b1 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -103,7 +103,7 @@ com.fasterxml.jackson.core jackson-core - 2.9.6 + 2.10.0 net.databinder.dispatch diff --git a/dss-appjoint-core/src/main/scala/com/webank/wedatasphere/dss/appjoint/execution/scheduler/ListenerEventBusNodeExecutionScheduler.scala b/dss-appjoint-core/src/main/scala/com/webank/wedatasphere/dss/appjoint/execution/scheduler/ListenerEventBusNodeExecutionScheduler.scala index a355270ccb..51d167eaff 100644 --- a/dss-appjoint-core/src/main/scala/com/webank/wedatasphere/dss/appjoint/execution/scheduler/ListenerEventBusNodeExecutionScheduler.scala +++ b/dss-appjoint-core/src/main/scala/com/webank/wedatasphere/dss/appjoint/execution/scheduler/ListenerEventBusNodeExecutionScheduler.scala @@ -17,6 +17,8 @@ package com.webank.wedatasphere.dss.appjoint.execution.scheduler +import java.util.concurrent.ArrayBlockingQueue + import com.webank.wedatasphere.dss.appjoint.exception.AppJointErrorException import com.webank.wedatasphere.dss.appjoint.execution.common.{AsyncNodeExecutionResponse, CompletedNodeExecutionResponse, LongTermNodeExecutionAction} import com.webank.wedatasphere.dss.appjoint.execution.conf.NodeExecutionConfiguration._ @@ -55,7 +57,7 @@ class ListenerEventBusNodeExecutionScheduler(eventQueueCapacity: Int, name: Stri val field1 = ru.typeOf[ListenerEventBus[_, _]].decl(ru.TermName("eventQueue")).asMethod val result = listenerEventBusClass.reflectMethod(field1) result() match { - case queue: BlockingLoopArray[AsyncNodeExecutionResponseEvent] => queue + case queue: ArrayBlockingQueue[AsyncNodeExecutionResponseEvent] => queue } } @@ -104,18 +106,18 @@ class ListenerEventBusNodeExecutionScheduler(eventQueueCapacity: Int, name: Stri protected def addEvent(event: AsyncNodeExecutionResponseEvent): Unit = synchronized { listenerEventBus.post(event) - event.getResponse.getAction match { - case longTermAction: LongTermNodeExecutionAction => - longTermAction.setSchedulerId(eventQueue.max) - case _ => - } +// event.getResponse.getAction match { +// case longTermAction: LongTermNodeExecutionAction => +// longTermAction.setSchedulerId(eventQueue.max) +// case _ => +// } } - override def removeAsyncResponse(action: LongTermNodeExecutionAction): Unit = - getAsyncResponse(action).setCompleted(true) + override def removeAsyncResponse(action: LongTermNodeExecutionAction): Unit = { + + } - override def getAsyncResponse(action: LongTermNodeExecutionAction): AsyncNodeExecutionResponse = - eventQueue.get(action.getSchedulerId).getResponse + override def getAsyncResponse(action: LongTermNodeExecutionAction): AsyncNodeExecutionResponse = null override def start(): Unit = listenerEventBus.start() From caf19c5587d77b7f8feddf7a8c710e95c07d1b15 Mon Sep 17 00:00:00 2001 From: zwx-master <1208247854@qq.com> Date: Fri, 19 Jun 2020 14:14:16 +0800 Subject: [PATCH 23/25] New workspace, case, quick start code --- web/src/js/view/newhome/images/111.png | Bin 0 -> 22281 bytes web/src/js/view/newhome/images/333.png | Bin 0 -> 28244 bytes web/src/js/view/newhome/images/QR.jpg | Bin 0 -> 37822 bytes web/src/js/view/newhome/images/desktop.ini | 11 + web/src/js/view/newhome/images/edit1.png | Bin 0 -> 30795 bytes web/src/js/view/newhome/images/u1191.png | Bin 0 -> 461 bytes web/src/js/view/newhome/images/u1225.png | Bin 0 -> 684 bytes web/src/js/view/newhome/images/u1226.png | Bin 0 -> 581 bytes web/src/js/view/newhome/images/u1229.png | Bin 0 -> 283 bytes web/src/js/view/newhome/images/u476.png | Bin 0 -> 384 bytes web/src/js/view/newhome/images/u501.png | Bin 0 -> 687 bytes web/src/js/view/newhome/images/u504.png | Bin 0 -> 1190 bytes web/src/js/view/newhome/images/u509.png | Bin 0 -> 833 bytes web/src/js/view/newhome/images/u513.png | Bin 0 -> 1009 bytes web/src/js/view/newhome/images/u517.png | Bin 0 -> 433 bytes web/src/js/view/newhome/images/u619.png | Bin 0 -> 1103 bytes web/src/js/view/newhome/images/u620.png | Bin 0 -> 1226 bytes web/src/js/view/newhome/images/u621.png | Bin 0 -> 415 bytes web/src/js/view/newhome/images/u82.svg | 1 + web/src/js/view/newhome/index.vue | 3 + .../module/caseAndIntroduction/index.js | 10 + .../module/caseAndIntroduction/index.vue | 227 ++++++++++++++++++ .../js/view/newhome/module/workspace/index.js | 10 + .../view/newhome/module/workspace/index.scss | 147 ++++++++++++ .../view/newhome/module/workspace/index.vue | 157 ++++++++++++ .../module/workspace/module/workspaceForm.vue | 168 +++++++++++++ web/src/js/view/newhome/tips.md | 12 + 27 files changed, 746 insertions(+) create mode 100644 web/src/js/view/newhome/images/111.png create mode 100644 web/src/js/view/newhome/images/333.png create mode 100644 web/src/js/view/newhome/images/QR.jpg create mode 100644 web/src/js/view/newhome/images/desktop.ini create mode 100644 web/src/js/view/newhome/images/edit1.png create mode 100644 web/src/js/view/newhome/images/u1191.png create mode 100644 web/src/js/view/newhome/images/u1225.png create mode 100644 web/src/js/view/newhome/images/u1226.png create mode 100644 web/src/js/view/newhome/images/u1229.png create mode 100644 web/src/js/view/newhome/images/u476.png create mode 100644 web/src/js/view/newhome/images/u501.png create mode 100644 web/src/js/view/newhome/images/u504.png create mode 100644 web/src/js/view/newhome/images/u509.png create mode 100644 web/src/js/view/newhome/images/u513.png create mode 100644 web/src/js/view/newhome/images/u517.png create mode 100644 web/src/js/view/newhome/images/u619.png create mode 100644 web/src/js/view/newhome/images/u620.png create mode 100644 web/src/js/view/newhome/images/u621.png create mode 100644 web/src/js/view/newhome/images/u82.svg create mode 100644 web/src/js/view/newhome/index.vue create mode 100644 web/src/js/view/newhome/module/caseAndIntroduction/index.js create mode 100644 web/src/js/view/newhome/module/caseAndIntroduction/index.vue create mode 100644 web/src/js/view/newhome/module/workspace/index.js create mode 100644 web/src/js/view/newhome/module/workspace/index.scss create mode 100644 web/src/js/view/newhome/module/workspace/index.vue create mode 100644 web/src/js/view/newhome/module/workspace/module/workspaceForm.vue create mode 100644 web/src/js/view/newhome/tips.md diff --git a/web/src/js/view/newhome/images/111.png b/web/src/js/view/newhome/images/111.png new file mode 100644 index 0000000000000000000000000000000000000000..0d0dc410e3b1143178f08e9125bdaeb787753ea3 GIT binary patch literal 22281 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 literal 0 HcmV?d00001 diff --git a/web/src/js/view/newhome/images/333.png b/web/src/js/view/newhome/images/333.png new file mode 100644 index 0000000000000000000000000000000000000000..5f696746e0434b59b66ac3d198893bcf1c5ca473 GIT binary patch literal 28244 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 U@n-Pf;`q!C95H@j=p6ii0Eh`!cK`qY literal 0 HcmV?d00001 diff --git a/web/src/js/view/newhome/images/QR.jpg b/web/src/js/view/newhome/images/QR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f85da5edab90395d797154fde95c82226ac9747d GIT binary patch literal 37822 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 TG+_u)00000NkvXXu0mjfdj0cY literal 0 HcmV?d00001 diff --git a/web/src/js/view/newhome/images/u1229.png b/web/src/js/view/newhome/images/u1229.png new file mode 100644 index 0000000000000000000000000000000000000000..11052cd14c1a0401a56c366ea39a6f12703bae21 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^MnKHN!3HE1{NLpODaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMpx_2i7sn6}@8lGTo&}AGrW39t{5WqQ?r}aL zBjpF9*l}jI)$Z?@Jy|*0AF^I>p6ejBzJ11mF9~cy2Ohj*fApK@D-Wx~8AefeM(2ad z1`XGpdk$pS@GkLHxTDA#FiGZw@_)rg&SDKVSFEN?64PVwO0rSt-@{nkF870>r_)U# zjAfFn^THpl>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0ToF^K~yMHm6APA z0znXlX9i;|_yO2k(EHWc@Ef$TAeyKYBqmZ)8F~^ahy|3E*jrFsA&rW$vGWhmYof`K zeVrXw%yL|UPc@4M+WLX)Y}XF=6Ji6&UTM^7`A$09M%6yIDeVpssb)gIkNXc)PoLqp%(6>Z+kn!;D7V;uYNGQmpv zg~1}Rw<8@N^4XKSkKRI6fPlD`|6c-X4&^e2zW{3L#WN<$4t eDpvDEBBF2OS$&L9INbyQ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0z^qfK~z{r#g-vY z98na7cP0n~V#NwX1tcUztRU$otRMl?qym9JP=_dvx{7)v5>ZjnAJ94k0+I@v06|a` zB;5poC<%g1K#$bJ5uZ7= zjJ{Al5hm1$->%hv$bCnmuMMh)PK`e>{zxo5I9DaFD}DsIYh+Gy?)kR^;lvEF#V%sR zQjg%A7K3kuUNh}F^s4+J>YURG^^#a5KZ?d+j^@4%!%#h(G07p~grW%@4+=cmc#IS6 zXaOOyG-y+SM-{KtXsjRpgCmkfd=&bE@kMmim`*VGW%;srty|r2<5FqJxQGwF7u@b? z87F?M2S{DU{>xi_sxmHS=kEazb4|w2f{bt7usnFUZe`qZho#bz@qrtc%6`CQ4-;qn z;XS`9MWfrSB{Sql|M3cm#656P;Gs|Bdps{(23WJT3D_hu?<|v`=QXj-&^7~=%3mtx Vga(ro=XwAD002ovPDHLkV1k@bF=YS% literal 0 HcmV?d00001 diff --git a/web/src/js/view/newhome/images/u504.png b/web/src/js/view/newhome/images/u504.png new file mode 100644 index 0000000000000000000000000000000000000000..59fd43ac276892b0a3870a09e67bd15e6404c7a5 GIT binary patch literal 1190 zcmV;X1X=ruP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1UpGYK~!i%?U-9^ z6jd0<=epgpS`u1lDA)=Ji6Egw5-}l0!AR6#hyfy`1PB;4kU;Rw2OoSep^*fhl;9i2 zs7;I{VuaEvu_PFvt(X!}Zqib0YZ036?%d8C|FiprOykaFXQtYR{biG#|Cuwp|2dcM zeCLRqb786?(f5?3VlFBbb5WVn<`N4f_UNzX^)^vbltnF4&3r12M*`+x%jjw4#)DMz zyMibiy$7Yt9Ch(dsct#dh)Q&GJUeI&bXaJu)O2;pTk`BxbVCr>-7d552<$44uag_s zN{=+sjWQ|69MkQw8_s9sqIKttn5t2lUQwD}6*CP~VIubUZ8p%s`cH9fRBm`)n)x)k zTdJ8SND9>mBETHp-n@L2-95{5gMysKPdk55+bqvrBdQsy6bRGV&^h$JJ$4h0F)mRC zuj=AA(dxx2rGYsgvfr#WZ+&a$hDaxeHTYA$y@iAaexZa7Uy$opIvrO%i;9xN8KY{3 z=Z8s`!Z*$_4Fij=Cjn7ZIMYa!qOw9nB{6dtJ=Py5tQ%h=)=*Jwk}zjm#)S{EUp%Fq z-m3kuE7!I{JM%U-vvfBG37Es$W&Cmo7D)?&b?qzt$6X|15Z4@{zj5gh2^ZGwlL)*d zq7v7fgApb;&yOl8AwyIiw8S7$f0}HPA^{1=#R;q%$OZ5f#7G#@F1mdY&I5;SFLh z@-`9$5Ri@TRubNDeH3j>q7=U7s%QCU4M@(6?gLuq4$>~nzK^x`&GuhCUUM06?^{Iz z#+;a*fmD&iM9kkm&wbf!^c?W|dxW~&@iltaKGGAxYX|Ow0?Z-lWqA8ZfQ|G>6Q|L? z2}skiid(;ZmRj*XX%|>MF=$A5gCSpXVCh|Z@w5J8E_j2JKe@4bZ5s&}=oc*WB)mz# z@M(!en(25p{o*l_9t3nNkn5IXZ$cs=teeN>$6g}gLt!W32X;64&YdI@BKQ3UZfPXE z32r%biu7n>{1oFMNT`&#s|C4=v=3y`7hAs{xQz=7Geb5T2yQumbxdw}4sn%q42<4` z>cY*Tnk~$PD1zO&{r8oaor|!{^?St`skq%9i^EoVB#?S9b_0Oma zw@{HcM(;;_yua$%){v9HP1p(HMpQFZs}A$*Aoiy|TWH+UI=73}^{5=d8Hmzy4{;7$ zyFV1GYSrfb?)=9ozjW9+@m#t)&iQaGb43te%)U=>p)T6WndThCPMecjwm1I4Spw#Y zpqI_7$IyN1lRE;=D?^i*xyc~Pg!s>>n2SoqTr>pXAL#-fg>$5C-T(jq07*qoM6N<$ Eg3LZKEC2ui literal 0 HcmV?d00001 diff --git a/web/src/js/view/newhome/images/u509.png b/web/src/js/view/newhome/images/u509.png new file mode 100644 index 0000000000000000000000000000000000000000..986e39719427393967ecf944b43164db875a9042 GIT binary patch literal 833 zcmV-H1HSx;P)500001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0@g`HK~z{ry_YX+ z6hRb+?=BT5Dk=~a2uMyKAVDHdAP^Om6%`dtAfWYI+Nt+-_4!*bZ>(cJd-0YCs`;wP8e|~S?yWQEn*~b4e91hq2cwqdQ zB$I=rN6PPGTCyZs@<~ugr`c=<6H?3-HIoPyV+)dW2kU7lhe9r?8KNVf!#YdY>*PWS z=n{B<&#m&&~Of8wtiPB{UGXKhc2XE$n(SUDRoA1&-B?3GiuigdF-}7c0EV2m{;&0QwW9%blaaDPwJaMS}35$=! zE;DvjAsO`TY22112%7f_@q=a-(Hypl#oi;OxAIw#EIVZw)>y$^$Jz?Ze$5tE`Q3sx zzVX1;RY(-H``BjFI*P9Z@@uVD>yx@c(Afq(biHaM{cDrpxJn_0ZBX=;w5KE$17GB; zlB7>9rgSujkfcxEGjN$(@J;O?EZfG8&`xP6N{fJ}*l+ctpna(3NYJgP6oUTWEu~{8 zyLqffdn9NU6y^oVEi@-i?Z+Nv>>kaVSblITfhhWCiKdS`cMhiCW_$yS6*5pr9K?%? zi-L9+vs2vw8(G9D=vI{~4&oPzs|D8I!^IDA2-jRly^v=|Dg7X@Kgvp%dK}mfSL%%7 zOYe5d<2VNH%9o*7d%W}SrMe;4l2ZFY6Z&qlvHSQ+n;YE+tcQ7j9OKoVD73{d%3WOk zS!xTp89&T#NNQ`@q3x}k$>wZNE^E3P1lTS6jM)*i_;TxFL5NwAG=rfj#`>5YqUJR` z9$0)f%Nl@$bCOO55(bZ|%w3c$iPZDVS>DN?gIZp48vL$q0*%IB^zX7KjaOb000000 LNkvXXu0mjfjuv?x literal 0 HcmV?d00001 diff --git a/web/src/js/view/newhome/images/u513.png b/web/src/js/view/newhome/images/u513.png new file mode 100644 index 0000000000000000000000000000000000000000..97905ddd3b40ad5b200571701bf1cd47412692be GIT binary patch literal 1009 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1BOXNK~z{ry_i2p z)ln43eJ=+GA&DRdA%`F-2Zx4+HwXziIM^6CI5@Nj4Gl&PZ4C|%jkY&5XcQD=ROGHw zkfD&FP|+KT0tG|+eD1ry*L%J9#6R!%`@;8~bMHO(ocsITd+xpOmuuMvySux+h^|~N z*NN=j+uJ*XR8J_rCdBR=aveK$xun5?K&Jr$-iM#ij|F^ez!^9g-PZ!UVGI^aU7C;R zdpL$Gfy(JpbNV3GBSh;7ekPcU$vB48L97eJJe6Yvs}#<~`b{WLy-zk+2G zfUhn147ERo2{4a`^7;JJSPsCb4N*W|MS4*5@p_U&VPDXvhPB?|lh=qXoN?yP*il?LPv4O94 ze2&0bV}xL!?#@M(qhEl&u8&Ga>C^l`ZwUHzKo?IRJP&E2Y)3x z>p5=(d=&kefSH1aoem>ViFK)iSm8Vlfdz$3Zy+_7JsJm~`8&wGxj2pt{Ft8e@G+@s z%9i2ca-SZDE3vK&I+}NvP+h4PVK+3NWhKmG^Vgf@GE!e=!aA}F`17`UPsP`;1HDaB!3zGwwrD+a zld?8m_}xa`?M_0cCD3|gT^M*4gX;Tk%3zR72EL5$0&6c-rwf8^6YF|X=wSe>$W#$y z6hhDhR5(wgG``cQnZV}<#3(G!xu=tdeAT}?3{9&ccm=vpJOmCj75Fo!Jw(>%^9DJG ztlA^=?;P)-KcMk8Y-2V2x1SFuZZ^k{|t=4UJh`u#fXJ7S3y@vmR zGw00#NjH|TfdKpZhTK3p4(My!iJn5q6vTXJboW#b=S)B>_w7=KpcvfEygd2MhQ5t~ zT6->7N#hvw-$eN;dQ|8GdS$*ru_|E0&rKS_0o3rh3H>a3@|nqePA>H2&rOp0&(Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0Y*tgK~z{r?UkWU z1TheXx2w*QAUFkr1OyU+L?U?v9sojjDH z$b`u}(Hv^pa7fY;HQLZN38lT!+bHH{u;7Je7`hNV$}a+b%MoZuF^f`GMZ#59gP3nh~Z!Ax?ams zx`|u@2jX=XMqukEPi1B-pM%@4Xc6+S(1nI^q_ipI6QNy`{J$fp7`Z7%ZiPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1LR3WK~z{ry_u~~ z96=a|xyuOz0)aq~Z~}p>KwMG;q5{DmfS|4dfkYrGnjnw}L`9n*sHsAYQXaWfh^!d%a$Fa=p-0t4Tle{;(@7L_j&dkls)kZ3EdwbhNTD4kD?7AMAc6cWJPnSE783=#T4{&NSqte3{!_>nl5Ab< z>lP9R2MvhaB-k{HADMe;h;5Q1cfes&OV68o77Ut7Qo$c6#?8Gl>Rk( zY9x=sQ%M_(bC@a#ZkjVMeMG=QosX9JWwIV>9Kg5Iig+kc*AE)%uif5fMh_UgVmTA^%Wj8-wh0e$ zEja40GyJnM3ZqUdnCQqemnsBx(nt+GVDKt2j8j+Y*W)ohu`kvOu{U`deL#UR+Bc0W zE0d6;(7r={Y81P@&q<9}^&I1-DefTXX}w;L&QI91+F0~=aqzh!?|UTH`7_|FCDwtz z>wx~X`qK&*0qBdZaQgstZCkY&)OdQzS$~@aqc${CmSbR0mDY#RMKXH-mbf@DT?X`9 z&S8L1$EsDA0lk)aev{9QcKiY8lZ(z?A-5I^d4~ZT=H?u=c+^rm0KK*W{hm@Bx4BBkx zZnCi*B9%urDb(kpueA;KWpj^%Lv&QN!LHLOEz`?vq%@VRB6$PCfqmOT(%`7Gk|g+C zBHB7WL4tiOx(Q@nl_FiwYw*zyuUHqtQJZ+Tzby*>>O05C5mM>^34c9YxLNN8fjYG8 zdhpW=;-bF#nS_#DCC^wlAU`tBZ*TFzC2{OX%)$g!`k zIK*fKZy=@4rfXJ~hKd#_ba1I%p??-bUNGq8$zZ2iqPK>+Gi)X5+Nfa{{gT$ Vp7osyv<3hG002ovPDHLkV1j#G23r6C literal 0 HcmV?d00001 diff --git a/web/src/js/view/newhome/images/u620.png b/web/src/js/view/newhome/images/u620.png new file mode 100644 index 0000000000000000000000000000000000000000..05c87dec578e8d99c342cf438d99f7b33e18058d GIT binary patch literal 1226 zcmV;*1U37KP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1Yb!+K~!i%-I*^; z98nO);etRQ5C{ZgA`qCSBozpnASx;l6*Os^3eq4d zDiAb5K!T`1LenNRp$SdercG#|zwhnr-rnBs-tOJrLHZ>hH*em&*_plfXWr4(E?iz- z4qjYbJcbAGBV2_e)_wg!u;cJ0JSUktpx=VG&HQ?S_<9L$79M!vHU_qbZ~?L3+*}<9 zVwhl7;Hir)1a#-{4Pph3A+N*Vt}_I5Kj2fuo94E2;K60M3G1d0x)Z3iF=XZe=pKMe z^c^|l2++UhW75pq3m!HN;}Y0|Gl;!rnh0!q;FJYk1NnvvX4*dRkk9r^|Djsg5nEoY_~?b2a^Y`!!n%uxoO{oxLT?Z1jgFdGW-wfv zh0d2V&sz;Tn@AW0q&YtYdu&K7=%2(kcC!fK>JsrmfZCOo;D8O)*go|0@K82Upm!C3 zHHE8B#0P%!%+uRaT5yvvA;B>t)z$ zIgF!gSngy7&iYw|i!ip(%YkKcSp)p){;~n%D&yEqAs28^R|B<(AQ5EUUuNK**Odc|=wnL{ z+JjKVUQiJyK{hb1{6B>&h~f3&fG)9=LFZ39uX>;{0_(Czm-*&~O%Jwr;f@=e0obY} znMG{4ps^c*NjFiwpt6iMOy@vbcjqh@W<-q!XT z{YB&0_|vuWL#Op8_}#T?A)S1Gajl%NgVe=G{C}O&Lq%D}f-H~VB4Va*23y_ZGi?Ca z1Pj}Srvf|ea&s_t0}v7u@u9%rI%3^nh)xgC9e&ptN1(ALCITD%csGYwceO>Y^_x~X z2b(~{M8aU;4piV;d=0lzs4X`W7;^>{w1U3_x2&rM=z~L&&tR9$l}H+Jsz7vy54KU{ z%!xDtzIWj?VsHc$nh4Gkw^4L0C4yf~YpuJoxvT;D))O%&soN<1O(%l?H9k^ntZ*W& zl<~)GhaXHX9Qb|t8r|o&$nt2fX z9E9u=@YGeHQ{|u+SG``)NDL+p7F=oqd<1U|dBVnIg?>XzOaP{D&va%=h<;s&8YU10 zeVGz6KQ%ztIDsfI&if6eCJ+U-nZKc?5{QDqsR`vxAPUANCR9iQQQ*u^NcR*~xVqLh ooj?@$QbO;bf>(u`BZ022f9^L#hPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0W?WOK~z{r?U%7? z0znXl_rxNFjc|p9g}n)+wDbWiEG%sE4npu9gx~`N;v3j$X<=buZ>dEdAfUxT;MQ;4 zK`n$33^<1UV3~jCmb+nwo#7G>&M*bFW-${Wg|6TC%q%{i!!qhldkysFkhQMHlcFcV z>%FO4Oeh;ng$zCf&mFXx$iF9!x@$2LAcf3WA1wL(JRv0(ZanI~F*Q9dqwXy{u`}vs zG-qkj2hbyxW=i}_vX0XO-B4-jw{uM9hS*28ujs1yW1G1S=k|&Txr!Cv|9t=e002ov JPDHLkV1jk)u)_cV literal 0 HcmV?d00001 diff --git a/web/src/js/view/newhome/images/u82.svg b/web/src/js/view/newhome/images/u82.svg new file mode 100644 index 0000000000..e67551d388 --- /dev/null +++ b/web/src/js/view/newhome/images/u82.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/src/js/view/newhome/index.vue b/web/src/js/view/newhome/index.vue new file mode 100644 index 0000000000..09d9d0d42e --- /dev/null +++ b/web/src/js/view/newhome/index.vue @@ -0,0 +1,3 @@ + diff --git a/web/src/js/view/newhome/module/caseAndIntroduction/index.js b/web/src/js/view/newhome/module/caseAndIntroduction/index.js new file mode 100644 index 0000000000..9ea52ad7e8 --- /dev/null +++ b/web/src/js/view/newhome/module/caseAndIntroduction/index.js @@ -0,0 +1,10 @@ +export default { + name: 'CaseAndIntroduction', + events: [], + dispatchs: { + }, + data: { + API_PATH: process.env.VUE_APP_MN_CONFIG_PREFIX || `http://${window.location.host}/api/rest_j/v1/`, + }, + component: () => import('./index.vue'), +}; \ No newline at end of file diff --git a/web/src/js/view/newhome/module/caseAndIntroduction/index.vue b/web/src/js/view/newhome/module/caseAndIntroduction/index.vue new file mode 100644 index 0000000000..6a84b08139 --- /dev/null +++ b/web/src/js/view/newhome/module/caseAndIntroduction/index.vue @@ -0,0 +1,227 @@ + + + + diff --git a/web/src/js/view/newhome/module/workspace/index.js b/web/src/js/view/newhome/module/workspace/index.js new file mode 100644 index 0000000000..01be3f4532 --- /dev/null +++ b/web/src/js/view/newhome/module/workspace/index.js @@ -0,0 +1,10 @@ +export default { + name: 'Workspace', + events: [], + dispatchs: { + }, + data: { + API_PATH: process.env.VUE_APP_MN_CONFIG_PREFIX || `http://${window.location.host}/api/rest_j/v1/`, + }, + component: () => import('./index.vue'), +}; \ No newline at end of file diff --git a/web/src/js/view/newhome/module/workspace/index.scss b/web/src/js/view/newhome/module/workspace/index.scss new file mode 100644 index 0000000000..9987fbef04 --- /dev/null +++ b/web/src/js/view/newhome/module/workspace/index.scss @@ -0,0 +1,147 @@ +@import '../../../assets/styles/variables.scss'; + +.page-bgc { + background-color: #f7f7f7; + background: #fff; + + .page-bgc-header { + padding: 10px 25px 0; + } + + .header-info { + padding: 10px 0 10px 20px; + + p { + line-height: 24px; + } + } + + .workspace-main { + padding: 10px 25px; + display: flex; + justify-content: flex-start; + align-items: flex-start; + + .left { + flex: 1; + box-shadow: 0 1px 6px rgba(0, 0, 0, .2); + border-color: #eee; + min-height: 500px; + + .workspace-type-header { + padding: 10px 20px 0; + line-height: 30px; + display: flex; + justify-content: flex-start; + align-items: center; + + .workspace-type-header-label { + font-size: 14px; + display: inline-block; + margin: 0 5px; + font-weight: 900; + } + } + + .workspace-create-search { + padding: 0 35px; + display: flex; + justify-content: flex-start; + align-items: center; + margin: 10px 0 50px 0; + + .workspace-create { + flex-basis: 200px; + display: flex; + justify-content: flex-start; + align-items: center; + padding: 15px 10px; + &:hover { + box-shadow: 0 2px 12px 0 rgba(0,0,0,.2); + border-radius: 4px; + } + .workspace-create-text { + margin-left: 10px; + cursor: pointer; + } + } + + .header-search { + flex: 50%; + } + } + + .item-header { + font-size: 14px; + margin: 20px 25px 10px 25px; + font-weight: bold; + padding-left: 5px; + border-left: 3px solid $primary-color; + } + + .workspace-content { + .content-item { + .workspace-item { + cursor: pointer; + height: 180px; + margin: 15px; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2); + background: #fff; + padding: 10px; + position: relative; + background: url("../../../assets/images/workspace.png") center center no-repeat; + background-size: cover; + min-width: 222px; + .name { + display: block; + font-size: 16px; + font-weight: 600; + color: white; + } + + .desc { + width: 100%; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + color: white; + } + + .lable-list { + position: absolute; + left: 10px; + bottom: 30px; + display: flex; + justify-content: flex-start; + align-items: flex-start; + width: 100%; + .item { + display: inline-block; + font-size: 10px; + padding: .3em .9em; + margin: 0 .5em .5em 0; + white-space: nowrap; + background-color: #f1f8ff; + border-radius: 3px; + color: #0366d6; + overflow: hidden; + text-overflow: ellipsis; + max-width: 31%; + } + } + + .editor { + position: absolute; + right: 10px; + bottom: 10px; + } + } + } + } + } + } + +} diff --git a/web/src/js/view/newhome/module/workspace/index.vue b/web/src/js/view/newhome/module/workspace/index.vue new file mode 100644 index 0000000000..953c1f68a4 --- /dev/null +++ b/web/src/js/view/newhome/module/workspace/index.vue @@ -0,0 +1,157 @@ + + + diff --git a/web/src/js/view/newhome/module/workspace/module/workspaceForm.vue b/web/src/js/view/newhome/module/workspace/module/workspaceForm.vue new file mode 100644 index 0000000000..e297a552ad --- /dev/null +++ b/web/src/js/view/newhome/module/workspace/module/workspaceForm.vue @@ -0,0 +1,168 @@ + + diff --git a/web/src/js/view/newhome/tips.md b/web/src/js/view/newhome/tips.md new file mode 100644 index 0000000000..99a8d98213 --- /dev/null +++ b/web/src/js/view/newhome/tips.md @@ -0,0 +1,12 @@ +#### 开发注意 + +1. 自定义首页就在idnex.vue文件下开发,需要的工作空间和案例、快速入门在./module下,需要自行调试哦!!! + +2. 新增其他页面在view下面新建文件夹,页面对应的路由在:src\js\service\router.js下自行配置 + +3. 开发过程中可以使用:src\js\component下的公共组件,尽量不要修改,造成不通用,也可以新增组件 + +4. 目前开源的还没工作空间概念,所以对应的接口服务还没有,需要后台上传对应服务代码 + +5. 开发过程有问题随时联系 ![扫码加入](images/QR.png) + From c54233d23c53e4ec1a113aabd5d37d62b09e8877 Mon Sep 17 00:00:00 2001 From: zwx-master <1208247854@qq.com> Date: Mon, 22 Jun 2020 11:27:28 +0800 Subject: [PATCH 24/25] delete workspace --- web/src/js/view/newhome/images/111.png | Bin 22281 -> 0 bytes web/src/js/view/newhome/images/333.png | Bin 28244 -> 0 bytes web/src/js/view/newhome/images/QR.jpg | Bin 37822 -> 0 bytes web/src/js/view/newhome/images/desktop.ini | 11 - web/src/js/view/newhome/images/edit1.png | Bin 30795 -> 0 bytes web/src/js/view/newhome/images/u1191.png | Bin 461 -> 0 bytes web/src/js/view/newhome/images/u1225.png | Bin 684 -> 0 bytes web/src/js/view/newhome/images/u1226.png | Bin 581 -> 0 bytes web/src/js/view/newhome/images/u1229.png | Bin 283 -> 0 bytes web/src/js/view/newhome/images/u476.png | Bin 384 -> 0 bytes web/src/js/view/newhome/images/u501.png | Bin 687 -> 0 bytes web/src/js/view/newhome/images/u504.png | Bin 1190 -> 0 bytes web/src/js/view/newhome/images/u509.png | Bin 833 -> 0 bytes web/src/js/view/newhome/images/u513.png | Bin 1009 -> 0 bytes web/src/js/view/newhome/images/u517.png | Bin 433 -> 0 bytes web/src/js/view/newhome/images/u619.png | Bin 1103 -> 0 bytes web/src/js/view/newhome/images/u620.png | Bin 1226 -> 0 bytes web/src/js/view/newhome/images/u621.png | Bin 415 -> 0 bytes web/src/js/view/newhome/images/u82.svg | 1 - web/src/js/view/newhome/index.vue | 3 - .../module/caseAndIntroduction/index.js | 10 - .../module/caseAndIntroduction/index.vue | 227 ------------------ .../js/view/newhome/module/workspace/index.js | 10 - .../view/newhome/module/workspace/index.scss | 147 ------------ .../view/newhome/module/workspace/index.vue | 157 ------------ .../module/workspace/module/workspaceForm.vue | 168 ------------- web/src/js/view/newhome/tips.md | 12 - 27 files changed, 746 deletions(-) delete mode 100644 web/src/js/view/newhome/images/111.png delete mode 100644 web/src/js/view/newhome/images/333.png delete mode 100644 web/src/js/view/newhome/images/QR.jpg delete mode 100644 web/src/js/view/newhome/images/desktop.ini delete mode 100644 web/src/js/view/newhome/images/edit1.png delete mode 100644 web/src/js/view/newhome/images/u1191.png delete mode 100644 web/src/js/view/newhome/images/u1225.png delete mode 100644 web/src/js/view/newhome/images/u1226.png delete mode 100644 web/src/js/view/newhome/images/u1229.png delete mode 100644 web/src/js/view/newhome/images/u476.png delete mode 100644 web/src/js/view/newhome/images/u501.png delete mode 100644 web/src/js/view/newhome/images/u504.png delete mode 100644 web/src/js/view/newhome/images/u509.png delete mode 100644 web/src/js/view/newhome/images/u513.png delete mode 100644 web/src/js/view/newhome/images/u517.png delete mode 100644 web/src/js/view/newhome/images/u619.png delete mode 100644 web/src/js/view/newhome/images/u620.png delete mode 100644 web/src/js/view/newhome/images/u621.png delete mode 100644 web/src/js/view/newhome/images/u82.svg delete mode 100644 web/src/js/view/newhome/index.vue delete mode 100644 web/src/js/view/newhome/module/caseAndIntroduction/index.js delete mode 100644 web/src/js/view/newhome/module/caseAndIntroduction/index.vue delete mode 100644 web/src/js/view/newhome/module/workspace/index.js delete mode 100644 web/src/js/view/newhome/module/workspace/index.scss delete mode 100644 web/src/js/view/newhome/module/workspace/index.vue delete mode 100644 web/src/js/view/newhome/module/workspace/module/workspaceForm.vue delete mode 100644 web/src/js/view/newhome/tips.md diff --git a/web/src/js/view/newhome/images/111.png b/web/src/js/view/newhome/images/111.png deleted file mode 100644 index 0d0dc410e3b1143178f08e9125bdaeb787753ea3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22281 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 diff --git a/web/src/js/view/newhome/images/333.png b/web/src/js/view/newhome/images/333.png deleted file mode 100644 index 5f696746e0434b59b66ac3d198893bcf1c5ca473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28244 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 U@n-Pf;`q!C95H@j=p6ii0Eh`!cK`qY diff --git a/web/src/js/view/newhome/images/QR.jpg b/web/src/js/view/newhome/images/QR.jpg deleted file mode 100644 index f85da5edab90395d797154fde95c82226ac9747d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37822 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 TG+_u)00000NkvXXu0mjfdj0cY diff --git a/web/src/js/view/newhome/images/u1229.png b/web/src/js/view/newhome/images/u1229.png deleted file mode 100644 index 11052cd14c1a0401a56c366ea39a6f12703bae21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^MnKHN!3HE1{NLpODaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMpx_2i7sn6}@8lGTo&}AGrW39t{5WqQ?r}aL zBjpF9*l}jI)$Z?@Jy|*0AF^I>p6ejBzJ11mF9~cy2Ohj*fApK@D-Wx~8AefeM(2ad z1`XGpdk$pS@GkLHxTDA#FiGZw@_)rg&SDKVSFEN?64PVwO0rSt-@{nkF870>r_)U# zjAfFn^THpl>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0ToF^K~yMHm6APA z0znXlX9i;|_yO2k(EHWc@Ef$TAeyKYBqmZ)8F~^ahy|3E*jrFsA&rW$vGWhmYof`K zeVrXw%yL|UPc@4M+WLX)Y}XF=6Ji6&UTM^7`A$09M%6yIDeVpssb)gIkNXc)PoLqp%(6>Z+kn!;D7V;uYNGQmpv zg~1}Rw<8@N^4XKSkKRI6fPlD`|6c-X4&^e2zW{3L#WN<$4t eDpvDEBBF2OS$&L9INbyQ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0z^qfK~z{r#g-vY z98na7cP0n~V#NwX1tcUztRU$otRMl?qym9JP=_dvx{7)v5>ZjnAJ94k0+I@v06|a` zB;5poC<%g1K#$bJ5uZ7= zjJ{Al5hm1$->%hv$bCnmuMMh)PK`e>{zxo5I9DaFD}DsIYh+Gy?)kR^;lvEF#V%sR zQjg%A7K3kuUNh}F^s4+J>YURG^^#a5KZ?d+j^@4%!%#h(G07p~grW%@4+=cmc#IS6 zXaOOyG-y+SM-{KtXsjRpgCmkfd=&bE@kMmim`*VGW%;srty|r2<5FqJxQGwF7u@b? z87F?M2S{DU{>xi_sxmHS=kEazb4|w2f{bt7usnFUZe`qZho#bz@qrtc%6`CQ4-;qn z;XS`9MWfrSB{Sql|M3cm#656P;Gs|Bdps{(23WJT3D_hu?<|v`=QXj-&^7~=%3mtx Vga(ro=XwAD002ovPDHLkV1k@bF=YS% diff --git a/web/src/js/view/newhome/images/u504.png b/web/src/js/view/newhome/images/u504.png deleted file mode 100644 index 59fd43ac276892b0a3870a09e67bd15e6404c7a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1190 zcmV;X1X=ruP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1UpGYK~!i%?U-9^ z6jd0<=epgpS`u1lDA)=Ji6Egw5-}l0!AR6#hyfy`1PB;4kU;Rw2OoSep^*fhl;9i2 zs7;I{VuaEvu_PFvt(X!}Zqib0YZ036?%d8C|FiprOykaFXQtYR{biG#|Cuwp|2dcM zeCLRqb786?(f5?3VlFBbb5WVn<`N4f_UNzX^)^vbltnF4&3r12M*`+x%jjw4#)DMz zyMibiy$7Yt9Ch(dsct#dh)Q&GJUeI&bXaJu)O2;pTk`BxbVCr>-7d552<$44uag_s zN{=+sjWQ|69MkQw8_s9sqIKttn5t2lUQwD}6*CP~VIubUZ8p%s`cH9fRBm`)n)x)k zTdJ8SND9>mBETHp-n@L2-95{5gMysKPdk55+bqvrBdQsy6bRGV&^h$JJ$4h0F)mRC zuj=AA(dxx2rGYsgvfr#WZ+&a$hDaxeHTYA$y@iAaexZa7Uy$opIvrO%i;9xN8KY{3 z=Z8s`!Z*$_4Fij=Cjn7ZIMYa!qOw9nB{6dtJ=Py5tQ%h=)=*Jwk}zjm#)S{EUp%Fq z-m3kuE7!I{JM%U-vvfBG37Es$W&Cmo7D)?&b?qzt$6X|15Z4@{zj5gh2^ZGwlL)*d zq7v7fgApb;&yOl8AwyIiw8S7$f0}HPA^{1=#R;q%$OZ5f#7G#@F1mdY&I5;SFLh z@-`9$5Ri@TRubNDeH3j>q7=U7s%QCU4M@(6?gLuq4$>~nzK^x`&GuhCUUM06?^{Iz z#+;a*fmD&iM9kkm&wbf!^c?W|dxW~&@iltaKGGAxYX|Ow0?Z-lWqA8ZfQ|G>6Q|L? z2}skiid(;ZmRj*XX%|>MF=$A5gCSpXVCh|Z@w5J8E_j2JKe@4bZ5s&}=oc*WB)mz# z@M(!en(25p{o*l_9t3nNkn5IXZ$cs=teeN>$6g}gLt!W32X;64&YdI@BKQ3UZfPXE z32r%biu7n>{1oFMNT`&#s|C4=v=3y`7hAs{xQz=7Geb5T2yQumbxdw}4sn%q42<4` z>cY*Tnk~$PD1zO&{r8oaor|!{^?St`skq%9i^EoVB#?S9b_0Oma zw@{HcM(;;_yua$%){v9HP1p(HMpQFZs}A$*Aoiy|TWH+UI=73}^{5=d8Hmzy4{;7$ zyFV1GYSrfb?)=9ozjW9+@m#t)&iQaGb43te%)U=>p)T6WndThCPMecjwm1I4Spw#Y zpqI_7$IyN1lRE;=D?^i*xyc~Pg!s>>n2SoqTr>pXAL#-fg>$5C-T(jq07*qoM6N<$ Eg3LZKEC2ui diff --git a/web/src/js/view/newhome/images/u509.png b/web/src/js/view/newhome/images/u509.png deleted file mode 100644 index 986e39719427393967ecf944b43164db875a9042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 833 zcmV-H1HSx;P)500001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0@g`HK~z{ry_YX+ z6hRb+?=BT5Dk=~a2uMyKAVDHdAP^Om6%`dtAfWYI+Nt+-_4!*bZ>(cJd-0YCs`;wP8e|~S?yWQEn*~b4e91hq2cwqdQ zB$I=rN6PPGTCyZs@<~ugr`c=<6H?3-HIoPyV+)dW2kU7lhe9r?8KNVf!#YdY>*PWS z=n{B<&#m&&~Of8wtiPB{UGXKhc2XE$n(SUDRoA1&-B?3GiuigdF-}7c0EV2m{;&0QwW9%blaaDPwJaMS}35$=! zE;DvjAsO`TY22112%7f_@q=a-(Hypl#oi;OxAIw#EIVZw)>y$^$Jz?Ze$5tE`Q3sx zzVX1;RY(-H``BjFI*P9Z@@uVD>yx@c(Afq(biHaM{cDrpxJn_0ZBX=;w5KE$17GB; zlB7>9rgSujkfcxEGjN$(@J;O?EZfG8&`xP6N{fJ}*l+ctpna(3NYJgP6oUTWEu~{8 zyLqffdn9NU6y^oVEi@-i?Z+Nv>>kaVSblITfhhWCiKdS`cMhiCW_$yS6*5pr9K?%? zi-L9+vs2vw8(G9D=vI{~4&oPzs|D8I!^IDA2-jRly^v=|Dg7X@Kgvp%dK}mfSL%%7 zOYe5d<2VNH%9o*7d%W}SrMe;4l2ZFY6Z&qlvHSQ+n;YE+tcQ7j9OKoVD73{d%3WOk zS!xTp89&T#NNQ`@q3x}k$>wZNE^E3P1lTS6jM)*i_;TxFL5NwAG=rfj#`>5YqUJR` z9$0)f%Nl@$bCOO55(bZ|%w3c$iPZDVS>DN?gIZp48vL$q0*%IB^zX7KjaOb000000 LNkvXXu0mjfjuv?x diff --git a/web/src/js/view/newhome/images/u513.png b/web/src/js/view/newhome/images/u513.png deleted file mode 100644 index 97905ddd3b40ad5b200571701bf1cd47412692be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1009 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1BOXNK~z{ry_i2p z)ln43eJ=+GA&DRdA%`F-2Zx4+HwXziIM^6CI5@Nj4Gl&PZ4C|%jkY&5XcQD=ROGHw zkfD&FP|+KT0tG|+eD1ry*L%J9#6R!%`@;8~bMHO(ocsITd+xpOmuuMvySux+h^|~N z*NN=j+uJ*XR8J_rCdBR=aveK$xun5?K&Jr$-iM#ij|F^ez!^9g-PZ!UVGI^aU7C;R zdpL$Gfy(JpbNV3GBSh;7ekPcU$vB48L97eJJe6Yvs}#<~`b{WLy-zk+2G zfUhn147ERo2{4a`^7;JJSPsCb4N*W|MS4*5@p_U&VPDXvhPB?|lh=qXoN?yP*il?LPv4O94 ze2&0bV}xL!?#@M(qhEl&u8&Ga>C^l`ZwUHzKo?IRJP&E2Y)3x z>p5=(d=&kefSH1aoem>ViFK)iSm8Vlfdz$3Zy+_7JsJm~`8&wGxj2pt{Ft8e@G+@s z%9i2ca-SZDE3vK&I+}NvP+h4PVK+3NWhKmG^Vgf@GE!e=!aA}F`17`UPsP`;1HDaB!3zGwwrD+a zld?8m_}xa`?M_0cCD3|gT^M*4gX;Tk%3zR72EL5$0&6c-rwf8^6YF|X=wSe>$W#$y z6hhDhR5(wgG``cQnZV}<#3(G!xu=tdeAT}?3{9&ccm=vpJOmCj75Fo!Jw(>%^9DJG ztlA^=?;P)-KcMk8Y-2V2x1SFuZZ^k{|t=4UJh`u#fXJ7S3y@vmR zGw00#NjH|TfdKpZhTK3p4(My!iJn5q6vTXJboW#b=S)B>_w7=KpcvfEygd2MhQ5t~ zT6->7N#hvw-$eN;dQ|8GdS$*ru_|E0&rKS_0o3rh3H>a3@|nqePA>H2&rOp0&(Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0Y*tgK~z{r?UkWU z1TheXx2w*QAUFkr1OyU+L?U?v9sojjDH z$b`u}(Hv^pa7fY;HQLZN38lT!+bHH{u;7Je7`hNV$}a+b%MoZuF^f`GMZ#59gP3nh~Z!Ax?ams zx`|u@2jX=XMqukEPi1B-pM%@4Xc6+S(1nI^q_ipI6QNy`{J$fp7`Z7%ZiPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1LR3WK~z{ry_u~~ z96=a|xyuOz0)aq~Z~}p>KwMG;q5{DmfS|4dfkYrGnjnw}L`9n*sHsAYQXaWfh^!d%a$Fa=p-0t4Tle{;(@7L_j&dkls)kZ3EdwbhNTD4kD?7AMAc6cWJPnSE783=#T4{&NSqte3{!_>nl5Ab< z>lP9R2MvhaB-k{HADMe;h;5Q1cfes&OV68o77Ut7Qo$c6#?8Gl>Rk( zY9x=sQ%M_(bC@a#ZkjVMeMG=QosX9JWwIV>9Kg5Iig+kc*AE)%uif5fMh_UgVmTA^%Wj8-wh0e$ zEja40GyJnM3ZqUdnCQqemnsBx(nt+GVDKt2j8j+Y*W)ohu`kvOu{U`deL#UR+Bc0W zE0d6;(7r={Y81P@&q<9}^&I1-DefTXX}w;L&QI91+F0~=aqzh!?|UTH`7_|FCDwtz z>wx~X`qK&*0qBdZaQgstZCkY&)OdQzS$~@aqc${CmSbR0mDY#RMKXH-mbf@DT?X`9 z&S8L1$EsDA0lk)aev{9QcKiY8lZ(z?A-5I^d4~ZT=H?u=c+^rm0KK*W{hm@Bx4BBkx zZnCi*B9%urDb(kpueA;KWpj^%Lv&QN!LHLOEz`?vq%@VRB6$PCfqmOT(%`7Gk|g+C zBHB7WL4tiOx(Q@nl_FiwYw*zyuUHqtQJZ+Tzby*>>O05C5mM>^34c9YxLNN8fjYG8 zdhpW=;-bF#nS_#DCC^wlAU`tBZ*TFzC2{OX%)$g!`k zIK*fKZy=@4rfXJ~hKd#_ba1I%p??-bUNGq8$zZ2iqPK>+Gi)X5+Nfa{{gT$ Vp7osyv<3hG002ovPDHLkV1j#G23r6C diff --git a/web/src/js/view/newhome/images/u620.png b/web/src/js/view/newhome/images/u620.png deleted file mode 100644 index 05c87dec578e8d99c342cf438d99f7b33e18058d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1226 zcmV;*1U37KP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1Yb!+K~!i%-I*^; z98nO);etRQ5C{ZgA`qCSBozpnASx;l6*Os^3eq4d zDiAb5K!T`1LenNRp$SdercG#|zwhnr-rnBs-tOJrLHZ>hH*em&*_plfXWr4(E?iz- z4qjYbJcbAGBV2_e)_wg!u;cJ0JSUktpx=VG&HQ?S_<9L$79M!vHU_qbZ~?L3+*}<9 zVwhl7;Hir)1a#-{4Pph3A+N*Vt}_I5Kj2fuo94E2;K60M3G1d0x)Z3iF=XZe=pKMe z^c^|l2++UhW75pq3m!HN;}Y0|Gl;!rnh0!q;FJYk1NnvvX4*dRkk9r^|Djsg5nEoY_~?b2a^Y`!!n%uxoO{oxLT?Z1jgFdGW-wfv zh0d2V&sz;Tn@AW0q&YtYdu&K7=%2(kcC!fK>JsrmfZCOo;D8O)*go|0@K82Upm!C3 zHHE8B#0P%!%+uRaT5yvvA;B>t)z$ zIgF!gSngy7&iYw|i!ip(%YkKcSp)p){;~n%D&yEqAs28^R|B<(AQ5EUUuNK**Odc|=wnL{ z+JjKVUQiJyK{hb1{6B>&h~f3&fG)9=LFZ39uX>;{0_(Czm-*&~O%Jwr;f@=e0obY} znMG{4ps^c*NjFiwpt6iMOy@vbcjqh@W<-q!XT z{YB&0_|vuWL#Op8_}#T?A)S1Gajl%NgVe=G{C}O&Lq%D}f-H~VB4Va*23y_ZGi?Ca z1Pj}Srvf|ea&s_t0}v7u@u9%rI%3^nh)xgC9e&ptN1(ALCITD%csGYwceO>Y^_x~X z2b(~{M8aU;4piV;d=0lzs4X`W7;^>{w1U3_x2&rM=z~L&&tR9$l}H+Jsz7vy54KU{ z%!xDtzIWj?VsHc$nh4Gkw^4L0C4yf~YpuJoxvT;D))O%&soN<1O(%l?H9k^ntZ*W& zl<~)GhaXHX9Qb|t8r|o&$nt2fX z9E9u=@YGeHQ{|u+SG``)NDL+p7F=oqd<1U|dBVnIg?>XzOaP{D&va%=h<;s&8YU10 zeVGz6KQ%ztIDsfI&if6eCJ+U-nZKc?5{QDqsR`vxAPUANCR9iQQQ*u^NcR*~xVqLh ooj?@$QbO;bf>(u`BZ022f9^L#hPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0W?WOK~z{r?U%7? z0znXl_rxNFjc|p9g}n)+wDbWiEG%sE4npu9gx~`N;v3j$X<=buZ>dEdAfUxT;MQ;4 zK`n$33^<1UV3~jCmb+nwo#7G>&M*bFW-${Wg|6TC%q%{i!!qhldkysFkhQMHlcFcV z>%FO4Oeh;ng$zCf&mFXx$iF9!x@$2LAcf3WA1wL(JRv0(ZanI~F*Q9dqwXy{u`}vs zG-qkj2hbyxW=i}_vX0XO-B4-jw{uM9hS*28ujs1yW1G1S=k|&Txr!Cv|9t=e002ov JPDHLkV1jk)u)_cV diff --git a/web/src/js/view/newhome/images/u82.svg b/web/src/js/view/newhome/images/u82.svg deleted file mode 100644 index e67551d388..0000000000 --- a/web/src/js/view/newhome/images/u82.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/src/js/view/newhome/index.vue b/web/src/js/view/newhome/index.vue deleted file mode 100644 index 09d9d0d42e..0000000000 --- a/web/src/js/view/newhome/index.vue +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/web/src/js/view/newhome/module/caseAndIntroduction/index.js b/web/src/js/view/newhome/module/caseAndIntroduction/index.js deleted file mode 100644 index 9ea52ad7e8..0000000000 --- a/web/src/js/view/newhome/module/caseAndIntroduction/index.js +++ /dev/null @@ -1,10 +0,0 @@ -export default { - name: 'CaseAndIntroduction', - events: [], - dispatchs: { - }, - data: { - API_PATH: process.env.VUE_APP_MN_CONFIG_PREFIX || `http://${window.location.host}/api/rest_j/v1/`, - }, - component: () => import('./index.vue'), -}; \ No newline at end of file diff --git a/web/src/js/view/newhome/module/caseAndIntroduction/index.vue b/web/src/js/view/newhome/module/caseAndIntroduction/index.vue deleted file mode 100644 index 6a84b08139..0000000000 --- a/web/src/js/view/newhome/module/caseAndIntroduction/index.vue +++ /dev/null @@ -1,227 +0,0 @@ - - - - diff --git a/web/src/js/view/newhome/module/workspace/index.js b/web/src/js/view/newhome/module/workspace/index.js deleted file mode 100644 index 01be3f4532..0000000000 --- a/web/src/js/view/newhome/module/workspace/index.js +++ /dev/null @@ -1,10 +0,0 @@ -export default { - name: 'Workspace', - events: [], - dispatchs: { - }, - data: { - API_PATH: process.env.VUE_APP_MN_CONFIG_PREFIX || `http://${window.location.host}/api/rest_j/v1/`, - }, - component: () => import('./index.vue'), -}; \ No newline at end of file diff --git a/web/src/js/view/newhome/module/workspace/index.scss b/web/src/js/view/newhome/module/workspace/index.scss deleted file mode 100644 index 9987fbef04..0000000000 --- a/web/src/js/view/newhome/module/workspace/index.scss +++ /dev/null @@ -1,147 +0,0 @@ -@import '../../../assets/styles/variables.scss'; - -.page-bgc { - background-color: #f7f7f7; - background: #fff; - - .page-bgc-header { - padding: 10px 25px 0; - } - - .header-info { - padding: 10px 0 10px 20px; - - p { - line-height: 24px; - } - } - - .workspace-main { - padding: 10px 25px; - display: flex; - justify-content: flex-start; - align-items: flex-start; - - .left { - flex: 1; - box-shadow: 0 1px 6px rgba(0, 0, 0, .2); - border-color: #eee; - min-height: 500px; - - .workspace-type-header { - padding: 10px 20px 0; - line-height: 30px; - display: flex; - justify-content: flex-start; - align-items: center; - - .workspace-type-header-label { - font-size: 14px; - display: inline-block; - margin: 0 5px; - font-weight: 900; - } - } - - .workspace-create-search { - padding: 0 35px; - display: flex; - justify-content: flex-start; - align-items: center; - margin: 10px 0 50px 0; - - .workspace-create { - flex-basis: 200px; - display: flex; - justify-content: flex-start; - align-items: center; - padding: 15px 10px; - &:hover { - box-shadow: 0 2px 12px 0 rgba(0,0,0,.2); - border-radius: 4px; - } - .workspace-create-text { - margin-left: 10px; - cursor: pointer; - } - } - - .header-search { - flex: 50%; - } - } - - .item-header { - font-size: 14px; - margin: 20px 25px 10px 25px; - font-weight: bold; - padding-left: 5px; - border-left: 3px solid $primary-color; - } - - .workspace-content { - .content-item { - .workspace-item { - cursor: pointer; - height: 180px; - margin: 15px; - box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2); - background: #fff; - padding: 10px; - position: relative; - background: url("../../../assets/images/workspace.png") center center no-repeat; - background-size: cover; - min-width: 222px; - .name { - display: block; - font-size: 16px; - font-weight: 600; - color: white; - } - - .desc { - width: 100%; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - color: white; - } - - .lable-list { - position: absolute; - left: 10px; - bottom: 30px; - display: flex; - justify-content: flex-start; - align-items: flex-start; - width: 100%; - .item { - display: inline-block; - font-size: 10px; - padding: .3em .9em; - margin: 0 .5em .5em 0; - white-space: nowrap; - background-color: #f1f8ff; - border-radius: 3px; - color: #0366d6; - overflow: hidden; - text-overflow: ellipsis; - max-width: 31%; - } - } - - .editor { - position: absolute; - right: 10px; - bottom: 10px; - } - } - } - } - } - } - -} diff --git a/web/src/js/view/newhome/module/workspace/index.vue b/web/src/js/view/newhome/module/workspace/index.vue deleted file mode 100644 index 953c1f68a4..0000000000 --- a/web/src/js/view/newhome/module/workspace/index.vue +++ /dev/null @@ -1,157 +0,0 @@ - - - diff --git a/web/src/js/view/newhome/module/workspace/module/workspaceForm.vue b/web/src/js/view/newhome/module/workspace/module/workspaceForm.vue deleted file mode 100644 index e297a552ad..0000000000 --- a/web/src/js/view/newhome/module/workspace/module/workspaceForm.vue +++ /dev/null @@ -1,168 +0,0 @@ - - diff --git a/web/src/js/view/newhome/tips.md b/web/src/js/view/newhome/tips.md deleted file mode 100644 index 99a8d98213..0000000000 --- a/web/src/js/view/newhome/tips.md +++ /dev/null @@ -1,12 +0,0 @@ -#### 开发注意 - -1. 自定义首页就在idnex.vue文件下开发,需要的工作空间和案例、快速入门在./module下,需要自行调试哦!!! - -2. 新增其他页面在view下面新建文件夹,页面对应的路由在:src\js\service\router.js下自行配置 - -3. 开发过程中可以使用:src\js\component下的公共组件,尽量不要修改,造成不通用,也可以新增组件 - -4. 目前开源的还没工作空间概念,所以对应的接口服务还没有,需要后台上传对应服务代码 - -5. 开发过程有问题随时联系 ![扫码加入](images/QR.png) - From a93b5b5f14cdd6f6459d93895dd570403b257c8d Mon Sep 17 00:00:00 2001 From: zwx-master <1208247854@qq.com> Date: Wed, 24 Jun 2020 11:06:26 +0800 Subject: [PATCH 25/25] readOnly value modification --- web/package.json | 2 +- web/src/js/component/editor/editor.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/package.json b/web/package.json index 95693d3273..6d748244c7 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "dataspherestudio", - "version": "0.5.0", + "version": "0.8.0", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/web/src/js/component/editor/editor.vue b/web/src/js/component/editor/editor.vue index dad5484c92..79ae4e6387 100644 --- a/web/src/js/component/editor/editor.vue +++ b/web/src/js/component/editor/editor.vue @@ -91,7 +91,7 @@ export default { if (newValue == this.getValue()) { return; } - let readOnly = this.editor.getRawOptions().readOnly; + let readOnly = this.currentConfig.readOnly; if (readOnly) { // editor.setValue 和 model.setValue 都会丢失撤销栈 this.editor.setValue(newValue);