Commit b19a9046 authored by tianhongyang's avatar tianhongyang

工具类 过滤参数

parent 771481f3
import request from '@/utils/request' import request from '@/utils/request';
// id解密 // id解密
export const idRemark = (data) => { export const idRemark = (data) => {
...@@ -6,29 +6,38 @@ export const idRemark = (data) => { ...@@ -6,29 +6,38 @@ export const idRemark = (data) => {
url: '/enterprise/remark', url: '/enterprise/remark',
method: 'post', method: 'post',
data: data data: data
}) });
} };
// 认领用户 // 认领用户
export const claim= function claim(param) { export const claim = function claim(param) {
return request({ return request({
url: '/customer/claim', url: '/customer/claim',
method: 'post', method: 'post',
data: param data: param
}) });
} };
// 历史客户认领 // 历史客户认领
export const historyClaim= function historyClaim(name) { export const historyClaim = function historyClaim(name) {
return request({ return request({
url: '/customer/historyClaim/'+name, url: '/customer/historyClaim/' + name,
method: 'Put', method: 'Put',
}) });
} };
//获取大司空open 插件访问token //获取大司空open 插件访问token
export function dskAccessToken() { export function dskAccessToken() {
return request({ return request({
url: '/system/config/dsk/accessToken', url: '/system/config/dsk/accessToken',
method: 'get', method: 'get',
}) });
} }
/**
* 获取地区
* @returns {Array<object>}
*/
export const getAreaListApi = () => request({
url: "/area/all",
method: "get"
});
import request from '@/utils/request'; import request from '@/utils/request';
/** /**
* 咨询机构合作台账 查询列表 以及 查询参数 * 咨询机构合作台账 查询项目列表 以及 查询参数
* @param {object} params * @param {object} params
* @returns * @returns
*/ */
...@@ -9,4 +9,26 @@ export const getConsultingOrgProjectListWithSearchApi = (params) => request({ ...@@ -9,4 +9,26 @@ export const getConsultingOrgProjectListWithSearchApi = (params) => request({
url: "/advisory/body/getProjectList", url: "/advisory/body/getProjectList",
method: "get", method: "get",
params params
});
/**
* 咨询机构合作台账 查询企业列表 以及 查询参数
* @param {object} params
* @returns
*/
export const getConsultingOrgEenterpriseListWithSearchApi = (params) => request({
url: "/advisory/body/getAdvisoryBodyList",
method: "get",
params
});
/**
* 咨询机构合作台账 查询企业列表 以及 查询参数
* @param {object} params
* @returns
*/
export const getConsultingOrgEenterpriseDetailWithSearchApi = (params) => request({
url: "/advisory/body/getCooperateProjectDetailList",
method: "get",
params
}); });
\ No newline at end of file
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
<div class="table-item"> <div class="table-item">
<el-table v-if="tableDataTotal>0" class="fixed-table" :class="headerFixed ? 'headerFixed':''" v-loading="tableLoading" :data="tableData" <el-table v-if="tableDataTotal>0" class="fixed-table" :class="headerFixed ? 'headerFixed':''" v-loading="tableLoading" :data="tableData"
element-loading-text="Loading" ref="tableRef" border fit highlight-current-row :default-sort="defaultSort?defaultSort:{}" element-loading-text="Loading" ref="tableRef" border fit highlight-current-row :default-sort="defaultSort?defaultSort:{}"
@sort-change="sortChange" @selection-change="selectionChange" :cell-class-name="cellClassName" :cell-style="cellStyle" :height="height" @sort-change="sortChange" @selection-change="selectionChange" :cell-class-name="cellClassName" :cell-style="cellStyle"
:maxHeight="maxHeight" v-sticky-header="stickyHeader"> :row-class-name="rowClassName" :row-style="rowStyle" :height="height" :maxHeight="maxHeight" v-sticky-header="stickyHeader">
<el-table-column type="selection" :width="needSelection.width ? needSelection.width : '38px'" v-if="needSelection.flag" <el-table-column type="selection" :width="needSelection.width ? needSelection.width : '38px'" v-if="needSelection.flag"
:fixed="needSelection.fixed" :align="needSelection.align" :show-overflow-tooltip="needSelection.showOverflowTooltip"> :fixed="needSelection.fixed" :align="needSelection.align" :show-overflow-tooltip="needSelection.showOverflowTooltip">
</el-table-column> </el-table-column>
...@@ -98,11 +98,19 @@ export default { ...@@ -98,11 +98,19 @@ export default {
}, },
cellClassName: { cellClassName: {
type: Function, type: Function,
default: () => () => { } default: () => { }
}, },
cellStyle: { cellStyle: {
type: Function, type: Function,
default: () => () => { } default: () => { }
},
rowClassName: {
type: Function,
default: () => { }
},
rowStyle: {
type: Function,
default: () => { }
}, },
// 吸顶偏移量 // 吸顶偏移量
stickyHeader: { stickyHeader: {
...@@ -208,7 +216,7 @@ export default { ...@@ -208,7 +216,7 @@ export default {
.table-list-com-ins { .table-list-com-ins {
::v-deep .table-item { ::v-deep .table-item {
.no-line-feed { .no-line-feed {
display: inline-block; display: block;
color: #0081ff; color: #0081ff;
cursor: pointer; cursor: pointer;
width: 100%; width: 100%;
...@@ -243,21 +251,16 @@ export default { ...@@ -243,21 +251,16 @@ export default {
} }
.el-table { .el-table {
.cell { /* .cell {
height: 21px; display: flex;
&.el-tooltip { align-items: center;
height: 21px; } */
}
}
} }
} }
::v-deep .el-table__body tr.current-row > td.el-table__cell { ::v-deep .el-table__body tr.current-row > td.el-table__cell {
background-color: #ffffff; background-color: #ffffff;
} }
/*::v-deep .el-table__fixed{
height: calc(100% - 16px) !important;
}*/
::v-deep .el-table__row { ::v-deep .el-table__row {
&:nth-child(even) { &:nth-child(even) {
...@@ -277,7 +280,7 @@ export default { ...@@ -277,7 +280,7 @@ export default {
} }
} }
} }
::v-deep .el-table th.el-table__cell.is-leaf, ::v-deep .el-table th.el-table__cell.is-leaf,
::v-deep .el-table td.el-table__cell { ::v-deep .el-table td.el-table__cell {
border-bottom: 1px solid #e6eaf1; border-bottom: 1px solid #e6eaf1;
......
...@@ -10,7 +10,7 @@ NProgress.configure({ showSpinner: false }); ...@@ -10,7 +10,7 @@ NProgress.configure({ showSpinner: false });
const whiteList = ['/login', '/register']; const whiteList = ['/login', '/register'];
router.beforeEach((to, from, next) => { router.beforeEach(async (to, from, next) => {
NProgress.start(); NProgress.start();
if (getToken()) { if (getToken()) {
// tab页签title // tab页签title
...@@ -26,20 +26,21 @@ router.beforeEach((to, from, next) => { ...@@ -26,20 +26,21 @@ router.beforeEach((to, from, next) => {
if (store.getters.roles.length === 0) { if (store.getters.roles.length === 0) {
isRelogin.show = true; isRelogin.show = true;
// 判断当前用户是否已拉取完user_info信息 // 判断当前用户是否已拉取完user_info信息
store.dispatch('GetInfo').then(() => { try {
await store.dispatch('GetInfo');
// 拉取地区信息
await store.dispatch("getArea");
isRelogin.show = false; isRelogin.show = false;
store.dispatch('GenerateRoutes').then(accessRoutes => { const accessRoutes = await store.dispatch('GenerateRoutes');
// 根据roles权限生成可访问的路由表 // 根据roles权限生成可访问的路由表
router.addRoutes(accessRoutes); // 动态添加可访问路由表 router.addRoutes(accessRoutes); // 动态添加可访问路由表
next({ ...to, replace: true }); // hack方法 确保addRoutes已完成 next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
}); } catch (error) {
}).catch(err => { await store.dispatch('LogOut');
store.dispatch('LogOut').then(() => { Message.error(error);
Message.error(err); sessionStorage.removeItem('views');
sessionStorage.removeItem('views'); next({ path: '/' });
next({ path: '/' }); }
});
});
} else { } else {
next(); next();
} }
......
import { login, logout, getInfo } from '@/api/login'; import { login, logout, getInfo } from '@/api/login';
import { getAreaListApi } from "@/api/common";
import { getToken, setToken, removeToken, setTenantid } from '@/utils/auth'; import { getToken, setToken, removeToken, setTenantid } from '@/utils/auth';
const user = { const user = {
...@@ -10,6 +11,7 @@ const user = { ...@@ -10,6 +11,7 @@ const user = {
permissions: [], permissions: [],
userId: '', userId: '',
phonenumber: '', phonenumber: '',
areaArrayList: []
}, },
mutations: { mutations: {
...@@ -33,6 +35,9 @@ const user = { ...@@ -33,6 +35,9 @@ const user = {
}, },
SET_USERPHONE: (state, phonenumber) => { SET_USERPHONE: (state, phonenumber) => {
state.phonenumber = phonenumber; state.phonenumber = phonenumber;
},
SET_AREA_LIST(state, payload) {
state.areaArrayList = payload ? payload : [];
} }
}, },
...@@ -78,6 +83,18 @@ const user = { ...@@ -78,6 +83,18 @@ const user = {
}); });
}, },
// 获取地区信息
async getArea({ commit, state }) {
try {
const areaList = await getAreaListApi();
if (areaList.code == 200) {
commit("SET_AREA_LIST", areaList.data);
return areaList;
}
return [];
} catch (error) { }
},
// 退出系统 // 退出系统
LogOut({ commit, state }) { LogOut({ commit, state }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
......
...@@ -602,7 +602,7 @@ export function queryConditionFiltering(params) { ...@@ -602,7 +602,7 @@ export function queryConditionFiltering(params) {
const key = keys[index]; const key = keys[index];
if (_temp.hasOwnProperty(key)) { if (_temp.hasOwnProperty(key)) {
// 数组内部不处理 外部处理 // 数组内部不处理 外部处理
if (_temp[key] instanceof Array) { if (_temp[key] instanceof Array && _temp[key]?.length) {
result[key] = _temp[key]; result[key] = _temp[key];
continue; continue;
} }
......
<template>
<div class="details-of-cooperation default-layout-container">
<div class="default-layout-container-inner">
<div class="consulting-search-form">
<!-- 表单 -->
<el-form :model="form" ref="form" :rules="rules" label-width="84px" class="el-search-form-public">
<div class="each-line">
<el-form-item label="项目地区">
<el-input v-model="form.provinceName" placeholder="请输入咨询机构名称" clearable></el-input>
</el-form-item>
<el-form-item label="项目承接类型">
<el-select v-model="form.isinvestproject" placeholder="请选择" clearable>
<el-option v-for="item in projectTypeOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="工程类型大类">
<el-select v-model="form.projectType1" placeholder="请选择" clearable>
<el-option v-for="item in projectTypeOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
<div class="each-line special-line">
<el-form-item label="工程类别明细">
<el-select v-model="form.projectType" placeholder="请选择" clearable>
<el-option v-for="item in engineeringCategoryDetailOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="关键字搜索">
<el-input v-model="form.projectName" placeholder="请输入" clearable></el-input>
</el-form-item>
<!-- 查询重置 -->
<div class="consulting-search-form-btn">
<el-button type="primary" @click="searchForm(true)" class="search-btn">查询</el-button>
<el-button @click="resetForm" class="reset-btn">重置</el-button>
</div>
</div>
</el-form>
</div>
<!-- 列表容器 -->
<div class="search-result-list-container">
<div class="search-result-head-container">
<div class="result-head-left">
<div class="result-list-total">{{total}}</div>
</div>
<div class="result-head-right"></div>
</div>
<skeleton v-if="tableLoading"></skeleton>
<!-- table 列表 -->
<table-list-com ref="tableContainer" :tableData="tableDataList" :formColum="formColum" :tableDataTotal="total" :queryParams="queryParams"
v-else-if="!tableLoading" :height="'100%'" @handle-current-change="handleCurrentChange">
<!-- 项目列表 -->
<template slot="projectName" slot-scope="{data,row}">
<div v-if="row.projectName" class="no-line-feed ">{{row.projectName}}</div>
<span v-else>-</span>
</template>
</table-list-com>
</div>
</div>
</div>
</template>
<script>
import TableListCom from "@/components/TableListCom";
import Skeleton from "@/components/Skeleton";
import { getConsultingOrgEenterpriseDetailWithSearchApi } from "@/api/consultingOrgManagement";
import { queryConditionFiltering } from "@/utils";
import { v4 } from 'uuid';
export default {
name: "detailsOfCooperation",
components: {
TableListCom,
Skeleton
},
data() {
return {
form: {
// 项目地区
provinceName: "",
// 承接项目类型
isinvestproject: "",
// 工程类型大类
projectType1: "",
// 工程类别明细
projectType: "",
// 项目关键字搜索
projectName: ""
},
tableLoading: false,
fixedPropsKey: ["staticSerialNumber", "advisoryBodyName"],
// 列表表头
formColum: [
{ label: '序号', prop: "staticSerialNumber", type: "index", lock: true, fixed: false, uid: v4() },
{ label: '咨询机构名称', prop: 'advisoryBodyName', width: "198px", lock: true, fixed: false, slot: true, uid: v4(), showOverflowTooltip: true },
{ label: '最近一次合作时间', prop: 'lastCooperateTime', width: "201px", uid: v4() },
{ label: '经营状态', prop: 'businessStatus', width: "74px", uid: v4() },
{ label: '法定代表人', prop: 'corporatePerson', width: "86px", uid: v4() },
{ label: '注册资本', prop: 'regCapital', width: "107px", uid: v4() },
{ label: '注册地区', prop: 'regArea', width: "149px", uid: v4() },
{ label: '成立日期', prop: 'registeredDate', width: "97px", uid: v4() },
{ label: '经营范围', prop: 'businessScope', width: "417px", uid: v4() },
{ label: '合作项目数量', prop: 'cooperateProjectCount', width: "98px", uid: v4(), slot: true },
],
queryParams: {
pageSize: 20,
pageNum: 1,
// 咨询机构ID
advisoryBodyId: "",
},
tableDataList: [],
total: 0,
rules: {
},
projectTypeOptions: [],
engineeringCategoryOptions: [
{
value: "1",
label: "测试1"
},
{
value: "2",
label: "测试2"
}
],
engineeringCategoryDetailOptions: [
{
value: "1",
label: "测试1"
},
{
value: "2",
label: "测试2"
}
]
};
},
//可访问data属性
created() {
this.init();
},
beforeDestroy() {
this.removeScrollXListen();
},
//计算集
computed: {
},
//方法集
methods: {
async init() {
try {
// if (!this.$routes?.params?.advisoryBodyId) return this.$message.error("缺少咨询机构Id");
// this.queryParams.advisoryBodyId = !this.$routes?.params?.advisoryBodyId;
await this.getList(this.queryParams);
} catch (error) {
}
},
// 创建最终查询条件
mergeCondition() {
const _queryParams = JSON.parse(JSON.stringify(this.queryParams));
// 过滤条件
const _form = queryConditionFiltering(this.form);
// 处理时间
if (_form?.cooperationTime?.length) {
_form.projectStartTime = _form?.projectCreateTime[0];
_form.projectEndTime = _form?.projectCreateTime[1];
}
delete _form.cooperationTime;
return { ..._queryParams, ..._form };
},
searchForm(defaultPage = false) {
// 查询按钮从第一页查询
if (defaultPage) {
this.queryParams.pageNum = 1;
this.queryParams.pageSize = 20;
}
this.getList(this.mergeCondition());
},
resetForm() {
const defaultValue = this.$options.data.call(this);
this.form = defaultValue.form;
this.queryParams = defaultValue.queryParams;
this.getList(this.queryParams);
},
async getList(params) {
try {
this.tableLoading = true;
const result = await getConsultingOrgEenterpriseDetailWithSearchApi(params);
if (result.code == 200) {
this.tableDataList = result.rows ? result.rows : [];
this.total = result.total ? result.total : 0;
} else {
this.$message.error(result.msg);
}
console.log(result);
} catch (error) {
} finally {
this.tableLoading = false;
await this.$nextTick();
this.total ? this.$refs.tableContainer.$refs.tableRef.doLayout() : null;
this.listenScrollX();
}
},
// 表头设置变化
async settingChange(use) {
try {
this.formColum = use;
} catch (error) {
}
},
handleCurrentChange(page) {
this.queryParams.pageNum = page;
this.searchForm();
},
async listenScrollX() {
try {
await this.$nextTick();
const scrollContainer = document.querySelector(".cooperation-desk-account-enterprise .el-table__body-wrapper");
if (scrollContainer) {
scrollContainer.removeEventListener("scroll", this.listenHandler, false);
scrollContainer.addEventListener("scroll", this.listenHandler, false);
}
} catch (error) {
}
},
removeScrollXListen() {
const scrollContainer = document.querySelector(".cooperation-desk-account-enterprise .el-table__body-wrapper");
if (scrollContainer) {
scrollContainer.removeEventListener("scroll", this.listenHandler, false);
}
},
listenHandler(e) {
const { target } = e;
if (target) {
const flag = target.scrollLeft > 0 ? true : false;
this.formColum.forEach(item => this.fixedPropsKey.includes(item.prop) ? item.fixed = flag : null);
}
}
},
}
</script>
<style lang="scss" scoped>
.details-of-cooperation {
.default-layout-container-inner {
.consulting-search-form {
background: #fff;
padding: 16px;
border-radius: 4px;
box-sizing: border-box;
@import "@/assets/styles/el-search-form-public.scss";
.special-line {
display: flex;
align-items: center;
.el-form-item {
margin-bottom: 0px;
}
}
.consulting-search-form-btn {
width: 364px;
display: inline-flex;
align-items: center;
justify-content: flex-end;
.el-button {
height: 32px;
line-height: 32px;
text-align: center;
padding: 0px 16px;
box-sizing: border-box;
border-radius: 4px;
&.search-btn {
background: #0081ff;
border-color: #0081ff;
}
&.reset-btn {
border: 1px solid #dcdfe6;
color: rgba(35, 35, 35, 0.8);
background: #fff;
margin-left: 12px;
}
}
}
}
.search-result-list-container {
margin-top: 16px;
background: #fff;
border-radius: 4px;
padding: 16px;
box-sizing: border-box;
height: calc(100% - 128px);
@import "@/assets/styles/search-result-list-public.scss";
::v-deep .table-list-com-ins {
height: calc(100% - 80px);
margin-top: 16px;
.pagination-box {
padding: 0px;
margin-top: 16px;
}
}
}
}
}
</style>
<template> <template>
<div class="cooperation-desk-account-enterprise"> <div class="cooperation-desk-account-enterprise">
<div class="consulting-search-form">
<el-form :model="form" ref="form" :rules="rules" label-width="84px" class="el-search-form-public">
<div class="each-line">
<el-form-item label="咨询机构名称">
<el-input v-model="form.advisoryBodyName" placeholder="请输入咨询机构名称" clearable></el-input>
</el-form-item>
<el-form-item label="最近合作时间">
<el-date-picker v-model="form.cooperationTime" type="daterange" range-separator="至" start-placeholder="年/月/日" end-placeholder="年/月/日"
format="yyyy/MM/dd" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="经营范围">
<el-input v-model="form.businessScope" placeholder="请输入经营范围" clearable></el-input>
</el-form-item>
</div>
</el-form>
<!-- 查询重置 -->
<div class="consulting-search-form-btn">
<el-button type="primary" @click="searchForm(true)" class="search-btn">查询</el-button>
<el-button @click="resetForm" class="reset-btn">重置</el-button>
</div>
</div> </div>
<!-- 列表容器 -->
<div class="search-result-list-container">
<div class="search-result-head-container">
<div class="result-head-left">
<div class="result-list-total">{{total}}</div>
</div>
<div class="result-head-right"></div>
</div>
<skeleton v-if="tableLoading"></skeleton>
<!-- table 列表 -->
<table-list-com ref="tableContainer" :tableData="tableDataList" :formColum="formColum" :tableDataTotal="total" :queryParams="queryParams"
v-else-if="!tableLoading" :height="'100%'" @handle-current-change="handleCurrentChange">
<!-- 咨询机构名称 -->
<template slot="advisoryBodyName" slot-scope="{data,row}">
<div v-if="row.advisoryBodyName" class="no-line-feed ">{{row.advisoryBodyName}}</div>
<span v-else>-</span>
</template>
<!-- 合作项目数量 -->
<template slot="cooperateProjectCount" slot-scope="{data,row}">
<div v-if="row.cooperateProjectCount" class="no-line-feed ">{{row.cooperateProjectCount}}</div>
<span v-else>-</span>
</template>
</table-list-com>
</div>
</div>
</template> </template>
<script> <script>
import TableListCom from "@/components/TableListCom";
import Skeleton from "@/components/Skeleton";
import { getConsultingOrgEenterpriseListWithSearchApi } from "@/api/consultingOrgManagement";
import { queryConditionFiltering } from "@/utils";
import { v4 } from 'uuid';
export default { export default {
name : "cooperationDeskAccountEnterprise", name: "cooperationDeskAccountEnterprise",
data() { components: {
return { TableListCom,
Skeleton
},
data() {
return {
form: {
// 咨询机构名称
advisoryBodyName: "",
// 最近合作时间
cooperationTime: [],
// 合作开始时间
minLastCooperateDate: "",
// 合作结束时间
maxLastCooperateDate: "",
// 经营范围
businessScope: "",
},
tableLoading: false,
fixedPropsKey: ["staticSerialNumber", "advisoryBodyName"],
// 列表表头
formColum: [
{ label: '序号', prop: "staticSerialNumber", type: "index", lock: true, fixed: false, uid: v4() },
{ label: '咨询机构名称', prop: 'advisoryBodyName', width: "198px", lock: true, fixed: false, slot: true, uid: v4(), showOverflowTooltip: true },
{ label: '最近一次合作时间', prop: 'lastCooperateTime', width: "201px", uid: v4() },
{ label: '经营状态', prop: 'businessStatus', width: "74px", uid: v4() },
{ label: '法定代表人', prop: 'corporatePerson', width: "86px", uid: v4() },
{ label: '注册资本', prop: 'regCapital', width: "107px", uid: v4() },
{ label: '注册地区', prop: 'regArea', width: "149px", uid: v4() },
{ label: '成立日期', prop: 'registeredDate', width: "97px", uid: v4() },
{ label: '经营范围', prop: 'businessScope', width: "417px", uid: v4() },
{ label: '合作项目数量', prop: 'cooperateProjectCount', width: "98px", uid: v4(), slot: true },
],
queryParams: {
pageSize: 50,
pageNum: 1
},
tableDataList: [],
total: 0,
rules: {
},
};
},
//可访问data属性
created() {
this.init();
},
beforeDestroy() {
this.removeScrollXListen();
},
//计算集
computed: {
},
//方法集
methods: {
async init() {
try {
await this.getList(this.queryParams);
} catch (error) {
}
},
// 创建最终查询条件
mergeCondition() {
const _queryParams = JSON.parse(JSON.stringify(this.queryParams));
// 过滤条件
const _form = queryConditionFiltering(this.form);
// 处理时间
if (_form?.cooperationTime?.length) {
_form.projectStartTime = _form?.projectCreateTime[0];
_form.projectEndTime = _form?.projectCreateTime[1];
} }
},
//可访问data属性
created(){
}, delete _form.cooperationTime;
//计算集
computed:{ return { ..._queryParams, ..._form };
},
searchForm(defaultPage = false) {
// 查询按钮从第一页查询
if (defaultPage) {
this.queryParams.pageNum = 1;
this.queryParams.pageSize = 50;
}
this.getList(this.mergeCondition());
},
resetForm() {
const defaultValue = this.$options.data.call(this);
this.form = defaultValue.form;
this.queryParams = defaultValue.queryParams;
this.getList(this.queryParams);
},
async getList(params) {
try {
this.tableLoading = true;
const result = await getConsultingOrgEenterpriseListWithSearchApi(params);
if (result.code == 200) {
this.tableDataList = result.rows ? result.rows : [];
this.total = result.total ? result.total : 0;
} else {
this.$message.error(result.msg);
}
console.log(result);
} catch (error) {
}, } finally {
//方法集 this.tableLoading = false;
methods:{ await this.$nextTick();
this.total ? this.$refs.tableContainer.$refs.tableRef.doLayout() : null;
this.listenScrollX();
}
},
// 表头设置变化
async settingChange(use) {
try {
this.formColum = use;
} catch (error) {
}
},
handleCurrentChange(page) {
this.queryParams.pageNum = page;
this.searchForm();
},
async listenScrollX() {
try {
await this.$nextTick();
const scrollContainer = document.querySelector(".cooperation-desk-account-enterprise .el-table__body-wrapper");
if (scrollContainer) {
scrollContainer.removeEventListener("scroll", this.listenHandler, false);
scrollContainer.addEventListener("scroll", this.listenHandler, false);
}
} catch (error) {
}, }
},
removeScrollXListen() {
const scrollContainer = document.querySelector(".cooperation-desk-account-enterprise .el-table__body-wrapper");
if (scrollContainer) {
scrollContainer.removeEventListener("scroll", this.listenHandler, false);
}
},
listenHandler(e) {
const { target } = e;
if (target) {
const flag = target.scrollLeft > 0 ? true : false;
this.formColum.forEach(item => this.fixedPropsKey.includes(item.prop) ? item.fixed = flag : null);
}
}
},
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.cooperation-desk-account-enterprise {
.consulting-search-form {
background: #fff;
padding: 16px;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
box-sizing: border-box;
@import "@/assets/styles/el-search-form-public.scss";
.consulting-search-form-btn {
padding-left: 96px;
box-sizing: border-box;
.el-button {
height: 32px;
line-height: 32px;
text-align: center;
padding: 0px 16px;
box-sizing: border-box;
border-radius: 4px;
&.search-btn {
background: #0081ff;
border-color: #0081ff;
}
&.reset-btn {
border: 1px solid #dcdfe6;
color: rgba(35, 35, 35, 0.8);
background: #fff;
margin-left: 12px;
}
}
}
}
.search-result-list-container {
margin-top: 16px;
background: #fff;
border-radius: 4px;
padding: 16px;
box-sizing: border-box;
height: calc(100% - 128px);
@import "@/assets/styles/search-result-list-public.scss";
::v-deep .table-list-com-ins {
height: calc(100% - 80px);
margin-top: 16px;
.pagination-box {
padding: 0px;
margin-top: 16px;
}
}
}
}
</style> </style>
...@@ -7,22 +7,22 @@ ...@@ -7,22 +7,22 @@
<el-input v-model="form.projectName" placeholder="请输入项目名称" clearable></el-input> <el-input v-model="form.projectName" placeholder="请输入项目名称" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="咨询机构"> <el-form-item label="咨询机构">
<el-input v-model="form.consultingAgency" placeholder="请输入咨询机构名称" clearable></el-input> <el-input v-model="form.advisoryBodyName" placeholder="请输入咨询机构名称" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="业主单位"> <el-form-item label="业主单位">
<el-input v-model="form.ownerName" placeholder="请输入业主名称" clearable></el-input> <el-input v-model="form.ownerUnit" placeholder="请输入业主名称" clearable></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="each-line"> <div class="each-line">
<el-form-item label="承接项目单位"> <el-form-item label="承接项目单位">
<el-input v-model="form.undertakingUnit" placeholder="请输入承接项目单位名称" clearable></el-input> <el-input v-model="form.undertakeProjectUnit" placeholder="请输入承接项目单位名称" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="项目创建时间"> <el-form-item label="项目创建时间">
<el-date-picker v-model="form.projectCreateTime" type="daterange" range-separator="至" start-placeholder="年/月/日" end-placeholder="年/月/日" <el-date-picker v-model="form.projectCreateTime" type="daterange" range-separator="至" start-placeholder="年/月/日" end-placeholder="年/月/日"
format="yyyy/MM/dd" value-format="yyyy-MM-dd"></el-date-picker> format="yyyy/MM/dd" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="项目承接类型"> <el-form-item label="项目承接类型">
<el-select v-model="form.prjectType" placeholder="请选择" clearable> <el-select v-model="form.projectUndertakeType" placeholder="请选择" clearable>
<el-option v-for="item in projectTypeOptions" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in projectTypeOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
...@@ -30,13 +30,13 @@ ...@@ -30,13 +30,13 @@
</div> </div>
<div class="each-line" style="padding-top:16px;border-top:1px solid #EEEEEE;box-sizing:border-box"> <div class="each-line" style="padding-top:16px;border-top:1px solid #EEEEEE;box-sizing:border-box">
<el-form-item label="工程类型大类"> <el-form-item label="工程类型大类">
<el-select v-model="form.engineeringCategory" placeholder="请选择" clearable> <el-select v-model="form.engineeringFoundationCategory" placeholder="请选择" clearable>
<el-option v-for="item in engineeringCategoryOptions" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in engineeringCategoryOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="工程类别明细"> <el-form-item label="工程类别明细">
<el-select v-model="form.engineeringCategoryDeatil" placeholder="请选择" clearable> <el-select v-model="form.engineeringCategoryDetail" placeholder="请选择" clearable>
<el-option v-for="item in engineeringCategoryDetailOptions" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in engineeringCategoryDetailOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
</div> </div>
</div> </div>
<!-- 列表容器 --> <!-- 列表容器 -->
<div class="search-result-list-container"> <div class="search-result-list-container">
<div class="search-result-head-container"> <div class="search-result-head-container">
...@@ -73,22 +74,22 @@ ...@@ -73,22 +74,22 @@
v-else-if="!tableLoading" :height="'100%'" @handle-current-change="handleCurrentChange"> v-else-if="!tableLoading" :height="'100%'" @handle-current-change="handleCurrentChange">
<!-- 项目列表 --> <!-- 项目列表 -->
<template slot="projectName" slot-scope="{data,row}"> <template slot="projectName" slot-scope="{data,row}">
<span v-if="row.projectName" class="no-line-feed ">{{row.projectName}}</span> <div v-if="row.projectName" class="no-line-feed ">{{row.projectName}}</div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
<!-- 业主单位 --> <!-- 业主单位 -->
<template slot="ownerName" slot-scope="{data,row}"> <template slot="ownerName" slot-scope="{data,row}">
<span v-if="row.ownerName" class="no-line-feed ">{{row.ownerName}}</span> <div v-if="row.ownerName" class="no-line-feed ">{{row.ownerName}}</div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
<!-- 项目承接单位 --> <!-- 项目承接单位 -->
<template slot="contractOrgName" slot-scope="{data,row}"> <template slot="contractOrgName" slot-scope="{data,row}">
<span v-if="row.contractOrgName" class="no-line-feed ">{{row.contractOrgName}}</span> <div v-if="row.contractOrgName" class="no-line-feed ">{{row.contractOrgName}}</div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
<!-- 咨询机构名称 --> <!-- 咨询机构名称 -->
<template slot="advisoryBodyName" slot-scope="{data,row}"> <template slot="advisoryBodyName" slot-scope="{data,row}">
<span v-if="row.advisoryBodyName" class="no-line-feed ">{{row.advisoryBodyName}}</span> <div v-if="row.advisoryBodyName" class="no-line-feed ">{{row.advisoryBodyName}}</div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
</table-list-com> </table-list-com>
...@@ -159,7 +160,7 @@ export default { ...@@ -159,7 +160,7 @@ export default {
{ label: '业主单位', prop: 'ownerName', slot: true, uid: v4(), width: "185px", showOverflowTooltip: true }, { label: '业主单位', prop: 'ownerName', slot: true, uid: v4(), width: "185px", showOverflowTooltip: true },
{ label: '项目承接单位', prop: 'contractOrgName', width: "196px", slot: true, uid: v4() }, { label: '项目承接单位', prop: 'contractOrgName', width: "196px", slot: true, uid: v4() },
{ label: '咨询机构名称', prop: 'advisoryBodyName', width: "172px", slot: true, uid: v4() }, { label: '咨询机构名称', prop: 'advisoryBodyName', width: "172px", slot: true, uid: v4() },
{ label: '创建时间', prop: 'loadTime', width: "172px", uid: v4() }, { label: '创建时间', prop: 'contractSignDate', width: "172px", uid: v4() },
], ],
fixedPropsKey: ["staticSerialNumber", "projectName"], fixedPropsKey: ["staticSerialNumber", "projectName"],
queryParams: { queryParams: {
...@@ -293,7 +294,7 @@ export default { ...@@ -293,7 +294,7 @@ export default {
async listenScrollX() { async listenScrollX() {
try { try {
await this.$nextTick(); await this.$nextTick();
const scrollContainer = document.querySelector(".el-table__body-wrapper"); const scrollContainer = document.querySelector(".cooperation-desk-account-project .el-table__body-wrapper");
if (scrollContainer) { if (scrollContainer) {
scrollContainer.removeEventListener("scroll", this.listenHandler, false); scrollContainer.removeEventListener("scroll", this.listenHandler, false);
scrollContainer.addEventListener("scroll", this.listenHandler, false); scrollContainer.addEventListener("scroll", this.listenHandler, false);
...@@ -303,7 +304,7 @@ export default { ...@@ -303,7 +304,7 @@ export default {
} }
}, },
removeScrollXListen() { removeScrollXListen() {
const scrollContainer = document.querySelector(".el-table__body-wrapper"); const scrollContainer = document.querySelector(".cooperation-desk-account-project .el-table__body-wrapper");
if (scrollContainer) { if (scrollContainer) {
scrollContainer.removeEventListener("scroll", this.listenHandler, false); scrollContainer.removeEventListener("scroll", this.listenHandler, false);
} }
...@@ -314,7 +315,7 @@ export default { ...@@ -314,7 +315,7 @@ export default {
const flag = target.scrollLeft > 0 ? true : false; const flag = target.scrollLeft > 0 ? true : false;
this.formColum.forEach(item => this.fixedPropsKey.includes(item.prop) ? item.fixed = flag : null); this.formColum.forEach(item => this.fixedPropsKey.includes(item.prop) ? item.fixed = flag : null);
} }
} },
}, },
} }
</script> </script>
......
...@@ -61,6 +61,7 @@ export default { ...@@ -61,6 +61,7 @@ export default {
.default-layout-container-inner { .default-layout-container-inner {
.cooperation-desk-account-project, .cooperation-desk-account-project,
.cooperation-desk-account-enterprise { .cooperation-desk-account-enterprise {
overflow: hidden;
height: calc(100% - 48px); height: calc(100% - 48px);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment