明树Git Lab

Commit 25bbac44 authored by yangyajing's avatar yangyajing

浮点数计算

parent 6aa0ed17
Pipeline #104458 passed with stage
in 13 seconds
......@@ -22,7 +22,7 @@
</div>
</el-header>
<el-container>
<el-container class="container-main">
<!-- 侧边Aside -->
<el-aside width="220px" class="city-aside">
<left-menu></left-menu>
......@@ -86,6 +86,12 @@ const handleLogout = () => {
.smart-city-container {
height: 100vh;
overflow: hidden;
display: flex;
flex-direction: column;
.container-main{
flex: 1;
height: 0;
}
}
/* 选中菜单项样式 */
......
......@@ -5,10 +5,10 @@
>
<template v-for="item in menuList">
<template v-if="item.children && item.children.length">
<left-menu-item :key="item.id" :menuItem="item"></left-menu-item>
<left-menu-item :key="item.id?.toString()" :menuItem="item"></left-menu-item>
</template>
<template v-else>
<el-menu-item :key="item.id" :index="item.url">
<el-menu-item :key="item.id?.toString()" :index="item.url">
<span>{{ item.name }}</span>
</el-menu-item>
</template>
......
<template>
<el-sub-menu :index="menuItem.id">
<el-sub-menu :index="menuItem.id?.toString()">
<template #title>
<span>{{ menuItem.name }}</span>
</template>
......
.tab-content{
th{
// text-align: center;
}
.manage-container{
display: flex;
flex-direction: column;
}
.manage-header{
background: rgba(255, 255, 255, 0.9);
border-radius: 8px;
padding: 12px 20px 0;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
}
.manage-content{
flex: 1;
height: 0;
}
\ No newline at end of file
......@@ -338,7 +338,9 @@
</el-select>
</el-form-item>
<el-form-item label="投资指南分类概述" v-if="formData.tzznyjfl !== 233">
<el-input v-model="formData.tzznflgs" type="textarea" />
<el-input v-model="formData.tzznflgs" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -535,13 +537,19 @@
</el-collapse-item>
<el-collapse-item title="项目必要性及可行性" name="项目必要性及可行性">
<el-form-item label="建设内容及规模">
<el-input v-model="formData.jsnrjgm" type="textarea" />
<el-input v-model="formData.jsnrjgm" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
<el-form-item label="项目必要性">
<el-input v-model="formData.xmbyx" type="textarea" />
<el-input v-model="formData.xmbyx" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
<el-form-item label="项目可行性">
<el-input v-model="formData.xmkxx" type="textarea" />
<el-input v-model="formData.xmkxx" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
<!-- <el-form-item label="其他说明">
<el-input v-model="formData.qtsm" type="textarea" />
......@@ -681,7 +689,11 @@
/>
</template>
</el-table-column>
<el-table-column prop="dwsjDw" label="单位" width="90"/>
<el-table-column prop="dwsjDw" label="单位" width="90">
<template #default="scope">
<el-input v-model="scope.row.dwsjDw" />
</template>
</el-table-column>
</el-table-column>
<el-table-column label="盈亏平衡点">
<el-table-column prop="ykphdlx" label="类型" width="130">
......@@ -1161,7 +1173,9 @@
</el-col>
<el-col :span="24">
<el-form-item label="建设内容及规模">
<el-input v-model="jcFormData.jsnrjgm" type="textarea" />
<el-input v-model="jcFormData.jsnrjgm" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
</el-col>
<el-col :span="8">
......@@ -1203,7 +1217,9 @@
</el-col>
<el-col :span="24">
<el-form-item label="未通过主要原因与要求" :label-width="160">
<el-input v-model="jcFormData.wtgzyyyyyq" type="textarea" />
<el-input v-model="jcFormData.wtgzyyyyyq" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
</el-col>
</el-row>
......@@ -1297,10 +1313,15 @@
</el-form-item>
<el-form-item label="是否再决策">
<el-radio-group v-model="jcFormData.sfzjc">
<el-radio :value="1"></el-radio>
<el-radio :value="2"></el-radio>
<el-radio :value="1" id="是"></el-radio>
<el-radio :value="2" id="否"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="投资指南分类概述" v-if="jcFormData.tzznyjfl !== 233">
<el-input v-model="jcFormData.tzznflgs" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
......@@ -1774,14 +1795,15 @@
</el-row>
</el-collapse-item>
<el-collapse-item title="项目内容及必要性" name="项目内容及必要性">
<el-form-item label="建设内容及规模">
<el-input v-model="formData.jsnrjgm" type="textarea" />
</el-form-item>
<el-form-item label="项目必要性">
<el-input v-model="jcFormData.xmbyx" type="textarea" />
<el-input v-model="jcFormData.xmbyx" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
<el-form-item label="其他说明">
<el-input v-model="jcFormData.qtsm" type="textarea" />
<el-input v-model="jcFormData.qtsm" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
</el-collapse-item>
<el-collapse-item title="风险管理" name="风险管理">
......@@ -2269,7 +2291,9 @@
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="其他会议审议情况">
<el-input v-model="jcFormData.jcqthysyqk" type="textarea" />
<el-input v-model="jcFormData.jcqthysyqk" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
</el-col>
</el-row>
......@@ -2301,7 +2325,9 @@
</el-col>
<el-col :span="24">
<el-form-item label="未通过主要原因与要求" label-width="160">
<el-input v-model="jcFormData.jcwtgzyyyyyq" type="textarea" />
<el-input v-model="jcFormData.jcwtgzyyyyyq" type="textarea"
:autosize="{minRows: 2, maxRows: 5}"
/>
</el-form-item>
</el-col>
</el-row>
......@@ -2483,23 +2509,24 @@
if (index < gdxxData.length - 1) {
if (item.gdlx) {
if (!obj[item.gdlx]) {
console.log(item.gdlx);
obj[item.gdlx] = {
name: gdlxList.filter(gdlx => gdlx.id == item.gdlx)[0].value
};
}
obj[item.gdlx].cgbl = _.add((Number(obj[item.gdlx].cgbl) || 0), Number(item.cgbl))
obj[item.gdlx].cze = _.add((Number(obj[item.gdlx].cze) || 0), Number(item.cze))
obj[item.gdlx].yjzczb = _.add((Number(obj[item.gdlx].yjzczb) || 0), Number(item.yjzczb))
obj[item.gdlx].ycxmzbj = _.add((Number(obj[item.gdlx].ycxmzbj) || 0), Number(item.ycxmzbj))
obj[item.gdlx].cgbl = new Decimal(Number(obj[item.gdlx].cgbl || 0)).plus(new Decimal(Number(item.cgbl || 0)));
obj[item.gdlx].cze = new Decimal(Number(obj[item.gdlx].cze || 0)).plus(new Decimal(Number(item.cze || 0)));
obj[item.gdlx].yjzczb = new Decimal(Number(obj[item.gdlx].yjzczb || 0)).plus(new Decimal(Number(item.yjzczb || 0)));
obj[item.gdlx].ycxmzbj = new Decimal(Number(obj[item.gdlx].ycxmzbj || 0)).plus(new Decimal(Number(item.ycxmzbj || 0)));
}
}
})
gdxxSums.value = obj;
}
// 计算数组总和
// 计算对象总和
const getObjSums = (obj, objkey) => {
return Object.entries(obj).reduce((acc, [key, item]) => acc.plus(new Decimal(item[objkey] ||0)), new Decimal(0));
return Object.entries(obj).reduce((acc, [key, item]) => acc.plus(new Decimal(item[objkey] || 0)), new Decimal(0));
}
// 支撑材料
let zcclData = ref([]);
......@@ -2602,8 +2629,7 @@
njfhlDw: "%",
ykphddw: "%",
xsfwnlDw: "万元",
dwscfwzcbDw: "万元",
dwsjDw: "元/平米"
dwscfwzcbDw: "万元"
});
}
const deleteHxbjtj = (index) => {
......@@ -2704,12 +2730,12 @@
name: gdlxList.filter(gdlx => gdlx.id == item.gdlx)[0].value
};
}
obj[item.gdlx].mycgbl = _.add((Number(obj[item.gdlx].mycgbl) || 0), Number(item.mycgbl))
obj[item.gdlx].cgbl = _.add((Number(obj[item.gdlx].cgbl) || 0), Number(item.cgbl))
obj[item.gdlx].lrfpbl = _.add((Number(obj[item.gdlx].lrfpbl) || 0), Number(item.lrfpbl))
obj[item.gdlx].cze = _.add((Number(obj[item.gdlx].cze) || 0), Number(item.cze))
obj[item.gdlx].yjzczb = _.add((Number(obj[item.gdlx].yjzczb) || 0), Number(item.yjzczb))
obj[item.gdlx].ycxmzbj = _.add((Number(obj[item.gdlx].ycxmzbj) || 0), Number(item.ycxmzbj))
obj[item.gdlx].mycgbl = new Decimal(Number(obj[item.gdlx].mycgbl || 0)).plus(new Decimal(Number(item.mycgbl || 0)));
obj[item.gdlx].cgbl = new Decimal(Number(obj[item.gdlx].cgbl || 0)).plus(new Decimal(Number(item.cgbl || 0)));
obj[item.gdlx].lrfpbl = new Decimal(Number(obj[item.gdlx].lrfpbl || 0)).plus(new Decimal(Number(item.lrfpbl || 0)));
obj[item.gdlx].cze = new Decimal(Number(obj[item.gdlx].cze || 0)).plus(new Decimal(Number(item.cze || 0)));
obj[item.gdlx].yjzczb = new Decimal(Number(obj[item.gdlx].yjzczb || 0)).plus(new Decimal(Number(item.yjzczb || 0)));
obj[item.gdlx].ycxmzbj = new Decimal(Number(obj[item.gdlx].ycxmzbj || 0)).plus(new Decimal(Number(item.ycxmzbj || 0)));
}
})
jcgdxxSums.value = obj;
......@@ -3030,8 +3056,7 @@
njfhlDw: "%",
ykphddw: "%",
xsfwnlDw: "万元",
dwscfwzcbDw: "万元",
dwsjDw: "元/平米"
dwscfwzcbDw: "万元"
});
}
const deleteJchxbjtj = (index) => {
......@@ -3110,6 +3135,9 @@
szjList.value = selectData[0] && selectData[0].children || [];
dsgjList.value = [];
qxgjList.value = [];
delete formData.sjnzjjw;
delete formData.dsjngjjw;
delete formData.qxjngjjw;
}
};
const changeSzj = (val) => {
......@@ -3117,12 +3145,15 @@
let selectData = szjList.value.filter(item => item.id == val);
dsgjList.value = selectData[0] && selectData[0].children || [];
qxgjList.value = [];
delete formData.dsjngjjw;
delete formData.qxjngjjw;
}
}
const changeDsgj = (val) => {
if (val || val === 0) {
let selectData = dsgjList.value.filter(item => item.id == val);
qxgjList.value = selectData[0] && selectData[0].children || [];
delete formData.qxjngjjw;
}
}
let xmqyList = reactive([]); // 项目区域
......@@ -3133,6 +3164,7 @@
if (val || val === 0) {
let selectData = tzsxyjflList.filter(item => item.id == val);
tzsxejflList.value = selectData[0] && selectData[0].children || [];
delete formData.tzsxejfl;
}
};
let tzsxtzbkList = reactive([]); // 投资属性投资板块
......@@ -3141,6 +3173,7 @@
if (val || val === 0) {
let selectData = tzsxtzbkList.filter(item => item.id == val);
tzsxxfbkList.value = selectData[0] && selectData[0].children || [];
delete formData.subsector;
}
}
let tzmdyjflList = reactive([]); // 投资目的一级分类
......@@ -3149,6 +3182,7 @@
if (val || val === 0) {
let selectData = tzmdyjflList.filter(item => item.id == val);
tzmdejflList.value = selectData[0] && selectData[0].children || [];
delete formData.tzmdejfl;
}
};
let tzmdsxflList = reactive([]); // 投资目的四新分类
......@@ -3158,6 +3192,7 @@
if (val || val === 0) {
let selectData = tzznyjflList.filter(item => item.id == val);
tzznejflList.value = selectData[0] && selectData[0].children || [];
delete formData.tzznejfl;
}
};
let gmjjhyList = reactive([]); //国民经济行业
......@@ -3190,6 +3225,9 @@
jcSzjList.value = selectData[0] && selectData[0].children || [];
jcDsgjList.value = [];
jcQxgjList.value = [];
delete jcFormData.sjnzjjw;
delete jcFormData.dsjngjjw;
delete jcFormData.qxjngjjw;
}
};
const changeJcSzj = (val) => {
......@@ -3197,12 +3235,15 @@
let selectData = jcSzjList.value.filter(item => item.id == val);
jcDsgjList.value = selectData[0] && selectData[0].children || [];
jcQxgjList.value = [];
delete jcFormData.dsjngjjw;
delete jcFormData.qxjngjjw;
}
}
const changeJcDsgj = (val) => {
if (val || val === 0) {
let selectData = jcDsgjList.value.filter(item => item.id == val);
jcQxgjList.value = selectData[0] && selectData[0].children || [];
delete jcFormData.qxjngjjw;
}
}
let jcTzsxejflList = ref([]); // 投资属性二级分类
......@@ -3210,6 +3251,7 @@
if (val || val === 0) {
let selectData = tzsxyjflList.filter(item => item.id == val);
jcTzsxejflList.value = selectData[0] && selectData[0].children || [];
delete jcFormData.tzsxejfl;
}
};
let jcTzsxxfbkList = ref([]); // 投资属性细分板块
......@@ -3217,6 +3259,7 @@
if (val || val === 0) {
let selectData = tzsxtzbkList.filter(item => item.id == val);
jcTzsxxfbkList.value = selectData[0] && selectData[0].children || [];
delete jcFormData.subsector;
}
}
let jcTzmdejflList = ref([]); // 投资目的二级分类
......@@ -3224,6 +3267,7 @@
if (val || val === 0) {
let selectData = tzmdyjflList.filter(item => item.id == val);
jcTzmdejflList.value = selectData[0] && selectData[0].children || [];
delete jcFormData.tzmdejfl;
}
};
let jcTzznejflList = ref([]); // 投资指南二级分类
......@@ -3231,6 +3275,7 @@
if (val || val === 0) {
let selectData = tzznyjflList.filter(item => item.id == val);
jcTzznejflList.value = selectData[0] && selectData[0].children || [];
delete jcFormData.tzznejfl;
}
};
let hylxList = reactive([]); // 会议类型
......@@ -3272,24 +3317,26 @@
// 决策
let jcData = res.juece || res.lixiang || {};
Object.assign(jcFormData, jcData);
Object.assign(jcSwlzbData, jcData.projectJsgms);
Object.assign(dbzqData, jcData.projectZqrzs);
Object.assign(fxglData, jcData.projectFxgls);
Object.assign(jcGdxxData, jcData.projectGdxxs.concat([{}]));
changeJcGdxxSums();
Object.assign(lcbjdData, jcData.projectLcbjds);
Object.assign(lcbspData.value, jcData.lcbjhspb);
Object.assign(kyclData.value, jcData.kycl);
Object.assign(jjzbcsData.value, jcData.jjzbcbcscl);
Object.assign(tpzcclData.value, jcData.qtxgzccl);
Object.assign(tpbczcclData.value, jcData.bcxgzccl);
Object.assign(shyaData.value, jcData.shya);
Object.assign(jcTzzeqkjData, jcData.projectXmtzzes);
Object.assign(jcCwpjzbData, jcData.projectCwpjzbs);
Object.assign(jcHxbjtjData, jcData.projectBjtjs);
Object.assign(jcztshqkData, jcData.projectJczts);
Object.assign(tzztshqkData, jcData.projectTzzts);
Object.assign(jcspyjData, jcData.projectSpyjs);
if (res.juece) {
Object.assign(jcSwlzbData, jcData.projectJsgms);
Object.assign(dbzqData, jcData.projectZqrzs);
Object.assign(fxglData, jcData.projectFxgls);
Object.assign(jcGdxxData, jcData.projectGdxxs.concat([{}]));
changeJcGdxxSums();
Object.assign(lcbjdData, jcData.projectLcbjds);
Object.assign(lcbspData.value, jcData.lcbjhspb);
Object.assign(kyclData.value, jcData.kycl);
Object.assign(jjzbcsData.value, jcData.jjzbcbcscl);
Object.assign(tpzcclData.value, jcData.qtxgzccl);
Object.assign(tpbczcclData.value, jcData.bcxgzccl);
Object.assign(shyaData.value, jcData.shya);
Object.assign(jcTzzeqkjData, jcData.projectXmtzzes);
Object.assign(jcCwpjzbData, jcData.projectCwpjzbs);
Object.assign(jcHxbjtjData, jcData.projectBjtjs);
Object.assign(jcztshqkData, jcData.projectJczts);
Object.assign(tzztshqkData, jcData.projectTzzts);
Object.assign(jcspyjData, jcData.projectSpyjs);
}
// 关联筛选
jcSzjList.value = jnwList.filter(item => item.id == jcData.jnw)[0]?.children || [];
jcDsgjList.value = jcSzjList.value.filter(item => item.id == jcData.sjnzjjw)[0]?.children || [];
......
<template>
<div class="user-manage" v-loading="loading">
<!-- <div class="search-form">
<commonForm
v-model="searchForm"
:config="searchConfig"
:items="searchItems"
@submit="handleSearch"
@reset="handleReset"
/>
</div> -->
<div class="table-container">
<div class="manage-container user-manage" v-loading="loading">
<div class="manage-header">
<div class="header-left">
<el-form :inline="true" :model="searchForm">
<el-form-item label="关键字查询">
<el-input v-model="searchForm.name" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleSearch">查询</el-button>
</el-form-item>
</el-form>
</div>
<div class="header-right">
<el-form>
<el-form-item>
<el-button type="primary" @click="handleAdd">新增用户</el-button>
</el-form-item>
</el-form>
</div>
</div>
<div class="manage-content table-container">
<common-table
:autoHeight="true"
:maxRows="10"
:rowHeight="40"
:data="tableData"
:columns="tableColumns"
:total="total"
......@@ -24,22 +33,6 @@
@size-change="handleSizeChange"
@current-page-change="handleCurrentPageChange"
>
<template #header-left>
<commonForm
v-model="searchForm"
:config="searchConfig"
:items="searchItems"
@submit="handleSearch"
@reset="handleReset"
/>
</template>
<template #header-actions>
<el-button type="primary" @click="handleAdd">
<!-- <el-icon><Plus /></el-icon> -->
新增
</el-button>
</template>
<template #enable="{ row }">
<el-switch
:model-value="row.enable === 0 ? true : false"
......@@ -530,6 +523,7 @@ onMounted(() => {
</script>
<style scoped lang="less">
@import "@/styles/manage.less";
.user-manage {
padding: 8px 8px 20px 8px;
background: rgba(157, 188, 218, 0.1);
......
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