@@ -975,6 +981,12 @@
@add-event-listener="addEventListener"
@equal-distance-replication-succeeded="equalDistanceReplicationSucceeded"
/>
+
+
{
toolbarSwitchType.value === 'createLineLibrary' ||
toolbarSwitchType.value === 'createRegion' ||
toolbarSwitchType.value === 'bulkDelete' ||
- toolbarSwitchType.value === 'batchCopying'
+ toolbarSwitchType.value === 'batchCopying' ||
+ toolbarSwitchType.value === 'bulkEditing'
) {
state.cursorStyle = 'crosshair'
} else if (
@@ -1917,6 +1937,7 @@ const toolbarClick = async (item) => {
toolbarSwitchType.value === 'createRegion' ||
toolbarSwitchType.value === 'bulkDelete' ||
toolbarSwitchType.value === 'batchCopying' ||
+ toolbarSwitchType.value === 'bulkEditing' ||
toolbarSwitchType.value === 'editRoute' ||
toolbarSwitchType.value === 'generateLine'
) {
@@ -2127,6 +2148,9 @@ const toolbarClick = async (item) => {
case 'batchCopying':
//批量复制
break
+ case 'bulkEditing':
+ //批量编辑
+ break
case 'showSortNum':
// 显示节点序号
//网格
@@ -2397,7 +2421,7 @@ const replicationNode = () => {
resizable: copyMapItem.resizable,
rotatable: copyMapItem.rotatable,
lockAspectRatio: copyMapItem.lockAspectRatio,
- layerSelectionShow: copyMapItem.layerSelectionShow,
+ layerSelectionShow: true,
mapImageUrl: copyMapItem.mapImageUrl,
locationYaw: copyMapItem.locationYaw,
areaId: null,
@@ -2671,6 +2695,7 @@ const startDrawSelection = (event) => {
toolbarSwitchType.value === 'drawRoute' ||
toolbarSwitchType.value == 'generateLine' ||
toolbarSwitchType.value === 'bulkDelete' ||
+ toolbarSwitchType.value === 'bulkEditing' ||
toolbarSwitchType.value === 'batchCopying'
) {
const { x, y } = disposeEventPoints(event)
@@ -2693,6 +2718,7 @@ const updateDrawSelection = throttle((event) => {
toolbarSwitchType.value === 'drawRoute' ||
toolbarSwitchType.value === 'generateLine' ||
toolbarSwitchType.value === 'bulkDelete' ||
+ toolbarSwitchType.value === 'bulkEditing' ||
toolbarSwitchType.value === 'batchCopying'
) {
if (state.drawSelectionAreaShow) {
@@ -2801,6 +2827,7 @@ const endDrawSelection = (event) => {
toolbarSwitchType.value === 'drawRoute' ||
toolbarSwitchType.value === 'generateLine' ||
toolbarSwitchType.value === 'bulkDelete' ||
+ toolbarSwitchType.value === 'bulkEditing' ||
toolbarSwitchType.value === 'batchCopying'
) {
// 使用 requestAnimationFrame 优化渲染
@@ -2842,7 +2869,7 @@ const clickDrawSelectionArea = () => {
})
// 筛选路线
- if (toolbarSwitchType.value === 'batchCopying') {
+ if (toolbarSwitchType.value === 'batchCopying' || toolbarSwitchType.value === 'bulkEditing') {
state.mapRouteList.forEach((route) => {
const startPointInBox =
route.startPointX >= box.x &&
@@ -3032,6 +3059,57 @@ const clickDrawSelectionArea = () => {
message.warning('至少选择一个点')
}
}
+
+ //批量编辑
+ if (toolbarSwitchType.value === 'bulkEditing') {
+ removeEventListener() //移除监听
+ EditNodesAndAlignmentsRef.value.open()
+ }
+}
+
+//批量编辑成功
+const editNodesAndAlignmentsSucceeded = (data) => {
+ let newRoutes = JSON.parse(JSON.stringify(state.drawSelectionRouteList))
+ const routeIdSet = new Set(newRoutes.map((route) => route.id))
+ state.mapRouteList.forEach((route) => {
+ if (routeIdSet.has(route.id)) {
+ data.batchKeys.forEach((key) => {
+ if (data.formData.hasOwnProperty(key)) {
+ // 判断method是否变化
+ if (key === 'method' && route[key] !== data.formData[key]) {
+ // 先赋新method
+ route[key] = data.formData[key]
+ // 控制点赋值逻辑
+ if (data.formData[key] === 0) {
+ // 变为直线,控制点归零
+ route.beginControlX = 0
+ route.beginControlY = 0
+ route.endControlX = 0
+ route.endControlY = 0
+ } else {
+ // 变为曲线,按比例设置控制点
+ route.beginControlX =
+ Number(route.startPointX) +
+ (Number(route.endPointX) - Number(route.startPointX)) * 0.3
+ route.beginControlY =
+ Number(route.startPointY) +
+ (Number(route.endPointY) - Number(route.startPointY)) * 0.3
+ route.endControlX =
+ Number(route.startPointX) +
+ (Number(route.endPointX) - Number(route.startPointX)) * 0.7
+ route.endControlY =
+ Number(route.startPointY) +
+ (Number(route.endPointY) - Number(route.startPointY)) * 0.7
+ }
+ } else if (key !== 'method') {
+ route[key] = data.formData[key]
+ }
+ }
+ })
+ }
+ })
+ message.success('修改成功')
+ addEditHistory()
}
//批量复制
@@ -4642,9 +4720,8 @@ function handleNodeClick(item) {
padding: 0 0 0 4px;
.top-tool-list {
- max-width: calc(100% - 200px);
- overflow-x: auto;
display: flex;
+ width: fit-content;
align-items: center;
text-align: center;
position: relative;
@@ -4694,8 +4771,6 @@ function handleNodeClick(item) {
z-index: 999;
text-align: center;
box-shadow: rgba(0, 0, 0, 0.05) 0rem 0rem 0rem 0.0625rem;
- max-height: calc(100vh - 200px);
- overflow-y: auto;
.tool-item {
cursor: pointer;
@@ -4798,7 +4873,7 @@ function handleNodeClick(item) {
}
.search-select {
- padding-right: 20px;
+ padding: 0 20px;
.search-icon {
widows: 20px;
height: 20px;