|
|
@@ -24,6 +24,9 @@ export default {
|
|
|
//修改数据
|
|
|
editUrl:null,
|
|
|
editObject:null,
|
|
|
+ // 临时记录编辑时的原始名称与确认状态
|
|
|
+ editOriginalNames: {},
|
|
|
+ editConfirmed: {},
|
|
|
|
|
|
//改颜色
|
|
|
changeColorShow:false,
|
|
|
@@ -163,6 +166,12 @@ export default {
|
|
|
this.undoAfterSelectLayers();
|
|
|
this.fcanvas.requestRenderAll();
|
|
|
},
|
|
|
+ // 点击图层项时:先提交正在编辑的重命名(如果有),再选中目标图层
|
|
|
+ onLayerClick(item){
|
|
|
+ // 只切换选中图层,**不**自动提交正在编辑的名称;
|
|
|
+ // 名称的提交仅由确认按钮或 Enter 键触发
|
|
|
+ this.select(item)
|
|
|
+ },
|
|
|
//指定置地图层
|
|
|
move(item,type){
|
|
|
let sort = 0
|
|
|
@@ -221,6 +230,53 @@ export default {
|
|
|
item.set({ name: name || '' })
|
|
|
this.getLayers(false)
|
|
|
},
|
|
|
+ // 确认重命名(由 UI 确认按钮触发)
|
|
|
+ confirmRename(item){
|
|
|
+ if(!item) return
|
|
|
+ try{
|
|
|
+ const refName = this.$refs && this.$refs['layerName-' + item.id]
|
|
|
+ let inputEl = refName
|
|
|
+ if(Array.isArray(refName)) inputEl = refName[0]
|
|
|
+ const val = inputEl ? (inputEl.value || '') : ''
|
|
|
+ this.renameLayer(item, val)
|
|
|
+ // 标记为已确认,避免 blur 恢复
|
|
|
+ this.editConfirmed[item.id] = true
|
|
|
+ if(inputEl && inputEl.blur) inputEl.blur()
|
|
|
+ }catch(e){
|
|
|
+ console.warn('[marketingEdit] confirmRename failed', e)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // focus 时保存原始名称
|
|
|
+ onLayerNameFocus(item, e){
|
|
|
+ if(!item) return
|
|
|
+ this.editOriginalNames[item.id] = this.layerDisplayName(item) || ''
|
|
|
+ this.editConfirmed[item.id] = false
|
|
|
+ },
|
|
|
+ // blur 时如果没有确认则恢复原始名称到输入框
|
|
|
+ onLayerNameBlur(item, e){
|
|
|
+ if(!item) return
|
|
|
+ const confirmed = this.editConfirmed[item.id]
|
|
|
+ if(!confirmed){
|
|
|
+ try{
|
|
|
+ const refName = this.$refs && this.$refs['layerName-' + item.id]
|
|
|
+ let inputEl = refName
|
|
|
+ if(Array.isArray(refName)) inputEl = refName[0]
|
|
|
+ if(inputEl){
|
|
|
+ inputEl.value = this.editOriginalNames[item.id] || ''
|
|
|
+ }
|
|
|
+ }catch(err){
|
|
|
+ console.warn('[marketingEdit] onLayerNameBlur revert failed', err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 清理临时状态
|
|
|
+ delete this.editOriginalNames[item.id]
|
|
|
+ delete this.editConfirmed[item.id]
|
|
|
+ },
|
|
|
+ // 在确认按钮按下(mousedown)时先标记为确认,防止 blur 先触发导致还原
|
|
|
+ markConfirm(item){
|
|
|
+ if(!item) return
|
|
|
+ this.editConfirmed[item.id] = true
|
|
|
+ },
|
|
|
// 图层显示名称
|
|
|
layerDisplayName(item){
|
|
|
if(!item) return ''
|