一、效果。

 

二、上代码

let illigalMessage = {
      title: "***",
      id: 'illigalMessage',
      image: './src/assets/img/edit.png'
    }
let illigalWordMessage = {
      title: "***",
      id: 'illigalWordMessage',
      image: './src/assets/img/illigalWordMessage.png'
    }
let historyMessage = {
      title: "***",
      id: 'history',
      image: './src/assets/img/history.png'
    }
// 以上为按钮编辑
let template = {
      title: '***',
      content: [{
          type: 'fields',
          fieldInfos: [
            {
              fieldName: 'ZJMC',
              label: '所属镇'
            },
            {
              fieldName: 'TBBM',
              label: '图斑编号'
            },
            {
              fieldName: 'QQZT',
              label: '建筑状态'
            },
            {
              fieldName: 'XZCMC',
              label: '所属村'
            },
            {
              fieldName: 'ZDMJ',
              label: '面积',
              format: {
                places: 2,
                digitSeparator: true
              }
            },
            {
              fieldName: 'expression/illigalExpression'
            }
          ]
      }],
      expressionInfos: [{
        name: "illigalExpression",
        title: "是否核查",
        expression: `
          return Decode($feature.STATE,1,"已核查",0,"未核查","更新状态请刷新")
        `
      }],
      actions: [illigalMessage, illigalWordMessage, historyMessage]
    }

先编辑完按钮,然后加入popuptemplate的action中就行。

使用:

mainMap.view.popup.on("trigger-action",async function (event) {
    if (event.action.id === "illigalMessage") {
        // 业务代码
    }

}

监听trigger-action变化就行。

三、如果想把原来的zoom to按钮给去除,只需要加上

featureLayer.popupTemplate.overwriteActions = true

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