Browse Source

feat: "项目进展"

master
xuesinan 4 years ago
parent
commit
4e40c2f42d
  1. 152
      src/components/tall/task/CheckSubjectProgress.vue
  2. 1
      src/components/tall/top/TopNavbar.vue
  3. 31
      src/views/detail/Test.vue
  4. 2
      src/views/user/SignIn.vue
  5. 2
      vite.config.js

152
src/components/tall/task/CheckSubjectProgress.vue

@ -1,13 +1,95 @@
<template>
<div class="task-form">11111111111111</div>
<div class="task-progress flex flex-wrap justify-between">
<div class="wrap overflow-hidden">
<a-card title="任务目标">
<div class="flex flex-wrap justify-center">
<div class="achievements border-right text-center">
<p class="num">1/6</p>
<p class="name">论文</p>
</div>
<div class="achievements border-bottom text-center">
<p class="num">1/6</p>
<p class="name">专利</p>
</div>
<div class="achievements border-top text-center">
<p class="num">1/6</p>
<p class="name">软著</p>
</div>
<div class="achievements border-left text-center">
<p class="num">1/6</p>
<p class="name">会议</p>
</div>
</div>
</a-card>
</div>
<div class="wrap overflow-hidden">
<a-card title="概览">
<div class="topic">
<p>脑卒中远程康复与健康监护系统</p>
<a-progress
:percent="30"
:strokeWidth="22"
:show-info="false"
:stroke-color="'#1890FF'"
:trail-color="'rgba(24, 144, 255, 0.2)'"
/>
</div>
<div class="sub-topic">
<div class="topic">
<p>穿戴式运动捕获单元</p>
<a-progress
:percent="30"
:strokeWidth="22"
:show-info="false"
:stroke-color="colorList[0].color"
:trail-color="colorList[0].bgColor"
/>
</div>
<div class="topic">
<p>穿戴式康复数据手套</p>
<a-progress
:percent="30"
:strokeWidth="22"
:show-info="false"
:stroke-color="colorList[1].color"
:trail-color="colorList[1].bgColor"
/>
</div>
</div>
</a-card>
</div>
<div class="wrap overflow-hidden">
<a-card title="穿戴式运动捕获单元">
<p>card content</p>
<p>card content</p>
<p>card content</p>
</a-card>
</div>
<div class="wrap overflow-hidden">
<a-card title="穿戴式康复数据手套">
<p>card content</p>
<p>card content</p>
<p>card content</p>
</a-card>
</div>
</div>
</template>
<script setup>
// import { computed, watch, ref } from 'vue';
import { ref } from 'vue';
// import { useStore } from 'vuex';
// const store = useStore();
const colorList = ref([
{ color: '#FF9191', bgColor: 'rgba(255, 145, 145, 0.2)' },
{ color: '#FF934B', bgColor: 'rgba(255, 147, 75, 0.2)' },
]);
// const signInFormRef = ref(null);
// const signInForm = ref({
// username: '',
@ -32,4 +114,70 @@
// });
</script>
<style scoped></style>
<style scoped>
.wrap {
margin-top: 16px;
width: calc((100% - 16px) / 2);
background-color: #fff;
border-radius: 10px;
border: 1px solid #cccccc;
}
.wrap:nth-child(-n + 2) {
margin-top: 0;
}
:deep(.ant-card-head) {
padding: 0 16px;
min-height: 45px;
max-height: 45px;
border-color: #cccccc;
font-size: 14px;
}
:deep(.ant-card-head-title) {
padding: 0;
line-height: 45px;
}
.wrap .num {
font-size: 22px;
color: #4b8aff;
}
.wrap .name {
color: #666666;
}
.wrap p {
margin: 0;
}
.border-right {
border-right: 1px solid #cccccc;
margin-right: -1px;
}
.border-left {
border-left: 1px solid #cccccc;
}
.border-top {
border-top: 1px solid #cccccc;
margin-top: -1px;
}
.border-bottom {
border-bottom: 1px solid #cccccc;
}
.achievements {
width: 40%;
padding: 25px 0;
}
.topic p {
margin-bottom: 8px;
color: #666666;
}
</style>

1
src/components/tall/top/TopNavbar.vue

@ -65,6 +65,7 @@ h1 span {
width: 150px;
text-align: center;
box-shadow: 0px 0 6px 0px rgba(0, 0, 0, 0.3);
background-color: #fff;
}
.user-info:hover .user-action {

31
src/views/detail/Test.vue

@ -4,10 +4,10 @@
{{ taskInfo.name }}
<!-- 查看课题进展 -->
<CheckSubjectProgress v-if="taskInfo.id === '1462039176656457728'" />
<CheckSubjectProgress v-if="label === 'KT_KTJZ'" />
<!-- 科研会议管理 -->
<MeetingManagement v-if="taskInfo.id === '1462039176748732416'" />
<MeetingManagement v-if="label === 'KT_KYHY'" />
</div>
</div>
</template>
@ -20,17 +20,29 @@ import MeetingManagement from 'components/tall/task/MeetingManagement.vue';
const store = useStore();
const taskDetail = computed(() => store.state.task.taskDetail); //
const taskInfo = ref({});
const taskObj = ref({});
const label = ref(null);
const sessionTaskDetail = sessionStorage.getItem('taskDetail');
// const sessionTaskId = sessionStorage.getItem('taskId');
if (sessionTaskDetail) {
taskInfo.value = JSON.parse(sessionTaskDetail);
taskObj.value = JSON.parse(sessionTaskDetail);
const taskInfo = JSON.parse(sessionTaskDetail);
taskInfo.plugins[0].forEach((item, index) => {
if (index === 0) {
label.value = item.param;
}
});
}
// console.log('sessionTaskDetail', taskInfo.value, sessionTaskId)
//
watch(taskDetail, () => {
taskInfo.value = taskDetail.value;
taskObj.value = taskDetail.value;
const taskInfo = taskDetail.value;
taskInfo.plugins[0].forEach((item, index) => {
if (index === 0) {
label.value = item.param;
}
});
});
</script>
@ -43,10 +55,7 @@ watch(taskDetail, () => {
.task-con {
width: 100%;
height: 500px;
min-height: 500px;
max-height: 100%;
background-color: #fff;
border-radius: 10px;
border: 1px solid #cccccc;
}
</style>

2
src/views/user/SignIn.vue

@ -74,7 +74,7 @@ function handleSingIn() {
console.log('登录成功, 欢迎回来');
setTimeout(() => {
//
router.push({ path: '/' });
router.push({ path: '/home' });
}, 1000);
} catch (error) {
throw new Error(error);

2
vite.config.js

@ -11,7 +11,7 @@ const resolve = dir => path.join(__dirname, dir);
// https://vitejs.dev/config/
export default defineConfig({
base: '/',
base: '/experiment',
plugins: [vue(), VitePWA(), WindiCSS(), Components({ resolvers: [AntDesignVueResolver()] }), viteCompression()],
resolve: {
alias: {

Loading…
Cancel
Save