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
b6d3acd8
Commit
b6d3acd8
authored
Jun 06, 2023
by
caixingbing
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://192.168.60.201/root/dsk-operate-sys
parents
d0b4af02
019654f8
Changes
23
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
3085 additions
and
482 deletions
+3085
-482
BusinessFileController.java
...m/dsk/web/controller/business/BusinessFileController.java
+78
-0
BusinessInfoController.java
...m/dsk/web/controller/business/BusinessInfoController.java
+3
-3
BusinessRelateCompany.java
.../dsk/common/core/domain/entity/BusinessRelateCompany.java
+5
-0
FileUtils.java
...on/src/main/java/com/dsk/common/utils/file/FileUtils.java
+57
-3
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
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
+30
-26
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
BusinessInfoServiceImpl.java
.../com/dsk/system/service/impl/BusinessInfoServiceImpl.java
+2
-3
BusinessRelateCompanyMapper.xml
...resources/mapper/business/BusinessRelateCompanyMapper.xml
+7
-1
No files found.
dsk-admin/src/main/java/com/dsk/web/controller/business/BusinessFileController.java
0 → 100644
View file @
b6d3acd8
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.utils.file.FileUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
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
{
// 本地资源路径
public
static
final
String
LOCALPATH
=
RuoYiConfig
.
getProfile
();
/**
* 新建文件夹
*/
// @PreAuthorize("@ss.hasPermi('system:file:add')")
// @Log(title = "项目资料文档", businessType = BusinessType.INSERT)
@GetMapping
(
"/new/{filePath}"
)
public
AjaxResult
newFolder
(
@PathVariable
String
filePath
)
{
return
FileUtils
.
newFolder
(
LOCALPATH
+
filePath
)
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
}
/**
* 删除某个文件或整个文件夹
*/
@GetMapping
(
"/remove/{filePath}"
)
public
AjaxResult
removeFile
(
@PathVariable
String
filePath
)
{
boolean
deleteFile
=
FileUtils
.
deleteFile
(
LOCALPATH
+
filePath
);
return
deleteFile
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
}
/**
* 获取文件夹中所有文件
*/
@GetMapping
(
"/all/{folderPath}"
)
public
AjaxResult
getAllFiles
(
@PathVariable
String
folderPath
)
{
List
<
String
>
allFiles
=
FileUtils
.
getAllFiles
(
LOCALPATH
+
folderPath
);
return
AjaxResult
.
success
(
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 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/BusinessInfoController.java
View file @
b6d3acd8
...
...
@@ -90,7 +90,7 @@ public class BusinessInfoController extends BaseController
* 删除项目列表
*/
// @PreAuthorize("@ss.hasPermi('system:business:remove')")
@Log
(
title
=
"项目管理"
,
businessType
=
BusinessType
.
DELETE
)
//
@Log(title = "项目管理", businessType = BusinessType.DELETE)
@DeleteMapping
(
"/remove/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
(
value
=
"ids"
,
required
=
false
)
Long
[]
ids
)
{
...
...
@@ -101,7 +101,7 @@ public class BusinessInfoController extends BaseController
* 新增项目详情
*/
// @PreAuthorize("@ss.hasPermi('system:business:add')")
@Log
(
title
=
"项目管理"
,
businessType
=
BusinessType
.
INSERT
)
//
@Log(title = "项目管理", businessType = BusinessType.INSERT)
@PostMapping
(
"/add"
)
public
AjaxResult
add
(
@RequestBody
BusinessAddDto
dto
)
{
...
...
@@ -112,7 +112,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-common/src/main/java/com/dsk/common/core/domain/entity/BusinessRelateCompany.java
View file @
b6d3acd8
...
...
@@ -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/utils/file/FileUtils.java
View file @
b6d3acd8
...
...
@@ -26,6 +26,14 @@ import org.apache.commons.lang3.ArrayUtils;
import
com.dsk.common.config.RuoYiConfig
;
import
com.dsk.common.utils.uuid.IdUtils
;
import
org.apache.commons.io.FilenameUtils
;
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
;
/**
* 文件处理工具类
...
...
@@ -292,12 +300,12 @@ public class FileUtils
/**
* 下载文件
*
* @param url 要下载的文件链接
* @param targetFolder 目标文件
* @return
* @throws IOException
*/
public
static
void
downloadFolder
(
String
url
,
String
targetFolder
)
throws
IOException
{
public
static
boolean
downloadFolder
(
String
url
,
String
targetFolder
)
throws
IOException
{
URL
downloadUrl
=
new
URL
(
url
);
HttpURLConnection
connection
=
(
HttpURLConnection
)
downloadUrl
.
openConnection
();
connection
.
setRequestMethod
(
"GET"
);
...
...
@@ -330,6 +338,52 @@ public class FileUtils
}
}
}
return
true
;
}
/**
* 上传文件
* @param url 上传链接
* @param folderPath 文件路径
* @return
* @throws IOException
*/
public
static
boolean
uploadFolder
(
String
url
,
String
folderPath
)
throws
IOException
{
File
folder
=
new
File
(
folderPath
);
if
(!
folder
.
exists
()
||
!
folder
.
isDirectory
())
{
throw
new
IllegalArgumentException
(
"文件夹路径无效: "
+
folderPath
);
}
List
<
File
>
files
=
new
ArrayList
<>();
listFiles
(
folder
,
files
);
try
(
CloseableHttpClient
httpClient
=
HttpClients
.
createDefault
())
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
MultipartEntityBuilder
builder
=
MultipartEntityBuilder
.
create
();
for
(
File
file
:
files
)
{
FileBody
fileBody
=
new
FileBody
(
file
,
ContentType
.
DEFAULT_BINARY
);
builder
.
addPart
(
"file"
,
fileBody
);
}
HttpEntity
multipart
=
builder
.
build
();
httpPost
.
setEntity
(
multipart
);
HttpResponse
response
=
httpClient
.
execute
(
httpPost
);
int
statusCode
=
response
.
getStatusLine
().
getStatusCode
();
if
(
statusCode
!=
200
)
{
throw
new
RuntimeException
(
"上传文件夹失败: "
+
response
.
getStatusLine
().
getReasonPhrase
());
}
}
return
true
;
}
private
static
void
listFiles
(
File
folder
,
List
<
File
>
files
)
{
File
[]
subFiles
=
folder
.
listFiles
();
for
(
File
subFile
:
subFiles
)
{
if
(
subFile
.
isDirectory
())
{
listFiles
(
subFile
,
files
);
}
else
{
files
.
add
(
subFile
);
}
}
}
...
...
dsk-operate-ui/src/api/project/project.js
View file @
b6d3acd8
...
...
@@ -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 @
b6d3acd8
...
...
@@ -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 @
b6d3acd8
...
...
@@ -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/enterpriseData/components/SearchEnterprise/index.vue
0 → 100644
View file @
b6d3acd8
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/enterpriseData/index.vue
View file @
b6d3acd8
<
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 @
b6d3acd8
...
...
@@ -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 @
b6d3acd8
...
...
@@ -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 @
b6d3acd8
...
...
@@ -4,8 +4,10 @@
<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=
"请选择"
>
<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>
...
...
@@ -85,9 +87,7 @@
<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=
"types=item.dictLabel"
><i></i>
{{item.dictLabel}}
</div>
</div>
<div
class=
"popform"
>
<div
class=
"popbot"
style=
"padding-right: 0"
>
...
...
@@ -102,34 +102,24 @@
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=
"projectName"
class=
"row"
>
<el-input
type=
"text"
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
v-if=
"types == companytype[0].dictValue"
label=
"对接深度:"
class=
"row"
>
<el-input
type=
"text"
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
v-if=
"types == companytype[1].dictValue"
label=
"合作阶段:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
v-if=
"types == 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
v-if=
"types == companytype[2].dictValue"
label=
"竞争力度:"
class=
"row"
>
<el-input
type=
"text"
placeholder=
"请输入"
></el-input>
</el-form-item>
<el-form-item
label=
"企业角色:"
prop=
"projectName"
class=
"row"
>
<el-form-item
label=
"企业角色:"
class=
"row"
>
<el-select
placeholder=
"请选择"
>
<el-option
label=
"cccc"
value=
"11"
></el-option>
<el-option
label=
"cccc"
value=
"121"
></el-option>
<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"
>
...
...
@@ -147,8 +137,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
,
...
...
@@ -180,10 +172,22 @@
rules
:{
projectName
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
ownerCompany
:[{
required
:
true
,
message
:
'请输入非空格字符!'
,
trigger
:
'blur'
},],
},
companytype
:[],
companyrole
:[],
}
},
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
:{
//翻页
handleCurrentChange
(
val
)
{
...
...
dsk-operate-ui/src/views/project/projectList/component/xmsl.vue
View file @
b6d3acd8
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/project/projectList/detail.vue
View file @
b6d3acd8
...
...
@@ -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 @
b6d3acd8
...
...
@@ -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 @
b6d3acd8
...
...
@@ -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 @
b6d3acd8
<
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 @
b6d3acd8
...
...
@@ -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 @
b6d3acd8
...
...
@@ -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 @
b6d3acd8
This diff is collapsed.
Click to expand it.
dsk-operate-ui/src/views/radar/index.vue
View file @
b6d3acd8
...
...
@@ -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-system/src/main/java/com/dsk/system/service/impl/BusinessInfoServiceImpl.java
View file @
b6d3acd8
...
...
@@ -169,6 +169,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
//新增项目主信息
BusinessInfo
businessInfo
=
new
BusinessInfo
();
BeanUtil
.
copyProperties
(
dto
,
businessInfo
);
businessInfo
.
setConstructionUnit
(
dto
.
getOwnerCompany
());
int
addBusiness
=
businessInfoMapper
.
insertBusinessInfo
(
businessInfo
);
if
(
addBusiness
>
0
)
{
//获取登陆用户的部门id
...
...
@@ -176,9 +177,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
// Long deptId = 100l;
//新增用户-项目关系信息
int
addbusinessUser
=
businessUserMapper
.
insertBusinessUser
(
new
BusinessUser
(
businessInfo
.
getId
(),
deptId
.
intValue
(),
dto
.
getUserId
(),
1
));
//新增项目-关联企业信息
int
addRelateCompany
=
businessRelateCompanyMapper
.
insertBusinessRelateCompany
(
new
BusinessRelateCompany
(
businessInfo
.
getId
(),
dto
.
getCompanyId
(),
dto
.
getOwnerCompany
(),
"业主"
));
return
addbusinessUser
>
0
&&
addRelateCompany
>
0
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
return
addbusinessUser
>
0
?
AjaxResult
.
success
()
:
AjaxResult
.
error
();
}
return
AjaxResult
.
error
();
...
...
dsk-system/src/main/resources/mapper/business/BusinessRelateCompanyMapper.xml
View file @
b6d3acd8
...
...
@@ -15,6 +15,7 @@
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"depth"
column=
"depth"
/>
<result
property=
"companyType"
column=
"company_type"
/>
</resultMap>
<sql
id=
"selectBusinessRelateCompanyVo"
>
...
...
@@ -27,7 +28,8 @@
phone,
depth,
create_time,
update_time
update_time,
company_type
from business_relate_company
</sql>
...
...
@@ -46,6 +48,7 @@
#{responsiblePerson}
</if>
<if
test=
"phone != null and phone != ''"
>
and phone = #{phone}
</if>
<if
test=
"companyType != null and companyType != ''"
>
and company_type = #{companyType}
</if>
</where>
</select>
...
...
@@ -67,6 +70,7 @@
<if
test=
"phone != null"
>
phone,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
<if
test=
"companyType != null"
>
company_type,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"businessId != null"
>
#{businessId},
</if>
...
...
@@ -78,6 +82,7 @@
<if
test=
"phone != null"
>
#{phone},
</if>
<if
test=
"createTime != null"
>
#{createTime},
</if>
<if
test=
"updateTime != null"
>
#{updateTime},
</if>
<if
test=
"companyType != null"
>
#{companyType},
</if>
</trim>
</insert>
...
...
@@ -93,6 +98,7 @@
<if
test=
"phone != null"
>
phone = #{phone},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"companyType != null"
>
company_type = #{companyType},
</if>
</trim>
where id = #{id}
</update>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment