Commit 5bd50db1 authored by danfuman's avatar danfuman

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

parents dec78d75 e1d64660
......@@ -187,7 +187,7 @@ sms:
territory: ap-guangzhou
dsk:
exportBackUrl: http://47.104.91.229:9099/prod-api/export/backUrl
exportBackUrl: http://120.46.64.239:9099/prod-api/export/backUrl
sa-token:
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
......
......@@ -187,7 +187,7 @@ sms:
territory: ap-guangzhou
dsk:
exportBackUrl: http://47.104.91.229:9099/prod-api/export/backUrl
exportBackUrl: http://120.46.64.239:9099/prod-api/export/backUrl
sa-token:
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
......
......@@ -294,6 +294,7 @@ lock4j:
--- # Actuator 监控端点的配置项
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: '*'
......
package com.dsk.jsk.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.biz.utils.ExcelUtils;
import com.dsk.common.constant.Constants;
import com.dsk.common.core.controller.BaseController;
......@@ -218,4 +219,28 @@ public class JskCombineInfoController extends BaseController {
public R memberCount(@RequestBody JskCombineCountDto dto) throws Exception {
return baseService.memberCount(dto);
}
/**
* 集团户土地交易
*/
@PostMapping("/landMarket/page")
public AjaxResult landMarketPage(@RequestBody JSONObject object) {
return baseService.landMarketPage(object);
}
/**
* 集团户招标计划
*/
@PostMapping("/bidPlan/page")
public AjaxResult bidPlanPage(@RequestBody JSONObject object) {
return baseService.bidPlanPage(object);
}
/**
* 集团户拟建项目
*/
@PostMapping("/establishment/page")
public AjaxResult establishmentPage(@RequestBody JSONObject object) {
return baseService.establishmentPage(object);
}
}
......@@ -284,4 +284,20 @@ public class JskCombineInfoService {
}
return performance;
}
public AjaxResult landMarketPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/operate/landMarket/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult bidPlanPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/operate/bidPlan/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult establishmentPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/operate/establishment/page", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
}
......@@ -130,4 +130,22 @@ public class ExportController {
public AjaxResult export(@RequestBody UrbanInvestmentPlatformDto dto) {
return exportService.export(dto);
}
//集团土地交易导出
@PostMapping("/combine/landMarket")
public AjaxResult exportCombineLandMarket(@RequestBody JSONObject object) {
return exportService.exportCombineLandMarket(object);
}
//集团招标计划导出
@PostMapping("/combine/bidPlan")
public AjaxResult exportCombineBidPlan(@RequestBody JSONObject object) {
return exportService.exportCombineBidPlan(object);
}
//集团拟建项目导出
@PostMapping("/combine/establishment")
public AjaxResult exportCombineEstablishment(@RequestBody JSONObject object) {
return exportService.exportCombineEstablishment(object);
}
}
......@@ -287,4 +287,52 @@ public class ExportService {
uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
return AjaxResult.success();
}
//集团土地交易导出
public AjaxResult exportCombineLandMarket(JSONObject object) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(object.get("exportExeclName").toString().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("集团土地交易导出");
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
object.put("exportUniqueCode",fileId);
//回调函数
object.put("exportBackUrl",EXPORT_BACK_URL);
dskOpenApiUtil.requestBody("/operate/export/combineLandMarket", object);
return AjaxResult.success();
}
//集团招标计划导出
public AjaxResult exportCombineBidPlan(JSONObject object) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(object.get("exportExeclName").toString().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("集团招标计划导出");
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
object.put("exportUniqueCode",fileId);
//回调函数
object.put("exportBackUrl",EXPORT_BACK_URL);
dskOpenApiUtil.requestBody("/operate/export/combineBidPlan", object);
return AjaxResult.success();
}
//集团拟建项目导出
public AjaxResult exportCombineEstablishment(JSONObject object) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(object.get("exportExeclName").toString().concat(Constants.SUFFIX_XLSX));
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("集团拟建项目导出");
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
object.put("exportUniqueCode",fileId);
//回调函数
object.put("exportBackUrl",EXPORT_BACK_URL);
dskOpenApiUtil.requestBody("/operate/export/combineEstablishment", object);
return AjaxResult.success();
}
}
......@@ -150,3 +150,22 @@ export function memberListExport(data) {
data: data
})
}
//集团商机-土地交易
export function landMarketPage(data) {
return request({
url: '/combine/info/landMarket/page',
method: 'post',
data: data
})
}
//集团商机-土地交易导出
export function landMarketExport(data) {
return request({
url: '/export/combine/landMarket',
method: 'post',
data: data
})
}
......@@ -16,7 +16,13 @@
class="detail-menu"
@open="handleOpen">
<template v-for="(item, index) in sideRoute">
<template>
<el-submenu :index="index.toString()" v-if="item.children">
<template slot="title">
<span>{{item.title}}</span>
</template>
<el-menu-item :index="index+'-'+idx" v-for="(it, idx) in item.children" :key="idx" @click="handleItem(it)">{{it.title}}</el-menu-item>
</el-submenu>
<template v-else>
<el-menu-item :index="index.toString()" :disabled="item.disabled" @click="handleItem(item)">{{item.title}}</el-menu-item>
</template>
</template>
......@@ -56,6 +62,20 @@ export default {
sideRoute: [
{title: '集团成员', pathName: 'members'},
{title: '集团资质', pathName: 'qualifications'},
{title: '集团商机', pathName: '', children: [
{ title: '土地交易', pathName: 'landtransaction' },
]
},
{title: '集团业绩', pathName: 'performance'},
{title: '集团招标', pathName: 'zhaobiao'},
],
sideRoute1: [
{title: '集团成员', pathName: 'members'},
{title: '集团资质', pathName: 'qualifications'},
{title: '集团商机', pathName: '', children: [
{ title: '土地交易', pathName: 'landtransaction' },
]
},
{title: '集团业绩', pathName: 'performance'},
{title: '集团招标', pathName: 'zhaobiao'},
],
......@@ -63,6 +83,7 @@ export default {
customer:[
'members',
'qualifications',
'landtransaction',
'performance',
'zhaobiao',
],
......@@ -128,7 +149,21 @@ export default {
},
handleItem(item){
this.$emit("currentPath", item)
let obj = item;
for (var i in this.sideRoute1) {
if (this.sideRoute1[i].children) {
for (var j in this.sideRoute1[i].children) {
if (item.title == this.sideRoute1[i].children[j].title) {
obj.pathName = this.sideRoute1[i].children[j].pathName;
}
}
} else {
if (item.title == this.sideRoute1[i].title) {
obj.pathName = this.sideRoute1[i].pathName;
}
}
}
this.$emit("currentPath", obj)
},
handleSearch(flag){
if((this.searchText&&!flag) || (!this.searchText&&flag)){
......
......@@ -14,6 +14,7 @@
<div id="groupBox" v-if="customerId">
<Members v-if="currentPath.pathName=='members'" @handle-scroll="scrollToTop" :customer-id="customerId" :isSkeleton="isSkeleton" :combineName="name"/>
<Qualifications v-if="currentPath.pathName=='qualifications'" @handle-scroll="scrollToTop" :customer-id="customerId" :isSkeleton="isSkeleton" :combineName="name"/>
<Landtransaction v-if="currentPath.pathName=='landtransaction'" @handle-scroll="scrollToTop" :customer-id="customerId" :isSkeleton="isSkeleton" :combineName="name"/>
<Performance v-if="currentPath.pathName=='performance'" @handle-scroll="scrollToTop" :customer-id="customerId" :isSkeleton="isSkeleton" :combineName="name"/>
<Zhaobiao v-if="currentPath.pathName=='zhaobiao'" @handle-scroll="scrollToTop" :customer-id="customerId" :isSkeleton="isSkeleton" :combineName="name"/>
</div>
......@@ -27,6 +28,7 @@
import SideBar from "./component/Sidebar"
import Members from "./component/members"
import Qualifications from "./component/qualifications"
import Landtransaction from "./component/landtransaction"
import Performance from "./component/performance"
import Zhaobiao from "./component/zhaobiao"
import { infoHeader } from '@/api/detail/party-a/index'
......@@ -34,7 +36,7 @@
export default {
name: 'GroupAccount',
components:{
SideBar,Members,Qualifications,Performance,Zhaobiao
SideBar,Members,Qualifications,Landtransaction,Performance,Zhaobiao
},
data(){
return{
......
......@@ -178,6 +178,14 @@ export default {
startTime = new Date(endTime.getTime() - 3600 * 1000 * 24 * 15)
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
case '近1个月':
startTime = new Date(endTime.getTime() - 3600 * 1000 * 24 * 30)
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
case '近半年':
startTime = new Date(endTime.getTime() - 3600 * 1000 * 24 * 180)
timeStr = [this.formatDate(startTime), this.formatDate(endTime)]
break;
case '近1年':
startTime = new Date().setFullYear(new Date().getFullYear() - 1)
if(this.dateTo){
......
......@@ -64,6 +64,16 @@
<el-cascader :class="[`select-adaptive-${form.uid}`]" ref="cascader" :options="form.options" :props="form.props" v-model="form.value"
@change="iptAdaptive(form.uid,true)" :placeholder="form.placeholder" collapse-tags clearable></el-cascader>
</template>
<!-- 出让面积、自定义 -->
<template v-else-if="form.type==8">
<start-acreage-select :class="[`select-adaptive-${form.uid}`,'custom-select']" :startAcreageList="form.startAcreageList" v-model="form.value"
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
</template>
<!-- 金额 (集团户详情)-->
<template v-else-if="form.type==9">
<group-money-select :class="[`select-adaptive-${form.uid}`,'custom-select']" :moneyList="form.moneyList" v-model="form.value"
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
</template>
<!-- 自定义 -->
<template v-if="form.type==0">
<slot name="slot"></slot>
......@@ -78,7 +88,7 @@
</template>
<div v-else class="flex-box">
<span class="flex-box ability-total" v-if="isTotal">共有{{ total }}条</span>
<span class="flex-box ability-excel" v-hasPermi="['combine:info:export:win:bid','combine:info:export:bid']" v-if="isExcel && title ==='集团业绩'|| title ==='集团招标' "
<span class="flex-box ability-excel" v-hasPermi="['combine:info:export:win:bid','combine:info:export:bid']" v-if="isExcel && title ==='集团业绩'|| title ==='集团招标' || title ==='土地交易明细'"
@click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box ability-excel" v-else @click="clickEXCEL"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
......@@ -90,6 +100,8 @@
<script>
import CustomTimeSelect from './CustomTimeSelect';
import CustomMoneySelect from './CustomMoneySelect';
import GroupMoneySelect from './GroupMoneySelect';
import StartAcreageSelect from './StartAcreageSelect';
import gsap from "gsap";
export default {
name: "HeadForm",
......@@ -127,9 +139,18 @@ export default {
default: false
}
},
watch: {
formData: {
handler(newValue) {
this.comFormData = newValue;
},
deep: true
}
},
data() {
return {
showSearchBox: false
showSearchBox: false,
comFormData: this.formData
};
},
created() {
......@@ -137,7 +158,9 @@ export default {
},
components: {
CustomTimeSelect,
CustomMoneySelect
CustomMoneySelect,
StartAcreageSelect,
GroupMoneySelect
},
methods: {
searchFocus(event, formData) {
......@@ -244,7 +267,7 @@ export default {
textContainer.remove();
});
dom.style.setProperty("width", `${width + 60}px`);
this.$emit('handle-search');
this.$emit('handle-search', this.comFormData);
return;
}
textContainer.style.setProperty("visibility", "hidden");
......@@ -257,7 +280,7 @@ export default {
let containerWidth = textContainer.offsetWidth + 12 + 8;
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
this.$emit('handle-search');
this.$emit('handle-search', this.comFormData);
}
} catch (error) {
......@@ -287,16 +310,16 @@ export default {
textContainer.remove();
dom.style.setProperty("width", `${containerWidth}px`);
}
this.$emit('handle-search');
this.$emit('handle-search', this.comFormData);
} catch (error) {
}
},
changeSelect(e) {
this.$emit('handle-search');
this.$emit('handle-search', this.comFormData);
},
clickEXCEL() {
if (this.title === '集团业绩' || this.title === '集团招标' || this.title === '集团成员') {
if (this.title === '集团业绩' || this.title === '集团招标' || this.title === '集团成员'|| this.title === '土地交易明细') {
this.$emit('handle-excel');
} else {
this.$message({
......
......@@ -193,7 +193,9 @@ export default {
status: undefined,
},
// 表单参数
form: {},
form: {
dateRange:[],
},
// 表单校验
rules: {
contactPhone: [
......@@ -302,7 +304,7 @@ export default {
// 表单重置
reset() {
this.form = {
dateRange: undefined,
dateRange: [],
id: undefined,
tenantId: undefined,
contactUserName: undefined,
......@@ -312,7 +314,7 @@ export default {
accountCount: undefined,
status: "0",
};
this.resetForm("form");
// this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
......@@ -321,7 +323,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.form.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
......@@ -364,7 +366,7 @@ export default {
const id = row.id;
this.getpack();
getTenant(id).then(response => {
this.form = response.data;
this.form = {...this.form,...response.data};
this.form.dateRange = [response.data.startTime, response.data.expireTime];
this.open = true;
this.title = this.disabled == true ? '查看企业' : "修改企业";
......
......@@ -352,7 +352,8 @@
],
page: 1,
limit: 20,
acreageOptions: [{
acreageOptions: [
{
value: "不限",
label: "不限",
},
......@@ -385,7 +386,8 @@
label: "10万平以上",
},
],
transactionPriceOptions: [{
transactionPriceOptions: [
{
value: "不限",
label: "不限",
},
......
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