优化项目列表样式,修改系统字体
This commit is contained in:
@@ -93,7 +93,7 @@ export const getCSVDataApi = (params: any) => {
|
|||||||
};
|
};
|
||||||
// 获取文件预览地址
|
// 获取文件预览地址
|
||||||
export const getKKFileViewURLFromMinioApi = (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;
|
margin: 0;
|
||||||
border: 0;
|
border: 0;
|
||||||
box-sizing: border-box;
|
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 {
|
::-webkit-scrollbar {
|
||||||
|
|||||||
@@ -106,13 +106,20 @@ const emits = defineEmits(['update:modelValue', 'update:currentProjectBaseInfo',
|
|||||||
const addOrEditProject = async () => {
|
const addOrEditProject = async () => {
|
||||||
console.log('tableFormRef.value', tableFormRef.value);
|
console.log('tableFormRef.value', tableFormRef.value);
|
||||||
if (await tableFormRef.value.validateFun()) {
|
if (await tableFormRef.value.validateFun()) {
|
||||||
if (hasSameValue()) return;
|
|
||||||
loadingInterface.value = true;
|
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) {
|
if (!props?.projectId) {
|
||||||
await createProject();
|
await createProject(projectForm);
|
||||||
} else {
|
} else {
|
||||||
// console.log('编辑项目', projectForm);
|
// console.log('编辑项目', projectForm);
|
||||||
await editNode();
|
await editNode(projectForm);
|
||||||
emits('update:currentProjectBaseInfo', { ...tableFormRef.value.getFormDataFun() });
|
emits('update:currentProjectBaseInfo', { ...tableFormRef.value.getFormDataFun() });
|
||||||
}
|
}
|
||||||
loadingInterface.value = false;
|
loadingInterface.value = false;
|
||||||
@@ -121,30 +128,12 @@ const addOrEditProject = async () => {
|
|||||||
closeFun();
|
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);
|
// console.log('projectForm', projectForm);
|
||||||
// const memberList = projectForm.memberList.map((item: any) => {
|
// const memberList = projectForm.memberList.map((item: any) => {
|
||||||
// return JSON.parse(item);
|
// return JSON.parse(item);
|
||||||
// });
|
// });
|
||||||
console.log('projectForm', tableFormRef.value.getFormDataFun());
|
|
||||||
const projectForm = tableFormRef.value.getFormDataFun();
|
|
||||||
// if (projectForm.memberList) {
|
// if (projectForm.memberList) {
|
||||||
// projectForm.memberList = projectForm.memberList.map((item: any) => {
|
// projectForm.memberList = projectForm.memberList.map((item: any) => {
|
||||||
// return {
|
// return {
|
||||||
@@ -168,11 +157,10 @@ const createProject = async() => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const editNode = async() => {
|
const editNode = async(projectForm:any) => {
|
||||||
// const memberList = projectForm.memberList.map((item: any) => {
|
// const memberList = projectForm.memberList.map((item: any) => {
|
||||||
// return JSON.parse(item);
|
// return JSON.parse(item);
|
||||||
// });
|
// });
|
||||||
const projectForm = tableFormRef.value.getFormDataFun();
|
|
||||||
// if (projectForm.memberList) {
|
// if (projectForm.memberList) {
|
||||||
// projectForm.memberList = projectForm.memberList.map((item: any) => {
|
// projectForm.memberList = projectForm.memberList.map((item: any) => {
|
||||||
// return {
|
// return {
|
||||||
@@ -248,8 +236,8 @@ const getNodeDetailFun = async() => {
|
|||||||
for (const key in res.data) {
|
for (const key in res.data) {
|
||||||
projectInfo[key] = res.data[key];
|
projectInfo[key] = res.data[key];
|
||||||
}
|
}
|
||||||
console.log('123', { ...projectInfo, memberList: getMemberListStr(projectInfo.memberList) });
|
console.log('123', { ...projectInfo, planTime: [projectInfo.beginTime, projectInfo.endTime], memberList: getMemberListStr(projectInfo.memberList) });
|
||||||
tableFormRef.value.setFormDataFun({ ...projectInfo, 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/dist/index.css';
|
||||||
import 'element-plus/theme-chalk/dark/css-vars.css';
|
import 'element-plus/theme-chalk/dark/css-vars.css';
|
||||||
import '@/assets/styles/main.scss';
|
import '@/assets/styles/main.scss';
|
||||||
|
import '@/assets/styles/common.scss';
|
||||||
import VxeUIAll from 'vxe-pc-ui';
|
import VxeUIAll from 'vxe-pc-ui';
|
||||||
import 'vxe-pc-ui/es/style.css';
|
import 'vxe-pc-ui/es/style.css';
|
||||||
import VxeTable, { VxeUI } from 'vxe-table';
|
import VxeTable, { VxeUI } from 'vxe-table';
|
||||||
|
|||||||
@@ -100,6 +100,7 @@ onMounted(() => {
|
|||||||
.el-tabs__item {
|
.el-tabs__item {
|
||||||
// width: 200px;
|
// width: 200px;
|
||||||
padding: 0 60px;
|
padding: 0 60px;
|
||||||
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -132,8 +132,13 @@ const updatePhaseUuid = async (value: string) => {
|
|||||||
tableLoading.value = false;
|
tableLoading.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const treeTableRef = ref();
|
||||||
|
|
||||||
const getTaskTreeList = async () => {
|
const getTaskTreeList = async () => {
|
||||||
tableList.value = await getTaskTreeFun(props.projectUuid, phaseUuid.value);
|
tableList.value = await getTaskTreeFun(props.projectUuid, phaseUuid.value);
|
||||||
|
setTimeout(() => {
|
||||||
|
treeTableRef.value.loadcaseTableRef.TreeTableRef.treeTableRef.setAllTreeExpand(true);
|
||||||
|
}, 200);
|
||||||
};
|
};
|
||||||
|
|
||||||
const phaseListOptions = ref<any[]>([]);
|
const phaseListOptions = ref<any[]>([]);
|
||||||
|
|||||||
@@ -21,40 +21,6 @@
|
|||||||
<span class="title">{{ project.nodeName }}</span>
|
<span class="title">{{ project.nodeName }}</span>
|
||||||
<span class="status">{{ PROJECT_EXE_STATUS.O[project.exeStatus ] }}</span>
|
<span class="status">{{ PROJECT_EXE_STATUS.O[project.exeStatus ] }}</span>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -75,6 +41,18 @@
|
|||||||
{{ row?.creatorObj?.nickname }}
|
{{ row?.creatorObj?.nickname }}
|
||||||
</template>
|
</template>
|
||||||
<template #exeStatus="{row}">
|
<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] }}
|
{{ PROJECT_EXE_STATUS.O[row.exeStatus] }}
|
||||||
</template>
|
</template>
|
||||||
<template #memberList="{row}">
|
<template #memberList="{row}">
|
||||||
@@ -112,6 +90,7 @@ import { disposeMemberList } from '../projectDetail/components/project';
|
|||||||
import { useDict } from '@/utils/useDict';
|
import { useDict } from '@/utils/useDict';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import ProjectDetail from '../projectDetail/index.vue';
|
import ProjectDetail from '../projectDetail/index.vue';
|
||||||
|
import { PROJECT_EXE_STATUS_CODE } from '@/utils/enum/project';
|
||||||
|
|
||||||
export interface IUserInfo {
|
export interface IUserInfo {
|
||||||
id: number;
|
id: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user