123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Flyinsono Release Note</title>
- <link rel="shortcut icon" href="ReleaseNoteStyle/favicon.ico" type="image/x-icon">
- <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
- <meta name="renderer" content="webkit">
- <meta name="viewport" content="width=1280">
- <!--这个有用,注释掉会导致字体加粗-->
- <!--<link rel="stylesheet" href="ReleaseNoteStyle/portal-default_online.css">-->
- <link rel="stylesheet" href="ReleaseNoteStyle/c58c28943d93be3faf80.css" data-n-g="">
- <link rel="stylesheet" href="ReleaseNoteStyle/b3a4bbbac517f65cbfc0.css" data-n-p="">
- <link rel="stylesheet" href="ReleaseNoteStyle/main.css" data-n-p="">
- <script src="ReleaseNoteStyle/jquery-3.4.1.js"></script>
- <script src="ReleaseNoteStyle/xlsx.core.min.js"></script>
- <style>
- .loadingMore {
- color: #fff;
- background: #2468f2;
- border: 1px solid rgba(0,0,0,0.1);
- border-radius: 100px;
- display: block;
- text-decoration: none;
- text-align: center;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- width: 140px;
- height: 38px;
- font-size: 14px;
- line-height: 36px;
- margin: 40px auto 0 auto;
- -webkit-transition: all 0.2s ease-in-out;
- -moz-transition: all 0.2s ease-in-out;
- -ms-transition: all 0.2s ease-in-out;
- -o-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out;
- }
- .H4A {
- text-decoration: underline;
- margin: 0;
- padding: 0;
- font-style: normal;
- color: black;
- font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
- -webkit-font-smoothing: antialiased;
- font-size: 14px;
- font-weight: bold;
- text-align: -webkit-match-parent;
- list-style: none;
- }
- .interfaceA {
- text-decoration: underline;
- font-weight: 600;
- color: black;
- font-size: 14px;
- }
- .interfaceTitle {
- text-decoration: underline;
- font-weight: 600;
- color: white;
- font-family: PingFangSC-Regular;
- font-size: 16px;
- }
- </style>
- </head>
- <body class="portal-colud-contrast">
- <div id="__next">
- <div class="qCTvEXcR">
- <section id="banner" class="oXwjpy3I">
- <div class="width1180-center">
- <h1 style="padding-top: 18px;">新版杏聆荟JsonRPC服务接口 Release Notes</h1>
- <div class="nav-search home-search" style="margin-top: 10px; width: 50%; left: 25%; ">
- <span class="ant-input-group-wrapper ant-input-search ant-input-search-large ant-input-search-with-button global-workbench-searcher content-input ant-input-group-wrapper-lg">
- <span class="ant-input-wrapper ant-input-group">
- <span class="ant-input-affix-wrapper ant-input-affix-wrapper-lg">
- <span class="ant-input-prefix">
- <i class="oa-iconfont icon-search"></i>
- </span>
- <input placeholder="搜索当前部署包接口名称" id="txtSearchKeyword" class="ant-input ant-input-lg" type="text" value="" data-spm-anchor-id="api-workbench.home.0.i1.698d1e0fkHOuQC" onkeydown="searchClick(event)">
- <span class="ant-input-suffix">
- <span class="ant-input-clear-icon ant-input-clear-icon-hidden" role="button" tabindex="-1">
- <span role="img" aria-label="close-circle" class="anticon anticon-close-circle">
- <svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true">
- <path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path>
- </svg>
- </span>
- </span>
- </span>
- </span>
- <span class="ant-input-group-addon" onclick="searchBottonClick()">
- <button type="button" class="ant-btn ant-btn-primary ant-btn-lg ant-input-search-button" ant-click-animating-without-extra-node="false">
- <span data-spm-anchor-id="api-workbench.home.0.i0.698d1e0fkHOuQC">搜 索</span>
- </button>
- </span>
- </span>
- </span>
- </div>
- <p id="serverPath"></p>
- <p id="docHtmlPath"></p>
- <p id="interfaceDllVersion"></p>
- </div>
- </section>
- <section id="sdk-server" class="e6d_jOXn EAqN7jIh" style="background:#fff;">
- <div class="width1180-center" style="width: 1430px;">
- <h4 class="title" style="padding-top: 2px;"></h4>
- <ul class="__0peh9eaM" style="background: #f5f8fa;padding-top:54px;margin-top:0px;">
- <li id="historyVersion" class="__9nuz8_Oa" style="font-size:26px;font-weight:600;" onclick="chooseType(0);">版本历史</li>
- <li id="interfaceUpdateList" style="font-size:26px;font-weight:600;" onclick="chooseType(1);">接口更新列表</li>
- </ul>
- <div class="Z8Q7b6Lk" id="tblInterfaceLibrary" style="margin-top:0px;">
- </div>
- <input type="hidden" id="hdVersionLoadingCount" value="10" />
- <input type="hidden" id="hdInterfaceUpldateListCount" value="50" />
- <input type="hidden" id="hdActiveLi" value="historyVersion" />
- <input type="hidden" id="hdActiveVersion" value="" />
- </div>
- <div id="divLoadingMore" style="display:none;">
- <a class="loadingMore" href="javascript:loadingMoreClick()"><span id="loadingMoreSpan">加载更多</span></a>
- </div>
- </section>
- </div>
- </div>
- <script>
- function searchClick() {
- var e = e || event;
- if (e.keyCode == 13) {
- searchBottonClick();
- }
- }
- function searchBottonClick() {
- $("#interfaceUpdateList").addClass('__9nuz8_Oa');
- $("#historyVersion").removeClass('__9nuz8_Oa');
- $("#hdActiveLi").val("interfaceUpdateList");
- $("#hdInterfaceUpldateListCount").val(100);
- loadingInterfaceData(1);
- }
- function loadingMoreClick() {
- var activeItem = $("#hdActiveLi").val();
- if (activeItem === "historyVersion") {
- loadingVersionData(1);
- }
- else {
- loadingInterfaceData(1);
- }
- }
- var versionDatas = [];
- var interfaceDatas = [];
- function chooseType(type) {
- if (type === 0) {
- var loadingCount = parseInt($("#hdVersionLoadingCount").val());
- if (loadingCount > 20) {
- $("#loadingMoreSpan").html("加载全部");
- }
- else {
- $("#loadingMoreSpan").html("加载更多");
- }
- //版本历史
- $("#historyVersion").addClass('__9nuz8_Oa');
- $("#interfaceUpdateList").removeClass('__9nuz8_Oa');
- $("#hdActiveLi").val("historyVersion");
- loadingVersionData(0);
- }
- else {
- var loadingCount = parseInt($("#hdInterfaceUpldateListCount").val());
- if (loadingCount > 20) {
- $("#loadingMoreSpan").html("加载全部");
- }
- else {
- $("#loadingMoreSpan").html("加载更多");
- }
- //数据详情
- $("#interfaceUpdateList").addClass('__9nuz8_Oa');
- $("#historyVersion").removeClass('__9nuz8_Oa');
- $("#hdActiveLi").val("interfaceUpdateList");
- loadingInterfaceData(0);
- }
- }
- function readFile(filePath) {
- let xhr = new XMLHttpRequest();
- xhr.responseType = "blob";
- xhr.open('GET', filePath, true);
- xhr.onload = function () {
- if (this.status === 200) {
- var blob = this.response;
- let file = new window.File([blob], 'JSON.xlsx');
- var fileReader = new FileReader();
- fileReader.readAsBinaryString(file);
- fileReader.onload = function (ev) {
- var data = ev.target.result;
- var workbook = XLSX.read(data, {
- type: 'binary'
- }) // 以二进制流方式读取得到整份excel表格对象
- var excelDatas = [];
- // 遍历每张表读取
- for (var sheet in workbook.Sheets) {
- if (workbook.Sheets.hasOwnProperty(sheet)) {
- var dataList = [];
- dataList = dataList.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
- var entity = {
- "name": sheet,
- "datas": dataList
- }
- excelDatas.push(entity);
- }
- }
- if (excelDatas && excelDatas.length >= 3) {
- var versionList = excelDatas[0].datas;
- if (versionList && versionList.length > 0) {
- versionList.sort(compare("更新时间", 'inverted'));
- versionDatas = versionList;
- var activeVersion = versionDatas[0]["部署包"];
- $("#hdActiveVersion").val(activeVersion);
- loadingVersionData(0);
- }
- var noteList = excelDatas[1].datas;
- if (noteList && noteList.length > 0) {
- var noteInfo = noteList[0];
- var serverPathStr = "服务器发布地址:" + noteInfo["服务器发布地址"];
- //window.localStorage.setItem("CurrentPackagePublishInfo", serverPathStr);
- $("#serverPath").html(serverPathStr);
- var docHtmlPathStr = "<a target='_blank' class='interfaceTitle' href='DocHtml.html'>JsonRPC接口文档</a>";
- $("#docHtmlPath").html(docHtmlPathStr);
- var interfaceDllVersionStr = "<a target='_blank' class='interfaceTitle' href='WingInterfaceLibrary.dll'>WingInterfaceLibrary版本:" + noteInfo["WingInterfaceLibrary版本"] + '</a>';
- $("#interfaceDllVersion").html(interfaceDllVersionStr);
- }
- var interfaceList = excelDatas[2].datas;
- if (interfaceList && interfaceList.length > 0) {
- interfaceList.sort(compare("发布时间", 'inverted'));
- interfaceDatas = interfaceList;
- //loadingInterfaceData(0);
- // var activeInterfaceDatas = interfaceDatas.filter(c => c["部署包"] === activeVersion);
- // if (activeInterfaceDatas && activeInterfaceDatas.length > 0) {
- // var str = JSON.stringify(activeInterfaceDatas);
- // window.localStorage.setItem("CurrentInterfaceUpdateDatas", str);
- // }
- }
- }
- else {
- console.log("数据格式错误,错误数据为:", excelDatas);
- }
- }
- }
- };
- xhr.send();
- }
- function loadingVersionData(type) {
- if (versionDatas && versionDatas.length > 0) {
- var loadingCount = parseInt($("#hdVersionLoadingCount").val());
- if (type === 1) {
- if (loadingCount > 20) {
- loadingCount = versionDatas.length;
- }
- else {
- loadingCount += 20;
- if (loadingCount > 20) {
- $("#loadingMoreSpan").html("加载全部");
- }
- else {
- $("#loadingMoreSpan").html("加载更多");
- }
- }
- }
- var htmlStr = '<ul class="n8w6ZLJg">';
- htmlStr += '<li class="uH207xEy">';
- htmlStr += '<h4 class="iC_rkcfC" style="font-size:15px;font-weight:bold;flex:0 0 215px">部署包</h4>';
- htmlStr += '<span class="G5g56xYQ" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 200px">版本号</span>';
- htmlStr += '<span class="G5g56xYQ" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 580px">更新描述</span>';
- htmlStr += '<span class="Ba9M5N1G" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 200px">更新时间</span>';
- htmlStr += '<span class="UpIf0JYT" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 200px">更新人</span>';
- htmlStr += '</li>'
- versionDatas.forEach((dt, index) => {
- if (index < loadingCount) {
- htmlStr += '<li>';
- htmlStr += '<h4 class="iC_rkcfC" style="flex: 0 0 225px"><a class="H4A" style="cursor: pointer;" href="javascript:versionDetailClick(\'' + dt["部署包"] + '\')">' + dt["部署包"] + '</a></h4>';
- htmlStr += '<span class="G5g56xYQ" style="flex: 0 0 200px">' + dt["版本号"] + '</span>';
- htmlStr += '<span class="G5g56xYQ" style="flex: 0 0 580px">' + replaceAll(dt["更新描述"], '\n', '<br />') + '</span>';
- htmlStr += '<span class="Ba9M5N1G" style="flex: 0 0 200px">' + dateFormat(dt["更新时间"], 'yyyy-MM-dd') + '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 200px">' + dt["更新人"] + '</span>';
- htmlStr += '</li>';
- }
- });
- htmlStr += "</ul>";
- $("#tblInterfaceLibrary").html(htmlStr);
- $("#hdVersionLoadingCount").val(loadingCount)
- if (versionDatas.length > loadingCount) {
- //显示加载更多
- $("#divLoadingMore").show();
- }
- else {
- //隐藏加载更多
- $("#divLoadingMore").hide();
- }
- }
- }
- function versionDetailClick(version) {
- if (version && version.length > 0) {
- $("#hdActiveVersion").val(version);
- $("#hdInterfaceUpldateListCount").val(50);
- var keyword = $("#txtSearchKeyword").val();
- if (keyword) {
- keyword = keyword.trim();
- if (keyword.length > 0) {
- searchBottonClick();
- return;
- }
- }
- chooseType(1);
- }
- }
- function loadingInterfaceData(type) {
- if (interfaceDatas && interfaceDatas.length > 0) {
- var keyword = $("#txtSearchKeyword").val();
- if (keyword) {
- keyword = keyword.trim().toLowerCase();
- }
- var loadingCount = parseInt($("#hdInterfaceUpldateListCount").val());
- var activeVersion = $("#hdActiveVersion").val();
- var activeInterfaceDatas = interfaceDatas.filter(c => c["部署包"] === activeVersion);
- if (type === 1) {
- if (loadingCount > 20) {
- loadingCount = activeInterfaceDatas.length;
- }
- else {
- loadingCount += 20;
- if (loadingCount > 20) {
- $("#loadingMoreSpan").html("加载全部");
- }
- else {
- $("#loadingMoreSpan").html("加载更多");
- }
- }
- }
- var htmlStr = '<ul class="n8w6ZLJg">';
- htmlStr += '<li class="uH207xEy">';
- htmlStr += '<h4 class="iC_rkcfC" style="font-size:15px;flex:0 0 110px;font-weight:bold;">发布时间</h4>';
- htmlStr += '<span class="G5g56xYQ" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 230px">接口名称</span>';
- htmlStr += '<span class="Ba9M5N1G" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 515px">描述</span>';
- htmlStr += '<span class="UpIf0JYT" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 115px">自动化测试</span>';
- htmlStr += '<span class="UpIf0JYT" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 75px">增/改</span>';
- htmlStr += '<span class="UpIf0JYT" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 140px">部署包</span>';
- htmlStr += '<span class="UpIf0JYT" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 90px">版本号</span>';
- htmlStr += '<span class="UpIf0JYT" style="color: #2468f2; font-family: inherit; font-size: 15px; font-weight: 600; flex: 0 0 110px">开发人员</span>';
- htmlStr += '</li>';
- if (activeInterfaceDatas && activeInterfaceDatas.length > 0) {
- var str = JSON.stringify(activeInterfaceDatas);
- window.localStorage.setItem("CurrentInterfaceUpdateDatas", str);
- activeInterfaceDatas.forEach((dt, index) => {
- if (index < loadingCount) {
- if (keyword && keyword.length > 0) {
- if (dt["接口名称"].toLowerCase().indexOf(keyword) > -1) {
- //找到
- htmlStr += '<li>';
- htmlStr += '<h4 class="iC_rkcfC H4A" style="flex: 0 0 110px;font-size:12px;text-decoration:none;opacity: 0.6;">' + dateFormat(dt["发布时间"], 'yyyy-MM-dd') + '</h4>';
- htmlStr += '<span class="G5g56xYQ" style="flex: 0 0 230px;opacity: 1;"><a target="_blank" class="interfaceA" href="http://192.168.6.117:7301/DocHtml.html?key=' + dt["接口名称"] + '">' + dt["接口名称"] + '</a></span>';
- htmlStr += '<span class="Ba9M5N1G" style="flex: 0 0 515px;font-size:12px;">' + replaceAll(dt["描述"], '\n', '<br />') + '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 115px;">'
- if (dt["自动化测试"] && dt["自动化测试"] === "无测试用例") {
- htmlStr += '<span style="background-color: orange;font-size:12px;font-weight: 600;">' + dt["自动化测试"] + '</span>';
- }
- else {
- htmlStr += '<span style="background-color: greenyellow;font-size:14px;font-weight: 600;">' + dt["自动化测试"] + '</span>';
- }
- htmlStr += '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 75px;font-size:12px;">' + dt["增/改"] + '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 140px;font-size:12px;">' + dt["部署包"] + '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 90px;font-size:12px;">' + dt["版本号"] + '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 110px;font-size:12px;">' + dt["开发人员"] + '</span>';
- htmlStr += '</li>';
- }
- //未找到,不处理
- }
- else {
- htmlStr += '<li>';
- htmlStr += '<h4 class="iC_rkcfC H4A" style="flex: 0 0 110px;font-size:12px;text-decoration:none;opacity: 0.6;">' + dateFormat(dt["发布时间"], 'yyyy-MM-dd') + '</h4>';
- htmlStr += '<span class="G5g56xYQ" style="flex: 0 0 230px;opacity: 1;"><a target="_blank" class="interfaceA" href="http://192.168.6.117:7301/DocHtml.html?key=' + dt["接口名称"] + '">' + dt["接口名称"] + '</a></span>';
- htmlStr += '<span class="Ba9M5N1G" style="flex: 0 0 515px;font-size:12px;">' + replaceAll(dt["描述"], '\n', '<br />') + '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 115px;">'
- if (dt["自动化测试"] && dt["自动化测试"] === "无测试用例") {
- htmlStr += '<span style="background-color: orange;font-size:12px;font-weight: 600;">' + dt["自动化测试"] + '</span>';
- }
- else {
- htmlStr += '<span style="background-color: greenyellow;font-size:14px;font-weight: 600;">' + dt["自动化测试"] + '</span>';
- }
- htmlStr += '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 75px;font-size:12px;">' + dt["增/改"] + '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 140px;font-size:12px;">' + dt["部署包"] + '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 90px;font-size:12px;">' + dt["版本号"] + '</span>';
- htmlStr += '<span class="UpIf0JYT" style="flex: 0 0 110px;font-size:12px;">' + dt["开发人员"] + '</span>';
- htmlStr += '</li>';
- }
- }
- });
- }
- htmlStr += "</ul>";
- $("#tblInterfaceLibrary").html(htmlStr);
- $("#hdInterfaceUpldateListCount").val(loadingCount)
- if (activeInterfaceDatas && activeInterfaceDatas.length > loadingCount) {
- //显示加载更多
- $("#divLoadingMore").show();
- }
- else {
- //隐藏加载更多
- $("#divLoadingMore").hide();
- }
- }
- }
- $(document).ready(function () {
- readFile('ReleaseNoteStyle/新版杏聆荟ReleaseNotes.xlsx');
- });
- //排序
- function compare(prop, align) {
- return function (a, b) {
- var value1 = a[prop];
- var value2 = b[prop];
- if (align == "positive") {//正序
- return new Date(value1) - new Date(value2);
- } else if (align == "inverted") {//倒序
- return new Date(value2) - new Date(value1);
- }
- }
- }
- function dateFormat(date, fmt = 'yyyy-MM-dd hh:mm:ss') {
- date = new Date(date)
- var o = {
- "M+": date.getMonth() + 1, //月份
- "d+": date.getDate(), //日
- "h+": date.getHours(), //小时
- "m+": date.getMinutes(), //分
- "s+": date.getSeconds(), //秒
- "q+": Math.floor((date.getMonth() + 3) / 3), //季度
- "S": date.getMilliseconds() //毫秒
- };
- if (/(y+)/.test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
- }
- for (var k in o) {
- if (new RegExp("(" + k + ")").test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
- }
- }
- return fmt;
- }
- function replaceAll(str, f, t) {
- var newStr = str.replaceAll(f, t);
- return newStr;
- }
- String.prototype.replaceAll = function (s1, s2) {
- return this.replace(new RegExp(s1, "gm"), s2);
- }
- </script>
- </body>
- </html>
|