Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
dsk-cr20g
Commits
ad6aaa35
Commit
ad6aaa35
authored
Jun 07, 2023
by
远方不远
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://192.168.60.201/root/dsk-operate-sys
parents
f0a73a63
e99e8008
Changes
46
Show whitespace changes
Inline
Side-by-side
Showing
46 changed files
with
897 additions
and
476 deletions
+897
-476
BusinessBacklogController.java
...sk/web/controller/business/BusinessBacklogController.java
+6
-19
BusinessContactsController.java
...k/web/controller/business/BusinessContactsController.java
+6
-18
BusinessFileController.java
...m/dsk/web/controller/business/BusinessFileController.java
+109
-0
BusinessFollowRecordController.java
...b/controller/business/BusinessFollowRecordController.java
+6
-18
BusinessInfoController.java
...m/dsk/web/controller/business/BusinessInfoController.java
+7
-17
BusinessLabelController.java
.../dsk/web/controller/business/BusinessLabelController.java
+2
-14
BusinessRelateCompanyController.java
.../controller/business/BusinessRelateCompanyController.java
+20
-32
MarketAnalysisController.java
...ontroller/search/controller/MarketAnalysisController.java
+24
-8
MarketAnalysisService.java
.../web/controller/search/service/MarketAnalysisService.java
+2
-2
MarketAnalysisServiceImpl.java
...roller/search/service/impl/MarketAnalysisServiceImpl.java
+4
-4
application-dev.yml
dsk-admin/src/main/resources/application-dev.yml
+3
-2
BusinessRelateCompany.java
.../dsk/common/core/domain/entity/BusinessRelateCompany.java
+5
-0
EnterpriseCreditLawsuitsPageBody.java
...n/core/domain/model/EnterpriseCreditLawsuitsPageBody.java
+10
-0
EnterpriseProjectBidNoticePageBody.java
...core/domain/model/EnterpriseProjectBidNoticePageBody.java
+1
-1
FileUtils.java
...on/src/main/java/com/dsk/common/utils/file/FileUtils.java
+110
-39
SysLoginService.java
...n/java/com/dsk/framework/web/service/SysLoginService.java
+1
-1
urbanLnvestment.js
dsk-operate-ui/src/api/detail/party-a/urbanLnvestment.js
+8
-0
project.js
dsk-operate-ui/src/api/project/project.js
+25
-0
project.scss
dsk-operate-ui/src/assets/styles/project.scss
+1
-1
index.vue
dsk-operate-ui/src/views/custom/customList/index.vue
+1
-1
index.vue
dsk-operate-ui/src/views/custom/overview/index.vue
+9
-3
Tables.vue
dsk-operate-ui/src/views/detail/party-a/component/Tables.vue
+9
-1
bidagency.vue
...perate-ui/src/views/detail/party-a/dealings/bidagency.vue
+4
-2
bidagencyDetail.vue
...ews/detail/party-a/dealings/component/bidagencyDetail.vue
+1
-1
customDetail.vue
.../views/detail/party-a/dealings/component/customDetail.vue
+2
-2
supplierDetail.vue
...iews/detail/party-a/dealings/component/supplierDetail.vue
+2
-2
custom.vue
dsk-operate-ui/src/views/detail/party-a/dealings/custom.vue
+5
-29
hiscontract.vue
...rate-ui/src/views/detail/party-a/dealings/hiscontract.vue
+9
-7
supplier.vue
...operate-ui/src/views/detail/party-a/dealings/supplier.vue
+5
-3
mixin.js
dsk-operate-ui/src/views/detail/party-a/mixins/mixin.js
+3
-1
businessAnomaly.vue
.../views/detail/party-a/riskInformation/businessAnomaly.vue
+0
-2
openacourtsessionNotice.vue
...etail/party-a/riskInformation/openacourtsessionNotice.vue
+0
-2
regionalEconomies.vue
...iews/detail/party-a/urbanLnvestment/regionalEconomies.vue
+11
-0
sameRegion.vue
...i/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
+147
-51
index.vue
dsk-operate-ui/src/views/project/overview/index.vue
+7
-6
addProject.vue
...ui/src/views/project/projectList/component/addProject.vue
+1
-1
xgqy.vue
...erate-ui/src/views/project/projectList/component/xgqy.vue
+121
-49
xmsl.vue
...erate-ui/src/views/project/projectList/component/xmsl.vue
+1
-1
zlwd.vue
...erate-ui/src/views/project/projectList/component/zlwd.vue
+159
-113
detail.vue
dsk-operate-ui/src/views/project/projectList/detail.vue
+26
-8
index.vue
dsk-operate-ui/src/views/project/projectList/index.vue
+3
-2
vue.config.js
dsk-operate-ui/vue.config.js
+2
-0
BusinessIdDto.java
...em/src/main/java/com/dsk/system/domain/BusinessIdDto.java
+5
-0
EnterpriseProjectService.java
...a/com/dsk/system/dskService/EnterpriseProjectService.java
+5
-9
BusinessInfoServiceImpl.java
.../com/dsk/system/service/impl/BusinessInfoServiceImpl.java
+2
-3
BusinessRelateCompanyMapper.xml
...resources/mapper/business/BusinessRelateCompanyMapper.xml
+7
-1
No files found.
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessBacklogController.java
View file @
ad6aaa35
package
com
.
dsk
.
web
.
controller
.
business
;
import
java.util.List
;
import
javax.annotation.PostConstruct
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.entity.BusinessBacklog
;
import
com.dsk.common.
utils.poi.ExcelUtil
;
import
com.dsk.common.
core.page.TableDataInfo
;
import
com.dsk.system.service.IBusinessBacklogService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.dsk.common.annotation.Log
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.enums.BusinessType
;
import
com.dsk.common.core.page.TableDataInfo
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* 项目工作待办Controller
...
...
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessContactsController.java
View file @
ad6aaa35
package
com
.
dsk
.
web
.
controller
.
business
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dsk.common.core.domain.entity.BusinessContacts
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.system.service.IBusinessContactsService
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.dsk.common.annotation.Log
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.
enums.BusinessType
;
import
com.dsk.common.
core.domain.entity.BusinessContacts
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.system.service.IBusinessContactsService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* 项目联系人Controller
...
...
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessFileController.java
0 → 100644
View file @
ad6aaa35
package
com
.
dsk
.
web
.
controller
.
business
;
import
com.dsk.common.config.RuoYiConfig
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.utils.file.FileUploadUtils
;
import
com.dsk.common.utils.file.FileUtils
;
import
com.dsk.framework.config.ServerConfig
;
import
com.dsk.system.domain.BusinessIdDto
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.util.List
;
/**
* @author lxl
* @Description: 项目文件管理Controller
* @Date 2023/5/30 上午 8:44
**/
@Slf4j
@RestController
@RequestMapping
(
"/business/file"
)
public
class
BusinessFileController
extends
BaseController
{
@Autowired
private
ServerConfig
serverConfig
;
/**
* 新建文件夹
*/
// @PreAuthorize("@ss.hasPermi('system:file:add')")
// @Log(title = "项目资料文档", businessType = BusinessType.INSERT)
@GetMapping
(
"/new/{filePath}"
)
public
AjaxResult
newFolder
(
@PathVariable
String
filePath
)
{
return
FileUtils
.
newFolder
(
RuoYiConfig
.
getProfile
()
+
filePath
)
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
}
/**
* 删除某个文件或整个文件夹
*/
@PostMapping
(
"/remove"
)
public
AjaxResult
removeFile
(
@RequestBody
(
required
=
false
)
BusinessIdDto
folderPath
)
{
return
FileUtils
.
delFolder
(
RuoYiConfig
.
getProfile
()
+
folderPath
.
getFolderPath
())
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
}
/**
* 分页查询项目的所有文件
* 获取文件夹中所有文件
*/
@GetMapping
(
value
=
"/list"
)
public
TableDataInfo
getAllFiles
(
@RequestBody
(
required
=
false
)
BusinessIdDto
folderPath
)
{
startPage
();
List
<
String
>
allFiles
=
FileUtils
.
getAllFiles
(
RuoYiConfig
.
getProfile
()
+
folderPath
.
getFolderPath
());
return
getDataTable
(
allFiles
);
}
/* *//**
* 上传文件及文件夹
* @param url
* @param folderPath
* @return
*//*
@GetMapping("/upload/{url}/{folderPath}")
public AjaxResult uploadFolder(@PathVariable("url") String url,@PathVariable("folderPath") String folderPath) throws IOException {
return toAjax(FileUtils.uploadFolder(url, LOCALPATH + folderPath));
}*/
/**
* 上传文件及文件夹
* @param file 文件流
* @param request 请求头参数
* @return
*/
@PostMapping
(
"/upload/"
)
public
AjaxResult
uploadFolder
(
@RequestPart
(
"file"
)
MultipartFile
file
,
HttpServletRequest
request
){
try
{
String
businessFileName
=
request
.
getParameter
(
"filePath"
);
// 上传文件路径
String
filePath
=
RuoYiConfig
.
getUploadPath
()+
businessFileName
;
// 上传并返回新文件名称
String
fileName
=
FileUploadUtils
.
upload
(
filePath
,
file
);
String
url
=
serverConfig
.
getUrl
()
+
fileName
;
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"url"
,
url
);
ajax
.
put
(
"fileName"
,
fileName
);
ajax
.
put
(
"newFileName"
,
FileUtils
.
getName
(
fileName
));
ajax
.
put
(
"originalFilename"
,
file
.
getOriginalFilename
());
return
ajax
;
}
catch
(
IOException
e
)
{
return
AjaxResult
.
error
(
e
.
getMessage
());
}
}
/**
* 下载文件
* @param url
* @param targetFolder
* @return
*/
@GetMapping
(
"/download/{url}/{targetFolder}"
)
public
AjaxResult
downloadFolder
(
@PathVariable
(
"url"
)
String
url
,
@PathVariable
(
"targetFolder"
)
String
targetFolder
)
throws
IOException
{
return
toAjax
(
FileUtils
.
downloadFolder
(
url
,
targetFolder
));
}
}
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessFollowRecordController.java
View file @
ad6aaa35
package
com
.
dsk
.
web
.
controller
.
business
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.entity.BusinessFollowRecord
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.system.domain.BusinessIdDto
;
import
com.dsk.system.service.IBusinessFollowRecordService
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.dsk.common.annotation.Log
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.enums.BusinessType
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.common.core.page.TableDataInfo
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* 项目跟进记录Controller
...
...
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessInfoController.java
View file @
ad6aaa35
package
com
.
dsk
.
web
.
controller
.
business
;
import
java.util.List
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.entity.BusinessInfo
;
import
com.dsk.common.dtos.BusinessInfoDto
;
import
com.dsk.common.exception.base.BaseException
;
import
com.dsk.common.utils.CheckUtils
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.system.domain.BusinessAddDto
;
import
com.dsk.system.domain.BusinessListDto
;
import
com.dsk.system.domain.vo.BusinessBrowseVo
;
import
com.dsk.system.domain.vo.BusinessListVo
;
import
com.dsk.system.service.IBusinessInfoService
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
com.dsk.common.annotation.Log
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.enums.BusinessType
;
import
com.dsk.common.core.page.TableDataInfo
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
/**
* 项目详情Controller
...
...
@@ -90,7 +80,7 @@ public class BusinessInfoController extends BaseController
* 删除项目列表
*/
// @PreAuthorize("@ss.hasPermi('system:business:remove')")
@Log
(
title
=
"项目管理"
,
businessType
=
BusinessType
.
DELETE
)
//
@Log(title = "项目管理", businessType = BusinessType.DELETE)
@DeleteMapping
(
"/remove/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
(
value
=
"ids"
,
required
=
false
)
Long
[]
ids
)
{
...
...
@@ -101,7 +91,7 @@ public class BusinessInfoController extends BaseController
* 新增项目详情
*/
// @PreAuthorize("@ss.hasPermi('system:business:add')")
@Log
(
title
=
"项目管理"
,
businessType
=
BusinessType
.
INSERT
)
//
@Log(title = "项目管理", businessType = BusinessType.INSERT)
@PostMapping
(
"/add"
)
public
AjaxResult
add
(
@RequestBody
BusinessAddDto
dto
)
{
...
...
@@ -112,7 +102,7 @@ public class BusinessInfoController extends BaseController
* 修改项目详情
*/
// @PreAuthorize("@ss.hasPermi('system:business:edit')")
@Log
(
title
=
"项目管理"
,
businessType
=
BusinessType
.
UPDATE
)
//
@Log(title = "项目管理", businessType = BusinessType.UPDATE)
@PostMapping
(
"/edit"
)
public
AjaxResult
edit
(
@RequestBody
BusinessInfo
businessInfo
)
{
...
...
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessLabelController.java
View file @
ad6aaa35
package
com
.
dsk
.
web
.
controller
.
business
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.entity.BusinessLabel
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
com.dsk.system.domain.BusinessIdDto
;
import
com.dsk.system.service.IBusinessLabelService
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.dsk.common.annotation.Log
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.enums.BusinessType
;
import
com.dsk.common.core.page.TableDataInfo
;
/**
* 项目标签Controller
...
...
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessRelateCompanyController.java
View file @
ad6aaa35
package
com
.
dsk
.
web
.
controller
.
business
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.entity.BusinessRelateCompany
;
import
com.dsk.common.
utils.poi.ExcelUtil
;
import
com.dsk.common.
core.page.TableDataInfo
;
import
com.dsk.system.domain.BusinessIdDto
;
import
com.dsk.system.service.IBusinessRelateCompanyService
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.dsk.common.annotation.Log
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.enums.BusinessType
;
import
com.dsk.common.core.page.TableDataInfo
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* 项目
关联单位
Controller
* 项目
相关企业
Controller
*
* @author lxl
* @date 2023-05-17
...
...
@@ -37,7 +25,7 @@ public class BusinessRelateCompanyController extends BaseController
private
IBusinessRelateCompanyService
businessRelateCompanyService
;
/**
* 查询
关联单位
角色
* 查询
相关企业
角色
*/
@PostMapping
(
"/role/list"
)
public
AjaxResult
companyRoleList
(
@RequestBody
BusinessIdDto
dto
){
...
...
@@ -45,7 +33,7 @@ public class BusinessRelateCompanyController extends BaseController
}
/**
* 查询项目
关联单位
列表
* 查询项目
相关企业
列表
*/
// @PreAuthorize("@ss.hasPermi('system:company:list')")
@GetMapping
(
"/list"
)
...
...
@@ -78,6 +66,17 @@ public class BusinessRelateCompanyController extends BaseController
return
toAjax
(
businessRelateCompanyService
.
updateBusinessRelateCompany
(
businessRelateCompany
));
}
/**
* 删除项目关联单位
*/
// @PreAuthorize("@ss.hasPermi('system:company:remove')")
// @Log(title = "项目关联单位", businessType = BusinessType.DELETE)
@DeleteMapping
(
"/remove/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
businessRelateCompanyService
.
deleteBusinessRelateCompanyByIds
(
ids
));
}
// /**
// * 导出项目关联单位列表
// */
...
...
@@ -101,15 +100,4 @@ public class BusinessRelateCompanyController extends BaseController
// return success(businessRelateCompanyService.selectBusinessRelateCompanyById(id));
// }
//
// /**
// * 删除项目关联单位
// */
// @PreAuthorize("@ss.hasPermi('system:company:remove')")
// @Log(title = "项目关联单位", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public AjaxResult remove(@PathVariable Long[] ids)
// {
// return toAjax(businessRelateCompanyService.deleteBusinessRelateCompanyByIds(ids));
// }
}
dsk-admin/src/main/java/com/dsk/web/controller/search/controller/MarketAnalysisController.java
View file @
ad6aaa35
package
com
.
dsk
.
web
.
controller
.
search
.
controller
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.dtos.ComposeQueryDto
;
import
com.dsk.web.controller.search.service.MarketAnalysisService
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
...
@@ -9,6 +11,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
/**
...
...
@@ -18,7 +23,7 @@ import javax.annotation.Resource;
*/
@RequestMapping
(
"/marketAnalysis"
)
@RestController
public
class
MarketAnalysisController
{
public
class
MarketAnalysisController
extends
BaseController
{
@Resource
...
...
@@ -46,9 +51,8 @@ public class MarketAnalysisController {
/*
* 资质等级按照大类、省份、等级类型分组
*/
@RequestMapping
(
"/certGroupByCategoryProvinceLevel"
)
public
AjaxResult
certGroupByCategoryProvinceLevel
()
{
@RequestMapping
(
"/certGroupByMajorProvinceLevel"
)
public
AjaxResult
certGroupByMajorProvinceLevel
()
{
return
marketAnalysisService
.
certGroupByMajorProvinceLevel
();
}
...
...
@@ -82,15 +86,27 @@ public class MarketAnalysisController {
* 中标数量按省份分组
*/
@RequestMapping
(
"/countGroupByProvince"
)
public
AjaxResult
countGroupByProvince
(
@RequestBody
ComposeQueryDto
compose
)
{
return
marketAnalysisService
.
countGroupByProvince
(
compose
);
public
AjaxResult
countGroupByProvince
(
@RequestBody
JSONObject
object
)
{
return
marketAnalysisService
.
countGroupByProvince
(
object
);
}
@RequestMapping
(
"/getYear"
)
public
TableDataInfo
getYear
(){
List
<
Integer
>
list
=
new
ArrayList
<>();
Calendar
calendar
=
Calendar
.
getInstance
();
int
nowYear
=
calendar
.
get
(
Calendar
.
YEAR
);
list
.
add
(
nowYear
);
for
(
int
i
=
1
;
i
<
5
;
i
++)
{
list
.
add
(
nowYear
-
i
);
}
return
getDataTable
(
list
);
}
/*
* 中标数量按月份分组
*/
@RequestMapping
(
"/countGroupByMonth"
)
public
AjaxResult
countGroupByMonth
(
@RequestBody
ComposeQueryDto
compose
)
{
return
marketAnalysisService
.
countGroupByMonth
(
compose
);
public
AjaxResult
countGroupByMonth
(
@RequestBody
JSONObject
object
)
{
return
marketAnalysisService
.
countGroupByMonth
(
object
);
}
}
dsk-admin/src/main/java/com/dsk/web/controller/search/service/MarketAnalysisService.java
View file @
ad6aaa35
...
...
@@ -17,9 +17,9 @@ public interface MarketAnalysisService {
AjaxResult
certGroupByMajorProvinceLevel
();
AjaxResult
countGroupByProvince
(
ComposeQueryDto
compose
);
AjaxResult
countGroupByProvince
(
JSONObject
object
);
AjaxResult
countGroupByMonth
(
ComposeQueryDto
compose
);
AjaxResult
countGroupByMonth
(
JSONObject
object
);
AjaxResult
bidMoneyGroupByProjectType
(
JSONObject
object
);
...
...
dsk-admin/src/main/java/com/dsk/web/controller/search/service/impl/MarketAnalysisServiceImpl.java
View file @
ad6aaa35
...
...
@@ -56,14 +56,14 @@ public class MarketAnalysisServiceImpl implements MarketAnalysisService {
}
@Override
public
AjaxResult
countGroupByProvince
(
ComposeQueryDto
compose
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/marketAnalysis/countGroupByProvince"
,
BeanUtil
.
beanToMap
(
compose
,
false
,
false
)
);
public
AjaxResult
countGroupByProvince
(
JSONObject
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/marketAnalysis/countGroupByProvince"
,
object
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
@Override
public
AjaxResult
countGroupByMonth
(
ComposeQueryDto
compose
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/marketAnalysis/countGroupBy
Date"
,
BeanUtil
.
beanToMap
(
compose
,
false
,
false
)
);
public
AjaxResult
countGroupByMonth
(
JSONObject
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/marketAnalysis/countGroupBy
Month"
,
object
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
}
dsk-admin/src/main/resources/application-dev.yml
View file @
ad6aaa35
...
...
@@ -8,8 +8,9 @@ ruoyi:
copyrightYear
:
2023
# 实例演示开关
demoEnabled
:
true
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
profile
:
D:/dsk-operate-sys/uploadPath/
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/server/dsk-operate-sys/uploadPath)
# profile: D:/dsk-operate-sys/uploadPath/
profile
:
/home/server/dsk-operate-sys/uploadPath/
# 获取ip地址开关
addressEnabled
:
false
# 验证码类型 math 数组计算 char 字符验证
...
...
dsk-common/src/main/java/com/dsk/common/core/domain/entity/BusinessRelateCompany.java
View file @
ad6aaa35
...
...
@@ -53,6 +53,10 @@ public class BusinessRelateCompany extends BaseEntity
@Excel
(
name
=
"对接深度/竞争力度"
)
private
String
depth
;
/** 企业类型 */
@Excel
(
name
=
"企业类型"
)
private
String
companyType
;
@Override
public
String
toString
()
{
return
new
ToStringBuilder
(
this
,
ToStringStyle
.
MULTI_LINE_STYLE
)
...
...
@@ -66,6 +70,7 @@ public class BusinessRelateCompany extends BaseEntity
.
append
(
"createTime"
,
getCreateTime
())
.
append
(
"updateTime"
,
getUpdateTime
())
.
append
(
"depth"
,
getDepth
())
.
append
(
"companyType"
,
getCompanyType
())
.
toString
();
}
...
...
dsk-common/src/main/java/com/dsk/common/core/domain/model/EnterpriseCreditLawsuitsPageBody.java
View file @
ad6aaa35
...
...
@@ -32,5 +32,15 @@ public class EnterpriseCreditLawsuitsPageBody extends BasePage {
*/
private
String
keys
;
/**
* 开始时间(年月日)
*/
private
String
dateFrom
;
/**
* 截止时间(年月日)
*/
private
String
dateTo
;
}
dsk-common/src/main/java/com/dsk/common/core/domain/model/EnterpriseProjectBidNoticePageBody.java
View file @
ad6aaa35
...
...
@@ -27,7 +27,7 @@ public class EnterpriseProjectBidNoticePageBody extends BasePage {
/**
* 类型
*/
private
String
tenderStage
;
private
List
<
String
>
tenderStage
;
/*
* 1金额倒序,2金额正序,3时间倒序,4时间正序
...
...
dsk-common/src/main/java/com/dsk/common/utils/file/FileUtils.java
View file @
ad6aaa35
package
com
.
dsk
.
common
.
utils
.
file
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileNotFoundException
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.io.UnsupportedEncodingException
;
import
com.dsk.common.config.RuoYiConfig
;
import
com.dsk.common.exception.base.BaseException
;
import
com.dsk.common.utils.DateUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.uuid.IdUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.FilenameUtils
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.entity.ContentType
;
import
org.apache.http.entity.mime.MultipartEntityBuilder
;
import
org.apache.http.entity.mime.content.FileBody
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
import
java.net.URLEncoder
;
...
...
@@ -15,17 +29,6 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.zip.ZipEntry
;
import
java.util.zip.ZipInputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dsk.common.utils.DateUtils
;
import
com.dsk.common.utils.StringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.lang3.ArrayUtils
;
import
com.dsk.common.config.RuoYiConfig
;
import
com.dsk.common.utils.uuid.IdUtils
;
import
org.apache.commons.io.FilenameUtils
;
/**
* 文件处理工具类
...
...
@@ -38,6 +41,10 @@ public class FileUtils
public
static
String
FILENAME_PATTERN
=
"[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+"
;
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
RuoYiConfig
.
getProfile
());
}
/**
* 检查目录是否存在,如果不存在,则创建目录,如果创建失败则返回false
*
...
...
@@ -49,8 +56,10 @@ public class FileUtils
if
(!
file
.
exists
())
{
boolean
isSuccess
=
file
.
mkdir
();
if
(!
isSuccess
)
if
(!
file
.
exists
())
{
file
.
mkdirs
();
return
!
isSuccess
;
}
return
isSuccess
;
}
else
{
return
true
;
}
...
...
@@ -152,12 +161,12 @@ public class FileUtils
return
FileUploadUtils
.
getPathFileName
(
uploadDir
,
pathName
);
}
/*
*//*
*
/**
* 删除文件
*
* @param filePath 文件
* @return
*/
/*
*/
public
static
boolean
deleteFile
(
String
filePath
)
{
boolean
flag
=
false
;
...
...
@@ -168,22 +177,20 @@ public class FileUtils
flag
=
file
.
delete
();
}
return
flag
;
}
*/
}
/**
* 删除整个文件夹或者文某个文件
*
* @param filePath 文件
* @return
*/
public
static
boolean
del
eteFile
(
String
filePath
)
{
public
static
boolean
del
Folder
(
String
filePath
)
{
try
{
if
(
StringUtils
.
isNotEmpty
(
delAllFile
(
filePath
)))
return
false
;
delAllFile
(
filePath
);
// 删除里面的所有文件
File
file
=
new
File
(
filePath
);
return
file
.
delete
();
return
file
.
delete
();
// 删除空文件夹
}
catch
(
Exception
e
)
{
log
.
info
(
"删除文件失败"
);
e
.
printStackTrace
();
return
false
;
throw
new
BaseException
(
"删除文件夹失败"
,
e
.
getMessage
());
}
}
...
...
@@ -192,32 +199,50 @@ public class FileUtils
*
* @param path 文件夹路径
*/
public
static
String
delAllFile
(
String
path
)
{
public
static
void
delAllFile
(
String
path
)
{
String
hint
=
"这是一个根目录,请更换目录!"
;
File
file
=
new
File
(
path
);
if
(!
file
.
exists
())
{
return
hint
;
throw
new
BaseException
(
"文件不存在"
)
;
}
// if (!file.isDirectory()) {
// return false;
// }
if
(
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/"
))
{
return
hint
;
throw
new
BaseException
(
hint
)
;
}
if
(
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/root"
))
{
return
hint
;
throw
new
BaseException
(
hint
)
;
}
if
(
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/usr"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/opt"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/bin"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/sbin"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/etc"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/selinux"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/sys"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/var"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/home"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/net"
))
{
return
hint
;
throw
new
BaseException
(
hint
)
;
}
if
(
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"C://"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"C:\\\\"
))
{
return
hint
;
throw
new
BaseException
(
hint
);
}
String
[]
tempList
=
file
.
list
();
File
temp
;
if
(
tempList
==
null
)
{
return
;
}
for
(
String
aTempList
:
tempList
)
{
if
(
path
.
endsWith
(
File
.
separator
))
{
temp
=
new
File
(
path
+
aTempList
);
}
else
{
temp
=
new
File
(
path
+
File
.
separator
+
aTempList
);
}
if
(
temp
.
isFile
())
{
temp
.
delete
();
}
if
(
temp
.
isDirectory
())
{
delAllFile
(
path
+
"/"
+
aTempList
);
// 删除里面的所有文件
delFolder
(
path
+
"/"
+
aTempList
);
// 删除空文件夹
}
}
return
""
;
}
...
...
@@ -292,12 +317,12 @@ public class FileUtils
/**
* 下载文件
*
* @param url 要下载的文件链接
* @param targetFolder 目标文件
* @return
* @throws IOException
*/
public
static
void
downloadFolder
(
String
url
,
String
targetFolder
)
throws
IOException
{
public
static
boolean
downloadFolder
(
String
url
,
String
targetFolder
)
throws
IOException
{
URL
downloadUrl
=
new
URL
(
url
);
HttpURLConnection
connection
=
(
HttpURLConnection
)
downloadUrl
.
openConnection
();
connection
.
setRequestMethod
(
"GET"
);
...
...
@@ -330,6 +355,52 @@ public class FileUtils
}
}
}
return
true
;
}
/**
* 上传文件
* @param url 上传链接
* @param folderPath 文件路径
* @return
* @throws IOException
*/
public
static
boolean
uploadFolder
(
String
url
,
String
folderPath
)
throws
IOException
{
File
folder
=
new
File
(
folderPath
);
if
(!
folder
.
exists
()
||
!
folder
.
isDirectory
())
{
throw
new
IllegalArgumentException
(
"文件夹路径无效: "
+
folderPath
);
}
List
<
File
>
files
=
new
ArrayList
<>();
listFiles
(
folder
,
files
);
try
(
CloseableHttpClient
httpClient
=
HttpClients
.
createDefault
())
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
MultipartEntityBuilder
builder
=
MultipartEntityBuilder
.
create
();
for
(
File
file
:
files
)
{
FileBody
fileBody
=
new
FileBody
(
file
,
ContentType
.
DEFAULT_BINARY
);
builder
.
addPart
(
"file"
,
fileBody
);
}
HttpEntity
multipart
=
builder
.
build
();
httpPost
.
setEntity
(
multipart
);
HttpResponse
response
=
httpClient
.
execute
(
httpPost
);
int
statusCode
=
response
.
getStatusLine
().
getStatusCode
();
if
(
statusCode
!=
200
)
{
throw
new
RuntimeException
(
"上传文件夹失败: "
+
response
.
getStatusLine
().
getReasonPhrase
());
}
}
return
true
;
}
private
static
void
listFiles
(
File
folder
,
List
<
File
>
files
)
{
File
[]
subFiles
=
folder
.
listFiles
();
for
(
File
subFile
:
subFiles
)
{
if
(
subFile
.
isDirectory
())
{
listFiles
(
subFile
,
files
);
}
else
{
files
.
add
(
subFile
);
}
}
}
...
...
dsk-framework/src/main/java/com/dsk/framework/web/service/SysLoginService.java
View file @
ad6aaa35
...
...
@@ -64,7 +64,7 @@ public class SysLoginService
public
String
login
(
String
username
,
String
password
,
String
code
,
String
uuid
)
{
// 验证码校验
//
validateCaptcha(username, code, uuid);
validateCaptcha
(
username
,
code
,
uuid
);
// 登录前置校验
loginPreCheck
(
username
,
password
);
// 用户验证
...
...
dsk-operate-ui/src/api/detail/party-a/urbanLnvestment.js
View file @
ad6aaa35
...
...
@@ -32,3 +32,11 @@ export function urbanInvestmentPage(data) {
data
})
}
// 同地区城投-查询选项
export
function
uipGroupData
(
data
)
{
return
request
({
url
:
'/enterprise/uipGroupData'
,
method
:
'post'
,
data
})
}
dsk-operate-ui/src/api/project/project.js
View file @
ad6aaa35
...
...
@@ -158,3 +158,28 @@ export function addXGQY(param) {
data
:
param
})
}
//删除相关企业
export
function
delXGQY
(
param
)
{
return
request
({
url
:
'/business/company/remove/'
+
param
,
method
:
'DELETE'
,
})
}
//查询资料文档
export
function
getZLWD
(
param
)
{
return
request
({
url
:
'/business/file/list'
,
method
:
'GET'
,
params
:
param
})
}
//删除资料文档
export
function
delZLWD
(
param
)
{
return
request
({
url
:
'/business/file/remove'
,
method
:
'POST'
,
data
:
param
})
}
dsk-operate-ui/src/assets/styles/project.scss
View file @
ad6aaa35
...
...
@@ -656,6 +656,7 @@
background
:
#F6F9FD
;
border-radius
:
6px
;
padding
:
24px
;
border
:
1px
solid
#F6F9FD
;
//box-sizing: content-box;
box-sizing
:
border-box
;
>
div
{
...
...
@@ -676,7 +677,6 @@
}
}
.rec_detail
:hover
{
.operate
{
display
:
block
;
...
...
dsk-operate-ui/src/views/custom/customList/index.vue
View file @
ad6aaa35
...
...
@@ -173,7 +173,7 @@
</
template
>
</el-table-column>
</el-table>
<div
class=
"bottems"
v-if=
"tableData.total>
0
"
>
<div
class=
"bottems"
v-if=
"tableData.total>
searchParam.pageSize
"
>
<el-pagination
background
:page-size=
"searchParam.pageSize"
...
...
dsk-operate-ui/src/views/custom/overview/index.vue
View file @
ad6aaa35
...
...
@@ -99,7 +99,7 @@
<div
class=
"trendcon"
>
{{
item
.
text
}}
</div>
<div
class=
"time"
>
{{
item
.
time
}}
</div>
</div>
<div
class=
"tables"
style=
"width: 100%"
>
<div
class=
"tables"
style=
"width: 100%"
v-if=
"datalist.length>10"
>
<div
class=
"bottems"
>
<el-pagination
background
...
...
@@ -236,7 +236,7 @@ export default {
{
name
:
''
,
type
:
'bar'
,
barWidth
:
'
20%
'
,
barWidth
:
'
12px
'
,
data
:
[
100
,
152
,
200
,
334
,
390
,
330
,
220
,
256
,
178
],
itemStyle
:{
normal
:
{
...
...
@@ -280,7 +280,7 @@ export default {
{
name
:
''
,
type
:
'bar'
,
barWidth
:
'
20%
'
,
barWidth
:
'
12px
'
,
data
:
[
110
,
112
,
190
,
234
,
310
,
350
,
220
,
276
,
198
],
itemStyle
:{
normal
:{
...
...
@@ -551,6 +551,12 @@ export default {
line-height
:
18px
;
padding-bottom
:
16px
;
}
&
:last-child
{
.trendcon
{
border
:
none
;
}
}
.time
{
position
:
absolute
;
right
:
16px
;
...
...
dsk-operate-ui/src/views/detail/party-a/component/Tables.vue
View file @
ad6aaa35
...
...
@@ -8,6 +8,7 @@
border
fit
highlight-current-row
:default-sort =
'defaultSort'
@
sort-change=
"sortChange"
>
<el-table-column
...
...
@@ -27,7 +28,7 @@
:min-width=
"item.minWidth"
:align=
"item.align?item.align:'left'"
:fixed=
"item.fixed"
:sortable=
"item.sortable"
:sortable=
"item.sortable
? 'custom' : false
"
:resizable=
"false"
>
<template
v-if=
"item.slotHeader"
slot=
"header"
>
<slot
:name=
"item.slotName"
></slot>
...
...
@@ -65,6 +66,10 @@ export default {
type
:
Boolean
,
default
:
false
},
defaultSort
:
{
type
:
Object
,
default
:
null
},
tableData
:
{
type
:
Array
,
default
:
[]
...
...
@@ -109,4 +114,7 @@ export default {
::v-deep
.el-table__body
tr
.current-row
>
td
.el-table__cell
{
background-color
:
#ffffff
;
}
::v-deep
.el-table__fixed
{
height
:
calc
(
100%
-
16px
)
!
important
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/dealings/bidagency.vue
View file @
ad6aaa35
...
...
@@ -11,6 +11,7 @@
<tables
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
...
...
@@ -56,10 +57,11 @@ export default {
pageNum
:
1
,
pageSize
:
10
},
defaultSort
:
{
prop
:
'issueTime'
,
order
:
'descending'
},
forData
:
[
{
label
:
'招标代理单位名称'
,
prop
:
'agency'
,
minWidth
:
'350'
,
slot
:
true
},
{
label
:
'合作项目/工程名称'
,
prop
:
'projectInfo'
,
minWidth
:
'400'
,
s
ortable
:
'custom'
,
slot
:
true
},
{
label
:
'最近一次合作时间'
,
prop
:
'issueTime'
,
minWidth
:
'140'
,
sortable
:
'custom'
}
{
label
:
'合作项目/工程名称'
,
prop
:
'projectInfo'
,
minWidth
:
'400'
,
s
lot
:
true
,
sortable
:
'custom'
,
descending
:
'5'
,
ascending
:
'6'
},
{
label
:
'最近一次合作时间'
,
prop
:
'issueTime'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入企业名称查询'
,
options
:
[]},
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/component/bidagencyDetail.vue
View file @
ad6aaa35
...
...
@@ -73,7 +73,7 @@ export default {
pageSize
:
10
}
,
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入
企业
名称查询'
,
options
:
[]
}
,
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入
合作项目/工程
名称查询'
,
options
:
[]
}
,
],
forData
:
[
{
label
:
'合作项目/工程名称'
,
prop
:
'dealTitle'
,
width
:
'720'
,
slot
:
true
}
,
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/component/customDetail.vue
View file @
ad6aaa35
...
...
@@ -79,10 +79,10 @@ export default {
pageSize
:
10
}
,
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入
企业
名称查询'
,
options
:
[]
}
,
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入
项目/工程
名称查询'
,
options
:
[]
}
,
],
forData
:
[
{
label
:
'合作项目/工程名称'
,
prop
:
'projectAllName'
,
width
:
'720'
,
slot
:
true
}
,
{
label
:
'合作项目/工程名称'
,
prop
:
'projectAllName'
,
width
:
'720'
,
fixed
:
true
,
slot
:
true
}
,
{
label
:
'项目/工程金额(万元)'
,
prop
:
'winBidAmount'
,
width
:
'160'
}
,
{
label
:
'合作时间'
,
prop
:
'winBidTime'
,
width
:
'100'
}
,
{
label
:
'项目地区'
,
prop
:
'province'
,
width
:
'160'
,
slot
:
true
}
,
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/component/supplierDetail.vue
View file @
ad6aaa35
...
...
@@ -79,10 +79,10 @@ export default {
pageSize
:
10
}
,
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入
企业
名称查询'
,
options
:
[]
}
,
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入
合作项目/工程
名称查询'
,
options
:
[]
}
,
],
forData
:
[
{
label
:
'合作项目/工程名称'
,
prop
:
'projectAllName'
,
width
:
'720'
,
slot
:
true
}
,
{
label
:
'合作项目/工程名称'
,
prop
:
'projectAllName'
,
width
:
'720'
,
fixed
:
true
,
slot
:
true
}
,
{
label
:
'项目/工程金额(万元)'
,
prop
:
'winBidAmount'
,
width
:
'160'
}
,
{
label
:
'合作时间'
,
prop
:
'winBidTime'
,
width
:
'100'
}
,
{
label
:
'项目地区'
,
prop
:
'province'
,
width
:
'160'
,
slot
:
true
}
,
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/custom.vue
View file @
ad6aaa35
...
...
@@ -11,6 +11,7 @@
<tables
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
...
...
@@ -57,11 +58,12 @@ export default {
pageNum
:
1
,
pageSize
:
10
},
defaultSort
:
{
prop
:
'time'
,
order
:
'descending'
},
forData
:
[
{
label
:
'客户名称'
,
prop
:
'companyName'
,
minWidth
:
'350'
,
slot
:
true
},
{
label
:
'合作项目/工程名称'
,
prop
:
'projectAllName'
,
minWidth
:
'400'
,
s
ortable
:
'custom'
,
slot
:
true
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
'custom'
},
{
label
:
'最近一次合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
'custom'
}
{
label
:
'合作项目/工程名称'
,
prop
:
'projectAllName'
,
minWidth
:
'400'
,
s
lot
:
true
,
sortable
:
'custom'
,
descending
:
'5'
,
ascending
:
'6'
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'最近一次合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入企业名称查询'
,
options
:
[]},
...
...
@@ -90,32 +92,6 @@ export default {
}
this
.
tableDataTotal
=
res
.
total
},
//排序-测试
sortChange
(
e
){
this
.
tableData
=
[]
let
sortRule
=
e
.
prop
+
','
+
e
.
order
switch
(
sortRule
){
case
'amount,descending'
:
this
.
queryParams
.
sort
=
1
break
case
'amount,ascending'
:
this
.
queryParams
.
sort
=
2
break
case
'time,descending'
:
this
.
queryParams
.
sort
=
3
break
case
'time,ascending'
:
this
.
queryParams
.
sort
=
4
break
case
'projectAllName,descending'
:
this
.
queryParams
.
sort
=
5
break
case
'projectAllName,ascending'
:
this
.
queryParams
.
sort
=
6
break
}
this
.
handleSearch
()
},
handleClick
(
e
,
data
)
{
this
.
rowData
=
data
this
.
isDetails
=
true
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/hiscontract.vue
View file @
ad6aaa35
...
...
@@ -11,6 +11,7 @@
<tables
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
...
...
@@ -20,8 +21,8 @@
@
sort-change=
"sortChange"
>
<template
slot=
"projectAllName"
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.id&&scope.row.projectAllName "
>
{{
scope
.
row
.
projectAllName
}}
</router-link>
<div
v-else
>
{{
scope
.
row
.
projectAllName
||
'--'
}}
</div>
<router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.id&&scope.row.projectAllName "
v-html=
"scope.row.projectAllName"
>
</router-link>
<div
v-else
v-html=
"scope.row.projectAllName || '--'"
>
</div>
</
template
>
<
template
slot=
"companyName"
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.companyId&&scope.row.companyName"
>
{{
scope
.
row
.
companyName
}}
</router-link>
...
...
@@ -49,22 +50,23 @@ export default {
pageNum
:
1
,
pageSize
:
10
},
defaultSort
:
{
prop
:
'winBidTime'
,
order
:
'descending'
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectAllName'
,
minWidth
:
'560'
,
slot
:
true
},
{
label
:
'中标时间'
,
prop
:
'winBidTime'
,
minWidth
:
'100'
,
sortable
:
'custom'
},
{
label
:
'中标时间'
,
prop
:
'winBidTime'
,
minWidth
:
'100'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'中标企业'
,
prop
:
'companyName'
,
minWidth
:
'320'
,
slot
:
true
},
{
label
:
'中标金额(万元)'
,
prop
:
'winBidAmount'
,
minWidth
:
'140'
,
sortable
:
'custom'
},
{
label
:
'下浮率(%)'
,
prop
:
'lowerRate'
,
minWidth
:
'120'
,
sortable
:
'custom'
},
{
label
:
'中标金额(万元)'
,
prop
:
'winBidAmount'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'下浮率(%)'
,
prop
:
'lowerRate'
,
minWidth
:
'120'
,
sortable
:
'custom'
,
descending
:
'7'
,
ascending
:
'8'
},
{
label
:
'项目经理 / 负责人'
,
prop
:
'staffName'
,
minWidth
:
'130'
},
{
label
:
'中标地区'
,
prop
:
'region'
,
minWidth
:
'160'
},
{
label
:
'工期(天)'
,
prop
:
'period'
,
minWidth
:
'110'
,
sortable
:
'custom'
},
{
label
:
'工期(天)'
,
prop
:
'period'
,
minWidth
:
'110'
,
sortable
:
'custom'
,
descending
:
'9'
,
ascending
:
'10'
},
{
label
:
'业绩类别'
,
prop
:
'boundType'
,
minWidth
:
'110'
}
],
formData
:
[
{
type
:
1
,
fieldName
:
'provinceId'
,
value
:
''
,
placeholder
:
'项目地区'
,
options
:
[]
},
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'中标时间'
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'中标金额'
,
startMoney
:
'amountMin'
,
endMoney
:
'amountMax'
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入
关键词
查询'
,
options
:
[]
}
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入
项目名称
查询'
,
options
:
[]
}
],
//列表
tableLoading
:
false
,
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/supplier.vue
View file @
ad6aaa35
...
...
@@ -11,6 +11,7 @@
<tables
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
...
...
@@ -57,11 +58,12 @@ export default {
pageNum
:
1
,
pageSize
:
10
},
defaultSort
:
{
prop
:
'time'
,
order
:
'descending'
},
forData
:
[
{
label
:
'供应商'
,
prop
:
'companyName'
,
minWidth
:
'350'
,
slot
:
true
},
{
label
:
'合作项目/工程名称'
,
prop
:
'projectAllName'
,
minWidth
:
'400'
,
s
ortable
:
'custom'
,
slot
:
true
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
'custom'
},
{
label
:
'最近一次合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
'custom'
}
{
label
:
'合作项目/工程名称'
,
prop
:
'projectAllName'
,
minWidth
:
'400'
,
s
lot
:
true
,
sortable
:
'custom'
,
descending
:
'5'
,
ascending
:
'6'
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'最近一次合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入企业名称查询'
,
options
:
[]},
...
...
dsk-operate-ui/src/views/detail/party-a/mixins/mixin.js
View file @
ad6aaa35
...
...
@@ -70,7 +70,9 @@ export default {
},
//排序
sortChange
(
e
){
console
.
log
(
e
)
let
item
=
this
.
forData
.
find
(
item
=>
item
.
prop
===
e
.
prop
)
this
.
queryParams
.
sort
=
item
[
e
.
order
]
this
.
handleSearch
()
}
}
}
dsk-operate-ui/src/views/detail/party-a/riskInformation/businessAnomaly.vue
View file @
ad6aaa35
...
...
@@ -60,8 +60,6 @@ export default {
//列表
tableLoading
:
false
,
tableData
:[],
pageIndex
:
1
,
pageSize
:
10
,
tableDataTotal
:
0
,
}
},
...
...
dsk-operate-ui/src/views/detail/party-a/riskInformation/openacourtsessionNotice.vue
View file @
ad6aaa35
...
...
@@ -75,8 +75,6 @@ export default {
//列表
tableLoading
:
false
,
tableData
:[],
pageIndex
:
1
,
pageSize
:
10
,
tableDataTotal
:
0
,
}
},
...
...
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/regionalEconomies.vue
View file @
ad6aaa35
...
...
@@ -4,6 +4,7 @@
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
区域经济
</span>
</div>
<div
class=
"params-dw"
><img
src=
"@/assets/images/addree.png"
/>
广东省-广州市
</div>
</div>
<div
class=
"table-item"
>
<el-table
...
...
@@ -253,6 +254,16 @@ export default {
}
.query-box
{
margin
:
10px
0
20px
;
.params-dw
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#0081FF
;
img
{
width
:
14px
;
height
:
14px
;
margin-right
:
5px
;
}
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
View file @
ad6aaa35
...
...
@@ -10,79 +10,79 @@
>
<template
slot=
"slot"
>
<div
class=
"search-box"
>
<span
style=
"cursor: pointer;"
@
click=
"handleSearch"
>
筛选
<i
class=
"el-icon-caret-bottom"
style=
"color:rgba(35,35,35,0.4);margin-left: 5px"
></i></span>
<span
class=
"search-box-t"
:class=
"queryParams.uipExecutiveLevel ||
queryParams.uipBusinessType.length > 0 ||
queryParams.bratingSubjectLevel.length > 0 ||
queryParams.shareholderBg.length > 0 ||
queryParams.equityRelationship.length > 0 ||
queryParams.platformImportance.length > 0 ||
queryParams.developmentZone.length > 0 ? 'search-box-ta' : ''"
@
click=
"handleSearch1"
>
筛选
<i
:class=
"searchState ? 'el-icon-caret-top' : 'el-icon-caret-bottom'"
></i></span>
<div
v-show=
"searchState"
ref=
"showContent"
class=
"search-main"
>
<div
class=
"item"
>
<span
class=
"wrap_label"
>
行政等级
</span>
<div
class=
"item_ckquery"
>
<span
:class=
"
{color_text:
xzdjCalss
== ''}" @click="changeXZDJ('')">全部
</span>
<span
:class=
"
{color_text:
queryParams.uipExecutiveLevel
== ''}" @click="changeXZDJ('')">全部
</span>
<template
v-for=
"(item,index) in xzdj"
>
<span
:class=
"
{color_text:i
ndex+1 === xzdjCalss}" @click="changeXZDJ(index+1)">
{{
item
.
name
}}
</span>
<span
:class=
"
{color_text:i
tem == queryParams.uipExecutiveLevel}" @click="changeXZDJ(item)">
{{
item
}}
</span>
</
template
>
</div>
</div>
<div
class=
"item"
>
<span
class=
"wrap_label"
>
城投业务类型
</span>
<div
class=
"item_ckquery"
>
<span>
全部
</span>
<
template
v-for=
"(item,index) in
typeList
"
>
<span>
{{
item
}}
</span>
<span
:class=
"{color_text:queryParams.uipBusinessType.length == 0}"
@
click=
"changeBeCurrent('','uipBusinessType')"
>
全部
</span>
<
template
v-for=
"(item,index) in
uipGroupDatalist.uipBusinessType
"
>
<span
:class=
"
{color_text:queryParams.uipBusinessType.includes(item)}" @click="changeBeCurrent(item,'uipBusinessType')"
>
{{
item
}}
</span>
</
template
>
</div>
</div>
<div
class=
"item"
>
<span
class=
"wrap_label"
>
主体评级
</span>
<div
class=
"item_ckquery"
>
<span>
全部
</span>
<
template
v-for=
"(item,index) in
ztpj
"
>
<span>
{{
item
}}
</span>
<span
:class=
"{color_text:queryParams.bratingSubjectLevel.length == 0}"
@
click=
"changeBeCurrent('','bratingSubjectLevel')"
>
全部
</span>
<
template
v-for=
"(item,index) in
uipGroupDatalist.bratingSubjectLevel
"
>
<span
:class=
"
{color_text:queryParams.bratingSubjectLevel.includes(item)}" @click="changeBeCurrent(item,'bratingSubjectLevel')"
>
{{
item
}}
</span>
</
template
>
</div>
</div>
<div
class=
"item"
>
<span
class=
"wrap_label"
>
股东背景
</span>
<div
class=
"item_ckquery"
>
<span>
全部
</span>
<
template
v-for=
"(item,index) in
gdbj
"
>
<span>
{{
item
}}
</span>
<span
:class=
"{color_text:queryParams.shareholderBg.length == 0}"
@
click=
"changeBeCurrent('','shareholderBg')"
>
全部
</span>
<
template
v-for=
"(item,index) in
uipGroupDatalist.shareholderBg
"
>
<span
:class=
"
{color_text:queryParams.shareholderBg.includes(item)}" @click="changeBeCurrent(item,'shareholderBg')"
>
{{
item
}}
</span>
</
template
>
</div>
</div>
<div
class=
"item"
>
<span
class=
"wrap_label"
>
股权关系
</span>
<div
class=
"item_ckquery"
>
<span>
全部
</span>
<
template
v-for=
"(item,index) in
gqgx
"
>
<span>
{{
item
}}
</span>
<span
:class=
"{color_text:queryParams.equityRelationship.length == 0}"
@
click=
"changeBeCurrent('','equityRelationship')"
>
全部
</span>
<
template
v-for=
"(item,index) in
uipGroupDatalist.equityRelationship
"
>
<span
:class=
"
{color_text:queryParams.equityRelationship.includes(item)}" @click="changeBeCurrent(item,'equityRelationship')"
>
{{
item
}}
</span>
</
template
>
</div>
</div>
<div
class=
"item"
>
<span
class=
"wrap_label"
>
平台重要性
</span>
<div
class=
"item_ckquery"
>
<span>
全部
</span>
<
template
v-for=
"(item,index) in
pt
"
>
<span>
{{
item
}}
</span>
<span
:class=
"{color_text:queryParams.platformImportance.length == 0}"
@
click=
"changeBeCurrent('','platformImportance')"
>
全部
</span>
<
template
v-for=
"(item,index) in
uipGroupDatalist.platformImportance
"
>
<span
:class=
"
{color_text:queryParams.platformImportance.includes(item)}" @click="changeBeCurrent(item,'platformImportance')"
>
{{
item
}}
</span>
</
template
>
</div>
</div>
<div
class=
"item"
>
<span
class=
"wrap_label"
style=
"width: 78px;"
>
开发区类别
</span>
<span
class=
"wrap_label"
>
开发区类别
</span>
<div
class=
"item_ckquery"
>
<span>
全部
</span>
<span
:class=
"{color_text:queryParams.developmentZone.length == 0}"
@
click=
"changeBeCurrent('','developmentZone')"
>
全部
</span>
<
template
v-for=
"(item,index) in lfqType"
>
<span>
{{
item
}}
</span>
<span
:class=
"
{color_text:queryParams.developmentZone.includes(item)}" @click="changeBeCurrent(item,'developmentZone')"
>
{{
item
}}
</span>
</
template
>
</div>
</div>
<div
class=
"item"
>
<span
class=
"wrap_label"
>
更多筛选
</span>
<div
class=
"item_ckquery"
>
<span
:class=
"addresslength>0?'select-active':''"
>
注册地区{{addresslength>0?(addresslength+'项'):''}}
</span>
<el-cascader
ref=
"address"
class=
"cascader-region"
popper-class=
'cascader-region-addd'
@
input=
"addressListbtn"
v-model=
"addressType"
:options=
"addressList"
:props=
"props"
collapse-tags
></el-cascader>
</div>
</div>
</div>
</div>
</template>
...
...
@@ -109,7 +109,8 @@
import
mixin
from
'../mixins/mixin'
import
dataRegion
from
'@/assets/json/dataRegion'
import
{
urbanInvestmentPage
urbanInvestmentPage
,
uipGroupData
}
from
'@/api/detail/party-a/urbanLnvestment'
export
default
{
name
:
'SameRegion'
,
...
...
@@ -122,12 +123,22 @@ export default {
queryParams
:
{
provinceId
:
500000
,
cityId
:
500100
,
uipExecutiveLevel
:
''
,
uipBusinessType
:
[],
bratingSubjectLevel
:
[],
shareholderBg
:
[],
equityRelationship
:
[],
platformImportance
:
[],
developmentZone
:
[],
pageNum
:
1
,
pageSize
:
15
},
forData
:
[
{
label
:
'企业名称'
,
prop
:
'companyName'
,
width
:
'369'
,
slot
:
true
},
{
label
:
'区域'
,
prop
:
'area'
,
width
:
'100'
},
{
label
:
'招标数量'
,
prop
:
'biddingCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'城投拿地'
,
prop
:
'landInfoCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'供应商'
,
prop
:
'supplierCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'主体评级'
,
prop
:
'bratingSubjectLevel'
,
width
:
'110'
},
{
label
:
'债劵余额(亿元)'
,
prop
:
'bondBalance'
,
width
:
'130'
},
{
label
:
'行政级别'
,
prop
:
'uipExecutiveLevel'
,
width
:
'120'
},
...
...
@@ -153,22 +164,9 @@ export default {
],
formData
:
[
{
type
:
0
,
fieldName
:
'penalizeReasonType'
,
value
:
''
,
placeholder
:
'筛选'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'请输入关键词'
,
options
:
[]},
],
xzdj
:[
{
name
:
'省级'
,
key
:
1
,
},
{
name
:
'地级市'
,
key
:
2
,
},
{
name
:
'区县级'
,
key
:
3
,
}
{
type
:
3
,
fieldName
:
'keyword'
,
value
:
''
,
placeholder
:
'请输入关键词'
,
options
:
[]},
],
xzdj
:[
'省级'
,
'地级市'
,
'区县级'
],
selected
:[],
xzdjCalss
:
''
,
typeList
:[
'土地开发整理'
,
'基础设施建设'
,
'棚改保障房建设'
,
'公用事业'
,
'文化旅游'
,
'交通建设运营'
,
'产投平台'
],
...
...
@@ -185,6 +183,7 @@ export default {
addressType
:
[],
addresslength
:
0
,
searchState
:
false
,
uipGroupDatalist
:[],
//列表
tableLoading
:
false
,
tableData
:[],
...
...
@@ -193,6 +192,7 @@ export default {
},
created
()
{
this
.
handleQuery
()
this
.
getScreen
()
},
computed
:
{
...
...
@@ -250,8 +250,8 @@ export default {
}
this
.
addressList
=
str
;
},
handleSearch
(
event
){
// 筛选
handleSearch
1
(
event
){
// this.searchState=!this.searchState;
let
dom
=
this
.
$refs
.
showContent
;
if
(
!
dom
.
contains
(
event
.
target
))
{
...
...
@@ -259,8 +259,43 @@ export default {
document
.
removeEventListener
(
'click'
,
this
.
handleSearch
);
}
},
// 请求筛选条件
getScreen
(){
uipGroupData
().
then
(
res
=>
{
this
.
uipGroupDatalist
=
res
.
data
})
},
changeXZDJ
(
index
)
{
this
.
xzdjCalss
=
index
;
this
.
queryParams
.
uipExecutiveLevel
=
index
;
this
.
changes
()
},
changeBeCurrent
(
index
,
name
)
{
if
(
index
){
let
i
=
this
.
queryParams
[
name
].
indexOf
(
index
)
if
(
i
==
-
1
){
this
.
queryParams
[
name
].
push
(
index
);
}
else
{
this
.
queryParams
[
name
].
splice
(
i
,
1
);
}
}
else
{
this
.
queryParams
[
name
]
=
[]
}
this
.
changes
()
this
.
$forceUpdate
();
},
changes
(){
let
params
=
this
.
formParams
()
params
.
pageNum
=
1
this
.
queryParams
.
pageNum
=
1
params
.
uipExecutiveLevel
=
this
.
queryParams
.
uipExecutiveLevel
params
.
uipBusinessType
=
this
.
queryParams
.
uipBusinessType
params
.
bratingSubjectLevel
=
this
.
queryParams
.
bratingSubjectLevel
params
.
shareholderBg
=
this
.
queryParams
.
shareholderBg
params
.
equityRelationship
=
this
.
queryParams
.
equityRelationship
params
.
platformImportance
=
this
.
queryParams
.
platformImportance
params
.
developmentZone
=
this
.
queryParams
.
developmentZone
this
.
handleQuery
(
params
)
},
addressListbtn
()
{
let
arr
=
this
.
$refs
.
address
.
getCheckedNodes
();
...
...
@@ -290,7 +325,50 @@ export default {
this
.
tableDataTotal
=
res
.
data
.
totalCount
this
.
tableLoading
=
false
})
},
//排序
sortChange
(
e
){
if
(
e
.
order
==
'ascending'
){
this
.
queryParams
.
field
=
e
.
prop
this
.
queryParams
.
order
=
'asc'
}
else
if
(
e
.
order
==
'descending'
){
this
.
queryParams
.
field
=
e
.
prop
this
.
queryParams
.
order
=
'desc'
}
else
{
delete
this
.
queryParams
.
field
delete
this
.
queryParams
.
order
}
this
.
handleSearch
();
},
// attr 参数表示当前点击的是哪一列,传进来的是点击列的标识
// rev 参数表示的是点击当前列表头之后是升序降序或者null,三种值分别是['ascending', 'descending', null]
sortFun
(
attr
,
rev
){
if
(
rev
===
'ascending'
)
{
rev
=
1
}
else
if
(
rev
===
'descending'
)
{
rev
=
-
1
}
else
{
rev
=
0
}
return
function
(
x
,
y
)
{
let
a
=
x
[
attr
]
let
b
=
y
[
attr
]
if
(
!
a
)
{
a
=
""
}
if
(
!
b
)
{
b
=
""
}
if
(
a
<
b
)
{
return
rev
*
-
1
}
if
(
a
>
b
)
{
return
rev
*
1
}
return
0
}
}
}
}
</
script
>
...
...
@@ -304,10 +382,26 @@ export default {
}
.search-box
{
display
:
inline-block
;
margin-right
:
32px
;
/*cursor: pointer;*/
color
:
#232323
;
position
:
relative
;
.search-box-t
{
font-size
:
14px
;
font-weight
:
400
;
line-height
:
32px
;
color
:
#232323
;
margin-right
:
8px
;
cursor
:
pointer
;
i
{
color
:rgba
(
35
,
35
,
35
,
0
.4
)
;
margin-left
:
5px
}
}
.search-box-ta
{
color
:
#0081FF
;
i
{
color
:
#0081FF
;
}
}
.search-main
{
background
:
#ffffff
;
box-shadow
:
0px
4px
10px
0px
rgba
(
0
,
0
,
0
,
0
.1
);
...
...
@@ -331,11 +425,13 @@ export default {
}
.item_ckquery
{
position
:
relative
;
flex
:
1
;
span
{
color
:
#232323
;
padding
:
5px
12
px
;
padding
:
5px
6
px
;
display
:
inline-block
;
cursor
:
pointer
;
margin-right
:
8px
;
}
.color_text
{
background
:
#F3F4F5
;
...
...
dsk-operate-ui/src/views/project/overview/index.vue
View file @
ad6aaa35
...
...
@@ -323,8 +323,8 @@ export default {
// trigger: 'axis'
},
legend
:
{
right
:
'151
px'
,
top
:
"
0
px"
,
left
:
'12
px'
,
top
:
"
15
px"
,
data
:
[
'成交金额'
,
'储备项目'
,
'跟进动态'
]
},
series
:
[
...
...
@@ -513,12 +513,12 @@ export default {
}
}
.chart-bot
{
height
:
354px
;
height
:
auto
;
margin-bottom
:
12px
;
.left
{
float
:
left
;
width
:
353px
;
height
:
100%
;
height
:
354px
;
background
:
url("../../../assets/images/project/glbj.png")
no-repeat
top
center
;
background-size
:
100%
100%
;
color
:
#FFFFFF
;
...
...
@@ -569,11 +569,11 @@ export default {
}
.right
{
float
:
right
;
height
:
100%
;
height
:
auto
;
width
:
calc
(
100%
-
369px
);
.records
{
margin-top
:
-17px
;
height
:
3
27px
;
height
:
6
27px
;
overflow-y
:
auto
;
width
:
100%
;
padding-right
:
47px
;
...
...
@@ -621,6 +621,7 @@ export default {
.chart2
{
width
:
100%
;
padding
:
0
0
0
16px
;
height
:
285px
;
margin-top
:
-20px
;
}
...
...
dsk-operate-ui/src/views/project/projectList/component/addProject.vue
View file @
ad6aaa35
...
...
@@ -34,7 +34,7 @@
<el-option
v-for=
"(item,index) in projectCategory"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"投资估算:"
class=
"row"
>
<el-form-item
label=
"投资估算
(万元)
:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入金额"
@
input=
"number"
v-model=
"queryParam.investmentAmount"
></el-input>
</el-form-item>
<el-form-item
label=
"可见范围:"
class=
"row"
>
...
...
dsk-operate-ui/src/views/project/projectList/component/xgqy.vue
View file @
ad6aaa35
...
...
@@ -4,20 +4,18 @@
<el-card
class=
"box-card noborder"
>
<div
class=
"cardtitles"
>
相关企业
</div>
<div
class=
"searchbtns"
>
<el-select
class=
"select"
placeholder=
"企业类型"
>
<el-select
placeholder=
"请选择"
>
<el-select
class=
"select"
placeholder=
"企业类型"
v-model=
"searchParam.companyType"
@
change=
"handleCurrentChange(1)"
>
<el-option
v-for=
"(item,index) in companytype"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</el-select>
<div
class=
"searchInput"
>
<el-input
type=
"text"
placeholder=
"输入关键词查询"
></el-input>
<div
class=
"btn"
>
搜索
</div>
<el-input
type=
"text"
placeholder=
"输入关键词查询"
v-model=
"searchParam.companyName"
></el-input>
<div
class=
"btn"
@
click=
"handleCurrentChange(1)"
>
搜索
</div>
</div>
<div
class=
"btn btn_primary h32 b3"
@
click=
"opennew"
><div
class=
"img img1"
></div>
添加相关企业
</div>
</div>
<div
class=
"document"
>
<div
class=
"document
tables
"
>
<el-table
:data=
"tableData"
:data=
"tableData
.rows
"
style=
"width: 100%"
>
<template
slot=
"empty"
>
...
...
@@ -29,26 +27,26 @@
</div>
</
template
>
<el-table-column
prop=
"
dat
e"
prop=
"
companyNam
e"
label=
"企业名称"
>
<
template
slot-scope=
"scope"
>
<div
class=
"wordprimary"
>
集团投标常用资料
</div>
<div
class=
"wordprimary"
>
{{
scope
.
row
.
companyName
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"
name
"
label=
"对接深度"
prop=
"
depth
"
label=
"对接深度
/竞争力度
"
>
</el-table-column>
<el-table-column
prop=
"
nam
e"
prop=
"
companyRol
e"
label=
"企业角色"
sortable
width=
""
>
</el-table-column>
<el-table-column
prop=
"
name
"
prop=
"
responsiblePerson
"
label=
"负责人"
width=
""
>
</el-table-column>
...
...
@@ -59,21 +57,27 @@
width=
""
>
<
template
slot-scope=
"scope"
>
<div
class=
"hoverbtn"
>
<div
class=
"sc"
>
删除
</div>
<div
class=
"sc"
@
click=
"ondel = scope.row.id"
>
删除
</div>
</div>
</
template
>
</el-table-column>
</el-table>
<div
class=
"tables"
>
<div
class=
"bottems"
>
<div
class=
"delform"
v-if=
"ondel != -1"
>
<div
class=
"words"
>
是否将企业删除
</div>
<div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"delQY()"
>
确定
</div>
<div
class=
"btnsmall btn_cancel h28"
@
click=
"ondel = -1"
>
取消
</div>
</div>
</div>
<div
class=
"tables"
v-if=
"tableData.total > searchParam.pageSize"
>
<div
class=
"bottems"
v-if=
"ondel != -1"
>
<el-pagination
background
:page-size=
"20
"
:current-page=
"1
"
:page-size=
"searchParam.pageSize
"
:current-page=
"searchParam.pageNum
"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"1000
"
>
:total=
"tableData.total
"
>
</el-pagination>
</div>
</div>
...
...
@@ -87,12 +91,12 @@
<span>
新建相关企业
</span>
</div>
<div
class=
"types"
>
<div
v-for=
"(item,index) in companytype"
:class=
"{'on':types==item.dictValue}"
@
click=
"t
ypes=item.dictLabel
"
><i></i>
{{item.dictLabel}}
</div>
<div
v-for=
"(item,index) in companytype"
:class=
"{'on':types==item.dictValue}"
@
click=
"t
otype(item.dictValue)
"
><i></i>
{{item.dictLabel}}
</div>
</div>
<div
class=
"popform"
>
<div
class=
"popbot"
style=
"padding-right: 0"
>
<div
class=
"btn btn_cancel h32"
@
click=
"cancel"
>
返回
</div>
<div
class=
"btn btn_primary h32"
@
click=
"
hzhbVisible=tru
e"
>
下一步
</div>
<div
class=
"btn btn_cancel h32"
@
click=
"cancel
(0)
"
>
返回
</div>
<div
class=
"btn btn_primary h32"
@
click=
"
gettyp
e"
>
下一步
</div>
</div>
</div>
</el-dialog>
...
...
@@ -105,29 +109,23 @@
<span>
新建相关企业-{{types}}
</span>
</div>
<el-form
class=
"popform i"
label-width=
"85px"
:rules=
"rules"
ref=
"ruleForm"
>
<el-form-item
label=
"企业名称:"
prop=
"projectName"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
v-if=
"types == companytype[0].dictValue"
label=
"对接深度:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"企业名称:"
prop=
"companyName"
class=
"row"
>
<el-input
type=
"text"
v-model=
"queryParam.companyName"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
v-if=
"types == companytype[1].dictValue"
label=
"合作阶段:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
v-if=
"types == companytype[2].dictValue"
label=
"竞争力度:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
<el-form-item
:label=
"typename"
class=
"row"
>
<el-input
type=
"text"
v-model=
"queryParam.depth"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"企业角色:"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-select
placeholder=
"请选择"
v-model=
"queryParam.companyRole"
>
<el-option
v-for=
"(item,index) in companyrole"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"负责人:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
<el-input
type=
"text"
v-model=
"queryParam.responsiblePerson"
placeholder=
"请输入"
></el-input>
</el-form-item>
<div
class=
"popbot"
>
<div
class=
"btn btn_cancel h32"
@
click=
"cancel"
>
返回
</div>
<div
class=
"btn btn_primary h32"
>
添加
</div>
<div
class=
"btn btn_cancel h32"
@
click=
"cancel
(1)
"
>
返回
</div>
<div
class=
"btn btn_primary h32"
@
click=
"addqy"
>
添加
</div>
</div>
</el-form>
</el-dialog>
...
...
@@ -137,7 +135,7 @@
<
script
>
import
"@/assets/styles/project.scss"
import
{
getXGQY
,
addXGQY
}
from
'@/api/project/project'
import
{
getXGQY
,
addXGQY
,
delXGQY
}
from
'@/api/project/project'
import
{
getDictType
}
from
'@/api/main'
export
default
{
name
:
'xgqy'
,
...
...
@@ -169,12 +167,30 @@
address
:
'上海市普陀区金沙江路 1516 弄'
}
],
typelist
:[
'对接深度:'
,
'合作阶段:'
,
'竞争力度:'
],
typename
:
""
,
rules
:{
project
Name
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
company
Name
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
},
companytype
:[],
companyrole
:[],
queryParam
:{
businessId
:
this
.
$route
.
query
.
id
,
companyId
:
''
,
companyName
:
''
,
companyRole
:
''
,
companyType
:
''
,
responsiblePerson
:
''
,
depth
:
''
,
},
searchParam
:{
pageSize
:
20
,
pageNum
:
1
,
businessId
:
this
.
$route
.
query
.
id
,
companyType
:
""
,
companyName
:
''
,
},
ondel
:
-
1
,
}
},
created
(){
...
...
@@ -187,18 +203,70 @@
getDictType
(
'company_role'
).
then
(
result
=>
{
this
.
companyrole
=
result
.
code
==
200
?
result
.
data
:[]
})
this
.
getlist
()
},
methods
:{
delQY
(){
let
id
=
this
.
ondel
delXGQY
(
id
).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'删除成功'
)
this
.
ondel
=
-
1
this
.
getlist
()
}
})
},
addqy
(){
addXGQY
(
this
.
queryParam
).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'添加成功!'
)
this
.
getlist
()
}
else
{
this
.
$message
.
error
(
res
.
msg
)
}
})
},
getlist
(){
getXGQY
(
this
.
searchParam
).
then
(
result
=>
{
console
.
log
(
result
)
this
.
tableData
=
result
})
},
//翻页
handleCurrentChange
(
val
)
{
console
.
log
(
`当前页:
${
val
}
`
);
this
.
searchParam
.
pageNum
=
val
this
.
getlist
()
},
cancel
(){
cancel
(
type
){
if
(
type
==
0
)
this
.
dialogVisible
=
false
else
this
.
hzhbVisible
=
false
},
totype
(
value
){
this
.
types
=
value
},
gettype
(){
this
.
queryParam
.
companyType
=
this
.
types
this
.
companytype
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
dictValue
==
this
.
types
){
this
.
typename
=
this
.
typelist
[
index
]
}
})
this
.
hzhbVisible
=
true
},
//打开新建窗口
opennew
(){
this
.
dialogVisible
=
true
this
.
queryParam
=
{
businessId
:
this
.
$route
.
query
.
id
,
companyId
:
''
,
companyName
:
''
,
companyRole
:
''
,
companyType
:
''
,
responsiblePerson
:
''
,
depth
:
''
,
}
},
}
}
...
...
@@ -220,4 +288,8 @@
.box-card
{
position
:
relative
;
}
.delform
{
position
:
fixed
;
left
:
50%
;
top
:
50%
;
transform
:translate
(
-50
%
,
-50
%
)
}
</
style
>
dsk-operate-ui/src/views/project/projectList/component/xmsl.vue
View file @
ad6aaa35
...
...
@@ -26,7 +26,7 @@
{{
xmjd
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"xmjd"
class=
"select-multiple"
placeholder=
"请选择"
@
c
lick
=
"editXMSL(
{projectStage:xmjd})">
<el-select
v-model=
"xmjd"
class=
"select-multiple"
placeholder=
"请选择"
@
c
hange
=
"editXMSL(
{projectStage:xmjd})">
<el-option
v-for=
"(item,index) in projectStage"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</div>
...
...
dsk-operate-ui/src/views/project/projectList/component/zlwd.vue
View file @
ad6aaa35
...
...
@@ -6,74 +6,76 @@
<div
class=
"searchbtns"
>
<div
class=
"searchInput"
>
<el-input
type=
"text"
placeholder=
"输入关键词查询"
></el-input>
<div
class=
"btn"
>
搜索
</div>
<div
class=
"btn"
@
click=
"handleCurrentChange(1)"
>
搜索
</div>
</div>
<div
class=
"btn btn_primary h32 b2"
@
click=
"
isupload=true
"
><div
class=
"img img2"
></div>
上传
</div>
<div
class=
"btn btn_primary h32 b2"
@
click=
"
getUP
"
><div
class=
"img img2"
></div>
上传
</div>
</div>
<div
class=
"filepath"
v-if=
"filename"
><font
@
click=
"getall"
>
全部
</font>
/
<span>
<img
class=
"img"
src=
"@/assets/images/folder.png"
>
{{
filename
}}
</span></div>
<div
class=
"uploadbox"
v-if=
"isupload"
>
<div>
<el-upload
class=
"upload-demo"
action=
"https://jsonplaceholder.typicode.com/posts/"
:on-preview=
"handlePreview"
:on-remove=
"handleRemove"
:before-remove=
"beforeRemove"
multiple
:limit=
"3"
:on-exceed=
"handleExceed"
:file-list=
"fileList"
>
:action=
"action"
:on-change=
"handleFileListChange"
:multiple=
"false"
ref=
"upload"
:file-list=
"fileList"
accept=
".word,.pdf.excel,.xlsx"
:headers=
"headers"
:show-file-list=
"false"
:on-success=
"onSuccess"
>
<div
class=
"wj wj1"
></div>
上传文件
</el-upload>
</div>
<div>
<el-upload
class=
"upload-demo"
action=
"https://jsonplaceholder.typicode.com/posts/"
:on-remove=
"fileRemove"
:on-change=
"fileChang"
multiple
:limit=
"3"
:on-exceed=
"handleExceed"
:action=
"action"
:on-change=
"handleFileListChange"
:multiple=
"false"
:on-success=
"onSuccess1"
ref=
"uploadFile"
:headers=
"headers"
:show-file-list=
"false"
:file-list=
"fileList"
>
<div
class=
"wj wj2"
></div>
上传文件夹
</el-upload>
</div>
</div>
<div
class=
"document"
>
<div
class=
"document
tables
"
>
<el-table
:data=
"
tableData
"
:data=
"
fileDatas.rows
"
style=
"width: 100%"
>
<template
slot=
"empty"
>
<div
class=
"empty"
>
<img
src=
"@/assets/images/project/empty.png"
>
<div
class=
"p1"
>
暂无数据展示
</div>
<div
class=
"p2"
>
抱歉,你还未添加相关数据,快去
添加
吧
</div>
<div
class=
"btn btn_primary h36 w102"
@
click=
"
opennew"
>
新增联系人
</div>
<div
class=
"p2"
>
抱歉,你还未添加相关数据,快去
上传
吧
</div>
<div
class=
"btn btn_primary h36 w102"
@
click=
"
getUP"
>
上传文档
</div>
</div>
</
template
>
<el-table-column
prop=
"
dat
e"
prop=
"
nam
e"
label=
"文件名称"
>
<
template
slot-scope=
"scope"
>
<div>
<img
class=
"img"
src=
"@/assets/images/folder.png"
>
<
!--
<img
class=
"img"
src=
"@/assets/images/word.png"
>
--
>
<
!--
<img
class=
"img"
src=
"@/assets/images/pdf.png"
>
--
>
<
!--
<img
class=
"img"
src=
"@/assets/images/excel_1.png"
>
--
>
<span>
集团投标常用资料
</span>
<div
@
click=
"getFile(scope.row)"
>
<img
v-if=
"scope.row.type == 'file'"
class=
"img"
src=
"@/assets/images/folder.png"
>
<
img
v-if=
"scope.row.type == 'word'"
class=
"img"
src=
"@/assets/images/word.png"
>
<
img
v-if=
"scope.row.type == 'pdf'"
class=
"img"
src=
"@/assets/images/pdf.png"
>
<
img
v-if=
"scope.row.type == 'excel'"
class=
"img"
src=
"@/assets/images/excel_1.png"
>
<span>
{{
scope
.
row
.
name
}}
</span>
</div>
</
template
>
</el-table-column>
<!--<el-table-column-->
<!--prop="name"-->
<!--label="创建人"-->
<!-->-->
<!--</el-table-column>-->
<el-table-column
prop=
"name"
label=
"创建人"
>
</el-table-column>
<el-table-column
prop=
"name"
prop=
"creatTime"
label=
"更新时间"
sortable
width=
""
>
...
...
@@ -85,121 +87,146 @@
width=
""
>
<
template
slot-scope=
"scope"
>
<div
class=
"hoverbtn"
>
<div
class=
"xz"
>
下载
</div>
<div
class=
"sc"
>
删除
</div>
<div
class=
"xz"
@
click=
"downnlod(scope.row)"
>
下载
</div>
<div
class=
"sc"
@
click=
"del(scope.row.filePath)"
>
删除
</div>
</div>
</
template
>
</el-table-column>
</el-table>
<div
class=
"tables"
>
<div
class=
"tables"
v-if=
"fileDatas.total>param.pagesize"
>
<div
class=
"bottems"
>
<el-pagination
background
:page-size=
"
20
"
:current-page=
"
1
"
:page-size=
"
param.pagesize
"
:current-page=
"
param.pageNum
"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"
1000
"
>
:total=
"
fileDatas.total
"
>
</el-pagination>
</div>
</div>
</div>
<el-dialog
class=
"popups"
:visible
.
sync=
"dialogVisible"
width=
"464px"
>
<div
class=
"poptitle"
>
<img
src=
"@/assets/images/economies/icon.png"
>
<span>
重庆市轨道交通3号线二期工程4标段施工总承包
</span>
</div>
<div
class=
"popform"
>
<div
class=
"row"
>
<span
class=
"left"
>
联系人姓名:
</span>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</div>
<div
class=
"row"
>
<span
class=
"left"
>
联系人角色:
</span>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
</el-select>
</div>
<div
class=
"row"
>
<span
class=
"left"
>
联系人职位:
</span>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</div>
<div
class=
"row"
>
<span
class=
"left"
>
联系人公司/机关:
</span>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</div>
<div
class=
"row"
>
<span
class=
"left"
>
内部维护人:
</span>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</div>
<div
class=
"row"
>
<span
class=
"left"
>
联系方式:
</span>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</div>
<div
class=
"popbot"
>
<div
class=
"btn btn_cancel h32"
@
click=
"cancel"
>
返回
</div>
<div
class=
"btn btn_primary h32"
>
保存
</div>
</div>
</div>
</el-dialog>
</el-card>
</div>
</template>
<
script
>
import
"@/assets/styles/project.scss"
import
{
getToken
}
from
"@/utils/auth"
;
import
{
getZLWD
,
delZLWD
}
from
"@/api/project/project"
;
export
default
{
name
:
'zlwd'
,
data
(){
return
{
isupload
:
false
,
dialogVisible
:
false
,
textarea
:
""
,
nowedit
:
-
1
,
//当前正在编辑的文本
tipslit
:[],
//项目标签
tipsvalue
:
""
,
//标签填写内容
tableData
:
[
{
date
:
'2016-05-02'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1518 弄'
},
{
date
:
'2016-05-04'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1517 弄'
},
{
date
:
'2016-05-01'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1519 弄'
},
{
date
:
'2016-05-03'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1516 弄'
}
],
fileList
:[],
//上传的文件
//上传
action
:
process
.
env
.
VUE_APP_BASE_API
+
'/business/file/upload'
,
fileList
:
[],
headers
:
{
Authorization
:
"Bearer "
+
getToken
(),
filePath
:
this
.
$route
.
query
.
id
,
},
param
:{
pageNum
:
1
,
pagesize
:
20
,
filePath
:
this
.
$route
.
query
.
id
,
},
fileDatas
:[],
filename
:
''
,
}
},
mounted
(){
this
.
$refs
.
uploadFile
.
$children
[
0
].
$refs
.
input
.
webkitdirectory
=
true
;
created
(){
this
.
getList
()
// console.log(this.$ref)
},
methods
:{
//上传文件夹
fileChang
(
file
,
fileList
,
name
)
{
this
.
form
.
instFilePics
=
fileList
;
getall
(){
this
.
param
.
filePath
=
this
.
$route
.
query
.
id
this
.
filename
=
''
this
.
headers
.
filePath
=
this
.
$route
.
query
.
id
this
.
handleCurrentChange
(
1
)
},
fileRemove
(
file
,
fileList
,
name
)
{
this
.
form
.
instFilePics
=
fileList
getList
(){
getZLWD
(
this
.
param
).
then
(
res
=>
{
this
.
fileDatas
=
res
if
(
this
.
fileDatas
.
rows
!=
null
&&
this
.
fileDatas
.
length
>
0
){
this
.
fileDatas
.
forEach
(
item
=>
{
let
names
=
item
.
filePath
.
split
(
'
\
\'
)
item.name = names[names.length-1]
let types = item.name.split('
.
')
item.type = types.length>1?types[1]:'
file
'
})
}
})
},
getFile(row){
if(row.type == '
file
'){
this.filename = row.name
this.headers.filePath = this.$route.query.id+'
\\
'+row.name
this.param.filePath = row.filePath
this.handleCurrentChange(1)
}else{
return false
}
},
getUP(){
this.isupload=true
this.$nextTick(() => {
this.$refs.uploadFile.$children[0].$refs.input.webkitdirectory = true
})
},
downnlod(row){
let a = document.createElement("a");
a.setAttribute("href", row.filePath);
a.setAttribute("download", row.name);
document.body.appendChild(a);
a.click();
},
del(path){
delZLWD(path).then(res=>{
if(res.code == 200){
this.$message.success('
删除成功!
')
this.handleCurrentChange(1)
}
})
},
handleFileListChange(file, fileList) {
if (fileList.length > 0) {
this.fileList = [fileList[fileList.length - 1]];
}
},
onSuccess(res, file, fileList) {
if(res.code == 200 ){
this.$refs["upload"].submit();
let _this = this
setTimeout(function() {
_this.getList()
_this.isupload = false
},3000)
}
else
this.$message.error({message:res.msg,showClose:true})
},
onSuccess1(res, file, fileList) {
if(res.code == 200 ){
this.$refs["uploadFile"].submit();
let _this = this
setTimeout(function() {
_this.getList()
_this.isupload = false
},3000)
}
else
this.$message.error({message:res.msg,showClose:true})
},
//翻页
handleCurrentChange(val) {
console
.
log
(
`当前页:
${
val
}
`
);
this.param.pageNum(1)
this.getList()
},
cancel(){
this.dialogVisible = false
...
...
@@ -213,6 +240,25 @@
</
script
>
<
style
lang=
"scss"
scoped
>
.filepath
{
font-size
:
12px
;
height
:
30px
;
line-height
:
16px
;
padding-left
:
24px
;
>
font
{
opacity
:
0
.4
;
}
>
span
{
position
:
relative
;
padding-left
:
23px
;
}
.img
{
position
:
absolute
;
top
:
-3px
;
width
:
20px
;
left
:
0
;
}
}
.w102
{
width
:
102px
;
}
...
...
dsk-operate-ui/src/views/project/projectList/detail.vue
View file @
ad6aaa35
...
...
@@ -197,16 +197,22 @@
this
.
thisindex
=
result
.
data
.
projectStage
let
list
=
[]
let
txt
=
''
if
(
result
.
data
.
provinceId
){
if
(
result
.
data
.
provinceId
!=
""
){
list
.
push
(
result
.
data
.
provinceId
)
txt
+=
result
.
data
.
provinceName
}
if
(
result
.
data
.
cityId
){
list
.
push
(
result
.
data
.
cityId
)
txt
+=
'/'
+
result
.
data
.
cityName
}
if
(
result
.
data
.
districtId
){
list
.
push
(
result
.
data
.
districtId
)
}
if
(
result
.
data
.
provinceName
){
txt
+=
result
.
data
.
provinceName
}
if
(
result
.
data
.
cityName
){
txt
+=
'/'
+
result
.
data
.
cityName
}
if
(
result
.
data
.
districtName
){
txt
+=
'/'
+
result
.
data
.
districtName
}
this
.
address
=
list
.
length
>
0
?
list
:
"待添加"
...
...
@@ -279,6 +285,14 @@
handleChange
(
value
)
{
var
labelString
=
this
.
$refs
.
myCascader
.
getCheckedNodes
()[
0
].
pathLabels
;
let
param
=
{
provinceId
:
null
,
provinceName
:
null
,
cityId
:
null
,
cityName
:
null
,
districtId
:
null
,
districtName
:
null
,
}
let
txt
=
''
labelString
.
forEach
((
item
,
index
)
=>
{
let
str
=
''
...
...
@@ -286,13 +300,17 @@
str
=
'/'
}
txt
+=
str
+
item
if
(
index
==
0
){
param
.
provinceName
=
item
}
if
(
index
==
1
){
param
.
cityName
=
item
}
if
(
index
==
2
){
param
.
districtName
=
item
}
})
this
.
addresstxt
=
txt
let
param
=
{
provinceId
:
null
,
cityId
:
null
,
districtId
:
null
}
value
.
forEach
((
item
,
index
)
=>
{
if
(
index
==
0
){
param
.
provinceId
=
parseInt
(
item
)
...
...
dsk-operate-ui/src/views/project/projectList/index.vue
View file @
ad6aaa35
...
...
@@ -113,7 +113,7 @@
</div>
<div
class=
"datalist"
>
<div
class=
"datali"
v-for=
"(item,index) in datalist"
>
<div
class=
"det-title"
@
click=
"toDetail(item.id)"
>
{{
item
.
projectName
}}
<span
v-if=
"activeName!='first'"
class=
"people"
><i>
A
</i>
四川-李丽
<font
color=
"#FA8A00"
v-if=
"activeName!='first'"
>
正在跟进
</font></span></div>
<div
class=
"det-title"
@
click=
"toDetail(item.id)"
>
{{
item
.
projectName
}}
<span
v-if=
"activeName!='first'"
class=
"people"
><i>
{{
item
.
nickName1
}}
</i>
{{
item
.
nickName
}}
<font
color=
"#FA8A00"
v-if=
"activeName!='first'"
>
正在跟进
</font></span></div>
<div
class=
"det-tips"
><span
class=
"tips tip1"
v-if=
"item.label"
>
{{
item
.
label
}}
</span><span
v-if=
"item.address"
class=
"tips tip2"
>
{{
item
.
address
}}
</span></div>
<div
class=
"det-contets"
>
<div
class=
"det-con"
>
...
...
@@ -133,7 +133,7 @@
<span
class=
"wordprimary"
>
{{
item
.
ownerCompany
}}
</span>
</div>
</div>
<el-divider></el-divider>
<el-divider
v-if=
"index != datalist.length-1"
></el-divider>
<div
class=
"operates"
v-if=
"activeName=='first'"
>
<div
class=
"i1"
><img
src=
"@/assets/images/follow.png"
>
跟进
</div>
<div
class=
"i2"
><img
src=
"@/assets/images/edit.png"
>
编辑
</div>
...
...
@@ -294,6 +294,7 @@ export default {
if
(
item
.
districtName
!=
""
&&
item
.
districtName
!=
null
)
str
+=
'-'
+
item
.
districtName
item
.
address
=
str
item
.
nickName1
=
item
.
nickName
?
item
.
nickName
.
slice
(
0
,
1
):
''
})
}
})
...
...
dsk-operate-ui/vue.config.js
View file @
ad6aaa35
...
...
@@ -35,6 +35,8 @@ module.exports = {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[
process
.
env
.
VUE_APP_BASE_API
]:
{
target
:
`http://122.9.160.122:9011`
,
// target: `http://192.168.60.126:9011`,
// target: `http://192.168.60.27:8766`,
changeOrigin
:
true
,
pathRewrite
:
{
[
'^'
+
process
.
env
.
VUE_APP_BASE_API
]:
''
...
...
dsk-system/src/main/java/com/dsk/system/domain/BusinessIdDto.java
View file @
ad6aaa35
...
...
@@ -19,4 +19,9 @@ public class BusinessIdDto {
* 项目标签名称
*/
private
String
label
;
/**
* 文件路径
*/
private
String
folderPath
;
}
dsk-system/src/main/java/com/dsk/system/dskService/EnterpriseProjectService.java
View file @
ad6aaa35
...
...
@@ -120,15 +120,11 @@ public class EnterpriseProjectService {
return
BeanUtil
.
toBean
(
map
,
R
.
class
);
}
// HashMap<String, Object> contentParam = new HashMap<>();
// contentParam.put("data_type", "bid_plan");
// contentParam.put("filter_type", 2);
// contentParam.put("strategy_id", contentId);
HashMap
<
String
,
Object
>
param
=
new
HashMap
<>();
param
.
put
(
"data_type"
,
"kaibiao"
);
param
.
put
(
"filter_type"
,
2
);
param
.
put
(
"strategy_id"
,
"647477d52ba0e4cb1410c7f6"
);
Map
<
String
,
Object
>
contentMap
=
dskOpenApiUtil
.
requestBody
(
"/mongocontent/v1/cjb/mongo_content"
,
BeanUtil
.
beanToMap
(
param
,
false
,
false
));
HashMap
<
String
,
Object
>
contentParam
=
new
HashMap
<>();
contentParam
.
put
(
"data_type"
,
"bid_plan"
);
contentParam
.
put
(
"filter_type"
,
2
);
contentParam
.
put
(
"strategy_id"
,
contentId
);
Map
<
String
,
Object
>
contentMap
=
dskOpenApiUtil
.
requestBody
(
"/mongocontent/v1/cjb/mongo_content"
,
BeanUtil
.
beanToMap
(
contentParam
,
false
,
false
));
Map
contentData
=
MapUtils
.
getMap
(
contentMap
,
"data"
,
null
);
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/BusinessInfoServiceImpl.java
View file @
ad6aaa35
...
...
@@ -169,6 +169,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
//新增项目主信息
BusinessInfo
businessInfo
=
new
BusinessInfo
();
BeanUtil
.
copyProperties
(
dto
,
businessInfo
);
businessInfo
.
setConstructionUnit
(
dto
.
getOwnerCompany
());
int
addBusiness
=
businessInfoMapper
.
insertBusinessInfo
(
businessInfo
);
if
(
addBusiness
>
0
)
{
//获取登陆用户的部门id
...
...
@@ -176,9 +177,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
// Long deptId = 100l;
//新增用户-项目关系信息
int
addbusinessUser
=
businessUserMapper
.
insertBusinessUser
(
new
BusinessUser
(
businessInfo
.
getId
(),
deptId
.
intValue
(),
dto
.
getUserId
(),
1
));
//新增项目-关联企业信息
int
addRelateCompany
=
businessRelateCompanyMapper
.
insertBusinessRelateCompany
(
new
BusinessRelateCompany
(
businessInfo
.
getId
(),
dto
.
getCompanyId
(),
dto
.
getOwnerCompany
(),
"业主"
));
return
addbusinessUser
>
0
&&
addRelateCompany
>
0
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
return
addbusinessUser
>
0
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
}
return
AjaxResult
.
error
();
...
...
dsk-system/src/main/resources/mapper/business/BusinessRelateCompanyMapper.xml
View file @
ad6aaa35
...
...
@@ -15,6 +15,7 @@
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"depth"
column=
"depth"
/>
<result
property=
"companyType"
column=
"company_type"
/>
</resultMap>
<sql
id=
"selectBusinessRelateCompanyVo"
>
...
...
@@ -27,7 +28,8 @@
phone,
depth,
create_time,
update_time
update_time,
company_type
from business_relate_company
</sql>
...
...
@@ -46,6 +48,7 @@
#{responsiblePerson}
</if>
<if
test=
"phone != null and phone != ''"
>
and phone = #{phone}
</if>
<if
test=
"companyType != null and companyType != ''"
>
and company_type = #{companyType}
</if>
</where>
</select>
...
...
@@ -67,6 +70,7 @@
<if
test=
"phone != null"
>
phone,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
<if
test=
"companyType != null"
>
company_type,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"businessId != null"
>
#{businessId},
</if>
...
...
@@ -78,6 +82,7 @@
<if
test=
"phone != null"
>
#{phone},
</if>
<if
test=
"createTime != null"
>
#{createTime},
</if>
<if
test=
"updateTime != null"
>
#{updateTime},
</if>
<if
test=
"companyType != null"
>
#{companyType},
</if>
</trim>
</insert>
...
...
@@ -93,6 +98,7 @@
<if
test=
"phone != null"
>
phone = #{phone},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"companyType != null"
>
company_type = #{companyType},
</if>
</trim>
where id = #{id}
</update>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment