From ea29df1f69e488de11657110b7759ba1a910adcb Mon Sep 17 00:00:00 2001 From: zyy <1787816799@qq.com> Date: Thu, 29 Oct 2020 18:21:19 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=A6=8F=E5=B7=9E?= =?UTF-8?q?=E4=BA=8C=E6=9C=9F=E5=9C=B0=E5=9B=BE=E5=AF=BC=E5=85=A5=20?= =?UTF-8?q?=E5=9B=BD=E8=B5=9B=E8=BF=90=E8=A1=8C=E5=9B=BE=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/theme/fuzhou_01/planConvert.js | 343 ++++++++++++++------- src/jmapNew/theme/race_01/planConvert.js | 6 +- 2 files changed, 231 insertions(+), 118 deletions(-) diff --git a/src/jmapNew/theme/fuzhou_01/planConvert.js b/src/jmapNew/theme/fuzhou_01/planConvert.js index 001dc5030..39eb6ccc7 100644 --- a/src/jmapNew/theme/fuzhou_01/planConvert.js +++ b/src/jmapNew/theme/fuzhou_01/planConvert.js @@ -14,121 +14,233 @@ export default { ExcelConfig: { beginRow: 1, beginCol: 0, + fieldNum: 10, + trainId: '车次号', + columns: ['备注', '车次号'] + // beginRow: 1, + // beginCol: 0, // fieldNum: 10, - columns: { - '默认上行折返轨': { key: 'upTrack', formatter: (val) => { return val; } }, - '默认下行折返轨': { key: 'downTrack', formatter: (val) => { return val; } } - } + // columns: { + // '默认上行折返轨': { key: 'upTrack', formatter: (val) => { return val; } }, + // '默认下行折返轨': { key: 'downTrack', formatter: (val) => { return val; } } + // } }, + // /** 解析exal数据转换为Json后台数据*/ + // importData(Sheet, JsonData) { + // const dataList = convertSheetToList(Sheet, true); + // const needList = Object.keys(this.ExcelConfig.columns); + // const tripObj = { upTrack: '', downTrack: '' }; + // if (dataList && dataList.length && dataList[1] && dataList[0]) { + // const tIndex = dataList.findIndex(it => { return it[0]; }); + // if (dataList[0][0] == needList[0] && dataList[1][0] == needList[1]) { + // for (var colIndex = this.ExcelConfig.beginCol; colIndex < dataList.length; colIndex += 1) { + // var isContinue = true; + + // for (var rowIndex = this.ExcelConfig.beginRow; isContinue; rowIndex += 1) { + // isContinue = false; + + // var title = dataList[colIndex][0]; + // var value = dataList[colIndex][rowIndex]; + + // if (title && value) { + // // 数据列解析 + // isContinue = true; + // var titleStr = `${title}`.replace(/\s*/g, ''); + // var valueStr = `${value}`.replace(/\s*/g, ''); + + // // 取需要的字段 + // if (needList.findIndex(elem => { return elem == titleStr; }) >= 0) { + // tripObj[this.ExcelConfig.columns[titleStr].key] = this.ExcelConfig.columns[titleStr].formatter(valueStr); + // } + // } + + // } + // } + // } else { + // /** 解析二维数组为json对象*/ + // const reg0 = /^[↑|↓|¡|ü|ý|]+(.*)/; // ↑|↓ + // const reg1 = /^([▼|▲|¡ø|¨‹]+)\s*(\d+:\d+:\d+)/; // ▲ 06:10:00 + // const reg2 = /^(\d+:\d+:\d+)\s*([▼|▲|¡ø|¨‹]+)/; // 06:10:00 ▲ + // const reg3 = /^(\d+:\d+:\d+)\s*(\d+:\d+:\d+|)/; // 06:10:00 06:12:00 + // const reg4 = /[▼|▲|¡|ø|¨|‹]+/; // ▲ + + // dataList.forEach((elem, i) => { + // var begin = -1; + // /** 跳过名称所在的行*/ + // if (i != tIndex && elem && elem.length > 0) { + // elem.forEach((item, j) => { + // /** 过滤空值*/ + // if (item) { + // var value = `${item}`.trim(); + // var title = `${dataList[tIndex][j]}`.replace(/\s*/g, ''); + // /** 匹配到开始位置或者结束位置*/ + // if (reg0.test(value)) { + // if (begin == -1) { + // begin = value; // 设置初始索引 + // JsonData.push({ + // code: reg0.exec(value)[1], + // arrivalList: [] + // }); + // } else if (begin === value) { + // begin = -1; // 清空初始索引 + // } + // } else if (begin !== -1) { + // /** 匹配到中间位置*/ + // var begTime, endTime; + // var runFlag = JsonData[JsonData.length - 1].code[2]; + // var stationName = title.replace(/\s/, ''); + // var need = false; + // var flag = false; + // if (reg1.test(value)) { + // /** 含有特殊字符的时间格式*/ + // [, begTime, endTime] = reg1.exec(value); + + // begTime = reg4.test(begTime) ? '' : begTime; + // endTime = reg4.test(endTime) ? '' : endTime; + + // /** 下行方向时间互换*/ + // if (runFlag === '2') { + // [begTime, endTime] = [endTime, begTime]; + // } + + // /** 设置标志*/ + // [need, flag] = [true, true]; + // } else if (reg2.test(value)) { + // /** 含有特殊字符的时间格式*/ + // [, begTime, endTime] = reg2.exec(value); + + // begTime = reg4.test(begTime) ? '' : begTime; + // endTime = reg4.test(endTime) ? '' : endTime; + + // /** 下行方向时间互换*/ + // if (runFlag === '2') { + // [begTime, endTime] = [endTime, begTime]; + // } + + // /** 设置标志*/ + // [need, flag] = [true, true]; + // } else if (reg3.test(value)) { + // /** 正常时间格式*/ + // [, begTime, endTime] = reg3.exec(value); + + // /** 如果只存在一个数据时,则开始和结束设置一样*/ + // endTime = endTime || begTime; + + // /** 下行方向时间互换*/ + // if (runFlag === '2') { + // [begTime, endTime] = [endTime, begTime]; + // } + + // /** 设置标志*/ + // [need, flag] = [true, false]; + // } + + // /** 添加json数据*/ + // if (need) { // 储存非空 数据 + // var stationObj = { + // stationName: stationName + // }; + + // if (begTime) { stationObj['arriveTime'] = prefixTime(begTime); } + // if (endTime) { stationObj['departureTime'] = prefixTime(endTime); } + // if (flag) { stationObj['flag'] = flag; } // 是否转换轨 + // JsonData[JsonData.length - 1].arrivalList.push(stationObj); + // } + // } + // } + // }); + // } + // }); + // } + // } + // JsonData.forEach(item => { + // item['upTrack'] = tripObj.upTrack; + // item['downTrack'] = tripObj.downTrack; + // }); + + // return JsonData; + // }, /** 解析exal数据转换为Json后台数据*/ importData(Sheet, JsonData) { const dataList = convertSheetToList(Sheet, true); - const needList = Object.keys(this.ExcelConfig.columns); - const tripObj = { upTrack: '', downTrack: '' }; if (dataList && dataList.length && dataList[1] && dataList[0]) { - const tIndex = dataList.findIndex(it => { return it[0]; }); - if (dataList[0][0] == needList[0] && dataList[1][0] == needList[1]) { - for (var colIndex = this.ExcelConfig.beginCol; colIndex < dataList.length; colIndex += 1) { - var isContinue = true; - - for (var rowIndex = this.ExcelConfig.beginRow; isContinue; rowIndex += 1) { - isContinue = false; - - var title = dataList[colIndex][0]; - var value = dataList[colIndex][rowIndex]; - - if (title && value) { - // 数据列解析 - isContinue = true; - var titleStr = `${title}`.replace(/\s*/g, ''); - var valueStr = `${value}`.replace(/\s*/g, ''); - - // 取需要的字段 - if (needList.findIndex(elem => { return elem == titleStr; }) >= 0) { - tripObj[this.ExcelConfig.columns[titleStr].key] = this.ExcelConfig.columns[titleStr].formatter(valueStr); + const tIndex = 8; // 设置不用过滤行数 + /** 解析二维数组为json对象*/ + const reg3 = /^(\d+:\d+:\d+|)/; // 06:12:00 + const reg4 = /[▼|▲|¡|ø|¨|‹]+/; // ▲ + dataList.forEach((elem, i) => { + var begin = -1; + /** 跳过名称所在的行*/ + if (i != tIndex && elem && elem.length > 0) { + let flag = false; + let param = { begTime: '', endTime: '' }; + if (i > tIndex) { elem.reverse(); } + let interval = 1; + for (let j = 0; j < elem.length;) { + const item = elem[j]; + let title = ''; + var value = `${item}`.trim(); + if (i > tIndex) { // 上行线 + title = `${dataList[tIndex][dataList[tIndex].length - j - 1]}`.replace(/\s*/g, ''); + if (title == 'undefined') { + title = `${dataList[tIndex][dataList[tIndex].length - j - 2]}`.replace(/\s*/g, ''); + } + } else { // 下行线 + title = `${dataList[tIndex][j]}`.replace(/\s*/g, ''); + if (title == 'undefined') { + title = `${dataList[tIndex][j - 1]}`.replace(/\s*/g, ''); } } - } - } - } else { - /** 解析二维数组为json对象*/ - const reg0 = /^[↑|↓|¡|ü|ý|]+(.*)/; // ↑|↓ - const reg1 = /^([▼|▲|¡ø|¨‹]+)\s*(\d+:\d+:\d+)/; // ▲ 06:10:00 - const reg2 = /^(\d+:\d+:\d+)\s*([▼|▲|¡ø|¨‹]+)/; // 06:10:00 ▲ - const reg3 = /^(\d+:\d+:\d+)\s*(\d+:\d+:\d+|)/; // 06:10:00 06:12:00 - const reg4 = /[▼|▲|¡|ø|¨|‹]+/; // ▲ - - dataList.forEach((elem, i) => { - var begin = -1; - /** 跳过名称所在的行*/ - if (i != tIndex && elem && elem.length > 0) { - elem.forEach((item, j) => { - /** 过滤空值*/ - if (item) { - var value = `${item}`.trim(); - var title = `${dataList[tIndex][j]}`.replace(/\s*/g, ''); - /** 匹配到开始位置或者结束位置*/ - if (reg0.test(value)) { - if (begin == -1) { - begin = value; // 设置初始索引 - JsonData.push({ - code: reg0.exec(value)[1], - arrivalList: [] - }); - } else if (begin === value) { - begin = -1; // 清空初始索引 + /** 匹配到开始位置或者结束位置*/ + if (title == this.ExcelConfig.trainId && value != 'undefined') { + if (begin == -1) { + interval = 2; + flag = true; + begin = value; // 设置初始索引 + JsonData.push({ + code: value, + destinationCode: '', + arrivalList: [] + }); + } else if (flag) { + interval = 1; + begin = -1; // 清空初始索引 + JsonData[JsonData.length - 1].destinationCode = value; + flag = false; + } + } else if (title == this.ExcelConfig.columns[0]) { + interval = 1; + } else if (begin !== -1) { + const item1 = `${elem[j]}`.trim(); + const item2 = `${elem[j + 1]}`.trim(); + if (item1 != 'undefined' || item2 != 'undefined') { + /** 匹配到中间位置*/ + var stationName = title.replace(/\s/, ''); + const flag = reg3.test(item1) || reg3.test(item2); + if (this.ExcelConfig.columns.indexOf(stationName) == -1 && flag) { + let need = false; + if (value.split(':')[0] == '24') { // 24:XX:XX 类似这种数据 变24为00 + const arr = value.split(':'); + arr[0] = '00'; + value = arr.join(':'); + } + const item1 = elem[j] ? `${elem[j]}`.trim() : ''; + const item2 = elem[j + 1] ? `${elem[j + 1]}`.trim() : ''; + if (item1 && item2) { + param.begTime = item1; + param.endTime = item2; + } else if (item1 && !item2) { + param.begTime = item1; + param.endTime = item1; + } else if (!item1 && item2) { + param.begTime = item2; + param.endTime = item2; } - } else if (begin !== -1) { - /** 匹配到中间位置*/ - var begTime, endTime; - var runFlag = JsonData[JsonData.length - 1].code[2]; - var stationName = title.replace(/\s/, ''); - var need = false; - var flag = false; - if (reg1.test(value)) { - /** 含有特殊字符的时间格式*/ - [, begTime, endTime] = reg1.exec(value); - begTime = reg4.test(begTime) ? '' : begTime; - endTime = reg4.test(endTime) ? '' : endTime; - - /** 下行方向时间互换*/ - if (runFlag === '2') { - [begTime, endTime] = [endTime, begTime]; - } - - /** 设置标志*/ - [need, flag] = [true, true]; - } else if (reg2.test(value)) { - /** 含有特殊字符的时间格式*/ - [, begTime, endTime] = reg2.exec(value); - - begTime = reg4.test(begTime) ? '' : begTime; - endTime = reg4.test(endTime) ? '' : endTime; - - /** 下行方向时间互换*/ - if (runFlag === '2') { - [begTime, endTime] = [endTime, begTime]; - } - - /** 设置标志*/ - [need, flag] = [true, true]; - } else if (reg3.test(value)) { - /** 正常时间格式*/ - [, begTime, endTime] = reg3.exec(value); - - /** 如果只存在一个数据时,则开始和结束设置一样*/ - endTime = endTime || begTime; - - /** 下行方向时间互换*/ - if (runFlag === '2') { - [begTime, endTime] = [endTime, begTime]; - } - - /** 设置标志*/ - [need, flag] = [true, false]; + if (param.begTime && param.endTime) { + need = true; } /** 添加json数据*/ @@ -136,24 +248,25 @@ export default { var stationObj = { stationName: stationName }; - - if (begTime) { stationObj['arriveTime'] = prefixTime(begTime); } - if (endTime) { stationObj['departureTime'] = prefixTime(endTime); } - if (flag) { stationObj['flag'] = flag; } // 是否转换轨 + if (reg4.test(param.begTime)) { + param.begTime = ''; + } + if (reg4.test(param.endTime)) { + param.endTime = ''; + } + stationObj['arriveTime'] = prefixTime(param.begTime); + stationObj['departureTime'] = prefixTime(param.endTime); JsonData[JsonData.length - 1].arrivalList.push(stationObj); + param = { begTime: '', endTime: '' }; } } } - }); + } + j = j + interval; } - }); - } + } + }); } - JsonData.forEach(item => { - item['upTrack'] = tripObj.upTrack; - item['downTrack'] = tripObj.downTrack; - }); - return JsonData; }, diff --git a/src/jmapNew/theme/race_01/planConvert.js b/src/jmapNew/theme/race_01/planConvert.js index e6761ee67..48b2e1f55 100644 --- a/src/jmapNew/theme/race_01/planConvert.js +++ b/src/jmapNew/theme/race_01/planConvert.js @@ -222,13 +222,13 @@ export default { /** 计算折返点*/ elem.right = elem.tripNumber[0] == '2'; - var nextPoint = [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false), elem.right]; + var nextPoint = [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false), elem.tripNumber, elem.right]; if (serie.data.length > 0) { var lastPoint = serie.data[serie.data.length - 1]; if (lastPoint[2] !== nextPoint[2]) { var num = this.computedReentryNumber(elem.tripNumber); - serie.data.push([lastPoint[0], this.getYvalueByDirectionCode(lastPoint[1], lastPoint[2], num), lastPoint[2]]); - serie.data.push([nextPoint[0], this.getYvalueByDirectionCode(nextPoint[1], lastPoint[2], num), lastPoint[2]]); + serie.data.push([lastPoint[0], this.getYvalueByDirectionCode(lastPoint[1], lastPoint[3], num), lastPoint[3]]); + serie.data.push([nextPoint[0], this.getYvalueByDirectionCode(nextPoint[1], lastPoint[3], num), lastPoint[3]]); } } From 0abb974a953ae5aeb346b56a4f1636fb9f8b4699 Mon Sep 17 00:00:00 2001 From: zyy <1787816799@qq.com> Date: Thu, 29 Oct 2020 18:23:56 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E7=A6=8F=E5=B7=9E?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E5=9B=BE=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmapNew/theme/fuzhou_01/planConvert.js | 458 ++++++++++----------- 1 file changed, 229 insertions(+), 229 deletions(-) diff --git a/src/jmapNew/theme/fuzhou_01/planConvert.js b/src/jmapNew/theme/fuzhou_01/planConvert.js index 39eb6ccc7..3e233bad3 100644 --- a/src/jmapNew/theme/fuzhou_01/planConvert.js +++ b/src/jmapNew/theme/fuzhou_01/planConvert.js @@ -12,235 +12,128 @@ export default { /** excel解析配置*/ ExcelConfig: { - beginRow: 1, - beginCol: 0, - fieldNum: 10, - trainId: '车次号', - columns: ['备注', '车次号'] // beginRow: 1, // beginCol: 0, // fieldNum: 10, - // columns: { - // '默认上行折返轨': { key: 'upTrack', formatter: (val) => { return val; } }, - // '默认下行折返轨': { key: 'downTrack', formatter: (val) => { return val; } } - // } + // trainId: '车次号', + // columns: ['备注', '车次号'] + beginRow: 1, + beginCol: 0, + // fieldNum: 10, + columns: { + '默认上行折返轨': { key: 'upTrack', formatter: (val) => { return val; } }, + '默认下行折返轨': { key: 'downTrack', formatter: (val) => { return val; } } + } }, - // /** 解析exal数据转换为Json后台数据*/ - // importData(Sheet, JsonData) { - // const dataList = convertSheetToList(Sheet, true); - // const needList = Object.keys(this.ExcelConfig.columns); - // const tripObj = { upTrack: '', downTrack: '' }; - // if (dataList && dataList.length && dataList[1] && dataList[0]) { - // const tIndex = dataList.findIndex(it => { return it[0]; }); - // if (dataList[0][0] == needList[0] && dataList[1][0] == needList[1]) { - // for (var colIndex = this.ExcelConfig.beginCol; colIndex < dataList.length; colIndex += 1) { - // var isContinue = true; - - // for (var rowIndex = this.ExcelConfig.beginRow; isContinue; rowIndex += 1) { - // isContinue = false; - - // var title = dataList[colIndex][0]; - // var value = dataList[colIndex][rowIndex]; - - // if (title && value) { - // // 数据列解析 - // isContinue = true; - // var titleStr = `${title}`.replace(/\s*/g, ''); - // var valueStr = `${value}`.replace(/\s*/g, ''); - - // // 取需要的字段 - // if (needList.findIndex(elem => { return elem == titleStr; }) >= 0) { - // tripObj[this.ExcelConfig.columns[titleStr].key] = this.ExcelConfig.columns[titleStr].formatter(valueStr); - // } - // } - - // } - // } - // } else { - // /** 解析二维数组为json对象*/ - // const reg0 = /^[↑|↓|¡|ü|ý|]+(.*)/; // ↑|↓ - // const reg1 = /^([▼|▲|¡ø|¨‹]+)\s*(\d+:\d+:\d+)/; // ▲ 06:10:00 - // const reg2 = /^(\d+:\d+:\d+)\s*([▼|▲|¡ø|¨‹]+)/; // 06:10:00 ▲ - // const reg3 = /^(\d+:\d+:\d+)\s*(\d+:\d+:\d+|)/; // 06:10:00 06:12:00 - // const reg4 = /[▼|▲|¡|ø|¨|‹]+/; // ▲ - - // dataList.forEach((elem, i) => { - // var begin = -1; - // /** 跳过名称所在的行*/ - // if (i != tIndex && elem && elem.length > 0) { - // elem.forEach((item, j) => { - // /** 过滤空值*/ - // if (item) { - // var value = `${item}`.trim(); - // var title = `${dataList[tIndex][j]}`.replace(/\s*/g, ''); - // /** 匹配到开始位置或者结束位置*/ - // if (reg0.test(value)) { - // if (begin == -1) { - // begin = value; // 设置初始索引 - // JsonData.push({ - // code: reg0.exec(value)[1], - // arrivalList: [] - // }); - // } else if (begin === value) { - // begin = -1; // 清空初始索引 - // } - // } else if (begin !== -1) { - // /** 匹配到中间位置*/ - // var begTime, endTime; - // var runFlag = JsonData[JsonData.length - 1].code[2]; - // var stationName = title.replace(/\s/, ''); - // var need = false; - // var flag = false; - // if (reg1.test(value)) { - // /** 含有特殊字符的时间格式*/ - // [, begTime, endTime] = reg1.exec(value); - - // begTime = reg4.test(begTime) ? '' : begTime; - // endTime = reg4.test(endTime) ? '' : endTime; - - // /** 下行方向时间互换*/ - // if (runFlag === '2') { - // [begTime, endTime] = [endTime, begTime]; - // } - - // /** 设置标志*/ - // [need, flag] = [true, true]; - // } else if (reg2.test(value)) { - // /** 含有特殊字符的时间格式*/ - // [, begTime, endTime] = reg2.exec(value); - - // begTime = reg4.test(begTime) ? '' : begTime; - // endTime = reg4.test(endTime) ? '' : endTime; - - // /** 下行方向时间互换*/ - // if (runFlag === '2') { - // [begTime, endTime] = [endTime, begTime]; - // } - - // /** 设置标志*/ - // [need, flag] = [true, true]; - // } else if (reg3.test(value)) { - // /** 正常时间格式*/ - // [, begTime, endTime] = reg3.exec(value); - - // /** 如果只存在一个数据时,则开始和结束设置一样*/ - // endTime = endTime || begTime; - - // /** 下行方向时间互换*/ - // if (runFlag === '2') { - // [begTime, endTime] = [endTime, begTime]; - // } - - // /** 设置标志*/ - // [need, flag] = [true, false]; - // } - - // /** 添加json数据*/ - // if (need) { // 储存非空 数据 - // var stationObj = { - // stationName: stationName - // }; - - // if (begTime) { stationObj['arriveTime'] = prefixTime(begTime); } - // if (endTime) { stationObj['departureTime'] = prefixTime(endTime); } - // if (flag) { stationObj['flag'] = flag; } // 是否转换轨 - // JsonData[JsonData.length - 1].arrivalList.push(stationObj); - // } - // } - // } - // }); - // } - // }); - // } - // } - // JsonData.forEach(item => { - // item['upTrack'] = tripObj.upTrack; - // item['downTrack'] = tripObj.downTrack; - // }); - - // return JsonData; - // }, /** 解析exal数据转换为Json后台数据*/ importData(Sheet, JsonData) { const dataList = convertSheetToList(Sheet, true); + const needList = Object.keys(this.ExcelConfig.columns); + const tripObj = { upTrack: '', downTrack: '' }; if (dataList && dataList.length && dataList[1] && dataList[0]) { - const tIndex = 8; // 设置不用过滤行数 - /** 解析二维数组为json对象*/ - const reg3 = /^(\d+:\d+:\d+|)/; // 06:12:00 - const reg4 = /[▼|▲|¡|ø|¨|‹]+/; // ▲ - dataList.forEach((elem, i) => { - var begin = -1; - /** 跳过名称所在的行*/ - if (i != tIndex && elem && elem.length > 0) { - let flag = false; - let param = { begTime: '', endTime: '' }; - if (i > tIndex) { elem.reverse(); } - let interval = 1; - for (let j = 0; j < elem.length;) { - const item = elem[j]; - let title = ''; - var value = `${item}`.trim(); - if (i > tIndex) { // 上行线 - title = `${dataList[tIndex][dataList[tIndex].length - j - 1]}`.replace(/\s*/g, ''); - if (title == 'undefined') { - title = `${dataList[tIndex][dataList[tIndex].length - j - 2]}`.replace(/\s*/g, ''); - } - } else { // 下行线 - title = `${dataList[tIndex][j]}`.replace(/\s*/g, ''); - if (title == 'undefined') { - title = `${dataList[tIndex][j - 1]}`.replace(/\s*/g, ''); + const tIndex = dataList.findIndex(it => { return it[0]; }); + if (dataList[0][0] == needList[0] && dataList[1][0] == needList[1]) { + for (var colIndex = this.ExcelConfig.beginCol; colIndex < dataList.length; colIndex += 1) { + var isContinue = true; + + for (var rowIndex = this.ExcelConfig.beginRow; isContinue; rowIndex += 1) { + isContinue = false; + + var title = dataList[colIndex][0]; + var value = dataList[colIndex][rowIndex]; + + if (title && value) { + // 数据列解析 + isContinue = true; + var titleStr = `${title}`.replace(/\s*/g, ''); + var valueStr = `${value}`.replace(/\s*/g, ''); + + // 取需要的字段 + if (needList.findIndex(elem => { return elem == titleStr; }) >= 0) { + tripObj[this.ExcelConfig.columns[titleStr].key] = this.ExcelConfig.columns[titleStr].formatter(valueStr); } } - /** 匹配到开始位置或者结束位置*/ - if (title == this.ExcelConfig.trainId && value != 'undefined') { - if (begin == -1) { - interval = 2; - flag = true; - begin = value; // 设置初始索引 - JsonData.push({ - code: value, - destinationCode: '', - arrivalList: [] - }); - } else if (flag) { - interval = 1; - begin = -1; // 清空初始索引 - JsonData[JsonData.length - 1].destinationCode = value; - flag = false; - } - } else if (title == this.ExcelConfig.columns[0]) { - interval = 1; - } else if (begin !== -1) { - const item1 = `${elem[j]}`.trim(); - const item2 = `${elem[j + 1]}`.trim(); - if (item1 != 'undefined' || item2 != 'undefined') { - /** 匹配到中间位置*/ - var stationName = title.replace(/\s/, ''); - const flag = reg3.test(item1) || reg3.test(item2); - if (this.ExcelConfig.columns.indexOf(stationName) == -1 && flag) { - let need = false; - if (value.split(':')[0] == '24') { // 24:XX:XX 类似这种数据 变24为00 - const arr = value.split(':'); - arr[0] = '00'; - value = arr.join(':'); - } - const item1 = elem[j] ? `${elem[j]}`.trim() : ''; - const item2 = elem[j + 1] ? `${elem[j + 1]}`.trim() : ''; - if (item1 && item2) { - param.begTime = item1; - param.endTime = item2; - } else if (item1 && !item2) { - param.begTime = item1; - param.endTime = item1; - } else if (!item1 && item2) { - param.begTime = item2; - param.endTime = item2; - } + } + } + } else { + /** 解析二维数组为json对象*/ + const reg0 = /^[↑|↓|¡|ü|ý|]+(.*)/; // ↑|↓ + const reg1 = /^([▼|▲|¡ø|¨‹]+)\s*(\d+:\d+:\d+)/; // ▲ 06:10:00 + const reg2 = /^(\d+:\d+:\d+)\s*([▼|▲|¡ø|¨‹]+)/; // 06:10:00 ▲ + const reg3 = /^(\d+:\d+:\d+)\s*(\d+:\d+:\d+|)/; // 06:10:00 06:12:00 + const reg4 = /[▼|▲|¡|ø|¨|‹]+/; // ▲ - if (param.begTime && param.endTime) { - need = true; + dataList.forEach((elem, i) => { + var begin = -1; + /** 跳过名称所在的行*/ + if (i != tIndex && elem && elem.length > 0) { + elem.forEach((item, j) => { + /** 过滤空值*/ + if (item) { + var value = `${item}`.trim(); + var title = `${dataList[tIndex][j]}`.replace(/\s*/g, ''); + /** 匹配到开始位置或者结束位置*/ + if (reg0.test(value)) { + if (begin == -1) { + begin = value; // 设置初始索引 + JsonData.push({ + code: reg0.exec(value)[1], + arrivalList: [] + }); + } else if (begin === value) { + begin = -1; // 清空初始索引 + } + } else if (begin !== -1) { + /** 匹配到中间位置*/ + var begTime, endTime; + var runFlag = JsonData[JsonData.length - 1].code[2]; + var stationName = title.replace(/\s/, ''); + var need = false; + var flag = false; + if (reg1.test(value)) { + /** 含有特殊字符的时间格式*/ + [, begTime, endTime] = reg1.exec(value); + + begTime = reg4.test(begTime) ? '' : begTime; + endTime = reg4.test(endTime) ? '' : endTime; + + /** 下行方向时间互换*/ + if (runFlag === '2') { + [begTime, endTime] = [endTime, begTime]; + } + + /** 设置标志*/ + [need, flag] = [true, true]; + } else if (reg2.test(value)) { + /** 含有特殊字符的时间格式*/ + [, begTime, endTime] = reg2.exec(value); + + begTime = reg4.test(begTime) ? '' : begTime; + endTime = reg4.test(endTime) ? '' : endTime; + + /** 下行方向时间互换*/ + if (runFlag === '2') { + [begTime, endTime] = [endTime, begTime]; + } + + /** 设置标志*/ + [need, flag] = [true, true]; + } else if (reg3.test(value)) { + /** 正常时间格式*/ + [, begTime, endTime] = reg3.exec(value); + + /** 如果只存在一个数据时,则开始和结束设置一样*/ + endTime = endTime || begTime; + + /** 下行方向时间互换*/ + if (runFlag === '2') { + [begTime, endTime] = [endTime, begTime]; + } + + /** 设置标志*/ + [need, flag] = [true, false]; } /** 添加json数据*/ @@ -248,27 +141,134 @@ export default { var stationObj = { stationName: stationName }; - if (reg4.test(param.begTime)) { - param.begTime = ''; - } - if (reg4.test(param.endTime)) { - param.endTime = ''; - } - stationObj['arriveTime'] = prefixTime(param.begTime); - stationObj['departureTime'] = prefixTime(param.endTime); + + if (begTime) { stationObj['arriveTime'] = prefixTime(begTime); } + if (endTime) { stationObj['departureTime'] = prefixTime(endTime); } + if (flag) { stationObj['flag'] = flag; } // 是否转换轨 JsonData[JsonData.length - 1].arrivalList.push(stationObj); - param = { begTime: '', endTime: '' }; } } } - } - j = j + interval; + }); } - } - }); + }); + } } + JsonData.forEach(item => { + item['upTrack'] = tripObj.upTrack; + item['downTrack'] = tripObj.downTrack; + }); + return JsonData; }, + // /** 解析exal数据转换为Json后台数据*/ + // importData(Sheet, JsonData) { + // const dataList = convertSheetToList(Sheet, true); + // if (dataList && dataList.length && dataList[1] && dataList[0]) { + // const tIndex = 8; // 设置不用过滤行数 + // /** 解析二维数组为json对象*/ + // const reg3 = /^(\d+:\d+:\d+|)/; // 06:12:00 + // const reg4 = /[▼|▲|¡|ø|¨|‹]+/; // ▲ + // dataList.forEach((elem, i) => { + // var begin = -1; + // /** 跳过名称所在的行*/ + // if (i != tIndex && elem && elem.length > 0) { + // let flag = false; + // let param = { begTime: '', endTime: '' }; + // if (i > tIndex) { elem.reverse(); } + // let interval = 1; + // for (let j = 0; j < elem.length;) { + // const item = elem[j]; + // let title = ''; + // var value = `${item}`.trim(); + // if (i > tIndex) { // 上行线 + // title = `${dataList[tIndex][dataList[tIndex].length - j - 1]}`.replace(/\s*/g, ''); + // if (title == 'undefined') { + // title = `${dataList[tIndex][dataList[tIndex].length - j - 2]}`.replace(/\s*/g, ''); + // } + // } else { // 下行线 + // title = `${dataList[tIndex][j]}`.replace(/\s*/g, ''); + // if (title == 'undefined') { + // title = `${dataList[tIndex][j - 1]}`.replace(/\s*/g, ''); + // } + // } + + // /** 匹配到开始位置或者结束位置*/ + // if (title == this.ExcelConfig.trainId && value != 'undefined') { + // if (begin == -1) { + // interval = 2; + // flag = true; + // begin = value; // 设置初始索引 + // JsonData.push({ + // code: value, + // destinationCode: '', + // arrivalList: [] + // }); + // } else if (flag) { + // interval = 1; + // begin = -1; // 清空初始索引 + // JsonData[JsonData.length - 1].destinationCode = value; + // flag = false; + // } + // } else if (title == this.ExcelConfig.columns[0]) { + // interval = 1; + // } else if (begin !== -1) { + // const item1 = `${elem[j]}`.trim(); + // const item2 = `${elem[j + 1]}`.trim(); + // if (item1 != 'undefined' || item2 != 'undefined') { + // /** 匹配到中间位置*/ + // var stationName = title.replace(/\s/, ''); + // const flag = reg3.test(item1) || reg3.test(item2); + // if (this.ExcelConfig.columns.indexOf(stationName) == -1 && flag) { + // let need = false; + // if (value.split(':')[0] == '24') { // 24:XX:XX 类似这种数据 变24为00 + // const arr = value.split(':'); + // arr[0] = '00'; + // value = arr.join(':'); + // } + // const item1 = elem[j] ? `${elem[j]}`.trim() : ''; + // const item2 = elem[j + 1] ? `${elem[j + 1]}`.trim() : ''; + // if (item1 && item2) { + // param.begTime = item1; + // param.endTime = item2; + // } else if (item1 && !item2) { + // param.begTime = item1; + // param.endTime = item1; + // } else if (!item1 && item2) { + // param.begTime = item2; + // param.endTime = item2; + // } + + // if (param.begTime && param.endTime) { + // need = true; + // } + + // /** 添加json数据*/ + // if (need) { // 储存非空 数据 + // var stationObj = { + // stationName: stationName + // }; + // if (reg4.test(param.begTime)) { + // param.begTime = ''; + // } + // if (reg4.test(param.endTime)) { + // param.endTime = ''; + // } + // stationObj['arriveTime'] = prefixTime(param.begTime); + // stationObj['departureTime'] = prefixTime(param.endTime); + // JsonData[JsonData.length - 1].arrivalList.push(stationObj); + // param = { begTime: '', endTime: '' }; + // } + // } + // } + // } + // j = j + interval; + // } + // } + // }); + // } + // return JsonData; + // }, /** 将后台数据解析成图表*/ convertDataToModels(data, stations, kmRangeCoordMap, lineStyle) { From 860b00e9b38ada1dfff62cee7baa64c9af837fe0 Mon Sep 17 00:00:00 2001 From: zyy <1787816799@qq.com> Date: Thu, 29 Oct 2020 18:33:35 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E7=BB=98=E5=88=B6=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/baseUrl.js | 4 ++-- src/views/newMap/newMapdraft/index.vue | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/baseUrl.js b/src/utils/baseUrl.js index eda05cc52..408bf264a 100644 --- a/src/utils/baseUrl.js +++ b/src/utils/baseUrl.js @@ -2,11 +2,11 @@ export function getBaseUrl() { let BASE_API; if (process.env.NODE_ENV === 'development') { // BASE_API = 'https://joylink.club/jlcloud'; - // BASE_API = 'https://test.joylink.club/jlcloud'; + BASE_API = 'https://test.joylink.club/jlcloud'; // BASE_API = 'http://192.168.8.107:9000'; // 袁琪 // BASE_API = 'http://192.168.8.144:9000'; // 旭强 // BASE_API = 'http://192.168.3.175:9000'; // 张赛 - BASE_API = 'http://192.168.8.110:9000'; // 杜康 + // BASE_API = 'http://192.168.8.110:9000'; // 杜康 // BASE_API = 'http://b29z135112.zicp.vip'; // BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康 // BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛 diff --git a/src/views/newMap/newMapdraft/index.vue b/src/views/newMap/newMapdraft/index.vue index cfdba59e4..d5f6b6f0e 100644 --- a/src/views/newMap/newMapdraft/index.vue +++ b/src/views/newMap/newMapdraft/index.vue @@ -418,7 +418,7 @@ export default { map.stationStandList.forEach(stationStand => { const section = this.$store.getters['map/getDeviceByCode'](stationStand.standTrackCode); const list = []; - section.points.forEach(point => { + section && section.points.forEach(point => { list.push(point.x); }); if (stationStand.position.x > Math.max(...list) || stationStand.position.x < Math.min(...list)) {