PT PC端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

114 lines
2.2 KiB

<template>
<div class="relative">
<Calendar @changeTime="changeTime" />
<PlusCircleFilled class="upload-btn absolute cursor-pointer" :style="{ fontSize: 42 + 'px', color: '#1890FF' }" @click="showModal" />
<a-modal v-model:visible="visible" title="新建课题" @ok="handleOk">
<p>是否新建课题</p>
</a-modal>
<Projects />
<!-- ref="projectsRef" -->
</div>
</template>
<script setup>
import { ref } from 'vue';
import { useStore } from 'vuex';
// import dayjs from 'dayjs';
import { PlusCircleFilled } from '@ant-design/icons-vue';
import { create } from 'apis';
import { message } from 'ant-design-vue';
import Calendar from './Calendar.vue';
import Projects from './Projects.vue';
// import { importWbs } from 'apis';
const store = useStore();
const visible = ref(false);
// const projectsRef = ref(null);
const showModal = () => {
visible.value = true;
};
const handleOk = async () => {
visible.value = false;
await createExperiment();
};
// 新建课题
async function createExperiment() {
try {
const data = await create();
const obj = {
id: data.projectId,
name: data.projectName,
};
store.commit('projects/setProject', obj);
// store.commit('task/setTaskDetail', null);
store.commit('layout/setRefreshProjects');
return data;
} catch (error) {
message.info(error);
throw new Error(error);
}
}
function changeTime(data) {
store.commit('layout/setSelectTime', data);
}
</script>
<script>
export default { name: 'LeftIndex' };
</script>
<style scoped>
.upload-btn {
left: 250px;
top: 310px;
z-index: 999;
}
.upload-card {
left: 250px;
top: 352px;
-moz-box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.16);
-webkit-box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.16);
box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.16);
width: 296px;
z-index: 999;
border-radius: 8px;
background: #fff;
}
.model-list {
padding: 16px;
}
.model-name {
height: 32px;
line-height: 32px;
}
.upload-box {
padding: 16px;
border-top: 1px solid #cccccc;
}
.btn-file {
top: 16px;
left: 16px;
width: 264px;
height: 38px;
opacity: 0;
}
.upload-box .ant-btn-primary {
width: 100%;
height: 38px;
border-radius: 6px;
font-size: 16px;
}
</style>