Merge branch 'dev' of github.com:dataease/dataease into dev

This commit is contained in:
taojinlong 2022-02-23 17:19:21 +08:00
commit b6d1516928
3401 changed files with 3733 additions and 375 deletions

View File

@ -42,6 +42,7 @@ public class ShiroServiceImpl implements ShiroService {
filterChainDefinitionMap.put("/link/**", ANON); filterChainDefinitionMap.put("/link/**", ANON);
filterChainDefinitionMap.put("/index.html", ANON); filterChainDefinitionMap.put("/index.html", ANON);
filterChainDefinitionMap.put("/link.html", ANON); filterChainDefinitionMap.put("/link.html", ANON);
filterChainDefinitionMap.put("/board/**", ANON);
// 获取主题信息 // 获取主题信息
filterChainDefinitionMap.put("/plugin/theme/themes", ANON); filterChainDefinitionMap.put("/plugin/theme/themes", ANON);

View File

@ -18,6 +18,7 @@ import io.dataease.controller.request.datasource.DatasourceRequest;
import io.dataease.controller.response.ChartDetail; import io.dataease.controller.response.ChartDetail;
import io.dataease.controller.response.DataSetDetail; import io.dataease.controller.response.DataSetDetail;
import io.dataease.dto.chart.*; import io.dataease.dto.chart.*;
import io.dataease.dto.dataset.DataSetTableDTO;
import io.dataease.dto.dataset.DataSetTableUnionDTO; import io.dataease.dto.dataset.DataSetTableUnionDTO;
import io.dataease.dto.dataset.DataTableInfoDTO; import io.dataease.dto.dataset.DataTableInfoDTO;
import io.dataease.i18n.Translator; import io.dataease.i18n.Translator;
@ -43,8 +44,6 @@ import java.util.*;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static io.dataease.commons.constants.ColumnPermissionConstants.Desensitization_desc;
/** /**
* @Author gin * @Author gin
* @Date 2021/3/1 12:34 下午 * @Date 2021/3/1 12:34 下午
@ -243,11 +242,13 @@ public class ChartViewService {
DatasetTableField datasetTableFieldObj = DatasetTableField.builder().tableId(view.getTableId()).checked(Boolean.TRUE).build(); DatasetTableField datasetTableFieldObj = DatasetTableField.builder().tableId(view.getTableId()).checked(Boolean.TRUE).build();
List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableFieldObj); List<DatasetTableField> fields = dataSetTableFieldsService.list(datasetTableFieldObj);
DatasetTable datasetTable = dataSetTableService.get(view.getTableId()); // 获取数据集,需校验权限
DataSetTableDTO table = dataSetTableService.getWithPermission(view.getTableId());
checkPermission("use", table);
//列权限 //列权限
List<String> desensitizationList = new ArrayList<>(); List<String> desensitizationList = new ArrayList<>();
List<DatasetTableField> columnPermissionFields = permissionService.filterColumnPermissons(fields, desensitizationList, datasetTable.getId(), requestList.getUser()); List<DatasetTableField> columnPermissionFields = permissionService.filterColumnPermissons(fields, desensitizationList, table.getId(), requestList.getUser());
//将没有权限的列删掉 //将没有权限的列删掉
List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList()); List<String> dataeaseNames = columnPermissionFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList());
dataeaseNames.add("*"); dataeaseNames.add("*");
@ -258,7 +259,7 @@ public class ChartViewService {
//行权限 //行权限
List<ChartFieldCustomFilterDTO> rowPermissionFields = permissionService.getCustomFilters(columnPermissionFields, datasetTable, requestList.getUser()); List<ChartFieldCustomFilterDTO> rowPermissionFields = permissionService.getCustomFilters(columnPermissionFields, table, requestList.getUser());
fieldCustomFilter.addAll(rowPermissionFields); fieldCustomFilter.addAll(rowPermissionFields);
for (ChartFieldCustomFilterDTO ele : fieldCustomFilter) { for (ChartFieldCustomFilterDTO ele : fieldCustomFilter) {
@ -390,11 +391,6 @@ public class ChartViewService {
} }
} }
// 获取数据集,需校验权限
DatasetTable table = dataSetTableService.get(view.getTableId());
if (ObjectUtils.isEmpty(table)) {
throw new RuntimeException(Translator.get("i18n_dataset_delete_or_no_permission"));
}
// 判断连接方式直连或者定时抽取 table.mode // 判断连接方式直连或者定时抽取 table.mode
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
List<String[]> data = new ArrayList<>(); List<String[]> data = new ArrayList<>();
@ -1680,9 +1676,9 @@ public class ChartViewService {
return chartViewMapper.selectByPrimaryKey(id); return chartViewMapper.selectByPrimaryKey(id);
} }
public String chartCopy(String id,String panelId) { public String chartCopy(String id, String panelId) {
String newChartId = UUID.randomUUID().toString(); String newChartId = UUID.randomUUID().toString();
extChartViewMapper.chartCopy(newChartId, id,panelId); extChartViewMapper.chartCopy(newChartId, id, panelId);
return newChartId; return newChartId;
} }
@ -1697,4 +1693,16 @@ public class ChartViewService {
return "NO"; return "NO";
} }
} }
// check permission
private void checkPermission(String needPermission, DataSetTableDTO table) {
if (ObjectUtils.isEmpty(table)) {
throw new RuntimeException(Translator.get("i18n_dataset_delete"));
}
if (!AuthUtils.getUser().getIsAdmin()) {
if (ObjectUtils.isEmpty(table.getPrivileges()) || !table.getPrivileges().contains(needPermission)) {
throw new RuntimeException(Translator.get("i18n_dataset_no_permission"));
}
}
}
} }

View File

@ -1,6 +1,7 @@
package io.dataease.service.dataset; package io.dataease.service.dataset;
import com.google.gson.Gson; import com.google.gson.Gson;
import io.dataease.auth.annotation.DeCleaner;
import io.dataease.base.domain.*; import io.dataease.base.domain.*;
import io.dataease.base.mapper.*; import io.dataease.base.mapper.*;
import io.dataease.base.mapper.ext.ExtDataSetGroupMapper; import io.dataease.base.mapper.ext.ExtDataSetGroupMapper;
@ -103,6 +104,7 @@ public class DataSetTableService {
private static Logger logger = LoggerFactory.getLogger(ClassloaderResponsity.class); private static Logger logger = LoggerFactory.getLogger(ClassloaderResponsity.class);
@DeCleaner(value = DePermissionType.DATASET)
public void batchInsert(List<DataSetTableRequest> datasetTable) throws Exception { public void batchInsert(List<DataSetTableRequest> datasetTable) throws Exception {
for (DataSetTableRequest table : datasetTable) { for (DataSetTableRequest table : datasetTable) {
save(table); save(table);
@ -126,6 +128,7 @@ public class DataSetTableService {
} }
} }
@DeCleaner(value = DePermissionType.DATASET)
public void saveExcel(DataSetTableRequest datasetTable) throws Exception { public void saveExcel(DataSetTableRequest datasetTable) throws Exception {
List<String> datasetIdList = new ArrayList<>(); List<String> datasetIdList = new ArrayList<>();
@ -233,6 +236,7 @@ public class DataSetTableService {
} }
} }
@DeCleaner(value = DePermissionType.DATASET)
public DatasetTable save(DataSetTableRequest datasetTable) throws Exception { public DatasetTable save(DataSetTableRequest datasetTable) throws Exception {
checkName(datasetTable); checkName(datasetTable);
if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "sql")) { if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "sql")) {
@ -1795,6 +1799,7 @@ public class DataSetTableService {
return dataSetDetail; return dataSetDetail;
} }
@DeCleaner(value = DePermissionType.DATASET)
public ExcelFileData excelSaveAndParse(MultipartFile file, String tableId, Integer editType) throws Exception { public ExcelFileData excelSaveAndParse(MultipartFile file, String tableId, Integer editType) throws Exception {
String filename = file.getOriginalFilename(); String filename = file.getOriginalFilename();
// parse file // parse file

View File

@ -70,7 +70,8 @@ i18n_datasource_not_allow_delete_msg= datasets are using this data source and ca
i18n_task_name_repeat=Name is used in same data set i18n_task_name_repeat=Name is used in same data set
i18n_id_or_pwd_error=Invalid ID or password i18n_id_or_pwd_error=Invalid ID or password
i18n_datasource_delete=Data source is delete i18n_datasource_delete=Data source is delete
i18n_dataset_delete_or_no_permission=Data set is delete or no permission i18n_dataset_delete=Data set is deleted
i18n_dataset_no_permission=Data set no permission
i18n_chart_delete=Chart is delete i18n_chart_delete=Chart is delete
i18n_not_exec_add_sync=There is no completed synchronization task. Incremental synchronization cannot be performed i18n_not_exec_add_sync=There is no completed synchronization task. Incremental synchronization cannot be performed
i18n_excel_header_empty=Excel first row can not empty i18n_excel_header_empty=Excel first row can not empty

View File

@ -69,7 +69,8 @@ i18n_datasource_not_allow_delete_msg= 个数据集正在使用此数据源,无
i18n_task_name_repeat=同一数据集下任务名称已被使用 i18n_task_name_repeat=同一数据集下任务名称已被使用
i18n_id_or_pwd_error=无效的ID或密码 i18n_id_or_pwd_error=无效的ID或密码
i18n_datasource_delete=当前用到的数据源已被删除 i18n_datasource_delete=当前用到的数据源已被删除
i18n_dataset_delete_or_no_permission=当前用到的数据集没有权限或已被删除 i18n_dataset_delete=当前用到的数据集已被删除
i18n_dataset_no_permission=当前用到的数据集没有权限
i18n_chart_delete=当前用到的视图已被删除 i18n_chart_delete=当前用到的视图已被删除
i18n_not_exec_add_sync=没有已完成的同步任务,无法进行增量同步 i18n_not_exec_add_sync=没有已完成的同步任务,无法进行增量同步
i18n_excel_header_empty=Excel第一行为空 i18n_excel_header_empty=Excel第一行为空

View File

@ -70,7 +70,8 @@ i18n_datasource_not_allow_delete_msg= 個數據集正在使用此數據源,無
i18n_task_name_repeat=同一數據集下任務名稱已被使用 i18n_task_name_repeat=同一數據集下任務名稱已被使用
i18n_id_or_pwd_error=無效的ID或密碼 i18n_id_or_pwd_error=無效的ID或密碼
i18n_datasource_delete=當前用到的數據源已被刪除 i18n_datasource_delete=當前用到的數據源已被刪除
i18n_dataset_delete_or_no_permission=當前用到的數據集沒有權限或已被刪除 i18n_dataset_delete=當前用到的數據集已被刪除
i18n_dataset_no_permission=當前用到的數據集沒有權限
i18n_chart_delete=當前用到的視圖已被刪除 i18n_chart_delete=當前用到的視圖已被刪除
i18n_not_exec_add_sync=沒有已經完成的同步任務,無法進行增量同步 i18n_not_exec_add_sync=沒有已經完成的同步任務,無法進行增量同步
i18n_excel_header_empty=Excel第一行為空 i18n_excel_header_empty=Excel第一行為空

View File

@ -30,7 +30,7 @@
]" ]"
:style="mainSlotStyle" :style="mainSlotStyle"
> >
<edit-bar v-if="editBarShow" style="transform: translateZ(10px)" :active-model="'edit'" :element="element" @showViewDetails="showViewDetails" @amRemoveItem="amRemoveItem" @amAddItem="amAddItem" @resizeView="resizeView" @linkJumpSet="linkJumpSet" @boardSet="boardSet" /> <edit-bar v-if="editBarShow" style="transform: translateZ(10px)" :active-model="'edit'" :element="element" @showViewDetails="showViewDetails" @amRemoveItem="amRemoveItem" @amAddItem="amAddItem" @resizeView="resizeView" @linkJumpSet="linkJumpSet" @boardSet="boardSet" />
<mobile-check-bar v-if="mobileCheckBarShow" :element="element" @amRemoveItem="amRemoveItem" /> <mobile-check-bar v-if="mobileCheckBarShow" :element="element" @amRemoveItem="amRemoveItem" />
<div v-if="resizing" style="transform: translateZ(11px);position: absolute; z-index: 3" :style="resizeShadowStyle" /> <div v-if="resizing" style="transform: translateZ(11px);position: absolute; z-index: 3" :style="resizeShadowStyle" />
<div <div
@ -531,8 +531,12 @@ export default {
width: this.computedMainSlotWidth, width: this.computedMainSlotWidth,
height: this.computedMainSlotHeight height: this.computedMainSlotHeight
} }
if (this.element.commonBackground.enable) { if (this.element.commonBackground && this.element.commonBackground.enable) {
style['background'] = `url(${this.element.commonBackground.innerImage}) no-repeat` if (this.element.commonBackground.backgroundType === 'innerImage') {
style['background'] = `url(${this.element.commonBackground.innerImage}) no-repeat`
} else if (this.element.commonBackground.backgroundType === 'outerImage') {
style['background'] = `url(${this.element.commonBackground.outerImage}) no-repeat`
}
style['background-size'] = `100% 100%` style['background-size'] = `100% 100%`
} }
return style return style

View File

@ -95,7 +95,11 @@ export default {
height: '100%' height: '100%'
} }
if (this.config.commonBackground.enable) { if (this.config.commonBackground.enable) {
style['background'] = `url(${this.config.commonBackground.innerImage}) no-repeat` if (this.config.commonBackground.backgroundType === 'innerImage') {
style['background'] = `url(${this.config.commonBackground.innerImage}) no-repeat`
} else if (this.config.commonBackground.backgroundType === 'outerImage') {
style['background'] = `url(${this.config.commonBackground.outerImage}) no-repeat`
}
style['background-size'] = `100% 100%` style['background-size'] = `100% 100%`
} }
return style return style

View File

@ -13,8 +13,8 @@
<el-dropdown-item icon="el-icon-arrow-down" @click.native="downComponent">{{ $t('panel.downComponent') }}</el-dropdown-item> <el-dropdown-item icon="el-icon-arrow-down" @click.native="downComponent">{{ $t('panel.downComponent') }}</el-dropdown-item>
<el-dropdown-item v-if="'view'===curComponent.type" icon="el-icon-link" @click.native="linkageSetting">{{ $t('panel.linkage_setting') }}</el-dropdown-item> <el-dropdown-item v-if="'view'===curComponent.type" icon="el-icon-link" @click.native="linkageSetting">{{ $t('panel.linkage_setting') }}</el-dropdown-item>
<el-dropdown-item v-if="'de-tabs'===curComponent.type" icon="el-icon-link" @click.native="addTab">{{ $t('panel.add_tab') }}</el-dropdown-item> <el-dropdown-item v-if="'de-tabs'===curComponent.type" icon="el-icon-link" @click.native="addTab">{{ $t('panel.add_tab') }}</el-dropdown-item>
<el-dropdown-item v-if="'view'===curComponent.type" icon="el-icon-connection" @click.native="linkJumpSet">跳转设置</el-dropdown-item> <el-dropdown-item v-if="'view'===curComponent.type" icon="el-icon-connection" @click.native="linkJumpSet">{{ $t('panel.setting_jump') }}</el-dropdown-item>
<el-dropdown-item icon="el-icon-full-screen" @click.native="boardSet">设置边框</el-dropdown-item> <el-dropdown-item icon="el-icon-full-screen" @click.native="boardSet">{{ $t('panel.setting_background') }}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>

View File

@ -172,8 +172,8 @@
<el-dialog <el-dialog
:visible.sync="boardSetVisible" :visible.sync="boardSetVisible"
width="750px" width="750px"
:title="$t('panel.choose_border')"
class="dialog-css" class="dialog-css"
:close-on-click-modal="false"
:show-close="false" :show-close="false"
:destroy-on-close="true" :destroy-on-close="true"
:append-to-body="true" :append-to-body="true"

View File

@ -126,8 +126,7 @@ export default {
'targetLinkageInfo', 'targetLinkageInfo',
'mobileLayoutStatus', 'mobileLayoutStatus',
'mobileComponentData', 'mobileComponentData',
'componentDataCache', 'componentDataCache'
'styleChangeTimes'
]) ])
}, },
created() { created() {

View File

@ -8,65 +8,63 @@
'rect-shape' 'rect-shape'
]" ]"
> >
<div :style="componentBackGround"> <EditBarView v-if="editBarViewShowFlag" :is-edit="isEdit" :view-id="element.propValue.viewId" @showViewDetails="openChartDetailsDialog" />
<EditBarView v-if="editBarViewShowFlag" :is-edit="isEdit" :view-id="element.propValue.viewId" @showViewDetails="openChartDetailsDialog" /> <div v-if="requestStatus==='error'" class="chart-error-class">
<div v-if="requestStatus==='error'" class="chart-error-class"> <div class="chart-error-message-class">
<div class="chart-error-message-class"> {{ message }},{{ $t('chart.chart_show_error') }}
{{ message }},{{ $t('chart.chart_show_error') }} <br>
<br> {{ $t('chart.chart_error_tips') }}
{{ $t('chart.chart_error_tips') }}
</div>
</div>
<plugin-com
v-if="chart.isPlugin"
:ref="element.propValue.id"
:component-name="chart.type + '-view'"
:obj="{chart, trackMenu, searchCount, terminalType: scaleCoefficientType}"
class="chart-class"
/>
<chart-component
v-else-if="charViewShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
:terminal-type="scaleCoefficientType"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-g2
v-else-if="charViewG2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-s2
v-else-if="charViewS2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<table-normal
v-else-if="tableShowFlag"
:ref="element.propValue.id"
:show-summary="chart.type === 'table-normal'"
:chart="chart"
class="table-class"
/>
<label-normal v-else-if="labelShowFlag" :ref="element.propValue.id" :chart="chart" class="table-class" />
<div style="position: absolute;left: 8px;bottom:8px;">
<drill-path :drill-filters="drillFilters" @onDrillJump="drillJump" />
</div> </div>
</div> </div>
<plugin-com
v-if="chart.isPlugin"
:ref="element.propValue.id"
:component-name="chart.type + '-view'"
:obj="{chart, trackMenu, searchCount, terminalType: scaleCoefficientType}"
class="chart-class"
/>
<chart-component
v-else-if="charViewShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
:terminal-type="scaleCoefficientType"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-g2
v-else-if="charViewG2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-s2
v-else-if="charViewS2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<table-normal
v-else-if="tableShowFlag"
:ref="element.propValue.id"
:show-summary="chart.type === 'table-normal'"
:chart="chart"
class="table-class"
/>
<label-normal v-else-if="labelShowFlag" :ref="element.propValue.id" :chart="chart" class="table-class" />
<div style="position: absolute;left: 8px;bottom:8px;">
<drill-path :drill-filters="drillFilters" @onDrillJump="drillJump" />
</div>
</div> </div>
</template> </template>
@ -92,7 +90,6 @@ import EditBarView from '@/components/canvas/components/Editor/EditBarView'
import { customAttrTrans, customStyleTrans, recursionTransObj } from '@/components/canvas/utils/style' import { customAttrTrans, customStyleTrans, recursionTransObj } from '@/components/canvas/utils/style'
import ChartComponentS2 from '@/views/chart/components/ChartComponentS2' import ChartComponentS2 from '@/views/chart/components/ChartComponentS2'
import PluginCom from '@/views/system/plugin/PluginCom' import PluginCom from '@/views/system/plugin/PluginCom'
import { hexColorToRGBA } from '@/views/chart/chart/util'
export default { export default {
name: 'UserView', name: 'UserView',
components: { PluginCom, ChartComponentS2, EditBarView, ChartComponent, TableNormal, LabelNormal, DrillPath, ChartComponentG2 }, components: { PluginCom, ChartComponentS2, EditBarView, ChartComponent, TableNormal, LabelNormal, DrillPath, ChartComponentG2 },
@ -169,31 +166,6 @@ export default {
}, },
computed: { computed: {
//
componentBackGround() {
const customStyle = JSON.parse(this.chart.customStyle)
let style = {
height: '100%',
width: '100%',
backgroundSize: '100% 100% !important',
borderRadius: '0px'
}
if (customStyle && customStyle.background) {
style.borderRadius = customStyle.background.borderRadius + 'px!important'
if (customStyle.background.backgroundType === 'outImage' && typeof (customStyle.background.outImage) === 'string') {
style = {
background: `url(${customStyle.background.outImage}) no-repeat`,
...style
}
} else if (!customStyle.background.backgroundType || customStyle.background.backgroundType === 'color') {
style = {
background: hexColorToRGBA(customStyle.background.color, customStyle.background.alpha),
...style
}
}
}
return style
},
scaleCoefficient() { scaleCoefficient() {
if (this.terminal === 'pc' && !this.mobileLayoutStatus) { if (this.terminal === 'pc' && !this.mobileLayoutStatus) {
return 1.1 return 1.1

View File

@ -19,10 +19,12 @@ export const BASE_MOBILE_STYLE = {
// 公共背景 // 公共背景
export const COMMON_BACKGROUND = { export const COMMON_BACKGROUND = {
enable: false, enable: false,
backgroundType: 'color', backgroundType: 'innerImage',
color: '#FFFFFF', color: '#FFFFFF',
innerImage: null, innerImage: null,
outerImage: null outerImage: null,
alpha: 100,
borderRadius: 5
} }
// 公共样式 // 公共样式

View File

@ -1556,7 +1556,8 @@ export default {
input_title: 'Input Title', input_title: 'Input Title',
show_title: 'Show Title', show_title: 'Show Title',
default_settings: 'Default Settings', default_settings: 'Default Settings',
choose_border: 'Choose Border' choose_background: 'Choose Component Background',
choose_background_tips: 'The component`s own background settings will overwrite the current settings'
}, },
plugin: { plugin: {
local_install: 'Local installation', local_install: 'Local installation',
@ -1571,7 +1572,9 @@ export default {
release_time: 'Time', release_time: 'Time',
un_install: 'Uninstall', un_install: 'Uninstall',
uninstall_confirm: 'Comfirm to uninstall the plugin?', uninstall_confirm: 'Comfirm to uninstall the plugin?',
uninstall_cancel: 'Cancel uninstall plugin' uninstall_cancel: 'Cancel uninstall plugin',
setting_background: 'BackGround',
setting_jump: 'Jump Setting'
}, },
display: { display: {
logo: 'Head system logo', logo: 'Head system logo',

View File

@ -1557,7 +1557,10 @@ export default {
input_title: '請輸入標題', input_title: '請輸入標題',
show_title: '顯示標題', show_title: '顯示標題',
default_settings: '默認值設置', default_settings: '默認值設置',
choose_border: '选择边框' choose_background: '选择组件背景',
choose_background_tips: '组件自有的背景设置会覆盖当前设置',
setting_background: '设置背景',
setting_jump: '跳转设置'
}, },
plugin: { plugin: {
local_install: '本地安裝', local_install: '本地安裝',

View File

@ -1566,7 +1566,10 @@ export default {
input_title: '请输入标题', input_title: '请输入标题',
show_title: '显示标题', show_title: '显示标题',
default_settings: '默认值设置', default_settings: '默认值设置',
choose_border: '选择边框' choose_background: '选择组件背景',
choose_background_tips: '组件自有的背景设置会覆盖当前设置',
setting_background: '设置背景',
setting_jump: '跳转设置'
}, },
plugin: { plugin: {
local_install: '本地安装', local_install: '本地安装',

View File

@ -10,9 +10,7 @@
:style="classBackground" :style="classBackground"
@click.stop="setBoard" @click.stop="setBoard"
/> />
<el-tooltip class="item" effect="light" :content="template.name" placement="bottom">
<span class="demonstration">{{ template.name }}</span> <span class="demonstration">{{ template.name }}</span>
</el-tooltip>
</div> </div>
</template> </template>
@ -59,25 +57,25 @@ export default {
.testcase-template { .testcase-template {
display: inline-block; display: inline-block;
margin: 10px 30px; margin: 10px 0px;
width: 150px; width: 90px;
} }
.demonstration { .demonstration {
display: block; display: block;
font-size: 14px; font-size: 8px;
color: gray; color: gray;
text-align: center; text-align: center;
margin: 10px auto; margin: 10px auto;
width: 150px; width: 130px;
white-space:nowrap; white-space:nowrap;
overflow:hidden; overflow:hidden;
text-overflow:ellipsis; text-overflow:ellipsis;
} }
.template-img { .template-img {
height: 112px; height: 80px;
width: 200px; width: 130px;
margin: 0 auto; margin: 0 auto;
box-shadow: 0 0 2px 0 rgba(31,31,31,0.15), 0 1px 2px 0 rgba(31,31,31,0.15); box-shadow: 0 0 2px 0 rgba(31,31,31,0.15), 0 1px 2px 0 rgba(31,31,31,0.15);
border: solid 2px #fff; border: solid 2px #fff;

View File

@ -1,24 +1,75 @@
<template> <template>
<el-row> <el-row>
<el-row class="main-row"> <el-row>
<el-row v-for="(value, key) in BackgroundShowMap" :key="key"> <el-col :span="24">
<el-col :span="24"><span>{{ key }}</span> </el-col> <span style="font-weight:600;margin-right: 20px;font-size: 14px">{{ $t('panel.choose_background') }}</span>
<el-col <el-checkbox v-model="curComponent.commonBackground.enable">{{ $t('commons.enable') }}</el-checkbox>
v-for="item in value" <span style="color: #909399; font-size: 8px;margin-left: 3px">
:key="item.id" Tips:{{ $t('panel.choose_background_tips') }}
:span="8" </span>
> </el-col>
<background-item </el-row>
:template="item" <el-row class="main-content" disabled="!curComponent.commonBackground.enable">
/> <!-- <el-row style="height: 80px;margin-top:10px;margin-bottom:20px;overflow: hidden">-->
<!-- <el-col :span="3" style="padding-left: 10px">-->
<!-- <el-radio v-model="curComponent.commonBackground.backgroundType" label="color" @change="onChangeType">颜色</el-radio>-->
<!-- </el-col>-->
<!-- <el-col :span="3">-->
<!-- <el-color-picker v-model="curComponent.commonBackground.color" class="color-picker-style" :predefine="predefineColors" />-->
<!-- </el-col>-->
<!-- <el-col :span="3" style="text-align: right;margin-top: 8px">-->
<!-- <span>不透明度</span>-->
<!-- </el-col>-->
<!-- <el-col :span="9">-->
<!-- <el-slider v-model="curComponent.commonBackground.alpha" show-input :show-input-controls="false" input-size="mini" />-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style="height: 80px;margin-top:10px;margin-bottom:20px;overflow: hidden">
<el-col :span="3" style="padding-left: 10px">
<el-radio v-model="curComponent.commonBackground.backgroundType" label="outerImage" @change="onChangeType">{{ $t('panel.photo') }}</el-radio>
</el-col>
<el-col style="width: 130px!important;">
<el-upload
action=""
accept=".jpeg,.jpg,.png,.gif,.svg"
class="avatar-uploader"
list-type="picture-card"
:class="{disabled:uploadDisabled}"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:http-request="upload"
:file-list="fileList"
:on-change="onChange"
>
<i class="el-icon-plus" />
</el-upload>
<el-dialog top="25vh" width="600px" :modal-append-to-body="false" :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
</el-row>
<el-row>
<el-col :span="3" style="padding-left: 10px">
<el-radio v-model="curComponent.commonBackground.backgroundType" label="innerImage" @change="onChangeType">边框</el-radio>
</el-col>
<el-col :span="21" class="main-row">
<el-row v-for="(value, key) in BackgroundShowMap" :key="key">
<el-col :span="24"><span>{{ key }}</span> </el-col>
<el-col
v-for="item in value"
:key="item.id"
:span="6"
>
<background-item
:template="item"
/>
</el-col>
</el-row>
</el-col> </el-col>
</el-row> </el-row>
</el-row> </el-row>
<el-row class="root-class"> <el-row class="root-class">
<el-col :span="9" style="text-align: right;vertical-align: middle"> <el-col :span="24">
<el-checkbox v-model="curComponent.commonBackground.enable">{{ $t('commons.enable') }}</el-checkbox>
</el-col>
<el-col :span="6">
<el-button size="mini" @click="cancel()">{{ $t('commons.cancel') }}</el-button> <el-button size="mini" @click="cancel()">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" size="mini" @click="save()">{{ $t('commons.confirm') }}</el-button> <el-button type="primary" size="mini" @click="save()">{{ $t('commons.confirm') }}</el-button>
</el-col> </el-col>
@ -32,6 +83,7 @@ import BackgroundItem from '@/views/background/BackgroundItem'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import eventBus from '@/components/canvas/utils/eventBus' import eventBus from '@/components/canvas/utils/eventBus'
import { deepCopy } from '@/components/canvas/utils/utils' import { deepCopy } from '@/components/canvas/utils/utils'
import { COLOR_PANEL } from '@/views/chart/chart/chart'
export default { export default {
name: 'Background', name: 'Background',
@ -40,11 +92,19 @@ export default {
return { return {
BackgroundShowMap: {}, BackgroundShowMap: {},
checked: false, checked: false,
backgroundOrigin: {} backgroundOrigin: {},
fileList: [],
dialogImageUrl: '',
dialogVisible: false,
uploadDisabled: false,
panel: null,
predefineColors: COLOR_PANEL
} }
}, },
mounted() { mounted() {
if (this.curComponent.commonBackground.outerImage && typeof (this.curComponent.commonBackground.outerImage) === 'string') {
this.fileList.push({ url: this.curComponent.commonBackground.outerImage })
}
this.backgroundOrigin = deepCopy(this.curComponent.commonBackground) this.backgroundOrigin = deepCopy(this.curComponent.commonBackground)
this.queryBackground() this.queryBackground()
}, },
@ -65,11 +125,44 @@ export default {
this.curComponent.commonBackground.color = this.backgroundOrigin.color this.curComponent.commonBackground.color = this.backgroundOrigin.color
this.curComponent.commonBackground.innerImage = this.backgroundOrigin.innerImage this.curComponent.commonBackground.innerImage = this.backgroundOrigin.innerImage
this.curComponent.commonBackground.outerImage = this.backgroundOrigin.outerImage this.curComponent.commonBackground.outerImage = this.backgroundOrigin.outerImage
this.curComponent.commonBackground.alpha = this.backgroundOrigin.alpha
this.curComponent.commonBackground.borderRadius = this.backgroundOrigin.borderRadius
eventBus.$emit('backgroundSetClose') eventBus.$emit('backgroundSetClose')
}, },
save() { save() {
this.$store.commit('recordSnapshot') this.$store.commit('recordSnapshot')
eventBus.$emit('backgroundSetClose') eventBus.$emit('backgroundSetClose')
},
commitStyle() {
const canvasStyleData = deepCopy(this.canvasStyleData)
canvasStyleData.panel = this.panel
this.$store.commit('setCanvasStyle', canvasStyleData)
this.$store.commit('recordSnapshot', 'commitStyle')
},
onChangeType() {
this.commitStyle()
},
handleRemove(file, fileList) {
this.uploadDisabled = false
this.panel.imageUrl = null
this.fileList = []
this.commitStyle()
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
onChange(file, fileList) {
var _this = this
_this.uploadDisabled = true
const reader = new FileReader()
reader.onload = function() {
_this.curComponent.commonBackground.outerImage = reader.result
}
reader.readAsDataURL(file.raw)
},
upload(file) {
// console.log('this is upload')
} }
} }
@ -85,7 +178,7 @@ export default {
} }
.main-row{ .main-row{
height: 60vh; height: 40vh;
overflow-y: auto; overflow-y: auto;
} }
@ -93,5 +186,44 @@ export default {
margin: 15px 0px 5px; margin: 15px 0px 5px;
text-align: center; text-align: center;
} }
.avatar-uploader>>>.el-upload {
width: 120px;
height: 80px;
line-height: 90px;
}
.avatar-uploader>>>.el-upload-list li{
width: 120px !important;
height: 80px !important;
}
.disabled>>>.el-upload--picture-card {
display: none;
}
.shape-item{
padding: 6px;
border: none;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.form-item-slider>>>.el-form-item__label{
font-size: 12px;
line-height: 38px;
}
.form-item>>>.el-form-item__label{
font-size: 12px;
}
.el-select-dropdown__item{
padding: 0 20px;
}
span{
font-size: 12px
}
.el-form-item{
margin-bottom: 6px;
}
.main-content{
border:1px solid #E6E6E6;
}
</style> </style>

View File

@ -1,8 +1,3 @@
import {ApplicationContext} from "@/utils/ApplicationContext";
import {BASE_MOBILE_STYLE, HYPERLINKS} from "@/components/canvas/custom-component/component-list";
import store from "@/store";
import {deepCopy, resetID} from "@/components/canvas/utils/utils";
export const DEFAULT_COLOR_CASE = { export const DEFAULT_COLOR_CASE = {
value: 'default', value: 'default',
colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'], colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],
@ -197,10 +192,7 @@ export const DEFAULT_YAXIS_EXT_STYLE = {
} }
} }
export const DEFAULT_BACKGROUND_COLOR = { export const DEFAULT_BACKGROUND_COLOR = {
backgroundType: 'color',
color: '#ffffff', color: '#ffffff',
outImage: null,
innerImage: null,
alpha: 100, alpha: 100,
borderRadius: 5 borderRadius: 5
} }

View File

@ -174,7 +174,7 @@ export function componentStyle(chart_option, chart) {
chart_option.radar.splitArea = customStyle.split.splitArea chart_option.radar.splitArea = customStyle.split.splitArea
} }
if (customStyle.background) { if (customStyle.background) {
// chart_option.backgroundColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha) chart_option.backgroundColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
} }
} }
} }

View File

@ -40,7 +40,7 @@ export function getTheme(chart) {
customStyle = JSON.parse(chart.customStyle) customStyle = JSON.parse(chart.customStyle)
// bg // bg
if (customStyle.background) { if (customStyle.background) {
// bgColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha) bgColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
} }
// legend // legend
if (customStyle.legend) { if (customStyle.legend) {

View File

@ -7,7 +7,7 @@
:style="trackBarStyleTime" :style="trackBarStyleTime"
@trackClick="trackClick" @trackClick="trackClick"
/> />
<div :id="chartId" style="width: 100%;height: 100%;overflow: hidden;" /> <div :id="chartId" style="width: 100%;height: 100%;overflow: hidden;" :style="{ borderRadius: borderRadius}" />
<div v-if="chart.type === 'map'" class="map-zoom-box"> <div v-if="chart.type === 'map'" class="map-zoom-box">
<div style="margin-bottom: 0.5em;"> <div style="margin-bottom: 0.5em;">
<el-button size="mini" icon="el-icon-plus" circle @click="roamMap(true)" /> <el-button size="mini" icon="el-icon-plus" circle @click="roamMap(true)" />

View File

@ -87,7 +87,7 @@ export default {
}, },
bg_class() { bg_class() {
return { return {
// borderRadius: this.borderRadius borderRadius: this.borderRadius
} }
} }
}, },

View File

@ -1,10 +1,10 @@
<template> <template>
<div ref="chartContainer" style="padding: 0;width: 100%;height: 100%;overflow: hidden;"> <div ref="chartContainer" style="padding: 0;width: 100%;height: 100%;overflow: hidden;" :style="bg_class">
<view-track-bar ref="viewTrack" :track-menu="trackMenu" class="track-bar" :style="trackBarStyleTime" @trackClick="trackClick" /> <view-track-bar ref="viewTrack" :track-menu="trackMenu" class="track-bar" :style="trackBarStyleTime" @trackClick="trackClick" />
<span v-if="chart.type" v-show="title_show" ref="title" :style="title_class" style="cursor: default;display: block;"> <span v-if="chart.type" v-show="title_show" ref="title" :style="title_class" style="cursor: default;display: block;">
<p style="padding:6px 10px 0 10px;margin: 0;overflow: hidden;white-space: pre;text-overflow: ellipsis;">{{ chart.title }}</p> <p style="padding:6px 10px 0 10px;margin: 0;overflow: hidden;white-space: pre;text-overflow: ellipsis;">{{ chart.title }}</p>
</span> </span>
<div ref="tableContainer" style="width: 100%;overflow: hidden;padding: 8px;"> <div ref="tableContainer" style="width: 100%;overflow: hidden;padding: 8px;" :style="{background:container_bg_class.background}">
<div v-if="chart.type === 'table-normal'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-normal-drill' : 'table-dom-normal'" /> <div v-if="chart.type === 'table-normal'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-normal-drill' : 'table-dom-normal'" />
<div v-if="chart.type === 'table-info'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-info-drill' : 'table-dom-info'" /> <div v-if="chart.type === 'table-info'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-info-drill' : 'table-dom-info'" />
<div v-if="chart.type === 'table-pivot'" :id="chartId" style="width: 100%;overflow: hidden;" class="table-dom-normal" /> <div v-if="chart.type === 'table-pivot'" :id="chartId" style="width: 100%;overflow: hidden;" class="table-dom-normal" />
@ -109,6 +109,7 @@ export default {
}, },
bg_class() { bg_class() {
return { return {
borderRadius: this.borderRadius
} }
} }
}, },
@ -258,7 +259,12 @@ export default {
} }
}, },
setBackGroundBorder() { setBackGroundBorder() {
if (this.chart.customStyle) {
const customStyle = JSON.parse(this.chart.customStyle)
if (customStyle.background) {
this.borderRadius = (customStyle.background.borderRadius || 0) + 'px'
}
}
}, },
chartResize() { chartResize() {
this.initData() this.initData()
@ -319,6 +325,12 @@ export default {
this.$refs.title.style.fontSize = customStyle.text.fontSize + 'px' this.$refs.title.style.fontSize = customStyle.text.fontSize + 'px'
} }
} }
if (customStyle.background) {
this.title_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
this.borderRadius = (customStyle.background.borderRadius || 0) + 'px'
this.container_bg_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
}
} }
}, },

View File

@ -1,82 +1,24 @@
<template> <template>
<div style="width: 100%"> <div style="width: 100%">
<el-col> <el-col>
<el-row> <el-form ref="colorForm" :model="colorForm" label-width="80px" size="mini">
<el-col :span="5" class="col-label-item"> <el-form-item :label="$t('chart.color')" class="form-item">
<el-radio v-model="colorForm.backgroundType" label="color" @change="changeBackgroundStyle"><span class="label-item">{{ $t('chart.color') }}</span></el-radio> <el-color-picker v-model="colorForm.color" class="color-picker-style" :predefine="predefineColors" @change="changeBackgroundStyle" />
</el-col> </el-form-item>
<el-col :span="19"> <el-form-item :label="$t('chart.not_alpha')" class="form-item form-item-slider">
<el-color-picker v-model="colorForm.color" :predefine="predefineColors" size="mini" style="cursor: pointer;z-index: 1004;" @change="changeBackgroundStyle" />
</el-col>
</el-row>
<!-- <el-row>-->
<!-- <el-col :span="5" class="col-label-item">-->
<!-- <el-radio v-model="colorForm.backgroundType" label="innerImage" @change="changeBackgroundStyle"><span class="label-item">边框</span></el-radio>-->
<!-- </el-col>-->
<!-- <el-col :span="19">-->
<!-- <el-button @click="openBoardDialog"> 选择边框</el-button>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style="height: 60px;margin-top:10px;overflow: hidden">
<el-col :span="5" class="col-label-item">
<el-radio v-model="colorForm.backgroundType" label="outImage" @change="changeBackgroundStyle"><span class="label-item">{{ $t('panel.photo') }}</span></el-radio>
</el-col>
<el-col :span="9">
<el-upload
action=""
accept=".jpeg,.jpg,.png,.gif,.svg"
class="avatar-uploader"
list-type="picture-card"
:class="{disabled:uploadDisabled}"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:file-list="fileList"
:on-change="onChange"
:http-request="upload"
>
<i class="el-icon-plus" />
</el-upload>
<el-dialog top="25vh" width="600px" :modal-append-to-body="false" :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
</el-row>
<el-row>
<el-col :span="5" class="col-label-item">
<span class="label-item">{{ $t('chart.border_radius') }}</span>
</el-col>
<el-col :span="19">
<el-slider v-model="colorForm.borderRadius" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />
</el-col>
</el-row>
<el-row v-if="colorForm.backgroundType==='color'">
<el-col :span="5" class="col-label-item">
<span class="label-item">{{ $t('chart.not_alpha') }}</span>
</el-col>
<el-col :span="19">
<el-slider v-model="colorForm.alpha" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" /> <el-slider v-model="colorForm.alpha" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />
</el-col> </el-form-item>
</el-row>
</el-col>
<!-- <el-form ref="colorForm" :model="colorForm" label-width="80px" size="mini" :disabled="param && !hasDataPermission('manage',param.privileges)">-->
<!-- &lt;!&ndash; <el-form-item :label="$t('chart.color')" class="form-item">&ndash;&gt;-->
<!-- &lt;!&ndash; <el-color-picker v-model="colorForm.color" class="color-picker-style" :predefine="predefineColors" @change="changeBackgroundStyle" />&ndash;&gt;-->
<!-- &lt;!&ndash; </el-form-item>&ndash;&gt;-->
<!-- <el-form-item :label="$t('chart.not_alpha')" class="form-item form-item-slider">-->
<!-- <el-slider v-model="colorForm.alpha" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="$t('chart.border_radius')" class="form-item form-item-slider">--> <el-form-item :label="$t('chart.border_radius')" class="form-item form-item-slider">
<!-- <el-slider v-model="colorForm.borderRadius" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />--> <el-slider v-model="colorForm.borderRadius" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />
<!-- </el-form-item>--> </el-form-item>
<!-- </el-form>--> </el-form>
<!-- </el-col>--> </el-col>
</div> </div>
</template> </template>
<script> <script>
import { COLOR_PANEL, DEFAULT_BACKGROUND_COLOR } from '../../chart/chart' import { COLOR_PANEL, DEFAULT_BACKGROUND_COLOR } from '../../chart/chart'
import { deepCopy } from '@/components/canvas/utils/utils'
export default { export default {
name: 'BackgroundColorSelector', name: 'BackgroundColorSelector',
@ -92,10 +34,6 @@ export default {
}, },
data() { data() {
return { return {
fileList: [],
dialogImageUrl: '',
dialogVisible: false,
uploadDisabled: false,
colorForm: JSON.parse(JSON.stringify(DEFAULT_BACKGROUND_COLOR)), colorForm: JSON.parse(JSON.stringify(DEFAULT_BACKGROUND_COLOR)),
predefineColors: COLOR_PANEL predefineColors: COLOR_PANEL
} }
@ -124,120 +62,41 @@ export default {
customStyle = JSON.parse(chart.customStyle) customStyle = JSON.parse(chart.customStyle)
} }
if (customStyle.background) { if (customStyle.background) {
debugger
this.colorForm = customStyle.background this.colorForm = customStyle.background
this.colorForm.backgroundType = this.colorForm.backgroundType || 'color'
if (this.colorForm.outImage && typeof (this.colorForm.outImage) === 'string') {
this.fileList.push({ url: this.colorForm.outImage })
}
} }
} }
},
onChangeType() {
this.changeBackgroundStyle()
},
handleRemove(file, fileList) {
this.uploadDisabled = false
this.colorForm.outImage = null
this.fileList = []
this.changeBackgroundStyle()
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
onChange(file, fileList) {
var _this = this
_this.uploadDisabled = true
const reader = new FileReader()
reader.onload = function() {
_this.colorForm.outImage = reader.result
_this.changeBackgroundStyle()
}
this.$store.state.styleChangeTimes++
reader.readAsDataURL(file.raw)
},
upload(file) {
// console.log('this is upload')
},
openBoardDialog() {
// console.log('this is upload')
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.shape-item{ .shape-item{
padding: 6px; padding: 6px;
border: none; border: none;
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.form-item-slider>>>.el-form-item__label{ .form-item-slider>>>.el-form-item__label{
font-size: 12px; font-size: 12px;
line-height: 38px; line-height: 38px;
} }
.form-item>>>.el-form-item__label{ .form-item>>>.el-form-item__label{
font-size: 12px; font-size: 12px;
} }
.el-select-dropdown__item{ .el-select-dropdown__item{
padding: 0 20px; padding: 0 20px;
} }
span{ span{
font-size: 12px font-size: 12px
} }
.el-form-item{ .el-form-item{
margin-bottom: 6px; margin-bottom: 6px;
} }
.color-picker-style{ .color-picker-style{
cursor: pointer; cursor: pointer;
z-index: 1003; z-index: 1003;
} }
.avatar-uploader>>>.el-upload {
width: 100px;
height: 60px;
line-height: 70px;
}
.avatar-uploader>>>.el-upload-list li{
width: 100px !important;
height: 60px !important;
}
.disabled>>>.el-upload--picture-card {
display: none;
}
.shape-item{
padding: 6px;
border: none;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.form-item-slider>>>.el-form-item__label{
font-size: 12px;
line-height: 38px;
}
.form-item>>>.el-form-item__label{
font-size: 12px;
}
.el-select-dropdown__item{
padding: 0 20px;
}
span{
font-size: 12px
}
.el-form-item{
margin-bottom: 6px;
}
.label-item{
font-size: 12px;
font-weight: bold;
}
.col-label-item{
text-align: right;
padding-right: 10px;
}
</style> </style>

View File

@ -161,7 +161,7 @@ export default {
this.title_class.fontWeight = customStyle.text.isBolder ? 'bold' : 'normal' this.title_class.fontWeight = customStyle.text.isBolder ? 'bold' : 'normal'
} }
if (customStyle.background) { if (customStyle.background) {
// this.bg_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha) this.bg_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
} }
} }
}, },

View File

@ -1,5 +1,5 @@
<template> <template>
<div ref="tableContainer" style="padding: 8px;width: 100%;height: 100%;overflow: hidden;"> <div ref="tableContainer" :style="bg_class" style="padding: 8px;width: 100%;height: 100%;overflow: hidden;">
<el-row style="height: 100%;"> <el-row style="height: 100%;">
<p v-show="title_show" ref="title" :style="title_class">{{ chart.title }}</p> <p v-show="title_show" ref="title" :style="title_class">{{ chart.title }}</p>
<ux-grid <ux-grid
@ -124,6 +124,8 @@ export default {
computed: { computed: {
bg_class() { bg_class() {
return { return {
background: hexColorToRGBA('#ffffff', 0),
borderRadius: this.borderRadius
} }
} }
}, },

View File

@ -56,6 +56,7 @@
<div class="padding-lr field-height"> <div class="padding-lr field-height">
<span>{{ $t('chart.dimension') }}</span> <span>{{ $t('chart.dimension') }}</span>
<draggable <draggable
v-if="table && hasDataPermission('use',table.privileges)"
v-model="dimensionData" v-model="dimensionData"
:options="{group:{name: 'drag',pull:'clone'},sort: true}" :options="{group:{name: 'drag',pull:'clone'},sort: true}"
animation="300" animation="300"
@ -81,6 +82,7 @@
<div class="padding-lr field-height"> <div class="padding-lr field-height">
<span>{{ $t('chart.quota') }}</span> <span>{{ $t('chart.quota') }}</span>
<draggable <draggable
v-if="table && hasDataPermission('use',table.privileges)"
v-model="quotaData" v-model="quotaData"
:options="{group:{name: 'drag',pull:'clone'},sort: true}" :options="{group:{name: 'drag',pull:'clone'},sort: true}"
animation="300" animation="300"
@ -808,8 +810,8 @@
</el-tabs> </el-tabs>
<el-col style="height: 100%;min-width: 500px;border-top: 1px solid #E6E6E6;"> <el-col style="height: 100%;min-width: 500px;border-top: 1px solid #E6E6E6;">
<el-row :style="componentBackGround" class="padding-lr"> <el-row style="width: 100%;height: 100%;" class="padding-lr">
<div ref="imageWrapper" style="height: 100%;"> <div ref="imageWrapper" style="height: 100%">
<plugin-com <plugin-com
v-if="httpRequest.status && chart.type && view.isPlugin" v-if="httpRequest.status && chart.type && view.isPlugin"
ref="dynamicChart" ref="dynamicChart"
@ -1047,7 +1049,6 @@ import { compareItem } from '@/views/chart/chart/compare'
import ChartComponentS2 from '@/views/chart/components/ChartComponentS2' import ChartComponentS2 from '@/views/chart/components/ChartComponentS2'
import DimensionExtItem from '@/views/chart/components/drag-item/DimensionExtItem' import DimensionExtItem from '@/views/chart/components/drag-item/DimensionExtItem'
import PluginCom from '@/views/system/plugin/PluginCom' import PluginCom from '@/views/system/plugin/PluginCom'
import { hexColorToRGBA } from '@/views/chart/chart/util'
export default { export default {
name: 'ChartEdit', name: 'ChartEdit',
components: { components: {
@ -1190,32 +1191,6 @@ export default {
computed: { computed: {
chartType() { chartType() {
return this.chart.type return this.chart.type
},
//
componentBackGround() {
const customStyle = JSON.parse(JSON.stringify(this.view.customStyle))
let style = {
height: '100%',
width: '100%',
backgroundSize: '100% 100% !important'
}
debugger
if (customStyle && customStyle.background) {
style['borderRadius'] = customStyle.background.borderRadius + 'px'
if (customStyle.background.backgroundType === 'outImage' && typeof (customStyle.background.outImage) === 'string') {
style = {
background: `url(${customStyle.background.outImage}) no-repeat`,
...style
}
} else if (!customStyle.background.backgroundType || customStyle.background.backgroundType === 'color') {
style = {
background: hexColorToRGBA(customStyle.background.color, customStyle.background.alpha),
...style
}
}
}
return style
} }
}, },
watch: { watch: {
@ -1243,7 +1218,6 @@ export default {
// this.initAreas() // this.initAreas()
}, },
mounted() { mounted() {
debugger
this.bindPluginEvent() this.bindPluginEvent()
// this.get(this.$store.state.chart.viewId); // this.get(this.$store.state.chart.viewId);
this.getData(this.param.id) this.getData(this.param.id)
@ -1542,7 +1516,6 @@ export default {
this.closeChangeChart() this.closeChangeChart()
// //
if (this.$route.path.indexOf('panel') > -1) { if (this.$route.path.indexOf('panel') > -1) {
this.$store.commit('recordSnapshot')
bus.$emit('PanelSwitchComponent', { name: 'PanelEdit' }) bus.$emit('PanelSwitchComponent', { name: 'PanelEdit' })
} }
this.$success(this.$t('commons.save_success')) this.$success(this.$t('commons.save_success'))
@ -1611,6 +1584,10 @@ export default {
this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {} this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {}
this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {} this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {}
this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {} this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {}
// echart
this.chart = response.data
this.data = response.data.data
}).catch(err => { }).catch(err => {
this.httpRequest.status = err.response.data.success this.httpRequest.status = err.response.data.success
this.httpRequest.msg = err.response.data.message this.httpRequest.msg = err.response.data.message

View File

@ -232,7 +232,11 @@ import SubjectSetting from '../SubjectSetting'
import bus from '@/utils/bus' import bus from '@/utils/bus'
import Editor from '@/components/canvas/components/Editor/index' import Editor from '@/components/canvas/components/Editor/index'
import { deepCopy, panelInit } from '@/components/canvas/utils/utils' import { deepCopy, panelInit } from '@/components/canvas/utils/utils'
import componentList, { BASE_MOBILE_STYLE, HYPERLINKS } from '@/components/canvas/custom-component/component-list' // import componentList, {
BASE_MOBILE_STYLE,
COMMON_BACKGROUND,
HYPERLINKS
} from '@/components/canvas/custom-component/component-list' //
import { mapState } from 'vuex' import { mapState } from 'vuex'
import { uuid } from 'vue-uuid' import { uuid } from 'vue-uuid'
import Toolbar from '@/components/canvas/components/Toolbar' import Toolbar from '@/components/canvas/components/Toolbar'
@ -615,6 +619,8 @@ export default {
this.currentFilterCom.id = newComponentId this.currentFilterCom.id = newComponentId
this.currentFilterCom.auxiliaryMatrix = this.canvasStyleData.auxiliaryMatrix this.currentFilterCom.auxiliaryMatrix = this.canvasStyleData.auxiliaryMatrix
this.currentFilterCom.mobileStyle = BASE_MOBILE_STYLE this.currentFilterCom.mobileStyle = BASE_MOBILE_STYLE
this.currentFilterCom.commonBackground || deepCopy(COMMON_BACKGROUND)
if (this.currentWidget.filterDialog) { if (this.currentWidget.filterDialog) {
this.show = false this.show = false
@ -643,6 +649,8 @@ export default {
component.id = newComponentId component.id = newComponentId
// //
component.auxiliaryMatrix = this.canvasStyleData.auxiliaryMatrix component.auxiliaryMatrix = this.canvasStyleData.auxiliaryMatrix
//
component.commonBackground || deepCopy(COMMON_BACKGROUND)
// //
if (componentInfo.type === 'view') { if (componentInfo.type === 'view') {

View File

@ -1,18 +1,18 @@
<template> <template>
<div>
<async-component <async-component
v-if="showAsync" v-if="showAsync"
:ref="refId" :ref="refId"
:url="url" :url="url"
:obj="obj" :obj="obj"
@execute-axios="executeAxios" @execute-axios="executeAxios"
@on-add-languanges="addLanguages" @on-add-languanges="addLanguages"
@plugin-call-back="pluginCallBack" @plugin-call-back="pluginCallBack"
/> />
<div v-else> <div v-else>
<h1>未知组件无法展示</h1> <h1>未知组件无法展示</h1>
</div>
</div> </div>
</template> </template>
<script> <script>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120101,"name":"和平区","center":[117.195907,39.118327],"centroid":[117.196207,39.118993],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.222506,39.117484],[117.222299,39.117706],[117.219749,39.11979],[117.217625,39.121933],[117.215465,39.124525],[117.21414,39.126429],[117.21362,39.128244],[117.213457,39.130464],[117.213257,39.132029],[117.212797,39.132888],[117.211853,39.13348],[117.211038,39.133673],[117.208454,39.133394],[117.206452,39.132798],[117.202482,39.130902],[117.200039,39.130451],[117.198956,39.1305],[117.198194,39.13081],[117.196989,39.131463],[117.196034,39.132246],[117.194762,39.133612],[117.194206,39.134669],[117.193748,39.13457],[117.193202,39.134467],[117.192316,39.134329],[117.19224,39.134377],[117.19205,39.135337],[117.191868,39.135871],[117.191634,39.136081],[117.191442,39.13615],[117.190395,39.136283],[117.190395,39.136737],[117.190355,39.136844],[117.184923,39.136998],[117.181168,39.13709],[117.181003,39.133829],[117.180872,39.132361],[117.180681,39.130134],[117.180491,39.127971],[117.180301,39.126091],[117.180222,39.125279],[117.180014,39.123282],[117.179953,39.122756],[117.179901,39.122444],[117.179806,39.121257],[117.179744,39.119716],[117.179676,39.117129],[117.179659,39.114404],[117.179546,39.110206],[117.179535,39.109498],[117.179422,39.104469],[117.179292,39.10199],[117.179846,39.101975],[117.180722,39.101857],[117.181527,39.101777],[117.182402,39.101671],[117.184603,39.101654],[117.185314,39.101527],[117.186535,39.101294],[117.187956,39.101044],[117.188804,39.100943],[117.190052,39.100954],[117.190842,39.101021],[117.191568,39.101099],[117.194109,39.101441],[117.194645,39.101488],[117.195295,39.10153],[117.196291,39.101576],[117.196595,39.101624],[117.196508,39.101832],[117.19637,39.102053],[117.196187,39.102198],[117.196319,39.102307],[117.197413,39.102917],[117.197651,39.103116],[117.198189,39.103349],[117.198756,39.103794],[117.198784,39.103791],[117.199144,39.104065],[117.199147,39.104101],[117.200182,39.104914],[117.201491,39.105502],[117.202341,39.106439],[117.202991,39.107033],[117.204364,39.107998],[117.205739,39.108917],[117.207065,39.10918],[117.207619,39.109258],[117.208114,39.109374],[117.209631,39.110284],[117.210588,39.110914],[117.210756,39.110994],[117.211382,39.111424],[117.212423,39.111813],[117.213072,39.11199],[117.213118,39.11204],[117.213185,39.112207],[117.213264,39.112711],[117.213255,39.1131],[117.213273,39.113643],[117.213297,39.113694],[117.213568,39.113866],[117.215014,39.114402],[117.215803,39.114652],[117.216688,39.114779],[117.218171,39.115479],[117.219024,39.115862],[117.219893,39.116287],[117.22111,39.116822],[117.221674,39.117116],[117.222506,39.117484]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120102,"name":"河东区","center":[117.226568,39.122125],"centroid":[117.256682,39.122406],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.260629,39.159009],[117.259942,39.158922],[117.259005,39.158866],[117.258248,39.158782],[117.256095,39.15867],[117.254071,39.158491],[117.253333,39.158409],[117.252543,39.158409],[117.251449,39.158309],[117.250668,39.158254],[117.249209,39.158229],[117.248723,39.158397],[117.248793,39.157894],[117.248784,39.15771],[117.248982,39.155509],[117.249286,39.154272],[117.249572,39.152134],[117.249928,39.149546],[117.249195,39.149575],[117.248607,39.149578],[117.243521,39.1497],[117.240797,39.149979],[117.234888,39.149905],[117.229545,39.149832],[117.229145,39.149784],[117.228772,39.14968],[117.228365,39.149519],[117.220923,39.144813],[117.21631,39.149808],[117.215218,39.151407],[117.215339,39.150508],[117.215312,39.14997],[117.21521,39.14951],[117.215072,39.149262],[117.214741,39.148786],[117.214221,39.148318],[117.213648,39.14797],[117.211759,39.147275],[117.207832,39.145906],[117.206402,39.145349],[117.205743,39.144917],[117.204989,39.144225],[117.204625,39.143648],[117.203845,39.142126],[117.20355,39.141284],[117.203515,39.140685],[117.20362,39.140155],[117.203896,39.139522],[117.204208,39.139229],[117.206227,39.137593],[117.207709,39.136895],[117.211107,39.135673],[117.210275,39.134233],[117.209998,39.133913],[117.209773,39.133536],[117.211038,39.133673],[117.211852,39.13348],[117.212797,39.132887],[117.213257,39.132028],[117.213456,39.130464],[117.213621,39.128244],[117.214141,39.126429],[117.215465,39.124525],[117.217625,39.121933],[117.219749,39.11979],[117.222299,39.117706],[117.22457,39.115306],[117.227606,39.111742],[117.230397,39.108344],[117.241347,39.09861],[117.242075,39.097478],[117.243454,39.093065],[117.245023,39.089246],[117.24604,39.087921],[117.246518,39.087499],[117.248558,39.086222],[117.252819,39.084064],[117.257067,39.082104],[117.260148,39.080914],[117.265491,39.079926],[117.266977,39.079796],[117.266865,39.080504],[117.266917,39.08103],[117.267108,39.082536],[117.267361,39.084209],[117.267873,39.08529],[117.269307,39.086807],[117.271176,39.088962],[117.272332,39.09053],[117.274235,39.088794],[117.275339,39.089929],[117.276339,39.090772],[117.27799,39.090707],[117.278843,39.090591],[117.278782,39.08938],[117.278843,39.088163],[117.279878,39.088542],[117.279945,39.086884],[117.285023,39.087132],[117.286093,39.087154],[117.286137,39.087525],[117.286268,39.089092],[117.28658,39.089072],[117.292922,39.087651],[117.298183,39.086475],[117.297183,39.083746],[117.298261,39.083438],[117.297991,39.082671],[117.298401,39.082548],[117.30011,39.082114],[117.301949,39.086269],[117.304819,39.085572],[117.306128,39.087938],[117.306911,39.089376],[117.307634,39.092087],[117.306907,39.092241],[117.306847,39.092418],[117.30808,39.096358],[117.306512,39.09666],[117.306459,39.097831],[117.309654,39.100946],[117.302911,39.102564],[117.294688,39.104116],[117.275914,39.108052],[117.27582,39.108069],[117.27523,39.108951],[117.274403,39.111291],[117.273953,39.112606],[117.272762,39.116906],[117.272336,39.117965],[117.271866,39.119498],[117.271276,39.121515],[117.269869,39.126367],[117.269939,39.127109],[117.270294,39.127857],[117.271103,39.128833],[117.271762,39.129324],[117.27624,39.12981],[117.281317,39.130449],[117.283326,39.130889],[117.286647,39.13174],[117.279937,39.147354],[117.284907,39.148224],[117.293404,39.15062],[117.290831,39.155546],[117.290315,39.157142],[117.287398,39.158474],[117.281389,39.160737],[117.27684,39.162999],[117.27242,39.161728],[117.271211,39.161345],[117.267301,39.160431],[117.264599,39.159687],[117.262382,39.159096],[117.261654,39.159018],[117.260629,39.159009]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120103,"name":"河西区","center":[117.217536,39.101897],"centroid":[117.232522,39.072613],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.26729,39.039449],[117.267069,39.03996],[117.266953,39.040048],[117.266505,39.041231],[117.269791,39.041989],[117.272479,39.042778],[117.272532,39.042953],[117.272261,39.043423],[117.270475,39.044921],[117.268985,39.047166],[117.267691,39.050364],[117.278046,39.05354],[117.279183,39.051464],[117.280462,39.048924],[117.286822,39.051028],[117.284402,39.055491],[117.283094,39.058995],[117.280571,39.058304],[117.280475,39.059302],[117.282943,39.059446],[117.285537,39.059778],[117.288004,39.060122],[117.288473,39.0602],[117.287952,39.062467],[117.287621,39.063826],[117.2871,39.066071],[117.286543,39.067156],[117.285891,39.06894],[117.285839,39.069735],[117.285995,39.070468],[117.286205,39.07076],[117.286674,39.071286],[117.288701,39.072478],[117.292076,39.075414],[117.292423,39.07587],[117.29245,39.077424],[117.284945,39.077747],[117.277807,39.078765],[117.274304,39.07935],[117.267986,39.079705],[117.265492,39.079926],[117.260149,39.080914],[117.257067,39.082104],[117.25282,39.084064],[117.248557,39.086223],[117.246518,39.0875],[117.24604,39.087921],[117.245023,39.089246],[117.243454,39.093064],[117.242074,39.097477],[117.241346,39.098611],[117.230398,39.108343],[117.227605,39.111742],[117.224571,39.115306],[117.222506,39.117484],[117.221674,39.117117],[117.22111,39.116822],[117.219892,39.116287],[117.219024,39.115861],[117.218171,39.115478],[117.216687,39.114778],[117.215804,39.114652],[117.215013,39.114402],[117.213568,39.113866],[117.213273,39.113643],[117.213264,39.112711],[117.213184,39.112207],[117.213072,39.11199],[117.212422,39.111813],[117.211382,39.111424],[117.210756,39.110994],[117.210588,39.110914],[117.209631,39.110284],[117.208114,39.109373],[117.207618,39.109258],[117.207065,39.10918],[117.205738,39.108917],[117.204364,39.107998],[117.202991,39.107033],[117.202341,39.106439],[117.201491,39.105502],[117.200182,39.104914],[117.199147,39.104101],[117.199145,39.104065],[117.198756,39.103794],[117.198189,39.103349],[117.19765,39.103116],[117.197413,39.102918],[117.196318,39.102307],[117.196188,39.102198],[117.196369,39.102054],[117.196595,39.101623],[117.196291,39.101576],[117.195295,39.10153],[117.194108,39.10144],[117.191568,39.101099],[117.190842,39.101021],[117.190051,39.100953],[117.188804,39.100943],[117.187956,39.101044],[117.186535,39.101293],[117.185314,39.101527],[117.184603,39.101654],[117.182402,39.101671],[117.181528,39.101777],[117.180722,39.101857],[117.179845,39.101975],[117.179292,39.10199],[117.179248,39.10103],[117.179232,39.09918],[117.17923,39.098012],[117.179213,39.097483],[117.179065,39.097291],[117.179082,39.09605],[117.17911,39.095324],[117.179239,39.094067],[117.179334,39.09326],[117.179394,39.092613],[117.179463,39.092096],[117.179688,39.089798],[117.179723,39.089329],[117.17993,39.088048],[117.18019,39.086771],[117.180658,39.084751],[117.181082,39.083112],[117.181541,39.081277],[117.18213,39.078706],[117.182452,39.077016],[117.182728,39.075623],[117.183066,39.074205],[117.183465,39.072876],[117.18382,39.072002],[117.184096,39.07148],[117.184451,39.070993],[117.185456,39.069719],[117.185863,39.069314],[117.187007,39.068465],[117.187491,39.067999],[117.187864,39.067682],[117.188532,39.066925],[117.189005,39.067091],[117.192075,39.068052],[117.196286,39.069329],[117.203879,39.071719],[117.204902,39.07057],[117.208524,39.066513],[117.212477,39.062056],[117.214145,39.060193],[117.213847,39.06007],[117.213334,39.059961],[117.212746,39.06002],[117.211884,39.060401],[117.21158,39.060472],[117.211352,39.060467],[117.211204,39.060356],[117.211172,39.060245],[117.211152,39.05842],[117.211184,39.058155],[117.211444,39.057766],[117.211747,39.057592],[117.212668,39.057234],[117.213089,39.057137],[117.215178,39.057181],[117.216943,39.057065],[117.217713,39.056218],[117.217784,39.053223],[117.217725,39.034319],[117.218849,39.034103],[117.221346,39.033657],[117.222965,39.033469],[117.229496,39.03307],[117.232907,39.033152],[117.233742,39.033259],[117.234043,39.033194],[117.234148,39.033362],[117.234228,39.033205],[117.23457,39.03337],[117.243159,39.034847],[117.250115,39.036267],[117.251907,39.036993],[117.253,39.037226],[117.2542,39.03716],[117.259906,39.038062],[117.26729,39.039449]]]]}}]}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120105,"name":"河北区","center":[117.201569,39.156632],"centroid":[117.213791,39.167182],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.233479,39.193053],[117.23228,39.192072],[117.229662,39.18999],[117.224709,39.185531],[117.22398,39.184968],[117.223234,39.185771],[117.221941,39.184696],[117.219982,39.186448],[117.216116,39.191282],[117.213809,39.189857],[117.212702,39.190727],[117.211886,39.191553],[117.211827,39.191717],[117.211723,39.191754],[117.21077,39.192926],[117.210712,39.192959],[117.209953,39.192613],[117.206701,39.190881],[117.204246,39.189603],[117.203495,39.189196],[117.202718,39.188822],[117.199953,39.187383],[117.199165,39.18694],[117.197264,39.186103],[117.191919,39.191924],[117.18996,39.190838],[117.1886,39.190234],[117.183739,39.189147],[117.183512,39.189103],[117.182656,39.190352],[117.181772,39.190328],[117.180478,39.189418],[117.180482,39.189301],[117.1812,39.188383],[117.179528,39.187974],[117.17712,39.187427],[117.17368,39.186699],[117.171782,39.186309],[117.169789,39.185803],[117.169373,39.185665],[117.168905,39.185427],[117.168636,39.185172],[117.168056,39.184512],[117.167553,39.184001],[117.170248,39.182381],[117.171149,39.181823],[117.172093,39.181508],[117.173081,39.181423],[117.176009,39.181957],[117.176773,39.182074],[117.177223,39.182042],[117.177664,39.181954],[117.178063,39.181671],[117.17848,39.180948],[117.178738,39.179954],[117.178808,39.178512],[117.178677,39.176858],[117.178304,39.174236],[117.178408,39.173388],[117.178633,39.172575],[117.179785,39.170172],[117.179941,39.169707],[117.180028,39.169182],[117.180044,39.168413],[117.179603,39.167293],[117.178842,39.1666],[117.177168,39.165616],[117.176129,39.165024],[117.175825,39.164768],[117.175721,39.164374],[117.175903,39.163622],[117.176622,39.162574],[117.177176,39.162056],[117.178893,39.160924],[117.18195,39.15909],[117.18492,39.156656],[117.186481,39.155099],[117.189167,39.151941],[117.190466,39.150332],[117.193082,39.148381],[117.193836,39.147643],[117.194442,39.146993],[117.194737,39.146454],[117.194928,39.145199],[117.194356,39.140028],[117.194008,39.136441],[117.194008,39.135251],[117.194207,39.134669],[117.194761,39.133612],[117.196035,39.132246],[117.19699,39.131463],[117.198193,39.13081],[117.198956,39.1305],[117.200039,39.130451],[117.202482,39.130902],[117.206452,39.132798],[117.208455,39.133394],[117.209773,39.133536],[117.209998,39.133914],[117.210275,39.134234],[117.211107,39.135673],[117.207708,39.136896],[117.206226,39.137593],[117.204209,39.139229],[117.203896,39.139522],[117.203619,39.140155],[117.203515,39.140685],[117.20355,39.141284],[117.203845,39.142126],[117.204626,39.143648],[117.204989,39.144226],[117.205742,39.144916],[117.206402,39.145349],[117.207832,39.145907],[117.211759,39.147274],[117.213648,39.14797],[117.214221,39.148318],[117.214741,39.148785],[117.215072,39.149262],[117.215209,39.14951],[117.215313,39.14997],[117.21534,39.150508],[117.215218,39.151408],[117.21631,39.149808],[117.220922,39.144812],[117.221189,39.144979],[117.228365,39.14952],[117.228772,39.14968],[117.229145,39.149784],[117.229545,39.149832],[117.234887,39.149905],[117.240796,39.149979],[117.243521,39.149699],[117.248607,39.149578],[117.249194,39.149575],[117.249928,39.149546],[117.249572,39.152134],[117.249285,39.154271],[117.248983,39.155509],[117.248784,39.15771],[117.248793,39.157894],[117.248723,39.158397],[117.249209,39.158228],[117.250669,39.158253],[117.251449,39.15831],[117.252543,39.158409],[117.253333,39.158409],[117.25407,39.158492],[117.256094,39.15867],[117.258248,39.158783],[117.259004,39.158866],[117.259942,39.158922],[117.260629,39.159009],[117.260456,39.163268],[117.260534,39.167551],[117.260421,39.16809],[117.260266,39.168398],[117.260056,39.168711],[117.258658,39.169958],[117.256905,39.169032],[117.2564,39.168597],[117.25606,39.16825],[117.255439,39.168163],[117.255029,39.16814],[117.253907,39.168111],[117.251703,39.168094],[117.251059,39.169649],[117.250782,39.170908],[117.246736,39.170414],[117.246519,39.171378],[117.242111,39.170925],[117.240956,39.170751],[117.241841,39.17129],[117.242699,39.171914],[117.243691,39.172739],[117.245184,39.17418],[117.247553,39.176452],[117.249966,39.178452],[117.249616,39.178696],[117.249352,39.178819],[117.24829,39.179612],[117.247268,39.180572],[117.24586,39.181871],[117.244932,39.182763],[117.244621,39.183106],[117.244481,39.183196],[117.242927,39.184603],[117.241616,39.18577],[117.240353,39.186874],[117.239597,39.187429],[117.238136,39.188721],[117.237044,39.189841],[117.235075,39.191679],[117.233862,39.192696],[117.233479,39.193053]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120106,"name":"红桥区","center":[117.163301,39.175066],"centroid":[117.155648,39.164723],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.194442,39.146993],[117.193836,39.147643],[117.193082,39.148381],[117.190466,39.150332],[117.189166,39.151941],[117.186481,39.155099],[117.18492,39.156656],[117.18195,39.15909],[117.178893,39.160924],[117.177176,39.162056],[117.176622,39.162574],[117.175903,39.163622],[117.17572,39.164374],[117.175825,39.164768],[117.17613,39.165024],[117.177168,39.165616],[117.178842,39.1666],[117.179603,39.167293],[117.180044,39.168414],[117.180028,39.169182],[117.179941,39.169707],[117.179785,39.170172],[117.178634,39.172575],[117.178408,39.173389],[117.178303,39.174236],[117.178676,39.176858],[117.178808,39.178512],[117.178738,39.179954],[117.17848,39.180948],[117.178063,39.181671],[117.177664,39.181954],[117.177223,39.182042],[117.176772,39.182073],[117.176009,39.181957],[117.173082,39.181424],[117.172093,39.181508],[117.171149,39.181823],[117.170247,39.182381],[117.167553,39.184001],[117.167077,39.184249],[117.163931,39.185753],[117.162571,39.186694],[117.161948,39.187277],[117.161601,39.187773],[117.161106,39.189428],[117.160657,39.189989],[117.16004,39.190237],[117.159296,39.190348],[117.154963,39.189951],[117.148566,39.189097],[117.147743,39.189068],[117.146867,39.189156],[117.146051,39.189357],[117.145489,39.189623],[117.145124,39.189984],[117.144786,39.190401],[117.144024,39.191901],[117.143252,39.191676],[117.142316,39.19136],[117.141762,39.191126],[117.139247,39.18961],[117.138015,39.188573],[117.136775,39.187824],[117.136057,39.18718],[117.135815,39.187022],[117.135231,39.186462],[117.134311,39.185351],[117.133228,39.183216],[117.131135,39.178866],[117.130807,39.178016],[117.130633,39.177374],[117.130503,39.176692],[117.130451,39.175536],[117.130365,39.173951],[117.129895,39.171906],[117.129652,39.171038],[117.129392,39.170165],[117.129157,39.169435],[117.128905,39.168585],[117.128612,39.167398],[117.127892,39.164654],[117.127413,39.162962],[117.127213,39.162168],[117.12698,39.161325],[117.126667,39.160395],[117.126433,39.159458],[117.126318,39.158924],[117.126285,39.158273],[117.126433,39.157812],[117.126658,39.156891],[117.126865,39.156123],[117.127239,39.154889],[117.127594,39.154107],[117.127941,39.153169],[117.128279,39.152526],[117.128479,39.152243],[117.128965,39.152294],[117.129797,39.152086],[117.130673,39.151476],[117.131541,39.150494],[117.133648,39.147942],[117.134273,39.147338],[117.134984,39.146915],[117.135807,39.146642],[117.136761,39.146467],[117.140022,39.147105],[117.142909,39.148066],[117.14376,39.148316],[117.144321,39.148577],[117.145414,39.147697],[117.145537,39.147415],[117.145647,39.146333],[117.145527,39.146081],[117.144729,39.145453],[117.144018,39.144368],[117.144034,39.144173],[117.144122,39.144068],[117.145595,39.144053],[117.147919,39.143364],[117.150545,39.143073],[117.151915,39.142723],[117.152366,39.14257],[117.152626,39.142531],[117.154177,39.142385],[117.155251,39.142314],[117.15617,39.142212],[117.15721,39.142002],[117.15773,39.141554],[117.158023,39.14118],[117.159073,39.141496],[117.159567,39.141577],[117.160234,39.141589],[117.161665,39.141595],[117.165096,39.141663],[117.171836,39.141937],[117.171681,39.146467],[117.174047,39.146319],[117.180619,39.146148],[117.180991,39.146073],[117.181273,39.146132],[117.185538,39.145935],[117.189027,39.145866],[117.189946,39.14589],[117.190587,39.145967],[117.192684,39.146449],[117.193559,39.146661],[117.194442,39.146993]]],[[[117.13036,39.189872],[117.133173,39.191312],[117.133323,39.191036],[117.135416,39.192016],[117.136057,39.192307],[117.135855,39.192685],[117.136416,39.192848],[117.140771,39.193229],[117.1406,39.194444],[117.138788,39.196467],[117.140022,39.19715],[117.140366,39.197325],[117.140805,39.197511],[117.141212,39.197742],[117.139547,39.200147],[117.138644,39.199849],[117.138366,39.200356],[117.138192,39.20103],[117.135909,39.200032],[117.134964,39.201172],[117.133827,39.20266],[117.132851,39.202302],[117.132036,39.203466],[117.125617,39.200879],[117.126304,39.199891],[117.12566,39.1996],[117.128575,39.195657],[117.125945,39.194942],[117.127223,39.193163],[117.127702,39.192706],[117.128705,39.191432],[117.129263,39.190684],[117.130004,39.190102],[117.13036,39.189872]]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130102,"name":"长安区","center":[114.548151,38.047501],"centroid":[114.583482,38.080599],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.536771,38.127953],[114.533376,38.129304],[114.529779,38.130409],[114.526714,38.13107],[114.523427,38.131471],[114.522627,38.131659],[114.521273,38.132405],[114.520616,38.132386],[114.518814,38.131541],[114.517501,38.131379],[114.51566,38.131367],[114.512934,38.131608],[114.511321,38.131619],[114.509717,38.131817],[114.507313,38.131759],[114.504809,38.131352],[114.503623,38.130868],[114.48411,38.114064],[114.489056,38.113343],[114.487527,38.112643],[114.486186,38.111775],[114.48578,38.111707],[114.485312,38.106728],[114.485019,38.106623],[114.480867,38.10667],[114.480331,38.106472],[114.480168,38.106238],[114.480202,38.10597],[114.482208,38.102943],[114.489356,38.102366],[114.490826,38.102393],[114.492167,38.102724],[114.495132,38.104546],[114.494882,38.101639],[114.495116,38.101639],[114.494725,38.096923],[114.494932,38.091932],[114.493357,38.082764],[114.502141,38.081578],[114.498717,38.072558],[114.498215,38.07256],[114.494323,38.055938],[114.494521,38.05573],[114.493398,38.049757],[114.492583,38.043611],[114.492735,38.04339],[114.493798,38.043457],[114.498808,38.043314],[114.501255,38.04339],[114.502175,38.043042],[114.502846,38.042843],[114.503207,38.042636],[114.503886,38.042517],[114.503932,38.042437],[114.504847,38.04251],[114.505079,38.042399],[114.50524,38.042556],[114.505999,38.042577],[114.506199,38.042737],[114.506745,38.042758],[114.507301,38.042619],[114.507822,38.042758],[114.507753,38.043003],[114.508262,38.043016],[114.508392,38.042745],[114.509301,38.042652],[114.51031,38.042695],[114.510314,38.042353],[114.510689,38.04215],[114.511825,38.042119],[114.511868,38.035595],[114.517726,38.035701],[114.522865,38.035754],[114.524301,38.035781],[114.526235,38.035855],[114.531931,38.035958],[114.53277,38.035942],[114.535073,38.036017],[114.591154,38.0371],[114.591313,38.055922],[114.591174,38.058887],[114.609944,38.054698],[114.67704,38.041433],[114.676597,38.04236],[114.67622,38.042784],[114.676406,38.046182],[114.678313,38.045975],[114.678928,38.046291],[114.679019,38.051584],[114.679355,38.05158],[114.679274,38.053839],[114.681716,38.059273],[114.683645,38.058276],[114.684138,38.060488],[114.687574,38.060046],[114.687724,38.061481],[114.687683,38.06239],[114.689744,38.064666],[114.691191,38.065332],[114.693047,38.065169],[114.694547,38.063536],[114.695378,38.063386],[114.699366,38.070146],[114.705096,38.078554],[114.707378,38.091356],[114.707253,38.091554],[114.705417,38.091739],[114.705462,38.0939],[114.705117,38.094168],[114.703794,38.094157],[114.703781,38.097203],[114.693852,38.097153],[114.69342,38.102353],[114.680921,38.101245],[114.673173,38.099604],[114.663798,38.10284],[114.656871,38.103098],[114.65334,38.104175],[114.647498,38.105929],[114.641297,38.10807],[114.633958,38.109545],[114.621039,38.110268],[114.611199,38.109227],[114.599986,38.111299],[114.596089,38.113045],[114.592133,38.115598],[114.589925,38.116472],[114.588441,38.116538],[114.582674,38.115735],[114.577319,38.115846],[114.571416,38.116388],[114.566331,38.117653],[114.561623,38.120305],[114.556227,38.121699],[114.550674,38.122497],[114.547463,38.123208],[114.544305,38.124575],[114.541729,38.126044],[114.539781,38.126687],[114.536771,38.127953]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130104,"name":"桥西区","center":[114.462931,38.028383],"centroid":[114.449351,38.025685],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.376652,38.073279],[114.377209,38.07012],[114.378591,38.067296],[114.380319,38.065448],[114.381247,38.063486],[114.382845,38.063403],[114.382894,38.062493],[114.385204,38.062215],[114.385347,38.056901],[114.385246,38.056528],[114.384592,38.056534],[114.388193,38.052608],[114.386613,38.052655],[114.386632,38.048601],[114.384258,38.048315],[114.384305,38.045992],[114.38433,38.045884],[114.38628,38.042742],[114.389019,38.041083],[114.392771,38.041056],[114.39332,38.039724],[114.393333,38.038643],[114.397208,38.038449],[114.397645,38.037592],[114.397725,38.036246],[114.398335,38.035864],[114.398421,38.034413],[114.395963,38.027892],[114.395845,38.024808],[114.398187,38.022852],[114.399195,38.02241],[114.402154,38.020863],[114.404275,38.02051],[114.405612,38.020787],[114.407693,38.02156],[114.408686,38.021627],[114.409142,38.021437],[114.409852,38.020665],[114.411035,38.016444],[114.41158,38.015359],[114.412473,38.014605],[114.414956,38.014434],[114.417384,38.014752],[114.419357,38.012109],[114.426236,38.012464],[114.428007,38.011203],[114.428194,38.010035],[114.427846,38.005767],[114.425836,38.00411],[114.425204,38.004074],[114.425981,38.003039],[114.42486,38.002975],[114.424742,38.002643],[114.424913,38.001776],[114.425821,38.00114],[114.425775,37.998899],[114.427485,37.996154],[114.427899,37.996265],[114.427692,37.997502],[114.4286,37.998018],[114.428827,37.995139],[114.431087,37.995117],[114.431559,37.994722],[114.431519,37.992657],[114.432534,37.992645],[114.432486,37.994286],[114.433338,37.994292],[114.434231,37.994515],[114.437906,37.994779],[114.438001,37.993959],[114.451331,37.994549],[114.451483,37.994046],[114.451482,37.992147],[114.459957,37.990827],[114.460498,37.990234],[114.461136,37.98421],[114.462785,37.98428],[114.463343,37.981185],[114.459754,37.979462],[114.455303,37.979447],[114.45549,37.97931],[114.458266,37.979232],[114.458131,37.976926],[114.461788,37.974222],[114.464227,37.974285],[114.468329,37.973975],[114.468668,37.972421],[114.470157,37.972268],[114.472917,37.97238],[114.472273,37.97343],[114.474582,37.973868],[114.474985,37.976623],[114.478645,37.976934],[114.481619,37.976486],[114.482098,37.977205],[114.484768,37.977365],[114.485772,37.975903],[114.490425,37.974015],[114.490082,37.975861],[114.496233,37.976757],[114.492508,37.998656],[114.493175,37.998787],[114.492372,38.001429],[114.492214,38.002106],[114.493825,38.002725],[114.494421,38.003085],[114.495331,38.003979],[114.49808,38.006755],[114.49913,38.007739],[114.500143,38.008779],[114.512256,38.020849],[114.51219,38.021645],[114.512217,38.022298],[114.51211,38.026404],[114.512058,38.027335],[114.512064,38.028252],[114.512119,38.028271],[114.512022,38.029784],[114.511868,38.035595],[114.511825,38.04212],[114.510689,38.04215],[114.510314,38.042353],[114.510309,38.042695],[114.509301,38.042652],[114.508391,38.042745],[114.508263,38.043017],[114.507753,38.043002],[114.507822,38.042757],[114.507303,38.042619],[114.506744,38.042757],[114.506199,38.042738],[114.505999,38.042577],[114.50524,38.042556],[114.505079,38.0424],[114.504643,38.042526],[114.50393,38.042438],[114.503887,38.042518],[114.503206,38.042636],[114.502845,38.042843],[114.502177,38.043043],[114.501255,38.04339],[114.498808,38.043314],[114.493798,38.043457],[114.492736,38.04339],[114.492584,38.043611],[114.490327,38.043459],[114.489045,38.043407],[114.484353,38.043448],[114.484467,38.045014],[114.481007,38.045069],[114.477263,38.044879],[114.477263,38.045663],[114.469547,38.045509],[114.469523,38.047826],[114.469364,38.047896],[114.462083,38.048234],[114.454392,38.048492],[114.454126,38.048537],[114.451399,38.048629],[114.451159,38.048597],[114.44968,38.048688],[114.44885,38.048673],[114.446036,38.048765],[114.439525,38.049077],[114.437997,38.049242],[114.436736,38.049211],[114.435851,38.049253],[114.434839,38.052581],[114.434751,38.053181],[114.434751,38.054266],[114.43489,38.055516],[114.436641,38.063706],[114.432907,38.064631],[114.426511,38.065826],[114.405197,38.069501],[114.397429,38.070835],[114.386512,38.072704],[114.376652,38.073279]]]]}}]}

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130105,"name":"新华区","center":[114.465974,38.067142],"centroid":[114.447636,38.099975],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.492584,38.043611],[114.493398,38.049756],[114.494521,38.05573],[114.494323,38.055938],[114.498215,38.07256],[114.498717,38.072558],[114.502141,38.081577],[114.493357,38.082763],[114.494932,38.091932],[114.494725,38.096923],[114.495115,38.101638],[114.494882,38.101638],[114.495132,38.104546],[114.492166,38.102723],[114.490826,38.102393],[114.489357,38.102367],[114.482207,38.102943],[114.480201,38.105969],[114.480167,38.106237],[114.480331,38.106472],[114.480867,38.10667],[114.485018,38.106623],[114.485311,38.106728],[114.485778,38.111707],[114.486186,38.111776],[114.487526,38.112644],[114.489057,38.113343],[114.48411,38.114064],[114.501874,38.129363],[114.501523,38.129686],[114.502489,38.130335],[114.502079,38.130803],[114.500526,38.131615],[114.500148,38.132459],[114.501236,38.138232],[114.498671,38.14157],[114.497644,38.142002],[114.496072,38.141965],[114.494288,38.141581],[114.494393,38.140739],[114.491167,38.140538],[114.481589,38.142197],[114.482211,38.145144],[114.476834,38.146114],[114.474497,38.145917],[114.463968,38.15264],[114.452959,38.160762],[114.450836,38.164218],[114.448647,38.16647],[114.445688,38.168145],[114.438662,38.162307],[114.433407,38.155783],[114.428076,38.148337],[114.426256,38.146279],[114.424454,38.14712],[114.423288,38.146901],[114.422547,38.141412],[114.418824,38.140981],[114.415276,38.137791],[114.414839,38.136347],[114.414335,38.136119],[114.413751,38.135404],[114.414036,38.131395],[114.412169,38.129511],[114.410157,38.129496],[114.408883,38.126623],[114.409603,38.11769],[114.410434,38.117333],[114.416655,38.117997],[114.417137,38.113599],[114.417608,38.111615],[114.416781,38.110921],[114.416581,38.110119],[114.416312,38.10958],[114.40363,38.108036],[114.40343,38.106527],[114.402622,38.106193],[114.400478,38.105519],[114.398056,38.105319],[114.396719,38.106255],[114.395035,38.106658],[114.387141,38.106548],[114.379167,38.105762],[114.378663,38.104456],[114.378392,38.104017],[114.377994,38.103614],[114.376777,38.103109],[114.375769,38.102808],[114.375333,38.102304],[114.3751,38.101866],[114.375065,38.101128],[114.375369,38.100056],[114.375768,38.099584],[114.376211,38.09942],[114.38192,38.09956],[114.382223,38.099192],[114.382423,38.098754],[114.382562,38.091773],[114.382493,38.090092],[114.382622,38.089711],[114.383197,38.089473],[114.383361,38.089104],[114.383395,38.088132],[114.383162,38.086557],[114.382402,38.085333],[114.382153,38.085076],[114.381753,38.085011],[114.37488,38.085328],[114.374271,38.084988],[114.376018,38.076703],[114.376652,38.073279],[114.386511,38.072704],[114.397429,38.070836],[114.405198,38.0695],[114.426512,38.065826],[114.432907,38.064632],[114.436641,38.063707],[114.434891,38.055516],[114.434751,38.054265],[114.434751,38.053182],[114.434838,38.052581],[114.435851,38.049253],[114.436736,38.049211],[114.437996,38.049242],[114.439526,38.049077],[114.446037,38.048765],[114.44885,38.048673],[114.449679,38.048688],[114.451159,38.048597],[114.4514,38.048629],[114.454126,38.048537],[114.454391,38.048492],[114.462083,38.048235],[114.469364,38.047895],[114.469524,38.047826],[114.469547,38.045509],[114.477263,38.045663],[114.477263,38.044878],[114.481007,38.045069],[114.484465,38.045014],[114.484354,38.043448],[114.489044,38.043407],[114.490327,38.043458],[114.492584,38.043611]]]]}}]}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130108,"name":"裕华区","center":[114.533257,38.027696],"centroid":[114.584117,38.009464],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.490425,37.974015],[114.498575,37.970461],[114.498292,37.971851],[114.505773,37.973048],[114.506112,37.970992],[114.507485,37.969415],[114.511847,37.969952],[114.511601,37.971798],[114.520877,37.972294],[114.52029,37.968858],[114.529028,37.969348],[114.529926,37.969314],[114.552554,37.970908],[114.552999,37.968227],[114.557419,37.968432],[114.557285,37.970129],[114.557793,37.970999],[114.558585,37.971596],[114.560203,37.971845],[114.561655,37.971772],[114.561401,37.974149],[114.565555,37.973645],[114.565979,37.973667],[114.566014,37.974581],[114.572726,37.973977],[114.574541,37.97456],[114.574793,37.979878],[114.579061,37.980204],[114.578986,37.978651],[114.583062,37.978686],[114.584109,37.976547],[114.584327,37.973453],[114.586937,37.972204],[114.591802,37.972095],[114.593201,37.967899],[114.593584,37.968418],[114.592136,37.972475],[114.592702,37.973558],[114.608504,37.973343],[114.608735,37.979582],[114.608752,37.982356],[114.610411,37.982481],[114.610384,37.98564],[114.609675,37.98566],[114.609486,37.986728],[114.609696,37.988929],[114.611807,37.990757],[114.61736,37.990947],[114.61714,37.992099],[114.618182,37.992665],[114.621848,37.992758],[114.621875,37.994895],[114.625089,37.994931],[114.625257,37.997773],[114.627722,37.997657],[114.627509,37.996232],[114.627932,37.995735],[114.632653,37.995574],[114.632759,37.992366],[114.637153,37.99209],[114.639678,37.988884],[114.646192,37.985417],[114.647055,37.984873],[114.647057,37.982538],[114.647798,37.981162],[114.650112,37.980392],[114.650121,37.977126],[114.65715,37.977083],[114.657284,37.974246],[114.657381,37.974207],[114.660243,37.973828],[114.660091,37.971133],[114.669506,37.971171],[114.670338,37.969271],[114.673811,37.968953],[114.673959,37.969682],[114.670914,37.978873],[114.669743,37.984588],[114.669708,37.986381],[114.668082,37.986342],[114.668107,37.988461],[114.665796,37.988563],[114.66553,37.991703],[114.662435,37.992034],[114.658874,37.994729],[114.657082,38.000712],[114.657007,38.002725],[114.655844,38.002574],[114.655724,38.008339],[114.654126,38.010027],[114.652546,38.010014],[114.65261,38.012273],[114.655414,38.01337],[114.656859,38.015315],[114.659619,38.015622],[114.66146,38.016805],[114.662473,38.018018],[114.662418,38.019856],[114.664723,38.019766],[114.664669,38.021801],[114.667152,38.021965],[114.667013,38.024891],[114.670307,38.025894],[114.674059,38.025686],[114.674036,38.029468],[114.674989,38.029519],[114.681188,38.030326],[114.682692,38.031391],[114.681877,38.034855],[114.680712,38.03663],[114.678558,38.038167],[114.677578,38.040142],[114.677041,38.041433],[114.609944,38.054698],[114.591174,38.058887],[114.591313,38.055922],[114.591153,38.037099],[114.535073,38.036017],[114.533146,38.035953],[114.532896,38.035977],[114.532769,38.035942],[114.531931,38.035958],[114.526236,38.035855],[114.524302,38.035781],[114.522865,38.035754],[114.517726,38.035701],[114.511869,38.035595],[114.512021,38.029785],[114.512119,38.028272],[114.512063,38.028253],[114.512057,38.027336],[114.512109,38.026404],[114.512217,38.022297],[114.512188,38.021645],[114.512242,38.021337],[114.512256,38.020849],[114.502352,38.010983],[114.501558,38.010173],[114.500143,38.00878],[114.499129,38.00774],[114.49808,38.006756],[114.495331,38.003979],[114.49442,38.003085],[114.493825,38.002726],[114.492213,38.002105],[114.492373,38.001429],[114.493176,37.998788],[114.492509,37.998656],[114.496232,37.976757],[114.490082,37.97586],[114.490425,37.974015]]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130127,"name":"高邑县","center":[114.610699,37.605714],"centroid":[114.598306,37.616239],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.725981,37.630678],[114.723282,37.634732],[114.708463,37.632776],[114.704559,37.63291],[114.70025,37.633861],[114.700114,37.637011],[114.697276,37.637424],[114.69639,37.639319],[114.696983,37.640035],[114.699284,37.638696],[114.7004,37.638926],[114.702785,37.638993],[114.705276,37.640652],[114.70551,37.643688],[114.707476,37.643575],[114.709067,37.644555],[114.709972,37.650351],[114.711648,37.650453],[114.712111,37.651374],[114.708985,37.652877],[114.708427,37.651774],[114.707504,37.65206],[114.706816,37.649208],[114.70261,37.649531],[114.699091,37.649696],[114.698929,37.644931],[114.692816,37.637654],[114.690979,37.636514],[114.691585,37.639051],[114.68995,37.640185],[114.687557,37.641107],[114.685015,37.641132],[114.685074,37.643017],[114.683984,37.642938],[114.682817,37.641991],[114.680565,37.642087],[114.677465,37.643122],[114.674224,37.644944],[114.671882,37.64946],[114.671761,37.654024],[114.669975,37.654215],[114.665466,37.655163],[114.66289,37.657632],[114.654865,37.654854],[114.652732,37.655089],[114.65277,37.655985],[114.652115,37.660775],[114.649683,37.661501],[114.648485,37.663139],[114.648465,37.664999],[114.649724,37.668501],[114.649678,37.670702],[114.64256,37.672493],[114.640188,37.672817],[114.640913,37.675588],[114.636144,37.676063],[114.637023,37.681953],[114.638342,37.681929],[114.64109,37.68775],[114.639175,37.690068],[114.637352,37.690575],[114.637843,37.693522],[114.639427,37.69426],[114.636591,37.694434],[114.635797,37.695047],[114.626559,37.695939],[114.620978,37.696749],[114.620107,37.693838],[114.615459,37.694177],[114.611688,37.692725],[114.610938,37.690507],[114.606771,37.690997],[114.606349,37.691738],[114.604876,37.691994],[114.598648,37.691195],[114.597214,37.688821],[114.591942,37.686864],[114.591248,37.685821],[114.591764,37.681049],[114.591769,37.679604],[114.590582,37.679569],[114.590484,37.677466],[114.587875,37.678222],[114.578367,37.68311],[114.57312,37.686325],[114.572681,37.686206],[114.572344,37.684912],[114.57092,37.681037],[114.570269,37.678149],[114.568167,37.679408],[114.567226,37.679117],[114.564684,37.677448],[114.56125,37.673816],[114.559478,37.673607],[114.553556,37.674108],[114.550189,37.672236],[114.548636,37.671143],[114.54833,37.667865],[114.541207,37.667629],[114.538544,37.667848],[114.538979,37.670122],[114.538449,37.670666],[114.530228,37.671318],[114.529018,37.671966],[114.525455,37.672686],[114.524823,37.672581],[114.52481,37.671663],[114.523273,37.671782],[114.523082,37.669774],[114.52336,37.666823],[114.523239,37.66087],[114.521682,37.654708],[114.519892,37.651188],[114.516564,37.646887],[114.512921,37.644306],[114.507587,37.636028],[114.50495,37.629482],[114.503158,37.622641],[114.501033,37.620439],[114.489326,37.612836],[114.478854,37.595012],[114.471312,37.590656],[114.468932,37.586569],[114.469598,37.580199],[114.473628,37.572977],[114.483478,37.576834],[114.495203,37.578539],[114.501148,37.578239],[114.519944,37.574631],[114.530622,37.570371],[114.539302,37.565867],[114.550266,37.562528],[114.565589,37.556942],[114.576259,37.554296],[114.585186,37.553011],[114.59497,37.553109],[114.603864,37.554579],[114.624279,37.556638],[114.632638,37.556733],[114.646773,37.556214],[114.660284,37.559353],[114.674926,37.564108],[114.68018,37.565269],[114.687038,37.565166],[114.687778,37.57274],[114.694868,37.581299],[114.698793,37.589365],[114.7057,37.61006],[114.707345,37.615803],[114.714848,37.617195],[114.717252,37.621409],[114.716005,37.625983],[114.71699,37.627133],[114.725981,37.630678]]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More