Commit 52484d86 authored by huangjie's avatar huangjie

Merge branch 'V20230915' of http://192.168.60.201/root/dsk-operate-sys into V20230915

parents be71e07c ad3bdebc
package com.dsk;
import cn.dev33.satoken.secure.BCrypt;
import com.google.api.client.util.SecurityUtils;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
......
......@@ -2,6 +2,7 @@ package com.dsk.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaCheckRole;
import cn.dev33.satoken.annotation.SaMode;
import com.baomidou.lock.annotation.Lock4j;
import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit;
......@@ -42,7 +43,7 @@ public class SysTenantController extends BaseController {
/**
* 查询租户列表
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:list")
@GetMapping("/list")
public TableDataInfo<SysTenantVo> list(SysTenantBo bo, PageQuery pageQuery) {
......@@ -66,7 +67,7 @@ public class SysTenantController extends BaseController {
*
* @param id 主键
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:query")
@GetMapping("/{id}")
public R<SysTenantVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
......@@ -76,7 +77,7 @@ public class SysTenantController extends BaseController {
/**
* 新增租户
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:add")
@Log(title = "租户", businessType = BusinessType.INSERT)
@Lock4j
......@@ -92,7 +93,7 @@ public class SysTenantController extends BaseController {
/**
* 修改租户
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:edit")
@Log(title = "租户", businessType = BusinessType.UPDATE)
@RepeatSubmit()
......@@ -122,7 +123,7 @@ public class SysTenantController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:remove")
@Log(title = "租户", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
......@@ -145,7 +146,7 @@ public class SysTenantController extends BaseController {
/**
* 清除动态租户
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@GetMapping("/dynamic/clear")
public R<Void> dynamicClear() {
TenantHelper.clearDynamic();
......@@ -158,7 +159,7 @@ public class SysTenantController extends BaseController {
* @param tenantId 租户id
* @param packageId 套餐id
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenant:edit")
@Log(title = "租户", businessType = BusinessType.UPDATE)
@GetMapping("/syncTenantPackage")
......
......@@ -2,6 +2,7 @@ package com.dsk.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaCheckRole;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.annotation.Log;
import com.dsk.common.annotation.RepeatSubmit;
......@@ -46,7 +47,7 @@ public class SysTenantPackageController extends BaseController {
/**
* 查询租户套餐列表
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:list")
@GetMapping("/list")
public TableDataInfo<SysTenantPackageVo> list(SysTenantPackageBo bo, PageQuery pageQuery) {
......@@ -56,7 +57,7 @@ public class SysTenantPackageController extends BaseController {
/**
* 查询租户套餐下拉选列表
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:list")
@GetMapping("/selectList")
public R<List<SysTenantPackageSelectVo>> selectList() {
......@@ -80,7 +81,7 @@ public class SysTenantPackageController extends BaseController {
*
* @param packageId 主键
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:query")
@GetMapping("/{packageId}")
public R<SysTenantPackageVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long packageId) {
......@@ -90,7 +91,7 @@ public class SysTenantPackageController extends BaseController {
/**
* 新增租户套餐
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:add")
@Log(title = "租户套餐", businessType = BusinessType.INSERT)
@RepeatSubmit()
......@@ -105,7 +106,7 @@ public class SysTenantPackageController extends BaseController {
/**
* 修改租户套餐
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:edit")
@Log(title = "租户套餐", businessType = BusinessType.UPDATE)
@RepeatSubmit()
......@@ -134,7 +135,7 @@ public class SysTenantPackageController extends BaseController {
*
* @param packageIds 主键串
*/
@SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY)
@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY,TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY},mode = SaMode.OR)
@SaCheckPermission("system:tenantPackage:remove")
@Log(title = "租户套餐", businessType = BusinessType.DELETE)
@DeleteMapping("/{packageIds}")
......
......@@ -37,6 +37,16 @@ public interface TenantConstants {
*/
String TENANT_ADMIN_ROLE_NAME = "管理员";
/**
* 大司空租户管理员角色
*/
String DSK_TENANT_ADMIN_ROLE_KEY = "accountAdmin";
/**
* 大司空租户管理员角色名称
*/
String DSK_TENANT_ADMIN_ROLE_NAME = "企业账号管理员";
/**
* 默认租户ID
*/
......
package com.dsk.common.utils;
import cn.dev33.satoken.secure.BCrypt;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
......@@ -240,4 +241,9 @@ public class EncryptUtils {
return SmUtil.sm3(data);
}
public static void main(String[] args) {
System.out.println(BCrypt.hashpw("dsk123123"));
}
}
......@@ -56,11 +56,6 @@
<artifactId>fastjson2</artifactId>
<version>2.0.25</version>
</dependency>
<!-- <dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.2</version>
</dependency>-->
<!-- <dependency>-->
......
......@@ -47,8 +47,8 @@ public class BusinessInfoController extends BaseController
* 查询所有项目名称(支持模糊查询)
*/
@PostMapping("/query/project")
public R<List<BusinessLikeProjectNameListVo>> queryprojectName(@RequestBody BusinessListDto dto){
return R.ok(businessInfoService.selectProjectName(dto));
public R<List<BusinessLikeProjectNameListVo>> queryprojectName(@RequestBody BusinessListDto dto,@RequestBody PageQuery pageQuery){
return R.ok(businessInfoService.selectProjectName(dto,pageQuery));
}
/**
......
......@@ -57,7 +57,7 @@ public interface IBusinessInfoService
* 查询所有项目名称(支持模糊查询)
* @return
*/
List<BusinessLikeProjectNameListVo> selectProjectName(BusinessListDto dto);
List<BusinessLikeProjectNameListVo> selectProjectName(BusinessListDto dto,PageQuery pageQuery);
/**
* 项目批量导入
......
......@@ -138,11 +138,11 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
}
@Override
public List<BusinessLikeProjectNameListVo> selectProjectName(BusinessListDto dto) {
public List<BusinessLikeProjectNameListVo> selectProjectName(BusinessListDto dto,PageQuery pageQuery) {
// List<BusinessLikeProjectNameListVo> vos = businessInfoMapper.selectProjectName(dto);
List<BusinessLikeProjectNameListVo> vos = new ArrayList<>();
try {
Map<String, Object> result = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/findByName", toRequestMap(dto));
Map<String, Object> result = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/findByName", toRequestMap(dto,pageQuery));
if (ObjectUtil.isNotEmpty(result.get("data"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) BeanUtil.beanToMap(result.get("data")).get("list");
if (!CollectionUtils.isEmpty(list)) {
......@@ -169,10 +169,10 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
return vos;
}
private Map<String, Object> toRequestMap(BusinessListDto dto) {
private Map<String, Object> toRequestMap(BusinessListDto dto,PageQuery pageQuery) {
Map<String, Object> page = new HashMap<>();
page.put("page", 1);
page.put("limit", 20);
page.put("page", pageQuery.getPageNum());
page.put("limit", pageQuery.getPageSize());
Map<String, Object> map = new HashMap<>();
map.put("keyword", dto.getProjectName());
map.put("page", page);
......
......@@ -151,5 +151,16 @@ public class EnterpriseProjectController {
return enterpriseProjectService.importantDetail(body);
}
/***
*@Description: 公招市场-流程速览
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/9/19 13:49
*/
@RequestMapping(value = "/projectProcess", method = RequestMethod.POST)
public R projectProcess(@RequestBody @Valid EnterpriseProjectProcessDetailBody body) throws Exception {
return enterpriseProjectService.projectProcess(body);
}
}
......@@ -25,16 +25,12 @@ public class RegionalEnterprisesController {
@Autowired
private RegionalEnterprisesService regionalEnterprisesService;
@PostMapping("regional/page")
@PostMapping("/regional/page")
public AjaxResult page(@RequestBody JSONObject object) throws Exception{
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
compose.getPage().setPage(compose.getPageNum());
compose.getPage().setLimit(compose.getPageSize());
compose.getPage().setField(compose.getField());
compose.getPage().setOrder(compose.getOrder());
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return regionalEnterprisesService.enterprisePage(compose);
return regionalEnterprisesService.enterprisePage(object);
}
}
package com.dsk.jsk.domain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseProjectProcessDetailBody {
/**
* id
*/
@NotNull(message = "id不能为空")
private String projectId;
}
......@@ -205,4 +205,16 @@ public class EnterpriseProjectService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/importantDetail", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
/***
*@Description: 公招市场-流程速览
*@Param:
*@return: com.dsk.common.core.domain.R
*@Author: Dgm
*@date: 2023/9/19 13:49
*/
public R projectProcess(EnterpriseProjectProcessDetailBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/recruitmentMarket/projectProcess", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
}
......@@ -207,7 +207,7 @@ public class JskCombineInfoService {
}
public TableDataInfo bidPage(JskCombineBidPageDto dto) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/bidPage", BeanUtil.beanToMap(dto, false, false));
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/combine/tenderList", BeanUtil.beanToMap(dto, false, false));
if (ObjectUtil.isNotEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
if (!ObjectUtils.isEmpty(data.get("list"))) {
......
package com.dsk.jsk.service.service;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
/**
* @ClassName EconomicService
......@@ -19,5 +19,5 @@ public interface RegionalEnterprisesService {
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult enterprisePage(ComposeQueryDto compose) throws Exception;
AjaxResult enterprisePage(JSONObject object) throws Exception;
}
......@@ -2,6 +2,7 @@ package com.dsk.jsk.service.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DskOpenApiUtil;
......@@ -29,8 +30,8 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic
private DskOpenApiUtil dskOpenApiUtil;
@Override
public AjaxResult enterprisePage(ComposeQueryDto pageDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",BeanUtil.beanToMap(pageDto, false, false));
public AjaxResult enterprisePage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",BeanUtil.beanToMap(object, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (code.equals(HttpStatus.OK.value())) {
Map data = MapUtils.getMap(map, "data", null);
......
......@@ -162,7 +162,7 @@ public class BusinessOpportunityRadarService {
}
public AjaxResult bxproPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/subscription/bxproPage", object);
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/subscription/yqBxproPage", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
......@@ -91,12 +91,12 @@
iframeLoading() {
let iframeHeight = document.getElementById("companyIframe").clientHeight, number = 0
this.iframeTimer = setInterval(()=>{
number ++
if(document.getElementById("companyIframe").clientHeight != iframeHeight || number == 5000){
number = number+1000
if(document.getElementById("companyIframe").clientHeight != iframeHeight || number == 3000){
this.loading = false
clearInterval(this.iframeTimer)
}
})
},1000)
}
}
}
......
......@@ -152,7 +152,7 @@
</template>
<script>
import { treeselect as qytreeselect} from "@/api/system/menu";
import { qytreeselect} from "@/api/system/menu";
import { addTenantPackage ,getTenantPackage,detailTenantPackage,saveTenantPackage,deleteTenantPackage} from "@/api/enterpriseManagement/enterpriseManagement";
......
......@@ -935,9 +935,9 @@ export default {
},
itemStyle: {
normal:{
color: '#67B3FD',
color: '#14C9C9',
lineStyle: {
width:3
width:2
},
}
},
......@@ -961,7 +961,7 @@ export default {
offset: 1,
color: '#1B8EFF'
}]),
barBorderRadius:[20,20, 0, 0]
// barBorderRadius:[20,20, 0, 0]
}
},
data:data.map(item => item.count),
......@@ -1258,9 +1258,9 @@ export default {
},
itemStyle: {
normal:{
color: '#67B3FD',
color: '#14C9C9',
lineStyle: {
width:3
width:2
},
}
},
......@@ -1284,7 +1284,7 @@ export default {
offset: 1,
color: '#1B8EFF'
}]),
barBorderRadius:[20,20, 0, 0]
// barBorderRadius:[20,20, 0, 0]
}
},
data:data.map(item => item.count),
......
......@@ -24,6 +24,7 @@
<el-form-item prop="captchaCode" v-if="captchaEnabled">
<el-input
v-model="dxform.captchaCode"
@focus="getCode"
auto-complete="off"
placeholder="请输入图形验证码"
style="width: 196px;float: left;"
......@@ -92,6 +93,7 @@
v-model="loginForm.code"
auto-complete="off"
placeholder="请输入图形验证码"
@focus="getCode"
style="width: 196px;float: left;"
@keyup.enter.native="handleLogin"
>
......@@ -130,6 +132,7 @@
<el-form-item prop="captchaCode" v-if="captchaEnabled && showcode">
<el-input
v-model="dxform.captchaCode"
@focus="getCode"
auto-complete="off"
placeholder="请输入验证码"
style="width: 196px;float: left;"
......
<template>
<div :ref="refStr" class="custom-time-select screen-popper" id="custom-time-select">
<div :class="['input-block', isSelectOption?'rote':'']">
<div class="block" @click="isSelectOption=!isSelectOption" @mouseenter="handleMouseenter" @mouseleave="handleMouseleave">
<el-input class="custom-time-input" v-model="value" :placeholder="placeholder" readonly>
<template slot="suffix">
<span @click.stop="handleClear" :class="[isClear&&isHover?'el-icon-circle-close':'el-icon-arrow-down']"></span>
</template>
</el-input>
</div>
<div class="options-block" v-if="isSelectOption">
<div class="arrow"></div>
<div @click="handleClick(option)" :class="['option', value==option?'active':'']" :key="i" v-for="(option, i) in options">
<template v-if="option == '自定义'">
<div style="position: relative">
自定义
<el-date-picker
ref="picker"
:default-value="defaultValue"
style="position: absolute;opacity: 0;"
v-model="pickerValue"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions"
@change="changePicker">
</el-date-picker>
</div>
</template>
<template v-else>
<span>{{option}}</span> <span v-if="value==option" class="el-icon-check"></span>
</template>
</div>
</div>
</div>
<div v-if="isSelectOption" class="picker-block" ref="picker-block"></div>
</div>
</template>
<script>
export default {
props: {
'placeholder': {
type: String,
default: '请选择',
},
'ref-str': {
type: String,
default: `timeselect${String(Math.random(0, 100)).slice(2)}`,
},
dateFrom: {
type: String,
default: ''
},
dateTo: {
type: String,
default: ''
},
timeList: {
type: Array,
default: () => [],
}
},
computed: {
isClear() {
if(!this.isSelectOption && this.value) {
return true
}else {
return false
}
},
pickerOptions() {
// 用计算属性
let _this = this
// 此时 this指向的就是vue实例
return {
disabledDate(time) {
if(_this.dateFrom){
return time.getTime() < new Date(_this.dateFrom.replace(/-/g, '/')).getTime() - 8.64e6;//如果没有后面的-8.64e6就是不可以选择今天的
}
if(_this.dateTo){
return time.getTime() > new Date(_this.dateTo.replace(/-/g, '/')).getTime();//如果没有后面的-8.64e7就是不可以选择今天的
}
}
}
},
},
watch: {
refStr(refStr) {
return refStr
}
},
data() {
return {
value: '',
options: ['近1年', '近2年', '近3年', '近5年', '自定义',],
isSelectOption: false,
isHover: false,
pickerValue: [],
defaultValue:new Date()
}
},
mounted() {
if(this.dateTo){
this.defaultValue = new Date(this.dateTo)
}
this.handleAppClick()
if(this.timeList&&this.timeList.length>0){
this.options = this.timeList
}
},
methods: {
// 时间格式化
formatDate(timeStr) {
let date = new Date(Number(timeStr))
let year = date.getFullYear()
let month = String(date.getMonth() + 1).padStart(2, 0)
let day = String(date.getDate()).padStart(2, 0)
return `${year}-${month}-${day}`
},
// 判断是否点击的为组件内部
handleAppClick() {
const app = document.getElementById('app')
app.addEventListener('click', (e) => {
const dom = this.$refs[this.refStr]
const flag = dom && dom.contains(e.target)
// const flag = document.getElementById('custom-time-select').contains(e.target)
!flag ? this.isSelectOption = false : ''
if(this.value == '自定义' && (!this.pickerValue || !this.pickerValue.length)) {
this.value = ''
this.$emit('input', '')
this.$emit('handle-search')
}
}, true)
},
handleMouseenter() {
this.isHover = true
},
handleMouseleave() {
this.isHover = false
},
handleClear() {
if(this.isClear && this.isHover) {
this.value = ''
this.pickerValue = []
this.$emit('input', '')
this.$emit('handle-search')
}else {
this.isSelectOption = true
}
},
handleClick(value) {
this.value = value
if(value == '自定义') {
this.value = '自定义'
this.$refs.picker && this.$refs.picker.length && this.$refs.picker[0].focus()
this.$nextTick(() => {
this.$refs['picker-block'].appendChild(this.$refs.picker[0].popperElm)
})
}else {
this.pickerValue = []
this.isSelectOption = false
let timeStr = []
let startTime = ''
let endTime = new Date()
switch (value) {
case '近三天':
startTime = new Date(endTime.getTime() - 3600 * 1000 * 24 * 3)
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
case '近七天':
startTime = new Date(endTime.getTime() - 3600 * 1000 * 24 * 7)
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
case '近半月':
startTime = new Date(endTime.getTime() - 3600 * 1000 * 24 * 15)
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
case '近1年':
startTime = new Date().setFullYear(new Date().getFullYear() - 1)
if(this.dateTo){
startTime = new Date(this.dateTo).setFullYear(new Date(this.dateTo).getFullYear() - 1)
}
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
case '近2年':
startTime = new Date().setFullYear(new Date().getFullYear() - 2)
if(this.dateTo){
startTime = new Date(this.dateTo).setFullYear(new Date(this.dateTo).getFullYear() - 2)
}
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
case '近3年':
startTime = new Date().setFullYear(new Date().getFullYear() - 3)
if(this.dateTo){
startTime = new Date(this.dateTo).setFullYear(new Date(this.dateTo).getFullYear() - 3)
}
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
case '近5年':
startTime = new Date().setFullYear(new Date().getFullYear() - 5)
if(this.dateTo){
startTime = new Date(this.dateTo).setFullYear(new Date(this.dateTo).getFullYear() - 5)
}
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
default:
if(this.pickerValue && this.pickerValue.length) {
timeStr = this.pickerValue
}else {
timeStr = []
this.value = ''
}
break;
}
this.$emit('input', timeStr)
this.$emit('handle-search')
}
},
// 时间选择改变后的回调
changePicker(value) {
this.isSelectOption = false
if(value && value.length) {
// this.value = '自定义'
this.value = String(this.pickerValue)
this.$emit('input', this.pickerValue)
}else {
this.value = ''
this.$emit('input', '')
}
this.$emit('handle-search')
}
}
}
</script>
<style lang="scss">
.custom-time-select {
width: 120px;
height: 34px;
.input-block {
width: 100%;
height: 100%;
margin: 0;
cursor: pointer;
.block {
width: 100%;
height: 100%;
>.custom-time-input.el-input {
width: 100%;
height: 100%;
>input {
width: 100%;
height: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
border-radius: 2px;
}
}
}
.el-input__suffix {
transform: rotateZ(0);
width: 25px;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
&.rote {
.el-input__suffix {
transform: rotateZ(180deg);
}
}
}
.options-block {
position: absolute;
margin-top: 12px;
min-width: 120px;
font-size: 14px;
color: #666666;
background-color: #fff;
border: 1px solid #E4E7ED;
padding: 6px 0;
border-radius: 4px;
z-index: 10;
.option {
padding: 0 24px 0 16px;
box-sizing: border-box;
height: 36px;
display: flex;
justify-content: space-between;
align-items: center;
>span {
display: inline-block;
}
&.active {
background-color: #F2F7FF;
color: #0381FA;
}
&:hover {
background-color: #F5F7FA;
}
}
}
.picker-block {
position: relative;
&::after {
content:"";
display:block;
visibility:hidden;
clear:both;
}
.el-picker-panel.el-date-range-picker.el-popper {
left: 0 !important;
/*top: 205px !important;*/
}
.popper__arrow {
/*left: 30px !important;*/
}
}
}
</style>
......@@ -406,7 +406,10 @@ export default {
},
label: {
show: this.valData[1] ? true : false,
position: 'top'
position: 'top',
textStyle: {
padding: [0, 0, 0, -12]
}
},
//设置折线颜色和粗细
lineStyle: {
......@@ -470,7 +473,10 @@ export default {
},
label: {
show: this.valData1[1] ? true : false,
position: 'top'
position: 'top',
textStyle: {
padding: [0, 0, 0, -35]
}
},
itemStyle:{
color: "#718AFF",
......@@ -534,7 +540,10 @@ export default {
},
label: {
show: this.valData2[1] ? true : false,
position: 'top'
position: 'top',
textStyle: {
padding: [0, 0, 0, -16]
}
},
//设置折线颜色和粗细
lineStyle: {
......@@ -598,7 +607,10 @@ export default {
},
label: {
show: this.valData3[1] ? true : false,
position: 'top'
position: 'top',
textStyle: {
padding: [0, 0, 0, -16]
}
},
//设置折线颜色和粗细
lineStyle: {
......@@ -664,6 +676,9 @@ export default {
label: {
show: this.valData4[1] ? true : false,
position: 'top',
textStyle: {
padding: [0, 0, 0, -14]
}
},
//设置折线颜色和粗细
lineStyle: {
......
......@@ -19,6 +19,12 @@
placeholder="资质资格"
collapse-tags
clearable></el-cascader>
<custom-time-select
style="display: inline-block"
:timeList="timeList"
v-model="queryParams.time"
:placeholder="timePlaceholder"
@handle-search="changeSelect" />
<el-input placeholder="输入关键词查询" v-model="queryParams.ename" clearable @clear="handleSearch()">
<i slot="prefix" class="el-icon-search"></i>
<el-button slot="append" @click="handleSearch()">搜索</el-button>
......@@ -92,12 +98,13 @@
// import Offsite from './component/offsite'
import {encodeStr} from "@/assets/js/common.js"
import aptitudeCode from '@/assets/json/aptitudeCode'
import CustomTimeSelect from '../component/CustomTimeSelect'
import { enterprise,location,getUipIdByCid } from '@/api/macro/macro'
import Region from '../component/region'
import skeleton from '../component/skeleton'
export default {
name: 'Enterprises',
components: {Region,skeleton},
components: {Region,skeleton,CustomTimeSelect},
data() {
return {
encodeStr,
......@@ -106,6 +113,7 @@ export default {
queryParams:{
ename:'',
codeStr:'',
time:'',
},
props: {
value: 'id',
......@@ -126,7 +134,9 @@ export default {
provinceId:'',
show_page:true,
MaxPage:500,
isSkeleton:true
isSkeleton:true,
timeList: ['近三天', '近七天', '近半月', '自定义'],
timePlaceholder:'中标时间',
}
},
created() {
......@@ -171,7 +181,11 @@ export default {
async querySubmit(){
// this.isSkeleton = true;
this.tableLoading = true;
const params = { pageNum: this.pageIndex, pageSize: this.pageSize}
const params = {}
params.page={
limit:this.pageSize,
page:this.pageIndex,
}
if(this.queryParams.field){
params.field=this.queryParams.field
}
......@@ -187,6 +201,14 @@ export default {
if(this.queryParams.ename){
params.aptitudeQueryDto.ename=this.queryParams.ename
}
if(this.queryParams.time.length > 1){
params.recentlyBidQueryDto=[
{
startTenderTime:this.queryParams.time[0],
endTenderTime:this.queryParams.time[1]
}
]
}
if(this.aptitudeType){
let aptitudeType=[];
aptitudeType.push({
......@@ -243,6 +265,7 @@ export default {
this.queryParams={
ename:'',
codeStr:'',
time:'',
}
this.pageIndex=1;
this.querySubmit()
......@@ -298,7 +321,11 @@ export default {
location(params).then(res => {
console.log(res.data)
})
}
},
changeSelect(){
this.pageIndex=1;
this.querySubmit()
},
}
}
</script>
......@@ -353,14 +380,14 @@ export default {
::v-deep .el-cascader{
width: 180px;
margin-right: 12px;
height: 32px;
line-height: 32px !important;
height: 34px;
line-height: 34px !important;
.el-input{
width: 100%;
height: 32px;
height: 100%;
.el-input__inner{
height: 32px !important;
line-height: 32px !important;
width: 100%;
height: 100%;
}
}
.el-cascader__tags{
......@@ -376,11 +403,13 @@ export default {
}
::v-deep .el-input.el-input-group{
width: 240px;
height: 30px;
height: 34px;
border-radius:2px;
margin-left: 12px;
border: 1px solid #e0e0e0;
.el-input__inner{
height: 30px;
width: 100%;
height: 100%;
border: 0;
}
.el-input__suffix{
......
......@@ -279,6 +279,7 @@ export default {
countLandMarketByProvince(params).then(res => {
this.topState = false
this.topList=res.data.provinceDate;
console.log(res.data.provinceList,"||||||||")
var list=[];
if(res.data.provinceDate){
for(var i=0;i<res.data.provinceDate.length;i++){
......
......@@ -92,4 +92,10 @@ public interface SysUserMapper extends BaseMapperPlus<SysUserMapper, SysUser, Sy
*/
SysUser selectUserById(Long userId);
List<SysUser> selectUserByTenantPhone(String phonenumber);
List<SysUser> selectUserByTenantUsername(String username);
}
......@@ -525,7 +525,7 @@ public class SysLoginService {
}
SysTenantVo tenant = sysTenantService.queryByTenantId(tenantId);
if (ObjectUtil.isNull(tenant)) {
log.info("登录企业:{} 不存在.", tenant.getCompanyName());
log.info("登录企业:{} 不存在.", tenantId);
RedisUtils.deleteObject(GlobalConstants.PHONE_DEFAULT_TENANT + phoneNumber);
return null;
} else if (TenantStatus.DISABLE.getCode().equals(tenant.getStatus())) {
......
......@@ -97,10 +97,12 @@ public class SysMenuServiceImpl implements ISysMenuService {
menuList = baseMapper.selectList(new LambdaQueryWrapper<SysMenu>()
.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName())
.eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible())
.eq(StringUtils.isNotBlank(menu.getStatus()), SysMenu::getStatus, menu.getStatus())
.eq(SysMenu::getStatus, "0")
.orderByAsc(SysMenu::getParentId)
.orderByAsc(SysMenu::getOrderNum));
menuList = menuList.stream().filter(menu1 -> !menu1.getMenuName().equals("企业管理")).collect(Collectors.toList());
//过滤企业管理权限,考虑今后权限名称可能会修改,因此以ID作为判断依据
menuList = menuList.stream().filter(menu1 -> menu1.getMenuId() != 1693803090698280961L).collect(Collectors.toList());
}
return menuList;
}
......@@ -183,11 +185,10 @@ public class SysMenuServiceImpl implements ISysMenuService {
if (CollUtil.isEmpty(menus)) {
return CollUtil.newArrayList();
}
return TreeBuildUtils.build(menus, (menu, tree) ->
tree.setId(menu.getMenuId())
.setParentId(menu.getParentId())
.setName(menu.getMenuName())
.setWeight(menu.getOrderNum()));
return TreeBuildUtils.build(menus, (menu, tree) -> tree.setId(menu.getMenuId())
.setParentId(menu.getParentId())
.setName(menu.getMenuName())
.setWeight(menu.getOrderNum()));
}
/**
......
......@@ -139,6 +139,21 @@
<include refid="selectUserVo"/>
where u.del_flag = '0' and u.user_id = #{userId}
</select>
<select id="selectUserByTenantPhone" resultType="com.dsk.system.domain.SysUser">
select t1.user_id, t1.tenant_id,t1.user_name,t1.status from sys_user t1
inner join sys_tenant t on t1.tenant_id=t.tenant_id and t1.del_flag=0
where t.del_flag=0
and t.status=0
and t1.phonenumber=#{phonenumber}
order by t1.create_time desc
</select>
<select id="selectUserByTenantUsername" resultType="com.dsk.system.domain.SysUser">
select t1.user_id, t1.tenant_id,t1.user_name,t1.status from sys_user t1
left join sys_tenant t on t1.tenant_id=t.tenant_id and t1.del_flag=0
where t.del_flag=0
and t.status=0
and t1.user_name=#{username}
order by t1.create_time desc
</select>
</mapper>
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