|
@@ -1,10 +1,14 @@
|
|
|
<template>
|
|
|
- <el-row>
|
|
|
+ <el-row v-loading="loading">
|
|
|
<el-col :span="9">
|
|
|
<div class="box">
|
|
|
<el-scrollbar>
|
|
|
<basic-container>
|
|
|
- <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick"/>
|
|
|
+ <avue-tree
|
|
|
+ :option="treeOption"
|
|
|
+ :data="treeData"
|
|
|
+ @node-click="nodeClick"
|
|
|
+ />
|
|
|
</basic-container>
|
|
|
</el-scrollbar>
|
|
|
</div>
|
|
@@ -12,27 +16,92 @@
|
|
|
<el-col :span="15">
|
|
|
<basic-container>
|
|
|
<el-button-group>
|
|
|
- <el-button v-if="permission.region_add" type="primary" size="small" icon="el-icon-circle-plus-outline" @click="addChildren">新增下级</el-button>
|
|
|
- <el-button v-if="permission.region_delete" type="primary" size="small" icon="el-icon-delete" @click="handleDelete">删除</el-button>
|
|
|
- <el-button v-if="permission.region_import" type="primary" size="small" icon="el-icon-upload2" @click="handleImport">导入</el-button>
|
|
|
- <el-button v-if="permission.region_export" type="primary" size="small" icon="el-icon-download" @click="handleExport">导出</el-button>
|
|
|
- <el-button v-if="permission.region_debug" type="primary" size="small" icon="el-icon-video-play" @click="handleDebug">调试</el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="permission.region_add"
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-circle-plus-outline"
|
|
|
+ @click="addChildren"
|
|
|
+ >新增下级</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="permission.region_delete"
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleDelete"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="permission.region_import"
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-upload2"
|
|
|
+ @click="handleImport"
|
|
|
+ >导入</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="permission.region_export"
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-download"
|
|
|
+ @click="handleExport"
|
|
|
+ >导出</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="permission.region_debug"
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-video-play"
|
|
|
+ @click="handleDebug"
|
|
|
+ >调试</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="permission.region_debug"
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-circle-plus-outline"
|
|
|
+ @click="getAlllatlng"
|
|
|
+ >批量获取经纬度</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="permission.region_debug"
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-circle-plus-outline"
|
|
|
+ @click="getLatLng"
|
|
|
+ >获取经纬度</el-button
|
|
|
+ >
|
|
|
</el-button-group>
|
|
|
</basic-container>
|
|
|
<basic-container>
|
|
|
- <avue-form ref="form" :option="regionOption" v-model="regionForm" @submit="handleSubmit">
|
|
|
+ <avue-form
|
|
|
+ ref="form"
|
|
|
+ :option="regionOption"
|
|
|
+ v-model="regionForm"
|
|
|
+ @submit="handleSubmit"
|
|
|
+ >
|
|
|
<template slot="code" slot-scope="{}">
|
|
|
- <el-input placeholder="请输入 区划子编号" v-model="regionForm.subCode">
|
|
|
- <template slot="prepend">{{regionForm.parentCode}}</template>
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入 区划子编号"
|
|
|
+ v-model="regionForm.subCode"
|
|
|
+ >
|
|
|
+ <template slot="prepend">{{ regionForm.parentCode }}</template>
|
|
|
</el-input>
|
|
|
</template>
|
|
|
</avue-form>
|
|
|
- <el-dialog title="行政区划数据导入"
|
|
|
- append-to-body
|
|
|
- :visible.sync="excelBox"
|
|
|
- :close-on-click-modal="false"
|
|
|
- width="555px">
|
|
|
- <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
|
|
|
+ <el-dialog
|
|
|
+ title="行政区划数据导入"
|
|
|
+ append-to-body
|
|
|
+ :visible.sync="excelBox"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ width="555px"
|
|
|
+ >
|
|
|
+ <avue-form
|
|
|
+ :option="excelOption"
|
|
|
+ v-model="excelForm"
|
|
|
+ :upload-after="uploadAfter"
|
|
|
+ >
|
|
|
<template slot="excelTemplate">
|
|
|
<el-button type="primary" @click="handleTemplate">
|
|
|
点击下载<i class="el-icon-download el-icon--right"></i>
|
|
@@ -40,12 +109,14 @@
|
|
|
</template>
|
|
|
</avue-form>
|
|
|
</el-dialog>
|
|
|
- <el-dialog title="行政区划数据调试"
|
|
|
- append-to-body
|
|
|
- :visible.sync="debugBox"
|
|
|
- :close-on-click-modal="false"
|
|
|
- width="350px">
|
|
|
- <avue-form :option="debugOption" v-model="debugForm"/>
|
|
|
+ <el-dialog
|
|
|
+ title="行政区划数据调试"
|
|
|
+ append-to-body
|
|
|
+ :visible.sync="debugBox"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ width="350px"
|
|
|
+ >
|
|
|
+ <avue-form :option="debugOption" v-model="debugForm" />
|
|
|
</el-dialog>
|
|
|
</basic-container>
|
|
|
</el-col>
|
|
@@ -53,367 +124,451 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import {getLazyTree, getDetail, submit, remove} from "@/api/base/region";
|
|
|
- import {mapGetters} from "vuex";
|
|
|
- import {validatenull} from "@/util/validate";
|
|
|
- import {getToken} from "@/util/auth";
|
|
|
+import {
|
|
|
+ getLazyTree,
|
|
|
+ getDetail,
|
|
|
+ submit,
|
|
|
+ remove,
|
|
|
+ getLatLng,
|
|
|
+ getAllLatLng
|
|
|
+} from "@/api/base/region";
|
|
|
+import { mapGetters } from "vuex";
|
|
|
+import { validatenull } from "@/util/validate";
|
|
|
+import { getToken } from "@/util/auth";
|
|
|
|
|
|
- export default {
|
|
|
- data() {
|
|
|
- return {
|
|
|
- topCode: '00',
|
|
|
- treeCode: '',
|
|
|
- treeParentCode: '',
|
|
|
- treeData: [],
|
|
|
- treeOption: {
|
|
|
- nodeKey: 'id',
|
|
|
- lazy: true,
|
|
|
- treeLoad: function (node, resolve) {
|
|
|
- const parentCode = (node.level === 0) ? "00" : node.data.id;
|
|
|
- getLazyTree(parentCode).then(res => {
|
|
|
- resolve(res.data.data.map(item => {
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ loading: false,
|
|
|
+ topCode: "00",
|
|
|
+ treeCode: "",
|
|
|
+ treeParentCode: "",
|
|
|
+ treeData: [],
|
|
|
+ treeOption: {
|
|
|
+ nodeKey: "id",
|
|
|
+ lazy: true,
|
|
|
+ treeLoad: function(node, resolve) {
|
|
|
+ const parentCode = node.level === 0 ? "00" : node.data.id;
|
|
|
+ getLazyTree(parentCode).then(res => {
|
|
|
+ resolve(
|
|
|
+ res.data.data.map(item => {
|
|
|
return {
|
|
|
...item,
|
|
|
leaf: !item.hasChildren
|
|
|
- }
|
|
|
- }))
|
|
|
- });
|
|
|
- },
|
|
|
- addBtn: false,
|
|
|
- menu: false,
|
|
|
- size: 'small',
|
|
|
- props: {
|
|
|
- labelText: '标题',
|
|
|
- label: 'title',
|
|
|
- value: 'value',
|
|
|
- children: 'children'
|
|
|
- }
|
|
|
+ };
|
|
|
+ })
|
|
|
+ );
|
|
|
+ });
|
|
|
},
|
|
|
- regionForm: {},
|
|
|
- regionOption: {
|
|
|
- labelWidth: 100,
|
|
|
- column: [
|
|
|
- {
|
|
|
- label: "父区划编号",
|
|
|
- prop: "parentCode",
|
|
|
- span: 24,
|
|
|
- disabled: true,
|
|
|
- rules: [{
|
|
|
+ addBtn: false,
|
|
|
+ menu: false,
|
|
|
+ size: "small",
|
|
|
+ props: {
|
|
|
+ labelText: "标题",
|
|
|
+ label: "title",
|
|
|
+ value: "value",
|
|
|
+ children: "children"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ regionForm: {},
|
|
|
+ regionOption: {
|
|
|
+ labelWidth: 100,
|
|
|
+ column: [
|
|
|
+ {
|
|
|
+ label: "父区划编号",
|
|
|
+ prop: "parentCode",
|
|
|
+ span: 24,
|
|
|
+ disabled: true,
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
required: true,
|
|
|
message: "请输入父区划编号",
|
|
|
trigger: "blur"
|
|
|
- }]
|
|
|
- },
|
|
|
- {
|
|
|
- label: "父区划名称",
|
|
|
- prop: "parentName",
|
|
|
- span: 24,
|
|
|
- disabled: true,
|
|
|
- },
|
|
|
- {
|
|
|
- label: "区划编号",
|
|
|
- prop: "code",
|
|
|
- formslot: true,
|
|
|
- span: 24,
|
|
|
- rules: [{
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "父区划名称",
|
|
|
+ prop: "parentName",
|
|
|
+ span: 24,
|
|
|
+ disabled: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "区划编号",
|
|
|
+ prop: "code",
|
|
|
+ formslot: true,
|
|
|
+ span: 24,
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
required: true,
|
|
|
message: "请输入区划编号",
|
|
|
trigger: "blur"
|
|
|
- }]
|
|
|
- },
|
|
|
- {
|
|
|
- label: "区划子编号",
|
|
|
- prop: "subCode",
|
|
|
- display: false,
|
|
|
- },
|
|
|
- {
|
|
|
- label: "区划名称",
|
|
|
- prop: "name",
|
|
|
- span: 24,
|
|
|
- rules: [{
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "区划子编号",
|
|
|
+ prop: "subCode",
|
|
|
+ display: false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "区划名称",
|
|
|
+ prop: "name",
|
|
|
+ span: 24,
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
required: true,
|
|
|
message: "请输入区划名称",
|
|
|
trigger: "blur"
|
|
|
- }]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "区划等级",
|
|
|
+ prop: "regionLevel",
|
|
|
+ type: "radio",
|
|
|
+ dicUrl: "/api/blade-system/dict/dictionary?code=region",
|
|
|
+ props: {
|
|
|
+ label: "dictValue",
|
|
|
+ value: "dictKey"
|
|
|
},
|
|
|
- {
|
|
|
- label: "区划等级",
|
|
|
- prop: "regionLevel",
|
|
|
- type: "radio",
|
|
|
- dicUrl: "/api/blade-system/dict/dictionary?code=region",
|
|
|
- props: {
|
|
|
- label: "dictValue",
|
|
|
- value: "dictKey"
|
|
|
- },
|
|
|
- dataType: "number",
|
|
|
- span: 24,
|
|
|
- rules: [{
|
|
|
+ dataType: "number",
|
|
|
+ span: 24,
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
required: true,
|
|
|
message: "请选择区划等级",
|
|
|
trigger: "blur"
|
|
|
- }]
|
|
|
- },
|
|
|
- {
|
|
|
- label: "区划排序",
|
|
|
- prop: "sort",
|
|
|
- type: "number",
|
|
|
- span: 24,
|
|
|
- rules: [{
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "区划排序",
|
|
|
+ prop: "sort",
|
|
|
+ type: "number",
|
|
|
+ span: 24,
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
required: true,
|
|
|
message: "请输入区划排序",
|
|
|
trigger: "blur"
|
|
|
- }]
|
|
|
- },
|
|
|
- {
|
|
|
- label: "区划备注",
|
|
|
- prop: "remark",
|
|
|
- type: "textarea",
|
|
|
- minRows: 6,
|
|
|
- span: 24,
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "经度",
|
|
|
+ prop: "lng",
|
|
|
+ disabled: true,
|
|
|
+ span: 24
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "纬度",
|
|
|
+ prop: "lat",
|
|
|
+ disabled: true,
|
|
|
+ span: 24
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "区划备注",
|
|
|
+ prop: "remark",
|
|
|
+ type: "textarea",
|
|
|
+ minRows: 6,
|
|
|
+ span: 24
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ excelBox: false,
|
|
|
+ excelForm: {},
|
|
|
+ excelOption: {
|
|
|
+ submitBtn: false,
|
|
|
+ emptyBtn: false,
|
|
|
+ column: [
|
|
|
+ {
|
|
|
+ label: "模板上传",
|
|
|
+ prop: "excelFile",
|
|
|
+ type: "upload",
|
|
|
+ drag: true,
|
|
|
+ loadText: "模板上传中,请稍等",
|
|
|
+ span: 24,
|
|
|
+ propsHttp: {
|
|
|
+ res: "data"
|
|
|
},
|
|
|
- ]
|
|
|
- },
|
|
|
- excelBox: false,
|
|
|
- excelForm: {},
|
|
|
- excelOption: {
|
|
|
- submitBtn: false,
|
|
|
- emptyBtn: false,
|
|
|
- column: [
|
|
|
- {
|
|
|
- label: '模板上传',
|
|
|
- prop: 'excelFile',
|
|
|
- type: 'upload',
|
|
|
- drag: true,
|
|
|
- loadText: '模板上传中,请稍等',
|
|
|
- span: 24,
|
|
|
- propsHttp: {
|
|
|
- res: 'data'
|
|
|
+ tip: "请上传 .xls,.xlsx 标准格式文件",
|
|
|
+ action: "/api/blade-system/region/import-region"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "数据覆盖",
|
|
|
+ prop: "isCovered",
|
|
|
+ type: "switch",
|
|
|
+ align: "center",
|
|
|
+ width: 80,
|
|
|
+ dicData: [
|
|
|
+ {
|
|
|
+ label: "否",
|
|
|
+ value: 0
|
|
|
},
|
|
|
- tip: '请上传 .xls,.xlsx 标准格式文件',
|
|
|
- action: "/api/blade-system/region/import-region"
|
|
|
- },
|
|
|
- {
|
|
|
- label: "数据覆盖",
|
|
|
- prop: "isCovered",
|
|
|
- type: "switch",
|
|
|
- align: "center",
|
|
|
- width: 80,
|
|
|
- dicData: [
|
|
|
- {
|
|
|
- label: "否",
|
|
|
- value: 0
|
|
|
- },
|
|
|
- {
|
|
|
- label: "是",
|
|
|
- value: 1
|
|
|
- }
|
|
|
- ],
|
|
|
- value: 0,
|
|
|
- slot: true,
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请选择是否覆盖",
|
|
|
- trigger: "blur"
|
|
|
- }
|
|
|
- ]
|
|
|
+ {
|
|
|
+ label: "是",
|
|
|
+ value: 1
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ value: 0,
|
|
|
+ slot: true,
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择是否覆盖",
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "模板下载",
|
|
|
+ prop: "excelTemplate",
|
|
|
+ formslot: true,
|
|
|
+ span: 24
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ debugBox: false,
|
|
|
+ debugForm: {},
|
|
|
+ debugOption: {
|
|
|
+ labelWidth: 50,
|
|
|
+ submitBtn: false,
|
|
|
+ emptyBtn: false,
|
|
|
+ column: [
|
|
|
+ {
|
|
|
+ label: "省份",
|
|
|
+ prop: "province",
|
|
|
+ type: "select",
|
|
|
+ props: {
|
|
|
+ label: "name",
|
|
|
+ value: "code"
|
|
|
},
|
|
|
- {
|
|
|
- label: '模板下载',
|
|
|
- prop: 'excelTemplate',
|
|
|
- formslot: true,
|
|
|
- span: 24,
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- debugBox: false,
|
|
|
- debugForm: {},
|
|
|
- debugOption: {
|
|
|
- labelWidth: 50,
|
|
|
- submitBtn: false,
|
|
|
- emptyBtn: false,
|
|
|
- column: [
|
|
|
- {
|
|
|
- label: '省份',
|
|
|
- prop: 'province',
|
|
|
- type: 'select',
|
|
|
- props: {
|
|
|
- label: 'name',
|
|
|
- value: 'code'
|
|
|
- },
|
|
|
- cascaderItem: ['city', 'district'],
|
|
|
- dicUrl: '/api/blade-system/region/select',
|
|
|
- span: 24,
|
|
|
+ cascaderItem: ["city", "district"],
|
|
|
+ dicUrl: "/api/blade-system/region/select",
|
|
|
+ span: 24
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "地市",
|
|
|
+ prop: "city",
|
|
|
+ type: "select",
|
|
|
+ props: {
|
|
|
+ label: "name",
|
|
|
+ value: "code"
|
|
|
},
|
|
|
- {
|
|
|
- label: '地市',
|
|
|
- prop: 'city',
|
|
|
- type: 'select',
|
|
|
- props: {
|
|
|
- label: 'name',
|
|
|
- value: 'code'
|
|
|
- },
|
|
|
- dicFlag: false,
|
|
|
- dicUrl: '/api/blade-system/region/select?code={{key}}',
|
|
|
- span: 24,
|
|
|
+ dicFlag: false,
|
|
|
+ dicUrl: "/api/blade-system/region/select?code={{key}}",
|
|
|
+ span: 24
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "区县",
|
|
|
+ prop: "district",
|
|
|
+ type: "select",
|
|
|
+ props: {
|
|
|
+ label: "name",
|
|
|
+ value: "code"
|
|
|
},
|
|
|
- {
|
|
|
- label: '区县',
|
|
|
- prop: 'district',
|
|
|
- type: 'select',
|
|
|
- props: {
|
|
|
- label: 'name',
|
|
|
- value: 'code'
|
|
|
- },
|
|
|
- dicFlag: false,
|
|
|
- dicUrl: '/api/blade-system/region/select?code={{key}}',
|
|
|
- span: 24,
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- };
|
|
|
+ dicFlag: false,
|
|
|
+ dicUrl: "/api/blade-system/region/select?code={{key}}",
|
|
|
+ span: 24
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ };
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ "regionForm.subCode"() {
|
|
|
+ this.regionForm.code =
|
|
|
+ this.regionForm.parentCode + this.regionForm.subCode;
|
|
|
},
|
|
|
- watch: {
|
|
|
- 'regionForm.subCode'() {
|
|
|
- this.regionForm.code = this.regionForm.parentCode + this.regionForm.subCode;
|
|
|
- },
|
|
|
- 'excelForm.isCovered'() {
|
|
|
- if (this.excelForm.isCovered !== '') {
|
|
|
- const column = this.findObject(this.excelOption.column, "excelFile");
|
|
|
- column.action = `/api/blade-system/region/import-region?isCovered=${this.excelForm.isCovered}`;
|
|
|
- }
|
|
|
+ "excelForm.isCovered"() {
|
|
|
+ if (this.excelForm.isCovered !== "") {
|
|
|
+ const column = this.findObject(this.excelOption.column, "excelFile");
|
|
|
+ column.action = `/api/blade-system/region/import-region?isCovered=${this.excelForm.isCovered}`;
|
|
|
}
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapGetters(["permission"]),
|
|
|
+ permissionList() {
|
|
|
+ return {
|
|
|
+ addBtn: this.vaildData(this.permission.region_add, false),
|
|
|
+ viewBtn: this.vaildData(this.permission.region_view, false),
|
|
|
+ delBtn: this.vaildData(this.permission.region_delete, false),
|
|
|
+ editBtn: this.vaildData(this.permission.region_edit, false)
|
|
|
+ };
|
|
|
},
|
|
|
- computed: {
|
|
|
- ...mapGetters(["permission"]),
|
|
|
- permissionList() {
|
|
|
- return {
|
|
|
- addBtn: this.vaildData(this.permission.region_add, false),
|
|
|
- viewBtn: this.vaildData(this.permission.region_view, false),
|
|
|
- delBtn: this.vaildData(this.permission.region_delete, false),
|
|
|
- editBtn: this.vaildData(this.permission.region_edit, false)
|
|
|
- };
|
|
|
- },
|
|
|
- ids() {
|
|
|
- let ids = [];
|
|
|
- this.selectionList.forEach(ele => {
|
|
|
- ids.push(ele.id);
|
|
|
+ ids() {
|
|
|
+ let ids = [];
|
|
|
+ this.selectionList.forEach(ele => {
|
|
|
+ ids.push(ele.id);
|
|
|
+ });
|
|
|
+ return ids.join(",");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ initTree() {
|
|
|
+ this.treeData = [];
|
|
|
+ getLazyTree(this.topCode).then(res => {
|
|
|
+ this.treeData = res.data.data.map(item => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ leaf: !item.hasChildren
|
|
|
+ };
|
|
|
});
|
|
|
- return ids.join(",");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ nodeClick(data) {
|
|
|
+ const column = this.findObject(this.regionOption.column, "parentCode");
|
|
|
+ column.disabled = true;
|
|
|
+ this.treeCode = data.id;
|
|
|
+ this.treeParentCode = data.parentId;
|
|
|
+ getDetail(this.treeCode).then(res => {
|
|
|
+ this.regionForm = res.data.data;
|
|
|
+ this.regionForm.subCode = this.regionForm.code.replace(
|
|
|
+ this.regionForm.parentCode,
|
|
|
+ ""
|
|
|
+ );
|
|
|
+ });
|
|
|
+ },
|
|
|
+ addChildren() {
|
|
|
+ if (
|
|
|
+ validatenull(this.regionForm.code) ||
|
|
|
+ validatenull(this.regionForm.name)
|
|
|
+ ) {
|
|
|
+ this.$message.warning("请先选择一项区划");
|
|
|
+ return;
|
|
|
}
|
|
|
+ this.regionForm.parentCode = this.regionForm.code;
|
|
|
+ this.regionForm.parentName = this.regionForm.name;
|
|
|
+ this.regionForm.code = "";
|
|
|
+ this.regionForm.subCode = "";
|
|
|
+ this.regionForm.name = "";
|
|
|
+ this.regionForm.regionLevel =
|
|
|
+ this.regionForm.regionLevel === 5 ? 5 : this.regionForm.regionLevel + 1;
|
|
|
},
|
|
|
- methods: {
|
|
|
- initTree() {
|
|
|
- this.treeData = [];
|
|
|
- getLazyTree(this.topCode).then(res => {
|
|
|
- this.treeData = res.data.data.map(item => {
|
|
|
- return {
|
|
|
- ...item,
|
|
|
- leaf: !item.hasChildren
|
|
|
- }
|
|
|
- })
|
|
|
- });
|
|
|
- },
|
|
|
- nodeClick(data) {
|
|
|
- const column = this.findObject(this.regionOption.column, "parentCode");
|
|
|
- column.disabled = true;
|
|
|
- this.treeCode = data.id;
|
|
|
- this.treeParentCode = data.parentId;
|
|
|
- getDetail(this.treeCode).then(res => {
|
|
|
- this.regionForm = res.data.data;
|
|
|
- this.regionForm.subCode = this.regionForm.code.replace(this.regionForm.parentCode, '');
|
|
|
+ getAlllatlng() {
|
|
|
+ this.loading = true;
|
|
|
+ getAllLatLng()
|
|
|
+ .then(res => {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "操作成功!"
|
|
|
+ });
|
|
|
})
|
|
|
- },
|
|
|
- addChildren() {
|
|
|
- if (validatenull(this.regionForm.code) || validatenull(this.regionForm.name)) {
|
|
|
- this.$message.warning("请先选择一项区划");
|
|
|
- return;
|
|
|
- }
|
|
|
- this.regionForm.parentCode = this.regionForm.code;
|
|
|
- this.regionForm.parentName = this.regionForm.name;
|
|
|
- this.regionForm.code = '';
|
|
|
- this.regionForm.subCode = '';
|
|
|
- this.regionForm.name = '';
|
|
|
- this.regionForm.regionLevel = (this.regionForm.regionLevel === 5) ? 5 : this.regionForm.regionLevel + 1;
|
|
|
- },
|
|
|
- handleSubmit(form, done, loading) {
|
|
|
- const parentCode = form.parentCode === this.topCode ? '' : form.parentCode;
|
|
|
- form.code = parentCode + form.subCode;
|
|
|
- submit(form).then(() => {
|
|
|
+ .finally(() => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getLatLng() {
|
|
|
+ if (!this.regionForm.id) {
|
|
|
+ return this.$message.error("请保存数据");
|
|
|
+ }
|
|
|
+ const address =
|
|
|
+ this.regionForm.provinceName +
|
|
|
+ this.regionForm.cityName +
|
|
|
+ this.regionForm.districtName +
|
|
|
+ this.regionForm.townName +
|
|
|
+ this.regionForm.villageName;
|
|
|
+ getLatLng({ address: address }).then(res => {
|
|
|
+ this.regionForm.lat = res.data.data.lat;
|
|
|
+ this.regionForm.lng = res.data.data.lng;
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "操作成功!"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleSubmit(form, done, loading) {
|
|
|
+ const parentCode =
|
|
|
+ form.parentCode === this.topCode ? "" : form.parentCode;
|
|
|
+ form.code = parentCode + form.subCode;
|
|
|
+ submit(form).then(
|
|
|
+ () => {
|
|
|
this.$message({
|
|
|
type: "success",
|
|
|
message: "操作成功!"
|
|
|
});
|
|
|
this.initTree();
|
|
|
- this.regionForm.subCode = '';
|
|
|
+ this.regionForm.subCode = "";
|
|
|
this.$refs.form.resetForm();
|
|
|
done();
|
|
|
- }, error => {
|
|
|
+ },
|
|
|
+ error => {
|
|
|
loading();
|
|
|
window.console.log(error);
|
|
|
- });
|
|
|
- },
|
|
|
- handleDelete() {
|
|
|
- if (validatenull(this.regionForm.code)) {
|
|
|
- this.$message.warning("请先选择一项区划");
|
|
|
- return;
|
|
|
}
|
|
|
- this.$confirm(`确定将 [${this.regionForm.name}] 数据删除?`, {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning"
|
|
|
+ );
|
|
|
+ },
|
|
|
+ handleDelete() {
|
|
|
+ if (validatenull(this.regionForm.code)) {
|
|
|
+ this.$message.warning("请先选择一项区划");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.$confirm(`确定将 [${this.regionForm.name}] 数据删除?`, {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ return remove(this.treeCode);
|
|
|
})
|
|
|
- .then(() => {
|
|
|
- return remove(this.treeCode);
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- this.$message({
|
|
|
- type: "success",
|
|
|
- message: "操作成功!"
|
|
|
- });
|
|
|
- this.initTree();
|
|
|
- this.regionForm.subCode = '';
|
|
|
- this.$refs.form.resetForm();
|
|
|
+ .then(() => {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "操作成功!"
|
|
|
});
|
|
|
- },
|
|
|
- uploadAfter(res, done, loading, column) {
|
|
|
- window.console.log(column);
|
|
|
- this.excelBox = false;
|
|
|
- this.initTree();
|
|
|
- done();
|
|
|
- },
|
|
|
- handleDebug() {
|
|
|
- this.debugBox = true;
|
|
|
- },
|
|
|
- handleImport() {
|
|
|
- this.excelBox = true;
|
|
|
- },
|
|
|
- handleExport() {
|
|
|
- this.$confirm("是否导出行政区划数据?", "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning"
|
|
|
- }).then(() => {
|
|
|
- window.open(`/api/blade-system/region/export-region?${this.website.tokenHeader}=${getToken()}`);
|
|
|
+ this.initTree();
|
|
|
+ this.regionForm.subCode = "";
|
|
|
+ this.$refs.form.resetForm();
|
|
|
});
|
|
|
- },
|
|
|
- handleTemplate() {
|
|
|
- window.open(`/api/blade-system/region/export-template?${this.website.tokenHeader}=${getToken()}`);
|
|
|
- },
|
|
|
+ },
|
|
|
+ uploadAfter(res, done, loading, column) {
|
|
|
+ window.console.log(column);
|
|
|
+ this.excelBox = false;
|
|
|
+ this.initTree();
|
|
|
+ done();
|
|
|
+ },
|
|
|
+ handleDebug() {
|
|
|
+ this.debugBox = true;
|
|
|
+ },
|
|
|
+ handleImport() {
|
|
|
+ this.excelBox = true;
|
|
|
+ },
|
|
|
+ handleExport() {
|
|
|
+ this.$confirm("是否导出行政区划数据?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(() => {
|
|
|
+ window.open(
|
|
|
+ `/api/blade-system/region/export-region?${
|
|
|
+ this.website.tokenHeader
|
|
|
+ }=${getToken()}`
|
|
|
+ );
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleTemplate() {
|
|
|
+ window.open(
|
|
|
+ `/api/blade-system/region/export-template?${
|
|
|
+ this.website.tokenHeader
|
|
|
+ }=${getToken()}`
|
|
|
+ );
|
|
|
}
|
|
|
- };
|
|
|
+ }
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style>
|
|
|
- .box {
|
|
|
- height: 800px;
|
|
|
- }
|
|
|
+.box {
|
|
|
+ height: 800px;
|
|
|
+}
|
|
|
|
|
|
- .el-scrollbar {
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
+.el-scrollbar {
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
|
|
|
- .box .el-scrollbar__wrap {
|
|
|
- overflow: scroll;
|
|
|
- }
|
|
|
+.box .el-scrollbar__wrap {
|
|
|
+ overflow: scroll;
|
|
|
+}
|
|
|
</style>
|