Browse Source

项目概览前端

master
15920324470 5 years ago
parent
commit
e528d3641d
  1. 190
      src/views/xm/core/xmProject/XmProjectInfo.vue
  2. 578
      src/views/xm/core/xmProject/XmProjectOverview.vue

190
src/views/xm/core/xmProject/XmProjectInfo.vue

@ -1,169 +1,171 @@
<template>
<section class="page-container page-full-height">
<el-row>
<el-row>
<el-menu :default-active="infotype" mode="horizontal" @select="setInfotype" class="menus" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b">
<el-menu-item index="项目概览" >
<el-menu-item index="项目概览" >
<span slot="title" >
<span slot="title" @click.stop="goBack"><i class="el-icon-back" ></i></span>
<i class="el-icon-s-data"></i>
<font v-if="selProject.name.length>=10">{{selProject.name.substring(0,10)}}</font>
<font type="danger" v-else>{{selProject.name}}</font>
概览
</span>
</span>
</el-menu-item>
<el-menu-item index="迭代">
<el-menu-item index="迭代">
<span slot="title"><i class="el-icon-document-copy"></i>迭代</span>
</el-menu-item>
<el-menu-item index="产品">
<span slot="title"><i class="el-icon-s-flag"></i>产品</span>
</el-menu-item>
<el-menu-item label="故事" index="用户故事">
<span slot="title"><i class="el-icon-document"></i>故事</span>
</el-menu-item>
<el-menu-item index="任务">
<span slot="title"><i class="el-icon-s-operation"></i>任务</span>
</el-menu-item>
<el-menu-item index="缺陷">
<span slot="title"><i class="el-icon-question"></i>缺陷</span>
</el-menu-item>
<el-menu-item index="团队">
<span slot="title"><i class="el-icon-user-solid"></i>团队</span>
<span slot="title"><i class="el-icon-user-solid"></i>团队</span>
</el-menu-item>
<el-menu-item index="文档">
<span slot="title"><i class="el-icon-document"></i>文档</span>
<span slot="title"><i class="el-icon-document"></i>文档</span>
</el-menu-item>
<el-submenu index="规划与里程碑">
<template slot="title">规划与里程碑 </template>
<template slot="title">规划与里程碑 </template>
<el-menu-item index="阶段计划及里程碑">
<span slot="title"><i class="el-icon-odometer"></i>阶段计划及里程碑</span>
</el-menu-item>
<span slot="title"><i class="el-icon-odometer"></i>阶段计划及里程碑</span>
</el-menu-item>
<el-menu-item index="测试计划">
<span slot="title"><i class="el-icon-odometer"></i>测试计划</span>
</el-menu-item>
<span slot="title"><i class="el-icon-odometer"></i>测试计划</span>
</el-menu-item>
</el-submenu >
<el-menu-item index="项目监控" class="hidden-lg-and-down">
<span slot="title"><i class="el-icon-video-camera"></i>项目监控</span>
<span slot="title"><i class="el-icon-video-camera"></i>项目监控</span>
</el-menu-item>
<el-menu-item index="故事监控" class="hidden-lg-and-down">
<span slot="title"><i class="el-icon-video-camera"></i>故事监控</span>
<span slot="title"><i class="el-icon-video-camera"></i>故事监控</span>
</el-menu-item>
<el-menu-item index="合同管理" class="hidden-md-and-down">
<span slot="title"><i class="el-icon-s-data"></i>合同管理</span>
</el-menu-item>
<span slot="title"><i class="el-icon-s-data"></i>合同管理</span>
</el-menu-item>
<el-menu-item index="预算" class="hidden-md-and-down">
<span slot="title"><i class="el-icon-coin"></i>预算</span>
</el-menu-item>
<el-menu-item index="费用" class="hidden-md-and-down">
<span slot="title"><i class="el-icon-coin"></i>费用</span>
</el-menu-item>
<el-menu-item index="考核" class="hidden-lg-and-down">
<span slot="title"><i class="el-icon-view"></i>考核</span>
<span slot="title"><i class="el-icon-view"></i>考核</span>
</el-menu-item>
</el-menu-item>
<el-menu-item index="日志" class="hidden-lg-and-down">
<span slot="title"><i class="el-icon-edit-outline"></i>日志</span>
</el-menu-item>
<el-menu-item index="环境清单" class="hidden-lg-and-down">
<span slot="title"><i class="el-icon-setting"></i>环境清单</span>
</el-menu-item>
</el-menu-item>
<el-menu-item index="风险" class="hidden-lg-and-down">
<span slot="title"><i class="el-icon-question"></i>风险</span>
</el-menu-item>
<el-submenu index="更多">
<template slot="title">更多 </template>
<span slot="title"><i class="el-icon-question"></i>风险</span>
</el-menu-item>
<el-submenu index="更多">
<template slot="title">更多 </template>
<el-menu-item index="故事监控" >
<span slot="title"><i class="el-icon-video-camera"></i>故事监控</span>
<span slot="title"><i class="el-icon-video-camera"></i>故事监控</span>
</el-menu-item>
<el-menu-item index="项目监控">
<span slot="title"><i class="el-icon-video-camera"></i>项目监控</span>
<span slot="title"><i class="el-icon-video-camera"></i>项目监控</span>
</el-menu-item>
<el-menu-item index="预算">
<span slot="title"><i class="el-icon-coin"></i>预算</span>
</el-menu-item>
<el-menu-item index="费用">
<span slot="title"><i class="el-icon-coin"></i>费用</span>
</el-menu-item>
<el-menu-item index="考核">
<span slot="title"><i class="el-icon-view"></i>考核</span>
<span slot="title"><i class="el-icon-view"></i>考核</span>
</el-menu-item>
</el-menu-item>
<el-menu-item index="日志">
<span slot="title"><i class="el-icon-edit-outline"></i>日志</span>
</el-menu-item>
<el-menu-item index="合同管理">
<span slot="title"><i class="el-icon-s-data"></i>合同管理</span>
</el-menu-item>
</el-menu-item>
<el-menu-item index="环境清单">
<span slot="title"><i class="el-icon-setting"></i>环境清单</span>
</el-menu-item>
</el-menu-item>
<el-menu-item index="风险">
<span slot="title"><i class="el-icon-question"></i>风险</span>
</el-menu-item>
<span slot="title"><i class="el-icon-question"></i>风险</span>
</el-menu-item>
<el-menu-item index="论坛">
<span slot="title"><i class="el-icon-date"></i>论坛</span>
<span slot="title"><i class="el-icon-date"></i>论坛</span>
</el-menu-item>
<el-menu-item index="即聊">
<span slot="title"><i class="el-icon-date"></i>即聊</span>
<span slot="title"><i class="el-icon-date"></i>即聊</span>
</el-menu-item>
<el-menu-item index="客服">
<span slot="title"><i class="el-icon-date"></i>客服</span>
</el-menu-item>
</el-menu-item>
</el-submenu>
</el-menu>
</el-menu>
<xm-project-overview v-if="infotype=='项目概览'" :sel-project="selProject"></xm-project-overview>
<!--
<xm-detail v-if="infotype=='项目概览'" :sel-project="selProject" @submit="afterEditSubmit"></xm-detail>
<xm-iteration-complex v-if="infotype=='迭代'" ref="xmIterationMng" :sel-project="selProject" ></xm-iteration-complex>
<xm-product-mng v-if="infotype=='产品'" ref="xmProductMng" :sel-project="selProject" ></xm-product-mng>
<xm-menu-mng v-if="infotype=='用户故事'" :sel-project="selProject"></xm-menu-mng>
-->
<xm-iteration-complex v-if="infotype=='迭代'" ref="xmIterationMng" :sel-project="selProject" ></xm-iteration-complex>
<xm-product-mng v-if="infotype=='产品'" ref="xmProductMng" :sel-project="selProject" ></xm-product-mng>
<xm-menu-mng v-if="infotype=='用户故事'" :sel-project="selProject"></xm-menu-mng>
<xm-task-mng v-if="infotype=='任务'" ref="xmTaskMng" :sel-project="selProject" ></xm-task-mng>
<xm-question v-if="infotype=='缺陷'" :qtype="'bug'" :sel-project='selProject' ref="xmQuestion"></xm-question>
<xm-group-mng v-if="infotype=='团队'" :sel-project="selProject"></xm-group-mng>
<xm-file-mng v-if="infotype=='文档'" :sel-project="selProject"></xm-file-mng>
<xm-group-mng v-if="infotype=='团队'" :sel-project="selProject"></xm-group-mng>
<xm-file-mng v-if="infotype=='文档'" :sel-project="selProject"></xm-file-mng>
<xm-project-phase-mng v-if="infotype=='阶段计划及里程碑'" ref="xmProjectPhaseMng" :sel-project="selProject" ></xm-project-phase-mng>
<xm-test-case-exec-mng v-if="infotype=='测试计划'" :visible="infotype=='测试计划'" :sel-project='selProject' ref="xmQuestion"></xm-test-case-exec-mng>
<xm-menu-with-plan v-if="infotype=='故事监控'" ref="xmMenuWithPlan" :sel-project="selProject"></xm-menu-with-plan>
<xm-project-state-mng v-if="infotype=='项目监控'" :sel-project="selProject"></xm-project-state-mng>
<xm-test-case-exec-mng v-if="infotype=='测试计划'" :visible="infotype=='测试计划'" :sel-project='selProject' ref="xmQuestion"></xm-test-case-exec-mng>
<xm-menu-with-plan v-if="infotype=='故事监控'" ref="xmMenuWithPlan" :sel-project="selProject"></xm-menu-with-plan>
<xm-project-state-mng v-if="infotype=='项目监控'" :sel-project="selProject"></xm-project-state-mng>
<xm-budget v-if="infotype=='预算'" :sel-project="selProject"></xm-budget>
<xm-cost v-if="infotype=='费用'" :sel-project="selProject"></xm-cost>
<xm-project-kpi v-if="infotype=='考核'" :sel-project="selProject"></xm-project-kpi>
<xm-record v-if="infotype=='日志'" :visible="infotype=='日志'" :sel-project="selProject"></xm-record>
<xm-contract v-if="infotype=='合同管理'" :sel-project="selProject"></xm-contract>
<xm-env-list v-if="infotype=='环境清单'" :sel-project="selProject"></xm-env-list>
<xm-env-list v-if="infotype=='环境清单'" :sel-project="selProject"></xm-env-list>
<xm-question v-if="infotype=='风险'" :qtype="'risk'" :sel-project='selProject' ref="xmRisk"></xm-question>
<el-drawer title="选中团队成员" :visible.sync="groupUserVisible" size="50%" append-to-body :close-on-click-modal="false">
<xm-project-group-select :sel-project="selProject" :visible="groupUserVisible" is-select-multi-user="1" @user-confirm="onUserSelected"></xm-project-group-select>
</el-drawer>
</el-row>
</el-drawer>
</el-row>
</section>
</template>
@ -189,7 +191,7 @@
import xmBudget from './XmProjectBudgetCost';
import xmContract from '../xmProjectContract/XmProjectContractMng';
import xmEnvList from '../xmProjectEnvList/XmProjectEnvListMng';
import xmProjectPhaseMng from '../xmProjectPhase/XmProjectPhaseMng';
import xmProjectPhaseMng from '../xmProjectPhase/XmProjectPhaseMng';
import xmMenuMng from '../xmMenu/XmMenuMng';
import xmMenuWithPlan from '../xmMenu/XmMenuWithPlan';
import xmProjectStateMng from '../xmProjectState/XmProjectStateMng';
@ -197,28 +199,29 @@
import xmIterationMng from '../xmIteration/XmIterationMng';
import xmProductMng from '../xmProduct/XmProductMng';
import XmIterationComplex from '../xmIteration/XmIterationComplex.vue';
import XmProjectOverview from "./XmProjectOverview";
export default {
export default {
props: ["selProject","visible"],
computed: {
...mapGetters([
'userInfo','roles'
]),
},
]),
},
watch:{
selProject:function(selProject){
var oldInfotype=this.infotype
this.infotype=''
this.$nextTick(()=>{
this.infotype=oldInfotype
})
}
},
data() {
return {
return {
platformViewVisible:false,
tabPosition:'left',
infotype:"项目概览",
@ -228,27 +231,27 @@
/**end 自定义属性请在上面加 请加备注**/
}
},//end data
methods: {
methods: {
afterEditSubmit:function(project){
this.$emit("submit",project)
},
toArchive:function(){
toArchive:function(){
this.$router.push({
path: "/mdp/arc/mate/archive/ArchiveMng"
});
});
},
toIm:function(){
this.groupUserVisible=true
},
toHelpMe:function(){
toHelpMe:function(){
this.$router.push({
path: "/mdp/im/messages/crmChat",
query:{
categoryId:'css',
sendContent:'咨询'
}
});
});
},
handleMenuSelect(menuId){
this.infotype=menuId
@ -257,7 +260,7 @@
if(this.groupUserVisible==true){
var query={}
if(users){
if( users.length==1 ){
if( users.length==1 ){
var user=users[0]
query.toUserid=user.userid
query.toUsername=user.username
@ -271,10 +274,10 @@
this.$router.push({
path: "/mdp/im/messages/messageChat",
query: query
});
});
}
},
setInfotype(infotype){
this.infotype=infotype;
@ -302,10 +305,10 @@
keyList = ['seqNo', 'menuName', 'planStatus', 'chargeUsername', 'onlineTime', 'planStartTime', 'actStartTime', 'planEndTime', 'actEndTime', 'planWorkload', 'actWorkload', 'planCostAmount', 'actCostAmount', 'finishRate', 'demandRate', 'designRate', 'devRate', 'sitRate', 'uatRate', 'onlineStatus'];
list = this.$refs.xmMenuWithPlan.xmMenusTreeData;
pageNum = this.$refs.xmMenuWithPlan.pageInfo.pageNum;
}
}
const filename = `${this.selProject.name}_${this.infotype}_第${pageNum}`;
const data = this.formatJson(keyList, list);
import('@/vendor/Export2Excel').then(excel => {
excel.export_json_to_excel({
header,
@ -395,15 +398,16 @@
goBack(){
this.$router.back()
}
},//end methods
components: {
components: {
XmProjectOverview,
xmTaskMng,
xmProjectPhaseMng,
xmGroupMng,
xmExchange,
xmQuestion,
xmFileMng,
xmFileMng,
xmDetail,
xmProjectKpi,
xmRecord,
@ -421,19 +425,19 @@
XmIterationComplex,
//
},
mounted() {
mounted() {
this.$nextTick(() => {
});
});
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
<style rel="stylesheet/scss" lang="scss" scoped>
.menus{
.el-menu-item{
padding-left: 0px !important;
}
}
}
/* 超过宽度则用...代替 */
.truncate{
@ -441,4 +445,4 @@ XmIterationComplex,
text-overflow: ellipsis;
white-space: nowrap;
}
</style>
</style>

578
src/views/xm/core/xmProject/XmProjectOverview.vue

@ -0,0 +1,578 @@
<template>
<section>
<el-row class="page-header">
<el-col :xs="22" :sm="22" :md="23" :lg="23" :xl="23">
<span >项目总览</span>
</el-col>
</el-row>
<div class="page-main">
<div class="statistics" v-show="isActive">
<el-row :gutter="20">
<el-col :span="8" class="col">
<el-card class="box-card" style="padding:0px ;height:425px">
<div slot="header" class="clearfix">
<span>项目信息</span>
</div>
<el-row style="margin-bottom:18px">
<el-row>
<span v-text="taskMng"></span>
</el-row>
<el-row>
<span>项目负责人</span>
</el-row>
</el-row>
<el-row style="margin-bottom:18px">
<el-col :span="8" @click="">
<div class="item">
<div class="icon" style="background-color: rgb(79, 140, 255);">
<i class="el-icon-right"></i>
</div>
<div class="info">
<div class="value" v-text="totalTask"></div>
<div class="title">总任务量</div>
</div>
</div>
</el-col>
<el-col :span="8">
<div class="item">
<div class="icon" style="background-color: rgb(255, 153, 51);">
<i class="el-icon-loading"></i>
</div>
<div class="info">
<div class="value" v-text="notStart">
</div>
<div class="title">待完成</div>
</div>
</div>
</el-col>
<el-col :span="8">
<div class="item">
<div class="icon" style="background-color: rgb(0, 153, 51);">
<i class="el-icon-check"></i>
</div>
<div class="info">
<div class="value" v-text="finish" >
</div>
<div class="title">已完成</div>
</div>
</div>
</el-col>
</el-row>
<el-row style="margin-bottom:18px">
<div class="item">
<div class="icon2" style="background-color: rgb(204, 204, 204);">
<i class="el-icon-date"></i>
</div>
<div class="info">
<div class="value" v-text="startTime1+'~'+endTime1">
</div>
<div class="title">项目计划周期</div>
</div>
</div>
</el-row>
<el-row style="margin-bottom:18px">
<div class="item">
<div class="icon2" style="background-color: rgb(204, 204, 204);">
<i class="el-icon-star-off"></i>
</div>
<div class="info">
<div class="value" v-text="'无参数'">
</div>
<div class="title">需求数</div>
</div>
</div>
</el-row>
<el-row style="margin-bottom:18px">
<div class="item">
<div class="icon2" style="background-color: rgb(204, 204, 204);">
<i class="el-icon-refresh"></i>
</div>
<div class="info">
<div class="value" v-text="'无参数'">
</div>
<div class="title">迭代数</div>
</div>
</div>
</el-row>
<el-row style="margin-bottom:18px">
<div class="item">
<div class="icon2" style="background-color: rgb(204, 204, 204);">
<i class="el-icon-alarm-clock"></i>
</div>
<div class="value">
<div class="info">
<el-progress v-if="progress1" :percentage="progress1"></el-progress>
</div>
<div class="title">项目进度</div>
</div>
</div>
</el-row>
</el-card>
</el-col>
<el-col :span="8" class="col">
<el-card class="box-card" style="height:425px">
<div slot="header" class="clearfix">
<span>所有工作项及其完成情况</span>
</div>
<div>
<div id="myChart1" :style="{width: '400px', height: '300px'}"></div>
</div>
</el-card>
</el-col>
<el-col :span="8" class="col">
<el-card class="box-card" style="height:425px">
<div slot="header" class="clearfix">
<span>缺陷情况</span>
</div>
<div>
<div id="myChart3" :style="{width: '400px', height: '300px'}"></div>
</div>
</el-card>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12" class="col">
<el-card class="box-card" style="padding:0px ;height:425px">
<div slot="header" class="clearfix">
<span>任务每日状态趋势</span>
</div>
<div>
<div id="myChart2" :style="{width: '400px', height: '300px'}"></div>
</div>
</el-card>
</el-col>
<el-col :span="12" class="col">
<el-card class="box-card" style="padding:0px ;height:425px">
<div slot="header" class="clearfix">
<span>项目工时</span>
</div>
<div>
<el-row>
<div class="item" style="margin-bottom:18px">
<div>
<div class="title" v-text="'可绑定工时'">200</div>
<div style="text-align:center">预估工时</div>
</div>
<div style="margin-left:10px">
<div class="title" v-text="'可绑定工时'">200</div>
<div style="text-align:center">登记工时</div>
</div>
<div style="margin-left:10px;border-left:2px solid gray"></div>
<div style="margin-left:10px">
<div class="title" v-text="'可绑定进度'">200</div>
<div style="text-align:center">工时进度</div>
</div>
</div>
<div class="item" style="margin-bottom:18px">
<div>
<div class="title" v-text="'可绑定工时'">200</div>
<div style="text-align:center">剩余工时</div>
</div>
<div style="margin-left:10px">
<div class="title" v-text="'可绑定偏差'">200</div>
<div style="text-align:center">预估偏差</div>
</div>
<div style="margin-left:10px;border-left:2px solid gray"></div>
<div style="margin-left:10px">
<div class="title" v-text="'1.08%'">200</div>
<div style="text-align:center">预估偏差率</div>
</div>
</div>
</el-row>
<el-row>
//
</el-row>
<el-row>
//
</el-row>
</div>
</el-card>
</el-col>
</el-row>
</div>
</div>
</section>
</template>
<script>
import util from "@/common/js/util"; //
//import Sticky from "@/components/Sticky"; // header
import { mapGetters } from "vuex";
import { listXmProjectState } from "@/api/xm/core/xmProjectState";
export default {
computed: {
...mapGetters(["userInfo"]),
finish: function (){
return this.selProject.totalCompleteTaskCnt;
},
notStart: function() {
return this.selProject.totalTaskCnt-this.selProject.totalCompleteTaskCnt;
},
totalTask: function() {
return this.selProject.totalTaskCnt;
},
progress1: function (){
return Math.round(this.selProject.totalCompleteTaskCnt/this.selProject.totalTaskCnt*100);
},
startTime1: function (){
return this.selProject.startTime.substring(0,10);
},
endTime1: function (){
return this.selProject.endTime.substring(0,10);
},
taskMng: function (){
return this.selProject.createUsername;
}
},
props:['selProject'],
data() {
return {
isActive: true,
xmProjectState: null,//
};
},
methods:{
//xmProjectsTate
getXmProjectState(){
let params = {
projectId:this.selProject.id,
branchId:this.userInfo.branchId
};
listXmProjectState(params).then((res) => {
let tips=res.data.tips;
if(tips.isOk){
this.xmProjectState = res.data.data[0];
}else{
this.$message({showClose: true, message: tips.msg, type: 'error' });
}
}).catch( err => this.load.list = false );
},
drawLine1() {
// domecharts
let myChart1 = this.$echarts.init(document.getElementById("myChart1"));
let option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
yAxis: {
type: 'value'
},
xAxis: {
type: 'category',
data: ['需求', '任务', '缺陷']
},
series: [
{
data: [
{
value: 90,
itemStyle: {
normal:{
color: '#99CCFF'
}
}
},
{
value: this.selProject.totalTaskCnt,
itemStyle: {
normal:{
color: '#99CCFF'
}
}
},
{
value: this.selProject.totalBugCnt,
itemStyle: {
normal:{
color: '#99CCFF'
}
}
},
],
type: 'bar'
}
]
};
//
myChart1.setOption(option);
},
drawLine2() {
let myChart2 = this.$echarts.init(document.getElementById("myChart2"));
let option = {
tooltip: {
trigger: 'axis'
},
color:['rgb(0, 153, 255)','#6699CC'],
legend: {
data: ['未开始', '进行中']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
},
yAxis: {
type: 'value'
},
series: [
{
name: '未开始',
type: 'line',
//stack: '',
data: [120, 132, 101, 134, 90, 230, 210],
areaStyle: {
normal:{
color:"rgb(153, 204, 255)" , //线
}
},
lineStyle:{
normal:{
color:'rgb(0, 153, 255)'
}
},
},
{
name: '进行中',
type: 'line',
//stack: '',
data: [220, 182, 191, 234, 290, 330, 310],
areaStyle: {
normal:{
color:"rgb(153, 204, 255)", //线
}
},
lineStyle:{
normal:{
color:'#6699CC'
}
},
},
],
};
//
myChart2.setOption(option);
},
drawLine3() {
let myChart3 = this.$echarts.init(document.getElementById("myChart3"));
let option = {
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left',
},
series: [
{
type: 'pie',
radius: '50%',
data: [
{value: this.selProject.totalClosedBugCnt,
itemStyle: {
normal:{
color: '#99CC33'
}
},
name: '已关闭'},
{value: this.selProject.totalResolvedBugCnt,
itemStyle: {
normal:{
color: '#FF9900'
}
},
name: '已解决'},
{value: this.selProject.totalActiveBugCnt,
itemStyle: {
normal:{
color: '#66CCCC'
}
},
name: '已激活'},
{value: this.selProject.totalConfirmedBugCnt,
itemStyle: {
normal:{
color: '#FF6666'
}
},
name: '已确认'},
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
//
myChart3.setOption(option);
}
},
mounted() {
this.$nextTick(() => {
this.getXmProjectState();
});
this.drawLine1();
this.drawLine2();
this.drawLine3();
console.log("getXmProjectState():"+this.xmProjectState);
console.dir(this.xmProjectState, {depth:null});
},
};
</script>
<style scoped lang="scss">
.container {
margin: 10px;
}
.header {
display: flex;
justify-content: flex-start;
padding: 10px;
span {
padding-right: 15px;
}
}
.col {
margin-bottom: 20px;
}
.icon {
color: #fff;
height: 30px;
width: 30px;
border-radius: 15px;
text-align: center;
line-height: 30px;
font-size: 20px;
display: inline-block;
margin-right: 5px;
}
.icon2 {
color: #000000;
height: 30px;
width: 30px;
border-radius: 15px;
text-align: center;
line-height: 30px;
font-size: 20px;
display: inline-block;
margin-right: 5px;
margin-left: 5px;
}
.item {
display: flex;
justify-content: flex-start;
}
.card-font {
color: #000000;
font-size: 12px;
.el-col {
margin-bottom: 20px;
}
}
.calendar-header {
display: flex;
justify-content: space-between;
.cal-header-boxs {
flex: 1;
display: flex;
justify-content: flex-end;
.cal-header-box {
padding: 5px;
height: 45px;
margin-left: 10px;
}
.box-icon {
text-align: center;
}
.box-info {
text-align: center;
font-size: 12px;
color: #000000;
}
}
}
.el-tag:hover {
cursor: pointer;
}
.el-progress {
width: 220px;
}
.value {
cursor: pointer;
}
.reference {
margin-top: 10px;
font-size: 12px;
}
.click {
background: #e9f7ff;
}
.calendar-box {
display: flex;
justify-content: flex-start;
}
</style>
<style>
.app-container{
padding: 20px;
padding-bottom: 0;
}
</style>
Loading…
Cancel
Save