|
@@ -1,10 +1,11 @@
|
|
|
<template>
|
|
|
-<!-- v-if 解决数据回显问题-->
|
|
|
- <el-cascader v-if="show" :disabled="disabled" ref="cascader" v-model="cascaderValue" :props="props" v-bind="options" @change="handleChange"></el-cascader>
|
|
|
+ <!-- v-if 解决数据回显问题-->
|
|
|
+ <el-cascader v-if="show" :disabled="disabled" ref="cascader" v-model="cascaderValue" :props="props" v-bind="options"
|
|
|
+ @change="handleChange"></el-cascader>
|
|
|
</template>
|
|
|
<script>
|
|
|
|
|
|
-import {countryDeptList} from "@/api/home";
|
|
|
+import { countryDeptList } from "@/api/home";
|
|
|
|
|
|
export default {
|
|
|
name: 'regionCascaderSelect',
|
|
@@ -22,7 +23,7 @@ export default {
|
|
|
type: String,
|
|
|
default: 'code'
|
|
|
},
|
|
|
- disabled:{
|
|
|
+ disabled: {
|
|
|
type: Boolean,
|
|
|
default: false,
|
|
|
},
|
|
@@ -40,6 +41,11 @@ export default {
|
|
|
type: Object,
|
|
|
default: null
|
|
|
},
|
|
|
+ // 是否仅展示吉林省数据
|
|
|
+ isJl: {
|
|
|
+ type: Boolean,
|
|
|
+ default: true
|
|
|
+ },
|
|
|
endLevel: {
|
|
|
type: [Number, String],
|
|
|
default: 4
|
|
@@ -50,12 +56,12 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
watch: {
|
|
|
- checkStrictly(newVal){
|
|
|
+ checkStrictly(newVal) {
|
|
|
this.props.checkStrictly = newVal;
|
|
|
},
|
|
|
- value:{
|
|
|
- handler(newVal, oldVal){
|
|
|
- if (this.isCascaderValueChange){
|
|
|
+ value: {
|
|
|
+ handler(newVal, oldVal) {
|
|
|
+ if (this.isCascaderValueChange) {
|
|
|
this.isCascaderValueChange = false;
|
|
|
return;
|
|
|
}
|
|
@@ -66,7 +72,7 @@ export default {
|
|
|
deep: true
|
|
|
}
|
|
|
},
|
|
|
- mounted(){
|
|
|
+ mounted() {
|
|
|
let defaultOpts = {
|
|
|
placeholder: '请选择所属区划',
|
|
|
'popper-class': 'cascader-popper region-cascader',
|
|
@@ -78,7 +84,7 @@ export default {
|
|
|
};
|
|
|
this.props.checkStrictly = this.checkStrictly;
|
|
|
},
|
|
|
- data(){
|
|
|
+ data() {
|
|
|
return {
|
|
|
options: {},
|
|
|
show: true, //为了解决数据回显问题引入
|
|
@@ -87,23 +93,21 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
- props(){
|
|
|
+ props() {
|
|
|
return {
|
|
|
lazy: true,
|
|
|
checkStrictly: true,
|
|
|
lazyLoad: async (node, resolve) => {
|
|
|
const { level } = node;
|
|
|
- let levelData=0;
|
|
|
- let params='';
|
|
|
- if(level === 0)
|
|
|
- {
|
|
|
- params = { parentId: "479a446fce894740b373f9c4b356daac"}
|
|
|
- }else
|
|
|
- {
|
|
|
- params={parentId: node.data.nodeData.id};
|
|
|
+ let levelData = 0;
|
|
|
+ let params = '';
|
|
|
+ if (level === 0) {
|
|
|
+ this.isJl ? params = '' : params = { parentId: "479a446fce894740b373f9c4b356daac" }
|
|
|
+ } else {
|
|
|
+ params = { parentId: node.data.nodeData.id };
|
|
|
}
|
|
|
// let params = level === 0 ? '' : {parentId: node.data.nodeData.id};
|
|
|
- let response= await countryDeptList(params);
|
|
|
+ let response = await countryDeptList(params);
|
|
|
let code = response.code;
|
|
|
let data = response.data || response.rows;
|
|
|
if (code !== 200) {
|
|
@@ -114,7 +118,7 @@ export default {
|
|
|
let res = data.map(item => {
|
|
|
let value = String(item[this.valueProp]);
|
|
|
let disabled = level < this.startLevel;
|
|
|
- let endLevel = this.endLevel;
|
|
|
+ let endLevel = this.endLevel;
|
|
|
return {
|
|
|
disabled,
|
|
|
label: item.name,
|
|
@@ -131,7 +135,7 @@ export default {
|
|
|
created() {
|
|
|
},
|
|
|
methods: {
|
|
|
- handleChange(value){
|
|
|
+ handleChange(value) {
|
|
|
this.isCascaderValueChange = true;
|
|
|
this.$emit('changeValue', value);
|
|
|
//将被选中的节点的信息传递出去 👇
|
|
@@ -141,7 +145,7 @@ export default {
|
|
|
//将被选中的节点的全部信息传递出去 👇
|
|
|
this.$emit('nodeData', this.$refs.cascader.getCheckedNodes());
|
|
|
},
|
|
|
- setCascaderValue(newVal){
|
|
|
+ setCascaderValue(newVal) {
|
|
|
this.show = false;
|
|
|
let values = newVal || [];
|
|
|
if (typeof values === 'string') {
|
|
@@ -153,7 +157,7 @@ export default {
|
|
|
this.show = true;
|
|
|
});
|
|
|
},
|
|
|
- getCheckedNodes(){
|
|
|
+ getCheckedNodes() {
|
|
|
return this.$refs.cascader.getCheckedNodes();
|
|
|
},
|
|
|
}
|