qinzhipeng_v 5 rokov pred
rodič
commit
2665fdbf25

+ 47 - 0
src/api/configure.js

@@ -0,0 +1,47 @@
+// 团队管理
+import request from '@/utils/request'
+import { TeamManagement } from '@/apiConfig/api'
+
+// 新建团队
+export function teamCreateTeam(data) {
+  return request({
+    url: TeamManagement + `/team/createTeam`,
+    method: 'post',
+    data
+  })
+}
+
+// 搜索员工信息
+export function memberQueryMemberInfoByIDAPorName(data) {
+  return request({
+    url: TeamManagement + `/member/queryMemberInfoByIDAPorName`,
+    method: 'post',
+    data
+  })
+}
+
+// 查询接口(团队)
+export function teamQueryTeamInfoList(data) {
+  return request({
+    url: TeamManagement + `/team/queryTeamInfoList`,
+    method: 'post',
+    data
+  })
+}
+
+// 查询接口(团队)
+export function configShowTeamAndMemberEnum() {
+  return request({
+    url: TeamManagement + `/config/showTeamAndMemberEnum`,
+    method: 'get'
+  })
+}
+
+// 团队名称是否重复
+export function teamIsTeamNameRepetition(data) {
+  return request({
+    url: TeamManagement + `/team/isTeamNameRepetition`,
+    method: 'post',
+    data
+  })
+}

+ 2 - 0
src/apiConfig/api.js

@@ -8,3 +8,5 @@ export const qualityUrl = 'http://10.179.181.103:8898' // 质量度量
 
 // export const HMvehicleUrl = 'http://10.96.113.197:9999' // 电单车 线下
 export const HMvehicleUrl = 'http://10.179.91.236:9999' // 电单车 线上
+
+export const TeamManagement = 'http://10.179.24.176:8990' // 团队配置

BIN
src/assets/内页logo2@2x.png


BIN
src/assets/内页logo2@2x1.png


BIN
src/assets/编组 22.png


+ 1 - 1
src/components/Breadcrumb/index.vue

