Procházet zdrojové kódy

feat: my flow

Signed-off-by: carlos <568187512@qq.com>
carlos před 3 měsíci
rodič
revize
d990cf1d2f

+ 3 - 3
src/app/pages/manager/layout/layout.component.less

@@ -24,7 +24,7 @@
 }
 .content {
   transition: margin-left 0.2s;
-  background-color: #f5f6fa;
+  background-color: #ffffff;
   overflow: hidden;
 }
 nz-sider {
@@ -32,6 +32,6 @@ nz-sider {
   height: calc(100% - var(--header-height));
   position: fixed;
   left: 0;
-  background-color: #f4f4f4;
-  box-shadow: 18px 4px 35px 0px rgba(0, 0, 0, 0.02);
+  background-color: #ffffff;
+  box-shadow: 18px 4px 35px 0px rgba(0, 0, 0, 0.03);
 }

+ 9 - 0
src/app/pages/manager/workbench/my/my-flow/my-flow.component.html

@@ -0,0 +1,9 @@
+<div class="workbench-panel px-8" style="height: 356px">
+  <div class="workbench-panel-header">
+    <div class="header-button-group">
+      @for (tab of tabs; track tab) {
+        <span class="button-item" [class.active]="activeTab === tab" (click)="activeTab = tab">{{ tab }}</span>
+      }
+    </div>
+  </div>
+</div>

+ 0 - 0
src/app/pages/manager/workbench/my/my-flow/my-flow.component.less


+ 23 - 0
src/app/pages/manager/workbench/my/my-flow/my-flow.component.spec.ts

@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { MyFlowComponent } from './my-flow.component';
+
+describe('MyFlowComponent', () => {
+  let component: MyFlowComponent;
+  let fixture: ComponentFixture<MyFlowComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [MyFlowComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(MyFlowComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 14 - 0
src/app/pages/manager/workbench/my/my-flow/my-flow.component.ts

@@ -0,0 +1,14 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'workbench-my-flow',
+  standalone: true,
+  imports: [],
+  templateUrl: './my-flow.component.html',
+  styleUrl: './my-flow.component.less',
+})
+export class MyFlowComponent {
+  // 当前选中的tab
+  activeTab = '待处理';
+  tabs = ['待处理', '抄送我的', '我发起的'];
+}

+ 26 - 0
src/app/pages/manager/workbench/my/my-work/my-work.component.html

@@ -0,0 +1,26 @@
+<div class="text-xl font-medium pb-4">我的工作</div>
+<div class="workbench-panel px-6" style="height: 132px">
+  <div class="h-full flex">
+    <div class="flex-1"></div>
+    @for (item of taskStatistics; track item.title) {
+      <div class="inline-flex items-center mr-6 last:mr-0">
+        <div class="pr-6">
+          <img [src]="item.icon" alt="" />
+        </div>
+        <div>
+          <div class="text-xs text-[#1D2129]">{{ item.title }}</div>
+          <div>
+            @for (field of item.fields; track field.label) {
+              <div class="text-[#5A607F] !leading-[20px]">
+                <span class="text-xs">{{ field.label }}:</span>
+                <span class="text-lg !leading-[20px]">{{ field.value }}</span>
+                <span class="text-[10px]">{{ field.unit }}</span>
+              </div>
+            }
+          </div>
+        </div>
+      </div>
+      <div class="flex-1"></div>
+    }
+  </div>
+</div>

+ 0 - 0
src/app/pages/manager/workbench/my/my-work/my-work.component.less


+ 23 - 0
src/app/pages/manager/workbench/my/my-work/my-work.component.spec.ts

@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { MyWorkComponent } from './my-work.component';
+
+describe('MyWorkComponent', () => {
+  let component: MyWorkComponent;
+  let fixture: ComponentFixture<MyWorkComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [MyWorkComponent]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(MyWorkComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 44 - 0
src/app/pages/manager/workbench/my/my-work/my-work.component.ts

@@ -0,0 +1,44 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'workbench-my-work',
+  standalone: true,
+  imports: [],
+  templateUrl: './my-work.component.html',
+  styleUrl: './my-work.component.less',
+})
+export class MyWorkComponent {
+  // 任务统计
+  taskStatistics = [
+    {
+      title: '今日任务',
+      icon: 'assets/images/workbench/today.svg',
+      fields: [
+        { label: '待处理', value: 18, unit: '起' },
+        { label: '排查任务', value: 22, unit: '起' },
+        { label: '整治任务', value: '无', unit: '' },
+      ],
+    },
+    {
+      title: '本周任务',
+      icon: 'assets/images/workbench/week.svg',
+      fields: [
+        { label: '排查任务', value: 22, unit: '起' },
+        { label: '整治任务', value: '无', unit: '' },
+      ],
+    },
+    {
+      title: '本月任务',
+      icon: 'assets/images/workbench/month.svg',
+      fields: [
+        { label: '排查任务', value: 22, unit: '起' },
+        { label: '整治任务', value: '无', unit: '' },
+      ],
+    },
+    {
+      title: '本月新增',
+      icon: 'assets/images/workbench/new.svg',
+      fields: [{ label: '新增隐患', value: 22, unit: '起' }],
+    },
+  ];
+}

+ 14 - 1
src/app/pages/manager/workbench/my/my.component.html

@@ -1 +1,14 @@
-<p>my works!</p>
+<div class="flex">
+  <div class="flex-1">
+    <workbench-my-work></workbench-my-work>
+    <div class="flex-1">
+      <div class="w-1/2 py-4">
+        <workbench-my-flow></workbench-my-flow>
+      </div>
+      <div class="w-1/2"></div>
+    </div>
+  </div>
+  <div class="" style="width: 600px">
+    <div>你的工作</div>
+  </div>
+</div>

+ 3 - 1
src/app/pages/manager/workbench/my/my.component.ts

@@ -1,9 +1,11 @@
 import { Component } from '@angular/core';
+import { MyFlowComponent } from './my-flow/my-flow.component';
+import { MyWorkComponent } from './my-work/my-work.component';
 
 @Component({
   selector: 'manager-workbench-my',
   standalone: true,
-  imports: [],
+  imports: [MyWorkComponent, MyFlowComponent],
   templateUrl: './my.component.html',
   styleUrl: './my.component.less',
 })

+ 1 - 1
src/app/pages/manager/workbench/workbench.component.html

@@ -1 +1 @@
-<p>workbench works!</p>
+<router-outlet></router-outlet>

+ 4 - 5
src/app/pages/manager/workbench/workbench.component.ts

@@ -1,12 +1,11 @@
 import { Component } from '@angular/core';
+import { RouterOutlet } from '@angular/router';
 
 @Component({
   selector: 'app-workbench',
   standalone: true,
-  imports: [],
+  imports: [RouterOutlet],
   templateUrl: './workbench.component.html',
-  styleUrl: './workbench.component.less'
+  styleUrl: './workbench.component.less',
 })
-export class WorkbenchComponent {
-
-}
+export class WorkbenchComponent {}

+ 98 - 0
src/assets/images/workbench/month.svg

@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title></title>
+    <defs>
+        <path d="M22.6650875,5.33749771 C23.7943885,6.46952796 24.6802871,7.78749776 25.2982872,9.25585771 C25.9353874,10.7761681 26.2580421,12.3922274 26.2580421,14.0547278 C26.2498882,15.7117274 25.9216869,17.316828 25.276387,18.8261282 C24.655688,20.2836268 23.7669876,21.5906279 22.6376884,22.7089274 C21.5111873,23.827328 20.1958873,24.702328 18.7330883,25.3121283 C17.2373874,25.9328272 15.6486881,26.2499926 14.0107877,26.2499926 C14.0107877,26.2499926 13.953388,26.2499926 13.953388,26.2499926 C12.9501874,26.2456286 11.9871871,25.9202273 11.0542076,25.4887278 C9.43563771,24.740227 7.66698766,24.3871272 5.90749764,24.6771281 C5.90749764,24.6771281 5.00692749,24.8256285 5.00692749,24.8256285 C4.55530763,24.9001276 4.06509757,24.9926283 3.67434764,24.7542269 C3.5003376,24.6481268 3.35410762,24.500828 3.24915755,24.3260272 C3.01662755,23.9387286 3.1069876,23.4556277 3.17952764,23.0097277 C3.17952764,23.0097277 3.33064759,22.0807269 3.33064759,22.0807269 C3.61568761,20.3284285 3.26345766,18.5680277 2.51857358,16.9565279 C2.0874306,16.0238278 1.76238526,15.0620282 1.7578876,14.0574276 C1.7498396,12.4031279 2.06702662,10.7925675 2.69593358,9.27772784 C3.30022764,7.81483769 4.18069768,6.50233769 5.29632759,5.37303782 C6.4146874,4.24374771 7.7217176,3.35780776 9.17913747,2.73436874 C10.6885078,2.08905575 12.2935874,1.76093088 13.950588,1.75272775 C13.950588,1.75272775 14.0052879,1.75272775 14.0052879,1.75272775 C15.6486881,1.75272775 17.2455881,2.07264975 18.7494876,2.70429075 C20.2177875,3.31952775 21.5357883,4.20819783 22.6650875,5.33749771 C22.6650875,5.33749771 22.6650875,5.33749771 22.6650875,5.33749771 Z" id="path-1"></path>
+        <filter x="-60.0%" y="-41.5%" width="220.0%" height="220.0%" filterUnits="objectBoundingBox" id="filter-2">
+            <feOffset dx="0" dy="4.52335215" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="4.14640617" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0.816666663   0 0 0 0 0.172112405   0 0 0 0 0.0306250453  0 0 0 0.25 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-47.7%" y="-29.2%" width="195.4%" height="195.4%" filterUnits="objectBoundingBox" id="filter-3">
+            <feGaussianBlur stdDeviation="1.88473046" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-3.01556849" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 0.779999733   0 0 0 0 0  0 0 0 0.289999992 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="1.07692313" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="1.13" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.5 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M20.2016172,15.53125 C19.3785672,15.53125 18.7141175,14.8476601 18.7141175,14 C18.7141175,13.152344 19.3785672,12.46875 20.2016172,12.46875 C21.0246677,12.46875 21.6891251,13.152344 21.6891251,14 C21.6918478,14.8476601 21.0246677,15.53125 20.2016172,15.53125 C20.2016172,15.53125 20.2016172,15.53125 20.2016172,15.53125 Z M14.0027874,15.53125 C13.1797394,15.53125 12.5152874,14.8476601 12.5152874,14 C12.5152874,13.152344 13.1797394,12.46875 14.0027874,12.46875 C14.8258374,12.46875 15.4902873,13.152344 15.4902873,14 C15.4875574,14.8476601 14.8230975,15.53125 14.0027874,15.53125 C14.0027874,15.53125 14.0027874,15.53125 14.0027874,15.53125 Z" id="path-4"></path>
+        <filter x="-72.8%" y="-151.1%" width="245.7%" height="536.4%" filterUnits="objectBoundingBox" id="filter-5">
+            <feOffset dx="0" dy="2.05606937" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="1.88473046" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0.862500012   0 0 0 0 0   0 0 0 0 0  0 0 0 0.25 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-57.9%" y="-106.3%" width="215.8%" height="446.9%" filterUnits="objectBoundingBox" id="filter-6">
+            <feGaussianBlur stdDeviation="0.856695652" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-1.37071288" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.925000012   0 0 0 0 0.320666671   0 0 0 0 0.0616666675  0 0 0 0.119999997 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.342678219" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.514017344" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.75 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M6.31377697,14 C6.31377697,14.20109 6.35225247,14.4002 6.42700597,14.5859799 C6.50175998,14.77176 6.61132896,14.9405701 6.74945596,15.0827601 C6.88758296,15.2249501 7.05156398,15.3377399 7.23203599,15.41469 C7.41250694,15.4916401 7.605937,15.53125 7.80127692,15.53125 C7.99661696,15.53125 8.19004703,15.4916401 8.37051702,15.41469 C8.55098701,15.3377399 8.71496701,15.2249501 8.85309696,15.0827601 C8.99122691,14.9405701 9.10079694,14.77176 9.17554688,14.5859799 C9.25030708,14.4002 9.28877759,14.20109 9.28877759,14 C9.28877759,13.59389 9.13205695,13.204407 8.85309696,12.917242 C8.57413697,12.630077 8.19578695,12.46875 7.80127692,12.46875 C7.40676701,12.46875 7.02841598,12.630077 6.74945596,12.917242 C6.47049497,13.204407 6.31377697,13.59389 6.31377697,14 C6.31377697,14 6.31377697,14 6.31377697,14 C6.31377697,14 6.31377697,14 6.31377697,14 Z" id="path-7"></path>
+        <filter x="-224.6%" y="-151.1%" width="549.2%" height="536.4%" filterUnits="objectBoundingBox" id="filter-8">
+            <feOffset dx="0" dy="2.05606937" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="1.88473046" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0.862500012   0 0 0 0 0   0 0 0 0 0  0 0 0 0.25 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-178.5%" y="-106.3%" width="457.1%" height="446.9%" filterUnits="objectBoundingBox" id="filter-9">
+            <feGaussianBlur stdDeviation="0.856695652" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-1.37071288" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.925000012   0 0 0 0 0.320666671   0 0 0 0 0.0616666675  0 0 0 0.119999997 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.342678219" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.514017344" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.75 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+    </defs>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="工作台-首页" transform="translate(-855.000000, -221.000000)" fill-rule="nonzero">
+            <g id="Frame-427318626" transform="translate(338.000000, 201.000000)">
+                <g id="Statistics/icon/down" transform="translate(497.000000, 0.000000)">
+                    <g id="Frame-4273186251" transform="translate(20.000000, 20.000000)">
+                        <rect x="0" y="0" width="54" height="54"></rect>
+                        <g id="Group-194756">
+                            <path d="M54,27 C54,41.9117012 41.9117012,54 27,54 C12.0882998,54 0,41.9117012 0,27 C0,12.0882998 12.0882998,0 27,0 C41.9117012,0 54,12.0882998 54,27 C54,27 54,27 54,27 Z" id="Ellipse-930" fill="#F6F7FB"></path>
+                            <g id="comments-" transform="translate(13.000000, 13.000000)">
+                                <rect x="0" y="0" width="28" height="28"></rect>
+                                <g id="Vector">
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
+                                    <use fill="#FDA979" xlink:href="#path-1"></use>
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-1"></use>
+                                </g>
+                                <g id="Vector">
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-5)" xlink:href="#path-4"></use>
+                                    <use fill="#FFFFFF" xlink:href="#path-4"></use>
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-6)" xlink:href="#path-4"></use>
+                                </g>
+                                <g id="Vector">
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-8)" xlink:href="#path-7"></use>
+                                    <use fill="#FFFFFF" xlink:href="#path-7"></use>
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-9)" xlink:href="#path-7"></use>
+                                </g>
+                            </g>
+                        </g>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 124 - 0
src/assets/images/workbench/new.svg

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title></title>
+    <defs>
+        <path d="M18.125,0 C18.125,0 1.875,0 1.875,0 C0.839465976,0 0,0.839465976 0,1.875 C0,1.875 0,20.625 0,20.625 C0,21.6604996 0.839465976,22.5 1.875,22.5 C1.875,22.5 18.125,22.5 18.125,22.5 C19.1604996,22.5 20,21.6604996 20,20.625 C20,20.625 20,1.875 20,1.875 C20,0.839465976 19.1604996,0 18.125,0 C18.125,0 18.125,0 18.125,0 Z" id="path-1"></path>
+        <linearGradient x1="133.443542%" y1="-38.2065386%" x2="-3.00161579%" y2="99.0247548%" id="linearGradient-3">
+            <stop stop-color="#24B5E3" offset="0%"></stop>
+            <stop stop-color="#56CCFF" offset="53.3050418%"></stop>
+            <stop stop-color="#0BA7FF" offset="100%"></stop>
+        </linearGradient>
+        <path d="M18.125,0 C18.125,0 1.875,0 1.875,0 C0.839465976,0 0,0.839465976 0,1.875 C0,1.875 0,19.625 0,19.625 C0,20.6604996 0.839465976,21.5 1.875,21.5 C1.875,21.5 18.125,21.5 18.125,21.5 C19.1604996,21.5 20,20.6604996 20,19.625 C20,19.625 20,1.875 20,1.875 C20,0.839465976 19.1604996,0 18.125,0 C18.125,0 18.125,0 18.125,0 Z" id="path-4"></path>
+        <filter x="-10.7%" y="-10.0%" width="121.4%" height="119.9%" filterUnits="objectBoundingBox" id="filter-5">
+            <feGaussianBlur stdDeviation="1.07142854" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-2.14285707" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.0788194537   0 0 0 0 0.633708239   0 0 0 0 0.945833325  0 0 0 0.699999988 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="1.07142854" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="1.07142854" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.699999988 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M13.8747387,-0.124511719 C14.6534491,-0.124511719 15.3212786,0.350194275 15.6046486,1.02600825 C15.6293688,1.08495831 15.6858187,1.12551832 15.7497387,1.12548828 C15.7497387,1.12548828 15.7497387,1.12548828 15.7497387,1.12548828 C16.7852383,1.12548828 17.6247387,1.96495819 17.6247387,3.00048828 C17.6247387,4.03601837 16.7852383,4.87548828 15.7497387,4.87548828 C15.7497387,4.87548828 8.24973869,4.87548828 8.24973869,4.87548828 C7.21420467,4.87548828 6.37473869,4.03601837 6.37473869,3.00048828 C6.37473869,1.96495819 7.21420467,1.12548828 8.24973869,1.12548828 C8.24973869,1.12548828 8.24973869,1.12548828 8.24973869,1.12548828 C8.31365871,1.12551832 8.37010872,1.08495831 8.3948288,1.02600825 C8.67819858,0.350194275 9.3460288,-0.124511719 10.1247387,-0.124511719 C10.1247387,-0.124511719 13.8747387,-0.124511719 13.8747387,-0.124511719 C13.8747387,-0.124511719 13.8747387,-0.124511719 13.8747387,-0.124511719 Z" id="path-6"></path>
+        <filter x="-31.8%" y="-57.1%" width="163.5%" height="243.0%" filterUnits="objectBoundingBox" id="filter-7">
+            <feOffset dx="0" dy="0.720000029" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="1.07142854" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0.373715281   0 0 0 0 0.675549984   0 0 0 0 0.954166651  0 0 0 0.600000024 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-31.8%" y="-57.1%" width="163.5%" height="243.0%" filterUnits="objectBoundingBox" id="filter-8">
+            <feGaussianBlur stdDeviation="1.07142854" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.720000029" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.0178124905   0 0 0 0 0.379049957   0 0 0 0 0.712499976  0 0 0 0.400000006 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
+        </filter>
+        <path d="M6.87940979,0.961751997 C6.87940979,0.430682987 7.30991983,0.000165910998 7.84099007,0.000165910998 C7.84099007,0.000165910998 11.4301996,0.000165910998 11.4301996,0.000165910998 C11.9612999,0.000165910998 12.3918228,0.430682987 12.3918228,0.961751997 C12.3918228,0.961751997 12.3918228,4.5509901 12.3918228,4.5509901 C12.3918228,5.08205986 11.9612999,5.51257992 11.4301996,5.51257992 C10.8991003,5.51257992 10.4686003,5.08205986 10.4686003,4.5509901 C10.4686003,4.5509901 10.4686003,1.92333996 10.4686003,1.92333996 C10.4686003,1.92333996 7.84099007,1.92333996 7.84099007,1.92333996 C7.30991983,1.92333996 6.87940979,1.49282002 6.87940979,0.961751997 C6.87940979,0.961751997 6.87940979,0.961751997 6.87940979,0.961751997 Z" id="path-9"></path>
+        <filter x="-64.0%" y="-59.4%" width="228.0%" height="286.6%" filterUnits="objectBoundingBox" id="filter-10">
+            <feOffset dx="0" dy="2.88475919" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="2.16356945" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.355333328   0 0 0 0 0.683333337  0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-45.4%" y="-32.2%" width="190.8%" height="232.3%" filterUnits="objectBoundingBox" id="filter-11">
+            <feGaussianBlur stdDeviation="0.721189797" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-1.1539036" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.579999924   0 0 0 0 1  0 0 0 0.400000006 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.388356596" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.58253485" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.879166663   0 0 0 0 1   0 0 0 0 1  0 0 0 0.75 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M12.0946999,0.266465992 C12.4785995,0.633414984 12.4923,1.2421 12.1253996,1.62600994 C12.1253996,1.62600994 7.69401979,6.26211023 7.69401979,6.26211023 C7.38183022,6.58872986 6.88433981,6.6539402 6.49850988,6.41882992 C6.49850988,6.41882992 4.27916002,5.51257992 4.27916002,5.51257992 C4.27916002,5.51257992 1.7026,8.15472031 1.7026,8.15472031 C1.36413002,8.56394958 0.757992983,8.62131977 0.348758996,8.28285027 C-0.0604760014,7.94437981 -0.117842004,7.33824015 0.220627993,6.92900991 C0.220627993,6.92900991 3.32772994,3.64542007 3.32772994,3.64542007 C3.63228011,3.27718997 4.16102982,3.1884799 4.56908989,3.43713999 C4.56908989,3.43713999 6.83846998,4.3738699 6.83846998,4.3738699 C6.83846998,4.3738699 10.7350998,0.297167987 10.7350998,0.297167987 C11.1021004,-0.0867372975 11.7107,-0.100483 12.0946999,0.266465992 C12.0946999,0.266465992 12.0946999,0.266465992 12.0946999,0.266465992 Z" id="path-12"></path>
+        <filter x="-64.0%" y="-59.4%" width="228.0%" height="286.6%" filterUnits="objectBoundingBox" id="filter-13">
+            <feOffset dx="0" dy="2.88475919" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="2.16356945" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.355333328   0 0 0 0 0.683333337  0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-45.4%" y="-32.2%" width="190.8%" height="232.3%" filterUnits="objectBoundingBox" id="filter-14">
+            <feGaussianBlur stdDeviation="0.721189797" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-1.1539036" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.579999924   0 0 0 0 1  0 0 0 0.400000006 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.388356596" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.58253485" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.879166663   0 0 0 0 1   0 0 0 0 1  0 0 0 0.75 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+    </defs>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="工作台-首页" transform="translate(-1103.000000, -221.000000)">
+            <g id="Frame-427318626" transform="translate(338.000000, 201.000000)">
+                <g id="Statistics/icon/down" transform="translate(745.000000, 0.000000)">
+                    <g id="Frame-4273186252" transform="translate(20.000000, 20.000000)">
+                        <rect fill-rule="nonzero" x="0" y="0" width="54" height="54"></rect>
+                        <g id="Group-194757" transform="translate(0.000244, 0.000000)">
+                            <path d="M54,27 C54,41.9117012 41.9117012,54 27,54 C12.0882998,54 0,41.9117012 0,27 C0,12.0882998 12.0882998,0 27,0 C41.9117012,0 54,12.0882998 54,27 C54,27 54,27 54,27 Z" id="Ellipse-931" fill="#F6F7FB" fill-rule="nonzero"></path>
+                            <g id="较昨日新增" transform="translate(14.999756, 15.000000)">
+                                <rect fill-rule="nonzero" x="0" y="0" width="24" height="24"></rect>
+                                <g id="Rectangle" transform="translate(1.999825, 2.000610)">
+                                    <mask id="mask-2" fill="white">
+                                        <use xlink:href="#path-1"></use>
+                                    </mask>
+                                    <g id="mask-2" fill-rule="nonzero"></g>
+                                    <g id="Mask" fill-rule="nonzero" mask="url(#mask-2)">
+                                        <use fill="url(#linearGradient-3)" xlink:href="#path-4"></use>
+                                        <use fill="black" fill-opacity="1" filter="url(#filter-5)" xlink:href="#path-4"></use>
+                                    </g>
+                                </g>
+                                <g id="Path" fill-rule="nonzero">
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-7)" xlink:href="#path-6"></use>
+                                    <use fill="#FFFEFE" xlink:href="#path-6"></use>
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-8)" xlink:href="#path-6"></use>
+                                </g>
+                                <path d="M17.971941,7 C17.971941,7 6.0275383,7 6.0275383,7 C6.0275383,7 6.0275383,18.9444027 6.0275383,18.9444027 C6.0275383,18.9444027 17.971941,18.9444027 17.971941,18.9444027 C17.971941,18.9444027 17.971941,7 17.971941,7 C17.971941,7 17.971941,7 17.971941,7 Z" id="Vector" fill-opacity="0.00999999978" fill="#FFFFFF" fill-rule="nonzero"></path>
+                                <g id="Vector" transform="translate(5.654129, 8.720459)" fill-rule="nonzero">
+                                    <g>
+                                        <use fill="black" fill-opacity="1" filter="url(#filter-10)" xlink:href="#path-9"></use>
+                                        <use fill="#FFFFFF" xlink:href="#path-9"></use>
+                                        <use fill="black" fill-opacity="1" filter="url(#filter-11)" xlink:href="#path-9"></use>
+                                    </g>
+                                    <g>
+                                        <use fill="black" fill-opacity="1" filter="url(#filter-13)" xlink:href="#path-12"></use>
+                                        <use fill="#FFFFFF" xlink:href="#path-12"></use>
+                                        <use fill="black" fill-opacity="1" filter="url(#filter-14)" xlink:href="#path-12"></use>
+                                    </g>
+                                </g>
+                            </g>
+                        </g>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 91 - 0
src/assets/images/workbench/today.svg

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title></title>
+    <defs>
+        <path d="M39,36 C39,38.2052994 37.2052994,40 35,40 L19,40 C16.79467,40 15,38.2052994 15,36 L15,20 C15,17.79467 16.79467,16 19,16 L33.555062,15.9981547 C33.8425835,16.2781743 39,21.3010254 39,21.3010254 Z" id="path-1"></path>
+        <filter x="-28.7%" y="-28.7%" width="157.4%" height="157.4%" filterUnits="objectBoundingBox" id="filter-2">
+            <feGaussianBlur stdDeviation="3.82409096" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-6.11854506" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.0716666579   0 0 0 0 0.136166751   0 0 0 0 0.716666639  0 0 0 0.349999994 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="1.52963626" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-2.29445434" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.25 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M31.0215416,25.1662178 C31.0215416,25.1662178 19.9146327,25.1662178 19.9146327,25.1662178 C19.4082477,25.1662178 18.9977417,25.5767238 18.9977417,26.0831098 C18.9977417,26.5894978 19.4082487,27.0000008 19.9146337,27.0000008 C19.9146337,27.0000008 31.0215416,27.0000008 31.0215416,27.0000008 C31.5279417,27.0000008 31.9384289,26.5894978 31.9384289,26.0831098 C31.9384289,25.5767238 31.5279417,25.1662178 31.0215416,25.1662178 C31.0215416,25.1662178 31.0215416,25.1662178 31.0215416,25.1662178 Z" id="path-3"></path>
+        <filter x="-198.8%" y="-971.3%" width="497.6%" height="2905.8%" filterUnits="objectBoundingBox" id="filter-4">
+            <feOffset dx="0" dy="7.91586637" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="7.25621128" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.0450000614   0 0 0 0 0.449999988  0 0 0 0.25 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-121.8%" y="-427.9%" width="343.6%" height="1819.1%" filterUnits="objectBoundingBox" id="filter-5">
+            <feGaussianBlur stdDeviation="1" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.5" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.338819444   0 0 0 0 0.521616638   0 0 0 0 0.991666675  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
+        </filter>
+        <path d="M26.4644618,21.588501 C26.4644618,21.588501 19.8557087,21.588501 19.8557087,21.588501 C19.3818667,21.588501 18.9977417,21.972626 18.9977417,22.4464689 C18.9977417,22.920311 19.3818667,23.3044367 19.8557087,23.3044367 C19.8557087,23.3044367 26.4644618,23.3044367 26.4644618,23.3044367 C26.9383016,23.3044367 27.3224258,22.920311 27.3224258,22.4464689 C27.3224258,21.972626 26.9383016,21.588501 26.4644618,21.588501 C26.4644618,21.588501 26.4644618,21.588501 26.4644618,21.588501 Z" id="path-6"></path>
+        <filter x="-309.0%" y="-1038.0%" width="718.1%" height="3098.5%" filterUnits="objectBoundingBox" id="filter-7">
+            <feOffset dx="0" dy="7.91586637" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="7.25621128" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.0450000614   0 0 0 0 0.449999988  0 0 0 0.25 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-189.3%" y="-457.3%" width="478.7%" height="1937.2%" filterUnits="objectBoundingBox" id="filter-8">
+            <feGaussianBlur stdDeviation="1" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.5" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.338819444   0 0 0 0 0.521616638   0 0 0 0 0.991666675  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
+        </filter>
+        <path d="M35.0022049,33.8003693 C35.0022049,34.5363693 34.4889154,35.1337013 33.8590155,35.1337013 C33.8590155,35.1337013 20.140895,35.1337013 20.140895,35.1337013 C19.511002,35.1337013 18.997715,34.5363693 18.997715,33.8003693 C18.997715,33.8003693 18.997715,30.8316293 18.997715,30.8316293 C18.997715,30.0032063 19.669288,29.3316293 20.497715,29.3316293 C20.497715,29.3316293 33.5022154,29.3316293 33.5022154,29.3316293 C34.330615,29.3316293 35.0022049,30.0032073 35.0022049,30.8316293 C35.0022049,30.8316293 35.0022049,33.8003693 35.0022049,33.8003693 C35.0022049,33.8003693 35.0022049,33.8003693 35.0022049,33.8003693 Z" id="path-9"></path>
+        <filter x="-160.7%" y="-307.0%" width="421.5%" height="986.8%" filterUnits="objectBoundingBox" id="filter-10">
+            <feOffset dx="0" dy="7.91586637" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="7.25621128" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.0450000614   0 0 0 0 0.449999988  0 0 0 0.25 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-117.5%" y="-187.8%" width="335.1%" height="748.4%" filterUnits="objectBoundingBox" id="filter-11">
+            <feGaussianBlur stdDeviation="3.29827785" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-2" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.690196097   0 0 0 0 0.77694118   0 0 0 0 1  0 0 0 0.600000024 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
+        </filter>
+        <filter x="-57.5%" y="-264.7%" width="215.1%" height="629.4%" filterUnits="objectBoundingBox" id="filter-12">
+            <feGaussianBlur stdDeviation="4.41176471" in="SourceGraphic"></feGaussianBlur>
+        </filter>
+    </defs>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="工作台-首页" transform="translate(-358.000000, -221.000000)" fill-rule="nonzero">
+            <g id="Frame-427318626" transform="translate(338.000000, 201.000000)">
+                <g id="线上总内容" transform="translate(20.000000, 20.000000)">
+                    <rect x="0" y="0" width="54" height="54"></rect>
+                    <path d="M54,27 C54,41.9117012 41.9117012,54 27,54 C12.0882998,54 0,41.9117012 0,27 C0,12.0882998 12.0882998,0 27,0 C41.9117012,0 54,12.0882998 54,27 C54,27 54,27 54,27 Z" id="Ellipse-928" fill="#F6F7FB"></path>
+                    <g id="Subtract">
+                        <use fill="#7DA2FF" xlink:href="#path-1"></use>
+                        <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
+                    </g>
+                    <g id="Path">
+                        <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
+                        <use fill="#FFFFFF" xlink:href="#path-3"></use>
+                        <use fill="black" fill-opacity="1" filter="url(#filter-5)" xlink:href="#path-3"></use>
+                    </g>
+                    <g id="Path">
+                        <use fill="black" fill-opacity="1" filter="url(#filter-7)" xlink:href="#path-6"></use>
+                        <use fill="#FFFFFF" xlink:href="#path-6"></use>
+                        <use fill="black" fill-opacity="1" filter="url(#filter-8)" xlink:href="#path-6"></use>
+                    </g>
+                    <g id="Path" transform="translate(26.999960, 32.232665) scale(1, -1) translate(-26.999960, -32.232665) ">
+                        <use fill="black" fill-opacity="1" filter="url(#filter-10)" xlink:href="#path-9"></use>
+                        <use fill="#FFFFFF" xlink:href="#path-9"></use>
+                        <use fill="black" fill-opacity="1" filter="url(#filter-11)" xlink:href="#path-9"></use>
+                    </g>
+                    <ellipse id="Ellipse-940" fill="#7CA0FD" filter="url(#filter-12)" cx="27.5" cy="37.5" rx="11.5" ry="2.5"></ellipse>
+                    <path d="M35.5425758,21.3009915 C35.5425758,21.3009915 38.9999986,21.3009915 38.9999986,21.3009915 C38.9999986,21.3009915 33.5425758,15.9859619 33.5425758,15.9859619 C33.5425758,15.9859619 33.5425758,19.300992 33.5425758,19.300992 C33.5425758,20.4055619 34.4380049,21.3009915 35.5425758,21.3009915 C35.5425758,21.3009915 35.5425758,21.3009915 35.5425758,21.3009915 Z" id="Rectangle-34624040" fill="#B9CDFA"></path>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 199 - 0
src/assets/images/workbench/week.svg

