md
This commit is contained in:
parent
5f2bad368e
commit
1690d5607b
86
src/components/CityPicker/indexA.vue
Normal file
86
src/components/CityPicker/indexA.vue
Normal file
@ -0,0 +1,86 @@
|
||||
<template>
|
||||
<el-cascader
|
||||
ref="cascader"
|
||||
:props="casProps"
|
||||
:options="casData"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
@change="handleCasChange">
|
||||
</el-cascader>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'cascaderTest',
|
||||
data () {
|
||||
return {
|
||||
// 获取数据
|
||||
casData: [],
|
||||
casProps: {
|
||||
value: 'casId',
|
||||
label: 'casName',
|
||||
// 懒加载
|
||||
lazy: true, // 必须为true
|
||||
lazyLoad:this.lazyLoad
|
||||
}
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
// 懒加载获取数据
|
||||
lazyLoad(node,resolve){
|
||||
const level = node.level
|
||||
var url
|
||||
if (level === 0) {
|
||||
url = '接口地址'
|
||||
}
|
||||
if (level === 1) {
|
||||
url = '接口地址'
|
||||
}
|
||||
if (level === 2) {
|
||||
url = '接口地址'
|
||||
}
|
||||
// 请求看项目具体请求格式
|
||||
this.reqM1Service(url, '', "get")
|
||||
.then(res => {
|
||||
let data
|
||||
if (level === 0) {
|
||||
data = res.data.data
|
||||
// 判断data是否有数据
|
||||
if(data.length == 0){
|
||||
return this.$message.error("获取数据失败!")
|
||||
}else{
|
||||
data.forEach(item => {
|
||||
this.value = item.casId
|
||||
this.label = item.casName
|
||||
})
|
||||
}
|
||||
}
|
||||
if (level === 1) {
|
||||
data = res.data.data
|
||||
if(data.length == 0){
|
||||
return this.$message.error("获取数据失败!")
|
||||
}
|
||||
data.forEach(item => {
|
||||
item.value = item.casId
|
||||
item.label = item.casName
|
||||
})
|
||||
}
|
||||
if (level === 2) {
|
||||
data = res.data.data
|
||||
if(data.length == 0){
|
||||
return this.$message.error("获取数据失败!")
|
||||
}
|
||||
data.forEach(item => {
|
||||
item.value = item.casId
|
||||
item.label = item.casName
|
||||
//将相关值赋值到选择器上
|
||||
item.leaf = level >= 2
|
||||
})
|
||||
}
|
||||
resolve(data)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
87
src/components/CityPicker/indexD.vue
Normal file
87
src/components/CityPicker/indexD.vue
Normal file
@ -0,0 +1,87 @@
|
||||
<template>
|
||||
<div>
|
||||
<div>
|
||||
<el-select v-model="form.province" placeholder="省" clearable filterable>
|
||||
<el-option
|
||||
v-for="item in provinceIdsOptions"
|
||||
v-bind:key="item.value"
|
||||
v-bind:label="item.label"
|
||||
v-bind:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'CitePickerA',
|
||||
data () {
|
||||
return {
|
||||
country:null,
|
||||
province:null,
|
||||
city:null,
|
||||
district:null,
|
||||
town:null,
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
// 懒加载获取数据
|
||||
lazyLoad(node,resolve){
|
||||
const level = node.level
|
||||
var url
|
||||
if (level === 0) {
|
||||
url = '接口地址'
|
||||
}
|
||||
if (level === 1) {
|
||||
url = '接口地址'
|
||||
}
|
||||
if (level === 2) {
|
||||
url = '接口地址'
|
||||
}
|
||||
// 请求看项目具体请求格式
|
||||
this.reqM1Service(url, '', "get")
|
||||
.then(res => {
|
||||
let data
|
||||
if (level === 0) {
|
||||
data = res.data.data
|
||||
// 判断data是否有数据
|
||||
if(data.length == 0){
|
||||
return this.$message.error("获取数据失败!")
|
||||
}else{
|
||||
data.forEach(item => {
|
||||
this.value = item.casId
|
||||
this.label = item.casName
|
||||
})
|
||||
}
|
||||
}
|
||||
if (level === 1) {
|
||||
data = res.data.data
|
||||
if(data.length == 0){
|
||||
return this.$message.error("获取数据失败!")
|
||||
}
|
||||
data.forEach(item => {
|
||||
item.value = item.casId
|
||||
item.label = item.casName
|
||||
})
|
||||
}
|
||||
if (level === 2) {
|
||||
data = res.data.data
|
||||
if(data.length == 0){
|
||||
return this.$message.error("获取数据失败!")
|
||||
}
|
||||
data.forEach(item => {
|
||||
item.value = item.casId
|
||||
item.label = item.casName
|
||||
//将相关值赋值到选择器上
|
||||
item.leaf = level >= 2
|
||||
})
|
||||
}
|
||||
resolve(data)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
78
src/components/FormPanel/index.vue
Normal file
78
src/components/FormPanel/index.vue
Normal file
@ -0,0 +1,78 @@
|
||||
<template>
|
||||
<div id="formPanel">
|
||||
<slot></slot>
|
||||
<el-col :span="24">
|
||||
<el-divider content-position="right" >更多信息[+]</el-divider>
|
||||
</el-col>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Form, FormItem, Button } from 'element-ui'
|
||||
export default {
|
||||
name: 'FormPanel',
|
||||
components: { Form, FormItem, Button },
|
||||
props: {
|
||||
// 最大展示数,默认3个,超过则隐藏,为0时不限制
|
||||
maxShow: {
|
||||
type: Number,
|
||||
default: 3,
|
||||
},
|
||||
labelWidth: {
|
||||
type: String,
|
||||
default: '100px',
|
||||
},
|
||||
size: {
|
||||
type: String,
|
||||
default: 'small',
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
collapsiable: false,
|
||||
fold: false,
|
||||
}
|
||||
},
|
||||
created() {},
|
||||
mounted() {
|
||||
// 通过最大显示个数控制展开/折叠
|
||||
if (this.maxShow > 0) {
|
||||
this.minShowCtrol()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
shiftCollapsiable() {
|
||||
this.fold = !this.fold
|
||||
|
||||
this.minShowCtrol()
|
||||
},
|
||||
// 通过maxShow控制元素显示/折叠
|
||||
minShowCtrol() {
|
||||
const group = window.document.querySelectorAll(`#formPanel .el-form-item.el-form-item--${this.size}`)
|
||||
const len = group?.length ? group?.length - 1 : 0
|
||||
if (this.maxShow < len) {
|
||||
group.forEach((item, index) => {
|
||||
if (index > this.maxShow - 1 && index < len) {
|
||||
if(!this.fold){
|
||||
item.style.display = 'none';
|
||||
}else{
|
||||
item.style.display = '';
|
||||
}
|
||||
// item.hidden = !this.fold
|
||||
}
|
||||
})
|
||||
this.collapsiable = true
|
||||
} else {
|
||||
this.collapsiable = false
|
||||
}
|
||||
},
|
||||
handleQuery() {
|
||||
this.$emit('search')
|
||||
},
|
||||
handleReset() {
|
||||
this.$emit('reset')
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user