| | |
| | | <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> |
| | |
| | | </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" |
| | |
| | | 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(()=>{ |
| | |
| | | }, { 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 |
| | |
| | | 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 |
| | |
| | | const reset = () => { |
| | | state.querys = { |
| | | name: '', |
| | | area: '', |
| | | area: [], |
| | | province:'', |
| | | city:'', |
| | | district:'', |
| | | bussiness: '', |
| | | pageNum: 1, |
| | | pageSize: 10 |
| | |
| | | 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; |