const options = {
  url: '/arcgisApi/4.7/init.js',
};

import * as esriLoader from 'esri-loader';
import { queryLayer } from '../config/lyrConfig.js';
export function xzqChange(_self, viewObject, mapObject, item, fullExtent) {
  esriLoader
    .loadModules(
      [
        'esri/layers/GraphicsLayer',
        'esri/Graphic',
        'esri/geometry/Polygon',
        'esri/tasks/support/Query',
        'esri/tasks/QueryTask',
        'dojo/domReady!',
      ],
      options,
    )
    .then(([GraphicsLayer, Graphic, Polygon, Query, QueryTask]) => {
      var url, where, outFields;
      if (_self.currentAdCode.substring(2, 12) == '0000000000') {
        //省级
        url = queryLayer.province;
        where = "prov_cd = '" + item.adCode + "'";
        outFields = ['prov_cd', 'prov_nm'];
        // var proBoundaryGraphicLayer = mapObject.findLayerById("proBoundaryGraphicLayer");
        // proBoundaryGraphicLayer.removeAll();
        // viewObject.extent = fullExtent;
        // return;
      } else if (_self.currentAdCode.substring(4, 12) == '00000000') {
        //市级
        url = queryLayer.city;
        where = "dist_cd = '" + item.adCode + "'";
        outFields = ['dist_cd', 'dist_nm'];
      } else if (_self.currentAdCode.substring(6, 12) == '000000') {
        //县级
        url = queryLayer.country;
        where = "cnty_cd = '" + item.adCode + "'";
        outFields = ['cnty_nm', 'cnty_cd'];
      }
      if (url) {
        var queryTask = new QueryTask({
          url: url,
        });
        var query = new Query();
        query.returnGeometry = true;
        query.outFields = outFields;
        query.where = where;
        queryTask.execute(query).then((results) => {
          var feature = results.features[0];
          var polygon = new Polygon({
            rings: feature.geometry.rings,
            spatialReference: { wkid: 4326 },
          });
          var symbol = {
            type: 'simple-line', // autocasts as new SimpleLineSymbol()
            color: '#f02ee7',
            width: '2px',
            style: 'short-dash-dot',
          };
          var gra = new Graphic({
            geometry: polygon,
            attributes: feature.attributes,
            symbol: symbol,
          });
          var proBoundaryGraphicLayer = mapObject.findLayerById(
            'proBoundaryGraphicLayer',
          );
          proBoundaryGraphicLayer.removeAll();
          proBoundaryGraphicLayer.add(gra);
          viewObject.goTo(gra);
        });
      }
    })
    .catch((err) => {
      console.error(err);
    });
}
