You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
357 lines
8.6 KiB
357 lines
8.6 KiB
<template>
|
|
<div
|
|
class="L-main L-mainTow"
|
|
id="L-size-main"
|
|
>
|
|
<div
|
|
class="content-search"
|
|
id="L-header"
|
|
>
|
|
<div class="search-title">查询条件</div>
|
|
<el-form
|
|
:inline="true"
|
|
:model="queryParams"
|
|
ref="queryForm"
|
|
size="default"
|
|
>
|
|
<el-row>
|
|
<el-col :span="7">
|
|
<el-form-item
|
|
label="单位名称:"
|
|
prop="nickName"
|
|
>
|
|
<el-input
|
|
v-model="queryParams.nickName"
|
|
placeholder="请输入单位名称"
|
|
clearable
|
|
@keyup.enter.native="handleQuery"
|
|
style="width: 95%;"
|
|
/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="7">
|
|
<el-form-item
|
|
label="单位类型:"
|
|
prop="dwlx"
|
|
>
|
|
<el-select
|
|
v-model="queryParams.dwlx"
|
|
placeholder="请选择单位类型"
|
|
clearable
|
|
style="width: 95%;"
|
|
>
|
|
<el-option
|
|
v-for="dict in dict.type.dwlx"
|
|
:key="dict.value"
|
|
:label="dict.label"
|
|
:value="dict.value"
|
|
/>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="7">
|
|
<el-form-item
|
|
label="统一社会信用代码:"
|
|
class="tyshxydm-class"
|
|
prop="userName"
|
|
>
|
|
<el-input
|
|
v-model="queryParams.userName"
|
|
placeholder="请输入统一社会信用代码"
|
|
clearable
|
|
@keyup.enter.native="handleQuery"
|
|
/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col
|
|
:span="3"
|
|
style="text-align: right; padding-right: 20px"
|
|
>
|
|
<el-form-item class="unit-form">
|
|
<el-button
|
|
size="default"
|
|
@click="resetQuery"
|
|
>重置</el-button
|
|
>
|
|
<el-button
|
|
size="default"
|
|
type="primary"
|
|
@click="handleQuery"
|
|
>查询</el-button
|
|
>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
</div>
|
|
<main>
|
|
<div class="search-title">
|
|
<span class="search-title-span">单位列表</span>
|
|
</div>
|
|
<section>
|
|
<el-table
|
|
ref="multipleTable"
|
|
v-loading="loading"
|
|
:data="userList"
|
|
:height="tabHeader"
|
|
:max-height="tabHeader"
|
|
:row-class-name="tableRowClassName"
|
|
@selection-change="handleSelectionChange"
|
|
row-key="userName"
|
|
>
|
|
<el-table-column
|
|
type="selection"
|
|
width="55"
|
|
:reserve-selection="true"
|
|
/>
|
|
<el-table-column
|
|
type="index"
|
|
label="序号"
|
|
width="70"
|
|
align="center"
|
|
/>
|
|
<el-table-column
|
|
label="单位名称"
|
|
align="center"
|
|
key="nickName"
|
|
prop="nickName"
|
|
>
|
|
<template #default="scope">{{ scope.row.nickName }}</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="单位类型"
|
|
align="center"
|
|
key="dwlx"
|
|
prop="dwlx"
|
|
>
|
|
<template #default="scope">
|
|
<dict-tag
|
|
:options="dict.type.dwlx"
|
|
:value="scope.row.dwlx"
|
|
/>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="统一社会信用代码"
|
|
align="center"
|
|
key="userName"
|
|
prop="userName"
|
|
>
|
|
<template #default="scope">{{ scope.row.userName }}</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="所属区域"
|
|
align="center"
|
|
key="ssqycounty"
|
|
prop="ssqycounty"
|
|
>
|
|
<template #default="scope">{{ getSsqu(scope.row) }}</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="所属行业"
|
|
align="center"
|
|
key="sshy"
|
|
prop="sshy"
|
|
>
|
|
<template #default="scope">
|
|
<dict-tag
|
|
:options="dict.type.sshy"
|
|
:value="scope.row.sshy"
|
|
/>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="单位地址"
|
|
align="center"
|
|
key="dwxxdz"
|
|
prop="dwxxdz"
|
|
>
|
|
<template #default="scope">{{ scope.row.dwxxdz }}</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</section>
|
|
<my-pagination
|
|
id="L-pagination"
|
|
:total="total"
|
|
:page="queryParams.current"
|
|
:limit="queryParams.size"
|
|
@pagination="getPagination"
|
|
:current-page.sync="queryParams.current"
|
|
></my-pagination>
|
|
</main>
|
|
<div class="bottomclass">
|
|
<el-button
|
|
size="default"
|
|
@click="resetCancel"
|
|
>取消</el-button
|
|
>
|
|
<el-button
|
|
type="primary"
|
|
size="default"
|
|
@click="resetConfirm"
|
|
>确定</el-button
|
|
>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref, onMounted, onUnmounted } from "vue";
|
|
import { listUnitdw } from "@/api/auditPagesApi/index";
|
|
import { getToken } from "@/utils/auth";
|
|
|
|
// 定义props和emits
|
|
const emit = defineEmits(["liebiaoClose", "adddanweilist"]);
|
|
|
|
// 响应式数据
|
|
const loading = ref(true);
|
|
const userList = ref([]);
|
|
const total = ref(0);
|
|
const tabHeader = ref(undefined);
|
|
const tabclicklist = ref([]);
|
|
const queryForm = ref(null);
|
|
const multipleTable = ref(null);
|
|
|
|
const queryParams = ref({
|
|
current: 1,
|
|
size: 10,
|
|
userName: undefined,
|
|
nickName: undefined,
|
|
dwlx: undefined,
|
|
type: "0",
|
|
});
|
|
|
|
// 字典数据
|
|
const dict = {
|
|
type: {
|
|
dwlx: [],
|
|
sshy: [],
|
|
},
|
|
};
|
|
|
|
// 方法
|
|
const getSsqu = (row) => {
|
|
if (row.ssqyprovince && row.ssqycity && row.ssqycounty) {
|
|
return row.ssqyprovince + "/" + row.ssqycity + "/" + row.ssqycounty;
|
|
} else if (row.ssqyprovince && row.ssqycity) {
|
|
return row.ssqyprovince + "/" + row.ssqycity;
|
|
} else if (row.ssqyprovince) {
|
|
return row.ssqyprovince;
|
|
}
|
|
return "";
|
|
};
|
|
|
|
const resetCancel = () => {
|
|
emit("liebiaoClose");
|
|
toggleSelection();
|
|
emit("adddanweilist", []);
|
|
};
|
|
|
|
const resetConfirm = () => {
|
|
emit("adddanweilist", tabclicklist.value);
|
|
emit("liebiaoClose");
|
|
toggleSelection();
|
|
};
|
|
|
|
const toggleSelection = (rows) => {
|
|
if (rows) {
|
|
rows.forEach((row) => {
|
|
multipleTable.value.toggleRowSelection(row);
|
|
});
|
|
} else {
|
|
multipleTable.value.clearSelection();
|
|
}
|
|
};
|
|
|
|
const handleSelectionChange = (val) => {
|
|
tabclicklist.value = val || [];
|
|
};
|
|
|
|
const tableRowClassName = ({ rowIndex }) => {
|
|
return rowIndex % 2 !== 0 ? "evenNumber-row" : "";
|
|
};
|
|
|
|
const getType = (type) => {
|
|
queryParams.value.type = type.join(",");
|
|
getList();
|
|
};
|
|
|
|
const dakai = (val) => {
|
|
console.log(val);
|
|
toggleSelection(val);
|
|
};
|
|
// 暴露 getType 给父组件
|
|
defineExpose({
|
|
getType,
|
|
dakai,
|
|
});
|
|
|
|
const getList = async () => {
|
|
loading.value = true;
|
|
queryParams.value.isSearch = 1;
|
|
try {
|
|
const response = await listUnitdw(queryParams.value);
|
|
userList.value = response.data.records;
|
|
total.value = response.data.total;
|
|
} finally {
|
|
loading.value = false;
|
|
}
|
|
};
|
|
|
|
const getPagination = (pages) => {
|
|
queryParams.value.current = pages.page;
|
|
queryParams.value.size = pages.limit;
|
|
getList();
|
|
};
|
|
|
|
const handleQuery = () => {
|
|
queryParams.value.current = 1;
|
|
getList();
|
|
};
|
|
|
|
const resetQuery = () => {
|
|
queryForm.value.resetFields();
|
|
toggleSelection();
|
|
handleQuery();
|
|
};
|
|
|
|
const cancalDebounce = () => {
|
|
const element = document.getElementById("L-size-main");
|
|
const header = document.getElementById("L-header");
|
|
const pagination = document.getElementById("L-pagination");
|
|
const elementHeight = element.offsetHeight;
|
|
const headerHeight = header.offsetHeight;
|
|
const paginationtHeight = pagination.offsetHeight;
|
|
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 120;
|
|
};
|
|
|
|
// 生命周期钩子
|
|
onMounted(() => {
|
|
getList();
|
|
cancalDebounce();
|
|
window.addEventListener("resize", cancalDebounce);
|
|
});
|
|
|
|
onUnmounted(() => {
|
|
window.removeEventListener("resize", cancalDebounce);
|
|
});
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
:deep(.danweiList) {
|
|
padding: 0 20px;
|
|
}
|
|
|
|
:deep(.content-search) {
|
|
padding-top: 10px;
|
|
}
|
|
|
|
.L-mainTow {
|
|
background-color: #ffffff !important;
|
|
}
|
|
|
|
:deep(.search-title) {
|
|
border: none !important;
|
|
}
|
|
</style>
|