Parcourir la source

Merge branch 'master' of http://36.137.93.232:3000/hf/byte-sailing-new

cz il y a 2 ans
Parent
commit
a7330c0311

+ 1 - 0
package.json

@@ -15,6 +15,7 @@
     "url": "https://gitee.com/y_project/RuoYi-Vue.git"
   },
   "dependencies": {
+    "@antv/x6": "^2.9.4",
     "@element-plus/icons-vue": "2.0.10",
     "@vueuse/core": "9.5.0",
     "axios": "0.27.2",

+ 509 - 3
src/assets/icons/iconfont/demo_index.html

@@ -55,6 +55,138 @@
           <ul class="icon_lists dib-box">
           
             <li class="dib">
+              <span class="icon iconfont">&#xe7f3;</span>
+                <div class="name">icomx_xialan </div>
+                <div class="code-name">&amp;#xe7f3;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7f4;</span>
+                <div class="name">iconm_xialan</div>
+                <div class="code-name">&amp;#xe7f4;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7f2;</span>
+                <div class="name">icomx_gengdxq</div>
+                <div class="code-name">&amp;#xe7f2;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7f0;</span>
+                <div class="name">iconm_quertj</div>
+                <div class="code-name">&amp;#xe7f0;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7ed;</span>
+                <div class="name">iconm_gongndh</div>
+                <div class="code-name">&amp;#xe7ed;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7ee;</span>
+                <div class="name">icomx_gongndh</div>
+                <div class="code-name">&amp;#xe7ee;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7ef;</span>
+                <div class="name">iconm_shouqan</div>
+                <div class="code-name">&amp;#xe7ef;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7f1;</span>
+                <div class="name">icomx_shouqan</div>
+                <div class="code-name">&amp;#xe7f1;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7f5;</span>
+                <div class="name">icomx_suoxck</div>
+                <div class="code-name">&amp;#xe7f5;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7f6;</span>
+                <div class="name">icomx_quertj</div>
+                <div class="code-name">&amp;#xe7f6;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7f7;</span>
+                <div class="name">iconm_fangdck</div>
+                <div class="code-name">&amp;#xe7f7;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7f8;</span>
+                <div class="name">iconm_suoxck</div>
+                <div class="code-name">&amp;#xe7f8;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7f9;</span>
+                <div class="name">iconm_quertj</div>
+                <div class="code-name">&amp;#xe7f9;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7fa;</span>
+                <div class="name">iconm_gengdxq</div>
+                <div class="code-name">&amp;#xe7fa;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7e5;</span>
+                <div class="name">iconm_mine</div>
+                <div class="code-name">&amp;#xe7e5;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7e6;</span>
+                <div class="name">icomx_mine</div>
+                <div class="code-name">&amp;#xe7e6;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7e7;</span>
+                <div class="name">iconm_message</div>
+                <div class="code-name">&amp;#xe7e7;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7e8;</span>
+                <div class="name">icomx_message</div>
+                <div class="code-name">&amp;#xe7e8;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7e9;</span>
+                <div class="name">icomx_gongzt</div>
+                <div class="code-name">&amp;#xe7e9;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7ea;</span>
+                <div class="name">iconm_gongzt</div>
+                <div class="code-name">&amp;#xe7ea;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7eb;</span>
+                <div class="name">icomx_wulw</div>
+                <div class="code-name">&amp;#xe7eb;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe7ec;</span>
+                <div class="name">iconm_wulw</div>
+                <div class="code-name">&amp;#xe7ec;</div>
+              </li>
+          
+            <li class="dib">
               <span class="icon iconfont">&#xe70a;</span>
                 <div class="name">iconm_renwzp</div>
                 <div class="code-name">&amp;#xe70a;</div>
@@ -1512,9 +1644,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1680225653630') format('woff2'),
-       url('iconfont.woff?t=1680225653630') format('woff'),
-       url('iconfont.ttf?t=1680225653630') format('truetype');
+  src: url('iconfont.woff2?t=1680573314108') format('woff2'),
+       url('iconfont.woff?t=1680573314108') format('woff'),
+       url('iconfont.ttf?t=1680573314108') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -1541,6 +1673,204 @@
         <ul class="icon_lists dib-box">
           
           <li class="dib">
+            <span class="icon iconfont icon-icomx_xialan1"></span>
+            <div class="name">
+              icomx_xialan 
+            </div>
+            <div class="code-name">.icon-icomx_xialan1
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_xialan1"></span>
+            <div class="name">
+              iconm_xialan
+            </div>
+            <div class="code-name">.icon-iconm_xialan1
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-icomx_gengdxq"></span>
+            <div class="name">
+              icomx_gengdxq
+            </div>
+            <div class="code-name">.icon-icomx_gengdxq
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_quertj1"></span>
+            <div class="name">
+              iconm_quertj
+            </div>
+            <div class="code-name">.icon-iconm_quertj1
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_gongndh"></span>
+            <div class="name">
+              iconm_gongndh
+            </div>
+            <div class="code-name">.icon-iconm_gongndh
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-icomx_gongndh"></span>
+            <div class="name">
+              icomx_gongndh
+            </div>
+            <div class="code-name">.icon-icomx_gongndh
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_xialan"></span>
+            <div class="name">
+              iconm_shouqan
+            </div>
+            <div class="code-name">.icon-iconm_xialan
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-icomx_xialan"></span>
+            <div class="name">
+              icomx_shouqan
+            </div>
+            <div class="code-name">.icon-icomx_xialan
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-icomx_suoxck"></span>
+            <div class="name">
+              icomx_suoxck
+            </div>
+            <div class="code-name">.icon-icomx_suoxck
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-icomx_quertj"></span>
+            <div class="name">
+              icomx_quertj
+            </div>
+            <div class="code-name">.icon-icomx_quertj
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_fangdck"></span>
+            <div class="name">
+              iconm_fangdck
+            </div>
+            <div class="code-name">.icon-iconm_fangdck
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_suoxck"></span>
+            <div class="name">
+              iconm_suoxck
+            </div>
+            <div class="code-name">.icon-iconm_suoxck
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_quertj"></span>
+            <div class="name">
+              iconm_quertj
+            </div>
+            <div class="code-name">.icon-iconm_quertj
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_gengdxq"></span>
+            <div class="name">
+              iconm_gengdxq
+            </div>
+            <div class="code-name">.icon-iconm_gengdxq
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_mine"></span>
+            <div class="name">
+              iconm_mine
+            </div>
+            <div class="code-name">.icon-iconm_mine
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-icomx_mine"></span>
+            <div class="name">
+              icomx_mine
+            </div>
+            <div class="code-name">.icon-icomx_mine
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_message"></span>
+            <div class="name">
+              iconm_message
+            </div>
+            <div class="code-name">.icon-iconm_message
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-icomx_message"></span>
+            <div class="name">
+              icomx_message
+            </div>
+            <div class="code-name">.icon-icomx_message
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-icomx_gongzt"></span>
+            <div class="name">
+              icomx_gongzt
+            </div>
+            <div class="code-name">.icon-icomx_gongzt
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_gongzt"></span>
+            <div class="name">
+              iconm_gongzt
+            </div>
+            <div class="code-name">.icon-iconm_gongzt
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-icomx_wulw"></span>
+            <div class="name">
+              icomx_wulw
+            </div>
+            <div class="code-name">.icon-icomx_wulw
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-iconm_wulw"></span>
+            <div class="name">
+              iconm_wulw
+            </div>
+            <div class="code-name">.icon-iconm_wulw
+            </div>
+          </li>
+          
+          <li class="dib">
             <span class="icon iconfont icon-iconm_renwzp"></span>
             <div class="name">
               iconm_renwzp
@@ -3729,6 +4059,182 @@
           
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_xialan1"></use>
+                </svg>
+                <div class="name">icomx_xialan </div>
+                <div class="code-name">#icon-icomx_xialan1</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_xialan1"></use>
+                </svg>
+                <div class="name">iconm_xialan</div>
+                <div class="code-name">#icon-iconm_xialan1</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_gengdxq"></use>
+                </svg>
+                <div class="name">icomx_gengdxq</div>
+                <div class="code-name">#icon-icomx_gengdxq</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_quertj1"></use>
+                </svg>
+                <div class="name">iconm_quertj</div>
+                <div class="code-name">#icon-iconm_quertj1</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_gongndh"></use>
+                </svg>
+                <div class="name">iconm_gongndh</div>
+                <div class="code-name">#icon-iconm_gongndh</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_gongndh"></use>
+                </svg>
+                <div class="name">icomx_gongndh</div>
+                <div class="code-name">#icon-icomx_gongndh</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_xialan"></use>
+                </svg>
+                <div class="name">iconm_shouqan</div>
+                <div class="code-name">#icon-iconm_xialan</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_xialan"></use>
+                </svg>
+                <div class="name">icomx_shouqan</div>
+                <div class="code-name">#icon-icomx_xialan</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_suoxck"></use>
+                </svg>
+                <div class="name">icomx_suoxck</div>
+                <div class="code-name">#icon-icomx_suoxck</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_quertj"></use>
+                </svg>
+                <div class="name">icomx_quertj</div>
+                <div class="code-name">#icon-icomx_quertj</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_fangdck"></use>
+                </svg>
+                <div class="name">iconm_fangdck</div>
+                <div class="code-name">#icon-iconm_fangdck</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_suoxck"></use>
+                </svg>
+                <div class="name">iconm_suoxck</div>
+                <div class="code-name">#icon-iconm_suoxck</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_quertj"></use>
+                </svg>
+                <div class="name">iconm_quertj</div>
+                <div class="code-name">#icon-iconm_quertj</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_gengdxq"></use>
+                </svg>
+                <div class="name">iconm_gengdxq</div>
+                <div class="code-name">#icon-iconm_gengdxq</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_mine"></use>
+                </svg>
+                <div class="name">iconm_mine</div>
+                <div class="code-name">#icon-iconm_mine</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_mine"></use>
+                </svg>
+                <div class="name">icomx_mine</div>
+                <div class="code-name">#icon-icomx_mine</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_message"></use>
+                </svg>
+                <div class="name">iconm_message</div>
+                <div class="code-name">#icon-iconm_message</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_message"></use>
+                </svg>
+                <div class="name">icomx_message</div>
+                <div class="code-name">#icon-icomx_message</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_gongzt"></use>
+                </svg>
+                <div class="name">icomx_gongzt</div>
+                <div class="code-name">#icon-icomx_gongzt</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_gongzt"></use>
+                </svg>
+                <div class="name">iconm_gongzt</div>
+                <div class="code-name">#icon-iconm_gongzt</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-icomx_wulw"></use>
+                </svg>
+                <div class="name">icomx_wulw</div>
+                <div class="code-name">#icon-icomx_wulw</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-iconm_wulw"></use>
+                </svg>
+                <div class="name">iconm_wulw</div>
+                <div class="code-name">#icon-iconm_wulw</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-iconm_renwzp"></use>
                 </svg>
                 <div class="name">iconm_renwzp</div>

+ 91 - 3
src/assets/icons/iconfont/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 3933484 */
-  src: url('iconfont.woff2?t=1680225653630') format('woff2'),
-       url('iconfont.woff?t=1680225653630') format('woff'),
-       url('iconfont.ttf?t=1680225653630') format('truetype');
+  src: url('iconfont.woff2?t=1680573314108') format('woff2'),
+       url('iconfont.woff?t=1680573314108') format('woff'),
+       url('iconfont.ttf?t=1680573314108') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,94 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-icomx_xialan1:before {
+  content: "\e7f3";
+}
+
+.icon-iconm_xialan1:before {
+  content: "\e7f4";
+}
+
+.icon-icomx_gengdxq:before {
+  content: "\e7f2";
+}
+
+.icon-iconm_quertj1:before {
+  content: "\e7f0";
+}
+
+.icon-iconm_gongndh:before {
+  content: "\e7ed";
+}
+
+.icon-icomx_gongndh:before {
+  content: "\e7ee";
+}
+
+.icon-iconm_xialan:before {
+  content: "\e7ef";
+}
+
+.icon-icomx_xialan:before {
+  content: "\e7f1";
+}
+
+.icon-icomx_suoxck:before {
+  content: "\e7f5";
+}
+
+.icon-icomx_quertj:before {
+  content: "\e7f6";
+}
+
+.icon-iconm_fangdck:before {
+  content: "\e7f7";
+}
+
+.icon-iconm_suoxck:before {
+  content: "\e7f8";
+}
+
+.icon-iconm_quertj:before {
+  content: "\e7f9";
+}
+
+.icon-iconm_gengdxq:before {
+  content: "\e7fa";
+}
+
+.icon-iconm_mine:before {
+  content: "\e7e5";
+}
+
+.icon-icomx_mine:before {
+  content: "\e7e6";
+}
+
+.icon-iconm_message:before {
+  content: "\e7e7";
+}
+
+.icon-icomx_message:before {
+  content: "\e7e8";
+}
+
+.icon-icomx_gongzt:before {
+  content: "\e7e9";
+}
+
+.icon-iconm_gongzt:before {
+  content: "\e7ea";
+}
+
+.icon-icomx_wulw:before {
+  content: "\e7eb";
+}
+
+.icon-iconm_wulw:before {
+  content: "\e7ec";
+}
+
 .icon-iconm_renwzp:before {
   content: "\e70a";
 }

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
src/assets/icons/iconfont/iconfont.js


+ 154 - 0
src/assets/icons/iconfont/iconfont.json

@@ -6,6 +6,160 @@
   "description": "",
   "glyphs": [
     {
+      "icon_id": "34887337",
+      "name": "icomx_xialan ",
+      "font_class": "icomx_xialan1",
+      "unicode": "e7f3",
+      "unicode_decimal": 59379
+    },
+    {
+      "icon_id": "34887338",
+      "name": "iconm_xialan",
+      "font_class": "iconm_xialan1",
+      "unicode": "e7f4",
+      "unicode_decimal": 59380
+    },
+    {
+      "icon_id": "34887266",
+      "name": "icomx_gengdxq",
+      "font_class": "icomx_gengdxq",
+      "unicode": "e7f2",
+      "unicode_decimal": 59378
+    },
+    {
+      "icon_id": "34887201",
+      "name": "iconm_quertj",
+      "font_class": "iconm_quertj1",
+      "unicode": "e7f0",
+      "unicode_decimal": 59376
+    },
+    {
+      "icon_id": "34887144",
+      "name": "iconm_gongndh",
+      "font_class": "iconm_gongndh",
+      "unicode": "e7ed",
+      "unicode_decimal": 59373
+    },
+    {
+      "icon_id": "34887145",
+      "name": "icomx_gongndh",
+      "font_class": "icomx_gongndh",
+      "unicode": "e7ee",
+      "unicode_decimal": 59374
+    },
+    {
+      "icon_id": "34887146",
+      "name": "iconm_shouqan",
+      "font_class": "iconm_xialan",
+      "unicode": "e7ef",
+      "unicode_decimal": 59375
+    },
+    {
+      "icon_id": "34887148",
+      "name": "icomx_shouqan",
+      "font_class": "icomx_xialan",
+      "unicode": "e7f1",
+      "unicode_decimal": 59377
+    },
+    {
+      "icon_id": "34887152",
+      "name": "icomx_suoxck",
+      "font_class": "icomx_suoxck",
+      "unicode": "e7f5",
+      "unicode_decimal": 59381
+    },
+    {
+      "icon_id": "34887153",
+      "name": "icomx_quertj",
+      "font_class": "icomx_quertj",
+      "unicode": "e7f6",
+      "unicode_decimal": 59382
+    },
+    {
+      "icon_id": "34887154",
+      "name": "iconm_fangdck",
+      "font_class": "iconm_fangdck",
+      "unicode": "e7f7",
+      "unicode_decimal": 59383
+    },
+    {
+      "icon_id": "34887155",
+      "name": "iconm_suoxck",
+      "font_class": "iconm_suoxck",
+      "unicode": "e7f8",
+      "unicode_decimal": 59384
+    },
+    {
+      "icon_id": "34887156",
+      "name": "iconm_quertj",
+      "font_class": "iconm_quertj",
+      "unicode": "e7f9",
+      "unicode_decimal": 59385
+    },
+    {
+      "icon_id": "34887157",
+      "name": "iconm_gengdxq",
+      "font_class": "iconm_gengdxq",
+      "unicode": "e7fa",
+      "unicode_decimal": 59386
+    },
+    {
+      "icon_id": "34855703",
+      "name": "iconm_mine",
+      "font_class": "iconm_mine",
+      "unicode": "e7e5",
+      "unicode_decimal": 59365
+    },
+    {
+      "icon_id": "34855704",
+      "name": "icomx_mine",
+      "font_class": "icomx_mine",
+      "unicode": "e7e6",
+      "unicode_decimal": 59366
+    },
+    {
+      "icon_id": "34855705",
+      "name": "iconm_message",
+      "font_class": "iconm_message",
+      "unicode": "e7e7",
+      "unicode_decimal": 59367
+    },
+    {
+      "icon_id": "34855706",
+      "name": "icomx_message",
+      "font_class": "icomx_message",
+      "unicode": "e7e8",
+      "unicode_decimal": 59368
+    },
+    {
+      "icon_id": "34855707",
+      "name": "icomx_gongzt",
+      "font_class": "icomx_gongzt",
+      "unicode": "e7e9",
+      "unicode_decimal": 59369
+    },
+    {
+      "icon_id": "34855708",
+      "name": "iconm_gongzt",
+      "font_class": "iconm_gongzt",
+      "unicode": "e7ea",
+      "unicode_decimal": 59370
+    },
+    {
+      "icon_id": "34855709",
+      "name": "icomx_wulw",
+      "font_class": "icomx_wulw",
+      "unicode": "e7eb",
+      "unicode_decimal": 59371
+    },
+    {
+      "icon_id": "34855710",
+      "name": "iconm_wulw",
+      "font_class": "iconm_wulw",
+      "unicode": "e7ec",
+      "unicode_decimal": 59372
+    },
+    {
       "icon_id": "34839741",
       "name": "iconm_renwzp",
       "font_class": "iconm_renwzp",

BIN
src/assets/icons/iconfont/iconfont.ttf


BIN
src/assets/icons/iconfont/iconfont.woff


BIN
src/assets/icons/iconfont/iconfont.woff2


+ 26 - 6
src/components/byForm/index.vue

@@ -21,13 +21,13 @@
 						? 'width:' + formOption.itemWidth + '%'
 						: '100%'
 				"
+				:class="i.isHide ? 'dn' : ''"
 			>
-				
 				<el-input
 					v-if="i.type == 'input'"
 					v-model="formData[i.prop]"
 					:placeholder="i.placeholder || '请输入'"
-					@input="commonsEmit"
+					@input="((e)=>commonsEmit(e,i))"
 					:type="i.itemType ? i.itemType : 'text'"
 					:disabled="i.disabled ? i.disabled : false"
 					:max="i.max"
@@ -39,7 +39,7 @@
 					:multiple="i.multiple || false"
 					v-else-if="i.type == 'select'"
 					:placeholder="i.placeholder || '请选择'"
-					@change="commonsEmit"
+					@change="((e)=>commonsEmit(e,i))"
 					:disabled="i.disabled ? i.disabled : false"
 					:style="i.style"
 				>
@@ -165,7 +165,10 @@ const formData = computed(() => {
 	return proxy.modelValue	
 })
 const formDataReset = ref({...proxy.modelValue})
-const commonsEmit = (prop) => {
+const commonsEmit = (prop,item) => {
+	if(item.fn) {
+		item.fn(prop)
+	}
 	emit('update:modelValue', formData.value)
 }
 const loadInit = () => {
@@ -195,8 +198,19 @@ const dateFormatInit = ((itemType) => {
 //公用递归,保证key,val统一
 const commonRecursive = (arr, labelKey, labelVal, childrenName) => {
 	for (let i = 0; i < arr.length; i++) {
-		arr[i].title = arr[i].label = arr[i][labelKey]
-		arr[i].id = arr[i].value = arr[i][labelVal]
+		console.log(arr[i])
+		if(labelKey == 'stringArray'){
+			arr[i] = {
+				label:arr[i],
+				value:arr[i],
+				id:arr[i],
+				title:arr[i],
+			}
+		}else{
+			arr[i].title = arr[i].label = arr[i][labelKey]
+			arr[i].id = arr[i].value = arr[i][labelVal]
+		}
+		
 		if (childrenName) {
 			arr[i].children = arr[i][childrenName]
 		}
@@ -218,6 +232,7 @@ const commonRecursive = (arr, labelKey, labelVal, childrenName) => {
 //请求form表单所需数据字典
 const commonGetdata = (isLoad,i) => {
 	proxy[isLoad.method](isLoad.url,isLoad.req).then(message=>{
+		console.log(message)
 		if (getFormat(isLoad.resUrl, message) == undefined) {
 			console.log('请查看isLoad配置是否正确url:' + isLoad.url)
 			return
@@ -231,6 +246,7 @@ const commonGetdata = (isLoad,i) => {
 				isLoad.childrenName
 			)
 		}
+		console.log(proxy.formConfig[i].data)
 	})
 }
 
@@ -318,5 +334,9 @@ loadInit()
 	box-sizing: border-box;
 }
 
+.dn{
+	display: none!important;
+}
+
 
 </style>

+ 5 - 0
src/components/byTable/demo.vue

@@ -283,9 +283,14 @@ const formConfig = computed(() => {
 			isLoad: {
 				url: '/getRouters',
 				resUrl: 'data',
+				//如果接口回来为stringArray,可以把labelkey和labelval都设置为stringArray
 				labelKey: 'name',
 				labelVal: 'path',
 			},
+			//所有组件的change事件监听
+			fn: (e) => {
+				console.log(e)
+			},
 		},
 		{
 			type: 'date',

+ 16 - 4
src/components/headerBar/header-bar.vue

@@ -3,12 +3,14 @@
 		<header>
 			<ul class="nav">
 				<div class="logo">ByteSailing</div>
-				<li class="header-bar-hover-warp nav-li">
+				<li class="header-bar-hover-warp nav-li" :class="isChildMenu ? 'active' : ''">
 					<div
 						@click="isChildMenu = !isChildMenu"
 						class="menu-modal"
 					>
+						<i class="iconfont icon-icomx_gongndh" style="margin: 0 5px 0 0;"></i>
 						功能导览
+						<i class="iconfont icon-iconm_xialan1" style="margin: 0 0 0 3px;"></i>
 					</div>
 				</li>
 				<div class="auto-list">
@@ -17,6 +19,7 @@
 					</li>
 					<li class="nav-li more-box">
 						更多
+						<i class="iconfont icon-iconm_xialan1"></i>
 					</li>
 				</div>
 				
@@ -70,9 +73,9 @@
 											class="menu-title"
 											v-else-if="i.isTitle"
 										>
-										<i  :class="'iconfont icon-' +  i.meta.icon" style="position: relative;top: -1px;"></i>
+										<!-- <i  :class="'iconfont icon-' +  i.meta.icon" style="position: relative;top: -1px;"></i> -->
 											
-										{{ i.meta.title }}
+											{{ i.meta && !i.hidden ? i.meta.title : '' }}
 										</li>
 										<li
 											v-else
@@ -80,7 +83,7 @@
 											@click="routerPush(i)"
 											style="cursor: pointer"
 										>
-											{{ i.meta.title }}
+											{{ i.meta && !i.hidden ? i.meta.title : '' }}
 										</li>
 									</div>
 								</ul>
@@ -208,6 +211,7 @@ const routerInit = () => {
 			
 		}
 	}
+	console.log(arr)
 	sidebarRouters.value = arr
 }
 function handleCommand(command) {
@@ -238,6 +242,7 @@ function logout() {
 }
 //拼接url跳转
 function routerPush(i) {
+	if(i.hide) return
 	router.push(i.fatherPath + '/' + i.path)
 	isChildMenu.value = false
 }
@@ -441,6 +446,13 @@ onMounted(() => {
 				color: #fff;
 			}
 		}
+		.nav-li:hover{
+			background: #444;
+
+		}
+		.nav-li.active:hover{
+			background: #0084ff;
+		}
 	}
 	header {
 		z-index: 11205;

+ 3 - 1
src/store/modules/user.js

@@ -17,7 +17,8 @@ const useUserStore = defineStore(
       name: '',
       avatar: '',
       roles: [],
-      permissions: []
+      permissions: [],
+      user: {},
     }),
     actions: {
       // 登录
@@ -51,6 +52,7 @@ const useUserStore = defineStore(
               this.roles = ['ROLE_DEFAULT']
             }
             this.name = user.userName
+            this.user = user
             this.avatar = avatar;
             resolve(res)
           }).catch(error => {

+ 286 - 0
src/views/process/porcessDefinition/index.vue

@@ -0,0 +1,286 @@
+<template>
+	<div class="tenant">
+		<!-- <Banner /> -->
+		<div class="content">
+			<byTable
+				:source="sourceList.data"
+				:pagination="sourceList.pagination"
+				:config="config"
+				:loading="loading"
+				highlight-current-row
+				:selectConfig="selectConfig"
+				:table-events="{
+					//element talbe事件都能传
+					select: select,
+				}"
+				:action-list="[
+					{
+						text: '添加',
+						action: () => openModal('add'),
+					},
+				]"
+				@get-list="getList"
+			>
+				<template #slotName="{ item }">
+					{{ item.createTime }}
+				</template>
+			</byTable>
+		</div>
+		<el-dialog
+			:title="modalType == 'add' ? '新增' : '编辑'"
+			v-model="dialogVisible"
+			width="400"
+			v-loading="loading"
+		>
+			<byForm
+				:formConfig="formConfig"
+				:formOption="formOption"
+				v-model="formData.data"
+				:rules="rules"
+				ref="byform"
+			>
+			</byForm>
+			<template #footer>
+				<el-button @click="dialogVisible = false" size="large"
+					>取 消</el-button
+				>
+				<el-button
+					type="primary"
+					@click="submitForm('byform')"
+					size="large"
+					:loading="submitLoading"
+				>
+					确 定
+				</el-button>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+    
+  <script setup>
+/* eslint-disable vue/no-unused-components */
+import { ElMessage, ElMessageBox } from 'element-plus'
+import byTable from '@/components/byTable/index'
+import byForm from '@/components/byForm/index'
+import { computed, defineComponent, ref } from 'vue'
+const loading = ref(false)
+const submitLoading = ref(false)
+const dictCommonModal = ref(false)
+const sourceList = ref({
+	data: [],
+	pagination: {
+		total: 3,
+		pageNum: 1,
+		pageSize: 10,
+	},
+})
+let dialogVisible = ref(false)
+let roomDialogVisible = ref(false)
+let modalType = ref('add')
+let rules = ref({
+	classifyName: [{ required: true, message: '请输入功能模块', trigger: 'blur' }],
+	flowKey: [{ required: true, message: '请输入流程标识', trigger: 'blur' }],
+	flowName: [{ required: true, message: '请输入流程名称', trigger: 'blur' },],
+})
+const { proxy } = getCurrentInstance()
+const selectConfig = computed(() => {
+	return []
+})
+const config = computed(() => {
+	return [
+        {
+			attrs: {
+				label: '功能模块',
+                prop: 'classifyName',
+			},
+		},
+		{
+			attrs: {
+				label: '流程标识',
+				prop: 'flowKey',
+			},
+		},
+        {
+			attrs: {
+				label: '流程名称',
+				prop: 'flowName',
+			},
+		},
+		{
+			attrs: {
+				label: '状态',
+				width: 100,
+				prop: 'status',
+			},
+			render(status) {
+				//1审核中 2审核通过 3审核不通过
+				return status == 0
+					? '禁用'
+					: '启用'
+					
+			},
+		},
+		{
+			attrs: {
+				label: '创建时间',
+				prop: 'createTime',
+			},
+		},
+		{
+			attrs: {
+				label: '操作',
+				width: '200',
+				align: 'right',
+			},
+			// 渲染 el-button,一般用在最后一列。
+			renderHTML(row) {
+				return [
+					{
+					  attrs: {
+					    label: "修改",
+					    type: "primary",
+					    text: true,
+					  },
+					  el: "button",
+					  click() {
+					    getDtl(row);
+					  },
+					},
+					{
+						attrs: {
+							label: row.status == 1 ? '禁用' : '启用',
+							type: 'primary',
+							text: true,
+						},
+						el: 'button',
+						click() {
+							changeStatus(row)
+						},
+					},
+				]
+			},
+		},
+	]
+})
+let dtlData = reactive({
+	data: {},
+})
+let formData = reactive({
+	data: {},
+	treeData: [],
+})
+const formOption = reactive({
+	inline: true,
+	labelWidth: 100,
+	itemWidth: 100,
+	rules: [],
+})
+const byform = ref(null)
+const treeData = ref([])
+const formConfig = computed(() => {
+	return [
+        {
+			type: 'input',
+			prop: 'classifyName',
+			label: '功能模块',
+            
+		},
+		{
+			type: 'input',
+			prop: 'flowKey',
+			label: '流程标识',
+            isHide:modalType.value == 'edit'
+		},
+		{
+			type: 'input',
+			prop: 'flowName',
+			label: '流程名称',
+		},
+	]
+})
+const getList = async (req) => {
+	sourceList.value.pagination = { ...sourceList.value.pagination, ...req }
+	loading.value = true
+	proxy
+		.post('/flowInfo/page', sourceList.value.pagination)
+		.then((message) => {
+			console.log(message)
+			sourceList.value.data = message.rows
+			sourceList.value.pagination.total = message.total
+			setTimeout(() => {
+				loading.value = false
+			}, 200)
+		})
+}
+
+const openModal = () => {
+	dialogVisible.value = true
+	modalType.value = 'add'
+	formData.data = {}
+}
+const selection = ref({
+	data: [],
+})
+const select = (_selection, row) => {
+	selection.value.data = _selection
+	console.log(_selection.length)
+}
+
+const tree = ref(null)
+const submitTree = () => {
+	proxy
+		.post('/tenantInfo/bindingMenu', {
+			tenantId: selection.value.data[0].tenantId,
+			menuIdList: tree.value.getCheckedKeys(),
+		})
+		.then((res) => {
+			ElMessage({
+				message: '保存成功',
+				type: 'success',
+			})
+			roomDialogVisible.value = false
+		})
+}
+
+const submitForm = () => {
+	byform.value.handleSubmit((valid) => {
+		submitLoading.value = true
+		proxy
+			.post('/flowInfo/' + modalType.value, formData.data)
+			.then((res) => {
+				ElMessage({
+					message: modalType.value == 'add' ? '添加成功' : '编辑成功',
+					type: 'success',
+				})
+				dialogVisible.value = false
+				submitLoading.value = false
+				getList()
+			})
+	})
+}
+
+const getDtl = (row) => {
+	formData.data = { ...row }
+	modalType.value = 'edit'
+	dialogVisible.value = true
+}
+
+const changeStatus = (row) => {
+	modalType.value = 'edit'
+	proxy.post('/flowInfo/edit', { ...row,status:(row.status === 0) ? 1 : 0 }).then((res) => {
+		ElMessage({
+            message: '操作成功',
+            type: 'success',
+        })
+        getList()
+	})
+}
+
+getList()
+</script>
+    
+  <style lang="scss" scoped>
+.tenant {
+	padding: 20px;
+}
+</style>

+ 0 - 242
src/views/process/processApproval.vue

@@ -1,242 +0,0 @@
-<template>
-  <div class="processApproval">
-    <div class="left-card">
-      <div class="commons-title title">流程标题</div>
-      <div class="">
-        <p>流程内容</p>
-        <p>流程内容</p>
-        <p>流程内容</p>
-        <p>流程内容</p>
-        <p>流程内容</p>
-        <p>流程内容</p>
-        <p>流程内容</p>
-        <p>流程内容</p>
-      </div>
-    </div>
-    <div class="right-card">
-      <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
-        <el-tab-pane label="审批记录" name="first">
-          <ul class="flow-chart">
-            <li>
-              <div class="left-icon">
-                <i class="iconfont icon-iconm_daick"></i>
-                <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
-              </div>
-              <div class="right-conetnt">
-                <div class="name">
-                  发起人:张三
-                  <span>2022-11-11 00:00:00</span>
-                </div>
-
-                <div class="remark">
-                  <div class="label">发起审批</div>
-                  1231231231231321231
-                </div>
-              </div>
-              <div class="line"></div>
-            </li>
-            <li>
-              <div class="left-icon">
-                <i class="iconfont icon-iconm_daick"></i>
-                <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
-              </div>
-              <div class="right-conetnt">
-                <div class="name">
-                  发起人:张三
-                  <span>2022-11-11 00:00:00</span>
-                </div>
-
-                <div class="remark">
-                  <div class="label">发起审批</div>
-
-                  <div>
-                    啊圣诞快乐家里快速打击啊老师的煎熬老师的煎熬上来看大家速度快垃圾上单绿卡数据的卡拉数据的卡拉设计的拉开时间
-                  </div>
-                </div>
-              </div>
-              <div class="line"></div>
-            </li>
-            <li>
-              <div class="left-icon">
-                <i class="iconfont icon-iconm_daick"></i>
-                <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
-              </div>
-              <div class="right-conetnt">
-                <div class="name">
-                  发起人:张三
-                  <span>2022-11-11 00:00:00</span>
-                </div>
-
-                <div class="remark">
-                  <div class="label">发起审批</div>
-
-                  <div>
-                    啊圣诞快乐家里快速打击啊老师的煎熬老师的煎熬上来看大家速度快垃圾上单绿卡数据的卡拉数据的卡拉设计的拉开时间
-                  </div>
-                </div>
-              </div>
-              <div class="line"></div>
-            </li>
-            <li>
-              <div class="left-icon">
-                <i class="iconfont icon-iconm_daick"></i>
-                <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
-              </div>
-              <div class="right-conetnt">
-                <div class="name">
-                  发起人:张三
-                  <span>2022-11-11 00:00:00</span>
-                </div>
-
-                <div class="remark">
-                  <div class="label">发起审批</div>
-
-                  <div>
-                    啊圣诞快乐家里快速打击啊老师的煎熬老师的煎熬上来看大家速度快垃圾上单绿卡数据的卡拉数据的卡拉设计的拉开时间
-                  </div>
-                </div>
-              </div>
-              <div class="line"></div>
-            </li>
-            <li>
-              <div class="left-icon">
-                <i class="iconfont icon-iconm_daick"></i>
-                <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
-              </div>
-              <div class="right-conetnt">
-                <div class="name">
-                  发起人:张三
-                  <span>2022-11-11 00:00:00</span>
-                </div>
-
-                <div class="remark">
-                  <div class="label">发起审批</div>
-
-                  <div>
-                    啊圣诞快乐家里快速打击啊老师的煎熬老师的煎熬上来看大家速度快垃圾上单绿卡数据的卡拉数据的卡拉设计的拉开时间
-                  </div>
-                </div>
-              </div>
-              <div class="line"></div>
-            </li>
-          </ul>
-        </el-tab-pane>
-        <el-tab-pane label="决策辅助" name="second">决策辅助</el-tab-pane>
-      </el-tabs>
-    </div>
-  </div>
-</template>
-<style lang="scss" scoped>
-.processApproval {
-  display: flex;
-  justify-content: space-between;
-  margin-top: 20px;
-  padding: 0 20px;
-  .left-card {
-    background: #fff;
-    border-radius: 4px;
-    padding: 20px;
-    flex: 1;
-    margin-right: 20px;
-  }
-  .right-card {
-    background: #fff;
-    border-radius: 4px;
-    padding: 0 20px 20px;
-    width: 600px;
-    box-sizing: border-box;
-    .flow-chart {
-      padding: 0;
-      margin: 0;
-      li {
-        margin: 0;
-        padding: 0 0 20px;
-        list-style: none;
-        display: flex;
-        justify-content: space-between;
-        position: relative;
-        .right-conetnt {
-          flex: 1;
-          .name {
-            font-size: 12px;
-            color: #333;
-            margin-bottom: 10px;
-            span {
-              color: #999;
-              float: right;
-            }
-          }
-          .remark {
-            padding: 10px;
-            color: #666666;
-            font-size: 12px;
-            background: #f1f1f1;
-            border-radius: 2px;
-            .label {
-              color: #39c55a;
-              margin-bottom: 10px;
-            }
-          }
-        }
-        .left-icon {
-          width: 40px;
-          height: 40px;
-          text-align: center;
-          line-height: 40px;
-          background: #0084ff;
-          border-radius: 10px;
-          color: #fff;
-          font-size: 20px;
-          position: relative;
-          margin-right: 27px;
-          z-index: 2;
-          .right-btm-status {
-            position: absolute;
-            bottom: 0px;
-            right: -10px;
-            height: 20px;
-            width: 20px;
-            line-height: 16px;
-            border-radius: 10px;
-            background: #39c55a;
-            border: 2px solid #fff;
-            font-size: 12px;
-            box-sizing: border-box;
-          }
-        }
-      }
-      li::before {
-        content: "";
-        position: absolute;
-        top: 0;
-        left: 20px;
-        width: 2px;
-        height: 100%;
-        background: #ddd;
-        z-index: 1;
-      }
-      li:last-child::before {
-        display: none;
-      }
-    }
-  }
-}
-</style>
-<script setup>
-import {
-  ref,
-  reactive,
-  computed,
-  watch,
-  onMounted,
-  onUnmounted,
-  nextTick,
-  defineEmits,
-  defineExpose,
-} from "vue";
-const activeName = ref("first");
-const handleClick = (tab, event) => {
-  console.log(tab, event);
-};
-</script>
-    

+ 242 - 0
src/views/process/processApproval/index.vue

@@ -0,0 +1,242 @@
+<template>
+    <div class="processApproval">
+      <div class="left-card">
+        <div class="commons-title title">流程标题</div>
+        <div class="">
+          <p>流程内容</p>
+          <p>流程内容</p>
+          <p>流程内容</p>
+          <p>流程内容</p>
+          <p>流程内容</p>
+          <p>流程内容</p>
+          <p>流程内容</p>
+          <p>流程内容</p>
+        </div>
+      </div>
+      <div class="right-card">
+        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+          <el-tab-pane label="审批记录" name="first">
+            <ul class="flow-chart">
+              <li>
+                <div class="left-icon">
+                  <i class="iconfont icon-iconm_daick"></i>
+                  <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
+                </div>
+                <div class="right-conetnt">
+                  <div class="name">
+                    发起人:张三
+                    <span>2022-11-11 00:00:00</span>
+                  </div>
+  
+                  <div class="remark">
+                    <div class="label">发起审批</div>
+                    1231231231231321231
+                  </div>
+                </div>
+                <div class="line"></div>
+              </li>
+              <li>
+                <div class="left-icon">
+                  <i class="iconfont icon-iconm_daick"></i>
+                  <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
+                </div>
+                <div class="right-conetnt">
+                  <div class="name">
+                    发起人:张三
+                    <span>2022-11-11 00:00:00</span>
+                  </div>
+  
+                  <div class="remark">
+                    <div class="label">发起审批</div>
+  
+                    <div>
+                      啊圣诞快乐家里快速打击啊老师的煎熬老师的煎熬上来看大家速度快垃圾上单绿卡数据的卡拉数据的卡拉设计的拉开时间
+                    </div>
+                  </div>
+                </div>
+                <div class="line"></div>
+              </li>
+              <li>
+                <div class="left-icon">
+                  <i class="iconfont icon-iconm_daick"></i>
+                  <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
+                </div>
+                <div class="right-conetnt">
+                  <div class="name">
+                    发起人:张三
+                    <span>2022-11-11 00:00:00</span>
+                  </div>
+  
+                  <div class="remark">
+                    <div class="label">发起审批</div>
+  
+                    <div>
+                      啊圣诞快乐家里快速打击啊老师的煎熬老师的煎熬上来看大家速度快垃圾上单绿卡数据的卡拉数据的卡拉设计的拉开时间
+                    </div>
+                  </div>
+                </div>
+                <div class="line"></div>
+              </li>
+              <li>
+                <div class="left-icon">
+                  <i class="iconfont icon-iconm_daick"></i>
+                  <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
+                </div>
+                <div class="right-conetnt">
+                  <div class="name">
+                    发起人:张三
+                    <span>2022-11-11 00:00:00</span>
+                  </div>
+  
+                  <div class="remark">
+                    <div class="label">发起审批</div>
+  
+                    <div>
+                      啊圣诞快乐家里快速打击啊老师的煎熬老师的煎熬上来看大家速度快垃圾上单绿卡数据的卡拉数据的卡拉设计的拉开时间
+                    </div>
+                  </div>
+                </div>
+                <div class="line"></div>
+              </li>
+              <li>
+                <div class="left-icon">
+                  <i class="iconfont icon-iconm_daick"></i>
+                  <i class="iconfont icon-iconm_daohzj right-btm-status"></i>
+                </div>
+                <div class="right-conetnt">
+                  <div class="name">
+                    发起人:张三
+                    <span>2022-11-11 00:00:00</span>
+                  </div>
+  
+                  <div class="remark">
+                    <div class="label">发起审批</div>
+  
+                    <div>
+                      啊圣诞快乐家里快速打击啊老师的煎熬老师的煎熬上来看大家速度快垃圾上单绿卡数据的卡拉数据的卡拉设计的拉开时间
+                    </div>
+                  </div>
+                </div>
+                <div class="line"></div>
+              </li>
+            </ul>
+          </el-tab-pane>
+          <el-tab-pane label="决策辅助" name="second">决策辅助</el-tab-pane>
+        </el-tabs>
+      </div>
+    </div>
+  </template>
+  <style lang="scss" scoped>
+  .processApproval {
+    display: flex;
+    justify-content: space-between;
+    margin-top: 20px;
+    padding: 0 20px;
+    .left-card {
+      background: #fff;
+      border-radius: 4px;
+      padding: 20px;
+      flex: 1;
+      margin-right: 20px;
+    }
+    .right-card {
+      background: #fff;
+      border-radius: 4px;
+      padding: 0 20px 20px;
+      width: 600px;
+      box-sizing: border-box;
+      .flow-chart {
+        padding: 0;
+        margin: 0;
+        li {
+          margin: 0;
+          padding: 0 0 20px;
+          list-style: none;
+          display: flex;
+          justify-content: space-between;
+          position: relative;
+          .right-conetnt {
+            flex: 1;
+            .name {
+              font-size: 12px;
+              color: #333;
+              margin-bottom: 10px;
+              span {
+                color: #999;
+                float: right;
+              }
+            }
+            .remark {
+              padding: 10px;
+              color: #666666;
+              font-size: 12px;
+              background: #f1f1f1;
+              border-radius: 2px;
+              .label {
+                color: #39c55a;
+                margin-bottom: 10px;
+              }
+            }
+          }
+          .left-icon {
+            width: 40px;
+            height: 40px;
+            text-align: center;
+            line-height: 40px;
+            background: #0084ff;
+            border-radius: 10px;
+            color: #fff;
+            font-size: 20px;
+            position: relative;
+            margin-right: 27px;
+            z-index: 2;
+            .right-btm-status {
+              position: absolute;
+              bottom: 0px;
+              right: -10px;
+              height: 20px;
+              width: 20px;
+              line-height: 16px;
+              border-radius: 10px;
+              background: #39c55a;
+              border: 2px solid #fff;
+              font-size: 12px;
+              box-sizing: border-box;
+            }
+          }
+        }
+        li::before {
+          content: "";
+          position: absolute;
+          top: 0;
+          left: 20px;
+          width: 2px;
+          height: 100%;
+          background: #ddd;
+          z-index: 1;
+        }
+        li:last-child::before {
+          display: none;
+        }
+      }
+    }
+  }
+  </style>
+  <script setup>
+  import {
+    ref,
+    reactive,
+    computed,
+    watch,
+    onMounted,
+    onUnmounted,
+    nextTick,
+    defineEmits,
+    defineExpose,
+  } from "vue";
+  const activeName = ref("first");
+  const handleClick = (tab, event) => {
+    console.log(tab, event);
+  };
+  </script>
+      

+ 321 - 0
src/views/process/processConfig/index.vue

@@ -0,0 +1,321 @@
+<template>
+	<div class="user">
+		<div class="tree">
+			<treeList
+				:data="treeListData"
+				v-model="sourceList.pagination.tenantId"
+				node-key="id"
+				@change="treeChange"
+			>
+			</treeList>
+		</div>
+		<div class="content">
+			<byTable
+				:source="sourceList.data"
+				:pagination="sourceList.pagination"
+				:config="config"
+				:loading="loading"
+				highlight-current-row
+				:selectConfig="selectConfig"
+				:table-events="{
+					//element talbe事件都能传
+					select: select,
+				}"
+				:action-list="[
+					{
+						text: '添加流程',
+						action: () => openModal('add'),
+						disabled: !sourceList.pagination.tenantId,
+					},
+				]"
+				@get-list="getList"
+			>
+				<template #slotName="{ item }">
+					{{ item.createTime }}
+				</template>
+			</byTable>
+		</div>
+		<el-dialog
+			:title="modalType == 'add' ? '新增' : '编辑'"
+			v-model="dialogVisible"
+			width="500"
+			v-loading="loading"
+		>
+			<byForm
+				:formConfig="formConfig"
+				:formOption="formOption"
+				v-model="formData.data"
+				:rules="rules"
+				ref="byform"
+			>
+			</byForm>
+			<template #footer>
+				<el-button @click="dialogVisible = false" size="large"
+					>取 消</el-button
+				>
+				<el-button
+					type="primary"
+					@click="submitForm('byform')"
+					size="large"
+					:loading="submitLoading"
+				>
+					确 定
+				</el-button>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+    
+  <script setup>
+/* eslint-disable vue/no-unused-components */
+import { ElMessage, ElMessageBox } from 'element-plus'
+import byTable from '@/components/byTable/index'
+import byForm from '@/components/byForm/index'
+import treeList from '@/components/treeList/index'
+import { computed, defineComponent, ref } from 'vue'
+const loading = ref(false)
+const submitLoading = ref(false)
+const sourceList = ref({
+	data: [],
+	pagination: {
+		total: 3,
+		pageNum: 1,
+		pageSize: 10,
+	},
+})
+let dialogVisible = ref(false)
+let modalType = ref('add')
+let rules = ref({
+	roleKey: [{ required: true, message: '请选择部门', trigger: 'blur' }],
+	nickName: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
+	userName: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
+})
+const { proxy } = getCurrentInstance()
+const selectConfig = computed(() => {
+	return []
+})
+const config = computed(() => {
+	return [
+		{
+			attrs: {
+				label: '功能模块',
+				prop: 'classifyName',
+			},
+		},
+		{
+			attrs: {
+				label: '流程标识',
+				prop: 'flowKey',
+			},
+		},
+		{
+			attrs: {
+				label: '流程名称',
+				prop: 'flowName',
+			},
+		},
+
+		{
+			attrs: {
+				label: '当前版本',
+				prop: 'versionNumber',
+			},
+		},
+
+		{
+			attrs: {
+				label: '操作',
+				width: '200',
+				align: 'right',
+			},
+			// 渲染 el-button,一般用在最后一列。
+			renderHTML(row) {
+				return [
+					{
+						attrs: {
+							label: '新建版本',
+							type: 'primary',
+							text: true,
+						},
+						el: 'button',
+						click() {
+							getDtl(row)
+						},
+					},
+					
+				]
+			},
+		},
+	]
+})
+
+let formData = reactive({
+	data: {},
+})
+const formOption = reactive({
+	inline: true,
+	labelWidth: 100,
+	itemWidth: 100,
+	rules: [],
+})
+const byform = ref(null)
+const treeListData = ref([])
+const formConfig = computed(() => {
+	return [
+		
+		{
+			type: 'select',
+			label: '功能模块',
+			prop: 'titleTemplate',
+			isLoad: {
+				url: `/flowInfo/getClassifyList`,
+				labelKey: 'stringArray',
+				labelVal: 'stringArray',
+				method: 'post',
+				resUrl: '',
+			},
+			fn: (data) => {
+				getFlowList(data)
+			},
+		},
+		{
+			type: 'select',
+			label: '流程名称',
+			prop: 'flowInfoId',
+			data:[],
+		},
+	]
+})
+
+
+const getFlowList = (name) => {
+	proxy.post('/flowInfo/page',{
+		pageNum:1,
+		pageSize:1000,
+		classifyName:name
+	}).then((message) => {
+		formConfig.value[1].data = message.rows.map(item => {
+			return {
+				label:item.flowName,
+				value:item.id
+			}
+		})
+		
+	})
+}
+
+const newPassword = () => {
+	formData.data.password = generatePassword()
+}
+const generatePassword = () => {
+	var length = 12,
+		charset =
+			'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
+		password = ''
+	for (var i = 0, n = charset.length; i < length; ++i) {
+		password += charset.charAt(Math.floor(Math.random() * n))
+	}
+	return password
+}
+
+const getTreeList = () => {
+	proxy.post('/tenantInfo/list').then((message) => {
+		message.map((item) => {
+			item.label = item.enterpriseName
+			item.id = item.tenantId
+			item.children = []
+		})
+
+		treeListData.value = message
+		console.log(treeListData.value)
+	})
+}
+const getList = async (req) => {
+	sourceList.value.pagination = { ...sourceList.value.pagination, ...req }
+	loading.value = true
+	proxy
+		.post('/flowDefinition/page', sourceList.value.pagination)
+		.then((message) => {
+			sourceList.value.data = message.rows
+			sourceList.value.pagination.total = message.total
+			setTimeout(() => {
+				loading.value = false
+			}, 200)
+		})
+}
+
+const treeChange = (e) => {
+	console.log(e)
+	sourceList.value.pagination.tenantId = e.id
+	getList({ tenantId: e.id })
+}
+
+const openModal = () => {
+	dialogVisible.value = true
+	modalType.value = 'add'
+	formData.data = {
+		userType: 1,
+	}
+}
+const TreetenantId = ref('')
+const selection = ref({
+	data: [],
+})
+const select = (_selection, row) => {
+	selection.value.data = _selection
+	console.log(_selection.length)
+}
+
+const tree = ref(null)
+const submitForm = () => {
+	byform.value.handleSubmit((valid) => {
+		
+		proxy
+			.post(
+				'/flowDefinition/' + modalType.value,
+				{
+					...formData.data,
+					tenantId: sourceList.value.pagination.tenantId,
+				},
+			)
+			.then((res) => {
+				ElMessage({
+					message: modalType.value == 'add' ? '添加成功' : '编辑成功',
+					type: 'success',
+				})
+				dialogVisible.value = false
+				getList()
+			})
+	})
+}
+
+const getDept = () => {
+	proxy.get('/system/user/deptTree').then((res) => {
+		//formConfig.value[0].data = res.data
+	})
+}
+
+
+const getDtl = (row) => {
+	formData.data = { ...row }
+	modalType.value = 'edit'
+	console.log(modalType.value)
+	dialogVisible.value = true
+}
+getTreeList()
+getList()
+</script>
+    
+<style lang="scss" scoped>
+.user {
+	padding: 20px;
+	display: flex;
+	justify-content: space-between;
+	.tree {
+		width: 300px;
+	}
+	.content {
+		width: calc(100% - 320px);
+	}
+}
+</style>

+ 31 - 0
src/views/process/processConfig/processChart.vue

@@ -0,0 +1,31 @@
+<template>
+    <div class="processChart">
+        <div class="from">
+            <div class="commons-title">基础配置</div>
+        </div>
+        <div class="content">
+            <div class="commons-title">基础配置</div>
+            <div class="chart-warp">
+
+            </div>
+        </div>
+    </div>
+</template>
+
+<script lang="setup">
+    
+</script>
+
+<style lang="scss" scoped>
+.processChart {
+	padding: 20px;
+	display: flex;
+	justify-content: space-between;
+	.from {
+		width: 300px;
+	}
+	.content {
+		width: calc(100% - 320px);
+	}
+}
+</style>

+ 2 - 1
src/views/system/role2/index.vue

@@ -123,7 +123,8 @@ let dialogVisible = ref(false)
 let roomDialogVisible = ref(false)
 let modalType = ref('add')
 let rules = ref({
-	tenantId: [{ required: true, message: '请输入活动名称', trigger: 'blur' }],
+	roleKey: [{ required: true, message: '请输入角色编码', trigger: 'blur' }],
+	roleName: [{ required: true, message: '请输入角色名称', trigger: 'blur' }],
 })
 const { proxy } = getCurrentInstance()
 const selectConfig = computed(() => {

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff