Commit 1a550304 authored by MyName's avatar MyName
parents a94bd3f2 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));
}
}
...@@ -90,7 +90,7 @@ public class BusinessInfoController extends BaseController ...@@ -90,7 +90,7 @@ public class BusinessInfoController extends BaseController
* 删除项目列表 * 删除项目列表
*/ */
// @PreAuthorize("@ss.hasPermi('system:business:remove')") // @PreAuthorize("@ss.hasPermi('system:business:remove')")
@Log(title = "项目管理", businessType = BusinessType.DELETE) // @Log(title = "项目管理", businessType = BusinessType.DELETE)
@DeleteMapping("/remove/{ids}") @DeleteMapping("/remove/{ids}")
public AjaxResult remove(@PathVariable(value = "ids",required=false) Long[] ids) public AjaxResult remove(@PathVariable(value = "ids",required=false) Long[] ids)
{ {
...@@ -101,7 +101,7 @@ public class BusinessInfoController extends BaseController ...@@ -101,7 +101,7 @@ public class BusinessInfoController extends BaseController
* 新增项目详情 * 新增项目详情
*/ */
// @PreAuthorize("@ss.hasPermi('system:business:add')") // @PreAuthorize("@ss.hasPermi('system:business:add')")
@Log(title = "项目管理", businessType = BusinessType.INSERT) // @Log(title = "项目管理", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
public AjaxResult add(@RequestBody BusinessAddDto dto) public AjaxResult add(@RequestBody BusinessAddDto dto)
{ {
...@@ -112,7 +112,7 @@ public class BusinessInfoController extends BaseController ...@@ -112,7 +112,7 @@ public class BusinessInfoController extends BaseController
* 修改项目详情 * 修改项目详情
*/ */
// @PreAuthorize("@ss.hasPermi('system:business:edit')") // @PreAuthorize("@ss.hasPermi('system:business:edit')")
@Log(title = "项目管理", businessType = BusinessType.UPDATE) // @Log(title = "项目管理", businessType = BusinessType.UPDATE)
@PostMapping("/edit") @PostMapping("/edit")
public AjaxResult edit(@RequestBody BusinessInfo businessInfo) public AjaxResult edit(@RequestBody BusinessInfo businessInfo)
{ {
......
...@@ -53,6 +53,10 @@ public class BusinessRelateCompany extends BaseEntity ...@@ -53,6 +53,10 @@ public class BusinessRelateCompany extends BaseEntity
@Excel(name = "对接深度/竞争力度") @Excel(name = "对接深度/竞争力度")
private String depth; private String depth;
/** 企业类型 */
@Excel(name = "企业类型")
private String companyType;
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
...@@ -66,6 +70,7 @@ public class BusinessRelateCompany extends BaseEntity ...@@ -66,6 +70,7 @@ public class BusinessRelateCompany extends BaseEntity
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("depth", getDepth()) .append("depth", getDepth())
.append("companyType", getCompanyType())
.toString(); .toString();
} }
......
...@@ -26,6 +26,14 @@ import org.apache.commons.lang3.ArrayUtils; ...@@ -26,6 +26,14 @@ import org.apache.commons.lang3.ArrayUtils;
import com.dsk.common.config.RuoYiConfig; import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.utils.uuid.IdUtils; import com.dsk.common.utils.uuid.IdUtils;
import org.apache.commons.io.FilenameUtils; 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 ...@@ -292,12 +300,12 @@ public class FileUtils
/** /**
* 下载文件 * 下载文件
* * @param url 要下载的文件链接
* @param url 要下载的文件链接
* @param targetFolder 目标文件 * @param targetFolder 目标文件
* @return
* @throws IOException * @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); URL downloadUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) downloadUrl.openConnection(); HttpURLConnection connection = (HttpURLConnection) downloadUrl.openConnection();
connection.setRequestMethod("GET"); connection.setRequestMethod("GET");
...@@ -330,6 +338,52 @@ public class FileUtils ...@@ -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);
}
}
} }
......
...@@ -318,7 +318,7 @@ select { ...@@ -318,7 +318,7 @@ select {
.jabph_popper_box { .jabph_popper_box {
position: absolute; position: absolute;
left: 146px; left: 144px;
bottom: -1px; bottom: -1px;
background: #ffffff; background: #ffffff;
width: 186px; width: 186px;
......
...@@ -199,6 +199,36 @@ export const constantRoutes = [ ...@@ -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' }
}
]
},
] ]
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
border border
fit fit
highlight-current-row highlight-current-row
:default-sort = 'defaultSort'
@sort-change="sortChange" @sort-change="sortChange"
> >
<el-table-column <el-table-column
...@@ -65,6 +66,10 @@ export default { ...@@ -65,6 +66,10 @@ export default {
type: Boolean, type: Boolean,
default: false default: false
}, },
defaultSort: {
type: Object,
default: null
},
tableData: { tableData: {
type: Array, type: Array,
default: [] default: []
......
...@@ -79,7 +79,7 @@ export default { ...@@ -79,7 +79,7 @@ export default {
pageSize: 10 pageSize: 10
}, },
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入项目/工程名称查询', options: []},
], ],
forData: [ forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', slot: true}, {label: '合作项目/工程名称', prop: 'projectAllName', width: '720', slot: true},
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<tables <tables
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
...@@ -57,11 +58,12 @@ export default { ...@@ -57,11 +58,12 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10
}, },
defaultSort: {prop: 'time', order: 'descending'},
forData: [ forData: [
{label: '客户名称', prop: 'companyName', minWidth: '350', slot: true}, {label: '客户名称', prop: 'companyName', minWidth: '350', slot: true},
{label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', sortable: 'custom', slot: true}, {label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'},
{label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom'}, {label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'},
{label: '最近一次合作时间', prop: 'time', minWidth: '140', sortable: 'custom'} {label: '最近一次合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'}
], ],
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []},
...@@ -90,32 +92,6 @@ export default { ...@@ -90,32 +92,6 @@ export default {
} }
this.tableDataTotal = res.total 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) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true
......
...@@ -70,7 +70,9 @@ export default { ...@@ -70,7 +70,9 @@ export default {
}, },
//排序 //排序
sortChange(e){ sortChange(e){
console.log(e) let item = this.forData.find(item => item.prop === e.prop)
this.queryParams.sort = item[e.order]
this.handleSearch()
} }
} }
} }
<template> <template>
<div class="app-container"> <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> <div class="combined-title">
</template> <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>
</div>
<p class="solid"></p>
</div>
</div>
</div>
<!-- 企业专项债 -->
<!-- <debtProject v-if="personnelHerf=='debtProject'" /> -->
<!-- 查企业 -->
<SearchEnterprise v-if="personnelHerf=='SearchEnterprise'" />
</div>
</template>
<script> <script>
import SearchEnterprise from "./components/SearchEnterprise/index.vue";
import "@/assets/styles/public.css";
export default {
name: 'enterpriseData',
components: { SearchEnterprise },
data() {
return {
// tablist
personnelList: [{
key: '1',
status: false,
value: '查业主单位',
},
{
key: 'SearchEnterprise',
status: true,
value: '查建筑企业',
},
export default { ],
name: 'EnterpriseData', personnelHerf:'SearchEnterprise'
components: { }
},
}, created() {},
data() { methods: {
return { personnelListbtn(index) {
iframeHight: null, for (var i = 0; i < this.personnelList.length; i++) {
iframeWin: {} this.personnelList[i].status = false;
} }
}, this.personnelList[index].status = true;
computed: { this.personnelHerf=this.personnelList[index].key;
}, },
created() { }
}, }
mounted() {
this.getInframeHight()
},
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
}
})
}
}
}
</script> </script>
<style lang="scss" scoped> <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;
}
</style> .tab .active p {
border-bottom: 2px solid #0081FF;
font-weight: bold;
}
</style>
\ No newline at end of file
...@@ -13,18 +13,14 @@ ...@@ -13,18 +13,14 @@
<div class="list-content"> <div class="list-content">
<p class="list-content-text"> <p class="list-content-text">
<span>办件结果</span> <span>发布时间</span>
<span >芜湖旭日机械制造有限公司</span> <span >2022-04-21</span>
</p> </p>
<p class="list-content-text"> <p class="list-content-text">
<span>总投资</span> <span>来源网站</span>
<span>芜湖旭日</span> <span>芜湖旭日</span>
</p> </p>
<p class="list-content-text">
<span>审批日期:</span>
<span>12345.62万</span>
</p>
</div> </div>
</li> </li>
...@@ -32,53 +28,7 @@ ...@@ -32,53 +28,7 @@
</div> </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="content main5">
<div class="common-title">立项审批</div> <div class="common-title">立项审批</div>
...@@ -90,80 +40,37 @@ ...@@ -90,80 +40,37 @@
fit fit
highlight-current-row highlight-current-row
> >
<el-table-column label="审批事项" width="270"> <el-table-column label="序号" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
企业投资项目备案 1
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="审批结果" width="187" > <el-table-column label="投标单位" >
<template slot-scope="scope"> <template slot-scope="scope">
通过 通过
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="审批部门" > <el-table-column label="投标报价(万)" width="300" >
<template slot-scope="scope"> <template slot-scope="scope">
老河口市发展和改革局 老河口市发展和改革局
</template> </template>
</el-table-column> </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> </el-table>
</div> </div>
</div> </div>
<div class="content main3">
<div class="content main5"> <div class="common-title">原文信息</div>
<div class="common-title">立项推介</div>
<div class="table-item"> <div class="main3-box">
<el-table
:data="tableData"
element-loading-text="Loading" </div>
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>
</el-table-column>
<el-table-column prop="zj" label="是否完成推介" width="243" >
<template slot-scope="scope">
</template>
</el-table-column>
</el-table>
</div>
</div> </div>
</div> </div>
</template> </template>
...@@ -172,7 +79,7 @@ ...@@ -172,7 +79,7 @@
import "@/assets/styles/public.css"; import "@/assets/styles/public.css";
export default { export default {
name: 'EstablishmentDetails', name: 'BidRecordDetails',
data() { data() {
return { return {
id: '', id: '',
...@@ -362,14 +269,6 @@ ...@@ -362,14 +269,6 @@
} }
.qyzx-details { .qyzx-details {
.tab {
font-size: 12px;
color: #A1A1A1;
span {
color: #232323;
}
}
.content { .content {
margin-top: 16px; margin-top: 16px;
...@@ -382,170 +281,12 @@ ...@@ -382,170 +281,12 @@
margin-bottom: 8px; 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 {
.main3-box { .main3-box {
margin-top: 22px; margin-top: 22px;
border-top: 1px solid #E6E9F0; min-height: 400px;
border: 1px solid #D8D8D8;
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;
}
span:last-child {
width: 20%;
border-right: 1px solid #E6E9F0;
}
} }
} }
......
<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
...@@ -176,7 +176,7 @@ ...@@ -176,7 +176,7 @@
} }
.content-label { .content-label {
margin-top: 7px; margin-top: 12px;
.list-label { .list-label {
background: #F3F3FF; background: #F3F3FF;
...@@ -191,7 +191,7 @@ ...@@ -191,7 +191,7 @@
.list-content { .list-content {
margin-top: 3px; margin-top: 6px;
display: flex; display: flex;
justify-content: start; justify-content: start;
align-items: center; align-items: center;
...@@ -270,15 +270,6 @@ ...@@ -270,15 +270,6 @@
} }
.qyzx-details { .qyzx-details {
.tab {
font-size: 12px;
color: #A1A1A1;
span {
color: #232323;
}
}
.content { .content {
margin-top: 16px; margin-top: 16px;
background: #FFFFFF; background: #FFFFFF;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
></el-cascader> ></el-cascader>
</div> </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' : ''" > <span class="el-dropdown-link" :class="punishDateValue ? 'color_text' : ''" >
发布时间{{ punishDateValue ? " 1项" : ""}} 发布时间{{ punishDateValue ? " 1项" : ""}}
<i class="el-icon-caret-bottom"></i> <i class="el-icon-caret-bottom"></i>
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
</div> </div>
</el-dropdown> </el-dropdown>
<el-dropdown @command="tenderDatehandleCommand" trigger="click" ref="tenderDateShowPopper" :hide-on-click="false" > <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 class="el-dropdown-link" :class="tenderDateValue ? 'color_text' : ''" >开标时间{{ tenderDateValue ? " 1项" : ""}}<i class="el-icon-caret-bottom"></i>
</span> </span>
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
<ul class="bottomlist-content"> <ul class="bottomlist-content">
<li class="bottomlist-list" > <li class="bottomlist-list" >
<p class="list-titel"> <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> --> <!-- <div v-else-if="item.projectName" v-html="item.projectName"></div> -->
</p> </p>
<div class="content-label"> <div class="content-label">
......
This diff is collapsed.
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
<Land v-if="personnelHerf=='Land'" /> <Land v-if="personnelHerf=='Land'" />
<!-- 拟建项目 --> <!-- 拟建项目 -->
<Establishment v-if="personnelHerf=='Establishment'" /> <Establishment v-if="personnelHerf=='Establishment'" />
<!-- 招标计划 -->
<Bidding v-if="personnelHerf=='Bidding'" />
<!-- 标讯pro --> <!-- 标讯pro -->
<bxprozbgg v-if="personnelHerf=='bxprozbgg'" /> <bxprozbgg v-if="personnelHerf=='bxprozbgg'" />
<!-- 公招标讯 --> <!-- 公招标讯 -->
...@@ -37,11 +39,12 @@ ...@@ -37,11 +39,12 @@
import bxprozbgg from "./components/bxprozbgg/index.vue"; import bxprozbgg from "./components/bxprozbgg/index.vue";
import Tender from "./components/Tender/index.vue"; import Tender from "./components/Tender/index.vue";
import BidRecord from "./components/BidRecord/index.vue"; import BidRecord from "./components/BidRecord/index.vue";
import Bidding from "./components/Bidding/index.vue";
import "@/assets/styles/public.css"; import "@/assets/styles/public.css";
export default { export default {
name: 'radar', name: 'radar',
components: { debtProject,Land,Establishment,bxprozbgg,Tender,BidRecord }, components: { debtProject,Land,Establishment,bxprozbgg,Tender,BidRecord,Bidding },
data() { data() {
return { return {
// tablist // tablist
...@@ -64,7 +67,7 @@ ...@@ -64,7 +67,7 @@
}, },
{ {
key: 'KeyPersonnel', key: 'Bidding',
status: false, status: false,
value: '招标计划', value: '招标计划',
......
...@@ -169,6 +169,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -169,6 +169,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
//新增项目主信息 //新增项目主信息
BusinessInfo businessInfo = new BusinessInfo(); BusinessInfo businessInfo = new BusinessInfo();
BeanUtil.copyProperties(dto, businessInfo); BeanUtil.copyProperties(dto, businessInfo);
businessInfo.setConstructionUnit(dto.getOwnerCompany());
int addBusiness = businessInfoMapper.insertBusinessInfo(businessInfo); int addBusiness = businessInfoMapper.insertBusinessInfo(businessInfo);
if (addBusiness > 0) { if (addBusiness > 0) {
//获取登陆用户的部门id //获取登陆用户的部门id
...@@ -176,9 +177,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -176,9 +177,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
// Long deptId = 100l; // Long deptId = 100l;
//新增用户-项目关系信息 //新增用户-项目关系信息
int addbusinessUser = businessUserMapper.insertBusinessUser(new BusinessUser(businessInfo.getId(), deptId.intValue(), dto.getUserId(), 1)); int addbusinessUser = businessUserMapper.insertBusinessUser(new BusinessUser(businessInfo.getId(), deptId.intValue(), dto.getUserId(), 1));
//新增项目-关联企业信息 return addbusinessUser > 0 ? AjaxResult.success() : AjaxResult.error();
int addRelateCompany = businessRelateCompanyMapper.insertBusinessRelateCompany(new BusinessRelateCompany(businessInfo.getId(), dto.getCompanyId(), dto.getOwnerCompany(), "业主"));
return addbusinessUser > 0 && addRelateCompany > 0 ? AjaxResult.success() : AjaxResult.error();
} }
return AjaxResult.error(); return AjaxResult.error();
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<result property="createTime" column="create_time"/> <result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
<result property="depth" column="depth"/> <result property="depth" column="depth"/>
<result property="companyType" column="company_type"/>
</resultMap> </resultMap>
<sql id="selectBusinessRelateCompanyVo"> <sql id="selectBusinessRelateCompanyVo">
...@@ -27,7 +28,8 @@ ...@@ -27,7 +28,8 @@
phone, phone,
depth, depth,
create_time, create_time,
update_time update_time,
company_type
from business_relate_company from business_relate_company
</sql> </sql>
...@@ -46,6 +48,7 @@ ...@@ -46,6 +48,7 @@
#{responsiblePerson} #{responsiblePerson}
</if> </if>
<if test="phone != null and phone != ''">and phone = #{phone}</if> <if test="phone != null and phone != ''">and phone = #{phone}</if>
<if test="companyType != null and companyType != ''">and company_type = #{companyType}</if>
</where> </where>
</select> </select>
...@@ -67,6 +70,7 @@ ...@@ -67,6 +70,7 @@
<if test="phone != null">phone,</if> <if test="phone != null">phone,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="companyType != null">company_type,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="businessId != null">#{businessId},</if> <if test="businessId != null">#{businessId},</if>
...@@ -78,6 +82,7 @@ ...@@ -78,6 +82,7 @@
<if test="phone != null">#{phone},</if> <if test="phone != null">#{phone},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="companyType != null">#{companyType},</if>
</trim> </trim>
</insert> </insert>
...@@ -93,6 +98,7 @@ ...@@ -93,6 +98,7 @@
<if test="phone != null">phone = #{phone},</if> <if test="phone != null">phone = #{phone},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="companyType != null">company_type = #{companyType},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment