From 32939a2e9d8b967fde6e71b9b501e221cf9814d1 Mon Sep 17 00:00:00 2001 From: zhouwenxuan <1175765986@qq.com> Date: 星期三, 13 十二月 2023 13:05:52 +0800 Subject: [PATCH] 样式调整,bug修复 --- src/views/components/publish.vue | 124 +++++++++++++++++++++++++++++++++++------ 1 files changed, 106 insertions(+), 18 deletions(-) diff --git a/src/views/components/publish.vue b/src/views/components/publish.vue index becb855..ae64238 100644 --- a/src/views/components/publish.vue +++ b/src/views/components/publish.vue @@ -3,20 +3,29 @@ <div class="main-content"> <div class="filters"> <el-form :model="state.querys" style="display:flex;"> - <el-form-item label="机构名称" style="width: 300px;margin-bottom: 0;margin-right: 20px"> - <el-input v-model="state.querys.name" /> + <el-form-item label="机构名称:" class="nameInput" style="width: 300px;margin-bottom: 0;margin-right: 20px;"> + <el-input v-model="state.querys.name" placeholder="请选择机构名称" /> </el-form-item> - <el-form-item label="所在地市" style="margin-bottom: 0;margin-right: 20px"> - <el-select v-model="state.querys.area"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> + <el-form-item label="所在地市:" style="margin-bottom: 0;margin-right: 20px"> + <el-cascader + ref="myCascader" + v-model="state.querys.area" + :options="state.areaList" + :props="props" + @change="handleChange" + style="width: 100%" + size="large" + /> </el-form-item> - <el-form-item label="业务范围" style="margin-bottom: 0;margin-right: 20px"> - <el-select v-model="state.querys.business"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> + <el-form-item label="业务范围:" style="margin-bottom: 0;margin-right: 20px"> + <el-select v-model="state.querys.business" placeholder="请选择业务范围" multiple size="large" style="width: 100%"> + <el-option + v-for="item in state.busList" + :key="item.id" + :label="item.label" + :value="item.id" + /> + </el-select> </el-form-item> </el-form> <el-button type="primary" :icon="Search" class="searchBtn" @click="search">搜索</el-button> @@ -35,6 +44,8 @@ </div> <div class="pag-container" v-if="state.total&&state.total>0"> <el-pagination + v-model:current-page="state.querys.pageNum" + v-model:page-size="state.querys.pageSize" :page-sizes="[10,15,20]" layout="total, sizes, prev, pager, next, jumper" :total="state.total" @@ -51,26 +62,42 @@ import { getPublish } from '@/api/home/homePage' import { Search, Refresh } from '@element-plus/icons-vue' import {ElMessage} from "element-plus"; +import {getRegionTree} from "@/api/area"; +import {getDict} from "@/api/login"; const emit = defineEmits(['openDetails']) const route = useRoute() const router = useRouter() +const myCascader = ref(); const state = reactive({ dataList: [], querys:{ name: '', - area: '', - bussiness: '', + area: [], + business: '', + province:'', + city:'', + district:'', pageNum: 1, pageSize: 10 }, - total: null + total: null, + busList: [], + areaList: [], + attribute: 0 }) +const props = { + expandTrigger: 'hover', + value: 'name', + label: 'name' +} const redirect = ref(undefined); onMounted(()=>{ getData() + getArea() + getBusiness() }) onUnmounted(()=>{ @@ -82,7 +109,16 @@ }, { immediate: true }); const getData = async ()=>{ - const res = await getPublish(state.querys) + const param = { + name: state.querys.name, + business: state.querys.business ? state.querys.business.join(','):'', + province: state.querys.province, + city: state.querys.city, + district: state.querys.district, + pageNum: state.querys.pageNum, + pageSize: state.querys.pageSize + } + const res = await getPublish(param) if(res.code == 200){ state.dataList = res.data.list state.total = res.data.total @@ -90,7 +126,45 @@ ElMessage.warning(res.message) } } - +const getArea = async ()=>{ + const res = await getRegionTree({name: '',parentId: null,regionType: state.attribute}) + if(res.code == 200){ + state.areaList = res.data + state.areaList.unshift( + { + id: '', + name: '全部' + } + ) + }else{ + ElMessage.warning(res.message) + } +} +const getBusiness = async ()=>{ + const res = await getDict({dictType: 'sys_business_scope'}) + if(res.code == 200){ + state.busList = res.data + }else{ + ElMessage.warning(res.message) + } +} +const handleChange = (value) => { + console.log('myCascader',myCascader.value) + if(value && value[0] === '全部'){ + state.querys.province = '' + state.querys.city = '' + state.querys.district = '' + }else if(value && state.attribute == 0){ + state.querys.province = '新疆维吾尔自治区' + state.querys.city = value[0]?value[0]:'' + state.querys.district = value[1]?value[1]:'' + } + // else{ + // state.querys.province = value[0]?value[0]:'' + // state.querys.city = value[1]?value[1]:'' + // state.querys.district = value[2]?value[2]:'' + // } +} const handleSizeChange = (val) => { state.querys.pageNum = 1; state.querys.pageSize = val @@ -107,7 +181,10 @@ const reset = () => { state.querys = { name: '', - area: '', + area: [], + province:'', + city:'', + district:'', bussiness: '', pageNum: 1, pageSize: 10 @@ -131,6 +208,17 @@ display: flex; justify-content: center; margin-top: 170px; + :deep(.el-form .el-form-item__label) { + font-size: 16px; + } + :deep(.el-form-item){ + align-items: center; + } + .nameInput{ + :deep(.el-input__inner){ + --el-input-inner-height: 38px; + } + } .main-content{ width: 1200px; -- Gitblit v1.9.2