Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp
This commit is contained in:
@@ -3,14 +3,19 @@ import { permission } from '/@/api/origanizemanage';
|
||||
import { appConfigStore } from '/nerv-lib/saas/store/modules/app-config';
|
||||
import { authorizationService } from '/nerv-base/store/modules/authorization-service';
|
||||
import { get } from 'lodash-es';
|
||||
import { computed, ref, toRef } from 'vue';
|
||||
import { computed, ref, toRef} from 'vue';
|
||||
|
||||
const ORGID = sessionStorage.getItem('ORGID') ? Number(sessionStorage.getItem('ORGID')) : '';
|
||||
const isAdmin = sessionStorage.getItem('ISADMIN')
|
||||
? Boolean(sessionStorage.getItem('ISADMIN'))
|
||||
: false;
|
||||
const selectDefaultValue = ref(ORGID);
|
||||
const selectDefaultDisabled = ref(isAdmin);
|
||||
import { router } from '/nerv-lib/saas/router';
|
||||
import { replyRoutesButton } from '/@/util/dynamicRoutes';
|
||||
import { replyDynamRoutesPath } from '/nerv-lib/util/dynamicRoutesss';
|
||||
import { useTags } from '/nerv-base/store/modules/tags';
|
||||
|
||||
const ROLEID = sessionStorage.getItem('ROLEID') ? Number(sessionStorage.getItem('ROLEID')) : '';
|
||||
// const isAdmin = sessionStorage.getItem('ISADMIN')
|
||||
// ? Boolean(sessionStorage.getItem('ISADMIN'))
|
||||
// : false;
|
||||
const selectDefaultValue = ref(ROLEID);
|
||||
// const selectDefaultDisabled = ref(isAdmin);
|
||||
const transform = (data, map) => {
|
||||
return Object.keys(map).reduce((pre, cur) => {
|
||||
pre[cur] = data[map[cur]];
|
||||
@@ -46,22 +51,25 @@ export const appConfig = {
|
||||
api: '/carbon-smart/user/login/logInInfo',
|
||||
size: 'large',
|
||||
defaultValue: selectDefaultValue,
|
||||
disabled: selectDefaultDisabled,
|
||||
disabled:false,
|
||||
// disabled: selectDefaultDisabled,
|
||||
// autoSelectFirst: true,
|
||||
placeholder: '请选择',
|
||||
onSelect: async (cur, record) => {
|
||||
console.log(cur, record);
|
||||
onSelect: async (cur:any, record:any) => {
|
||||
const configStore = appConfigStore();
|
||||
const useAuthorization = authorizationService();
|
||||
sessionStorage.setItem('ORGID', record.orgId);
|
||||
sessionStorage.setItem('ROLEID', record.roleId);
|
||||
const res = await configStore.userResource({ data: record });
|
||||
useAuthorization.updateUserResource(res.data);
|
||||
window.location.reload();
|
||||
setTimeout(() => {
|
||||
window.location.reload();
|
||||
}, 200);
|
||||
// value.value = cur;
|
||||
},
|
||||
resultField: 'data.linkList',
|
||||
resultField: 'data.userRoles',
|
||||
labelField: 'orgName',
|
||||
valueField: 'orgId',
|
||||
valueField: 'roleId',
|
||||
immediate: true,
|
||||
dropdownReload: true,
|
||||
},
|
||||
@@ -71,15 +79,33 @@ export const appConfig = {
|
||||
return http.post('/carbon-smart/user/login', { ...params });
|
||||
},
|
||||
userResourceApi: (params) => {
|
||||
const { orgId } = get(params, 'data') || { orgId: '' };
|
||||
const finalId = orgId || ORGID;
|
||||
const { roleId } = get(params, 'data') || { roleId: '' };
|
||||
const finalId = roleId || ROLEID;
|
||||
// 解决初始化登录select无初始值的问题
|
||||
selectDefaultValue.value = finalId;
|
||||
|
||||
const userInfo = JSON.parse(sessionStorage.getItem(import.meta.env.VITE_PUBLIC_PATH)!);
|
||||
const ownOrgInfo = userInfo.linkList?.filter(({ orgId: id }) => id === finalId)[0];
|
||||
|
||||
return http.post('/carbon-smart/user/login/logInPermission', ownOrgInfo).then((res) => {
|
||||
// const userInfo = JSON.parse(sessionStorage.getItem(import.meta.env.VITE_PUBLIC_PATH)!);
|
||||
// const ownOrgInfo = userInfo.userRoles?.filter(({ roleId: id }) => id === finalId)[0];
|
||||
// return http.post('/carbon-smart/user/login/logInPermission', ownOrgInfo).then((res) => {
|
||||
// return res;
|
||||
// });
|
||||
// 切换角色时获取新的权限菜单
|
||||
return http.post('/carbon-smart/user/login/role/permission/'+finalId).then((res) => {
|
||||
//切换后重新处理动态菜单数据
|
||||
let resetDynamicRouteList = replyRoutesButton(res.data);
|
||||
sessionStorage.setItem("dynamicRouteList",JSON.stringify(resetDynamicRouteList));
|
||||
if(resetDynamicRouteList && resetDynamicRouteList.length>0){
|
||||
let addDynamicRoutes = replyDynamRoutesPath(resetDynamicRouteList);
|
||||
addDynamicRoutes.forEach(item => {
|
||||
if (item.children && !item.component) {
|
||||
item.component = () => import('/nerv-lib/saas/view/system/application.vue');//hx-ai-intelligent项目下的首页
|
||||
}
|
||||
router.addRoute(item);
|
||||
})
|
||||
}
|
||||
//删除所有已经打开的tag标签
|
||||
useTags().clearTags();
|
||||
router.replace({ name: 'home' });
|
||||
return res;
|
||||
});
|
||||
},
|
||||
@@ -96,16 +122,25 @@ export const appConfig = {
|
||||
linkList: 'linkList',
|
||||
permissionVos: 'permissionVos',
|
||||
adminFlag: 'adminFlag',
|
||||
userRoles:'userRoles',
|
||||
});
|
||||
sessionStorage.setItem('ORGID', info.orgId);
|
||||
sessionStorage.setItem('LINKLIST', JSON.stringify(info.linkList));
|
||||
sessionStorage.setItem('ISADMIN', trD?.adminFlag === '1');
|
||||
selectDefaultDisabled.value = info?.adminFlag === '1';
|
||||
selectDefaultValue.value = info.orgId;
|
||||
return { data: { ...trD } };
|
||||
});
|
||||
// 头部“企业角色”切换暂不需要以下屏蔽的两个参数
|
||||
// sessionStorage.setItem('ISADMIN', trD?.adminFlag === '1');
|
||||
// selectDefaultDisabled.value = info?.adminFlag === '1';
|
||||
if(info.userRoles && info.userRoles.length>0){
|
||||
sessionStorage.setItem('ROLEID', info.userRoles[0].roleId);
|
||||
sessionStorage.setItem('USERROLES', JSON.stringify(info.userRoles));
|
||||
selectDefaultValue.value = info.userRoles[0].roleId;
|
||||
//路由接口数据暂时组装
|
||||
let getRoutesList = replyRoutesButton(info.userRoles[0].routes);
|
||||
sessionStorage.setItem("dynamicRouteList",JSON.stringify(getRoutesList))
|
||||
sessionStorage.setItem("isRefrech",'1')
|
||||
}
|
||||
return { data: { ...trD } };
|
||||
});
|
||||
},
|
||||
|
||||
useHistoryTag: false,
|
||||
// 修改密码配置
|
||||
updatePassWordInfo: {
|
||||
|
44
hx-ai-intelligent/src/router/dynamicRoute.ts
Normal file
44
hx-ai-intelligent/src/router/dynamicRoute.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
const sessionStoreRoute = sessionStorage.getItem("dynamicRouteList");
|
||||
let getDynamicRouteList = sessionStoreRoute?JSON.parse(sessionStoreRoute):[];
|
||||
let dynamicRoute:any = [];
|
||||
// getDynamicRouteList.map(itemRouter => {
|
||||
// if(itemRouter.children && itemRouter.children.length > 0){
|
||||
// itemRouter.children.map(childRoute => {
|
||||
// let modulePath0 = childRoute.component;
|
||||
// childRoute.component = () => new Function(`return import('/nerv-lib/saas/view/${modulePath0}')`)();///nerv-lib/saas/view/
|
||||
// if(childRoute.children && childRoute.children.length > 0){
|
||||
// childRoute.children.map(child2=>{
|
||||
// let modulePath = child2.component;
|
||||
// child2.component = () => new Function(`return import('/@/view/${modulePath}')`)();///@/view/
|
||||
// })
|
||||
// }else{//如没有下一级菜单代表是一级,重新处理一级菜单路由
|
||||
// childRoute.component = () => new Function(`return import('/@/view/${modulePath0}')`)();
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// dynamicRoute.push(itemRouter)
|
||||
// })
|
||||
getDynamicRouteList.forEach(itemRouter => {
|
||||
if (itemRouter.children && itemRouter.children.length > 0) {
|
||||
itemRouter.children.forEach(childRoute => {
|
||||
const modulePath0 = childRoute.component;
|
||||
// 修改 component 属性
|
||||
// childRoute.component = () => import(`/nerv-lib/saas/view/${modulePath0}`).then(mod => mod.default);
|
||||
childRoute.component = () => new Function(`return import('/nerv-lib/saas/view/${modulePath0}')`)();
|
||||
|
||||
if (childRoute.children && childRoute.children.length > 0) {
|
||||
childRoute.children.forEach(child2 => {
|
||||
const modulePath = child2.component;
|
||||
// 修改 component 属性
|
||||
// child2.component = /* @vite-ignore */ () => import(`/@/view/${modulePath}`).then(mod => mod.default);
|
||||
child2.component = () => new Function(`return import('/@/view/${modulePath}')`)();
|
||||
});
|
||||
} else { // 如果没有下一级菜单代表是一级,重新处理一级菜单路由
|
||||
// childRoute.component = /* @vite-ignore */ () => import(`/@/view/${modulePath0}`).then(mod => mod.default);
|
||||
childRoute.component = () => new Function(`return import('/@/view/${modulePath0}')`)();
|
||||
}
|
||||
});
|
||||
}
|
||||
dynamicRoute.push(itemRouter);
|
||||
});
|
||||
export default dynamicRoute;
|
98
hx-ai-intelligent/src/util/dynamicRoutes.ts
Normal file
98
hx-ai-intelligent/src/util/dynamicRoutes.ts
Normal file
@@ -0,0 +1,98 @@
|
||||
/***公共方法==>处理动态路由数据 将“按钮”部分的数据追加到meta中*/
|
||||
//处理路由按钮,存放在meta中
|
||||
export const replyRoutesButton = (data:any) => {
|
||||
if(!data) return;
|
||||
return data.map(item => {
|
||||
if(item.children && item.children.length > 0){
|
||||
item.meta.operates = [];
|
||||
item.children.map(itemChild => {
|
||||
if(itemChild.type=="3"){
|
||||
let operateObj = {title:'',code:''};
|
||||
operateObj.title = itemChild.meta.title;
|
||||
operateObj.code = itemChild.name;
|
||||
item.meta.operates.push(operateObj);
|
||||
item.children = item.children.filter(its => its.name != itemChild.name);
|
||||
}
|
||||
})
|
||||
if(item.meta.operates.length == 0){
|
||||
delete item.meta.operates;
|
||||
}
|
||||
return {
|
||||
...item,
|
||||
children: replyRoutesButton(item.children),
|
||||
};
|
||||
}
|
||||
|
||||
return item;
|
||||
});
|
||||
};
|
||||
// //处理路由compontent路径
|
||||
// export const replyRoutesPath = (itemRouter:any) => {
|
||||
// if (itemRouter.children && itemRouter.children.length > 0) {
|
||||
// itemRouter.children.forEach(childRoute => {
|
||||
// const modulePath0 = childRoute.component;
|
||||
// // 修改 component 属性
|
||||
// // childRoute.component = () => import(`/nerv-lib/saas/view/${modulePath0}`).then(mod => mod.default);
|
||||
// childRoute.component = () => new Function(`return import('/nerv-lib/saas/view/${modulePath0}')`)();
|
||||
|
||||
// if (childRoute.children && childRoute.children.length > 0) {
|
||||
// childRoute.children.forEach(child2 => {
|
||||
// const modulePath = child2.component;
|
||||
// // 修改 component 属性
|
||||
// // child2.component = /* @vite-ignore */ () => import(`/@/view/${modulePath}`).then(mod => mod.default);
|
||||
// child2.component = () => new Function(`return import('/@/view/${modulePath}')`)();
|
||||
// });
|
||||
// } else { // 如果没有下一级菜单代表是一级,重新处理一级菜单路由
|
||||
// // childRoute.component = /* @vite-ignore */ () => import(`/@/view/${modulePath0}`).then(mod => mod.default);
|
||||
// childRoute.component = () => new Function(`return import('/@/view/${modulePath0}')`)();
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// return itemRouter;
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -48,7 +48,7 @@
|
||||
</a-form>
|
||||
</a-card>
|
||||
</div>
|
||||
<div style="display: flex; margin-top: 20px; height: calc(84% - 20px)">
|
||||
<div style="display: flex; margin-top: 20px; height: calc(85% - 20px)">
|
||||
<div class="detailTable">
|
||||
<ns-view-list-table v-bind="tableConfig" :model="data" ref="mainRef" :scroll="{ x: 1280 }">
|
||||
<template #bodyCell="{ column, text, record }">
|
||||
@@ -523,6 +523,7 @@
|
||||
{
|
||||
title: '更新时间',
|
||||
width: 150,
|
||||
ellipsis: true,
|
||||
dataIndex: 'updateTime',
|
||||
},
|
||||
],
|
||||
@@ -826,7 +827,7 @@
|
||||
padding: 16px;
|
||||
}
|
||||
.search {
|
||||
height: 16%;
|
||||
height: 15%;
|
||||
}
|
||||
.detailTable {
|
||||
width: 70%;
|
||||
|
@@ -13,6 +13,9 @@
|
||||
<a-button type="primary" ghost style="margin-left: 6px" @click="reset">重置</a-button>
|
||||
</span>
|
||||
</template>
|
||||
<template #bodyCell="{ column, text }">
|
||||
<span>{{ text || '-' }}</span>
|
||||
</template>
|
||||
</a-table>
|
||||
<!-- <a-pagination
|
||||
:current="queryParams.pageNum"
|
||||
|
@@ -146,7 +146,7 @@ export const drawerColumns = [
|
||||
dataIndex: 'dataSources',
|
||||
},
|
||||
];
|
||||
export const setFactorConfig = (orgId) => {
|
||||
export const setFactorConfig = (orgId, treeId, tableId) => {
|
||||
return ref({
|
||||
api: carbonEmissionFactorLibrary.getTableList,
|
||||
params: { orgId, pageNum: 1, pageSize: 9999, emissionList: [0] },
|
||||
@@ -155,7 +155,8 @@ export const setFactorConfig = (orgId) => {
|
||||
icon: 'deviceType',
|
||||
title: '排放分类',
|
||||
},
|
||||
params: { orgId},
|
||||
selectedKeys: treeId,
|
||||
params: { orgId },
|
||||
dynamicParams: { emissionList: 'id[]' },
|
||||
defaultExpandAll: true,
|
||||
// checkable:true,
|
||||
@@ -175,7 +176,10 @@ export const setFactorConfig = (orgId) => {
|
||||
],
|
||||
},
|
||||
},
|
||||
rowSelection: { type: 'radio' },
|
||||
rowSelection: {
|
||||
type: 'radio',
|
||||
selectedRowKeys: tableId,
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
title: '序号',
|
||||
|
@@ -297,9 +297,7 @@
|
||||
indexName: '能源种类', // 匹配类型字段
|
||||
message: [
|
||||
{ label: '1、若必填项未填写,则不能进行导入操作' },
|
||||
{ label: `2、当重复时,则更新数据。` },
|
||||
{ label: '3、数据将从模版的第五行进行导入。' },
|
||||
{ label: '4、文件导入勿超过5MB。' },
|
||||
{ label: '2、文件导入勿超过5MB。' },
|
||||
],
|
||||
},
|
||||
},
|
||||
|
@@ -21,20 +21,22 @@
|
||||
:auto-expand-parent="autoExpandParent"
|
||||
:selectedKeys="selectedKeys"
|
||||
:tree-data="gData"
|
||||
:show-line="{ showLeafIcon: false }"
|
||||
show-line
|
||||
@expand="onExpand"
|
||||
@select="onSelect"
|
||||
style="padding: 0 16px !important">
|
||||
<template #title="data">
|
||||
<span
|
||||
<!-- <span
|
||||
v-if="data.energyType && searchValue && data.energyType.indexOf(searchValue) > -1">
|
||||
{{ data.energyType.substring(0, data.energyType.indexOf(searchValue)) }}
|
||||
<span style="color: #f50">{{ searchValue }}</span>
|
||||
{{
|
||||
data.energyType.substring(data.energyType.indexOf(searchValue) + searchValue.length)
|
||||
}}
|
||||
</span>
|
||||
<span v-else>{{ data.energyType }}</span>
|
||||
</span> -->
|
||||
<span v-if="data.code">{{ truncatedName(data.energyType + data.code) }}</span>
|
||||
<span v-else>{{ truncatedName(data.energyType) }}</span>
|
||||
</template>
|
||||
</a-tree>
|
||||
</div>
|
||||
@@ -130,8 +132,8 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, watch, toRaw, defineExpose } from 'vue';
|
||||
import type { TreeProps } from 'ant-design-vue';
|
||||
import { ref, watch, toRaw, defineExpose, nextTick } from 'vue';
|
||||
import { message, TreeProps } from 'ant-design-vue';
|
||||
import { Pagination, Modal } from 'ant-design-vue';
|
||||
import { columns, drawerColumns } from '../config';
|
||||
import { http } from '/nerv-lib/util/http';
|
||||
@@ -225,6 +227,12 @@
|
||||
expandedKeys.value = keys;
|
||||
autoExpandParent.value = false;
|
||||
};
|
||||
const truncatedName = (name) => {
|
||||
if (name.length > 8) {
|
||||
return name.substring(0, 8) + '...';
|
||||
}
|
||||
return name;
|
||||
};
|
||||
// 被选中的树节点
|
||||
const energyType = ref();
|
||||
const onSelect = (selectedKey: string[], info: any) => {
|
||||
@@ -245,16 +253,22 @@
|
||||
return null;
|
||||
})
|
||||
.filter((item, i, self) => item && self.indexOf(item) === i);
|
||||
expandedKeys.value = expanded;
|
||||
// expandedKeys.value = expanded;
|
||||
searchValue.value = value;
|
||||
autoExpandParent.value = true;
|
||||
});
|
||||
// 查询因子分类树数据
|
||||
const onSearchTreeData = () => {};
|
||||
const getTreeQuery = ref({
|
||||
orgId: orgId.value,
|
||||
});
|
||||
const onSearchTreeData = () => {
|
||||
getTreeQuery.value.energyType = searchValue.value;
|
||||
getTreeData();
|
||||
};
|
||||
const statsId = ref();
|
||||
// 获取因子分类树数据
|
||||
const getTreeData = () => {
|
||||
fetch(quickCalculation.carbonQuickTree, { orgId: orgId.value }).then((res) => {
|
||||
fetch(quickCalculation.carbonQuickTree, getTreeQuery.value).then((res) => {
|
||||
gData.value = res.data;
|
||||
energyType.value = gData.value[0].children[0].id;
|
||||
statsId.value = gData.value[0].children[0].id;
|
||||
@@ -271,9 +285,12 @@
|
||||
});
|
||||
const tableData = ref([]);
|
||||
const emissionSources = ref();
|
||||
const treeId = ref([]);
|
||||
const tableId = ref([]);
|
||||
const tableConfig = ref({
|
||||
title: '排放因子库',
|
||||
api: quickCalculation.queryCarbonEmissionPage,
|
||||
rowSelection: null,
|
||||
params: {
|
||||
orgId,
|
||||
energyType,
|
||||
@@ -306,12 +323,6 @@
|
||||
className: 'carbonEmissionSuffix',
|
||||
dataIndex: 'carbonEmissionSuffix',
|
||||
},
|
||||
{
|
||||
title: '更新时间',
|
||||
className: 'updateTime',
|
||||
dataIndex: 'updateTime',
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: '启用时间',
|
||||
className: 'startTime',
|
||||
@@ -327,6 +338,12 @@
|
||||
className: 'dataSources',
|
||||
dataIndex: 'dataSources',
|
||||
},
|
||||
{
|
||||
title: '更新时间',
|
||||
className: 'updateTime',
|
||||
dataIndex: 'updateTime',
|
||||
ellipsis: true,
|
||||
},
|
||||
],
|
||||
columnActions: {
|
||||
title: '操作',
|
||||
@@ -342,8 +359,10 @@
|
||||
formState.value.factorId = record.factorId;
|
||||
text.value = '编辑';
|
||||
visible.value = true;
|
||||
emissionSources.value = record.factorId; //todo
|
||||
queryData.value.factorId = emissionSources.value; //todo
|
||||
emissionSources.value = record.factorId;
|
||||
queryData.value.factorId = emissionSources.value;
|
||||
treeId.value = [record.treeId];
|
||||
tableId.value = [record.factorId];
|
||||
getNewTable();
|
||||
},
|
||||
},
|
||||
@@ -450,6 +469,7 @@
|
||||
selectedRowKeys.value = [];
|
||||
formState.value = {};
|
||||
formRef.value.resetFields();
|
||||
message.success('操作成功!');
|
||||
mainRef.value?.nsTableRef.reload();
|
||||
});
|
||||
} else {
|
||||
@@ -458,6 +478,7 @@
|
||||
selectedRowKeys.value = [];
|
||||
formState.value = {};
|
||||
formRef.value.resetFields();
|
||||
message.success('操作成功!');
|
||||
mainRef.value?.nsTableRef.reload();
|
||||
});
|
||||
}
|
||||
@@ -487,9 +508,15 @@
|
||||
};
|
||||
const openVisible = ref(false);
|
||||
const setFactorRef = ref();
|
||||
const config = setFactorConfig(orgId.value);
|
||||
const config = setFactorConfig(orgId.value, treeId.value, tableId.value);
|
||||
const selectFactor = () => {
|
||||
openVisible.value = true;
|
||||
nextTick(() => {
|
||||
setFactorRef.value.nsTableRef.params.emissionList = treeId.value;
|
||||
setFactorRef.value.nsTableRef.treeElRef.selectedKeys = treeId.value;
|
||||
setFactorRef.value.nsTableRef.rowSelection.selectedRowKeys = tableId.value;
|
||||
setFactorRef.value.nsTableRef.reload();
|
||||
});
|
||||
};
|
||||
const btnClick = () => {
|
||||
let selectRowKeys = setFactorRef.value?.nsTableRef.tableState.selectedRowKeys;
|
||||
@@ -624,6 +651,25 @@
|
||||
:deep(.ant-modal-footer) {
|
||||
border-top: 10px solid #f0f0f0 !important;
|
||||
}
|
||||
:deep(.ns-table-container) {
|
||||
background: white;
|
||||
}
|
||||
:deep(.ns-part-tree) {
|
||||
border-radius: 8px;
|
||||
background: rgba(255, 255, 255, 1);
|
||||
box-shadow: 0px 2px 20px rgb(69 123 234 / 20%);
|
||||
}
|
||||
:deep(.ns-table-search) {
|
||||
border-radius: 8px;
|
||||
background: rgba(255, 255, 255, 1);
|
||||
box-shadow: 0px 2px 20px rgb(69 123 234 / 20%);
|
||||
}
|
||||
:deep(.ns-table-main) {
|
||||
margin-top: 20px !important;
|
||||
border-radius: 8px;
|
||||
background: rgba(255, 255, 255, 1);
|
||||
box-shadow: 0px 2px 20px rgb(69 123 234 / 20%);
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
th.column-money,
|
||||
|
@@ -1193,11 +1193,11 @@
|
||||
return regex.test(filename);
|
||||
};
|
||||
const beforeUpload: UploadProps['beforeUpload'] = (file) => {
|
||||
const filename = file.name;
|
||||
if (!isValidFileName(filename)) {
|
||||
message.error('文件名不符合规则');
|
||||
return Upload.LIST_IGNORE; // 阻止文件上传
|
||||
}
|
||||
// const filename = file.name;
|
||||
// if (!isValidFileName(filename)) {
|
||||
// message.error('文件名不符合规则');
|
||||
// return Upload.LIST_IGNORE; // 阻止文件上传
|
||||
// }
|
||||
return false;
|
||||
};
|
||||
const handleChange = (info: UploadChangeParam) => {
|
||||
@@ -1284,14 +1284,16 @@
|
||||
NsMessage.warn('请选择因子');
|
||||
return;
|
||||
} else {
|
||||
if (newTableData.value.emissionFactorUnits === carbonEmission.value) {
|
||||
if (newTableData.value[0].emissionFactorUnits === carbonEmission.value) {
|
||||
newTableData.value = setFactorRef.value?.nsTableRef.tableState.selectedRows;
|
||||
selectedRowKeysEdit.value = setFactorRef.value?.nsTableRef.tableState.selectedRowKeys;
|
||||
editFormState.value.emissionFactors = newTableData.value[0].emissionFactors;
|
||||
editFormState.value.factorId = selectedRowKeysEdit.value[0];
|
||||
openVisible.value = false;
|
||||
} else {
|
||||
NsMessage.warn('因子值单位不统一,请重新选择!');
|
||||
NsMessage.warn(
|
||||
'因子值单位与当前因子值单位(' + carbonEmission.value + ')不统一,请重新选择!',
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@@ -39,11 +39,7 @@
|
||||
placeholder="请输入报告名称" />
|
||||
</a-form-item>
|
||||
<a-form-item ref="name" label="报告年度" name="reportYear">
|
||||
<a-date-picker
|
||||
v-model:value="formState.reportYear"
|
||||
@openChange="openChange"
|
||||
picker="year"
|
||||
valueFormat="YYYY" />
|
||||
<a-date-picker v-model:value="formState.reportYear" picker="year" valueFormat="YYYY" />
|
||||
</a-form-item>
|
||||
<a-form-item ref="name" label="适用标准" name="genericStandard">
|
||||
<a-input
|
||||
@@ -64,7 +60,6 @@
|
||||
<a-form-item ref="name" label="报告范围" name="reportScope">
|
||||
<a-range-picker
|
||||
v-model:value="formState.reportScope"
|
||||
:defaultPickerValue="defaultPickerValue"
|
||||
picker="month"
|
||||
:disabledDate="disabledDate"
|
||||
valueFormat="YYYY-MM" />
|
||||
@@ -111,20 +106,22 @@
|
||||
const selectChange = (value) => {
|
||||
formState.value.reportScope = '';
|
||||
};
|
||||
const defaultPickerValue = ref([
|
||||
dayjs('2020'), // 默认开始日期
|
||||
dayjs('2020'), // 默认结束日期
|
||||
]);
|
||||
const openChange = (status) => {
|
||||
if (status === false) {
|
||||
if (formState.value.reportYear) {
|
||||
defaultPickerValue.value = [
|
||||
dayjs(formState.value.reportYear),
|
||||
dayjs(formState.value.reportYear),
|
||||
];
|
||||
}
|
||||
}
|
||||
};
|
||||
// const defaultPickerValue = ref([]);
|
||||
// const open = ref(false);
|
||||
// const openChange = (status) => {
|
||||
// debugger;
|
||||
// open.value = status;
|
||||
// if (formState.value.reportYear) {
|
||||
// defaultPickerValue.value = [
|
||||
// dayjs(formState.value.reportYear),
|
||||
// dayjs(formState.value.reportYear),
|
||||
// ];
|
||||
// open.value = false;
|
||||
// nextTick(() => {
|
||||
// open.value = status; // 重新打开日期选择框
|
||||
// });
|
||||
// }
|
||||
// };
|
||||
// 定义form表单的必填
|
||||
const rules: Record<string, Rule[]> = {
|
||||
reportName: [{ required: true, message: '请输入报告名称', trigger: 'change' }],
|
||||
|
@@ -417,7 +417,6 @@
|
||||
const editData = (record) => {
|
||||
open.value = true;
|
||||
if (record.isLastYear !== undefined) {
|
||||
formState.value.ids = [record.id];
|
||||
if (record.lastYear === '是') {
|
||||
formState.value.isLastYear = 1;
|
||||
disabled.value = false;
|
||||
@@ -425,10 +424,12 @@
|
||||
formState.value.isLastYear = 0;
|
||||
disabled.value = true;
|
||||
}
|
||||
formState.value.conversionRate = record.conversionRate;
|
||||
formState.value.lastYearList = [record.lastYearActualUsage];
|
||||
formState.value.budget = record.budget;
|
||||
}
|
||||
formState.value.ids = [record.id];
|
||||
formState.value.conversionRate = record.conversionRate;
|
||||
formState.value.lastYearList = [record.lastYearActualUsage];
|
||||
formState.value.ids = [record.id];
|
||||
formState.value.budget = record.budget;
|
||||
};
|
||||
const disabled = ref(true);
|
||||
const selectChange = (value) => {
|
||||
@@ -995,6 +996,9 @@
|
||||
:deep(.ant-card-bordered) {
|
||||
border: unset;
|
||||
}
|
||||
:deep(.ant-input-number-handler-wrap){
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.editable-row-operations a {
|
||||
|
@@ -674,7 +674,7 @@
|
||||
}
|
||||
.contant {
|
||||
width: 100%;
|
||||
height: calc(94% - 5vh);
|
||||
height: calc(94% - 5vh - 24px);
|
||||
overflow-y: auto;
|
||||
padding: 12px;
|
||||
.chartsPart {
|
||||
|
Reference in New Issue
Block a user