Commit ae430bbf authored by liuChang's avatar liuChang

Merge branch 'V20231129-中建一局二公司' of 192.168.60.201:root/dsk-operate-sys into V20231129-中建一局二公司

parents 8fd66f59 14996ce3
...@@ -79,7 +79,7 @@ public class SysConfigController extends BaseController { ...@@ -79,7 +79,7 @@ public class SysConfigController extends BaseController {
* *
* @param configKey 参数Key * @param configKey 参数Key
*/ */
@GetMapping(value = "/{configKey}") @GetMapping(value = "/key/{configKey}")
public R<SysConfig> getConfig(@PathVariable String configKey) { public R<SysConfig> getConfig(@PathVariable String configKey) {
return R.ok(configService.selectConfigByKey(configKey)); return R.ok(configService.selectConfigByKey(configKey));
} }
......
package com.dsk.cscec.controller; package com.dsk.web.controller.system;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
...@@ -6,14 +6,11 @@ import com.dsk.common.core.controller.BaseController; ...@@ -6,14 +6,11 @@ import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.SysPush; import com.dsk.system.domain.SysPush;
import com.dsk.cscec.service.ISysPushService; import com.dsk.system.service.ISysPushService;
import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/** /**
* 系统推送(SysPush)表控制层 * 系统推送(SysPush)表控制层
* *
......
...@@ -82,5 +82,7 @@ public interface Constants { ...@@ -82,5 +82,7 @@ public interface Constants {
String CONTENT_TYPE_XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; String CONTENT_TYPE_XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
String STATUTORY_HOLIDAY_ADDR = "https://timor.tech/api/holiday/year/";
} }
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
select select
customer_key, customer_id, customer_code, customer_name, recommend_org, register_region, register_province, register_city, customer_class, primary_business, customer_key, customer_id, customer_code, customer_name, recommend_org, register_region, register_province, register_city, customer_class, primary_business,
paytax_type, tax_rate, customer_state, leader_name, labor_captain_phone, labor_captain_idcard, service_team_personnum, service_team_speciality, paytax_type, tax_rate, customer_state, leader_name, labor_captain_phone, labor_captain_idcard, service_team_personnum, service_team_speciality,
construct_job_scope, credential, register_capital, contact_person, contact_phone, approve_date2, credit_level construct_job_scope, credential, register_capital, contact_person, contact_phone, approve_date2, credit_level, group_specialty
from d_customer from d_customer
where recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475' where recommend_org_id = 'F17305B4EA4444CBAB12892C7B99E475'
<if test="bo.customerName != null and bo.customerName != '' "> and customer_name like concat('%',#{bo.customerName},'%')</if> <if test="bo.customerName != null and bo.customerName != '' "> and customer_name like concat('%',#{bo.customerName},'%')</if>
......
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/withoutRegion",
method: "get"
});
import request from '@/utils/request'; import request from '@/utils/request';
/** /**
* 咨询机构合作台账 查询列表 以及 查询参数 * 咨询机构合作台账 查询项目列表 以及 查询参数
* @param {object} params * @param {object} params
* @returns * @returns
*/ */
...@@ -10,3 +10,25 @@ export const getConsultingOrgProjectListWithSearchApi = (params) => request({ ...@@ -10,3 +10,25 @@ export const getConsultingOrgProjectListWithSearchApi = (params) => request({
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) {
......
...@@ -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) => {
......
...@@ -601,8 +601,8 @@ export function queryConditionFiltering(params) { ...@@ -601,8 +601,8 @@ export function queryConditionFiltering(params) {
for (let index = 0; index < len; index++) { for (let index = 0; index < len; index++) {
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;
} }
...@@ -612,7 +612,7 @@ export function queryConditionFiltering(params) { ...@@ -612,7 +612,7 @@ export function queryConditionFiltering(params) {
continue; continue;
} }
// 过滤无效值 0为有效数据 // 过滤无效值 0为有效数据
if (_temp[key] || _temp[key] == "0") { if (typeof _temp[key] != "object" && (_temp[key] || _temp[key] == "0")) {
result[key] = _temp[key]; result[key] = _temp[key];
continue; continue;
} }
......
<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 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> </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",
components: {
TableListCom,
Skeleton
},
data() { data() {
return { 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属性 //可访问data属性
created(){ created() {
this.init();
},
beforeDestroy() {
this.removeScrollXListen();
}, },
//计算集 //计算集
computed:{ computed: {
}, },
//方法集 //方法集
methods:{ 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];
}
delete _form.cooperationTime;
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;
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);
} }
} }
......
package com.dsk.cscec.domain; package com.dsk.system.domain;
import java.util.Date; import java.util.Date;
import java.io.Serializable; import java.io.Serializable;
...@@ -42,6 +42,6 @@ public class SysPush implements Serializable { ...@@ -42,6 +42,6 @@ public class SysPush implements Serializable {
private Date createTime; private Date createTime;
private String tanentId; private String tenantId;
} }
package com.dsk.system.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @Author lcl
* @Data 2023/12/14 15:23
*/
@Data
@TableName("sys_statutory_holiday")
public class SysStatutoryHoliday {
@TableId("id")
private Long id;
/**
* 是否假日 0:否 1:是
*/
private Integer isHoliday;
/**
* 名称
*/
private String name;
/**
* 日期
*/
private String date;
}
package com.dsk.cscec.mapper; package com.dsk.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.cscec.domain.SysPush; import com.dsk.system.domain.SysPush;
/** /**
* 系统推送(SysPush)表数据库访问层 * 系统推送(SysPush)表数据库访问层
......
package com.dsk.cscec.service; package com.dsk.system.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.SysPush; import com.dsk.system.domain.SysPush;
/** /**
* 系统推送(SysPush)表服务接口 * 系统推送(SysPush)表服务接口
......
package com.dsk.cscec.service.impl; package com.dsk.system.service.impl;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.exception.ServiceException; import com.dsk.system.mapper.SysPushMapper;
import com.dsk.cscec.mapper.SysPushMapper; import com.dsk.system.domain.SysPush;
import com.dsk.cscec.domain.SysPush; import com.dsk.system.service.ISysPushService;
import com.dsk.cscec.service.ISysPushService;
import jodd.bean.BeanException; import jodd.bean.BeanException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
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