优化项目列表样式,修改系统字体
This commit is contained in:
@@ -93,7 +93,7 @@ export const getCSVDataApi = (params: any) => {
|
||||
};
|
||||
// 获取文件预览地址
|
||||
export const getKKFileViewURLFromMinioApi = (params: any) => {
|
||||
return get(`${PREFIX}getKKFileViewURLFromMinio`, params);
|
||||
return get(`${PREFIX}data/getKKFileViewURLFromMinio`, params);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
33
src/assets/styles/common.scss
Normal file
33
src/assets/styles/common.scss
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
|
||||
|
||||
.dot-success {
|
||||
background-color: #00A870;
|
||||
}
|
||||
.dot-refuse {
|
||||
background-color: #E34D59;
|
||||
}
|
||||
.dot-default {
|
||||
background-color: #999999;
|
||||
}
|
||||
.dot-in-precess {
|
||||
background-color: #0366FF;
|
||||
}
|
||||
.dot-approving {
|
||||
background-color: #FF7D00;
|
||||
}
|
||||
.dot {
|
||||
/* 1. 设为内联块,才能设置宽高 */
|
||||
display: inline-block;
|
||||
/* 2. 宽高相等,控制圆点大小 */
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
/* 3. 圆角 50% 变成圆形 */
|
||||
border-radius: 50%;
|
||||
/* 4. 背景色(根据需求调整) */
|
||||
// background-color: #42b983;
|
||||
/* 可选:间距调整(与文字对齐) */
|
||||
// margin: 0 4px;
|
||||
margin-right: var(--margin-small);
|
||||
vertical-align: middle;
|
||||
}
|
||||
@@ -5,7 +5,8 @@
|
||||
margin: 0;
|
||||
border: 0;
|
||||
box-sizing: border-box;
|
||||
font-family: Inter, Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, 微软雅黑, Arial, sans-serif;
|
||||
// font-family: Regular, -apple-system, BlinkMacSystemFont, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif;
|
||||
font-family: Regular;
|
||||
}
|
||||
/* 自定义滚动条样式 */
|
||||
::-webkit-scrollbar {
|
||||
|
||||
@@ -106,13 +106,20 @@ const emits = defineEmits(['update:modelValue', 'update:currentProjectBaseInfo',
|
||||
const addOrEditProject = async () => {
|
||||
console.log('tableFormRef.value', tableFormRef.value);
|
||||
if (await tableFormRef.value.validateFun()) {
|
||||
if (hasSameValue()) return;
|
||||
loadingInterface.value = true;
|
||||
console.log('projectForm', tableFormRef.value.getFormDataFun());
|
||||
const projectForm = tableFormRef.value.getFormDataFun();
|
||||
|
||||
if (projectForm.planTime) {
|
||||
projectForm.beginTime = projectForm.planTime[0];
|
||||
projectForm.endTime = projectForm.planTime[1];
|
||||
}
|
||||
|
||||
if (!props?.projectId) {
|
||||
await createProject();
|
||||
await createProject(projectForm);
|
||||
} else {
|
||||
// console.log('编辑项目', projectForm);
|
||||
await editNode();
|
||||
await editNode(projectForm);
|
||||
emits('update:currentProjectBaseInfo', { ...tableFormRef.value.getFormDataFun() });
|
||||
}
|
||||
loadingInterface.value = false;
|
||||
@@ -121,30 +128,12 @@ const addOrEditProject = async () => {
|
||||
closeFun();
|
||||
}
|
||||
};
|
||||
const hasSameValue = () => {
|
||||
const projectForm = tableFormRef.value.getFormDataFun();
|
||||
for (let index = 0; index < props.nodeLevel1List.length; index++) {
|
||||
if ( props.nodeLevel1List[index].id !== projectForm.id) {
|
||||
if (props.nodeLevel1List[index].nodeName === projectForm.nodeName) {
|
||||
ElMessage.error('项目名称有重复!');
|
||||
return true;
|
||||
}
|
||||
if (props.nodeLevel1List[index].nodeCode === projectForm.nodeCode) {
|
||||
ElMessage.error('项目编码有重复!');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
const createProject = async() => {
|
||||
const createProject = async(projectForm:any) => {
|
||||
// console.log('projectForm', projectForm);
|
||||
// const memberList = projectForm.memberList.map((item: any) => {
|
||||
// return JSON.parse(item);
|
||||
// });
|
||||
console.log('projectForm', tableFormRef.value.getFormDataFun());
|
||||
const projectForm = tableFormRef.value.getFormDataFun();
|
||||
// if (projectForm.memberList) {
|
||||
// projectForm.memberList = projectForm.memberList.map((item: any) => {
|
||||
// return {
|
||||
@@ -168,11 +157,10 @@ const createProject = async() => {
|
||||
}
|
||||
};
|
||||
|
||||
const editNode = async() => {
|
||||
const editNode = async(projectForm:any) => {
|
||||
// const memberList = projectForm.memberList.map((item: any) => {
|
||||
// return JSON.parse(item);
|
||||
// });
|
||||
const projectForm = tableFormRef.value.getFormDataFun();
|
||||
// if (projectForm.memberList) {
|
||||
// projectForm.memberList = projectForm.memberList.map((item: any) => {
|
||||
// return {
|
||||
@@ -248,8 +236,8 @@ const getNodeDetailFun = async() => {
|
||||
for (const key in res.data) {
|
||||
projectInfo[key] = res.data[key];
|
||||
}
|
||||
console.log('123', { ...projectInfo, memberList: getMemberListStr(projectInfo.memberList) });
|
||||
tableFormRef.value.setFormDataFun({ ...projectInfo, memberList: getMemberListStr(projectInfo.memberList) });
|
||||
console.log('123', { ...projectInfo, planTime: [projectInfo.beginTime, projectInfo.endTime], memberList: getMemberListStr(projectInfo.memberList) });
|
||||
tableFormRef.value.setFormDataFun({ ...projectInfo, planTime: [projectInfo.beginTime, projectInfo.endTime], memberList: getMemberListStr(projectInfo.memberList) });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import * as ElementPlusIconsVue from '@element-plus/icons-vue';
|
||||
import 'element-plus/dist/index.css';
|
||||
import 'element-plus/theme-chalk/dark/css-vars.css';
|
||||
import '@/assets/styles/main.scss';
|
||||
import '@/assets/styles/common.scss';
|
||||
import VxeUIAll from 'vxe-pc-ui';
|
||||
import 'vxe-pc-ui/es/style.css';
|
||||
import VxeTable, { VxeUI } from 'vxe-table';
|
||||
|
||||
@@ -100,6 +100,7 @@ onMounted(() => {
|
||||
.el-tabs__item {
|
||||
// width: 200px;
|
||||
padding: 0 60px;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -132,8 +132,13 @@ const updatePhaseUuid = async (value: string) => {
|
||||
tableLoading.value = false;
|
||||
};
|
||||
|
||||
const treeTableRef = ref();
|
||||
|
||||
const getTaskTreeList = async () => {
|
||||
tableList.value = await getTaskTreeFun(props.projectUuid, phaseUuid.value);
|
||||
setTimeout(() => {
|
||||
treeTableRef.value.loadcaseTableRef.TreeTableRef.treeTableRef.setAllTreeExpand(true);
|
||||
}, 200);
|
||||
};
|
||||
|
||||
const phaseListOptions = ref<any[]>([]);
|
||||
|
||||
@@ -21,40 +21,6 @@
|
||||
<span class="title">{{ project.nodeName }}</span>
|
||||
<span class="status">{{ PROJECT_EXE_STATUS.O[project.exeStatus ] }}</span>
|
||||
</div>
|
||||
<!-- <div class="card-header">
|
||||
<img class="project-icon" src="@/assets/imgs/projectTree/project-icon.png" alt="">
|
||||
<div class="title-section">
|
||||
<div class="project-title">{{ project.nodeName }}</div>
|
||||
<div class="project-manager">{{ disposeMemberList(project) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="project-info">
|
||||
<div class="info-row">
|
||||
<span class="info-label">状态</span>
|
||||
<span class="info-value">
|
||||
<span :class="['status-badge', 'status-' + (project.exeStatus?'':'no-start')]">
|
||||
{{ PROJECT_EXE_STATUS.O[project.exeStatus ] }}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="date-row">
|
||||
<span>{{ project.beginTime }}</span>
|
||||
<span>至</span>
|
||||
<span>{{ project.endTime }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="progress-section">
|
||||
<div class="progress-header">
|
||||
<span class="progress-label">时间进度</span>
|
||||
<span class="progress-value">{{ project.progress }}%</span>
|
||||
</div>
|
||||
<div class="progress-bar">
|
||||
<div class="progress-fill" :style="{ width: project.progress + '%' }"></div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -75,6 +41,18 @@
|
||||
{{ row?.creatorObj?.nickname }}
|
||||
</template>
|
||||
<template #exeStatus="{row}">
|
||||
<span
|
||||
:class="row.exeStatus === PROJECT_EXE_STATUS_CODE.NOT_STARTED?
|
||||
'dot dot-default':
|
||||
row.exeStatus === PROJECT_EXE_STATUS_CODE.IN_PROGRESS?
|
||||
'dot dot-in-precess':
|
||||
row.exeStatus === PROJECT_EXE_STATUS_CODE.COMPLETED?
|
||||
'dot dot-success':
|
||||
row.exeStatus === PROJECT_EXE_STATUS_CODE.PAUSED?
|
||||
'dot dot-approving':
|
||||
row.exeStatus === PROJECT_EXE_STATUS_CODE.POSTPONED?
|
||||
'dot dot-refuse':'dot dot-default'"
|
||||
>.</span>
|
||||
{{ PROJECT_EXE_STATUS.O[row.exeStatus] }}
|
||||
</template>
|
||||
<template #memberList="{row}">
|
||||
@@ -112,6 +90,7 @@ import { disposeMemberList } from '../projectDetail/components/project';
|
||||
import { useDict } from '@/utils/useDict';
|
||||
import dayjs from 'dayjs';
|
||||
import ProjectDetail from '../projectDetail/index.vue';
|
||||
import { PROJECT_EXE_STATUS_CODE } from '@/utils/enum/project';
|
||||
|
||||
export interface IUserInfo {
|
||||
id: number;
|
||||
|
||||
Reference in New Issue
Block a user