@@ -66,7 +66,7 @@ export default {
 <style lang="scss" scoped>
 .app-breadcrumb.el-breadcrumb {
   display: inline-block;
-  font-size: 14px;
+  font-size: 16px;
   line-height: 50px;
   margin-left: 8px;
 

+ 6 - 4
src/components/Hamburger/index.vue

@@ -1,14 +1,16 @@
 <template>
-  <div style="padding: 0 15px;" @click="toggleClick">
+  <div style="padding: 0 15px; background: #409EFF;" @click="toggleClick">
     <svg
       :class="{'is-active':isActive}"
       class="hamburger"
+      style="fill:#fff;"
       viewBox="0 0 1024 1024"
       xmlns="http://www.w3.org/2000/svg"
       width="64"
       height="64"
     >
-      <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" />
+      <!-- <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" /> -->
+      <path d="M0 0m70.550626 0l987.708758 0q70.550626 0 70.550625 70.550626l0 0q0 70.550626-70.550625 70.550625l-987.708758 0q-70.550626 0-70.550626-70.550625l0 0q0-70.550626 70.550626-70.550626Z" fill="#FFFFFF" p-id="567" /><path d="M0 423.303754m70.550626 0l564.405004 0q70.550626 0 70.550626 70.550625l0 0q0 70.550626-70.550626 70.550626l-564.405004 0q-70.550626 0-70.550626-70.550626l0 0q0-70.550626 70.550626-70.550625Z" fill="#FFFFFF" p-id="568" /><path d="M0 846.607507m70.550626 0l987.708758 0q70.550626 0 70.550625 70.550626l0 0q0 70.550626-70.550625 70.550625l-987.708758 0q-70.550626 0-70.550626-70.550625l0 0q0-70.550626 70.550626-70.550626Z" fill="#FFFFFF" p-id="569" />
     </svg>
   </div>
 </template>
@@ -34,8 +36,8 @@ export default {
 .hamburger {
   display: inline-block;
   vertical-align: middle;
-  width: 20px;
-  height: 20px;
+  width: 15px;
+  height: 15px;
 }
 
 .hamburger.is-active {

+ 0 - 1
src/icons/svg/MQ.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#bfcbd9" d="M750.101 657.899c-16.512 0-30.272 2.752-44.032 8.256l-44.053-52.31c33.045-38.528 55.061-90.837 55.061-145.877 0-55.061-19.264-101.867-52.309-140.395l27.52-24.768c16.533 8.256 33.067 13.76 52.31 13.76 63.317 0 115.626-52.309 115.626-115.626 0-63.296-52.33-115.606-115.627-115.606-63.296 0-115.626 52.31-115.626 115.627 0 13.76 2.773 30.272 8.277 41.28l-35.776 30.293a223.147 223.147 0 0 0-112.853-30.293c-44.054 0-85.334 13.76-121.131 33.024l-41.301-52.288c0-5.504 2.773-13.781 2.773-19.285a74.027 74.027 0 0 0-74.325-74.304 74.027 74.027 0 0 0-74.326 74.304 74.027 74.027 0 0 0 74.304 74.325h8.278l44.032 55.04c-27.52 38.55-46.784 85.333-46.784 134.89 0 35.798 8.256 71.574 24.746 101.867l-35.776 30.294c-8.256-5.526-19.264-5.526-30.272-5.526-49.557 0-90.837 41.28-90.837 90.838s41.28 90.837 90.837 90.837 90.838-41.28 90.838-90.837c0-8.256 0-16.512-2.752-24.768l30.293-27.52c41.28 35.776 93.568 57.813 154.133 57.813 33.046 0 63.318-5.525 90.838-19.285l46.805 57.813c-11.008 19.264-19.264 44.032-19.264 68.8 0 77.077 63.296 140.395 143.147 140.395 79.808 0 143.146-63.318 143.146-140.374 0-77.098-66.09-140.394-145.92-140.394zM488.597 646.89c-99.093 0-181.674-79.83-181.674-178.923 0-99.115 82.581-178.944 181.674-178.944s181.675 79.83 181.675 178.944c0 99.093-82.56 178.923-181.675 178.923z m-57.813-181.696a33.024 33.024 0 1 1-66.027 0.021 33.024 33.024 0 0 1 66.048 0z m88.107 0a33.024 33.024 0 1 1-66.048 0.021 33.024 33.024 0 0 1 66.048 0z m90.837 0a33.024 33.024 0 1 1-66.048 0.021 33.024 33.024 0 0 1 66.048 0z"  /></svg>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
src/icons/svg/env.svg


+ 0 - 1
src/icons/svg/module.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#bfcbd9" d="M238.933333 546.133333h204.8v-204.8H238.933333v204.8z m0 68.266667v204.8h204.8v-204.8H238.933333z m273.066667-68.266667h202.513067C752.298667 546.133333 785.066667 573.474133 785.066667 610.6112v212.3776C785.066667 860.16 752.264533 887.466667 714.513067 887.466667H204.8a34.133333 34.133333 0 0 1-34.133333-34.133334V307.2a34.133333 34.133333 0 0 1 34.133333-34.133333h273.066667a34.133333 34.133333 0 0 1 34.133333 34.133333v238.933333z m0 68.266667v204.8h202.513067c1.9456 0 2.2528 0.1024 2.286933 1.8432v-208.4864c-0.034133 1.706667-0.341333 1.8432-2.286933 1.8432H512z m136.533333-375.466667v170.666667h170.666667V238.933333h-170.666667z m-34.133333-68.266666h238.933333a34.133333 34.133333 0 0 1 34.133334 34.133333v238.933333a34.133333 34.133333 0 0 1-34.133334 34.133334h-238.933333a34.133333 34.133333 0 0 1-34.133333-34.133334V204.8a34.133333 34.133333 0 0 1 34.133333-34.133333z" /></svg>

+ 0 - 1
src/icons/svg/rule.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#bfcbd9" d="M192 128V64H64v896h128v-64h-64V672h64v-64h-64V384h64v-64h-64V128h64zM960 637.67v-59.34a25.14 25.14 0 0 0-20.21-24.65l-76.67-15.33a25.25 25.25 0 0 1-18.75-16.2q-3.81-10.49-8.51-20.53a25.26 25.26 0 0 1 1.79-24.74L881 411.81a25.14 25.14 0 0 0-3.14-31.73l-42-42a25.14 25.14 0 0 0-31.67-3.08l-65.06 43.38a25.26 25.26 0 0 1-24.74 1.79q-10-4.69-20.53-8.51a25.25 25.25 0 0 1-16.2-18.75l-15.33-76.67A25.14 25.14 0 0 0 637.67 256h-59.34a25.14 25.14 0 0 0-24.65 20.21l-15.33 76.67a25.25 25.25 0 0 1-16.2 18.75q-10.49 3.81-20.53 8.51a25.26 25.26 0 0 1-24.74-1.79L411.81 335a25.14 25.14 0 0 0-31.73 3.14l-42 42a25.14 25.14 0 0 0-3.08 31.67l43.38 65.06a25.26 25.26 0 0 1 1.79 24.74q-4.69 10-8.51 20.53a25.25 25.25 0 0 1-18.75 16.2l-76.67 15.33A25.14 25.14 0 0 0 256 578.33v59.35a25.14 25.14 0 0 0 20.21 24.65l76.67 15.33a25.25 25.25 0 0 1 18.75 16.2q3.81 10.49 8.51 20.53a25.26 25.26 0 0 1-1.79 24.74L335 804.19a25.14 25.14 0 0 0 3.14 31.73l42 42a25.14 25.14 0 0 0 31.67 3.08l65.06-43.38a25.26 25.26 0 0 1 24.74-1.79q10 4.69 20.53 8.51a25.25 25.25 0 0 1 16.2 18.75l15.33 76.67A25.14 25.14 0 0 0 578.33 960h59.35a25.14 25.14 0 0 0 24.65-20.21l15.33-76.67a25.25 25.25 0 0 1 16.2-18.75q10.49-3.81 20.53-8.51a25.26 25.26 0 0 1 24.74 1.79L804.19 881a25.14 25.14 0 0 0 31.73-3.14l42-42a25.14 25.14 0 0 0 3.08-31.67l-43.38-65.06a25.26 25.26 0 0 1-1.79-24.74q4.69-10 8.51-20.53a25.25 25.25 0 0 1 18.75-16.2l76.67-15.33A25.14 25.14 0 0 0 960 637.67z m-245.33 77A150.86 150.86 0 1 1 758.86 608a149.87 149.87 0 0 1-44.19 106.67z" /></svg>

+ 0 - 1
src/icons/svg/上线质检.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1567668256021" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2187" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M399.36 536.84A55 55 0 0 0 460.61 626l70.6 72.72a55 55 0 1 0 34.24-36.52l-73.3-75.51a55.29 55.29 0 0 0 0.38-19.8l69.5-69.5a55 55 0 1 0-1.67-100l-69.34-70a55 55 0 1 0-34.76 36l73.67 74.42a54.91 54.91 0 0 0 0.39 20.64l-67.93 67.93a55 55 0 0 0-63.03 10.46z" p-id="2188"></path><path d="M891 164.57c-12.66-3.71-91.55-26.8-172.69-49.62C536.09 63.73 520.74 63.73 512.5 63.73h-1c-8.25 0-23.6 0-205.77 51.23-81.14 22.82-160 45.91-172.69 49.62a44.07 44.07 0 0 0-35.74 43.21v277.93c0 55.41 11.8 112.58 35.09 169.94a564.11 564.11 0 0 0 91.68 150.94C307 904.26 411.86 960.27 511.81 960.27v-64c-81.13 0-168.22-47.78-238.94-131.09C203 682.89 161.3 578.42 161.3 485.72V223.25c155.16-45.72 324.39-92.69 350.7-95.44 26.31 2.75 195.54 49.72 350.7 95.44v262.47c0 92.7-41.71 197.17-111.57 279.46-70.73 83.31-157.82 131.09-238.94 131.09v64c99.95 0 204.82-56 287.73-153.67a564.12 564.12 0 0 0 91.69-150.94c23.28-57.36 35.09-114.53 35.09-169.94V207.79a44.07 44.07 0 0 0-35.7-43.22z" p-id="2189"></path></svg>

+ 5 - 0
src/icons/svg/工作台.svg

@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M512.193536 625.152c195.9424 0 339.8656 45.4144 427.6224 134.8096 78.1312 79.8208 83.6096 166.4512 83.6096 182.9888 2.7136 20.6336-4.096 39.936-16.4352 55.04-13.7216 16.4864-34.304 24.7296-57.6 24.7296H76.276736c-23.296 0-45.2096-9.6256-60.3136-27.4944a69.12 69.12 0 0 1-15.0528-53.6576c0-17.92 6.8096-103.168 83.6096-181.6064C172.225536 670.5664 316.097536 625.152 512.142336 625.152zM784.884736 0.5632c16.384 0 31.488 13.7728 31.488 31.6416v272.384c-1.3312 165.12-137.0624 301.312-302.8992 301.312-167.2192 0-301.568-136.192-301.568-302.6944 0-166.4 135.68-302.6432 301.568-302.6432h271.36z m-271.4112 686.4896c-178.176 0-307.0464 38.5024-382.464 115.5584-67.1232 67.4304-67.1232 138.9568-67.1232 141.7216v5.4784c0 2.7648 0 4.096 1.3824 6.912 1.3824 2.7136 5.4784 4.096 10.9568 4.096h873.1136c5.4784 0 9.6256-1.3824 10.9568-4.096 1.3824-1.3824 2.7648-4.1472 1.3824-8.2944v-5.4784c0-2.7648 0-74.2912-67.1744-141.7216-75.3664-75.6736-204.2368-114.176-381.0304-114.176z m0-625.9712c-132.9664 0-239.872 108.6976-239.872 240.7936 0 133.4272 108.288 240.7424 239.872 240.7424 131.584 0 239.872-108.6976 239.872-240.7424V61.0816h-239.872z" fill="#565656" p-id="1360"></path><path d="M389.569536 307.2C373.441536 307.2 358.593536 291.328 358.593536 270.7968V189.952c0-18.944 13.4656-36.4032 30.976-36.4032 17.5104 0 30.976 15.872 30.976 36.4032V270.848c0 20.5824-13.4656 36.4032-30.976 36.4032z m142.848 0c-16.1792 0-31.0272-15.872-31.0272-36.4032V189.952c0-18.944 13.5168-36.4032 31.0272-36.4032 17.5104 0 30.976 15.872 30.976 36.4032V270.848c0 20.5824-13.4656 36.4032-30.976 36.4032z" fill="#409EFF" p-id="1361"></path></svg>
+
+
+
+

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
src/icons/svg/组织配置.svg


+ 1 - 0
src/icons/svg/质惠平台.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M488.03229 51.637657h0.739526-0.739526z m24.518117 27.191786L135.961235 414.175843v531.036241H887.94496V414.175843L512.49352 78.829443zM887.94496 1024H135.904349A79.072349 79.072349 0 0 1 56.832 945.212084V414.175843c0-22.413313 9.613832-43.745781 26.338487-58.650066L459.759659 20.122491a79.299895 79.299895 0 0 1 105.695269 0.113773l375.28078 335.289513c16.724655 14.961171 26.281601 36.236753 26.281601 58.593179v531.093128A79.072349 79.072349 0 0 1 887.888074 1024z" fill="#565656" p-id="658"></path><path d="M568.811236 853.340255H455.038073v-248.878796c0-19.625871 20.365396-35.554114 45.509265-35.554114h22.754633c25.143869 0 45.509265 15.928243 45.509265 35.554114V853.340255z" fill="#409EFF" p-id="659"></svg>

+ 1 - 0
src/icons/svg/质量度量.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M512.056889 1024C794.453333 1024 1024 794.282667 1024 512s-229.717333-512-511.943111-512C229.888 0 0 229.603556 0 512s229.717333 512 512.056889 512z m0-963.868444c249.116444 0 451.811556 202.752 451.811555 451.868444 0 249.173333-202.695111 451.868444-451.811555 451.868444-249.059556 0-451.754667-202.752-451.754667-451.868444C60.302222 262.826667 262.997333 60.131556 512 60.131556z" fill="#565656" p-id="2162"></path><path d="M586.524444 648.305778l-159.630222-180.337778L305.493333 603.704889l-46.535111-52.053333 167.822222-187.733334L586.524444 542.321778 722.773333 389.916444l48.241778 52.053334z" fill="#409EFF" p-id="2163"></path><path d="M824.888889 881.777778m-85.333333 0a85.333333 85.333333 0 1 0 170.666666 0 85.333333 85.333333 0 1 0-170.666666 0Z" fill="#409EFF" p-id="2164"></path></svg>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
src/icons/svg/项目管理.svg


+ 2 - 2
src/layout/components/AppMain.vue

@@ -22,13 +22,13 @@ export default {
 <style scoped>
 .app-main {
   /*50 = navbar  */
-  min-height: calc(100vh - 50px);
+  min-height: calc(100vh - 80px);
   width: 100%;
   position: relative;
   overflow: hidden;
 }
 .fixed-header+.app-main {
-  padding-top: 50px;
+  padding-top: 80px;
 }
 </style>
 

+ 34 - 55
src/layout/components/Navbar.vue

@@ -1,37 +1,14 @@
 <template>
   <div class="navbar">
-    <hamburger :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
-
-    <breadcrumb class="breadcrumb-container" />
-
-    <div class="right-menu">
-      <el-dropdown class="avatar-container" @command="handleCommand">
-        <div class="avatar-wrapper">
-          <img :src="navbarLogo.src" class="user-avatar">
-          <i class="el-icon-caret-bottom" />
-        </div>
-        <el-dropdown-menu slot="dropdown" class="user-dropdown">
-          <el-dropdown-item>
-            <span style="display:block;">{{ username }}</span>
-          </el-dropdown-item>
-          <router-link to="/">
-            <el-dropdown-item divided>
-              Home
-            </el-dropdown-item>
-          </router-link>
-          <el-dropdown-item divided command="b">
-            <span style="display:block;">Log Out</span>
-          </el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
+    <div>
+      <hamburger :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
+      <breadcrumb class="breadcrumb-container" />
+    </div>
+    <div>
+      <div class="right-menu">
+        <span class="avatar-container" style="color: #FFFFFF; font-size: 16px;">{{ username }}</span>
+      </div>
     </div>
-    <span>
-      <el-form :model="bizShow">
-        <el-select v-model="bizShow.id" style="width: 200px; float: right; padding: 5px;" placeholder="业务线" @change="bizchnage(bizShow.id)">
-          <el-option v-for="item in bizOptions" :key="item.id" :label="item.bizName" :value="item.id" />
-        </el-select>
-      </el-form>
-    </span>
   </div>
 </template>
 
@@ -39,10 +16,10 @@
 import { mapGetters } from 'vuex'
 import Breadcrumb from '@/components/Breadcrumb'
 import Hamburger from '@/components/Hamburger'
-import navbarLogo from '@/icons/rabbit-logo.gif'
+// import navbarLogo from '@/icons/rabbit-logo.gif'
 import { settingQueryBizTypeList } from '@/api/settingQueryBizTypeList.js'
 import Utils from '../../util.js'
-import { logoutUrl } from '@/api/user.js'
+// import { logoutUrl } from '@/api/user.js'
 
 export default {
   components: {
@@ -54,11 +31,11 @@ export default {
       bizOptions: [],
       bizShow: {
         id: ''
-      },
-      navbarLogo: {
-        name: 'navbarLogo',
-        src: navbarLogo
       }
+      // navbarLogo: {
+      //   name: 'navbarLogo',
+      //   src: navbarLogo
+      // }
     }
   },
   computed: {
@@ -77,18 +54,18 @@ export default {
     toggleSideBar() {
       this.$store.dispatch('app/toggleSideBar')
     },
-    logout() {
-      // await this.$store.dispatch('user/logout')
-      // this.$router.push(`/login?redirect=${this.$route.fullPath}`)
-      location.href = logoutUrl
-    },
-    handleCommand(command) {
-      switch (command) {
-        case 'b':
-          this.logout()
-          break
-      }
-    },
+    // logout() {
+    //   // await this.$store.dispatch('user/logout')
+    //   // this.$router.push(`/login?redirect=${this.$route.fullPath}`)
+    //   location.href = logoutUrl
+    // },
+    // handleCommand(command) {
+    //   switch (command) {
+    //     case 'b':
+    //       this.logout()
+    //       break
+    //   }
+    // },
     get_bizArr() {
       settingQueryBizTypeList({}).then(res => {
         this.bizOptions = res.data.list
@@ -108,7 +85,10 @@ export default {
 
 <style lang="scss" scoped>
 .navbar {
-  height: 50px;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  height: 80px;
   overflow: hidden;
   position: relative;
   background: #409EFF;
@@ -132,9 +112,9 @@ export default {
   }
 
   .right-menu {
-    float: right;
-    height: 100%;
-    line-height: 50px;
+    // float: right;
+    // height: 100%;
+    // line-height: 50px;
 
     &:focus {
       outline: none;
@@ -145,7 +125,7 @@ export default {
       padding: 0 8px;
       height: 100%;
       font-size: 18px;
-      color: #5a5e66;
+      color: #c0c8d8;
       vertical-align: text-bottom;
 
       &.hover-effect {
@@ -162,7 +142,6 @@ export default {
       margin-right: 30px;
 
       .avatar-wrapper {
-        margin-top: 5px;
         position: relative;
 
         .user-avatar {

+ 15 - 13
src/layout/components/Sidebar/Logo.vue

@@ -3,11 +3,11 @@
     <transition name="sidebarLogoFade">
       <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
         <img v-if="logo" :src="logo" class="sidebar-logo">
-        <h6 v-else class="sidebar-title">{{ title }} </h6>
+        <span v-else class="sidebar-title">质惠 </span>
       </router-link>
       <router-link v-else key="expand" class="sidebar-logo-link" to="/">
         <img v-if="logo" :src="logo" class="sidebar-logo">
-        <h6 class="sidebar-title">{{ title }} </h6>
+        <span class="sidebar-title">质惠 </span>
       </router-link>
     </transition>
   </div>
@@ -26,7 +26,6 @@ export default {
   },
   data() {
     return {
-      title: '质惠',
       logo: logoUrl
     }
   }
@@ -46,7 +45,7 @@ export default {
 .sidebar-logo-container {
   position: relative;
   width: 100%;
-  height: 50px;
+  height: 80px;
   line-height: 50px;
   background: #409EFF;
   text-align: center;
@@ -55,29 +54,32 @@ export default {
   & .sidebar-logo-link {
     height: 100%;
     width: 100%;
+    display: flex !important;
+    overflow: hidden;
+    justify-content: center;
+    align-items: center;
 
     & .sidebar-logo {
-      width: 32px;
-      height: 32px;
-      vertical-align: middle;
-      margin-right: 12px;
+      width: 40px;
+      height: 40px;
     }
 
     & .sidebar-title {
-      display: inline-block;
-      margin: 1% 0 0 0 ;
+      margin-left: 15px;
       color: #FFFFFF;
       font-weight: 600;
       line-height: 50px;
-      font-size: 24px;
+      font-size: 20pt;
       font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
-      vertical-align: middle;
     }
   }
 
   &.collapse {
     .sidebar-logo {
-      margin-right: 0px;
+      display: flex;
+      overflow: hidden;
+      justify-content: center;
+      align-items: center;
     }
   }
 }

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 38 - 28
src/layout/components/Sidebar/index.vue


+ 111 - 127
src/router/index.js

@@ -74,126 +74,22 @@ export const constantRoutes = [
   {
     path: '/Platform',
     component: Layout,
-    redirect: '/Platform/Workbench/PersonalWorkbench',
-    name: '流程管控',
-    meta: { title: '流程管控', icon: 'env' },
+    redirect: '/Platform/useCasePage',
+    name: '质惠平台',
+    meta: { title: '质惠平台', icon: '质惠平台' },
     children: [
-      {
-        path: '/Platform/Workbench',
-        name: '工作台',
-        component: () => import('@/views/Platform/presentation/testa'),
-        redirect: '/Platform/Workbench/PersonalWorkbench',
-        meta: { title: '工作台' },
-        children: [
-          {
-            path: 'PersonalWorkbench',
-            name: '个人工作台',
-            component: () => import('@/views/Platform/Workbench/PersonalWorkbench'),
-            meta: { title: '个人工作台' }
-          },
-          {
-            path: 'TeamWorkb1ench',
-            name: '团队工作台'
-          },
-          {
-            path: 'TeamWorkbench',
-            name: '团队工作台',
-            hidden: true,
-            component: () => import('@/views/Platform/Workbench/TeamWorkbench'),
-            meta: { title: '团队工作台' }
-          }
-        ]
-      },
-      {
-        path: '/Platform/projectManage',
-        name: '项目管理',
-        component: () => import('@/views/Platform/presentation/testa'),
-        redirect: '/Platform/projectManage/projectList',
-        meta: { title: '项目管理' },
-        children: [
-          {
-            path: 'projectList',
-            name: '项目列表',
-            component: () => import('@/views/projectManage/projectList/projectListIndex'),
-            meta: { title: '项目列表' }
-          },
-          {
-            path: 'projectCreate',
-            hidden: true,
-            name: '项目创建',
-            component: () => import('@/views/projectManage/projectList/projectCreate'),
-            meta: { title: '项目创建' }
-          },
-          {
-            path: 'projectPreview',
-            hidden: true,
-            name: '项目查看',
-            component: () => import('@/views/projectManage/projectList/projectPreview'),
-            meta: { title: '项目查看' }
-          },
-          {
-            path: 'taskList',
-            name: '任务列表',
-            component: () => import('@/views/projectManage/taskList/taskListIndex'),
-            meta: { title: '任务列表' }
-          },
-          {
-            path: 'taskCreate',
-            hidden: true,
-            name: '任务创建',
-            component: () => import('@/views/projectManage/taskList/taskCreate'),
-            meta: { title: '任务创建' }
-          },
-          {
-            path: 'taskPreview',
-            hidden: true,
-            name: '任务查看',
-            component: () => import('@/views/projectManage/taskList/taskPreview'),
-            meta: { title: '任务查看' }
-          },
-          {
-            path: 'taskUpdate',
-            hidden: true,
-            name: '任务更新',
-            component: () => import('@/views/projectManage/taskList/taskUpdateCreate'),
-            meta: { title: '任务更新' }
-          }
-        ]
-      },
       {
         path: '/Platform/useCasePage',
         name: '测试计划管理',
-        component: () => import('@/views/Platform/useCase/test'),
-        redirect: 'useCasePage',
+        component: () => import('@/views/Platform/useCasePage'),
         meta: { title: '测试计划管理' },
         children: [
           {
             path: 'useCasePage',
             name: '用例管理',
+            hidden: true,
             component: () => import('@/views/Platform/useCasePage'),
             meta: { title: '用例管理' }
-            // children: [
-            //   {
-            //     path: 'createUse',
-            //     name: '用例新增',
-            //     hidden: true,
-            //     component: () => import('@/views/Platform/useCase/createUse'),
-            //     meta: { title: '用例新增' }
-            //   },
-            //   {
-            //     path: 'queryUse',
-            //     name: '用例查看',
-            //     hidden: true,
-            //     component: () => import('@/views/Platform/useCase/queryUse'),
-            //     meta: { title: '用例查看' }
-            //   },
-            //   {
-            //     path: 'updateUse',
-            //     name: '用例编辑',
-            //     hidden: true,
-            //     component: () => import('@/views/Platform/useCase/updateUse'),
-            //     meta: { title: '用例编辑' }
-            //   }]
           },
           {
             path: 'createUse',
@@ -212,6 +108,7 @@ export const constantRoutes = [
           {
             path: 'testPageData',
             name: '测试计划',
+            hidden: true,
             component: () => import('@/views/Platform/testPage.vue'),
             meta: { title: '测试计划' }
           }
@@ -221,6 +118,7 @@ export const constantRoutes = [
       {
         path: '/Platform/presentation',
         name: '报告管理',
+        hidden: true,
         component: () => import('@/views/Platform/presentation/testa'),
         redirect: '/Platform/presentation/testPresentation',
         meta: { title: '报告管理' },
@@ -228,18 +126,21 @@ export const constantRoutes = [
           {
             path: 'testPresentation',
             name: '日报报告',
+            hidden: true,
             component: () => import('@/views/Platform/presentation/testPresentation'),
             meta: { title: '日报报告' }
           },
           {
             path: 'ResultPage',
             name: '准出报告',
+            hidden: true,
             component: () => import('@/views/Platform/presentation/ResultPage'),
             meta: { title: '准出报告' }
           },
           {
             path: 'Assumptions',
             name: '提测报告',
+            hidden: true,
             component: () => import('@/views/Platform/presentation/Assumptions'),
             meta: { title: '提测报告' }
           },
@@ -299,25 +200,12 @@ export const constantRoutes = [
             component: () => import('@/views/Platform/presentation/PresentReport'),
             meta: { title: '新增客户端提测报告' }
           }
-          // {
-          //   path: 'projectQuery',
-          //   name: '项目查看编辑',
-          //   hidden: true,
-          //   component: () => import('@/views/Platform/projectQuery/projectQuery.vue'),
-          //   meta: { title: '项目查看编辑' }
-          // },
-          // {
-          //   path: 'taskQuery',
-          //   name: '任务查看编辑',
-          //   hidden: true,
-          //   component: () => import('@/views/Platform/projectQuery/taskQuery.vue'),
-          //   meta: { title: '任务查看编辑' }
-          // }
         ]
       },
       {
         path: '/Platform/defectManagement',
         name: '缺陷管理',
+        hidden: true,
         component: () => import('@/views/Platform/defectManagement'),
         meta: { title: '缺陷管理' }
       },
@@ -346,41 +234,48 @@ export const constantRoutes = [
         path: '/Platform/setUp',
         // component: Layout,
         name: '设置',
+        hidden: true,
         // meta: { title: '设置' },
         component: () => import('@/views/Platform/setUp/testa'),
         meta: { title: '设置' },
         children: [{
           path: 'systemSetup',
           name: '系统设置',
+          hidden: true,
           component: () => import('@/views/Platform/setUp/systemSetup/testa'),
           meta: { title: '系统设置' },
           children: [{
             path: 'bizPage',
             name: '业务线',
+            hidden: true,
             component: () => import('@/views/Platform/setUp/systemSetup/bizPage'),
             meta: { title: '业务线' }
           },
           {
             path: 'platformPage',
             name: '平台类型',
+            hidden: true,
             component: () => import('@/views/Platform/setUp/systemSetup/platformPage'),
             meta: { title: '平台类型' }
           },
           {
             path: 'modulePage',
             name: '业务模块',
+            hidden: true,
             component: () => import('@/views/Platform/setUp/systemSetup/modulePage'),
             meta: { title: '业务模块' }
           },
           {
             path: 'projectPage',
             name: '工程模块',
+            hidden: true,
             component: () => import('@/views/Platform/setUp/systemSetup/projectPage'),
             meta: { title: '工程模块' }
           },
           {
             path: 'confList',
             name: '业务配置列表',
+            hidden: true,
             component: () => import('@/views/Platform/setUp/systemSetup/confList'),
             meta: { title: '业务配置列表' }
           },
@@ -397,6 +292,7 @@ export const constantRoutes = [
         {
           path: 'teamPage',
           name: '团队设置',
+          hidden: true,
           component: () => import('@/views/Platform/setUp/teamPage'),
           meta: { title: '团队设置' }
         }
@@ -404,9 +300,94 @@ export const constantRoutes = [
       }
     ]
   },
+  {
+    path: '/Platform/Workbench',
+    name: '工作台',
+    component: Layout,
+    redirect: '/Platform/Workbench/PersonalWorkbench',
+    meta: { title: '工作台', icon: '工作台' },
+    children: [
+      {
+        path: 'PersonalWorkbench',
+        name: '个人工作台',
+        component: () => import('@/views/Platform/Workbench/PersonalWorkbench'),
+        meta: { title: '个人工作台' }
+      },
+      {
+        path: 'TeamWorkb1ench',
+        name: '团队工作台'
+      },
+      {
+        path: 'TeamWorkbench',
+        name: '团队工作台',
+        hidden: true,
+        component: () => import('@/views/Platform/Workbench/TeamWorkbench'),
+        meta: { title: '团队工作台' }
+      }
+    ]
+  },
+
+  {
+    path: '/Platform/projectManage',
+    name: '项目管理',
+    component: Layout,
+    redirect: '/Platform/projectManage/projectList',
+    meta: { title: '项目管理', icon: '项目管理' },
+    children: [
+      {
+        path: 'projectList',
+        name: '项目列表',
+        // hidden: true,
+        component: () => import('@/views/projectManage/projectList/projectListIndex'),
+        meta: { title: '项目列表' }
+      },
+      {
+        path: 'projectCreate',
+        hidden: true,
+        name: '项目创建',
+        component: () => import('@/views/projectManage/projectList/projectCreate'),
+        meta: { title: '项目创建' }
+      },
+      {
+        path: 'projectPreview',
+        hidden: true,
+        name: '项目查看',
+        component: () => import('@/views/projectManage/projectList/projectPreview'),
+        meta: { title: '项目查看' }
+      },
+      {
+        path: 'taskList',
+        name: '任务列表',
+        component: () => import('@/views/projectManage/taskList/taskListIndex'),
+        meta: { title: '任务列表' }
+      },
+      {
+        path: 'taskCreate',
+        hidden: true,
+        name: '任务创建',
+        component: () => import('@/views/projectManage/taskList/taskCreate'),
+        meta: { title: '任务创建' }
+      },
+      {
+        path: 'taskPreview',
+        hidden: true,
+        name: '任务查看',
+        component: () => import('@/views/projectManage/taskList/taskPreview'),
+        meta: { title: '任务查看' }
+      },
+      {
+        path: 'taskUpdate',
+        hidden: true,
+        name: '任务更新',
+        component: () => import('@/views/projectManage/taskList/taskUpdateCreate'),
+        meta: { title: '任务更新' }
+      }
+    ]
+  },
   {
     path: '/env-platform',
     component: Layout,
+    hidden: true,
     redirect: '/env-platform/env',
     name: '环境',
     meta: { title: '环境平台', icon: 'env_platform' },
@@ -466,6 +447,7 @@ export const constantRoutes = [
   {
     path: '/mock',
     component: Layout,
+    hidden: true,
     redirect: '/mock/interface',
     name: 'Mock',
     meta: { title: 'Mock服务', icon: 'MQ' },
@@ -502,9 +484,9 @@ export const constantRoutes = [
   {
     path: '/data',
     component: Layout,
+    hidden: true,
     redirect: '/data/upload-file',
     name: '数据中心',
-    hidden: true,
     meta: { title: '数据中心', icon: 'examlpe' },
     children: [
       {
@@ -525,9 +507,10 @@ export const constantRoutes = [
   {
     path: '/virtualDevices',
     component: Layout,
+    hidden: true,
     redirect: '/virtualDevices/HTvehicle',
     name: '虚拟硬件',
-    meta: { title: '虚拟硬件', icon: 'module' },
+    meta: { title: '虚拟硬件', icon: 'zhiliangdapan' },
     children: [
       {
         path: 'HTvehicle',
@@ -554,6 +537,7 @@ export const constantRoutes = [
   {
     path: '/online-quality',
     component: Layout,
+    hidden: true,
     redirect: '/online-quality/check-list',
     name: '上线质检',
     meta: { title: '上线质检', icon: '上线质检' },
@@ -594,7 +578,7 @@ export const constantRoutes = [
     component: Layout,
     redirect: '/quality/qualityMeasurement',
     name: '质量度量',
-    meta: { title: '质量度量', icon: 'rule' },
+    meta: { title: '质量度量', icon: '质量度量' },
     children: [
       {
         path: 'qualityMeasurement',
@@ -665,7 +649,7 @@ export const constantRoutes = [
         name: '组织配置',
         // hidden: true,
         component: () => import('@/views/ToConfigure/configure'),
-        meta: { title: '组织配置' }
+        meta: { title: '组织配置', icon: '组织配置' }
       }
     ]
   }

+ 7 - 8
src/styles/sidebar.scss

@@ -37,11 +37,11 @@
       height: 100%;
     }
 
-    &.has-logo {
-      .el-scrollbar {
-        height: calc(100% - 50px);
-      }
-    }
+    // &.has-logo { // 导航栏设置隐藏高度
+    //   .el-scrollbar {
+    //     height: calc(100% - 50px);
+    //   }
+    // }
 
     .is-horizontal {
       display: none;
@@ -68,7 +68,7 @@
     .el-submenu__title {
       &:hover {
         background-color: $menuHover !important;
-        color: #FFFFFF !important;
+        color: #409EFF !important;
       }
     }
 
@@ -83,8 +83,7 @@
       
       &:hover {
         background-color: $subMenuHover !important;
-        color: #FFFFFF
-         !important;
+        color: #409EFF !important;
       }
     }
   }

+ 2 - 4
src/styles/variables.scss

@@ -12,13 +12,12 @@
 // sidebar
 $menuText:#333B4A;
 $menuActiveText:#409EFF;
-// $subMenuActiveText: red;
 
 $menuBg:#FFFFFF;
-$menuHover:#409EFF;
+$menuHover:#F2F2F2;
 
 $subMenuBg:#FFFFFF;
-$subMenuHover:#409EFF;
+$subMenuHover:#F2F2F2;
 
 $sideBarWidth: 210px;
 
@@ -27,7 +26,6 @@ $sideBarWidth: 210px;
 :export {
   menuText: $menuText;
   menuActiveText: $menuActiveText;
-  // subMenuActiveText: $subMenuActiveText;
   menuBg: $menuBg;
   menuHover: $menuHover;
   subMenuBg: $subMenuBg;

+ 193 - 78
src/views/ToConfigure/configure.vue

@@ -1,61 +1,70 @@
 <template>
-  <div class="bgColorSz">
-    <el-tabs v-model="activeName" class="abc">
-      <el-tab-pane label="我的" name="second">
-        <div align="right" style="margin-right: 1%;"><el-button size="mini" type="primary" @click="create_test(form)">新建团队</el-button></div>
-        <div align="center" style="margin: 1%;">
-          <el-table :data="tableData" max-height="590" :header-cell-style="{ background: '#F0F2F4', color: '#333B4A' }" size="mini" border align="center" :show-overflow-tooltip="true">
-            <el-table-column label="团队名称" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.names }}</template></el-table-column>
-            <el-table-column label="我的角色" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.address }}</template></el-table-column>
-            <el-table-column label="成员名单" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.date }}</template></el-table-column>
-            <el-table-column label="操作" align="center">
-              <template slot-scope="scope">
-                <el-button size="mini" type="primary" plain @click="update_test(scope.row)">编辑</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-      </el-tab-pane>
-
-      <el-tab-pane label="全部" name="third">
-        <div align="right" style="margin-right: 1%;"><el-button size="mini" type="primary" @click="create_test(form)">新建团队</el-button></div>
-        <div align="center" style="margin: 1%;">
-          <el-table :data="tableData" max-height="590" :header-cell-style="{ background: '#F0F2F4', color: '#333B4A' }" size="mini" width="80%" border show-overflow-tooltip="true">
-            <el-table-column label="团队名称" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.names }}</template></el-table-column>
-            <el-table-column label="团队属性" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.address1 }}</template></el-table-column>
-            <el-table-column label="成员名单" min-width="120" align="center">
-              <template slot-scope="scope">
-                <span>{{ scope.row.date }}<span style="color: red; margin-left: 2%;" /></span><br>
-                <span>{{ scope.row.date }}<span style="color: red; margin-left: 2%;">Lerader</span></span><br>
-              </template>
-            </el-table-column>
-            <el-table-column label="操作" align="center">
-              <template slot-scope="scope">
-                <el-button size="mini" type="primary" plain @click="update_test(scope.row)">编辑</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-      </el-tab-pane>
-    </el-tabs>
+  <div class="1hao" style="height: calc(100vh - 80px);background-color:#F2F3F6;display:flex;align-items: center;justify-content: center;">
+    <div class="2hao" style="height: 96%;width: 98%;background-color: white;overflow: auto;border-radius:8px;">
+      <el-tabs v-model="activeName" class="abc" @tab-click="handleClick">
+        <el-tab-pane label="我的" name="second">
+          <div align="right" style="margin-right: 1%;"><el-button size="mini" type="primary" @click="create_test(form)">新建团队</el-button></div>
+          <div align="center" style="margin: 1%;">
+            <el-table :data="tableData" :header-cell-style="{ background: '#F0F2F4', color: '#333B4A' }" size="mini" border align="center" :show-overflow-tooltip="true">
+              <el-table-column label="团队名称" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.teamName }}</template></el-table-column>
+              <el-table-column label="我的角色" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.teamAttribute[0] }}</template></el-table-column>
+              <el-table-column label="成员名单" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.date }}</template></el-table-column>
+              <el-table-column label="操作" align="center">
+                <template slot-scope="scope">
+                  <el-button size="mini" type="primary" plain @click="update_test(scope.row)">编辑</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-pagination :current-page.sync="currentPage1" :page-size="100" background layout="total, prev, pager, next" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="全部" name="third">
+          <div align="right" style="margin-right: 1%;"><el-button size="mini" type="primary" @click="create_test(form)">新建团队</el-button></div>
+          <div align="center" style="margin: 1%;">
+            <el-table :data="tableData" :header-cell-style="{ background: '#F0F2F4', color: '#333B4A' }" size="mini" width="80%" border show-overflow-tooltip="true">
+              <el-table-column label="团队名称" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.teamName }}</template></el-table-column>
+              <el-table-column label="团队属性" min-width="120" align="center"><template slot-scope="scope">{{ scope.row.teamAttribute[0] }}, {{ scope.row.teamAttribute[1] }}</template></el-table-column>
+              <el-table-column label="成员名单" min-width="120" align="center">
+                <template slot-scope="scope">
+                  <span v-for="item in scope.row.memberName" :key="item">{{ item }}<span style="color: red; margin-left: 2%;">Lerader</span><br></span>
+                  <span v-for="(item, index) in scope.row.memberName1" :key="index">{{ item }}<br></span>
+                </template>
+              </el-table-column>
+              <el-table-column label="操作" align="center">
+                <template slot-scope="scope">
+                  <el-button size="mini" type="primary" plain @click="update_test(scope.row)">编辑</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-pagination :current-page.sync="currentPage1" :page-size="100" background layout="total, prev, pager, next" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+    </div>
     <el-dialog title="新建团队" :visible.sync="dialogFormVisible" width="30%" center>
       <el-form ref="form" label-position="left" :model="form" :rules="rules" label-width="110px">
-        <el-form-item label="团队名称" prop="address">
-          <el-input v-model="form.address" autocomplete="off" placeholder="请输入团队名称,不得超过20个汉字" />
+        <el-form-item label="团队名称" prop="teamName">
+          <el-input v-model="form.teamName" autocomplete="off" placeholder="请输入团队名称,不得超过20个汉字" @blur="blur_teamName(form.teamName)" />
         </el-form-item>
-        <el-form-item label="团队属性" prop="address1">
-          <el-select v-model="form.address1" style="width: 100%;" placeholder="请选择">
-            <el-option v-for="item in array_tim" :key="item.code" :label="item.name" :value="item.code" />
+        <el-form-item label="团队属性" prop="teamAttribute">
+          <el-select v-model="form.teamAttribute" style="width: 100%;" placeholder="请选择">
+            <el-option v-for="item in arr_team" :key="item.code" :label="item.msg" :value="item.code" />
           </el-select>
         </el-form-item>
         <el-form-item label="团队Lerader">
-          <el-select v-model="form.name" multiple collapse-tags filterable style="width: 100%;" placeholder="请输入姓名或者邮箱前缀">
-            <el-option v-for="item in array_tim" :key="item.code" :label="item.name" :value="item.code" />
+          <el-select v-model="form.lerader" style="width: 100%;" multiple filterable remote reserve-keyword placeholder="请输入姓名或者邮箱前缀" :remote-method="remoteMethod" :loading="loading" @change="team_lerader(form.lerader)">
+            <el-option v-for="item in options" :key="item.empId" :label="item.name" :value="test2(item, 1)">
+              <span style="float: left">{{ item.name }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px,">{{ item.idap }}</span>
+            </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="团队成员" prop="dates">
-          <el-select v-model="form.dates" multiple collapse-tags filterable style="width: 100%;" placeholder="请输入姓名或者邮箱前缀">
-            <el-option v-for="item in array_tim" :key="item.code" :label="item.name" :value="item.code" />
+          <el-select v-model="form.dates" style="width: 100%;" multiple filterable remote reserve-keyword placeholder="请输入姓名或者邮箱前缀" :remote-method="remoteMethod" :loading="loading" @change="team_dates(form.dates)">
+            <el-option v-for="item in options" :key="item.empId" :label="item.name" :value="test2(item, 0)">
+              <span style="float: left">{{ item.name }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px,">{{ item.idap }}</span>
+            </el-option>
           </el-select>
         </el-form-item>
       </el-form>
@@ -68,7 +77,7 @@
 </template>
 <script>
 
-// import {  } from '@/api/workbench'
+import { teamCreateTeam, memberQueryMemberInfoByIDAPorName, teamQueryTeamInfoList, configShowTeamAndMemberEnum, teamIsTeamNameRepetition } from '@/api/configure'
 
 export default {
   name: 'PersonalWorkbench',
@@ -78,29 +87,91 @@ export default {
       bizJson: localStorage.getItem('key'),
       dialogFormVisible: false,
       activeName: 'second',
+      currentPage1: 1,
       gridData: [],
+      arr_team: [],
       rules: {
-        address: [{ required: true, message: '团队名称不能为空', trigger: 'change' }, { max: 20, message: '团队名称,不得超过20个汉字', trigger: 'blur' }],
-        address1: [{ required: true, message: '团队属性不能为空', trigger: 'change' }],
-        // name: [{ required: true, message: '团队Lerader不能为空', trigger: ['blur', 'change'] }],
+        teamName: [{ required: true, message: '团队名称不能为空', trigger: 'change' }, { max: 20, message: '团队名称,不得超过20个汉字', trigger: 'blur' }],
+        teamAttribute: [{ required: true, message: '团队属性不能为空', trigger: 'change' }],
         dates: [{ required: true, message: '团队成员不能为空', trigger: ['blur', 'change'] }]
       },
-      array_tim: [{ code: '1', name: '汝瑞' }, { code: '2', name: '秦志鹏' }, { code: '3', name: '赵杰' }],
+      teamRoleEnum: [],
+      teamMemberRelateInfos: [],
       form: {},
-      tableData: []
+      tableData: [],
+      options: [],
+      lerader: [],
+      tates: [],
+      depid: [],
+      loading: false,
+      test: {},
+      arry: [],
+      arr: [],
+      total: 0,
+      curIndex: 1,
+      pageSize: 15
     }
   },
   created() {
-    this.haha()
+    this.get_select()
+    this.get_list(this.userInformation)
   },
   methods: {
-    haha() {
-      var arr = { dates: ['2'], date: '秦志鹏', names: '两轮车B端', name: ['1'], address: 'rd qa pm', address1: '不知道' }
-      for (var i = 0; i <= 60; i++) {
-        this.tableData.push(arr)
+    // 获取团队人员信息
+    test2(item, e) {
+      if (typeof this.test[item.idap] === 'undefined') {
+        item.role = e
+        this.test[item.idap] = item
+      }
+      return item.idap
+    },
+    // 获得list
+    get_list(e) {
+      var arr = { memberIDAP: e, curIndex: this.curIndex, pageSize: this.pageSize }
+      teamQueryTeamInfoList(arr).then(res => {
+        if (res.code === 200 && res.data.list !== null) {
+          res.data.list.map(item => {
+            this.teamRoleEnum.map(item1 => {
+              item.teamAttribute[0] === item1.code ? item.teamAttribute[0] = item1.msg : ''
+              item.teamAttribute[1] === item1.code ? item.teamAttribute[1] = item1.msg : ''
+            })
+            item.memberName = []
+            item.memberName1 = []
+            item.teamLeaderRelateInfoResponseList.map(item2 => {
+              item.memberName.push(item2.memberName)
+            })
+            item.teamMemberRelateInfoResponseList.map(item3 => {
+              item.memberName1.push(item3.memberName)
+            })
+            this.tableData = res.data.list
+          })
+          this.total = res.data.total
+        }
+      })
+    },
+    remoteMethod(query) {
+      if (query !== '') {
+        this.loading = true
+        setTimeout(() => {
+          this.loading = false
+          memberQueryMemberInfoByIDAPorName({ memberIDAP: query }).then(res => {
+            this.options = res.data
+          })
+        }, 200)
+      } else {
+        this.options = []
       }
     },
 
+    // 团队名称重复
+    blur_teamName(e) {
+      teamIsTeamNameRepetition({ teamName: e }).then(res => {
+        if (res.data === true) {
+          this.$set(this.form, 'teamName', '')
+        }
+      })
+    },
+
     // 点击新增按钮
     create_test() {
       this.dialogFormVisible = true
@@ -119,13 +190,71 @@ export default {
       this.form = e
     },
 
+    // 改变lerader
+    team_lerader(e) {
+      this.form.arr = []
+      for (const i in e) {
+        this.form.arr.push(this.test[e[i]])
+      }
+      this.arr = this.form.arr.map(item => {
+        return { memberIDAP: item.idap, department: item.deptid, role: 1 }
+      })
+    },
+    // 改变成员
+    team_dates(e) {
+      this.form.arry = []
+      for (const i in e) {
+        this.form.arry.push(this.test[e[i]])
+      }
+      this.arry = this.form.arry.map(item => {
+        return { memberIDAP: item.idap, department: item.deptid, role: 0 }
+      })
+      console.log(this.arry)
+    },
+
     // 创建团队
     Preservation(form) {
       this.$refs['form'].validate((valid) => {
         if (valid) {
-          console.log(form)
+          var team = {
+            teamName: form.teamName,
+            teamAttribute: form.teamAttribute,
+            teamMemberRelateInfoRequests: this.arr.concat(this.arry),
+            creator: this.userInformation,
+            modifier: this.userInformation
+          }
+          teamCreateTeam(team).then(res => {
+            if (res.code === 200) {
+              this.dialogFormVisible = false
+              this.$message({ message: res.msg, type: 'success' })
+            } else {
+              this.dialogFormVisible = true
+              this.$message({ message: res.msg, type: 'error' })
+            }
+          })
         }
       })
+    },
+    // 切换(我的/全部)
+    handleClick(tab, event) {
+      tab.index === '0' ? this.get_list(this.userInformation) : this.get_list()
+    },
+    //  分页
+    handleSizeChange(val) {
+      console.log(`每页 ${val} 条`)
+    },
+    handleCurrentChange(val) {
+      console.log(`当前页: ${val}`)
+    },
+
+    get_select() { // 获取下拉菜单数据
+      configShowTeamAndMemberEnum().then(res => {
+        this.teamRoleEnum = res.data.teamRoleEnum // 团队属性
+        this.memberRoleEnum = res.data.memberRoleEnum // lerader
+        this.arr_team = this.teamRoleEnum.filter(item => {
+          return item.code <= 3
+        })
+      })
     }
   }
 }
@@ -134,29 +263,15 @@ export default {
   .abc .el-tabs__nav-wrap::after {
     background-color:#FFFFFF !important;
   }
-  .bgColorSz .el-tabs__nav-scroll {
-    padding: 1% 2% 0 1% !important;
+  .abc .el-tabs__nav-scroll {
+    padding: 0% 2% 0 1% !important;
   }
   .bgColorSz .el-dialog {
     border-radius: 8px;
   }
 </style>
 <style scoped>
-  .abc {
-    background:#FFFFFF;
-    border-radius:8px;
-    margin: 0 1%;
-    width: 100%;
-    height: 97%;
-  }
-
-  .bgColorSz {
-    width: 100%;
-    height: calc(100vh - 50px);
-    background: #F2F3F6;
-    font-size: 0.9rem;
-    display: flex;
-    justify-content: center;
-    align-items: center;
+  .el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after {
+    display: none;
   }
 </style>

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov