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
715f3f0d
Commit
715f3f0d
authored
Jun 07, 2023
by
zhangyi
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
4dbeb127
21bf2946
Changes
76
Show whitespace changes
Inline
Side-by-side
Showing
76 changed files
with
4830 additions
and
926 deletions
+4830
-926
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
+31
-40
BusinessInfoController.java
...m/dsk/web/controller/business/BusinessInfoController.java
+9
-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
RegionalEconomicDataController.java
...er/search/macroMarket/RegionalEconomicDataController.java
+7
-9
SpecialBondProjectsController.java
...ler/search/macroMarket/SpecialBondProjectsController.java
+6
-3
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
pom.xml
dsk-common/pom.xml
+12
-0
BusinessInfo.java
.../java/com/dsk/common/core/domain/entity/BusinessInfo.java
+78
-0
BusinessRelateCompany.java
.../dsk/common/core/domain/entity/BusinessRelateCompany.java
+5
-0
OpRegionalEconomicDataDetailsDto.java
...com/dsk/common/dtos/OpRegionalEconomicDataDetailsDto.java
+22
-0
OpRegionalEconomicDataYearsListDto.java
...m/dsk/common/dtos/OpRegionalEconomicDataYearsListDto.java
+16
-0
SpecialBondInformationDetailsDto.java
...com/dsk/common/dtos/SpecialBondInformationDetailsDto.java
+22
-0
FileUtils.java
...on/src/main/java/com/dsk/common/utils/file/FileUtils.java
+298
-16
dealings.js
dsk-operate-ui/src/api/detail/party-a/dealings.js
+9
-0
urbanLnvestment.js
dsk-operate-ui/src/api/detail/party-a/urbanLnvestment.js
+8
-0
project.js
dsk-operate-ui/src/api/project/project.js
+34
-0
public.css
dsk-operate-ui/src/assets/styles/public.css
+1
-1
index.js
dsk-operate-ui/src/router/index.js
+30
-0
CustomMoneySelect.vue
.../src/views/detail/party-a/component/CustomMoneySelect.vue
+364
-0
CustomTimeSelect.vue
...i/src/views/detail/party-a/component/CustomTimeSelect.vue
+320
-0
HeadForm.vue
...perate-ui/src/views/detail/party-a/component/HeadForm.vue
+23
-0
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
bidrecords.vue
...erate-ui/src/views/detail/party-a/dealings/bidrecords.vue
+27
-28
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
+40
-56
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
+8
-1
announcement.vue
...erate-ui/src/views/detail/party-a/opport/announcement.vue
+2
-2
bond.vue
dsk-operate-ui/src/views/detail/party-a/opport/bond.vue
+5
-5
landtransaction.vue
...te-ui/src/views/detail/party-a/opport/landtransaction.vue
+2
-2
proposed.vue
dsk-operate-ui/src/views/detail/party-a/opport/proposed.vue
+3
-3
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
...iews/enterpriseData/components/SearchEnterprise/index.vue
+1271
-0
index.vue
dsk-operate-ui/src/views/enterpriseData/index.vue
+195
-35
jsnr.vue
...erate-ui/src/views/project/projectList/component/jsnr.vue
+2
-1
lxr.vue
...perate-ui/src/views/project/projectList/component/lxr.vue
+1
-1
xgqy.vue
...erate-ui/src/views/project/projectList/component/xgqy.vue
+113
-55
xmsl.vue
...erate-ui/src/views/project/projectList/component/xmsl.vue
+91
-41
detail.vue
dsk-operate-ui/src/views/project/projectList/detail.vue
+88
-68
index.vue
dsk-operate-ui/src/views/project/projectList/index.vue
+1
-1
details.vue
dsk-operate-ui/src/views/radar/BidRecord/details.vue
+23
-282
details.vue
dsk-operate-ui/src/views/radar/Bidding/details.vue
+325
-0
details.vue
dsk-operate-ui/src/views/radar/Tender/details.vue
+2
-11
index.vue
...operate-ui/src/views/radar/components/BidRecord/index.vue
+3
-3
index.vue
dsk-operate-ui/src/views/radar/components/Bidding/index.vue
+831
-0
index.vue
dsk-operate-ui/src/views/radar/index.vue
+5
-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
BusinessBrowseVo.java
.../main/java/com/dsk/system/domain/vo/BusinessBrowseVo.java
+33
-4
BusinessFollowRecordMapper.java
...ava/com/dsk/system/mapper/BusinessFollowRecordMapper.java
+2
-1
BusinessUserMapper.java
...c/main/java/com/dsk/system/mapper/BusinessUserMapper.java
+7
-0
EconomicService.java
...src/main/java/com/dsk/system/service/EconomicService.java
+3
-6
IBusinessFollowRecordService.java
.../com/dsk/system/service/IBusinessFollowRecordService.java
+2
-1
SpecialPurposeBondsService.java
...va/com/dsk/system/service/SpecialPurposeBondsService.java
+2
-1
BusinessFollowRecordServiceImpl.java
.../system/service/impl/BusinessFollowRecordServiceImpl.java
+3
-1
BusinessInfoServiceImpl.java
.../com/dsk/system/service/impl/BusinessInfoServiceImpl.java
+20
-10
BusinessRelateCompanyServiceImpl.java
...system/service/impl/BusinessRelateCompanyServiceImpl.java
+2
-2
EconomicServiceImpl.java
...java/com/dsk/system/service/impl/EconomicServiceImpl.java
+5
-11
SpecialPurposeBondsServiceImpl.java
...k/system/service/impl/SpecialPurposeBondsServiceImpl.java
+3
-5
BusinessInfoMapper.xml
...src/main/resources/mapper/business/BusinessInfoMapper.xml
+31
-6
BusinessRelateCompanyMapper.xml
...resources/mapper/business/BusinessRelateCompanyMapper.xml
+7
-1
BusinessUserMapper.xml
...src/main/resources/mapper/business/BusinessUserMapper.xml
+8
-0
No files found.
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessBacklogController.java
View file @
715f3f0d
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 @
715f3f0d
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 @
715f3f0d
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 @
715f3f0d
package
com
.
dsk
.
web
.
controller
.
business
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dsk.common.core.domain.entity.BusinessFollowRecord
;
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.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.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* 项目跟进记录Controller
...
...
@@ -39,11 +28,12 @@ public class BusinessFollowRecordController extends BaseController
* 根据项目id查询项目跟进记录
*/
// @PreAuthorize("@ss.hasPermi('system:record:list')")
@GetMapping
(
"/list/{businessId}"
)
public
AjaxResult
list
(
@PathVariable
Integer
businessId
)
{
return
success
(
businessFollowRecordService
.
selectBusinessFollowRecordList
(
businessId
));
}
// @GetMapping("/list/{businessId}")
// public TableDataInfo list(@PathVariable("businessId") Integer businessId)
// {
// startPage();
// return getDataTable(businessFollowRecordService.selectBusinessFollowRecordList(businessId));
// }
/**
* 新增项目跟进记录
...
...
@@ -60,13 +50,24 @@ public class BusinessFollowRecordController extends BaseController
* 分页查询项目跟进记录
*/
// @PreAuthorize("@ss.hasPermi('system:record:list')")
// @GetMapping("/list")
// public TableDataInfo list(BusinessFollowRecord businessFollowRecord)
// {
// startPage();
// List<BusinessFollowRecord> list = businessFollowRecordService.selectBusinessFollowRecordList(businessFollowRecord);
// return getDataTable(list);
// }
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
@RequestBody
(
required
=
false
)
BusinessIdDto
businessId
)
{
startPage
();
List
<
BusinessFollowRecord
>
list
=
businessFollowRecordService
.
selectBusinessFollowRecordList
(
businessId
);
return
getDataTable
(
list
);
}
/**
* 删除项目跟进记录
*/
// @PreAuthorize("@ss.hasPermi('system:record:remove')")
// @Log(title = "项目跟进记录", businessType = BusinessType.DELETE)
@DeleteMapping
(
"remove/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
(
value
=
"ids"
,
required
=
false
)
Long
[]
ids
)
{
return
toAjax
(
businessFollowRecordService
.
deleteBusinessFollowRecordByIds
(
ids
));
}
// /**
// * 导出项目跟进记录列表
...
...
@@ -102,14 +103,4 @@ public class BusinessFollowRecordController extends BaseController
// return toAjax(businessFollowRecordService.updateBusinessFollowRecord(businessFollowRecord));
// }
// /**
// * 删除项目跟进记录
// */
// @PreAuthorize("@ss.hasPermi('system:record:remove')")
// @Log(title = "项目跟进记录", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public AjaxResult remove(@PathVariable Long[] ids)
// {
// return toAjax(businessFollowRecordService.deleteBusinessFollowRecordByIds(ids));
// }
}
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessInfoController.java
View file @
715f3f0d
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.BusinessInfoDt
o
;
import
com.dsk.common.
core.page.TableDataInf
o
;
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
...
...
@@ -69,9 +61,9 @@ public class BusinessInfoController extends BaseController
*/
// @PreAuthorize("@ss.hasPermi('system:business:query')")
@GetMapping
(
"/browse/{businessId}"
)
public
AjaxResult
browse
(
@PathVariable
Integer
i
d
)
public
AjaxResult
browse
(
@PathVariable
(
"businessId"
)
Integer
businessI
d
)
{
return
success
(
businessInfoService
.
browse
(
i
d
));
return
success
(
businessInfoService
.
browse
(
businessI
d
));
}
/**
...
...
@@ -88,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
)
{
...
...
@@ -99,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
)
{
...
...
@@ -110,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 @
715f3f0d
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 @
715f3f0d
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 @
715f3f0d
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/macroMarket/RegionalEconomicDataController.java
View file @
715f3f0d
package
com
.
dsk
.
web
.
controller
.
search
.
macroMarket
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.dtos.OpRegionalEconomicDataRegionalListDto
;
import
com.dsk.common.dtos.OpRegionalEconomicDataStatisticsRegionalDto
;
import
com.dsk.common.dtos.OpRegionalEconomicDataV1PageDto
;
import
com.dsk.common.dtos.*
;
import
com.dsk.system.service.EconomicService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -44,9 +42,9 @@ public class RegionalEconomicDataController {
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@
Ge
tMapping
(
"/years/list"
)
public
AjaxResult
yearsList
()
{
return
economicService
.
yearsList
();
@
Pos
tMapping
(
"/years/list"
)
public
AjaxResult
yearsList
(
@RequestBody
OpRegionalEconomicDataYearsListDto
dto
)
{
return
economicService
.
yearsList
(
dto
);
}
...
...
@@ -57,9 +55,9 @@ public class RegionalEconomicDataController {
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@
GetMapping
(
"/details/{id}
"
)
public
AjaxResult
details
(
@
PathVariable
(
"id"
)
Integer
id
)
{
return
economicService
.
details
(
id
);
@
PostMapping
(
"/details
"
)
public
AjaxResult
details
(
@
RequestBody
@Valid
OpRegionalEconomicDataDetailsDto
detailsDto
)
{
return
economicService
.
details
(
detailsDto
);
}
...
...
dsk-admin/src/main/java/com/dsk/web/controller/search/macroMarket/SpecialBondProjectsController.java
View file @
715f3f0d
package
com
.
dsk
.
web
.
controller
.
search
.
macroMarket
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.dtos.SpecialBondInformationDetailsDto
;
import
com.dsk.common.dtos.SpecialBondInformationPageDto
;
import
com.dsk.common.dtos.SpecialPurposeBondsDto
;
import
com.dsk.common.dtos.SpecialPurposeBondsPageDto
;
...
...
@@ -8,6 +9,8 @@ import com.dsk.system.service.SpecialPurposeBondsService;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
/**
* @ClassName SpecialBondProjectsController
* @Description 专项债项目
...
...
@@ -42,9 +45,9 @@ public class SpecialBondProjectsController {
*@Author: Dgm
*@date: 2023/5/18 10:29
*/
@
GetMapping
(
"/details/{id}
"
)
public
AjaxResult
details
(
@
PathVariable
(
"id"
)
String
id
)
{
return
specialPurposeBondsService
.
details
(
id
);
@
PostMapping
(
"/details
"
)
public
AjaxResult
details
(
@
RequestBody
@Valid
SpecialBondInformationDetailsDto
detailsDto
)
{
return
specialPurposeBondsService
.
details
(
detailsDto
);
}
...
...
dsk-admin/src/main/java/com/dsk/web/controller/search/service/MarketAnalysisService.java
View file @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -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/pom.xml
View file @
715f3f0d
...
...
@@ -150,6 +150,18 @@
<artifactId>
dsk-acc-open-sdk-java
</artifactId>
<version>
${dsk-openapi-sdk.version}
</version>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
<version>
4.5.13
</version>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpmime
</artifactId>
<version>
4.5.13
</version>
</dependency>
</dependencies>
</project>
dsk-common/src/main/java/com/dsk/common/core/domain/entity/BusinessInfo.java
View file @
715f3f0d
...
...
@@ -142,6 +142,78 @@ public class BusinessInfo extends BaseEntity
@Excel
(
name
=
"评标委员会"
)
private
String
evaluationBidCouncil
;
/** 建设单位 */
@Excel
(
name
=
"建设单位"
)
private
String
constructionUnit
;
/** 建设单位负责人 */
@Excel
(
name
=
"建设单位负责人"
)
private
String
constructionPrincipal
;
/** 建设单位联系电话 */
@Excel
(
name
=
"建设单位联系电话"
)
private
String
constructionPhone
;
/** 主管单位 */
@Excel
(
name
=
"主管单位"
)
private
String
supervisorUnit
;
/** 主管单位负责人 */
@Excel
(
name
=
"主管单位负责人"
)
private
String
supervisorPrincipal
;
/** 主管单位联系电话 */
@Excel
(
name
=
"主管单位联系电话"
)
private
String
supervisorPhone
;
public
String
getConstructionUnit
()
{
return
constructionUnit
;
}
public
void
setConstructionUnit
(
String
constructionUnit
)
{
this
.
constructionUnit
=
constructionUnit
;
}
public
String
getConstructionPrincipal
()
{
return
constructionPrincipal
;
}
public
void
setConstructionPrincipal
(
String
constructionPrincipal
)
{
this
.
constructionPrincipal
=
constructionPrincipal
;
}
public
String
getConstructionPhone
()
{
return
constructionPhone
;
}
public
void
setConstructionPhone
(
String
constructionPhone
)
{
this
.
constructionPhone
=
constructionPhone
;
}
public
String
getSupervisorUnit
()
{
return
supervisorUnit
;
}
public
void
setSupervisorUnit
(
String
supervisorUnit
)
{
this
.
supervisorUnit
=
supervisorUnit
;
}
public
String
getSupervisorPrincipal
()
{
return
supervisorPrincipal
;
}
public
void
setSupervisorPrincipal
(
String
supervisorPrincipal
)
{
this
.
supervisorPrincipal
=
supervisorPrincipal
;
}
public
String
getSupervisorPhone
()
{
return
supervisorPhone
;
}
public
void
setSupervisorPhone
(
String
supervisorPhone
)
{
this
.
supervisorPhone
=
supervisorPhone
;
}
public
String
getEvaluationBidWay
()
{
return
evaluationBidWay
;
}
...
...
@@ -437,6 +509,12 @@ public class BusinessInfo extends BaseEntity
.
append
(
"earnestMoneyPay"
,
getEarnestMoneyPay
())
.
append
(
"earnestMoney"
,
getEarnestMoney
())
.
append
(
"evaluationBidCouncil"
,
getEvaluationBidCouncil
())
.
append
(
"constructionUnit"
,
getConstructionUnit
())
.
append
(
"constructionPrincipal"
,
getConstructionPrincipal
())
.
append
(
"constructionPhone"
,
getConstructionPhone
())
.
append
(
"supervisorUnit"
,
getSupervisorUnit
())
.
append
(
"supervisorPrincipal"
,
getSupervisorPrincipal
())
.
append
(
"supervisorPhone"
,
getSupervisorPhone
())
.
toString
();
}
}
dsk-common/src/main/java/com/dsk/common/core/domain/entity/BusinessRelateCompany.java
View file @
715f3f0d
...
...
@@ -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/dtos/OpRegionalEconomicDataDetailsDto.java
0 → 100644
View file @
715f3f0d
package
com
.
dsk
.
common
.
dtos
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 区域经济大全-详情
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
OpRegionalEconomicDataDetailsDto
{
/**
* id
*/
@NotNull
(
message
=
"id 不能为空"
)
private
Integer
id
;
}
dsk-common/src/main/java/com/dsk/common/dtos/OpRegionalEconomicDataYearsListDto.java
0 → 100644
View file @
715f3f0d
package
com
.
dsk
.
common
.
dtos
;
import
lombok.Data
;
/**
* @ClassName OpRegionalEconomicDataYearsListDto
* @Description 获取年份
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
OpRegionalEconomicDataYearsListDto
{
private
Integer
year
;
}
dsk-common/src/main/java/com/dsk/common/dtos/SpecialBondInformationDetailsDto.java
0 → 100644
View file @
715f3f0d
package
com
.
dsk
.
common
.
dtos
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @ClassName SpecialBondInformationDetailsDto
* @Description 专项债-详情
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
SpecialBondInformationDetailsDto
{
/**
* 专项债券唯一标识
*/
@NotNull
(
message
=
"id 不能为空"
)
private
Integer
id
;
}
dsk-common/src/main/java/com/dsk/common/utils/file/FileUtils.java
View file @
715f3f0d
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
java.net.URLEncoder
;
import
java.nio.charset.StandardCharsets
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
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
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
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
;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.zip.ZipEntry
;
import
java.util.zip.ZipInputStream
;
/**
* 文件处理工具类
*
* @author dsk
*/
@Slf4j
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
*
* @param path 文件夹路径
* @return boolean
*/
public
static
boolean
newFolder
(
String
path
)
{
File
file
=
new
File
(
path
);
if
(!
file
.
exists
())
{
boolean
isSuccess
=
file
.
mkdir
();
if
(!
isSuccess
)
if
(!
file
.
exists
())
{
file
.
mkdirs
();
}
return
isSuccess
;
}
else
{
return
true
;
}
}
/**
*
*
* @param folderPath 文件夹路径
* @return 文件夹路径
*/
public
static
String
newFolder1
(
String
folderPath
)
{
String
filePath
=
folderPath
;
try
{
File
myFilePath
=
new
File
(
filePath
);
if
(!
myFilePath
.
exists
())
{
myFilePath
.
mkdirs
();
}
}
catch
(
Exception
e
)
{
log
.
error
(
"创建文件夹失败"
);
filePath
=
""
;
e
.
printStackTrace
();
}
return
filePath
;
}
/**
* 输出指定文件的byte数组
*
...
...
@@ -104,7 +161,7 @@ public class FileUtils
return
FileUploadUtils
.
getPathFileName
(
uploadDir
,
pathName
);
}
/**
/**
* 删除文件
*
* @param filePath 文件
...
...
@@ -121,6 +178,231 @@ public class FileUtils
}
return
flag
;
}
/**
* 删除整个文件夹或者文某个文件
*
* @param filePath 文件
* @return
*/
public
static
boolean
delFolder
(
String
filePath
)
{
try
{
delAllFile
(
filePath
);
// 删除里面的所有文件
File
file
=
new
File
(
filePath
);
return
file
.
delete
();
// 删除空文件夹
}
catch
(
Exception
e
)
{
throw
new
BaseException
(
"删除文件夹失败"
,
e
.
getMessage
());
}
}
/**
* 文件夹过滤
*
* @param path 文件夹路径
*/
public
static
void
delAllFile
(
String
path
)
{
String
hint
=
"这是一个根目录,请更换目录!"
;
File
file
=
new
File
(
path
);
if
(!
file
.
exists
())
{
throw
new
BaseException
(
"文件不存在"
);
}
// if (!file.isDirectory()) {
// return false;
// }
if
(
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/"
))
{
throw
new
BaseException
(
hint
);
}
if
(
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"/root"
))
{
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"
))
{
throw
new
BaseException
(
hint
);
}
if
(
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"C://"
)
||
file
.
getAbsolutePath
().
equalsIgnoreCase
(
"C:\\\\"
))
{
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
);
// 删除空文件夹
}
}
}
/**
* 获取文件夹中所有文件
* @param filePath 全路径
* @return
*/
public
static
List
<
String
>
getAllFiles
(
String
filePath
)
{
List
<
String
>
fileList
=
new
ArrayList
<
String
>();
File
file
=
new
File
(
filePath
);
if
(!
file
.
exists
())
{
return
fileList
;
}
if
(!
file
.
isDirectory
())
{
return
fileList
;
}
// 获取当前目录下的文件和文件夹
File
[]
files
=
file
.
listFiles
();
if
(
files
!=
null
)
{
for
(
File
directory
:
files
)
{
// 如果是文件夹则递归调用此方法
if
(
directory
.
isDirectory
())
{
fileList
.
add
(
directory
.
getPath
());
getAllFiles
(
directory
.
getPath
());
}
else
{
// 如果是文件则直接输出路径
fileList
.
add
(
directory
.
getPath
());
}
}
return
fileList
;
}
return
fileList
;
}
/**
* 获取文件夹中的所有文件,不包括文件夹
*
* @param path 文件夹路径
* @return List<File>
*/
public
static
List
<
File
>
getAllFileNames
(
String
path
)
{
List
<
File
>
fileList
=
new
ArrayList
<
File
>();
File
file
=
new
File
(
path
);
if
(!
file
.
exists
())
{
return
fileList
;
}
if
(!
file
.
isDirectory
())
{
return
fileList
;
}
String
[]
tempList
=
file
.
list
();
File
tempFile
;
for
(
String
fileName
:
tempList
)
{
if
(
path
.
endsWith
(
File
.
separator
))
{
tempFile
=
new
File
(
path
+
fileName
);
}
else
{
tempFile
=
new
File
(
path
+
File
.
separator
+
fileName
);
}
if
(
tempFile
.
isFile
())
{
fileList
.
add
(
tempFile
);
}
if
(
tempFile
.
isDirectory
())
{
List
<
File
>
allFiles
=
getAllFileNames
(
tempFile
.
getAbsolutePath
());
fileList
.
addAll
(
allFiles
);
}
}
return
fileList
;
}
/**
* 下载文件
* @param url 要下载的文件链接
* @param targetFolder 目标文件
* @return
* @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"
);
connection
.
connect
();
if
(
connection
.
getResponseCode
()
!=
HttpURLConnection
.
HTTP_OK
)
{
throw
new
RuntimeException
(
"下载文件夹失败: "
+
connection
.
getResponseMessage
());
}
try
(
ZipInputStream
zipInputStream
=
new
ZipInputStream
(
connection
.
getInputStream
()))
{
ZipEntry
entry
;
while
((
entry
=
zipInputStream
.
getNextEntry
())
!=
null
)
{
String
entryName
=
entry
.
getName
();
if
(
StringUtils
.
isBlank
(
entryName
))
{
continue
;
}
File
entryFile
=
new
File
(
targetFolder
,
entryName
);
if
(
entry
.
isDirectory
())
{
entryFile
.
mkdirs
();
}
else
{
File
parent
=
entryFile
.
getParentFile
();
if
(!
parent
.
exists
())
{
parent
.
mkdirs
();
}
try
(
FileOutputStream
outputStream
=
new
FileOutputStream
(
entryFile
))
{
IOUtils
.
copy
(
zipInputStream
,
outputStream
);
}
}
}
}
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-operate-ui/src/api/detail/party-a/dealings.js
View file @
715f3f0d
...
...
@@ -71,3 +71,12 @@ export function historySendProvince(data) {
data
:
data
})
}
// 投标记录列表
export
function
tenderPage
(
data
)
{
return
request
({
url
:
'/enterpriseBussiness/tenderPage'
,
method
:
'post'
,
data
:
data
})
}
dsk-operate-ui/src/api/detail/party-a/urbanLnvestment.js
View file @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -44,6 +44,23 @@ export function editXMNR(param) {
data
:
param
})
}
//项目标签新增
export
function
addLabel
(
param
)
{
return
request
({
url
:
'/business/label/add'
,
method
:
'POST'
,
data
:
param
})
}
//项目标签删除
export
function
removeLabel
(
param
)
{
return
request
({
url
:
'/business/label/remove'
,
method
:
'POST'
,
data
:
param
})
}
//查询项目联系人
export
function
getLXR
(
param
)
{
...
...
@@ -124,3 +141,20 @@ export function editGZDB(param) {
data
:
param
})
}
//查询相关企业
export
function
getXGQY
(
param
)
{
return
request
({
url
:
'/business/company/list'
,
method
:
'GET'
,
params
:
param
})
}
//新增相关企业
export
function
addXGQY
(
param
)
{
return
request
({
url
:
'/business/company/add'
,
method
:
'POST'
,
data
:
param
})
}
dsk-operate-ui/src/assets/styles/public.css
View file @
715f3f0d
...
...
@@ -318,7 +318,7 @@ select {
.jabph_popper_box
{
position
:
absolute
;
left
:
14
6
px
;
left
:
14
4
px
;
bottom
:
-1px
;
background
:
#ffffff
;
width
:
186px
;
...
...
dsk-operate-ui/src/router/index.js
View file @
715f3f0d
...
...
@@ -199,6 +199,36 @@ export const constantRoutes = [
}
]
},
{
path
:
'/BidRecord'
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'noredirect'
,
children
:
[
{
path
:
'/radar/BidRecord/details/:id(
\\
d+)'
,
component
:
()
=>
import
(
'@/views/radar/BidRecord/details'
),
name
:
'BidRecordDetails'
,
meta
:
{
title
:
'开标记录详情'
,
icon
:
'radar'
}
}
]
},
{
path
:
'/Bidding'
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'noredirect'
,
children
:
[
{
path
:
'/radar/Bidding/details/:id(
\\
d+)'
,
component
:
()
=>
import
(
'@/views/radar/Bidding/details'
),
name
:
'BiddingDetails'
,
meta
:
{
title
:
'招标计划详情'
,
icon
:
'radar'
}
}
]
},
]
...
...
dsk-operate-ui/src/views/detail/party-a/component/CustomMoneySelect.vue
0 → 100644
View file @
715f3f0d
<
template
>
<div
:ref=
"refStr"
class=
"custom-money-select screen-popper"
id=
"custom-money-select"
>
<div
:class=
"['input-block', isSelectOption?'rote':'']"
>
<div
class=
"block"
@
click=
"isSelectOption=!isSelectOption"
@
mouseenter=
"handleMouseenter"
@
mouseleave=
"handleMouseleave"
>
<el-input
class=
"custom-money-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
class=
"number-box"
>
<input
type=
"number"
v-model=
"startMoney"
class=
"number-input"
clearable
>
至
<input
v-model=
"endMoney"
class=
"number-input"
type=
"text"
clearable
>
万元
<el-button
@
click
.
stop=
"handleConfirm"
class=
"number-button"
type=
"primary"
>
确定
</el-button>
</div>
</
template
>
<
template
v-else
>
<span>
{{
option
}}
</span>
<span
v-if=
"value==option"
class=
"el-icon-check"
></span>
</
template
>
</div>
</div>
</div>
</div>
</template>
<
script
>
export
default
{
props
:
{
'placeholder'
:
{
type
:
String
,
default
:
'请选择'
},
'ref-str'
:
{
type
:
String
,
default
:
`timeselect
${
String
(
Math
.
random
(
0
,
100
)).
slice
(
2
)}
`
,
},
permissions
:
{
//文本权限相关字段
type
:
Array
,
default
:
()
=>
{},
},
powerLabel
:
{
type
:
String
,
default
:
''
},
moneyList
:
{
type
:
Array
,
default
:
()
=>
[],
}
},
computed
:
{
isClear
()
{
if
(
!
this
.
isSelectOption
&&
this
.
value
)
{
return
true
}
else
{
return
false
}
}
},
data
()
{
return
{
value
:
''
,
options
:
[
'一亿以上'
,
'5000万-1亿'
,
'1000万-5000万'
,
'1000万以下'
,
'自定义'
],
isSelectOption
:
false
,
startMoney
:
''
,
endMoney
:
''
,
isHover
:
false
}
},
mounted
()
{
this
.
handleAppClick
()
if
(
this
.
moneyList
&&
this
.
moneyList
.
length
>
0
){
this
.
options
=
this
.
moneyList
}
},
destroyed
()
{
const
app
=
document
.
getElementById
(
'app'
)
app
.
removeEventListener
(
'click'
,
()
=>
{},
true
)
},
methods
:
{
// 判断是否点击的为组件内部
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-money-select').contains(e.target)
!
flag
?
this
.
isSelectOption
=
false
:
''
if
(
this
.
value
==
'自定义'
&&
!
this
.
startMoney
&&
!
this
.
endMoney
)
{
this
.
value
=
''
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'handle-search'
)
}
},
true
)
},
// 清除
handleClear
()
{
if
(
this
.
isClear
&&
this
.
isHover
)
{
this
.
value
=
''
this
.
startMoney
=
''
this
.
endMoney
=
''
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'handle-search'
)
}
else
{
this
.
isSelectOption
=
true
}
},
// 鼠标移入后的回调
handleMouseenter
()
{
this
.
isHover
=
true
},
// 鼠标离开后的回调
handleMouseleave
()
{
this
.
isHover
=
false
},
// 选项点击后的回调
handleClick
(
value
)
{
this
.
value
=
value
let
moneyStr
=
''
if
(
value
==
'自定义'
)
{
this
.
value
=
'自定义'
}
else
{
this
.
startMoney
=
''
this
.
endMoney
=
''
this
.
isSelectOption
=
false
switch
(
value
)
{
case
'一亿以上'
:
moneyStr
=
[
10000
]
break
;
case
'5000万-1亿'
:
moneyStr
=
[
5000
,
10000
]
break
;
case
'1000万-5000万'
:
moneyStr
=
[
1000
,
5000
]
break
;
case
'10亿以上'
:
moneyStr
=
[
100000
]
break
;
case
'1亿-10亿'
:
moneyStr
=
[
10000
,
100000
]
break
;
case
'2000万-1亿'
:
moneyStr
=
[
2000
,
10000
]
break
;
case
'400万-2000万'
:
moneyStr
=
[
400
,
2000
]
break
;
case
'400万以下'
:
moneyStr
=
[,
400
]
break
;
default
:
moneyStr
=
[,
1000
]
break
;
}
this
.
$emit
(
'input'
,
moneyStr
)
this
.
$emit
(
'handle-search'
)
}
},
// 自定义确认点击后的回调
handleConfirm
()
{
this
.
isSelectOption
=
false
if
(
!
this
.
startMoney
&&
!
this
.
endMoney
)
{
this
.
value
=
''
this
.
$emit
(
'input'
,
''
)
}
else
{
if
(
this
.
endMoney
&&
this
.
startMoney
)
{
this
.
value
=
`
${
this
.
startMoney
}
-
${
this
.
endMoney
}
万`
}
else
{
if
(
this
.
startMoney
)
{
this
.
value
=
`大于等于
${
this
.
startMoney
}
万`
}
if
(
this
.
endMoney
)
{
this
.
value
=
`小于等于
${
this
.
endMoney
}
万`
}
}
let
moneyStr
=
[
this
.
startMoney
,
this
.
endMoney
]
this
.
$emit
(
'input'
,
moneyStr
)
}
this
.
$emit
(
'handle-search'
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
.custom-money-select
{
width
:
120px
;
height
:
34px
;
position
:
relative
;
.input-block
{
margin
:
0
;
width
:
100%
;
height
:
100%
;
cursor
:
pointer
;
.block
{
width
:
100%
;
height
:
100%
;
>
.custom-money-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
:
9
;
// .arrow {
// position: absolute;
// width: 0;
// height: 0;
// top: -12px;
// left: 35px;
// border: 6px solid transparent;
// border-bottom-color: #E4E7ED;
// &::after {
// position: absolute;
// display: inline-block;
// left: -4px;
// top: -2px;
// content: '';
// width: 0;
// height: 0;
// border: 4px solid transparent;
// border-bottom-color: #fff;
// z-index: 9;
// }
// }
.option
{
padding
:
0
24px
0
16px
;
box-sizing
:
border-box
;
width
:
400px
;
height
:
36px
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
.number-box
{
display
:
flex
;
align-items
:
center
;
>
span
{
margin
:
0
10px
;
}
.number-input
{
padding
:
0
24px
0
10px
;
width
:
100px
!
important
;
height
:
30px
;
line-height
:
30px
;
border
:
none
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
width
:
206px
;
border
:
1px
solid
#DCDCDC
;
border-radius
:
2px
;
&
:
:-
webkit-outer-spin-button
,
&::-
webkit-inner-spin-button
{
-webkit-appearance
:
none
;
}
&
[
type
=
"number"
]
{
-moz-appearance
:
textfield
;
}
}
.number-button
{
padding
:
0
;
width
:
60px
;
height
:
30px
;
line-height
:
30px
;
margin-left
:
10px
;
}
}
>
span
{
display
:
inline-block
;
}
&
.active
{
background-color
:
#F2F7FF
;
color
:
#0381FA
;
}
&
:hover
{
background-color
:
#F5F7FA
;
}
}
}
.number-input
{
padding
:
0
24px
0
10px
;
width
:
60px
!
important
;
height
:
30px
;
line-height
:
30px
;
border
:
none
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
width
:
206px
;
border
:
1px
solid
#DCDCDC
;
border-radius
:
2px
;
&
:
:-
webkit-outer-spin-button
,
&::-
webkit-inner-spin-button
{
-webkit-appearance
:
none
;
}
&
[
type
=
"number"
]
{
-moz-appearance
:
textfield
;
}
}
.number-button
{
padding
:
0
;
width
:
60px
;
height
:
30px
;
line-height
:
30px
;
margin-left
:
10px
;
}
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/component/CustomTimeSelect.vue
0 → 100644
View file @
715f3f0d
<
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
:
''
}
},
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
()
},
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
'近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
:
9
;
.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
>
dsk-operate-ui/src/views/detail/party-a/component/HeadForm.vue
View file @
715f3f0d
...
...
@@ -53,6 +53,23 @@
<el-option
v-for=
"(item, index) in form.options"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</
template
>
<!-- 时间、自定义 -->
<
template
v-else-if=
"form.type==5"
>
<custom-time-select
v-model=
"form.value"
:placeholder=
"form.placeholder"
:dateFrom=
"form.dateFrom ? form.dateFrom : ''"
:dateTo=
"form.dateTo ? form.dateTo : ''"
@
handle-search=
"changeSelect"
/>
</
template
>
<!-- 金额 -->
<
template
v-else-if=
"form.type==6"
>
<custom-money-select
:moneyList=
"form.moneyList"
v-model=
"form.value"
:placeholder=
"form.placeholder"
@
handle-search=
"changeSelect"
/>
</
template
>
<!-- 自定义 -->
<
template
v-if=
"form.type==0"
>
<slot
name=
"slot"
></slot>
...
...
@@ -74,6 +91,8 @@
</template>
<
script
>
import
CustomTimeSelect
from
'./CustomTimeSelect'
import
CustomMoneySelect
from
'./CustomMoneySelect'
export
default
{
name
:
"HeadForm"
,
props
:
{
...
...
@@ -111,6 +130,10 @@ export default {
}
},
components
:
{
CustomTimeSelect
,
CustomMoneySelect
},
methods
:
{
changeSelect
(){
this
.
$emit
(
'handle-search'
)
...
...
dsk-operate-ui/src/views/detail/party-a/component/Tables.vue
View file @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -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
:
true
,
slot
:
true
},
{
label
:
'最近一次合作时间'
,
prop
:
'issueTime'
,
minWidth
:
'140'
,
sortable
:
true
}
{
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/bidrecords.vue
View file @
715f3f0d
...
...
@@ -6,6 +6,7 @@
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<tables
...
...
@@ -17,13 +18,13 @@
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<template
slot=
"
customN
ame"
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.
customId&&scope.row.customName"
>
{{
scope
.
row
.
customName
}}
</router-link>
<div
v-else
>
{{
scope
.
row
.
customName
||
'--'
}}
</div>
<template
slot=
"
n
ame"
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.
id&&scope.row.name"
v-html=
"scope.row.name"
>
</router-link>
<div
v-else
v-html=
"scope.row.name || '--'"
>
</div>
</
template
>
<
template
slot=
"
us
e"
slot-scope=
"scope"
>
<
router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.useId&&scope.row.use"
>
{{
scope
.
row
.
use
}}
</router-link
>
<div
v-else
>
{{
scope
.
row
.
us
e
||
'--'
}}
</div>
<
template
slot=
"
sourc
e"
slot-scope=
"scope"
>
<
span
class=
"a-link"
v-if=
"scope.row.url&&scope.row.source"
@
click=
"handlePic(scope.row.url)"
style=
"cursor: pointer;"
>
{{
scope
.
row
.
source
}}
</span
>
<div
v-else
>
{{
scope
.
row
.
sourc
e
||
'--'
}}
</div>
</
template
>
</tables>
</div>
...
...
@@ -31,7 +32,7 @@
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
getList
}
from
'@/api/detail/party-a/dealings'
import
{
tenderPage
}
from
'@/api/detail/party-a/dealings'
export
default
{
name
:
'Bidrecords'
,
props
:
[
'companyId'
],
...
...
@@ -47,13 +48,15 @@ export default {
pageSize
:
10
},
forData
:
[
{
label
:
'招标代理单位名称'
,
prop
:
'customName'
,
minWidth
:
'320'
,
slot
:
true
},
{
label
:
'本企业投标报价(万元)'
,
prop
:
'way'
,
minWidth
:
'160'
},
{
label
:
'发布日期'
,
prop
:
'way'
,
minWidth
:
'100'
},
{
label
:
'中标地区'
,
prop
:
'way'
,
minWidth
:
'160'
},
{
label
:
'信息来源'
,
prop
:
'use'
,
minWidth
:
'280'
,
slot
:
true
}
{
label
:
'项目名称'
,
prop
:
'name'
,
minWidth
:
'320'
,
slot
:
true
},
{
label
:
'本企业投标报价(万元)'
,
prop
:
'tenderOffer'
,
minWidth
:
'160'
},
{
label
:
'发布日期'
,
prop
:
'publishTime'
,
minWidth
:
'100'
},
{
label
:
'项目地区'
,
prop
:
'province'
,
minWidth
:
'160'
},
{
label
:
'信息来源'
,
prop
:
'source'
,
minWidth
:
'280'
,
slot
:
true
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称查询'
,
options
:
[]},
],
formData
:
[],
//列表
tableLoading
:
false
,
tableData
:[],
...
...
@@ -66,22 +69,18 @@ export default {
this
.
handleQuery
()
},
methods
:
{
handleQuery
(
)
{
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
getList
(
this
.
queryParams
).
then
((
res
)
=>
{
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
tenderPage
(
param
)
this
.
tableLoading
=
false
this
.
tableData
=
[
{
customId
:
'1'
,
customName
:
'滨州医学院口腔医学大楼铝合金门窗供货及安装'
,
use
:
'城镇住宅用地'
,
type
:
'房地产业'
,
way
:
'挂牌出让'
,
count
:
4
if
(
res
.
code
==
200
){
this
.
tableData
=
res
.
rows
}
]
this
.
tableDataTotal
=
100
})
this
.
tableDataTotal
=
res
.
total
},
handlePic
(
url
){
window
.
open
(
url
,
"_blank"
)
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/component/bidagencyDetail.vue
View file @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -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
:
true
,
slot
:
true
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
true
},
{
label
:
'最近一次合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
true
}
{
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 @
715f3f0d
...
...
@@ -11,6 +11,7 @@
<tables
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
...
...
@@ -19,13 +20,13 @@
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"
custom
Name"
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.
customId&&scope.row.customName"
>
{{
scope
.
row
.
customName
}}
</router-link>
<div
v-else
>
{{
scope
.
row
.
customName
||
'--'
}}
</div>
<template
slot=
"
projectAll
Name"
slot-scope=
"scope"
>
<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=
"
us
e"
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.
useId&&scope.row.use"
>
{{
scope
.
row
.
us
e
}}
</router-link>
<div
v-else
>
{{
scope
.
row
.
us
e
||
'--'
}}
</div>
<
template
slot=
"
companyNam
e"
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.
companyId&&scope.row.companyName"
>
{{
scope
.
row
.
companyNam
e
}}
</router-link>
<div
v-else
>
{{
scope
.
row
.
companyNam
e
||
'--'
}}
</div>
</
template
>
</tables>
</div>
...
...
@@ -33,7 +34,7 @@
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
getOption
,
getList
}
from
'@/api/detail/party-a/dealings'
import
{
historySendProvince
,
historySendPage
}
from
'@/api/detail/party-a/dealings'
export
default
{
name
:
'Hiscontract'
,
props
:
[
'companyId'
],
...
...
@@ -45,25 +46,27 @@ export default {
return
{
queryParams
:
{
cid
:
this
.
companyId
,
sort
:
3
,
pageNum
:
1
,
pageSize
:
10
},
defaultSort
:
{
prop
:
'winBidTime'
,
order
:
'descending'
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'
custom
Name'
,
minWidth
:
'560'
,
slot
:
true
},
{
label
:
'中标时间'
,
prop
:
'w
ay'
,
minWidth
:
'100'
,
sortable
:
true
},
{
label
:
'中标企业'
,
prop
:
'
us
e'
,
minWidth
:
'320'
,
slot
:
true
},
{
label
:
'中标金额(万元)'
,
prop
:
'w
ay'
,
minWidth
:
'140'
,
sortable
:
true
},
{
label
:
'下浮率(%)'
,
prop
:
'
way'
,
minWidth
:
'120'
,
sortable
:
true
},
{
label
:
'项目经理 / 负责人'
,
prop
:
'
way
'
,
minWidth
:
'130'
},
{
label
:
'中标地区'
,
prop
:
'
way
'
,
minWidth
:
'160'
},
{
label
:
'工期(天)'
,
prop
:
'
way'
,
minWidth
:
'110'
,
sortable
:
true
},
{
label
:
'业绩类别'
,
prop
:
'
way
'
,
minWidth
:
'110'
}
{
label
:
'项目名称'
,
prop
:
'
projectAll
Name'
,
minWidth
:
'560'
,
slot
:
true
},
{
label
:
'中标时间'
,
prop
:
'w
inBidTime'
,
minWidth
:
'100'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'中标企业'
,
prop
:
'
companyNam
e'
,
minWidth
:
'320'
,
slot
:
true
},
{
label
:
'中标金额(万元)'
,
prop
:
'w
inBidAmount'
,
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'
,
descending
:
'9'
,
ascending
:
'10'
},
{
label
:
'业绩类别'
,
prop
:
'
boundType
'
,
minWidth
:
'110'
}
],
formData
:
[
{
type
:
1
,
fieldName
:
'
region'
,
value
:
''
,
placeholder
:
'项目地区'
,
options
:
[]
},
{
type
:
1
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'中标时间'
,
options
:
[]
},
{
type
:
1
,
fieldName
:
'amount'
,
value
:
''
,
placeholder
:
'中标金额'
,
options
:
[]
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入
关键词查询'
,
options
:
[]},
{
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
:
[]
}
],
//列表
tableLoading
:
false
,
...
...
@@ -78,45 +81,26 @@ export default {
this
.
handleQuery
()
},
methods
:
{
handleOption
(){
getOption
().
then
((
res
)
=>
{
this
.
setFormData
(
'region'
,
[
{
name
:
'类别1'
,
value
:
'1'
},
{
name
:
'类别2'
,
value
:
'2'
},
{
name
:
'类别3'
,
value
:
'3'
},
{
name
:
'类别4'
,
value
:
'4'
}
])
this
.
setFormData
(
'time'
,
[
{
name
:
'类别1'
,
value
:
'1'
},
{
name
:
'类别2'
,
value
:
'2'
},
{
name
:
'类别3'
,
value
:
'3'
},
{
name
:
'类别4'
,
value
:
'4'
}
])
this
.
setFormData
(
'amount'
,
[
{
name
:
'类别1'
,
value
:
'1'
},
{
name
:
'类别2'
,
value
:
'2'
},
{
name
:
'类别3'
,
value
:
'3'
},
{
name
:
'类别4'
,
value
:
'4'
}
])
async
handleOption
(){
let
res
=
await
historySendProvince
({
cid
:
this
.
companyId
})
if
(
res
.
code
==
200
){
let
region
=
res
.
data
.
map
(
item
=>
{
let
it
=
{
name
:
item
.
province
+
'('
+
item
.
count
+
')'
,
value
:
item
.
provinceId
}
return
it
})
this
.
setFormData
(
'provinceId'
,
region
)
}
},
handleQuery
(
params
)
{
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
getList
(
param
).
then
((
res
)
=>
{
let
res
=
await
historySendPage
(
param
)
this
.
tableLoading
=
false
this
.
tableData
=
[
{
customId
:
'1'
,
customName
:
'滨州医学院口腔医学大楼铝合金门窗供货及安装'
,
use
:
'城镇住宅用地'
,
type
:
'房地产业'
,
way
:
'挂牌出让'
,
count
:
4
if
(
res
.
code
==
200
){
this
.
tableData
=
res
.
rows
}
]
this
.
tableDataTotal
=
100
})
this
.
tableDataTotal
=
res
.
total
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/supplier.vue
View file @
715f3f0d
...
...
@@ -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
:
true
,
slot
:
true
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
true
},
{
label
:
'最近一次合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
true
}
{
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 @
715f3f0d
...
...
@@ -30,6 +30,11 @@ export default {
condtion
[
item
.
endTime
]
=
item
.
value
[
1
];
return
}
if
(
item
.
fieldName
==
'money'
)
{
condtion
[
item
.
startMoney
]
=
item
.
value
[
0
];
condtion
[
item
.
endMoney
]
=
item
.
value
[
1
];
return
}
condtion
[
item
.
fieldName
]
=
item
.
value
}
})
...
...
@@ -65,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/opport/announcement.vue
View file @
715f3f0d
...
...
@@ -44,8 +44,8 @@ export default {
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'porjectName'
,
minWidth
:
'300'
,
slot
:
true
},
{
label
:
'发布日期'
,
prop
:
'use'
,
sortable
:
true
,
width
:
'120'
},
{
label
:
'预算金额(万元)'
,
prop
:
'type'
,
sortable
:
true
,
width
:
'140'
},
{
label
:
'发布日期'
,
prop
:
'use'
,
sortable
:
'custom'
,
width
:
'120'
},
{
label
:
'预算金额(万元)'
,
prop
:
'type'
,
sortable
:
'custom'
,
width
:
'140'
},
{
label
:
'项目地区'
,
prop
:
'way'
,
width
:
'120'
},
{
label
:
'项目类别'
,
prop
:
'state'
,
width
:
'90'
},
{
label
:
'招采单位联系人'
,
prop
:
'money'
,
width
:
'110'
},
...
...
dsk-operate-ui/src/views/detail/party-a/opport/bond.vue
View file @
715f3f0d
...
...
@@ -44,11 +44,11 @@ export default {
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'porjectName'
,
minWidth
:
'300'
,
slot
:
true
},
{
label
:
'项目总投资(亿元)'
,
prop
:
'use'
,
sortable
:
true
,
width
:
'150'
},
{
label
:
'项目资本金(亿元)'
,
prop
:
'type'
,
sortable
:
true
,
width
:
'150'
},
{
label
:
'项目收益倍数(倍)'
,
prop
:
'way'
,
sortable
:
true
,
width
:
'150'
},
{
label
:
'专项债金额(亿元)'
,
prop
:
'state'
,
sortable
:
true
,
width
:
'150'
},
{
label
:
'专项债用作资本金(亿元)'
,
prop
:
'money'
,
sortable
:
true
,
width
:
'200'
}
{
label
:
'项目总投资(亿元)'
,
prop
:
'use'
,
sortable
:
'custom'
,
width
:
'150'
},
{
label
:
'项目资本金(亿元)'
,
prop
:
'type'
,
sortable
:
'custom'
,
width
:
'150'
},
{
label
:
'项目收益倍数(倍)'
,
prop
:
'way'
,
sortable
:
'custom'
,
width
:
'150'
},
{
label
:
'专项债金额(亿元)'
,
prop
:
'state'
,
sortable
:
'custom'
,
width
:
'150'
},
{
label
:
'专项债用作资本金(亿元)'
,
prop
:
'money'
,
sortable
:
'custom'
,
width
:
'200'
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称关键词查询'
,
options
:
[]},
...
...
dsk-operate-ui/src/views/detail/party-a/opport/landtransaction.vue
View file @
715f3f0d
...
...
@@ -48,8 +48,8 @@ export default {
{
label
:
'行业分类'
,
prop
:
'type'
,
width
:
'100'
},
{
label
:
'供地方式'
,
prop
:
'way'
,
width
:
'100'
},
{
label
:
'土地坐落'
,
prop
:
'state'
,
width
:
'130'
},
{
label
:
'成交金额(万元)'
,
prop
:
'money'
,
sortable
:
true
,
width
:
'140'
},
{
label
:
'总面积(㎡)'
,
prop
:
'scale'
,
sortable
:
true
,
width
:
'130'
},
{
label
:
'成交金额(万元)'
,
prop
:
'money'
,
sortable
:
'custom'
,
width
:
'140'
},
{
label
:
'总面积(㎡)'
,
prop
:
'scale'
,
sortable
:
'custom'
,
width
:
'130'
},
{
label
:
'批准单位'
,
prop
:
'unit'
,
width
:
'130'
},
{
label
:
'签订日期'
,
prop
:
'date'
,
width
:
'130'
}
],
...
...
dsk-operate-ui/src/views/detail/party-a/opport/proposed.vue
View file @
715f3f0d
...
...
@@ -44,10 +44,10 @@ export default {
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'porjectName'
,
minWidth
:
'300'
,
slot
:
true
},
{
label
:
'成交金额(万元)'
,
prop
:
'use'
,
sortable
:
true
,
width
:
'150'
},
{
label
:
'成交金额(万元)'
,
prop
:
'use'
,
sortable
:
'custom'
,
width
:
'150'
},
{
label
:
'项目类别'
,
prop
:
'type'
,
width
:
'100'
},
{
label
:
'计划开工日期'
,
prop
:
'way'
,
sortable
:
true
,
width
:
'130'
},
{
label
:
'计划完工日期'
,
prop
:
'state'
,
sortable
:
true
,
width
:
'130'
},
{
label
:
'计划开工日期'
,
prop
:
'way'
,
sortable
:
'custom'
,
width
:
'130'
},
{
label
:
'计划完工日期'
,
prop
:
'state'
,
sortable
:
'custom'
,
width
:
'130'
},
{
label
:
'审批结果'
,
prop
:
'money'
,
width
:
'100'
},
{
label
:
'是否为民间推介项目'
,
prop
:
'scale'
,
width
:
'150'
}
],
...
...
dsk-operate-ui/src/views/detail/party-a/riskInformation/businessAnomaly.vue
View file @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -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/enterpriseData/components/SearchEnterprise/index.vue
0 → 100644
View file @
715f3f0d
<
template
>
<div>
<div
class=
"content"
>
<div
class=
"content_item"
>
<div
class=
"label"
>
项目名称
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"keyword"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
参投单位
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"jskBidQueryDto.companyName"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
项目名称
</div>
<div
class=
"content_right"
>
<div
class=
"select-popper"
>
<span
:class=
"
{color_text:jskBidQueryDto.province.length ||jskBidQueryDto.city.length ||jskBidQueryDto.county.length,}">
行政区划
{{
jskBidQueryDto
.
province
.
length
||
jskBidQueryDto
.
city
.
length
||
jskBidQueryDto
.
county
.
length
?
jskBidQueryDto
.
province
.
length
+
jskBidQueryDto
.
city
.
length
+
jskBidQueryDto
.
county
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-cascader
ref=
"address"
class=
"cascader-region"
v-model=
"addressType"
:options=
"addressList"
:props=
"props"
@
change=
"domicileChange"
collapse-tags
clearable
></el-cascader>
</div>
<el-dropdown
@
command=
"punishDatehandleCommand"
trigger=
"click"
class=
"el-dropdown-land"
ref=
"punishDateShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"punishDateValue ? 'color_text' : ''"
>
发布时间
{{
punishDateValue
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<div>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
v-for=
"(item, i) in punishDateOptions"
class=
"el-dropdown-land"
:class=
" punishDateValue && punishDateValue == item.value ? 'color_text': '' "
:key=
"i"
:command=
"item.value"
>
<div
@
mouseenter=
"hidePoper"
>
{{
item
.
label
}}
</div>
</el-dropdown-item>
<el-dropdown-item
command=
"自定义"
style=
"padding: 0; text-indent: 20px"
>
<div
@
mouseenter=
"mouseenter"
>
<span
:class=
"punishDateValue == '自定义' ? 'color_text' : ''"
>
自定义
<i
class=
"el-icon-arrow-right"
></i>
</span>
<el-date-picker
v-if=
"punishDateShowPopper"
@
change=
"changepunishDate"
class=
"land_date_picker"
v-model=
"punishDate"
ref=
"datePicker"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</div>
</el-dropdown>
<el-dropdown
@
command=
"tenderDatehandleCommand"
trigger=
"click"
ref=
"tenderDateShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"tenderDateValue ? 'color_text' : ''"
>
开标时间
{{
tenderDateValue
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<div>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
v-for=
"(item, i) in punishDateOptions"
:class=
" tenderDateValue && tenderDateValue == item.value ? 'color_text' : ''"
:key=
"i"
:command=
"item.value"
>
<div
@
mouseenter=
"hidePoper('bid')"
>
{{
item
.
label
}}
</div>
</el-dropdown-item>
<el-dropdown-item
command=
"自定义"
style=
"padding: 0; text-indent: 20px"
>
<div
@
mouseenter=
"mouseenter('bid')"
>
<span
:class=
"tenderDateValue == '自定义' ? 'color_text' : ''"
>
自定义
<i
class=
"el-icon-arrow-right"
></i></span>
<el-date-picker
v-if=
"tenderDateShowPopper"
@
change=
"changepunishDate('bid')"
class=
"land_date_picker"
v-model=
"tenderDate"
ref=
"tenderDatePicker"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</div>
</el-dropdown>
</div>
</div>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"geduan"
>
</div>
</div>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"search-new"
>
<span
@
click=
"search()"
>
查询
</span>
<span
@
click=
"reset"
>
重置
</span>
</div>
</div>
</div>
<div
class=
"bottomlist"
>
<div
class=
"bottomlist-title"
>
<div></div>
<div
class=
"title-right"
>
<p>
共有
{{
total
}}
条
</p>
<p>
<img
src=
"@/assets/images/EXCEL.png"
alt=
""
>
<span>
导出EXCEL
</span>
</p>
</div>
</div>
<ul
class=
"bottomlist-content"
>
<li
class=
"bottomlist-list"
>
<p
class=
"list-titel"
>
<router-link
:to=
"'/radar/BidRecord/details/'+ 1"
tag=
"a"
class=
"list-titel-a"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
</router-link>
<!--
<div
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
-->
</p>
<div
class=
"content-label"
>
<span
class=
"list-label"
>
市政工程
</span>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
项目业主:
</span>
<span
class=
"blue"
>
芜湖旭日机械制造有限公司
</span>
</p>
<p
class=
"list-content-text"
>
<span>
审批部门:
</span>
<span>
芜湖旭日
</span>
</p>
<p
class=
"list-content-text"
>
<span>
审批结果:
</span>
<span>
12345.62万
</span>
</p>
<p
class=
"list-content-text"
>
<span>
审批结果:
</span>
<span>
2014-05-12
</span>
</p>
<p
class=
"list-content-text"
>
<span>
总投资:
</span>
<span>
62654
</span>
</p>
<p
class=
"list-content-text"
>
<span>
计划开工日期:
</span>
<span>
62654
</span>
</p>
<p
class=
"list-content-text"
>
<span>
计划完工日期:
</span>
<span>
626
</span>
</p>
<p
class=
"list-content-text"
>
<span>
是否为向民间推介项目:
</span>
<span>
62654
</span>
</p>
</div>
</li>
</ul>
<div
class=
"pagination clearfix"
v-show=
"total>0"
>
<el-pagination
background
:page-size=
"pageSize"
:current-page=
"page"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</div>
</div>
</
template
>
<
script
>
import
jsk_data
from
'../../../../../public/jsk.json'
;
export
default
{
name
:
'SearchEnterprise'
,
data
()
{
return
{
addressList
:
[],
addressType
:
[],
props
:
{
multiple
:
true
,
expandTrigger
:
"hover"
,
value
:
"id"
,
},
keyword
:
""
,
keywordNot
:
""
,
fieldshow
:
false
,
fieldText
:
'默认排序'
,
field
:
''
,
//查询结果排序方式
fieldOptions
:
[
{
key
:
""
,
value
:
"默认排序"
,
status
:
true
,
},
{
key
:
"publishDate"
,
value
:
"发布日期从晚到早"
,
status
:
false
,
},
],
page
:
1
,
limit
:
20
,
punishDateOptions
:
[
{
label
:
"不限"
,
value
:
""
,
},
{
label
:
"今天"
,
value
:
"今天"
,
},
{
label
:
"近3日"
,
value
:
"近3日"
,
},
{
label
:
"近7日"
,
value
:
"近7日"
,
},
{
label
:
"近1个月"
,
value
:
"近1个月"
,
},
{
label
:
"近3个月"
,
value
:
"近3个月"
,
},
{
label
:
"近半年"
,
value
:
"近半年"
,
},
{
label
:
"近1年"
,
value
:
"近1年"
,
},
],
punishDateValue
:
""
,
jskBidQueryDto
:
{
hasMoney
:
""
,
province
:
[],
city
:
[],
county
:
[]
},
domicile
:
[],
provinceText
:[],
provinceList
:[],
punishDate
:
""
,
punishDateShowPopper
:
false
,
tenderDateValue
:
""
,
tenderDate
:
""
,
tenderDateShowPopper
:
false
,
pageFlag
:
true
,
conditionsArr
:
[],
tableData
:[],
total
:
6000
,
page
:
1
,
pageSize
:
20
};
},
computed
:
{
checkJskBidQueryDto
()
{
let
arr
=
[];
let
flag
=
false
;
let
data
=
{};
if
(
this
.
keyword
){
data
=
{
title
:
"项目包含:"
,
keyid
:
"keyword"
,
value
:
this
.
keyword
,
key
:
"keyword"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
keywordNot
){
data
=
{
title
:
"项目排除:"
,
keyid
:
"keywordNot"
,
value
:
this
.
keywordNot
,
key
:
"keywordNot"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
companyName
){
data
=
{
title
:
"参投单位:"
,
keyid
:
"companyName"
,
value
:
this
.
jskBidQueryDto
.
companyName
,
key
:
"companyName"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
startBidMoney
){
data
=
{
title
:
"最低金额:"
,
keyid
:
"startBidMoney"
,
value
:
this
.
jskBidQueryDto
.
startBidMoney
,
key
:
"startBidMoney"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
endBidMoney
){
data
=
{
title
:
"最高金额:"
,
keyid
:
"endBidMoney"
,
value
:
this
.
jskBidQueryDto
.
endBidMoney
,
key
:
"endBidMoney"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
hasMoney
){
data
=
{
title
:
"包含投标报价未公示"
,
keyid
:
"hasMoney"
,
value
:
this
.
jskBidQueryDto
.
hasMoney
,
key
:
"hasMoney"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
domicile
.
length
>
0
)
{
data
=
{
title
:
"行政区划:"
,
keyid
:
"domicile"
,
value
:
this
.
domicile
.
join
(
","
),
key
:
"domicile"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
punishDateValue
==
"自定义"
){
data
=
{
title
:
"发布时间:"
,
keyid
:
"punishDate"
,
value
:
this
.
jskBidQueryDto
.
startPunishDate
+
"~"
+
this
.
jskBidQueryDto
.
endPunishDate
,
key
:
"punishDate"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
punishDateValue
&&
this
.
punishDateValue
!=
"自定义"
){
data
=
{
title
:
"发布时间:"
,
keyid
:
"punishDate"
,
value
:
this
.
punishDateValue
,
key
:
"punishDate"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
tenderDateValue
==
"自定义"
){
data
=
{
title
:
"开标时间:"
,
keyid
:
"tenderDate"
,
value
:
this
.
jskBidQueryDto
.
startTenderTime
+
"~"
+
this
.
jskBidQueryDto
.
endTenderTime
,
key
:
"tenderDate"
}
flag
=
true
;
arr
.
push
(
data
)
}
if
(
this
.
tenderDateValue
&&
this
.
tenderDateValue
!=
"自定义"
){
data
=
{
title
:
"开标时间:"
,
keyid
:
"tenderDate"
,
value
:
this
.
tenderDateValue
,
key
:
"tenderDate"
}
flag
=
true
;
arr
.
push
(
data
)
}
this
.
conditionsArr
=
arr
return
flag
;
},
},
mounted
()
{
if
(
this
.
$route
.
query
.
keyword
)
{
this
.
keyword
=
this
.
$route
.
query
.
keyword
;
}
this
.
addressListfn
();
},
methods
:
{
// 关键词推荐
cliclikeywoder
()
{
this
.
$refs
.
keyword
.
show
();
},
keywordClick
(
val
)
{
this
.
keyword
=
val
},
refresh
(
value
)
{
if
(
value
)
{
this
.
$router
.
go
(
0
)
}
},
search
(
page
,
limit
,
exportFlag
)
{
if
(
!
page
)
{
this
.
page
=
1
;
}
if
(
!
limit
)
{
this
.
limit
=
20
;
}
if
(
!
page
&&
!
limit
)
{
this
.
reloadPage
();
}
var
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
data
.
province
=
data
.
province
.
join
(
","
);
data
.
city
=
data
.
city
.
join
(
","
);
data
.
county
=
data
.
county
.
join
(
","
);
let
params
=
{
page
:
{
page
:
this
.
page
,
limit
:
this
.
limit
,
field
:
this
.
field
,
},
jskBidQueryDto
:
data
,
};
if
(
this
.
keyword
){
params
.
keyword
=
this
.
keyword
}
else
{
delete
params
.
keyword
}
if
(
this
.
keywordNot
){
params
.
keywordNot
=
this
.
keywordNot
}
else
{
delete
params
.
keywordNot
}
this
.
$emit
(
"search"
,
params
)
},
//关闭支付弹窗
resolve
(
value
)
{
if
(
value
)
{
this
.
$router
.
go
(
0
)
}
},
provinceChange
(
arr
){
this
.
provinceText
=
[];
if
(
arr
.
length
>
0
){
arr
.
map
(
item
=>
{
this
.
provinceText
.
push
(
item
.
label
);
})
}
},
changeMoney
(
text
)
{
if
(
this
.
jskBidQueryDto
.
startBidMoney
&&
this
.
jskBidQueryDto
.
endBidMoney
&&
Number
(
this
.
jskBidQueryDto
.
startBidMoney
)
>
Number
(
this
.
jskBidQueryDto
.
endBidMoney
)
)
{
this
.
$message
.
warning
(
"最低金额不能大于最高金额!"
);
text
==
"start"
?
(
this
.
jskBidQueryDto
.
startBidMoney
=
""
)
:
(
this
.
jskBidQueryDto
.
endBidMoney
=
""
);
}
},
reloadPage
()
{
this
.
pageFlag
=
false
;
this
.
$nextTick
(()
=>
{
this
.
pageFlag
=
true
;
});
},
handleCurrentChange
(
page
)
{
this
.
page
=
page
;
this
.
search
(
page
,
this
.
limit
);
},
handleSizeChange
(
limit
)
{
this
.
limit
=
limit
;
this
.
search
(
this
.
page
,
limit
);
},
deleteDomicile
()
{
this
.
$refs
.
address
.
handleClear
();
},
domicileChange
()
{
let
arr
=
this
.
$refs
.
address
.
getCheckedNodes
();
let
province
=
[],
city
=
[],
county
=
[];
this
.
domicile
=
[];
for
(
var
i
in
arr
)
{
if
(
arr
[
i
].
parent
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
arr
[
i
].
hasChildren
&&
city
.
push
(
arr
[
i
].
value
);
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
!
arr
[
i
].
hasChildren
&&
county
.
push
(
arr
[
i
].
value
);
!
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
else
{
province
.
push
(
arr
[
i
].
value
);
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
province
=
province
;
obj
.
city
=
city
;
obj
.
county
=
county
;
this
.
jskBidQueryDto
=
obj
;
},
punishDatehandleCommand
(
command
)
{
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
if
(
command
&&
command
!=
"自定义"
)
{
this
.
punishDateValue
=
command
;
this
.
$refs
.
punishDateShowPopper
.
hide
();
const
datetime
=
new
Date
();
var
startTime
,
endTime
,
Year
,
Month
,
Day
;
Year
=
datetime
.
getFullYear
();
Month
=
datetime
.
getMonth
()
+
1
;
Day
=
datetime
.
getDate
();
switch
(
command
)
{
case
"今天"
:
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
break
;
case
"近3日"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Day
>
3
)
{
startTime
=
Year
+
"-"
+
Month
+
"-"
+
(
Day
-
3
);
}
else
{
let
newTime
=
datetime
.
getTime
()
-
3
*
24
*
60
*
60
*
1000
Year
=
new
Date
(
newTime
).
getFullYear
();
Month
=
new
Date
(
newTime
).
getMonth
()
+
1
;
Day
=
new
Date
(
newTime
).
getDate
();
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
}
break
;
case
"近7日"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Day
>
7
)
{
startTime
=
Year
+
"-"
+
Month
+
"-"
+
(
Day
-
7
);
}
else
{
let
newTime
=
datetime
.
getTime
()
-
7
*
24
*
60
*
60
*
1000
Year
=
new
Date
(
newTime
).
getFullYear
();
Month
=
new
Date
(
newTime
).
getMonth
()
+
1
;
Day
=
new
Date
(
newTime
).
getDate
();
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
}
break
;
case
"近1个月"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
1
)
{
startTime
=
Year
+
"-"
+
(
Month
-
1
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
1
)
+
"-1"
;
}
break
;
case
"近3个月"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
3
)
{
startTime
=
Year
+
"-"
+
(
Month
-
3
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
3
)
+
"-1"
;
}
break
;
case
"近半年"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
6
)
{
startTime
=
Year
+
"-"
+
(
Month
-
6
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
6
)
+
"-1"
;
}
break
;
case
"近1年"
:
startTime
=
Year
-
1
+
"-"
+
Month
+
"-"
+
Day
;
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
break
;
case
"自定义"
:
if
(
!
this
.
punishDate
)
{
this
.
punishDateValue
=
""
;
}
break
;
}
if
(
startTime
){
var
start
=
startTime
.
split
(
'-'
);
startTime
=
start
.
map
((
item
)
=>
{
if
(
item
.
length
==
1
){
return
'0'
+
item
}
else
{
return
item
}
})
startTime
=
startTime
.
join
(
'-'
)
}
if
(
endTime
){
var
end
=
endTime
.
split
(
'-'
);
endTime
=
end
.
map
((
item
)
=>
{
if
(
item
.
length
==
1
){
return
'0'
+
item
}
else
{
return
item
}
})
endTime
=
endTime
.
join
(
'-'
)
}
obj
.
startPunishDate
=
startTime
;
obj
.
endPunishDate
=
endTime
;
}
else
if
(
command
==
"自定义"
)
{
this
.
$refs
.
datePicker
.
pickerVisible
=
true
;
}
else
{
this
.
$refs
.
punishDateShowPopper
.
hide
();
this
.
punishDateValue
=
""
;
this
.
punishDate
=
""
;
obj
.
startPunishDate
=
""
;
obj
.
endPunishDate
=
""
;
}
this
.
jskBidQueryDto
=
obj
;
},
tenderDatehandleCommand
(
command
)
{
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
if
(
command
&&
command
!=
"自定义"
)
{
this
.
tenderDateValue
=
command
;
this
.
$refs
.
tenderDateShowPopper
.
hide
();
const
datetime
=
new
Date
();
var
startTime
,
endTime
,
Year
,
Month
,
Day
;
Year
=
datetime
.
getFullYear
();
Month
=
datetime
.
getMonth
()
+
1
;
Day
=
datetime
.
getDate
();
switch
(
command
)
{
case
"今天"
:
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
break
;
case
"近3日"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Day
>
3
)
{
startTime
=
Year
+
"-"
+
Month
+
"-"
+
(
Day
-
3
);
}
else
{
let
newTime
=
datetime
.
getTime
()
-
3
*
24
*
60
*
60
*
1000
Year
=
new
Date
(
newTime
).
getFullYear
();
Month
=
new
Date
(
newTime
).
getMonth
()
+
1
;
Day
=
new
Date
(
newTime
).
getDate
();
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
}
break
;
case
"近7日"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Day
>
7
)
{
startTime
=
Year
+
"-"
+
Month
+
"-"
+
(
Day
-
7
);
}
else
{
let
newTime
=
datetime
.
getTime
()
-
7
*
24
*
60
*
60
*
1000
Year
=
new
Date
(
newTime
).
getFullYear
();
Month
=
new
Date
(
newTime
).
getMonth
()
+
1
;
Day
=
new
Date
(
newTime
).
getDate
();
startTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
}
break
;
case
"近1个月"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
1
)
{
startTime
=
Year
+
"-"
+
(
Month
-
1
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
1
)
+
"-1"
;
}
break
;
case
"近3个月"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
3
)
{
startTime
=
Year
+
"-"
+
(
Month
-
3
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
3
)
+
"-1"
;
}
break
;
case
"近半年"
:
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
if
(
Month
>
6
)
{
startTime
=
Year
+
"-"
+
(
Month
-
6
)
+
"-1"
;
}
else
{
startTime
=
Year
-
1
+
"-"
+
(
12
+
Month
-
6
)
+
"-1"
;
}
break
;
case
"近1年"
:
startTime
=
Year
-
1
+
"-"
+
Month
+
"-"
+
Day
;
endTime
=
Year
+
"-"
+
Month
+
"-"
+
Day
;
break
;
case
"自定义"
:
if
(
!
this
.
tenderDate
)
{
this
.
tenderDateValue
=
""
;
}
break
;
}
if
(
startTime
){
var
start
=
startTime
.
split
(
'-'
);
startTime
=
start
.
map
((
item
)
=>
{
if
(
item
.
length
==
1
){
return
'0'
+
item
}
else
{
return
item
}
})
startTime
=
startTime
.
join
(
'-'
)
}
if
(
endTime
){
var
end
=
endTime
.
split
(
'-'
);
endTime
=
end
.
map
((
item
)
=>
{
if
(
item
.
length
==
1
){
return
'0'
+
item
}
else
{
return
item
}
})
endTime
=
endTime
.
join
(
'-'
)
}
obj
.
startTenderTime
=
startTime
;
obj
.
endTenderTime
=
endTime
;
}
else
if
(
command
==
"自定义"
)
{
this
.
$refs
.
tenderDatePicker
.
pickerVisible
=
true
;
}
else
{
this
.
$refs
.
tenderDateShowPopper
.
hide
();
this
.
tenderDateValue
=
""
;
this
.
tenderDate
=
""
;
obj
.
startTenderTime
=
""
;
obj
.
endTenderTime
=
""
;
}
this
.
jskBidQueryDto
=
obj
;
},
changepunishDate
(
type
)
{
if
(
type
==
'bid'
&&
this
.
tenderDate
){
this
.
tenderDateValue
=
"自定义"
;
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
startTenderTime
=
this
.
tenderDate
[
0
];
obj
.
endTenderTime
=
this
.
tenderDate
[
1
];
this
.
jskBidQueryDto
=
obj
;
}
else
if
(
this
.
punishDate
)
{
this
.
punishDateValue
=
"自定义"
;
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
startPunishDate
=
this
.
punishDate
[
0
];
obj
.
endPunishDate
=
this
.
punishDate
[
1
];
this
.
jskBidQueryDto
=
obj
;
}
},
addressListfn
()
{
var
str
=
[];
for
(
let
x
=
0
;
x
<
3
;
x
++
)
{
for
(
let
i
=
0
;
i
<
jsk_data
.
length
;
i
++
)
{
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
1
)
{
str
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
children
:
jsk_data
[
i
].
id
==
900000
?
undefined
:[],
});
}
else
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
2
&&
str
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
if
(
str
[
j
].
id
==
jsk_data
[
i
].
parentId
)
{
str
[
j
].
children
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
children
:
[],
});
}
}
}
else
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
3
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
if
(
str
[
j
].
children
){
for
(
let
k
=
0
;
k
<
str
[
j
].
children
.
length
;
k
++
)
{
if
(
str
[
j
].
children
[
k
].
id
==
jsk_data
[
i
].
parentId
)
{
str
[
j
].
children
[
k
].
children
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
});
}
}
}
}
}
}
}
this
.
addressList
=
str
;
},
hidePoper
(
type
)
{
if
(
type
==
'bid'
&&
this
.
$refs
.
tenderDatePicker
){
this
.
$refs
.
tenderDatePicker
.
pickerVisible
=
false
;
}
else
if
(
this
.
$refs
.
datePicker
){
this
.
$refs
.
datePicker
.
pickerVisible
=
false
;
}
},
mouseenter
(
type
)
{
if
(
type
==
'bid'
){
this
.
tenderDateShowPopper
=
true
;
if
(
this
.
tenderDateValue
==
"自定义"
){
this
.
$nextTick
(()
=>
{
this
.
$refs
.
tenderDatePicker
.
pickerVisible
=
true
;
});
}
}
else
{
this
.
punishDateShowPopper
=
true
;
if
(
this
.
punishDateValue
==
"自定义"
){
this
.
$nextTick
(()
=>
{
this
.
$refs
.
datePicker
.
pickerVisible
=
true
;
});
}
}
},
clearpunishDate
(
type
)
{
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
if
(
type
==
'bid'
){
this
.
tenderDate
=
""
;
this
.
tenderDateValue
=
""
;
obj
.
startTenderTime
=
""
;
obj
.
endTenderTime
=
""
;
}
else
{
this
.
punishDate
=
""
;
this
.
punishDateValue
=
""
;
obj
.
startPunishDate
=
""
;
obj
.
endPunishDate
=
""
;
}
this
.
jskBidQueryDto
=
obj
;
},
reset
()
{
Object
.
assign
(
this
.
$data
,
this
.
$options
.
data
.
call
(
this
));
//重置data
this
.
init
();
this
.
$emit
(
"reset"
);
},
init
(){
this
.
search
();
this
.
addressListfn
();
},
handsequencingList
(
index
)
{
this
.
fieldshow
=
false
;
this
.
field
=
this
.
fieldOptions
[
index
].
key
;
for
(
let
i
=
0
;
i
<
this
.
fieldOptions
.
length
;
i
++
)
{
this
.
fieldOptions
[
i
].
status
=
false
;
}
this
.
fieldText
=
this
.
fieldOptions
[
index
].
value
;
this
.
fieldOptions
[
index
].
status
=
true
;
this
.
search
();
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.content
{
padding
:
0px
16px
;
border-radius
:
4px
4px
4px
4px
;
background
:
#FFFFFF
;
.content_item
{
padding-top
:
12px
;
display
:
flex
;
align-items
:
center
;
.label
{
width
:
84px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
.content_right
{
.ename_input
{
width
:
640px
;
margin-right
:
20px
;
}
.land_ipt_470
{
width
:
640px
;
}
}
.item_ckquery_list
{
display
:
flex
;
}
.item_ckquery_list
.el-input__icon
{
position
:
relative
;
top
:
1px
;
}
.ckquery_list_right
{
width
:
640px
;
}
.register_count_ipt
{
margin-left
:
0px
;
}
.register_count_ipt
.el-input__inner
{
width
:
174px
;
}
::v-deep
.el-input-group__prepend
{
padding
:
0
8px
;
}
.content-projecttype
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
.projecttype
{
font-weight
:
400
;
color
:
#232323
;
padding
:
1px
5px
;
margin-right
:
4px
;
cursor
:
pointer
;
border-radius
:
3px
3px
3px
3px
;
font-size
:
14px
;
}
.projecttype
:first-child
{
padding-left
:
0px
;
}
.projecttype
:hover
{
background
:
#F3F4F5
;
padding
:
1px
5px
;
}
.activetype
{
background
:
#F3F4F5
;
padding
:
1px
5px
!
important
;
}
}
}
.content_item_padding0
{
padding
:
0
;
}
}
.bottomlist
{
width
:
100%
;
background-color
:
#FFFFFF
;
border-radius
:
4px
4px
4px
4px
;
.bottomlist-title
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-top
:
12px
;
padding
:
16px
;
border-bottom
:
1px
solid
#EFEFEF
;
.title-right
{
display
:
flex
;
align-items
:
center
;
p
:first-child
{
font-size
:
12px
;
font-weight
:
400
;
color
:
#3D3D3D
;
margin-right
:
10px
;
}
p
:last-child
{
display
:
flex
;
align-items
:
center
;
font-size
:
14px
;
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
img
{
width
:
18px
;
height
:
18px
;
}
}
}
.bottomlist-content
{
padding-bottom
:
0px
;
}
.bottomlist-list
{
padding
:
16px
;
font-size
:
14px
;
border-bottom
:
1px
solid
#EFEFEF
;
padding-bottom
:
14px
;
.list-titel
{
font-size
:
16px
;
font-weight
:
700
;
color
:
#3D3D3D
;
line-height
:
19px
;
.list-titel-a
{
text-decoration
:
none
;
color
:
#3D3D3D
;
}
a
:hover
,
a
:visited
,
a
:link
,
a
:active
{
color
:
#3D3D3D
;
}
}
.content-label
{
margin-top
:
12px
;
.list-label
{
background
:
#F3F3FF
;
color
:
#8491E8
;
border-radius
:
1px
1px
1px
1px
;
padding
:
3px
7px
;
font-size
:
12px
;
}
}
.list-content
{
margin-top
:
8px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
.list-content-text
{
margin-top
:
7px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
margin-right
:
27px
;
font-size
:
14px
;
span
:first-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
line-height
:
15px
}
span
:last-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
line-height
:
15px
}
.blue
{
color
:
#0081FF
!
important
;
cursor
:
pointer
;
}
}
}
.list-addree
{
width
:
auto
;
background
:
#F3F4F5
;
display
:
inline-flex
;
margin-top
:
7px
;
.list-content-text
{
margin-top
:
0px
;
span
{
line-height
:
30px
!
important
;
}
}
img
{
width
:
14px
;
margin
:
0
8px
;
}
}
}
.bottomlist-list
:hover
{
background
:
#F6F9FC
;
cursor
:
pointer
;
}
.pagination
{
padding
:
14px
;
.el-pagination
{
float
:
right
;
}
}
}
</
style
>
<
style
lang=
"scss"
scoped
>
#bidRecord_wrap
{
padding
:
0
16px
;
font-size
:
14px
;
.land_content_wrap
{
display
:
flex
;
line-height
:
34px
;
.land_content_wrap_label
{
color
:
#666666
;
margin-right
:
4px
;
}
}
.data_list
{
width
:
1184px
;
margin
:
0
auto
;
.data_list_head
{
height
:
50px
;
line-height
:
50px
;
color
:
#666666
;
.data_list_count
{
color
:
#ff2a00
;
font-weight
:
bold
;
}
}
.data_list_item
{
border-top
:
1px
solid
#efefef
;
padding
:
24px
16px
;
padding-left
:
16px
;
margin-left
:
-16px
;
&
:hover
{
background
:
#f5faff
;
}
.data_list_h1
{
width
:
1168px
;
font-size
:
18px
;
font-weight
:
bold
;
color
:
#333333
;
line-height
:
24px
;
margin-bottom
:
10px
;
text-decoration
:none
;
word-break
:
break-all
;
display
:
inline-block
;
}
.data_list_h1_1
{
cursor
:
pointer
;
}
.label_box
{
padding-bottom
:
6px
;
display
:
flex
;
.label_span
{
padding
:
0
8px
;
display
:
inline-block
;
height
:
22px
;
line-height
:
22px
;
border-radius
:
2px
2px
2px
2px
;
margin-right
:
8px
;
font-size
:
12px
;
}
.label_span1
{
background
:
#e4f3fd
;
color
:
#0081ff
;
}
.label_span2
{
background
:
#f3f3ff
;
color
:
#8491e8
;
}
.label_span3
{
background
:
#e3f6f8
;
color
:
#44bcc4
;
}
.label_span4
{
background
:
#e3f6f8
;
color
:
#44bcc4
;
}
}
.label_wrap
{
font-size
:
14px
;
margin-top
:
10px
;
line-height
:
18px
;
display
:
flex
;
.label_item
{
color
:
#999999
;
}
.label_item1
{
position
:
relative
;
top
:
-3px
;
}
.company
{
color
:
#0081ff
;
cursor
:
pointer
;
margin-right
:
20px
;
}
.label_con
{
color
:
#333333
;
margin-right
:
20px
;
max-width
:
900px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.label_con1
{
width
:
1042px
;
display
:
inline-block
;
margin
:
0
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
}
}
}
.content_li
{
padding
:
16px
0
;
display
:
flex
;
align-items
:
center
;
position
:
relative
;
.content_item
{
.include-keywords
{
display
:
flex
;
align-items
:
center
;
position
:
relative
;
.lefttltel
{
display
:
inline-block
;
background
:
#f5f5f5
;
color
:
#333
;
border
:
1px
solid
#efefef
;
border-right
:
none
;
opacity
:
1
;
width
:
71px
;
height
:
40px
;
text-align
:
center
;
line-height
:
40px
;
}
.el-input
{
line-height
:
40px
;
border-radius
:
0
;
::v-deep
.el-input__inner
{
width
:
100%
;
height
:
40px
;
line-height
:
40px
;
border-radius
:
0
;
}
}
.commonly-input
{
::v-deep
.el-input__inner
{
padding-right
:
100px
;
}
}
.commonly
{
position
:
absolute
;
top
:
10px
;
right
:
16px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
#0081ff
;
cursor
:
pointer
;
}
}
}
}
}
</
style
>
dsk-operate-ui/src/views/enterpriseData/index.vue
View file @
715f3f0d
<
template
>
<div
class=
"app-container"
>
<iframe
ref=
"companyIframe"
marginwidth=
"0"
marginheight=
"0"
frameborder=
"0"
scrolling=
"no"
width=
"100%"
:height=
"iframeHight"
src=
"https://pre.jiansheku.com/enterprise/56546856314e567a69/"
/>
<div
class=
"content"
>
<div
class=
"combined-title"
>
<div
class=
"title-right"
>
<div
class=
"tab"
>
<div
style=
"position:relative"
v-for=
"(itme,i) in personnelList"
:class=
"itme.status==true?'active':'' "
:key=
'i'
@
click=
"personnelListbtn(i)"
>
<p>
{{
itme
.
value
}}
</p>
</div>
</
template
>
</div>
<p
class=
"solid"
></p>
</div>
</div>
</div>
<!-- 企业专项债 -->
<!--
<debtProject
v-if=
"personnelHerf=='debtProject'"
/>
-->
<!-- 查企业 -->
<SearchEnterprise
v-if=
"personnelHerf=='SearchEnterprise'"
/>
</div>
</
template
>
<
script
>
import
SearchEnterprise
from
"./components/SearchEnterprise/index.vue"
;
export
default
{
name
:
'EnterpriseData'
,
components
:
{
},
import
"@/assets/styles/public.css"
;
export
default
{
name
:
'enterpriseData'
,
components
:
{
SearchEnterprise
},
data
()
{
return
{
iframeHight
:
null
,
iframeWin
:
{}
}
// tablist
personnelList
:
[{
key
:
'1'
,
status
:
false
,
value
:
'查业主单位'
,
},
computed
:
{
{
key
:
'SearchEnterprise'
,
status
:
true
,
value
:
'查建筑企业'
,
},
created
()
{
}
,
mounted
()
{
this
.
getInframeHight
()
]
,
personnelHerf
:
'SearchEnterprise'
}
},
created
()
{},
methods
:
{
getInframeHight
()
{
const
_this
=
this
window
.
addEventListener
(
'message'
,
function
(
e
)
{
const
data
=
e
.
data
if
(
data
&&
typeof
data
===
'object'
&&
data
.
height
)
{
_this
.
iframeHight
=
data
.
height
personnelListbtn
(
index
)
{
for
(
var
i
=
0
;
i
<
this
.
personnelList
.
length
;
i
++
)
{
this
.
personnelList
[
i
].
status
=
false
;
}
})
this
.
personnelList
[
index
].
status
=
true
;
this
.
personnelHerf
=
this
.
personnelList
[
index
].
key
;
},
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.app-container
{
margin
:
12px
24px
;
padding
:
0
;
}
.content
{
padding
:
0px
16px
;
background
:
#FFFFFF
;
}
.app-container
.combined-title
{
display
:
flex
;
padding-top
:
16px
;
align-items
:
center
}
.app-container
.combined-title
.title-icon
{
display
:
inline-block
;
width
:
6px
;
height
:
26px
;
background
:
#0081FF
;
border-radius
:
0px
0px
0px
0px
;
opacity
:
1
;
margin-right
:
18px
;
}
.app-container
.combined-title
.title-right
{
display
:
flex
;
width
:
100%
;
position
:
relative
;
height
:
40px
;
}
.app-container
.combined-title
.title-right
.title-text
{
font-size
:
16px
;
font-weight
:
bold
;
color
:
#333333
;
line-height
:
40px
;
}
.app-container
.combined-title
.title-right
.title-add
{
color
:
#0081FF
;
cursor
:
pointer
;
position
:
absolute
;
right
:
0
;
}
.app-container
.combined-title
.title-right
.title-addyj
{
top
:
5px
;
}
.app-container
.combined-title
.title-right
.title-add
.add-img
{
position
:
relative
;
top
:
-1px
;
margin-right
:
6px
;
}
.app-container
.combined-title
.title-right
.solid
{
width
:
100%
;
height
:
1px
;
background-color
:
#EEEEEE
;
position
:
absolute
;
bottom
:
-1px
;
left
:
0
;
z-index
:
1
;
}
.tab
{
display
:
flex
;
z-index
:
2
;
}
.tab_p_32
{
padding-right
:
32px
;
padding-left
:
32px
;
}
.tab
div
{
cursor
:
pointer
;
color
:
#666666
;
font-size
:
16px
;
text-align
:
center
;
margin-right
:
32px
;
line-height
:
40px
;
}
.tab
div
p
{
display
:
inline-block
;
padding
:
0px
;
}
.tab
div
.logo
{
color
:
#fff
;
font-weight
:
400
;
font-size
:
10px
;
position
:
absolute
;
top
:
-6px
;
right
:
-24px
;
display
:
inline-block
;
line-height
:
14px
;
padding
:
1px
2px
;
text-align
:
center
;
background
:
#3663DE
;
border-radius
:
2px
2px
2px
2px
;
}
.tab
div
.triangle
{
display
:
inline-block
;
width
:
0px
;
height
:
0px
;
border-left
:
3px
solid
transparent
;
border-right
:
3px
solid
transparent
;
border-top
:
4px
solid
#3663DE
;
position
:
absolute
;
top
:
9
.5px
;
right
:
-3px
;
}
.tab
.active
{
color
:
#0081FF
;
}
.tab
.active
.triangle
{
border-top
:
4px
solid
#0081FF
;
}
.tab
.active
.logo
{
background
:
#0081FF
;
}
.tab
.active
p
{
border-bottom
:
2px
solid
#0081FF
;
font-weight
:
bold
;
}
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/project/projectList/component/jsnr.vue
View file @
715f3f0d
...
...
@@ -251,8 +251,9 @@
param
.
id
=
this
.
id
editXMNR
(
param
).
then
(
result
=>
{
if
(
result
.
code
==
200
)
this
.
$message
.
success
(
'修改成功'
)
this
.
$message
.
success
(
'修改成功
!
'
)
else
{
this
.
$message
.
error
(
res
.
msg
)
this
.
getJSNR
()
}
})
...
...
dsk-operate-ui/src/views/project/projectList/component/lxr.vue
View file @
715f3f0d
...
...
@@ -61,7 +61,7 @@
</el-table>
<div
class=
"bottems"
>
<div
class=
"btn btn_primary h28"
@
click=
"opennew"
><div
class=
"img img1"
></div>
新增联系人
</div>
<el-pagination
<el-pagination
v-if=
"total>searchParam.pageSize"
background
:page-size=
"searchParam.pageSize"
:current-page=
"searchParam.pageNum"
...
...
dsk-operate-ui/src/views/project/projectList/component/xgqy.vue
View file @
715f3f0d
...
...
@@ -4,18 +4,20 @@
<el-card
class=
"box-card noborder"
>
<div
class=
"cardtitles"
>
相关企业
</div>
<div
class=
"searchbtns"
>
<el-select
class=
"select"
placeholder=
"企业角色"
>
<option
label=
"111"
value=
"222"
></option>
<el-select
class=
"select"
placeholder=
"企业类型"
>
<el-select
placeholder=
"请选择"
v-model=
"searchParam.companyType"
>
<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"
>
<el-table
:data=
"tableData"
:data=
"tableData
.rows
"
style=
"width: 100%"
>
<template
slot=
"empty"
>
...
...
@@ -27,26 +29,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>
...
...
@@ -57,21 +59,21 @@
width=
""
>
<
template
slot-scope=
"scope"
>
<div
class=
"hoverbtn"
>
<div
class=
"sc"
>
删除
</div>
<div
class=
"sc"
@
click=
"delQY(scope.row.id)"
>
删除
</div>
</div>
</
template
>
</el-table-column>
</el-table>
<div
class=
"tables"
>
<div
class=
"tables"
v-if=
"tableData.total > searchParam.pageSize"
>
<div
class=
"bottems"
>
<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>
...
...
@@ -85,14 +87,12 @@
<span>
新建相关企业
</span>
</div>
<div
class=
"types"
>
<div
:class=
"{'on':types==1}"
@
click=
"types=1"
><i></i>
业主单位
</div>
<div
:class=
"{'on':types==2}"
@
click=
"types=2"
><i></i>
合作伙伴
</div>
<div
:class=
"{'on':types==3}"
@
click=
"types=3"
><i></i>
竞争对手
</div>
<div
v-for=
"(item,index) in companytype"
:class=
"{'on':types==item.dictValue}"
@
click=
"totype(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>
...
...
@@ -102,42 +102,26 @@
width=
"464px"
>
<div
class=
"poptitle"
>
<img
src=
"@/assets/images/economies/icon.png"
>
<span>
新建相关企业-{{types
==1?"业主单位":""}}{{types==2?"合作伙伴":""}}{{types==3?"竞争对手":""
}}
</span>
<span>
新建相关企业-{{types}}
</span>
</div>
<el-form
class=
"popform i"
label-width=
"85px"
:rules=
"rules"
ref=
"ruleForm"
>
<el-form-item
label=
"企业名称:"
prop=
"
project
Name"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
<el-form-item
label=
"企业名称:"
prop=
"
company
Name"
class=
"row"
>
<el-input
type=
"text"
v-model=
"queryParam.companyName"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
v-if=
"types == 1"
label=
"对接深度:"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
</el-select>
<el-form-item
:label=
"typename"
class=
"row"
>
<el-input
type=
"text"
v-model=
"queryParam.depth"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
v-if=
"types == 2"
label=
"合作阶段:"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
</el-select>
</el-form-item>
<el-form-item
v-if=
"types == 3"
label=
"竞争力度:"
prop=
"projectName"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"企业角色:"
prop=
"projectName"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
<el-form-item
label=
"企业角色:"
class=
"row"
>
<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>
...
...
@@ -147,8 +131,10 @@
<
script
>
import
"@/assets/styles/project.scss"
import
{
getXGQY
,
addXGQY
}
from
'@/api/project/project'
import
{
getDictType
}
from
'@/api/main'
export
default
{
name
:
'
zlwd
'
,
name
:
'
xgqy
'
,
data
(){
return
{
types
:
1
,
...
...
@@ -177,24 +163,96 @@
address
:
'上海市普陀区金沙江路 1516 弄'
}
],
typelist
:[
'对接深度:'
,
'合作阶段:'
,
'竞争力度:'
],
typename
:
""
,
rules
:{
projectName
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
ownerCompany
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
companyName
:[{
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
:
''
,
},
}
},
created
(){
//企业类型
getDictType
(
'company_type'
).
then
(
result
=>
{
this
.
companytype
=
result
.
code
==
200
?
result
.
data
:[]
this
.
types
=
this
.
companytype
[
0
].
dictValue
})
//企业角色
getDictType
(
'company_role'
).
then
(
result
=>
{
this
.
companyrole
=
result
.
code
==
200
?
result
.
data
:[]
})
},
methods
:{
delQY
(
id
){
},
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
=>
{
this
.
tableData
=
result
.
data
})
},
//翻页
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
:
''
,
}
},
}
}
...
...
dsk-operate-ui/src/views/project/projectList/component/xmsl.vue
View file @
715f3f0d
...
...
@@ -9,13 +9,13 @@
<span>
项目级别 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 1"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.projectLevel"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{projectLevel:xmsldata.projectLevel})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 1"
>
{{
datas
.
projectLevel
||
'待添加'
}}
</span>
<span
:class=
"
{txt:!xmsldata.projectLevel}" v-else @click="nowedit = 1">
{{
xmsldata
.
projectLevel
||
'待添加'
}}
</span>
</div>
</div>
<div
class=
"con i"
>
...
...
@@ -26,7 +26,7 @@
{{
xmjd
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"xmjd"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-select
v-model=
"xmjd"
class=
"select-multiple"
placeholder=
"请选择"
@
change=
"editXMSL(
{projectStage:xmjd})"
>
<el-option
v-for=
"(item,index) in projectStage"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</div>
...
...
@@ -36,7 +36,7 @@
<div
class=
"con i"
style=
"width: 100%;"
>
<span
style=
"float: left;margin-top: 2px"
>
项目标签 :
</span>
<div
class=
"flex tipinput"
>
<div
class=
"tips"
v-for=
"(item,index) in tipslit"
>
{{
item
}}
<img
@
click=
"deltip(i
ndex
)"
src=
"@/assets/images/project/del.png"
></div>
<div
class=
"tips"
v-for=
"(item,index) in tipslit"
>
{{
item
}}
<img
@
click=
"deltip(i
tem
)"
src=
"@/assets/images/project/del.png"
></div>
<el-input
placeholder=
"待添加"
v-model=
"tipsvalue"
></el-input>
<div
class=
"addbtn"
@
click=
"addtips"
></div>
</div>
...
...
@@ -52,26 +52,26 @@
<span>
主管单位 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 2"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.supervisorUnit"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{supervisorUnit:xmsldata.supervisorUnit})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 2"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.supervisorUnit}" v-else @click="nowedit = 2">
{{
xmsldata
.
supervisorUnit
||
'待添加'
}}
</span>
</div>
</div>
<div
class=
"con i"
>
<span>
建设单位 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 3"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.constructionUnit"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{constructionUnit:xmsldata.constructionUnit})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 3"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.constructionUnit}" v-else @click="nowedit = 3">
{{
xmsldata
.
constructionUnit
||
'待添加'
}}
</span>
</div>
</div>
</div>
...
...
@@ -80,26 +80,26 @@
<span>
主管单位负责人 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 4"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.supervisorPrincipal"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{supervisorPrincipal:xmsldata.supervisorPrincipal})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 4"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.supervisorPrincipal}" v-else @click="nowedit = 4">
{{
xmsldata
.
supervisorPrincipal
||
'待添加'
}}
</span>
</div>
</div>
<div
class=
"con i"
>
<span>
建设单位负责人 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 5"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.constructionPrincipal"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{constructionPrincipal:xmsldata.constructionPrincipal})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 5"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.constructionPrincipal}" v-else @click="nowedit = 5">
{{
xmsldata
.
constructionPrincipal
||
'待添加'
}}
</span>
</div>
</div>
</div>
...
...
@@ -108,26 +108,26 @@
<span>
主管单位联系电话 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 6"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.supervisorPhone"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone
(1,$event)
"
style=
"width: 56px"
>
确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 6"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.supervisorPhone}" v-else @click="nowedit = 6">
{{
xmsldata
.
supervisorPhone
||
'待添加'
}}
</span>
</div>
</div>
<div
class=
"con i"
>
<span>
建设单位联系电话 :
</span>
<div
class=
"inputxt"
>
<div
class=
"flex"
v-if=
"nowedit == 7"
>
<el-input
placeholder=
"待添加"
></el-input>
<el-input
placeholder=
"待添加"
v-model=
"xmsldata.constructionPhone"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"isphone
(2,$event)
"
style=
"width: 56px"
>
确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
<span
class=
"txt"
v-else
@
click=
"nowedit = 7"
>
待添加
</span>
<span
:class=
"
{txt:!xmsldata.constructionPhone}" v-else @click="nowedit = 7">
{{
xmsldata
.
constructionPhone
||
'待添加'
}}
</span>
</div>
</div>
</div>
...
...
@@ -138,27 +138,27 @@
<div
class=
"otherdata"
>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_1.png"
>
<div
class=
"i"
>
{{
datas
.
contactsCount
}}
个
</div>
<div
class=
"i"
>
{{
xmsldata
.
contactsCount
}}
个
</div>
<div
class=
"j"
>
联系人
</div>
</div>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_2.png"
>
<div
class=
"i"
>
{{
datas
.
followRecordCount
}}
条
</div>
<div
class=
"i"
>
{{
xmsldata
.
followRecordCount
}}
条
</div>
<div
class=
"j"
>
跟进记录
</div>
</div>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_3.png"
>
<div
class=
"i"
>
{{
datas
.
backlogCount
}}
条
</div>
<div
class=
"i"
>
{{
xmsldata
.
backlogCount
}}
条
</div>
<div
class=
"j"
>
工作待办
</div>
</div>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_4.png"
>
<div
class=
"i"
>
{{
datas
.
fileCount
}}
个
</div>
<div
class=
"i"
>
{{
xmsldata
.
fileCount
}}
个
</div>
<div
class=
"j"
>
资料文档
</div>
</div>
<div
class=
"det"
>
<img
src=
"@/assets/images/project/xgsj_5.png"
>
<div
class=
"i"
>
{{
datas
.
relateCompanyCount
}}
家
</div>
<div
class=
"i"
>
{{
xmsldata
.
relateCompanyCount
}}
家
</div>
<div
class=
"j"
>
相关企业
</div>
</div>
</div>
...
...
@@ -167,9 +167,10 @@
</
template
>
<
script
>
import
"@/assets/styles/project.scss"
import
{
getDictType
,}
from
'@/api/main'
import
{}
from
'@/api/project/project'
import
'@/assets/styles/project.scss'
import
{
getDictType
}
from
'@/api/main'
import
{
getXMSL
,
editXMNR
,
addLabel
,
removeLabel
}
from
'@/api/project/project'
export
default
{
name
:
'xmsl'
,
props
:{
...
...
@@ -182,7 +183,8 @@
tipsvalue
:
""
,
//标签填写内容
xmjd
:
'待添加'
,
projectStage
:[],
//项目阶段
sldata
:
this
.
datas
,
id
:
this
.
$route
.
query
.
id
,
xmsldata
:
this
.
datas
,
}
},
created
(){
...
...
@@ -190,33 +192,81 @@
getDictType
(
'project_stage_type'
).
then
(
result
=>
{
this
.
projectStage
=
result
.
code
==
200
?
result
.
data
:[]
})
this
.
xmjd
=
this
.
datas
.
projectStage
this
.
tipslit
=
this
.
datas
.
labelList
this
.
getXMSL
()
},
methods
:{
editXMSL
(
param
){
let
params
=
param
params
.
id
=
this
.
id
editXMNR
(
JSON
.
stringify
(
params
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'修改成功!'
)
}
else
{
this
.
$message
.
error
(
res
.
msg
)
this
.
getXMSL
()
}
})
this
.
nowedit
=
-
1
},
//验证电话号码
isphone
(
value
){
isphone
(
type
,
value
){
var
regPartton
=
/1
[
3-8
]
+
\d{9}
/
;
var
regPartton1
=
/^
(
0
[
0-9
]{2,3}[\-]?[
2-9
][
0-9
]{6,7}[\-]?[
0-9
]?)
$/
;
if
(
!
regPartton
.
test
(
value
)
&&
!
regPartton1
.
test
(
value
))
{
this
.
$message
.
error
(
"请输入正确的电话"
);
}
else
{
if
(
type
==
1
)
{
this
.
editXMSL
({
supervisorPhone
:
this
.
xmsldata
.
supervisorPhone
})
}
if
(
type
==
2
)
{
this
.
editXMSL
({
constructionPhone
:
this
.
xmsldata
.
constructionPhone
})
}
}
},
//标签添加、删除
addtips
(){
if
(
this
.
tipsvalue
==
""
)
return
false
if
(
this
.
tipslit
.
length
>=
30
){
if
(
this
.
tipslit
!=
null
&&
this
.
tipslit
.
length
>=
30
){
this
.
$message
.
error
(
"最多能只能添加30个标签"
)
return
false
}
this
.
tipslit
.
push
(
this
.
tipsvalue
)
let
param
=
{
businessId
:
this
.
id
,
label
:
this
.
tipsvalue
}
addLabel
(
JSON
.
stringify
(
param
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'修改成功!'
)
this
.
tipsvalue
=
""
this
.
getXMSL
()
}
else
{
this
.
$message
.
error
(
res
.
msg
)
}
})
// this.tipslit.push(this.tipsvalue)
},
deltip
(
value
){
let
param
=
{
businessId
:
this
.
id
,
label
:
value
}
removeLabel
(
JSON
.
stringify
(
param
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'修改成功!'
)
this
.
getXMSL
()
}
else
{
this
.
$message
.
error
(
res
.
msg
)
}
})
},
deltip
(
index
){
this
.
tipslit
.
splice
(
index
,
1
)
getXMSL
(){
getXMSL
(
this
.
id
).
then
(
result
=>
{
this
.
xmjd
=
result
.
data
.
projectStage
this
.
tipslit
=
result
.
data
.
labelList
this
.
xmsldata
=
result
.
data
})
},
}
}
...
...
dsk-operate-ui/src/views/project/projectList/detail.vue
View file @
715f3f0d
...
...
@@ -12,17 +12,18 @@
<img
src=
"@/assets/images/project/headimg.png"
class=
"headimg"
>
<strong
class=
"text"
>
{{
ProjectData
.
projectName
}}
</strong>
<div
class=
"locks"
>
<div
@
click=
"islock=true"
>
<img
v-if=
"ProjectData.isPrivate == 0"
src=
"@/assets/images/project/lock.png"
>
<img
v-else
src=
"@/assets/images/project/lockopen.png"
>
{{
ProjectData
.
isPrivate
==
0
?
"仅自己可见"
:
"他人可见"
}}
<
!--
<div
class=
"delform"
>
--
>
<
!--
<div
class=
"words"
>
{{
ProjectData
.
isPrivate
==
0
?
"是否将项目权限修改为他人可见?"
:
"是否将项目权限修改为仅自己可见?"
}}
</div>
--
>
<
!--
<div>
--
>
<
!--
<div
class=
"btnsmall btn_primary h28"
>
确定
</div>
--
>
<
!--
<div
class=
"btnsmall btn_cancel h28"
>
取消
</div>
--
>
<
!--
</div>
--
>
<
!--
</div>
--
>
</div>
<
div
class=
"delform"
v-if=
"islock"
>
<
div
class=
"words"
>
{{
ProjectData
.
isPrivate
==
0
?
"是否将项目权限修改为他人可见?"
:
"是否将项目权限修改为仅自己可见?"
}}
</div
>
<
div
>
<
div
class=
"btnsmall btn_primary h28"
@
click=
"locks(ProjectData.isPrivate)"
>
确定
</div
>
<
div
class=
"btnsmall btn_cancel h28"
@
click=
"islock=false"
>
取消
</div
>
<
/div
>
<
/div
>
</div>
</div>
<div
class=
"contets row"
>
...
...
@@ -33,7 +34,7 @@
{{
xmlx
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"xmlx"
class=
"select-multiple"
placeholder=
"请选择"
@
change=
"
{}
">
<el-select
v-model=
"xmlx"
class=
"select-multiple"
placeholder=
"请选择"
@
change=
"
editXMSL(
{projectType:xmlx})
">
<el-option
v-for=
"(item,index) in projectType"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</div>
...
...
@@ -46,7 +47,7 @@
{{
xmlb
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"xmlb"
class=
"select-multiple"
placeholder=
"请选择"
>
<el-select
v-model=
"xmlb"
class=
"select-multiple"
placeholder=
"请选择"
@
change=
"editXMSL(
{projectCategory:xmlb})"
>
<el-option
v-for=
"(item,index) in projectCategory"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
</div>
...
...
@@ -58,7 +59,7 @@
<div
class=
"flex"
v-if=
"nowedit == 3"
>
<el-input
v-model=
"ProjectData.investmentAmount"
placeholder=
"待添加"
@
input=
"number"
></el-input>
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
>
确定
</div>
<div
class=
"btnsmall btn_primary h28"
style=
"width: 56px"
@
click=
"editXMSL(
{investmentAmount:ProjectData.investmentAmount})"
>确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
...
...
@@ -69,11 +70,11 @@
<span>
建设地点:
</span>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text:address != '待添加'}">
{{
address
}}
<span
:class=
"
{ color_text:address
txt
!= '待添加'}">
{{
address
txt
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-cascader
class=
"cascader-region select-location"
<el-cascader
class=
"cascader-region select-location"
v-model=
"ProjectData.address"
ref=
"myCascader"
:props=
"props"
:options=
"addressList"
@
change=
"handleChange"
></el-cascader>
...
...
@@ -133,7 +134,7 @@
import
zlwd
from
'./component/zlwd.vue'
import
xgqy
from
'./component/xgqy.vue'
import
prvinceTree
from
'@/assets/json/provinceTree'
import
{
getXMSL
}
from
'@/api/project/project'
import
{
getXMSL
,
editXMNR
}
from
'@/api/project/project'
export
default
{
name
:
'detail'
,
components
:
{
xmsl
,
jsnr
,
lxr
,
gjjl
,
gzdb
,
zlwd
,
xgqy
},
...
...
@@ -153,12 +154,13 @@
thistag
:
'xmsl'
,
xmlx
:
'请选择'
,
//项目类型
xmlb
:
'请选择'
,
//项目类别
islock
:
true
,
//仅自己可见
islock
:
false
,
projectStage
:[],
//项目阶段
projectType
:[],
//项目类型
projectCategory
:[],
//项目类别
nowedit
:
-
1
,
address
:
'待添加'
,
address
:[],
addresstxt
:
'待添加'
,
//项目地区
addressList
:[],
domicile
:[],
...
...
@@ -183,6 +185,10 @@
this
.
projectCategory
=
result
.
code
==
200
?
result
.
data
:[]
})
//获取基本信息
this
.
getXMSL
()
},
methods
:
{
getXMSL
(){
getXMSL
(
this
.
id
).
then
(
result
=>
{
this
.
ProjectData
=
result
.
code
==
200
?
result
.
data
:{}
this
.
$route
.
query
.
projectname
=
result
.
data
.
projectName
...
...
@@ -190,20 +196,42 @@
this
.
xmlb
=
result
.
data
.
projectCategory
==
""
||
result
.
data
.
projectCategory
==
null
?
"请选择"
:
result
.
data
.
projectCategory
this
.
thisindex
=
result
.
data
.
projectStage
let
list
=
[]
if
(
result
.
data
.
provinceName
){
list
.
push
(
result
.
data
.
provinceName
)
let
txt
=
''
if
(
result
.
data
.
provinceId
){
list
.
push
(
result
.
data
.
provinceId
)
txt
+=
result
.
data
.
provinceName
}
if
(
result
.
data
.
cityName
){
list
.
push
(
result
.
data
.
cityName
)
if
(
result
.
data
.
cityId
){
list
.
push
(
result
.
data
.
cityId
)
txt
+=
'/'
+
result
.
data
.
cityName
}
if
(
result
.
data
.
districtName
){
list
.
push
(
result
.
data
.
districtName
)
if
(
result
.
data
.
districtId
){
list
.
push
(
result
.
data
.
districtId
)
txt
+=
'/'
+
result
.
data
.
districtName
}
this
.
address
=
list
console
.
log
(
this
.
ProjectData
.
team
)
this
.
address
=
list
.
length
>
0
?
list
:
"待添加"
this
.
addresstxt
=
txt
==
""
?
"待添加"
:
txt
})
},
locks
(
isPrivate
){
isPrivate
=
isPrivate
==
0
?
1
:
0
this
.
editXMSL
({
isPrivate
:
isPrivate
})
this
.
lock
=
false
},
editXMSL
(
param
){
let
params
=
param
params
.
id
=
this
.
id
editXMNR
(
JSON
.
stringify
(
params
)).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
$message
.
success
(
'修改成功!'
)
}
else
{
this
.
$message
.
error
(
res
.
msg
)
this
.
getXMSL
()
}
})
this
.
nowedit
=
-
1
},
methods
:
{
//地区
async
prvinceTree
()
{
// await axios.post("https://files.jiansheku.com/file/json/common/provinceTree.json", {}, {
...
...
@@ -238,11 +266,10 @@
},
choose
(
value
){
this
.
thisindex
=
value
console
.
log
(
value
)
this
.
editXMSL
({
projectStage
:
value
}
)
},
//内容组件切换
getCom
(
tag
){
console
.
log
(
tag
)
this
.
thistag
=
tag
},
//输入数字
...
...
@@ -251,40 +278,33 @@
},
handleChange
(
value
)
{
console
.
log
(
value
);
let
str
=
''
var
labelString
=
this
.
$refs
.
myCascader
.
getCheckedNodes
()[
0
].
pathLabels
;
let
txt
=
''
labelString
.
forEach
((
item
,
index
)
=>
{
if
(
index
==
0
)
str
+=
item
else
str
+=
'-'
+
item
let
str
=
''
if
(
index
>
0
){
str
=
'/'
}
txt
+=
str
+
item
})
this
.
addresstxt
=
txt
let
param
=
{
provinceId
:
null
,
cityId
:
null
,
districtId
:
null
}
value
.
forEach
((
item
,
index
)
=>
{
if
(
index
==
0
){
param
.
provinceId
=
parseInt
(
item
)
}
if
(
index
==
1
){
param
.
cityId
=
parseInt
(
item
)
}
if
(
index
==
2
){
param
.
districtId
=
parseInt
(
item
)
}
})
this
.
address
=
str
let
arr
=
this
.
$refs
.
myCascader
.
getCheckedNodes
();
// console.log(arr)
let
province
=
[],
city
=
[],
area
=
[];
this
.
domicile
=
[];
for
(
var
i
in
arr
)
{
if
(
arr
[
i
].
parent
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
arr
[
i
].
hasChildren
&&
city
.
push
(
arr
[
i
].
value
);
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
!
arr
[
i
].
hasChildren
&&
area
.
push
(
arr
[
i
].
value
);
!
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
else
{
province
.
push
(
arr
[
i
].
value
);
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
// var obj = JSON.parse(JSON.stringify(this.searchParam));
// obj.province = province;
// obj.city = city;
// obj.area = area;
// this.searchParam = obj;
this
.
editXMSL
(
param
)
},
}
}
...
...
dsk-operate-ui/src/views/project/projectList/index.vue
View file @
715f3f0d
...
...
@@ -149,7 +149,7 @@
</div>
</div>
<div
class=
"tables"
>
<div
class=
"bottems"
v-if=
"total>
0
"
>
<div
class=
"bottems"
v-if=
"total>
searchParam.pageSize
"
>
<el-pagination
background
:page-size=
"searchParam.pageSize"
...
...
dsk-operate-ui/src/views/radar/BidRecord/details.vue
View file @
715f3f0d
...
...
@@ -13,17 +13,13 @@
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
办件结果
:
</span>
<span
>
芜湖旭日机械制造有限公司
</span>
<span>
发布时间
:
</span>
<span
>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
总投资
:
</span>
<span>
来源网站
:
</span>
<span>
芜湖旭日
</span>
</p>
<p
class=
"list-content-text"
>
<span>
审批日期:
</span>
<span>
12345.62万
</span>
</p>
</div>
...
...
@@ -32,53 +28,7 @@
</div>
<div
class=
"content main3"
>
<div
class=
"common-title"
>
拟建项目详情
</div>
<div
class=
"main3-box"
>
<p>
<label
class=
"label"
>
项目法人
</label>
<span>
序号
</span>
<label
class=
"label"
>
总投资(万元)
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
项目类型
</label>
<span
class=
"span-one"
>
序号
</span>
</p>
<p>
<label
class=
"label"
>
项目属地
</label>
<span>
序号
</span>
<label
class=
"label"
>
审批类型
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
建设规模
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
计划开工日期
</label>
<span>
序号
</span>
<label
class=
"label"
>
计划完成日期
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
项目联系方式
</label>
<span>
序号
</span>
<label
class=
"label"
>
行业分类
</label>
<span>
序号
</span>
</p>
<p>
<label
class=
"label"
>
项目详情地址
</label>
<span>
序号
</span>
<label
class=
"label"
>
项目代码
</label>
<span>
序号
</span>
</p>
</div>
</div>
<div
class=
"content main5"
>
<div
class=
"common-title"
>
立项审批
</div>
...
...
@@ -90,81 +40,38 @@
fit
highlight-current-row
>
<el-table-column
label=
"
审批事项"
width=
"27
0"
>
<el-table-column
label=
"
序号"
width=
"8
0"
>
<template
slot-scope=
"scope"
>
企业投资项目备案
1
</
template
>
</el-table-column>
<el-table-column
label=
"
审批结果"
width=
"187
"
>
<el-table-column
label=
"
投标单位
"
>
<
template
slot-scope=
"scope"
>
通过
</
template
>
</el-table-column>
<el-table-column
label=
"
审批部门
"
>
<el-table-column
label=
"
投标报价(万)"
width=
"300
"
>
<
template
slot-scope=
"scope"
>
老河口市发展和改革局
</
template
>
</el-table-column>
<el-table-column
label=
"审批问号"
width=
"328"
>
<
template
slot-scope=
"scope"
>
--
</
template
>
</el-table-column>
<el-table-column
prop=
"zj"
label=
"审批日期"
width=
"240"
>
<
template
slot-scope=
"scope"
>
2022-08-28
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<div
class=
"content main3"
>
<div
class=
"common-title"
>
原文信息
</div>
<div
class=
"content main5"
>
<div
class=
"common-title"
>
立项推介
</div>
<div
class=
"table-item"
>
<el-table
:data=
"tableData"
element-loading-text=
"Loading"
border
fit
highlight-current-row
>
<el-table-column
label=
"立项推介"
>
<
template
slot-scope=
"scope"
>
-
</
template
>
</el-table-column>
<el-table-column
label=
"引入资本规模(万元)"
width=
"232"
>
<
template
slot-scope=
"scope"
>
--
</
template
>
</el-table-column>
<el-table-column
label=
"引入资本时间"
width=
"243"
>
<
template
slot-scope=
"scope"
>
2019-12-24
</
template
>
</el-table-column>
<el-table-column
label=
"推介时间"
width=
"243"
>
<
template
slot-scope=
"scope"
>
2019-12-24
</
template
>
<div
class=
"main3-box"
>
</el-table-column>
<el-table-column
prop=
"zj"
label=
"是否完成推介"
width=
"243"
>
<
template
slot-scope=
"scope"
>
否
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</div>
</template>
...
...
@@ -172,7 +79,7 @@
import
"@/assets/styles/public.css"
;
export
default
{
name
:
'
Establishment
Details'
,
name
:
'
BidRecord
Details'
,
data
()
{
return
{
id
:
''
,
...
...
@@ -362,14 +269,6 @@
}
.qyzx-details
{
.tab
{
font-size
:
12px
;
color
:
#A1A1A1
;
span
{
color
:
#232323
;
}
}
.content
{
margin-top
:
16px
;
...
...
@@ -382,170 +281,12 @@
margin-bottom
:
8px
;
}
.main1
{
.title
{
color
:
#232323
;
font-size
:
16px
;
line-height
:
28px
;
font-weight
:
bold
;
margin-bottom
:
8px
;
text-align
:
left
;
img
{
width
:
28px
;
height
:
28px
;
margin-bottom
:
-9px
;
margin-right
:
17px
;
}
}
p
{
color
:
#3D3D3D
;
font-size
:
14px
;
margin
:
0
;
}
}
.main2
{
.list
{
display
:
flex
;
margin
:
16px
0
;
}
.item
{
width
:
24
.5%
;
margin-right
:
16px
;
height
:
100px
;
display
:
flex
;
justify-content
:
space-between
;
border-radius
:
8px
;
.item-left
{
margin-left
:
16px
;
margin-top
:
24px
;
h4
{
color
:
#232323
;
font-size
:
22px
;
line-height
:
22px
;
font-weight
:
bold
;
margin
:
0
;
span
{
font-weight
:
400
;
margin-left
:
4px
;
font-size
:
18px
;
}
}
p
{
margin
:
0
;
color
:
#3D3D3D
;
font-size
:
14px
;
padding-top
:
8px
;
}
}
.img
{
width
:
56px
;
height
:
56px
;
margin-top
:
22px
;
margin-right
:
12px
;
}
}
.color1
{
background
:
rgba
(
246
,
190
,
59
,
0
.08
);
border
:
1px
solid
rgba
(
246
,
190
,
59
,
0
.2
);
}
.color2
{
background
:
rgba
(
148
,
216
,
196
,
0
.102
);
border
:
1px
solid
rgba
(
73
,
187
,
154
,
0
.1
);
}
.color3
{
background
:
rgba
(
57
,
100
,
199
,
0
.06
);
border
:
1px
solid
rgba
(
57
,
100
,
199
,
0
.1
);
}
.color4
{
background
:
rgba
(
0
,
129
,
255
,
0
.04
);
border
:
1px
solid
rgba
(
0
,
129
,
255
,
0
.1
);
}
}
.main3
{
.main3-box
{
margin-top
:
22px
;
border-top
:
1px
solid
#E6E9F0
;
p
{
display
:
flex
;
align-items
:
center
;
margin
:
0
;
border-left
:
1px
solid
#E6E9F0
;
border-bottom
:
1px
solid
#E6E9F0
;
.label
{
width
:
10%
;
font-weight
:
400
;
line-height
:
40px
;
font-size
:
12px
;
height
:
40px
;
background
:
#F0F3FA
;
padding-left
:
12px
;
}
span
{
width
:
40%
;
color
:
#000
;
height
:
40px
;
line-height
:
40px
;
padding-left
:
12px
;
font-size
:
12px
;
}
.span-one
{
width
:
90%
;
}
}
}
}
.main4
{
.main4-box
{
margin-top
:
22px
;
.label
{
width
:
14%
;
background
:
#F0F3FA
;
border
:
1px
solid
#E6E9F0
;
display
:
inline-block
;
height
:
40px
;
line-height
:
40px
;
font-size
:
12px
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
padding-left
:
12px
;
}
span
{
width
:
19%
;
display
:
inline-block
;
height
:
40px
;
line-height
:
40px
;
border-top
:
1px
solid
#E6E9F0
;
border-bottom
:
1px
solid
#E6E9F0
;
padding-left
:
12px
;
font-size
:
12px
;
}
min-height
:
400px
;
border
:
1px
solid
#D8D8D8
;
span
:last-child
{
width
:
20%
;
border-right
:
1px
solid
#E6E9F0
;
}
}
}
...
...
dsk-operate-ui/src/views/radar/Bidding/details.vue
0 → 100644
View file @
715f3f0d
<
template
>
<div
class=
"app-container qyzx-details"
>
<div
class=
"bottomlist"
>
<ul
class=
"bottomlist-content"
>
<li
class=
"bottomlist-list"
>
<p
class=
"list-titel"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
<!--
<div
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
-->
</p>
<div
class=
"content-label"
>
<span
class=
"list-label"
>
市政工程
</span>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
招采单位:
</span>
<span
class=
"blue"
>
江西合胜合招标咨询有限公司
</span>
</p>
<p
class=
"list-content-text"
>
<span>
代理单位:
</span>
<span
class=
"blue"
>
江西合胜合招标咨询有限公司
</span>
</p>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
预算金款:
</span>
<span>
123,456,78万元
</span>
</p>
<p
class=
"list-content-text"
>
<span>
联系方式:
</span>
<span
>
招采单位 张工 123456789
</span>
</p>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
发布时间:
</span>
<span
>
今日
</span>
</p>
<p
class=
"list-content-text"
>
<span>
报名截止日期:
</span>
<span
>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
开标时间:
</span>
<span
>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
来源网站:
</span>
<span
>
赤峰市阿鲁科尔沁旗人民政府
</span>
</p>
</div>
</li>
</ul>
</div>
<div
class=
"content main3"
>
<div
class=
"common-title"
>
原文信息
</div>
<div
class=
"list-content-img"
@
mouseenter=
"showimg=false"
@
mouseleave=
"showimg=true"
>
<img
v-if=
"showimg"
src=
"@/assets/images/bxpro/original1.png"
>
<img
v-else
src=
"@/assets/images/bxpro/original.png"
>
<span>
原文链接
</span>
</div>
<div
class=
"main3-box"
>
</div>
</div>
</div>
</
template
>
<
script
>
import
"@/assets/styles/public.css"
;
export
default
{
name
:
'BiddingDetails'
,
data
()
{
return
{
id
:
''
,
tableData
:
[{
id
:
0
,
name
:
'20重庆债14(2005938)'
,
time
:
'2020-09-18'
,
gm
:
'285.24'
,
zj
:
'否'
,
}],
showimg
:
true
}
},
created
()
{
console
.
log
(
this
.
$route
.
params
)
this
.
id
=
this
.
$route
.
params
.
id
},
methods
:
{
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.bottomlist
{
width
:
100%
;
background-color
:
#FFFFFF
;
border-radius
:
4px
4px
4px
4px
;
.bottomlist-title
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-top
:
12px
;
padding
:
16px
;
border-bottom
:
1px
solid
#EFEFEF
;
.title-right
{
display
:
flex
;
align-items
:
center
;
p
:first-child
{
font-size
:
12px
;
font-weight
:
400
;
color
:
#3D3D3D
;
margin-right
:
10px
;
}
p
:last-child
{
display
:
flex
;
align-items
:
center
;
font-size
:
14px
;
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
img
{
width
:
18px
;
height
:
18px
;
}
}
}
.bottomlist-content
{
padding-bottom
:
0px
;
}
.bottomlist-list
{
padding
:
16px
;
font-size
:
14px
;
border-bottom
:
1px
solid
#EFEFEF
;
padding-bottom
:
14px
;
.list-titel
{
font-size
:
16px
;
font-weight
:
700
;
color
:
#3D3D3D
;
line-height
:
19px
;
.list-titel-a
{
text-decoration
:
none
;
color
:
#3D3D3D
;
}
a
:hover
,
a
:visited
,
a
:link
,
a
:active
{
color
:
#3D3D3D
;
}
}
.content-label
{
margin-top
:
12px
;
.list-label
{
background
:
#F3F3FF
;
color
:
#8491E8
;
border-radius
:
1px
1px
1px
1px
;
padding
:
3px
7px
;
font-size
:
12px
;
}
.list-label-zb
{
font-weight
:
400
;
color
:
#5A88F9
;
background
:
#E7EDFC
;
}
.list-label-lx
{
font-weight
:
400
;
color
:
#41A1FD
;
background
:
#E4F3FD
;
}
}
.list-content
{
margin-top
:
6px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
.list-content-text
{
margin-top
:
7px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
margin-right
:
27px
;
font-size
:
14px
;
span
:first-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
line-height
:
15px
}
span
:last-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
line-height
:
15px
}
.blue
{
color
:
#0081FF
!
important
;
cursor
:
pointer
;
}
}
}
.list-addree
{
width
:
auto
;
background
:
#F3F4F5
;
display
:
inline-flex
;
margin-top
:
7px
;
.list-content-text
{
margin-top
:
0px
;
span
{
line-height
:
30px
!
important
;
}
}
img
{
width
:
14px
;
margin
:
0
8px
;
}
}
}
.bottomlist-list
:hover
{
background
:
#F6F9FC
;
cursor
:
pointer
;
}
.pagination
{
padding
:
14px
;
.el-pagination
{
float
:
right
;
}
}
}
.app-container
{
padding
:
0
;
}
.qyzx-details
{
.content
{
margin-top
:
16px
;
background
:
#FFFFFF
;
padding
:
16px
;
border-radius
:
4px
;
}
.common-title
{
margin-bottom
:
8px
;
}
.main3
{
position
:
relative
;
.main3-box
{
margin-top
:
22px
;
min-height
:
400px
;
border
:
1px
solid
#D8D8D8
;
}
.list-content-img
{
position
:
absolute
;
top
:
16px
;
right
:
14px
;
color
:
#0081FF
;
display
:
flex
;
align-items
:
center
;
font-size
:
14px
;
cursor
:
pointer
;
img
{
width
:
14px
;
height
:
14px
;
margin-right
:
4px
;
}
}
.list-content-img
:hover
{
color
:
#0067CC
;
}
}
}
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/radar/Tender/details.vue
View file @
715f3f0d
...
...
@@ -176,7 +176,7 @@
}
.content-label
{
margin-top
:
7
px
;
margin-top
:
12
px
;
.list-label
{
background
:
#F3F3FF
;
...
...
@@ -191,7 +191,7 @@
.list-content
{
margin-top
:
3
px
;
margin-top
:
6
px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
...
...
@@ -270,15 +270,6 @@
}
.qyzx-details
{
.tab
{
font-size
:
12px
;
color
:
#A1A1A1
;
span
{
color
:
#232323
;
}
}
.content
{
margin-top
:
16px
;
background
:
#FFFFFF
;
...
...
dsk-operate-ui/src/views/radar/components/BidRecord/index.vue
View file @
715f3f0d
...
...
@@ -35,7 +35,7 @@
></el-cascader>
</div>
<el-dropdown
@
command=
"punishDatehandleCommand"
trigger=
"click"
ref=
"punishDateShowPopper"
:hide-on-click=
"false"
>
<el-dropdown
@
command=
"punishDatehandleCommand"
trigger=
"click"
class=
"el-dropdown-land"
ref=
"punishDateShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"punishDateValue ? 'color_text' : ''"
>
发布时间
{{
punishDateValue
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
...
...
@@ -132,7 +132,7 @@
<ul
class=
"bottomlist-content"
>
<li
class=
"bottomlist-list"
>
<p
class=
"list-titel"
>
<router-link
:to=
"'/radar/
Establishment
/details/'+ 1"
tag=
"a"
class=
"list-titel-a"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
</router-link>
<router-link
:to=
"'/radar/
BidRecord
/details/'+ 1"
tag=
"a"
class=
"list-titel-a"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
</router-link>
<!--
<div
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
-->
</p>
<div
class=
"content-label"
>
...
...
dsk-operate-ui/src/views/radar/components/Bidding/index.vue
0 → 100644
View file @
715f3f0d
<
template
>
<div>
<div
class=
"content"
>
<div
class=
"content_item"
>
<div
class=
"label"
>
项目名称
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"jskBidQueryDto.projectName"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
招标单位
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"jskBidQueryDto.tenderee"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
工程规模
</div>
<div
class=
"content_right"
>
<el-input
class=
"ename_input"
placeholder=
"请输入项目名称关键字"
v-model=
"jskBidQueryDto.projectScale"
></el-input>
</div>
</div>
<div
class=
"content_item"
>
<div
class=
"label"
>
更多筛选
</div>
<div
class=
"content_right"
>
<div
class=
"select-popper"
>
<span
:class=
"
{color_text:jskBidQueryDto.province.length ||jskBidQueryDto.city.length ||jskBidQueryDto.county.length,}">
项目属地
{{
jskBidQueryDto
.
province
.
length
||
jskBidQueryDto
.
city
.
length
||
jskBidQueryDto
.
county
.
length
?
jskBidQueryDto
.
province
.
length
+
jskBidQueryDto
.
city
.
length
+
jskBidQueryDto
.
county
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-cascader
ref=
"address"
class=
"cascader-region"
v-model=
"addressType"
:options=
"addressList"
:props=
"props"
@
change=
"domicileChange"
collapse-tags
clearable
></el-cascader>
</div>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.objectType.length }">
标的物类型
{{
jskBidQueryDto
.
objectType
.
length
?
jskBidQueryDto
.
objectType
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"jskBidQueryDto.objectType"
class=
"select-multiple"
multipleplaceholder=
"请选择"
>
<el-option
v-for=
"(item, i) in objectTypeList"
:key=
"i"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
</div>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.projectType.length }">
项目类型
{{
jskBidQueryDto
.
projectType
.
length
?
jskBidQueryDto
.
projectType
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"jskBidQueryDto.projectType"
class=
"select-multiple"
multipleplaceholder=
"请选择"
>
<el-option
v-for=
"(item, i) in projectTypeList"
:key=
"i"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
</div>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.tenderWay.length }">
招标方式
{{
jskBidQueryDto
.
tenderWay
.
length
?
jskBidQueryDto
.
tenderWay
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"jskBidQueryDto.tenderWay"
class=
"select-multiple"
multipleplaceholder=
"请选择"
>
<el-option
v-for=
"(item, i) in tenderWayList"
:key=
"i"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
</div>
<el-dropdown
@
command=
"planTenderAmounthandleCommand"
class=
"el-dropdown-land"
trigger=
"click"
ref=
"planTenderAmountShowPopper"
:hide-on-click=
"false"
>
<span
class=
"el-dropdown-link"
:class=
"jskBidQueryDto.startPlanTenderAmount ||jskBidQueryDto.endPlanTenderAmount ? 'color_text': ''"
>
成交金额
{{
jskBidQueryDto
.
startPlanTenderAmount
||
jskBidQueryDto
.
endPlanTenderAmount
?
" 1项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
v-for=
"(item, i) in planTenderAmount"
:class=
"jskBidQueryDto.startPlanTenderAmount == item.value[0] &&jskBidQueryDto.endPlanTenderAmount == item.value[1] &&
!startPlanTenderAmount &&!endPlanTenderAmount? 'color_text': '' "
:key=
"i"
:command=
"item.value"
>
{{
item
.
label
}}
</el-dropdown-item>
<el-dropdown-item
command=
""
style=
"padding: 0; text-indent: 20px"
>
<div
@
mouseenter=
"planTenderAmountShowPopper = true"
@
mouseleave=
"planTenderAmountShowPopper = false"
>
<span
:class=
"(startPlanTenderAmount || endPlanTenderAmount) &&jskBidQueryDto.startPlanTenderAmount ==startPlanTenderAmount &&
jskBidQueryDto.endPlanTenderAmount == endPlanTenderAmount? 'color_text': '' "
>
自定义
<i
class=
"el-icon-arrow-right"
></i>
</span>
<div
class=
"jabph_popper_box"
style=
"position: absolute"
v-if=
"planTenderAmountShowPopper"
>
<div
class=
"jabph_popper_wrap"
>
从
<el-input
class=
"jabph_popper_input"
v-limit-num
clearable
v-model=
"startPlanTenderAmount"
></el-input>
万
</div>
<div
class=
"jabph_popper_wrap"
>
到
<el-input
class=
"jabph_popper_input"
v-limit-num
clearable
v-model=
"endPlanTenderAmount"
></el-input>
万
</div>
<div
style=
""
>
<el-button
size=
"mini"
@
click=
"planTenderAmountCancel"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"planTenderAmountPopperConfirm"
>
确定
</el-button>
</div>
</div>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div
class=
"select-popper"
>
<span
:class=
"
{ color_text: jskBidQueryDto.projectCapitalSource.length }">
资金来源
{{
jskBidQueryDto
.
projectCapitalSource
.
length
?
jskBidQueryDto
.
projectCapitalSource
.
length
+
"项"
:
""
}}
<i
class=
"el-icon-caret-bottom"
></i>
</span>
<el-select
v-model=
"jskBidQueryDto.projectCapitalSource"
class=
"select-multiple"
multipleplaceholder=
"请选择"
>
<el-option
v-for=
"(item, i) in projectCapitalSourceList"
:key=
"i"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
</div>
</div>
</div>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"geduan"
>
</div>
</div>
<div
class=
"content_item content_item_padding0"
>
<div
class=
"search-new"
>
<span
@
click=
"search()"
>
查询
</span>
<span
@
click=
"reset"
>
重置
</span>
</div>
</div>
</div>
<div
class=
"bottomlist"
>
<div
class=
"bottomlist-title"
>
<div></div>
<div
class=
"title-right"
>
<p>
共有
{{
total
}}
条
</p>
<p>
<img
src=
"@/assets/images/EXCEL.png"
alt=
""
>
<span>
导出EXCEL
</span>
</p>
</div>
</div>
<ul
class=
"bottomlist-content"
>
<li
class=
"bottomlist-list"
>
<p
class=
"list-titel"
>
<router-link
:to=
"'/radar/Bidding/details/'+ 1"
tag=
"a"
class=
"list-titel-a"
>
绿色节能型压缩机基础件、汽车零配件新建项目 (芜湖旭日机械制造有限公司)
</router-link>
<!--
<div
v-else-if=
"item.projectName"
v-html=
"item.projectName"
></div>
-->
</p>
<div
class=
"content-label"
>
<span
class=
"list-label"
>
市政工程
</span>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
招采单位:
</span>
<span
class=
"blue"
>
芜湖旭日机械制造有限公司
</span>
</p>
<p
class=
"list-content-text"
>
<span>
合同预估金额(万元):
</span>
<span>
芜湖旭日
</span>
</p>
<p
class=
"list-content-text"
>
<span>
资金来源:
</span>
<span>
12345.62万
</span>
</p>
</div>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
发布时间:
</span>
<span
>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
预计招标时间:
</span>
<span>
2022-04-21
</span>
</p>
<p
class=
"list-content-text"
>
<span>
来源网站:
</span>
<span
class=
"blue"
>
12345.62万
</span>
</p>
</div>
<div
class=
"list-content list-addree"
>
<p
class=
"list-content-text"
>
<span>
工程规模:
</span>
<span
>
城镇村道路用地
</span>
</p>
</div>
</li>
</ul>
<div
class=
"pagination clearfix"
v-show=
"total>0"
>
<el-pagination
background
:page-size=
"pageSize"
:current-page=
"page"
@
current-change=
"handleCurrentChange"
layout=
"prev, pager, next"
:total=
"total"
>
</el-pagination>
</div>
</div>
</div>
</
template
>
<
script
>
import
jsk_data
from
'../../../../../public/jsk.json'
;
export
default
{
name
:
'Bidding'
,
data
()
{
return
{
addressList
:
[],
addressType
:
[],
props
:
{
multiple
:
true
,
expandTrigger
:
"hover"
,
value
:
"id"
,
},
objectTypeList
:
[
"施工"
,
"勘察设计"
,
"勘察"
,
"设计"
,
"监理"
,
"工程总承包"
,
"测绘"
,
"施工图审查"
,
"造价咨询"
,
"招标代理"
,
"规划编制"
,
"方案编制"
,
"检测"
,
"审计"
,
"项目管理"
,
"全过程工程咨询"
,
"ppp"
,
"其他"
],
//标的物类型
projectTypeList
:
[
"工程总承包"
,
"测绘"
,
"施工图审查"
,
"造价咨询"
,
"招标代理"
,
"规划编制"
,
"方案编制"
,
"检测"
,
"审计"
,
"项目管理"
,
"全过程工程咨询"
,
"ppp"
,
"其他"
],
//项目类型
tenderWayList
:
[
"工程总承包"
,
"测绘"
,
"施工图审查"
,
"造价咨询"
,
"招标代理"
,
"规划编制"
,
"方案编制"
,
"检测"
,
"审计"
,
"项目管理"
,
"全过程工程咨询"
,
"ppp"
,
"其他"
],
//招标方式
projectCapitalSourceList
:
[
"规划编制"
,
"方案编制"
,
"检测"
,
"审计"
,
"项目管理"
,
"全过程工程咨询"
,
"ppp"
,
"其他"
],
//资金来源
planTenderAmount
:
[{
value
:
"不限"
,
label
:
"不限"
,
},
{
value
:
[
0
,
100
],
label
:
"100万元以下"
,
},
{
value
:
[
100
,
1000
],
label
:
"100万-1000万元"
,
},
{
value
:
[
1000
,
5000
],
label
:
"1000万-5000万元"
,
},
{
value
:
[
5000
,
20000
],
label
:
"5000万-2亿元"
,
},
{
value
:
[
20000
,
""
],
label
:
"2亿元以上"
,
},
],
jskBidQueryDto
:
{
projectName
:
''
,
tenderee
:
''
,
projectScale
:
''
,
province
:
[],
city
:
[],
county
:
[],
objectType
:[],
projectType
:[],
tenderWay
:[],
startPlanTenderAmount
:
''
,
endPlanTenderAmount
:
''
,
projectCapitalSource
:[],
},
planTenderAmountShowPopper
:
false
,
startPlanTenderAmount
:
''
,
endPlanTenderAmount
:
''
,
domicile
:
[],
pageFlag
:
true
,
conditionsArr
:
[],
tableData
:[],
total
:
6000
,
page
:
1
,
pageSize
:
20
};
},
computed
:
{
checkJskBidQueryDto
()
{
let
arr
=
[];
let
data
=
{};
if
(
this
.
jskBidQueryDto
.
projectName
){
data
=
{
title
:
"项目名称:"
,
keyid
:
"projectName"
,
value
:
this
.
jskBidQueryDto
.
projectName
,
key
:
"projectName"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
tenderee
){
data
=
{
title
:
"招标单位:"
,
keyid
:
"tenderee"
,
value
:
this
.
jskBidQueryDto
.
tenderee
,
key
:
"tenderee"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
projectScale
){
data
=
{
title
:
"工程规模:"
,
keyid
:
"projectScale"
,
value
:
this
.
jskBidQueryDto
.
projectScale
,
key
:
"projectScale"
}
arr
.
push
(
data
)
}
if
(
this
.
domicile
.
length
>
0
)
{
data
=
{
title
:
"项目属地:"
,
keyid
:
"domicile"
,
value
:
this
.
domicile
.
join
(
","
),
key
:
"domicile"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
objectType
.
length
>
0
)
{
data
=
{
title
:
"标的物类型:"
,
keyid
:
"objectType"
,
value
:
this
.
jskBidQueryDto
.
objectType
,
key
:
"objectType"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
projectType
.
length
>
0
)
{
data
=
{
title
:
"项目类型:"
,
keyid
:
"projectType"
,
value
:
this
.
jskBidQueryDto
.
projectType
,
key
:
"projectType"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
tenderWay
.
length
>
0
)
{
data
=
{
title
:
"招标方式:"
,
keyid
:
"tenderWay"
,
value
:
this
.
jskBidQueryDto
.
tenderWay
,
key
:
"tenderWay"
}
arr
.
push
(
data
)
}
if
(
this
.
jskBidQueryDto
.
projectCapitalSource
.
length
>
0
)
{
data
=
{
title
:
"资金来源:"
,
keyid
:
"projectCapitalSource"
,
value
:
this
.
jskBidQueryDto
.
projectCapitalSource
,
key
:
"projectCapitalSource"
}
arr
.
push
(
data
)
}
this
.
conditionsArr
=
arr
},
},
mounted
()
{
if
(
this
.
$route
.
query
.
projectName
)
{
this
.
projectName
=
this
.
$route
.
query
.
projectName
;
}
this
.
addressListfn
();
},
methods
:
{
keywordClick
(
val
)
{
this
.
projectName
=
val
},
search
(
page
,
limit
,
exportFlag
)
{
if
(
!
page
)
{
this
.
page
=
1
;
}
if
(
!
limit
)
{
this
.
limit
=
20
;
}
if
(
!
page
&&
!
limit
)
{
this
.
reloadPage
();
}
var
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
data
.
province
=
data
.
province
.
join
(
","
);
data
.
city
=
data
.
city
.
join
(
","
);
data
.
county
=
data
.
county
.
join
(
","
);
let
params
=
{
page
:
{
page
:
this
.
page
,
limit
:
this
.
limit
,
field
:
this
.
field
,
},
jskBidQueryDto
:
data
,
};
if
(
this
.
projectName
){
params
.
projectName
=
this
.
projectName
}
else
{
delete
params
.
projectName
}
if
(
this
.
keywordNot
){
params
.
keywordNot
=
this
.
keywordNot
}
else
{
delete
params
.
keywordNot
}
this
.
$emit
(
"search"
,
params
)
},
reloadPage
()
{
this
.
pageFlag
=
false
;
this
.
$nextTick
(()
=>
{
this
.
pageFlag
=
true
;
});
},
handleCurrentChange
(
page
)
{
this
.
page
=
page
;
this
.
search
(
page
,
this
.
limit
);
},
handleSizeChange
(
limit
)
{
this
.
limit
=
limit
;
this
.
search
(
this
.
page
,
limit
);
},
deleteDomicile
()
{
this
.
$refs
.
address
.
handleClear
();
},
domicileChange
()
{
let
arr
=
this
.
$refs
.
address
.
getCheckedNodes
();
let
province
=
[],
city
=
[],
county
=
[];
this
.
domicile
=
[];
for
(
var
i
in
arr
)
{
if
(
arr
[
i
].
parent
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
arr
[
i
].
hasChildren
&&
city
.
push
(
arr
[
i
].
value
);
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
!
arr
[
i
].
hasChildren
&&
county
.
push
(
arr
[
i
].
value
);
!
arr
[
i
].
hasChildren
&&
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
else
{
province
.
push
(
arr
[
i
].
value
);
this
.
domicile
.
push
(
arr
[
i
].
label
);
}
}
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
province
=
province
;
obj
.
city
=
city
;
obj
.
county
=
county
;
this
.
jskBidQueryDto
=
obj
;
},
addressListfn
()
{
var
str
=
[];
for
(
let
x
=
0
;
x
<
3
;
x
++
)
{
for
(
let
i
=
0
;
i
<
jsk_data
.
length
;
i
++
)
{
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
1
)
{
str
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
children
:
jsk_data
[
i
].
id
==
900000
?
undefined
:[],
});
}
else
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
2
&&
str
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
if
(
str
[
j
].
id
==
jsk_data
[
i
].
parentId
)
{
str
[
j
].
children
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
children
:
[],
});
}
}
}
else
if
(
jsk_data
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
3
)
{
for
(
let
j
=
0
;
j
<
str
.
length
;
j
++
)
{
if
(
str
[
j
].
children
){
for
(
let
k
=
0
;
k
<
str
[
j
].
children
.
length
;
k
++
)
{
if
(
str
[
j
].
children
[
k
].
id
==
jsk_data
[
i
].
parentId
)
{
str
[
j
].
children
[
k
].
children
.
push
({
id
:
jsk_data
[
i
].
id
,
label
:
jsk_data
[
i
].
regionName
,
short
:
jsk_data
[
i
].
short
,
value
:
jsk_data
[
i
].
parentId
,
});
}
}
}
}
}
}
}
this
.
addressList
=
str
;
},
planTenderAmountPopperConfirm
()
{
if
(
this
.
startPlanTenderAmount
&&
this
.
endPlanTenderAmount
&&
!
(
Number
(
this
.
endPlanTenderAmount
)
>
Number
(
this
.
startPlanTenderAmount
))
)
{
return
this
.
$message
.
warning
(
"最小值必须小于最大值,请重新输入!"
);
}
this
.
planTenderAmountShowPopper
=
false
;
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
obj
.
startPlanTenderAmount
=
this
.
startPlanTenderAmount
;
obj
.
endPlanTenderAmount
=
this
.
endPlanTenderAmount
;
this
.
jskBidQueryDto
=
obj
;
this
.
$refs
.
planTenderAmountShowPopper
.
hide
();
},
planTenderAmountCancel
()
{
this
.
planTenderAmountShowPopper
=
false
;
this
.
$refs
.
planTenderAmountShowPopper
.
hide
();
},
planTenderAmounthandleCommand
(
command
)
{
if
(
command
)
{
this
.
$refs
.
planTenderAmountShowPopper
.
hide
();
var
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
jskBidQueryDto
));
this
.
startPlanTenderAmount
=
""
;
this
.
endPlanTenderAmount
=
""
;
if
(
command
==
"不限"
)
{
obj
.
startPlanTenderAmount
=
""
;
obj
.
endPlanTenderAmount
=
""
;
}
else
{
obj
.
startPlanTenderAmount
=
command
[
0
];
obj
.
endPlanTenderAmount
=
command
[
1
];
}
this
.
jskBidQueryDto
=
obj
;
}
},
reset
()
{
Object
.
assign
(
this
.
$data
,
this
.
$options
.
data
.
call
(
this
));
//重置data
this
.
init
();
this
.
$emit
(
"reset"
);
},
init
(){
this
.
search
();
this
.
addressListfn
();
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.content
{
padding
:
0px
16px
;
border-radius
:
4px
4px
4px
4px
;
background
:
#FFFFFF
;
.content_item
{
padding-top
:
12px
;
display
:
flex
;
align-items
:
center
;
.label
{
width
:
84px
;
font-size
:
14px
;
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
.content_right
{
.ename_input
{
width
:
640px
;
margin-right
:
20px
;
}
.land_ipt_470
{
width
:
640px
;
}
}
.item_ckquery_list
{
display
:
flex
;
}
.item_ckquery_list
.el-input__icon
{
position
:
relative
;
top
:
1px
;
}
.ckquery_list_right
{
width
:
640px
;
}
.register_count_ipt
{
margin-left
:
0px
;
}
.register_count_ipt
.el-input__inner
{
width
:
174px
;
}
::v-deep
.el-input-group__prepend
{
padding
:
0
8px
;
}
.content-projecttype
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
.projecttype
{
font-weight
:
400
;
color
:
#232323
;
padding
:
1px
5px
;
margin-right
:
4px
;
cursor
:
pointer
;
border-radius
:
3px
3px
3px
3px
;
font-size
:
14px
;
}
.projecttype
:first-child
{
padding-left
:
0px
;
}
.projecttype
:hover
{
background
:
#F3F4F5
;
padding
:
1px
5px
;
}
.activetype
{
background
:
#F3F4F5
;
padding
:
1px
5px
!
important
;
}
}
}
.content_item_padding0
{
padding
:
0
;
}
}
.bottomlist
{
width
:
100%
;
background-color
:
#FFFFFF
;
border-radius
:
4px
4px
4px
4px
;
.bottomlist-title
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
margin-top
:
12px
;
padding
:
16px
;
border-bottom
:
1px
solid
#EFEFEF
;
.title-right
{
display
:
flex
;
align-items
:
center
;
p
:first-child
{
font-size
:
12px
;
font-weight
:
400
;
color
:
#3D3D3D
;
margin-right
:
10px
;
}
p
:last-child
{
display
:
flex
;
align-items
:
center
;
font-size
:
14px
;
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
img
{
width
:
18px
;
height
:
18px
;
}
}
}
.bottomlist-content
{
padding-bottom
:
0px
;
}
.bottomlist-list
{
padding
:
16px
;
font-size
:
14px
;
border-bottom
:
1px
solid
#EFEFEF
;
padding-bottom
:
14px
;
.list-titel
{
font-size
:
16px
;
font-weight
:
700
;
color
:
#3D3D3D
;
line-height
:
19px
;
.list-titel-a
{
text-decoration
:
none
;
color
:
#3D3D3D
;
}
a
:hover
,
a
:visited
,
a
:link
,
a
:active
{
color
:
#3D3D3D
;
}
}
.content-label
{
margin-top
:
12px
;
.list-label
{
background
:
#F3F3FF
;
color
:
#8491E8
;
border-radius
:
1px
1px
1px
1px
;
padding
:
3px
7px
;
font-size
:
12px
;
}
}
.list-content
{
margin-top
:
8px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
.list-content-text
{
margin-top
:
7px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
margin-right
:
27px
;
font-size
:
14px
;
span
:first-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
line-height
:
15px
}
span
:last-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
line-height
:
15px
}
.blue
{
color
:
#0081FF
!
important
;
cursor
:
pointer
;
}
}
}
.list-addree
{
width
:
auto
;
background
:
#F3F4F5
;
display
:
inline-flex
;
margin-top
:
7px
;
.list-content-text
{
margin-top
:
0px
;
span
{
line-height
:
30px
!
important
;
}
}
img
{
width
:
14px
;
margin
:
0
8px
;
}
}
}
.bottomlist-list
:hover
{
background
:
#F6F9FC
;
cursor
:
pointer
;
}
.pagination
{
padding
:
14px
;
.el-pagination
{
float
:
right
;
}
}
}
</
style
>
dsk-operate-ui/src/views/radar/index.vue
View file @
715f3f0d
...
...
@@ -19,6 +19,8 @@
<Land
v-if=
"personnelHerf=='Land'"
/>
<!-- 拟建项目 -->
<Establishment
v-if=
"personnelHerf=='Establishment'"
/>
<!-- 招标计划 -->
<Bidding
v-if=
"personnelHerf=='Bidding'"
/>
<!-- 标讯pro -->
<bxprozbgg
v-if=
"personnelHerf=='bxprozbgg'"
/>
<!-- 公招标讯 -->
...
...
@@ -37,11 +39,12 @@
import
bxprozbgg
from
"./components/bxprozbgg/index.vue"
;
import
Tender
from
"./components/Tender/index.vue"
;
import
BidRecord
from
"./components/BidRecord/index.vue"
;
import
Bidding
from
"./components/Bidding/index.vue"
;
import
"@/assets/styles/public.css"
;
export
default
{
name
:
'radar'
,
components
:
{
debtProject
,
Land
,
Establishment
,
bxprozbgg
,
Tender
,
BidRecord
},
components
:
{
debtProject
,
Land
,
Establishment
,
bxprozbgg
,
Tender
,
BidRecord
,
Bidding
},
data
()
{
return
{
// tablist
...
...
@@ -64,7 +67,7 @@
},
{
key
:
'
KeyPersonnel
'
,
key
:
'
Bidding
'
,
status
:
false
,
value
:
'招标计划'
,
...
...
dsk-operate-ui/vue.config.js
View file @
715f3f0d
...
...
@@ -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 @
715f3f0d
...
...
@@ -19,4 +19,9 @@ public class BusinessIdDto {
* 项目标签名称
*/
private
String
label
;
/**
* 文件路径
*/
private
String
folderPath
;
}
dsk-system/src/main/java/com/dsk/system/domain/vo/BusinessBrowseVo.java
View file @
715f3f0d
package
com
.
dsk
.
system
.
domain
.
vo
;
import
com.dsk.common.annotation.Excel
;
import
com.dsk.common.core.domain.entity.BusinessRelateCompany
;
import
lombok.Data
;
...
...
@@ -53,6 +54,21 @@ public class BusinessBrowseVo {
*/
private
String
districtName
;
/**
* 省id
*/
private
Integer
provinceId
;
/**
* 市id
*/
private
Integer
cityId
;
/**
* 区id
*/
private
Integer
districtId
;
/**
* 商务团队
*/
...
...
@@ -73,10 +89,23 @@ public class BusinessBrowseVo {
*/
private
List
<
String
>
labelList
;
/**
* 关键企业
*/
private
List
<
BusinessRelateCompany
>
relateCompany
;
/** 建设单位 */
private
String
constructionUnit
;
/** 建设单位负责人 */
private
String
constructionPrincipal
;
/** 建设单位联系电话 */
private
String
constructionPhone
;
/** 主管单位 */
private
String
supervisorUnit
;
/** 主管单位负责人 */
private
String
supervisorPrincipal
;
/** 主管单位联系电话 */
private
String
supervisorPhone
;
/**
* 联系人统计
...
...
dsk-system/src/main/java/com/dsk/system/mapper/BusinessFollowRecordMapper.java
View file @
715f3f0d
package
com
.
dsk
.
system
.
mapper
;
import
com.dsk.common.core.domain.entity.BusinessFollowRecord
;
import
com.dsk.system.domain.BusinessIdDto
;
import
java.util.List
;
...
...
@@ -34,7 +35,7 @@ public interface BusinessFollowRecordMapper
* @param businessId 项目id
* @return 项目跟进记录集合
*/
public
List
<
BusinessFollowRecord
>
selectBusinessFollowRecordList
(
Integer
businessId
);
public
List
<
BusinessFollowRecord
>
selectBusinessFollowRecordList
(
BusinessIdDto
businessId
);
/**
* 新增项目跟进记录
...
...
dsk-system/src/main/java/com/dsk/system/mapper/BusinessUserMapper.java
View file @
715f3f0d
...
...
@@ -58,4 +58,11 @@ public interface BusinessUserMapper
* @return 结果
*/
public
int
deleteBusinessUserByIds
(
Long
[]
ids
);
/**
* 根据项目id查询项目的创建人
* @param businessId
* @return
*/
String
selectCreatorByBusinessId
(
Integer
businessId
);
}
dsk-system/src/main/java/com/dsk/system/service/EconomicService.java
View file @
715f3f0d
package
com
.
dsk
.
system
.
service
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.dtos.OpRegionalEconomicDataRegionalListDto
;
import
com.dsk.common.dtos.OpRegionalEconomicDataStatisticsRegionalDto
;
import
com.dsk.common.dtos.OpRegionalEconomicDataV1Dto
;
import
com.dsk.common.dtos.OpRegionalEconomicDataV1PageDto
;
import
com.dsk.common.dtos.*
;
/**
* @ClassName EconomicService
...
...
@@ -32,7 +29,7 @@ public interface EconomicService {
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult
yearsList
();
AjaxResult
yearsList
(
OpRegionalEconomicDataYearsListDto
dataYearsListDto
);
/***
...
...
@@ -42,7 +39,7 @@ public interface EconomicService {
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult
details
(
Integer
id
);
AjaxResult
details
(
OpRegionalEconomicDataDetailsDto
detailsDto
);
/***
...
...
dsk-system/src/main/java/com/dsk/system/service/IBusinessFollowRecordService.java
View file @
715f3f0d
package
com
.
dsk
.
system
.
service
;
import
com.dsk.common.core.domain.entity.BusinessFollowRecord
;
import
com.dsk.system.domain.BusinessIdDto
;
import
java.util.List
;
...
...
@@ -26,7 +27,7 @@ public interface IBusinessFollowRecordService
* @param businessId 项目跟进记录
* @return 项目跟进记录集合
*/
public
List
<
BusinessFollowRecord
>
selectBusinessFollowRecordList
(
Integer
businessId
);
public
List
<
BusinessFollowRecord
>
selectBusinessFollowRecordList
(
BusinessIdDto
businessId
);
/**
* 分页查询项目跟进记录列表
...
...
dsk-system/src/main/java/com/dsk/system/service/SpecialPurposeBondsService.java
View file @
715f3f0d
package
com
.
dsk
.
system
.
service
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.dtos.SpecialBondInformationDetailsDto
;
import
com.dsk.common.dtos.SpecialBondInformationPageDto
;
import
com.dsk.common.dtos.SpecialPurposeBondsDto
;
import
com.dsk.common.dtos.SpecialPurposeBondsPageDto
;
...
...
@@ -30,7 +31,7 @@ public interface SpecialPurposeBondsService {
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult
details
(
S
tring
id
);
AjaxResult
details
(
S
pecialBondInformationDetailsDto
detailsDto
);
/***
*@Description: 项目类别统计
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/BusinessFollowRecordServiceImpl.java
View file @
715f3f0d
...
...
@@ -4,6 +4,7 @@ import java.util.List;
import
com.dsk.common.core.domain.entity.BusinessFollowRecord
;
import
com.dsk.common.utils.DateUtils
;
import
com.dsk.system.domain.BusinessIdDto
;
import
com.dsk.system.mapper.BusinessFollowRecordMapper
;
import
com.dsk.system.service.IBusinessFollowRecordService
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -35,7 +36,7 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer
}
@Override
public
List
<
BusinessFollowRecord
>
selectBusinessFollowRecordList
(
Integer
businessId
)
public
List
<
BusinessFollowRecord
>
selectBusinessFollowRecordList
(
BusinessIdDto
businessId
)
{
return
businessFollowRecordMapper
.
selectBusinessFollowRecordList
(
businessId
);
}
...
...
@@ -78,6 +79,7 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer
* @return 结果
*/
@Override
@Transactional
public
int
deleteBusinessFollowRecordByIds
(
Long
[]
ids
)
{
return
businessFollowRecordMapper
.
deleteBusinessFollowRecordByIds
(
ids
);
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/BusinessInfoServiceImpl.java
View file @
715f3f0d
...
...
@@ -8,6 +8,7 @@ import cn.hutool.core.bean.BeanUtil;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.dsk.common.config.RuoYiConfig
;
import
com.dsk.common.constant.HttpStatus
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.entity.BusinessInfo
;
...
...
@@ -15,8 +16,11 @@ import com.dsk.common.core.domain.entity.BusinessLabel;
import
com.dsk.common.core.domain.entity.BusinessRelateCompany
;
import
com.dsk.common.core.domain.entity.BusinessUser
;
import
com.dsk.common.exception.base.BaseException
;
import
com.dsk.common.utils.CheckUtils
;
import
com.dsk.common.utils.DateUtils
;
import
com.dsk.common.utils.SecurityUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.file.FileUtils
;
import
com.dsk.system.domain.BusinessExcelDto
;
import
com.dsk.system.domain.BusinessAddDto
;
import
com.dsk.system.domain.BusinessListDto
;
...
...
@@ -82,11 +86,11 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
*/
@Override
public
List
<
BusinessListVo
>
selectBusinessInfoList
(
BusinessListDto
dto
)
{
if
(
dto
.
getUserId
()
==
null
)
{
Long
deptId
=
SecurityUtils
.
getLoginUser
().
getDeptId
();
if
(
deptId
==
null
)
throw
new
BaseException
(
"请登录"
);
dto
.
setDeptId
(
deptId
.
intValue
());
}
//
if (dto.getUserId() == null) {
//
Long deptId = SecurityUtils.getLoginUser().getDeptId();
//
if (deptId == null) throw new BaseException("请登录");
//
dto.setDeptId(deptId.intValue());
//
}
return
businessInfoMapper
.
selectBusinessInfoList
(
dto
);
}
...
...
@@ -96,15 +100,18 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
//查询项目基本信息
BusinessInfo
businessInfo
=
businessInfoMapper
.
selectBusinessInfoById
(
businessId
);
BeanUtil
.
copyProperties
(
businessInfo
,
businessBrowseVo
);
//商务团队
businessBrowseVo
.
setTeam
(
businessUserMapper
.
selectCreatorByBusinessId
(
businessId
));
//查询项目标签
businessBrowseVo
.
setLabelList
(
businessLabelMapper
.
selectBusinessLabelList
(
new
BusinessLabel
(
businessId
)).
stream
().
map
(
p
->
p
.
getLabel
()).
collect
(
Collectors
.
toList
()));
//查询关键企业
businessBrowseVo
.
setRelateCompany
(
businessRelateCompanyMapper
.
selectBusinessRelateCompanyList
(
new
BusinessRelateCompany
(
businessId
)));
//相关数据统计
BusinessBrowseVo
total
=
businessInfoMapper
.
selectTotal
(
businessId
);
businessBrowseVo
.
setBacklogCount
(
total
.
getBacklogCount
());
businessBrowseVo
.
setContactsCount
(
total
.
getContactsCount
());
businessBrowseVo
.
setFollowRecordCount
(
total
.
getFollowRecordCount
());
businessBrowseVo
.
setRelateCompanyCount
(
total
.
getRelateCompanyCount
());
//资料文档统计
businessBrowseVo
.
setRelateCompanyCount
(
FileUtils
.
getAllFileNames
(
RuoYiConfig
.
getProfile
()+
businessId
).
size
());
return
businessBrowseVo
;
}
...
...
@@ -162,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
...
...
@@ -169,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
();
...
...
@@ -186,6 +192,10 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Override
@Transactional
public
int
updateBusinessInfo
(
BusinessInfo
businessInfo
)
{
if
(
StringUtils
.
isNotEmpty
(
businessInfo
.
getConstructionPhone
())
&&
StringUtils
.
isNotEmpty
(
businessInfo
.
getSupervisorPhone
()))
{
if
(!
CheckUtils
.
isPhone
(
businessInfo
.
getConstructionPhone
())
||
!
CheckUtils
.
isPhone
(
businessInfo
.
getSupervisorPhone
()))
throw
new
BaseException
(
"500"
,
"请输入正确的手机号码"
);
}
businessInfo
.
setUpdateTime
(
DateUtils
.
getNowDate
());
return
businessInfoMapper
.
updateBusinessInfo
(
businessInfo
);
}
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/BusinessRelateCompanyServiceImpl.java
View file @
715f3f0d
...
...
@@ -63,7 +63,7 @@ public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyS
@Transactional
public
int
insertBusinessRelateCompany
(
BusinessRelateCompany
businessRelateCompany
)
{
if
(!
CheckUtils
.
isPhone
(
businessRelateCompany
.
getPhone
()))
throw
new
BaseException
(
"500"
,
"请输入正确的手机号码"
);
//
if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的手机号码");
businessRelateCompany
.
setCreateTime
(
DateUtils
.
getNowDate
());
return
businessRelateCompanyMapper
.
insertBusinessRelateCompany
(
businessRelateCompany
);
}
...
...
@@ -78,7 +78,7 @@ public class BusinessRelateCompanyServiceImpl implements IBusinessRelateCompanyS
@Transactional
public
int
updateBusinessRelateCompany
(
BusinessRelateCompany
businessRelateCompany
)
{
if
(!
CheckUtils
.
isPhone
(
businessRelateCompany
.
getPhone
()))
throw
new
BaseException
(
"500"
,
"请输入正确的手机号码"
);
//
if(!CheckUtils.isPhone(businessRelateCompany.getPhone())) throw new BaseException("500","请输入正确的手机号码");
businessRelateCompany
.
setUpdateTime
(
DateUtils
.
getNowDate
());
return
businessRelateCompanyMapper
.
updateBusinessRelateCompany
(
businessRelateCompany
);
}
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/EconomicServiceImpl.java
View file @
715f3f0d
...
...
@@ -3,17 +3,13 @@ package com.dsk.system.service.impl;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.dtos.OpRegionalEconomicDataRegionalListDto
;
import
com.dsk.common.dtos.OpRegionalEconomicDataStatisticsRegionalDto
;
import
com.dsk.common.dtos.OpRegionalEconomicDataV1Dto
;
import
com.dsk.common.dtos.OpRegionalEconomicDataV1PageDto
;
import
com.dsk.common.dtos.*
;
import
com.dsk.common.utils.DateUtils
;
import
com.dsk.common.utils.DskOpenApiUtil
;
import
com.dsk.system.service.EconomicService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
...
...
@@ -39,16 +35,14 @@ public class EconomicServiceImpl implements EconomicService {
}
@Override
public
AjaxResult
yearsList
()
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/economic/years/list"
,
null
);
public
AjaxResult
yearsList
(
OpRegionalEconomicDataYearsListDto
dto
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/economic/years/list"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
)
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
@Override
public
AjaxResult
details
(
Integer
id
)
{
Map
<
String
,
Object
>
bodyMap
=
new
HashMap
<>(
1
);
bodyMap
.
put
(
"id"
,
id
);
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/economic/details"
,
bodyMap
);
public
AjaxResult
details
(
OpRegionalEconomicDataDetailsDto
detailsDto
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/economic/details"
,
BeanUtil
.
beanToMap
(
detailsDto
,
false
,
false
));
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
...
...
dsk-system/src/main/java/com/dsk/system/service/impl/SpecialPurposeBondsServiceImpl.java
View file @
715f3f0d
...
...
@@ -2,6 +2,7 @@ package com.dsk.system.service.impl;
import
cn.hutool.core.bean.BeanUtil
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.dtos.SpecialBondInformationDetailsDto
;
import
com.dsk.common.dtos.SpecialBondInformationPageDto
;
import
com.dsk.common.dtos.SpecialPurposeBondsDto
;
import
com.dsk.common.dtos.SpecialPurposeBondsPageDto
;
...
...
@@ -10,7 +11,6 @@ import com.dsk.system.service.SpecialPurposeBondsService;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
...
...
@@ -33,10 +33,8 @@ public class SpecialPurposeBondsServiceImpl implements SpecialPurposeBondsServic
}
@Override
public
AjaxResult
details
(
String
id
)
{
Map
<
String
,
Object
>
bodyMap
=
new
HashMap
<>(
1
);
bodyMap
.
put
(
"id"
,
id
);
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/specialPurposeBonds/details"
,
bodyMap
);
public
AjaxResult
details
(
SpecialBondInformationDetailsDto
detailsDto
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/specialPurposeBonds/details"
,
BeanUtil
.
beanToMap
(
detailsDto
,
false
,
false
));
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
...
...
dsk-system/src/main/resources/mapper/business/BusinessInfoMapper.xml
View file @
715f3f0d
...
...
@@ -24,7 +24,6 @@
<result
property=
"districtId"
column=
"district_id"
/>
<result
property=
"projectType"
column=
"project_type"
/>
<result
property=
"projectCategory"
column=
"project_category"
/>
<result
property=
"team"
column=
"team"
/>
<result
property=
"isPrivate"
column=
"is_private"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
...
...
@@ -35,6 +34,12 @@
<result
property=
"earnestMoneyPay"
column=
"earnest_money_pay"
/>
<result
property=
"earnestMoney"
column=
"earnest_money"
/>
<result
property=
"evaluationBidCouncil"
column=
"evaluation_bid_council"
/>
<result
property=
"constructionUnit"
column=
"construction_unit"
/>
<result
property=
"constructionPrincipal"
column=
"construction_principal"
/>
<result
property=
"constructionPhone"
column=
"construction_phone"
/>
<result
property=
"supervisorUnit"
column=
"supervisor_unit"
/>
<result
property=
"supervisorPrincipal"
column=
"supervisor_principal"
/>
<result
property=
"supervisorPhone"
column=
"supervisor_phone"
/>
</resultMap>
<sql
id=
"selectBusinessInfoVo"
>
...
...
@@ -57,7 +62,6 @@
district_id,
project_type,
project_category,
team,
is_private,
create_time,
update_time,
...
...
@@ -68,7 +72,13 @@
bid_open_place,
earnest_money_pay,
earnest_money,
evaluation_bid_council
evaluation_bid_council,
construction_unit,
construction_principal,
construction_phone,
supervisor_unit,
supervisor_principal,
supervisor_phone
from business_info
</sql>
...
...
@@ -246,7 +256,6 @@
<if
test=
"districtId != null"
>
district_id,
</if>
<if
test=
"projectType != null"
>
project_type,
</if>
<if
test=
"projectCategory != null"
>
project_category,
</if>
<if
test=
"team != null"
>
team,
</if>
<if
test=
"isPrivate != null"
>
is_private,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
...
...
@@ -257,6 +266,12 @@
<if
test=
"earnestMoneyPay != null"
>
earnest_money_pay,
</if>
<if
test=
"earnestMoney != null"
>
earnest_money,
</if>
<if
test=
"evaluationBidCouncil != null"
>
evaluation_bid_council,
</if>
<if
test=
"constructionUnit != null"
>
construction_unit,
</if>
<if
test=
"constructionPrincipal != null"
>
construction_principal,
</if>
<if
test=
"constructionPhone != null"
>
construction_phone,
</if>
<if
test=
"supervisorUnit != null"
>
supervisor_unit,
</if>
<if
test=
"supervisorPrincipal != null"
>
supervisor_principal,
</if>
<if
test=
"supervisorPhone != null"
>
supervisor_phone,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"projectName != null"
>
#{projectName},
</if>
...
...
@@ -277,7 +292,6 @@
<if
test=
"districtId != null"
>
#{districtId},
</if>
<if
test=
"projectType != null"
>
#{projectType},
</if>
<if
test=
"projectCategory != null"
>
#{projectCategory},
</if>
<if
test=
"team != null"
>
#{team},
</if>
<if
test=
"isPrivate != null"
>
#{isPrivate},
</if>
<if
test=
"createTime != null"
>
#{createTime},
</if>
<if
test=
"updateTime != null"
>
#{updateTime},
</if>
...
...
@@ -289,6 +303,12 @@
<if
test=
"earnestMoneyPay != null"
>
#{earnestMoneyPay},
</if>
<if
test=
"earnestMoney != null"
>
#{earnestMoney},
</if>
<if
test=
"evaluationBidCouncil != null"
>
#{evaluationBidCouncil},
</if>
<if
test=
"constructionUnit != null"
>
#{constructionUnit},
</if>
<if
test=
"constructionPrincipal != null"
>
#{constructionPrincipal},
</if>
<if
test=
"constructionPhone != null"
>
#{constructionPhone},
</if>
<if
test=
"supervisorUnit != null"
>
#{supervisorUnit},
</if>
<if
test=
"supervisorPrincipal != null"
>
#{supervisorPrincipal},
</if>
<if
test=
"supervisorPhone != null"
>
#{supervisorPhone},
</if>
</trim>
</insert>
...
...
@@ -313,7 +333,6 @@
<if
test=
"districtId != null"
>
district_id = #{districtId},
</if>
<if
test=
"projectType != null"
>
project_type = #{projectType},
</if>
<if
test=
"projectCategory != null"
>
project_category = #{projectCategory},
</if>
<if
test=
"team != null"
>
team = #{team},
</if>
<if
test=
"isPrivate != null"
>
is_private = #{isPrivate},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
...
...
@@ -325,6 +344,12 @@
<if
test=
"earnestMoneyPay != null"
>
earnest_money_pay = #{earnestMoneyPay},
</if>
<if
test=
"earnestMoney != null"
>
earnest_money = #{earnestMoney},
</if>
<if
test=
"evaluationBidCouncil != null"
>
evaluation_bid_council = #{evaluationBidCouncil},
</if>
<if
test=
"constructionUnit != null"
>
construction_unit = #{constructionUnit},
</if>
<if
test=
"constructionPrincipal != null"
>
construction_principal = #{constructionPrincipal},
</if>
<if
test=
"constructionPhone != null"
>
construction_phone = #{constructionPhone},
</if>
<if
test=
"supervisorUnit != null"
>
supervisor_unit = #{supervisorUnit},
</if>
<if
test=
"supervisorPrincipal != null"
>
supervisor_principal = #{supervisorPrincipal},
</if>
<if
test=
"supervisorPhone != null"
>
evaluation_bid_council = #{supervisorPhone},
</if>
</trim>
where id = #{id}
</update>
...
...
dsk-system/src/main/resources/mapper/business/BusinessRelateCompanyMapper.xml
View file @
715f3f0d
...
...
@@ -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>
...
...
dsk-system/src/main/resources/mapper/business/BusinessUserMapper.xml
View file @
715f3f0d
...
...
@@ -33,6 +33,14 @@
<include
refid=
"selectBusinessUserVo"
/>
where id = #{id}
</select>
<select
id=
"selectCreatorByBusinessId"
resultType=
"java.lang.String"
>
select u.nick_name
from business_user bu
left join business_info i on i.id = bu.business_id
left join sys_user u on u.user_id = bu.user_id
where bu.is_founder = 1
and i.id = #{BusinessId}
</select>
<insert
id=
"insertBusinessUser"
parameterType=
"com.dsk.common.core.domain.entity.BusinessUser"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into business_user
...
...
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