Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp
This commit is contained in:
@@ -79,24 +79,113 @@
|
||||
// 区域阴影
|
||||
// .ns-list-table {
|
||||
|
||||
// :deep(.ant-tabs) {
|
||||
// // overflow: visible;
|
||||
// box-shadow: @ns-content-box-shadow;
|
||||
// border-radius: @ns-border-radius;
|
||||
// .ns-table-search {
|
||||
// box-shadow: none;
|
||||
// border-top-left-radius: 0px !important;
|
||||
// border-top-right-radius: 0px !important;
|
||||
// }
|
||||
// .ns-table-main {
|
||||
// }
|
||||
// .ant-tabs-tabpane-active > div {
|
||||
// height: 100%;
|
||||
// }
|
||||
// }
|
||||
:deep(.ant-tabs) {
|
||||
// // overflow: visible;
|
||||
// box-shadow: @ns-content-box-shadow;
|
||||
// border-radius: @ns-border-radius;
|
||||
.ns-table-search {
|
||||
border-top-left-radius: 0px !important;
|
||||
border-top-right-radius: 0px !important;
|
||||
}
|
||||
.ns-table-main {
|
||||
border-bottom-left-radius: 0px !important;
|
||||
border-bottom-right-radius: 0px !important;
|
||||
}
|
||||
// .ant-tabs-tabpane-active > div {
|
||||
// height: 100%;
|
||||
// }
|
||||
}
|
||||
// .ant-tabs .ns-table-main {
|
||||
// border-bottom-left-radius: 0px !important;
|
||||
// border-bottom-right-radius: 0px !important;
|
||||
// }
|
||||
// }
|
||||
|
||||
// 菜单icon(仅仅处理特殊需求:未选中时icon与文字不同色)
|
||||
:deep(.anticon) {
|
||||
color: #8d96a3 !important;
|
||||
}
|
||||
|
||||
:deep(.ant-menu-item-selected .ant-menu-item-only-child),
|
||||
:deep(.ant-menu-submenu-selected .ant-menu-item-only-child),
|
||||
:deep(.firstMenuItem-selected) {
|
||||
.router-link-active > .anticon {
|
||||
color: @white !important;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-menu-item-active) {
|
||||
.anticon {
|
||||
color: @primary-color !important;
|
||||
}
|
||||
}
|
||||
:deep(.ant-menu-submenu-active),
|
||||
:deep(.ant-menu-submenu-open),
|
||||
:deep(.ant-menu-item-selected) {
|
||||
.ant-menu-submenu-title {
|
||||
.anticon {
|
||||
color: @primary-color !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@min-padding: 5px;
|
||||
:deep(.ns-left-menu-space):not(.ns-left-menu-space-collapsed) {
|
||||
.firstMenuItem-selected {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {
|
||||
background-color: transparent;
|
||||
&::before {
|
||||
background-color: @primary-color;
|
||||
opacity: 1;
|
||||
height: calc(100% - @min-padding*2);
|
||||
top: @min-padding;
|
||||
border-radius: @ns-border-radius;
|
||||
}
|
||||
}
|
||||
.ant-menu-item-active:not(.ant-menu-item-selected) {
|
||||
background-color: transparent !important;
|
||||
position: relative;
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
background-color: rgb(@primary-color, 0.1);
|
||||
height: calc(100% - @min-padding*2);
|
||||
top: @min-padding;
|
||||
left: 0;
|
||||
border-radius: @ns-border-radius;
|
||||
z-index: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// .ant-menu-inline .ant-menu-item-selected::after {
|
||||
// content: '';
|
||||
// position: absolute;
|
||||
// top: 50%;
|
||||
// right: -20px;
|
||||
// transform: translateY(-50%);
|
||||
// width: 3px !important;
|
||||
// border-radius: 2px;
|
||||
// background-color: red;
|
||||
// height: 30px;
|
||||
// z-index: 2;
|
||||
// border: none;
|
||||
// }
|
||||
|
||||
.ant-menu-title-content {
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.nsHeader_action) {
|
||||
.action {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
letter-spacing: 0px;
|
||||
line-height: 24px;
|
||||
color: rgba(51, 51, 51, 1);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@@ -739,27 +739,27 @@
|
||||
options: [
|
||||
{
|
||||
label: 'CO2',
|
||||
value: 'CO2',
|
||||
value: '1',
|
||||
},
|
||||
{
|
||||
label: 'CO2e',
|
||||
value: 'CO2e',
|
||||
value: '2',
|
||||
},
|
||||
{
|
||||
label: 'SF6',
|
||||
value:'SF6',
|
||||
value:'3',
|
||||
},
|
||||
{
|
||||
label: 'CH4',
|
||||
value: 'CH4',
|
||||
value: '4',
|
||||
},
|
||||
{
|
||||
label: 'PFCs',
|
||||
value: 'PFCs',
|
||||
value: '5',
|
||||
},
|
||||
{
|
||||
label: 'HFCs',
|
||||
value: 'HFCs',
|
||||
value: '6',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@@ -291,10 +291,10 @@
|
||||
// };
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
::v-deep .ant-table-title{
|
||||
:deep(.ant-table-title){
|
||||
display: flex;
|
||||
}
|
||||
::v-deep .ant-table-container{
|
||||
:deep(.ant-table-container){
|
||||
padding: 0px 16px;
|
||||
}
|
||||
</style>
|
||||
|
@@ -10,14 +10,14 @@
|
||||
<a-date-picker v-model:value="selectYear" picker="year" @change="changeYearData" valueFormat="YYYY" />
|
||||
</template>
|
||||
</a-table>
|
||||
<a-pagination
|
||||
:current="queryParams.pageNum"
|
||||
:total="total"
|
||||
:page-size="queryParams.pageSize"
|
||||
style="display: flex;justify-content: center;margin-top: 16px;"
|
||||
:show-size-changer="true"
|
||||
:show-quick-jumper="true"
|
||||
@change="onChange" />
|
||||
<a-pagination
|
||||
:current="queryParams.pageNum"
|
||||
:total="total"
|
||||
:page-size="queryParams.pageSize"
|
||||
style="display: flex;justify-content: center;margin-top: 16px;"
|
||||
:show-size-changer="true"
|
||||
:show-quick-jumper="true"
|
||||
@change="onChange" />
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
@@ -177,10 +177,10 @@
|
||||
};
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
::v-deep .ant-table-title{
|
||||
:deep(.ant-table-title){
|
||||
display: flex;
|
||||
}
|
||||
::v-deep .ant-table-container{
|
||||
:deep(.ant-table-container){
|
||||
padding: 0px 16px;
|
||||
}
|
||||
</style>
|
||||
|
@@ -576,10 +576,10 @@
|
||||
};
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
::v-deep .ant-table-title{
|
||||
:deep(.ant-table-title) {
|
||||
display: flex;
|
||||
}
|
||||
::v-deep .ant-table-container{
|
||||
:deep(.ant-table-container) {
|
||||
padding: 0px 16px;
|
||||
}
|
||||
.buttonGroup{
|
||||
|
@@ -490,7 +490,7 @@
|
||||
height: 100%;
|
||||
background: #ffffff;
|
||||
}
|
||||
::v-deep .ant-table-container{
|
||||
:deep(.ant-table-container) {
|
||||
padding: 0px 16px;
|
||||
}
|
||||
:deep(.ns-table-main) {
|
||||
@@ -527,7 +527,7 @@
|
||||
border-radius: 1px;
|
||||
background-color: #2778FF;
|
||||
}
|
||||
::v-deep .ant-table-title{
|
||||
:deep(.ant-table-title) {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
align-items: center;
|
||||
|
@@ -1,283 +1,97 @@
|
||||
import { ref } from 'vue';
|
||||
import { http } from '/nerv-lib/util';
|
||||
import { origanizemanage } from '/@/api/origanizemanage';
|
||||
import { carbonEmissionFactorLibrary } from '/@/api/carbonEmissionFactorLibrary';
|
||||
export const formConfig = (disabled) => {
|
||||
return ref([
|
||||
{
|
||||
field: 'fields',
|
||||
component: 'NsChildForm',
|
||||
componentProps: {
|
||||
schemas: [
|
||||
{
|
||||
label: '排放源',
|
||||
field: 'emissionSources',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
placeholder: '请输入排放源',
|
||||
maxLength: 20,
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入排放源',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
field: 'emissionType',
|
||||
label: '排放分类',
|
||||
component: 'NsCascader',
|
||||
fieldMap: ['emissionType'],
|
||||
componentProps: {
|
||||
placeholder: '请选择排放分类',
|
||||
api: carbonEmissionFactorLibrary.getCarbonFactorTree,
|
||||
fieldNames: { label: 'emissionName', value: 'id' },
|
||||
showSearch: true,
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择排放分类',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
field: 'emissionGas',
|
||||
label: '排放气体',
|
||||
component: 'NsSelect',
|
||||
componentProps: {
|
||||
allowClear: true,
|
||||
placeholder: '请选择排放气体',
|
||||
options: [
|
||||
{
|
||||
label: 'CO2',
|
||||
value: 'CO2',
|
||||
},
|
||||
{
|
||||
label: 'CO2e',
|
||||
value: 'CO2e',
|
||||
},
|
||||
{
|
||||
label: 'SF6',
|
||||
value:'SF6',
|
||||
},
|
||||
{
|
||||
label: 'CH4',
|
||||
value: 'CH4',
|
||||
},
|
||||
{
|
||||
label: 'PFCs',
|
||||
value: 'PFCs',
|
||||
},
|
||||
{
|
||||
label: 'HFCs',
|
||||
value: 'HFCs',
|
||||
},
|
||||
],
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择排放气体',
|
||||
},
|
||||
],
|
||||
},
|
||||
// {
|
||||
// field: 'emissionProcess',
|
||||
// label: '排放环节',
|
||||
// component: 'NsSelectApi',
|
||||
// componentProps: {
|
||||
// api: carbonEmissionFactorLibrary.getEmissionProcess,
|
||||
// params: {
|
||||
// emissionType: sessionStorage.getItem('checkedTreeNode'),
|
||||
// },
|
||||
// resultField: 'data',
|
||||
// labelField: 'emissionProcess',
|
||||
// valueField: 'emissionProcess',
|
||||
// immediate: true,
|
||||
// autoSelectFirst: false,
|
||||
// filterOption:false,
|
||||
// showSearch:true,
|
||||
// autoClearSearchValue:false
|
||||
// },
|
||||
// },
|
||||
{
|
||||
label: '排放环节',
|
||||
field: 'emissionProcess',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
placeholder: '请输入排放环节',
|
||||
maxLength: 20,
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入排放环节',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '排放因子',
|
||||
field: 'emissionFactors',
|
||||
component: 'NsInputNumber',
|
||||
componentProps: {
|
||||
placeholder: '请输入排放因子值',
|
||||
maxLength: 20,
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入排放因子值',
|
||||
trigger: 'change',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
field: 'carbonEmissionPrefix',
|
||||
label: '碳排前缀',
|
||||
component: 'NsSelect',
|
||||
componentProps: {
|
||||
disabled: true,
|
||||
allowClear: true,
|
||||
defaultValue: 't',
|
||||
placeholder: '请选择碳排前缀',
|
||||
options: [
|
||||
{
|
||||
label: 'g',
|
||||
value: 'g',
|
||||
},
|
||||
{
|
||||
label: 'kg',
|
||||
value: 'kg',
|
||||
},
|
||||
{
|
||||
label: 't',
|
||||
value: 't',
|
||||
},
|
||||
],
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择碳排前缀',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '碳排后缀',
|
||||
field: 'carbonEmissionSuffix',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
placeholder: '请输入碳排后缀',
|
||||
maxLength: 20,
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入碳排后缀',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '已引用数',
|
||||
field: 'numberOfReferences',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
defaultValue: 10,
|
||||
disabled: true,
|
||||
maxLength: 20,
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '参考文献',
|
||||
field: 'reference',
|
||||
component: 'NsTextarea',
|
||||
componentProps: {
|
||||
placeholder: '请输入参考文献',
|
||||
maxLength: 20,
|
||||
},
|
||||
},
|
||||
],
|
||||
// 填报页表头
|
||||
export const columns = [
|
||||
{
|
||||
title: '日期',
|
||||
dataIndex: 'name',
|
||||
key: 'name',
|
||||
width: 100,
|
||||
fixed: 'left',
|
||||
},
|
||||
{
|
||||
title: '消耗量',
|
||||
children: [
|
||||
{
|
||||
title: '数据来源',
|
||||
dataIndex: 'companyAddress',
|
||||
key: 'companyAddress',
|
||||
width: 200,
|
||||
},
|
||||
},
|
||||
]);
|
||||
};
|
||||
const options = ref([]);
|
||||
|
||||
const getUserPerList = (transform, params = {}) => {
|
||||
return http.post(origanizemanage.queryUserPerList, { ...params }).then((res) => {
|
||||
return res.data?.map((item) => {
|
||||
item = { ...item, ...transform(item) };
|
||||
return item;
|
||||
});
|
||||
});
|
||||
};
|
||||
export const formConfig2 = (casData: any) => {
|
||||
return ref([
|
||||
{
|
||||
field: 'information',
|
||||
component: 'NsCascader',
|
||||
componentProps: {
|
||||
placeholder: '请选择',
|
||||
displayRender: ({ labels, selectedOptions }: any) => {
|
||||
console.log(labels, selectedOptions);
|
||||
|
||||
casData.value = selectedOptions.map(({ label, value }) => {
|
||||
return { label, value };
|
||||
});
|
||||
return labels.join('/');
|
||||
},
|
||||
loadData: (selectedOptions, options) => {
|
||||
console.log(selectedOptions, options, 'selectedOptions, options');
|
||||
|
||||
const targetOption = selectedOptions[selectedOptions.length - 1];
|
||||
let transForm, params;
|
||||
// load options lazily
|
||||
if (!selectedOptions.length) {
|
||||
transForm = (data) => {
|
||||
data['label'] = data.orgName;
|
||||
data['value'] = data.orgId;
|
||||
data['isLeaf'] = false;
|
||||
data['level'] = 1;
|
||||
return data;
|
||||
};
|
||||
getUserPerList(transForm).then((res) => {
|
||||
options.value = [...res];
|
||||
});
|
||||
}
|
||||
const id = targetOption?.value;
|
||||
const level = targetOption?.level;
|
||||
if (targetOption) {
|
||||
targetOption.loading = true;
|
||||
}
|
||||
|
||||
if (level === 1) {
|
||||
transForm = (data) => {
|
||||
data['label'] = data.deptName;
|
||||
data['value'] = data.deptId;
|
||||
data['isLeaf'] = false;
|
||||
data['level'] = 2;
|
||||
return data;
|
||||
};
|
||||
params = { orgId: id };
|
||||
} else if (level === 2) {
|
||||
transForm = (data) => {
|
||||
data['label'] = data.roleName;
|
||||
data['value'] = data.roleId;
|
||||
data['level'] = 3;
|
||||
return data;
|
||||
};
|
||||
params = { deptId: id };
|
||||
}
|
||||
if (targetOption) {
|
||||
getUserPerList(transForm, { ...params }).then((res) => {
|
||||
targetOption.loading = false;
|
||||
targetOption.children = [...res];
|
||||
});
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '数值',
|
||||
dataIndex: 'companyName',
|
||||
key: 'companyName',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '碳排因子',
|
||||
children: [
|
||||
{
|
||||
title: '数据来源',
|
||||
dataIndex: 'companyAddress',
|
||||
key: 'companyAddress',
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '数值',
|
||||
dataIndex: 'companyName',
|
||||
key: 'companyName',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '排放量',
|
||||
dataIndex: 'gender',
|
||||
key: 'gender',
|
||||
width: 80,
|
||||
fixed: 'right',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
key: 'action',
|
||||
width: 80,
|
||||
fixed: 'right',
|
||||
},
|
||||
];
|
||||
// 凭证弹窗表头
|
||||
export const voucherColumns = [
|
||||
{
|
||||
title: '序号',
|
||||
customRender: (text: any) => {
|
||||
return text.index + 1;
|
||||
},
|
||||
]);
|
||||
};
|
||||
},
|
||||
{
|
||||
title: '日期',
|
||||
dataIndex: 'age',
|
||||
key: 'age',
|
||||
},
|
||||
{
|
||||
title: '文件名称',
|
||||
dataIndex: 'address',
|
||||
key: 'address 1',
|
||||
ellipsis: true,
|
||||
},
|
||||
];
|
||||
// 编辑页中表头
|
||||
export const drawerColumns = [
|
||||
{
|
||||
title: '名称',
|
||||
dataIndex: 'emissionSources',
|
||||
},
|
||||
{
|
||||
title: '因子值',
|
||||
dataIndex: 'emissionFactors',
|
||||
},
|
||||
{
|
||||
title: '排放环节',
|
||||
className: 'emissionProcess',
|
||||
dataIndex: 'emissionProcess',
|
||||
},
|
||||
{
|
||||
title: '数据来源',
|
||||
className: 'dataSources',
|
||||
dataIndex: 'dataSources',
|
||||
},
|
||||
];
|
File diff suppressed because it is too large
Load Diff
@@ -61,8 +61,8 @@
|
||||
return http.post(api, params);
|
||||
};
|
||||
// 判断展示哪个页面
|
||||
const isMainPage = ref(true);
|
||||
const fillInPage = ref(false);
|
||||
const isMainPage = ref(false);
|
||||
const fillInPage = ref(true);
|
||||
// 新增相关数据
|
||||
const visible = ref(false);
|
||||
const formState = ref({})
|
||||
|
@@ -3,8 +3,8 @@
|
||||
<div class="ns-tree-container">
|
||||
<div class="ns-tree-form">
|
||||
<div v-if="header" class="ns-tree-title">
|
||||
<ns-icon :name="header.icon" size="14" />
|
||||
<span>{{ header.title }}</span>
|
||||
<!-- <ns-icon :name="header.icon" size="14" /> -->
|
||||
<span class="ns-title-extra-box">{{ header.title }}</span>
|
||||
</div>
|
||||
<div v-if="!formConfig?.schema">
|
||||
<ns-form ref="formElRef" v-bind="formConfig" :model="formModel" @finish="formFinish" />
|
||||
@@ -155,9 +155,9 @@
|
||||
// padding-bottom: 10px;
|
||||
// border-bottom: 1px solid #e9e9e9;
|
||||
|
||||
> span {
|
||||
padding-left: 6px;
|
||||
}
|
||||
// > span {
|
||||
// padding-left: 6px;
|
||||
// }
|
||||
& ~ div {
|
||||
padding: 0 @gap !important;
|
||||
width: 100%;
|
||||
|
@@ -93,7 +93,7 @@
|
||||
"
|
||||
>{{ userName }}</span
|
||||
>
|
||||
<ns-icon class="downArrow" name="downArrow" size="20" />
|
||||
<!-- <ns-icon class="downArrow" name="downArrow" size="20" /> -->
|
||||
</div>
|
||||
|
||||
<template #overlay>
|
||||
@@ -536,9 +536,9 @@
|
||||
.action {
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background-color: @layout-header-hover;
|
||||
}
|
||||
// &:hover {
|
||||
// background-color: @layout-header-hover;
|
||||
// }
|
||||
}
|
||||
|
||||
.projectName {
|
||||
|
Reference in New Issue
Block a user