@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title></title>
+    <defs>
+        <filter x="-57.5%" y="-264.7%" width="215.1%" height="629.4%" filterUnits="objectBoundingBox" id="filter-1">
+            <feGaussianBlur stdDeviation="4.41176471" in="SourceGraphic"></feGaussianBlur>
+        </filter>
+        <rect id="path-2" x="0" y="0" width="24" height="24"></rect>
+        <linearGradient x1="15.013428%" y1="4.4408921e-14%" x2="15.013428%" y2="69.9731469%" id="linearGradient-4">
+            <stop stop-color="#E14BFE" offset="0%"></stop>
+            <stop stop-color="#B84FD1" offset="100%"></stop>
+        </linearGradient>
+        <path d="M1.98000002,23.7599945 C1.98000002,23.7599945 11.7486,23.7599945 11.7486,23.7599945 C12.4216995,23.7599945 13.0692997,23.5029035 13.5592003,23.0412795 C13.5592003,23.0412795 18.9706001,17.9416146 18.9706001,17.9416146 C19.4999008,17.4427843 19.7999954,16.7476645 19.7999954,16.0203347 C19.7999954,16.0203347 19.7999954,1.97999382 19.7999954,1.97999382 C19.7999954,0.886493683 18.9134998,0 17.8199997,0 C17.8199997,0 1.98000002,0 1.98000002,0 C0.88647598,0 0,0.886493683 0,1.97999382 C0,1.97999382 0,21.7799945 0,21.7799945 C0,22.8735185 0.88647598,23.7599945 1.98000002,23.7599945 C1.98000002,23.7599945 1.98000002,23.7599945 1.98000002,23.7599945 Z" id="path-5"></path>
+        <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="linearGradient-7">
+            <stop stop-color="#E982FE" offset="0%"></stop>
+            <stop stop-color="#B353FF" offset="100%"></stop>
+        </linearGradient>
+        <path d="M1.98000002,0 C1.98000002,0 11.7486,0 11.7486,0 C12.4216995,0 13.0692997,0.257090986 13.5592003,0.718715012 C13.5592003,0.718715012 18.9706001,5.81837988 18.9706001,5.81837988 C19.4999008,6.3172102 19.7999954,7.01233006 19.7999954,7.73965979 C19.7999954,7.73965979 19.7999954,21.7800007 19.7999954,21.7800007 C19.7999954,22.8735008 18.9134998,23.7599945 17.8199997,23.7599945 C17.8199997,23.7599945 1.98000002,23.7599945 1.98000002,23.7599945 C0.88647598,23.7599945 0,22.8735008 0,21.7800007 C0,21.7800007 0,1.98000002 0,1.98000002 C0,0.88647598 0.88647598,0 1.98000002,0 C1.98000002,0 1.98000002,0 1.98000002,0 Z" id="path-8"></path>
+        <filter x="-78.3%" y="-48.4%" width="256.6%" height="230.5%" filterUnits="objectBoundingBox" id="filter-9">
+            <feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="4.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0.697798371   0 0 0 0 0.346805573   0 0 0 0 0.945833325  0 0 0 1 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-46.4%" y="-21.9%" width="192.9%" height="177.4%" filterUnits="objectBoundingBox" id="filter-10">
+            <feGaussianBlur stdDeviation="0.0327868871" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="0.131147549" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.968627453   0 0 0 0 0.600000024   0 0 0 0 0.984313726  0 0 0 1 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.131147549" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.131147549" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.25 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M15.839994,17.8199787 C15.839994,17.8199787 19.7999945,17.8199787 19.7999945,17.8199787 C19.7999945,17.8199787 19.7999945,23.7599754 19.7999945,23.7599754 C19.7999945,23.7599754 13.8599939,23.7599754 13.8599939,23.7599754 C13.8599939,23.7599754 13.8599939,19.7999787 13.8599939,19.7999787 C13.8599939,18.7064547 14.7464699,17.8199787 15.839994,17.8199787 C15.839994,17.8199787 15.839994,17.8199787 15.839994,17.8199787 Z" id="path-11"></path>
+        <filter x="-179.5%" y="-124.3%" width="459.0%" height="459.0%" filterUnits="objectBoundingBox" id="filter-12">
+            <feOffset dx="0" dy="3.28067374" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="3.00728416" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.0450000614   0 0 0 0 0.449999988  0 0 0 0.119999997 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-142.7%" y="-87.4%" width="385.4%" height="385.4%" filterUnits="objectBoundingBox" id="filter-13">
+            <feGaussianBlur stdDeviation="1.36694753" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-2.18711591" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.690196097   0 0 0 0 0.77694118   0 0 0 0 1  0 0 0 1 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.546778977" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.406153977" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.75 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M11.2545853,13.4352314 C11.5776854,13.8229554 11.5253053,14.3991923 11.1375852,14.7222924 C11.1375852,14.7222924 8.71309543,16.7427025 8.71309543,16.7427025 C8.51388526,16.9087124 8.25352526,16.9822724 7.99689531,16.9450524 C7.74026537,16.9078324 7.51153529,16.7633424 7.36769533,16.5475824 C7.36769533,16.5475824 6.55953231,15.3353324 6.55953231,15.3353324 C6.27957332,14.9153924 6.39304951,14.3480223 6.81298831,14.0680584 C7.23292631,13.7880994 7.80030537,13.9015754 8.08026528,14.3215123 C8.08026528,14.3215123 8.3243053,14.6875724 8.3243053,14.6875724 C8.3243053,14.6875724 9.96752524,13.3182254 9.96752524,13.3182254 C10.3552454,12.9951224 10.9314852,13.0475076 11.2545853,13.4352314 C11.2545853,13.4352314 11.2545853,13.4352314 11.2545853,13.4352314 Z" id="path-14"></path>
+        <filter x="-210.7%" y="-191.8%" width="521.4%" height="654.1%" filterUnits="objectBoundingBox" id="filter-15">
+            <feOffset dx="0" dy="3.28067374" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="3.00728416" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0.00314235687   0 0 0 0 0.0782448947   0 0 0 0 0.754166663  0 0 0 0.200000003 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-157.9%" y="-122.4%" width="415.8%" height="515.3%" filterUnits="objectBoundingBox" id="filter-16">
+            <feGaussianBlur stdDeviation="1.36694753" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-1.21846199" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.569999993   0 0 0 0 0.630800009   0 0 0 0 0.949999988  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.546778977" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.820168436" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.75 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M12.8708639,14.4247317 C12.8708639,13.9200287 13.2800069,13.5108857 13.7847099,13.5108857 C13.7847099,13.5108857 19.441854,13.5108857 19.441854,13.5108857 C19.9465537,13.5108857 20.3556976,13.9200287 20.3556976,14.4247317 C20.3556976,14.9294357 19.9465537,15.3385773 19.441854,15.3385773 C19.441854,15.3385773 13.7847099,15.3385773 13.7847099,15.3385773 C13.2800069,15.3385773 12.8708639,14.9294357 12.8708639,14.4247317 C12.8708639,14.4247317 12.8708639,14.4247317 12.8708639,14.4247317 Z" id="path-17"></path>
+        <filter x="-142.5%" y="-403.9%" width="384.9%" height="1266.7%" filterUnits="objectBoundingBox" id="filter-18">
+            <feOffset dx="0" dy="3.28067374" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="3.00728416" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0.00314235687   0 0 0 0 0.0782448947   0 0 0 0 0.754166663  0 0 0 0.200000003 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-106.8%" y="-257.7%" width="313.5%" height="974.4%" filterUnits="objectBoundingBox" id="filter-19">
+            <feGaussianBlur stdDeviation="1.36694753" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-1.21846199" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.569999993   0 0 0 0 0.630800009   0 0 0 0 0.949999988  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.546778977" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.820168436" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.75 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M11.254879,8.76759589 C11.254879,8.26289287 11.664022,7.85374987 12.168725,7.85374987 C12.168725,7.85374987 19.4421892,7.85374987 19.4421892,7.85374987 C19.9468994,7.85374987 20.356039,8.26289287 20.356039,8.76759589 C20.356039,9.27229989 19.9468994,9.68144131 19.4421892,9.68144131 C19.4421892,9.68144131 12.168725,9.68144131 12.168725,9.68144131 C11.664022,9.68144131 11.254879,9.27229989 11.254879,8.76759589 C11.254879,8.76759589 11.254879,8.76759589 11.254879,8.76759589 Z" id="path-20"></path>
+        <filter x="-117.2%" y="-403.9%" width="334.3%" height="1266.7%" filterUnits="objectBoundingBox" id="filter-21">
+            <feOffset dx="0" dy="3.28067374" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="3.00728416" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0.00314235687   0 0 0 0 0.0782448947   0 0 0 0 0.754166663  0 0 0 0.200000003 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-87.8%" y="-257.7%" width="275.6%" height="974.4%" filterUnits="objectBoundingBox" id="filter-22">
+            <feGaussianBlur stdDeviation="1.36694753" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-1.21846199" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.569999993   0 0 0 0 0.630800009   0 0 0 0 0.949999988  0 0 0 0.5 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.546778977" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.820168436" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.75 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+        <path d="M7.21373415,8.76758635 C7.21373415,8.26288334 7.60555115,7.85374033 8.08888215,7.85374033 C8.08888215,7.85374033 8.16627717,7.85374033 8.16627717,7.85374033 C8.6496042,7.85374033 9.04142547,8.26288334 9.04142547,8.76758635 C9.04142547,9.27229035 8.6496042,9.68143272 8.16627717,9.68143272 C8.16627717,9.68143272 8.08888215,9.68143272 8.08888215,9.68143272 C7.60555115,9.68143272 7.21373415,9.27229035 7.21373415,8.76758635 C7.21373415,8.76758635 7.21373415,8.76758635 7.21373415,8.76758635 Z" id="path-23"></path>
+        <filter x="-423.1%" y="-243.6%" width="946.2%" height="946.2%" filterUnits="objectBoundingBox" id="filter-24">
+            <feOffset dx="0" dy="3.28067374" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
+            <feGaussianBlur stdDeviation="2.03076959" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.0450000614   0 0 0 0 0.449999988  0 0 0 0.649999976 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+        </filter>
+        <filter x="-330.3%" y="-150.8%" width="760.7%" height="760.7%" filterUnits="objectBoundingBox" id="filter-25">
+            <feGaussianBlur stdDeviation="1.36694753" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="-1.21846199" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 0.569999993   0 0 0 0 0.630800009   0 0 0 0 0.949999988  0 0 0 0.400000006 0" type="matrix" in="shadowInnerInner1" result="shadowMatrixInner1"></feColorMatrix>
+            <feGaussianBlur stdDeviation="0.546778977" in="SourceAlpha" result="shadowBlurInner2"></feGaussianBlur>
+            <feOffset dx="0" dy="-0.820168436" in="shadowBlurInner2" result="shadowOffsetInner2"></feOffset>
+            <feComposite in="shadowOffsetInner2" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner2"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 1   0 0 0 0 1  0 0 0 0.75 0" type="matrix" in="shadowInnerInner2" result="shadowMatrixInner2"></feColorMatrix>
+            <feMerge>
+                <feMergeNode in="shadowMatrixInner1"></feMergeNode>
+                <feMergeNode in="shadowMatrixInner2"></feMergeNode>
+            </feMerge>
+        </filter>
+    </defs>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="工作台-首页" transform="translate(-606.000000, -221.000000)">
+            <g id="Frame-427318626" transform="translate(338.000000, 201.000000)">
+                <g id="Statistics/icon/down" transform="translate(248.000000, 0.000000)">
+                    <g id="Group-194755" transform="translate(20.000000, 20.000000)">
+                        <path d="M54,27 C54,41.9117012 41.9117012,54 27,54 C12.0882998,54 0,41.9117012 0,27 C0,12.0882998 12.0882998,0 27,0 C41.9117012,0 54,12.0882998 54,27 C54,27 54,27 54,27 Z" id="Ellipse-929" fill="#F6F7FB" fill-rule="nonzero"></path>
+                        <g id="Frame-427318657" transform="translate(14.999983, 14.999998)">
+                            <rect fill-rule="nonzero" x="0" y="0" width="24.0000019" height="25.0000019"></rect>
+                            <ellipse id="Ellipse-940" fill="#A667EB" fill-rule="nonzero" filter="url(#filter-1)" cx="11.5" cy="22.5000019" rx="11.5" ry="2.5"></ellipse>
+                            <g id="test" transform="translate(12.000000, 12.000002) scale(1, -1) translate(-12.000000, -12.000002) translate(0.000000, 0.000002)">
+                                <mask id="mask-3" fill="white">
+                                    <use xlink:href="#path-2" transform="translate(12.000000, 12.000000) scale(1, -1) translate(-12.000000, -12.000000) "></use>
+                                </mask>
+                                <g fill-rule="nonzero" transform="translate(12.000000, 12.000000) scale(1, -1) translate(-12.000000, -12.000000) "></g>
+                                <rect id="Rectangle-261" fill="url(#linearGradient-4)" fill-rule="nonzero" mask="url(#mask-3)" transform="translate(6.516626, 11.634465) scale(1, -1) translate(-6.516626, -11.634465) " x="0.0283190757" y="2.37415886" width="12.976613" height="18.5206127"></rect>
+                                <g mask="url(#mask-3)" id="Rectangle">
+                                    <g transform="translate(3.439971, 0.120579)">
+                                        <mask id="mask-6" fill="white">
+                                            <use xlink:href="#path-5"></use>
+                                        </mask>
+                                        <g id="mask-2" fill-rule="nonzero"></g>
+                                        <g id="Mask" fill-rule="nonzero" mask="url(#mask-6)" transform="translate(9.899998, 11.879997) scale(1, -1) translate(-9.899998, -11.879997) ">
+                                            <use fill="black" fill-opacity="1" filter="url(#filter-9)" xlink:href="#path-8"></use>
+                                            <use fill="url(#linearGradient-7)" xlink:href="#path-8"></use>
+                                            <use fill="black" fill-opacity="1" filter="url(#filter-10)" xlink:href="#path-8"></use>
+                                        </g>
+                                        <g id="Vector" fill-rule="nonzero" mask="url(#mask-6)">
+                                            <use fill="black" fill-opacity="1" filter="url(#filter-12)" xlink:href="#path-11"></use>
+                                            <use fill="#FFFFFF" xlink:href="#path-11"></use>
+                                            <use fill="black" fill-opacity="1" filter="url(#filter-13)" xlink:href="#path-11"></use>
+                                        </g>
+                                    </g>
+                                </g>
+                                <g id="Vector-139-(Stroke)" fill-rule="nonzero" mask="url(#mask-3)" transform="translate(8.936188, 15.030457) scale(1, -1) translate(-8.936188, -15.030457) ">
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-15)" xlink:href="#path-14"></use>
+                                    <use fill="#FFFFFF" xlink:href="#path-14"></use>
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-16)" xlink:href="#path-14"></use>
+                                </g>
+                                <g id="Vector-140-(Stroke)" fill-rule="nonzero" mask="url(#mask-3)" transform="translate(16.613281, 14.424731) scale(1, -1) translate(-16.613281, -14.424731) ">
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-18)" xlink:href="#path-17"></use>
+                                    <use fill="#FFFFFF" xlink:href="#path-17"></use>
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-19)" xlink:href="#path-17"></use>
+                                </g>
+                                <g id="Vector-141-(Stroke)" fill-rule="nonzero" mask="url(#mask-3)" transform="translate(15.805459, 8.767596) scale(1, -1) translate(-15.805459, -8.767596) ">
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-21)" xlink:href="#path-20"></use>
+                                    <use fill="#FFFFFF" xlink:href="#path-20"></use>
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-22)" xlink:href="#path-20"></use>
+                                </g>
+                                <g id="Vector-142-(Stroke)" fill-rule="nonzero" mask="url(#mask-3)" transform="translate(8.127580, 8.767587) scale(1, -1) translate(-8.127580, -8.767587) ">
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-24)" xlink:href="#path-23"></use>
+                                    <use fill="#FFFFFF" xlink:href="#path-23"></use>
+                                    <use fill="black" fill-opacity="1" filter="url(#filter-25)" xlink:href="#path-23"></use>
+                                </g>
+                            </g>
+                        </g>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 1 - 0
src/styles.less

@@ -5,6 +5,7 @@
 @import './styles/init.less';
 @import './styles/variables.less';
 @import './styles/custom.less';
+@import './styles/workbench.less';
 
 @layer components {
   .flex-center {

+ 37 - 0
src/styles/workbench.less

@@ -0,0 +1,37 @@
+.workbench-panel {
+  background: #ffffff;
+  box-shadow: 1px 2px 5px 2px rgba(229, 229, 229, 0.5);
+  border-radius: 16px;
+
+  .workbench-panel-header {
+    height: 54px;
+    border-bottom: 1px solid #f3f3f3;
+    .header-button-group {
+      display: flex;
+      align-items: center;
+      height: 100%;
+    }
+    .button-item {
+      display: inline-block;
+      border-radius: 10px;
+      padding: 0 24px;
+      height: 32px;
+      line-height: 32px;
+      color: rgba(102, 102, 102, 0.667);
+      margin-right: 8px;
+      cursor: pointer;
+      transition: all 0.3s;
+      &:hover {
+        background-color: var(--ant-primary-1);
+      }
+
+      &:last-child {
+        margin-right: 0;
+      }
+      &.active {
+        background-color: var(--ant-primary-color);
+        color: #ffffff;
+      }
+    }
+  }
+}