Commit d12465b3 authored by 刘殿昕's avatar 刘殿昕

1修改应用管理列表跳转详情页传参并修改详情基本信息接口2运行状态图标

parent 61d20690
<template>
<div class="icon-main icon_act">
<svg-icon icon-class="fwgl_ic_arrow" class="svg_out"></svg-icon>
<svg-icon v-if="state == '运行中'" icon-class="fwgl_ic_operation" class="svg_in"></svg-icon>
<svg-icon v-else-if="state == '等待中'" icon-class="fwgl_ic_stop" class="svg_in"></svg-icon>
<svg-icon v-else-if="state == '停止'" icon-class="fwgl_ic_wait" class="svg_in"></svg-icon>
<svg-icon v-else icon-class="fwgl_ic_bufenguzhang" class="svg_in"></svg-icon>
</div>
</template>
<script>
export default {
props: {
state: {
type: String,
default: ""
}
},
data() {
return {};
},
components: {},
mounted: function() {
// this.init();
},
computed: {},
methods: {}
};
</script>
<style scoped>
.icon-main {
/* margin-top: 100px; */
width: 60px;
}
.icon_act {
/* margin-left: 50px; */
position: relative;
}
.svg_out {
font-size: 60px;
animation: out_t;
animation-duration: 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
.svg_in {
font-size: 24px;
position: absolute;
top: 18px;
left: 18px;
}
@keyframes out_t {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
</style>
\ No newline at end of file
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 56.05 54.93"><defs><style>.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#fff;}.cls-4{fill:#fefeff;}.cls-5{fill:#fdfdff;}.cls-6{fill:#fcfcff;}.cls-7{fill:#fbfbfe;}.cls-8{fill:#fafafe;}.cls-9{fill:#f9f9fe;}.cls-10{fill:#f8f9fe;}.cls-11{fill:#f7f8fe;}.cls-12{fill:#f6f7fe;}.cls-13{fill:#f5f6fe;}.cls-14{fill:#f4f5fd;}.cls-15{fill:#f3f4fd;}.cls-16{fill:#f2f3fd;}.cls-17{fill:#f1f2fd;}.cls-18{fill:#f0f1fd;}.cls-19{fill:#eff0fd;}.cls-20{fill:#eeeffd;}.cls-21{fill:#edeefd;}.cls-22{fill:#ecedfc;}.cls-23{fill:#ebedfc;}.cls-24{fill:#eaecfc;}.cls-25{fill:#e9ebfc;}.cls-26{fill:#e8eafc;}.cls-27{fill:#e7e9fc;}.cls-28{fill:#e6e8fc;}.cls-29{fill:#e5e7fb;}.cls-30{fill:#e4e6fb;}.cls-31{fill:#e3e5fb;}.cls-32{fill:#e2e4fb;}.cls-33{fill:#e1e3fb;}.cls-34{fill:#e0e2fb;}.cls-35{fill:#dfe1fb;}.cls-36{fill:#dee0fa;}.cls-37{fill:#dde0fa;}.cls-38{fill:#dcdffa;}.cls-39{fill:#dbdefa;}.cls-40{fill:#daddfa;}.cls-41{fill:#d9dcfa;}.cls-42{fill:#d8dbfa;}.cls-43{fill:#d7daf9;}.cls-44{fill:#d6d9f9;}.cls-45{fill:#d5d8f9;}.cls-46{fill:#d4d7f9;}.cls-47{fill:#d3d6f9;}.cls-48{fill:#d2d5f9;}.cls-49{fill:#d1d4f9;}.cls-50{fill:#d0d4f8;}.cls-51{fill:#cfd3f8;}.cls-52{fill:#ced2f8;}.cls-53{fill:#cdd1f8;}.cls-54{fill:#ccd0f8;}.cls-55{fill:#cbcff8;}.cls-56{fill:#cacef8;}.cls-57{fill:#c9cdf8;}.cls-58{fill:#c8ccf7;}.cls-59{fill:#c7cbf7;}.cls-60{fill:#c6caf7;}.cls-61{fill:#c5c9f7;}.cls-62{fill:#c4c8f7;}.cls-63{fill:#c3c8f7;}.cls-64{fill:#c2c7f7;}.cls-65{fill:#c1c6f6;}.cls-66{fill:#c0c5f6;}.cls-67{fill:#bfc4f6;}.cls-68{fill:#bec3f6;}.cls-69{fill:#bdc2f6;}.cls-70{fill:#bcc1f6;}.cls-71{fill:#bbc0f6;}.cls-72{fill:#babff5;}.cls-73{fill:#b9bef5;}.cls-74{fill:#b8bdf5;}.cls-75{fill:#b7bcf5;}.cls-76{fill:#b6bbf5;}.cls-77{fill:#b5bbf5;}.cls-78{fill:#b4baf5;}.cls-79{fill:#b3b9f4;}.cls-80{fill:#b2b8f4;}.cls-81{fill:#b1b7f4;}.cls-82{fill:#b0b6f4;}.cls-83{fill:#afb5f4;}.cls-84{fill:#aeb4f4;}.cls-85{fill:#adb3f4;}.cls-86{fill:#acb2f3;}.cls-87{fill:#abb1f3;}.cls-88{fill:#aab0f3;}.cls-89{fill:#a9aff3;}.cls-90{fill:#a7aff3;}.cls-91{fill:#a6aef3;}.cls-92{fill:#a5adf3;}.cls-93{fill:#a4acf3;}.cls-94{fill:#a3abf2;}.cls-95{fill:#a2aaf2;}.cls-96{fill:#a1a9f2;}.cls-97{fill:#a0a8f2;}.cls-98{fill:#9fa7f2;}.cls-99{fill:#9ea6f2;}.cls-100{fill:#9da5f2;}.cls-101{fill:#9ca4f1;}.cls-102{fill:#9ba3f1;}.cls-103{fill:#9aa3f1;}.cls-104{fill:#99a2f1;}.cls-105{fill:#98a1f1;}.cls-106{fill:#97a0f1;}.cls-107{fill:#969ff1;}.cls-108{fill:#959ef0;}.cls-109{fill:#949df0;}.cls-110{fill:#939cf0;}.cls-111{fill:#929bf0;}.cls-112{fill:#919af0;}.cls-113{fill:#9099f0;}.cls-114{fill:#8f98f0;}.cls-115{fill:#8e97ef;}.cls-116{fill:#8d96ef;}.cls-117{fill:#8c96ef;}.cls-118{fill:#8b95ef;}.cls-119{fill:#8a94ef;}.cls-120{fill:#8993ef;}.cls-121{fill:#8892ef;}.cls-122{fill:#8791ee;}.cls-123{fill:#8690ee;}.cls-124{fill:#858fee;}.cls-125{fill:#848eee;}.cls-126{fill:#838dee;}.cls-127{fill:#828cee;}.cls-128{fill:#818bee;}.cls-129{fill:#808aee;}.cls-130{fill:#7f8aed;}.cls-131{fill:#7e89ed;}.cls-132{fill:#7d88ed;}.cls-133{fill:#7c87ed;}.cls-134{fill:#7b86ed;}.cls-135{fill:#7a85ed;}.cls-136{fill:#7984ed;}.cls-137{fill:#7883ec;}.cls-138{fill:#7782ec;}.cls-139{fill:#7681ec;}.cls-140{fill:#7580ec;}.cls-141{fill:#747fec;}.cls-142{fill:#737eec;}.cls-143{fill:#727eec;}.cls-144{fill:#717deb;}.cls-145{fill:#707ceb;}.cls-146{fill:#6f7beb;}.cls-147{fill:#6e7aeb;}.cls-148{fill:#6d79eb;}.cls-149{fill:#6c78eb;}.cls-150{fill:#6b77eb;}.cls-151{fill:#6a76ea;}.cls-152{fill:#6975ea;}.cls-153{fill:#6874ea;}.cls-154{fill:#6773ea;}.cls-155{fill:#6672ea;}.cls-156{fill:#6571ea;}.cls-157{fill:#6471ea;}.cls-158{fill:#6370e9;}.cls-159{fill:#626fe9;}.cls-160{fill:#616ee9;}.cls-161{fill:#606de9;}.cls-162{fill:#5f6ce9;}.cls-163{fill:#5e6be9;}.cls-164{fill:#5d6ae9;}.cls-165{fill:#5c69e9;}.cls-166{fill:#5b68e8;}.cls-167{fill:#5a67e8;}.cls-168{fill:#5966e8;}.cls-169{fill:#5865e8;}.cls-170{fill:#5765e8;}.cls-171{fill:#5664e8;}.cls-172{fill:#5563e8;}.cls-173{fill:#5462e7;}.cls-174{fill:#5361e7;}.cls-175{fill:#5260e7;}.cls-176{fill:#515fe7;}.cls-177{clip-path:url(#clip-path-2);}</style><clipPath id="clip-path"><path class="cls-1" d="M22.59,50.88A24,24,0,0,1,23.08,4l.1,0,.28-.09.16-.09.17-.1L24,3.52l.14-.11.12-.14.12-.16L24.42,3a2,2,0,0,0,.1-.2c0-.06,0-.12.06-.18a2,2,0,0,0,.06-.19,2,2,0,0,0,0-.27s0-.08,0-.12h0s0-.09,0-.13a2,2,0,0,0-.15-.66l-.06-.1a2,2,0,0,0-.13-.23l-.1-.12a2,2,0,0,0-.15-.17L24,.48,23.77.33,23.65.27,23.43.15l-.15,0L23.06,0l-.26,0H16.67a2,2,0,0,0-1.85,2.76,28,28,0,0,0,6.86,52,2,2,0,1,0,.91-3.9Z"/></clipPath><clipPath id="clip-path-2"><path class="cls-1" d="M55.45,21.7A28.17,28.17,0,0,0,34.54.21a2,2,0,0,0-.93,3.89A24,24,0,0,1,33,51a2,2,0,0,0,.42,4h6a2,2,0,0,0,1.85-2.76A28.07,28.07,0,0,0,55.45,21.7Z"/></clipPath></defs><title>ic_画板 3</title><g class="cls-2"><polygon class="cls-3" points="-2.02 54.53 23.47 54.84 -2.02 54.84 -2.02 54.53"/><polygon class="cls-3" points="-2.02 54.22 24.67 54.54 24.67 54.84 23.47 54.84 -2.02 54.53 -2.02 54.22"/><polygon class="cls-4" points="-2.02 53.9 24.67 54.22 24.67 54.54 -2.02 54.22 -2.02 53.9"/><polygon class="cls-5" points="-2.02 53.59 24.67 53.91 24.67 54.22 -2.02 53.9 -2.02 53.59"/><polygon class="cls-6" points="-2.02 53.27 24.67 53.59 24.67 53.91 -2.02 53.59 -2.02 53.27"/><polygon class="cls-7" points="-2.02 52.95 24.67 53.28 24.67 53.59 -2.02 53.27 -2.02 52.95"/><polygon class="cls-8" points="-2.02 52.64 24.67 52.96 24.67 53.28 -2.02 52.95 -2.02 52.64"/><polygon class="cls-9" points="-2.02 52.33 24.67 52.65 24.67 52.96 -2.02 52.64 -2.02 52.33"/><polygon class="cls-10" points="-2.02 52.01 24.67 52.33 24.67 52.65 -2.02 52.33 -2.02 52.01"/><polygon class="cls-11" points="-2.02 51.7 24.67 52.02 24.67 52.33 -2.02 52.01 -2.02 51.7"/><polygon class="cls-12" points="-2.02 51.38 24.67 51.7 24.67 52.02 -2.02 51.7 -2.02 51.38"/><polygon class="cls-13" points="-2.02 51.06 24.67 51.39 24.67 51.7 -2.02 51.38 -2.02 51.06"/><polygon class="cls-14" points="-2.02 50.75 24.67 51.07 24.67 51.39 -2.02 51.06 -2.02 50.75"/><polygon class="cls-15" points="-2.02 50.43 24.67 50.76 24.67 51.07 -2.02 50.75 -2.02 50.43"/><polygon class="cls-16" points="-2.02 50.12 24.67 50.44 24.67 50.76 -2.02 50.43 -2.02 50.12"/><polygon class="cls-17" points="-2.02 49.8 24.67 50.13 24.67 50.44 -2.02 50.12 -2.02 49.8"/><polygon class="cls-18" points="-2.02 49.49 24.67 49.81 24.67 50.13 -2.02 49.8 -2.02 49.49"/><polygon class="cls-19" points="-2.02 49.17 24.67 49.5 24.67 49.81 -2.02 49.49 -2.02 49.17"/><polygon class="cls-20" points="-2.02 48.86 24.67 49.18 24.67 49.5 -2.02 49.17 -2.02 48.86"/><polygon class="cls-21" points="-2.02 48.54 24.67 48.87 24.67 49.18 -2.02 48.86 -2.02 48.54"/><polygon class="cls-22" points="-2.02 48.23 24.67 48.55 24.67 48.87 -2.02 48.54 -2.02 48.23"/><polygon class="cls-23" points="-2.02 47.91 24.67 48.24 24.67 48.55 -2.02 48.23 -2.02 47.91"/><polygon class="cls-24" points="-2.02 47.6 24.67 47.92 24.67 48.24 -2.02 47.91 -2.02 47.6"/><polygon class="cls-25" points="-2.02 47.28 24.67 47.61 24.67 47.92 -2.02 47.6 -2.02 47.28"/><polygon class="cls-26" points="-2.02 46.97 24.67 47.29 24.67 47.61 -2.02 47.28 -2.02 46.97"/><polygon class="cls-27" points="-2.02 46.65 24.67 46.98 24.67 47.29 -2.02 46.97 -2.02 46.65"/><polygon class="cls-28" points="-2.02 46.34 24.67 46.66 24.67 46.98 -2.02 46.65 -2.02 46.34"/><polygon class="cls-29" points="-2.02 46.02 24.67 46.35 24.67 46.66 -2.02 46.34 -2.02 46.02"/><polygon class="cls-30" points="-2.02 45.71 24.67 46.03 24.67 46.35 -2.02 46.02 -2.02 45.71"/><polygon class="cls-31" points="-2.02 45.39 24.67 45.72 24.67 46.03 -2.02 45.71 -2.02 45.39"/><polygon class="cls-32" points="-2.02 45.08 24.67 45.4 24.67 45.72 -2.02 45.39 -2.02 45.08"/><polygon class="cls-33" points="-2.02 44.76 24.67 45.09 24.67 45.4 -2.02 45.08 -2.02 44.76"/><polygon class="cls-34" points="-2.02 44.45 24.67 44.77 24.67 45.09 -2.02 44.76 -2.02 44.45"/><polygon class="cls-35" points="-2.02 44.13 24.67 44.45 24.67 44.77 -2.02 44.45 -2.02 44.13"/><polygon class="cls-36" points="-2.02 43.82 24.67 44.14 24.67 44.45 -2.02 44.13 -2.02 43.82"/><polygon class="cls-37" points="-2.02 43.5 24.67 43.83 24.67 44.14 -2.02 43.82 -2.02 43.5"/><polygon class="cls-38" points="-2.02 43.19 24.67 43.51 24.67 43.83 -2.02 43.5 -2.02 43.19"/><polygon class="cls-39" points="-2.02 42.87 24.67 43.19 24.67 43.51 -2.02 43.19 -2.02 42.87"/><polygon class="cls-40" points="-2.02 42.56 24.67 42.88 24.67 43.19 -2.02 42.87 -2.02 42.56"/><polygon class="cls-41" points="-2.02 42.24 24.67 42.56 24.67 42.88 -2.02 42.56 -2.02 42.24"/><polygon class="cls-42" points="-2.02 41.93 24.67 42.25 24.67 42.56 -2.02 42.24 -2.02 41.93"/><polygon class="cls-43" points="-2.02 41.61 24.67 41.93 24.67 42.25 -2.02 41.93 -2.02 41.61"/><polygon class="cls-44" points="-2.02 41.3 24.67 41.62 24.67 41.93 -2.02 41.61 -2.02 41.3"/><polygon class="cls-45" points="-2.02 40.98 24.67 41.3 24.67 41.62 -2.02 41.3 -2.02 40.98"/><polygon class="cls-46" points="-2.02 40.67 24.67 40.99 24.67 41.3 -2.02 40.98 -2.02 40.67"/><polygon class="cls-47" points="-2.02 40.35 24.67 40.67 24.67 40.99 -2.02 40.67 -2.02 40.35"/><polygon class="cls-48" points="-2.02 40.04 24.67 40.36 24.67 40.67 -2.02 40.35 -2.02 40.04"/><polygon class="cls-49" points="-2.02 39.72 24.67 40.04 24.67 40.36 -2.02 40.04 -2.02 39.72"/><polygon class="cls-50" points="-2.02 39.41 24.67 39.73 24.67 40.04 -2.02 39.72 -2.02 39.41"/><polygon class="cls-51" points="-2.02 39.09 24.67 39.41 24.67 39.73 -2.02 39.41 -2.02 39.09"/><polygon class="cls-52" points="-2.02 38.77 24.67 39.1 24.67 39.41 -2.02 39.09 -2.02 38.77"/><polygon class="cls-53" points="-2.02 38.46 24.67 38.78 24.67 39.1 -2.02 38.77 -2.02 38.46"/><polygon class="cls-54" points="-2.02 38.15 24.67 38.47 24.67 38.78 -2.02 38.46 -2.02 38.15"/><polygon class="cls-55" points="-2.02 37.83 24.67 38.15 24.67 38.47 -2.02 38.15 -2.02 37.83"/><polygon class="cls-56" points="-2.02 37.52 24.67 37.84 24.67 38.15 -2.02 37.83 -2.02 37.52"/><polygon class="cls-57" points="-2.02 37.2 24.67 37.52 24.67 37.84 -2.02 37.52 -2.02 37.2"/><polygon class="cls-58" points="-2.02 36.88 24.67 37.21 24.67 37.52 -2.02 37.2 -2.02 36.88"/><polygon class="cls-59" points="-2.02 36.57 24.67 36.89 24.67 37.21 -2.02 36.88 -2.02 36.57"/><polygon class="cls-60" points="-2.02 36.25 24.67 36.58 24.67 36.89 -2.02 36.57 -2.02 36.25"/><polygon class="cls-61" points="-2.02 35.94 24.67 36.26 24.67 36.58 -2.02 36.25 -2.02 35.94"/><polygon class="cls-62" points="-2.02 35.62 24.67 35.95 24.67 36.26 -2.02 35.94 -2.02 35.62"/><polygon class="cls-63" points="-2.02 35.31 24.67 35.63 24.67 35.95 -2.02 35.62 -2.02 35.31"/><polygon class="cls-64" points="-2.02 34.99 24.67 35.32 24.67 35.63 -2.02 35.31 -2.02 34.99"/><polygon class="cls-65" points="-2.02 34.68 24.67 35 24.67 35.32 -2.02 34.99 -2.02 34.68"/><polygon class="cls-66" points="-2.02 34.36 24.67 34.69 24.67 35 -2.02 34.68 -2.02 34.36"/><polygon class="cls-67" points="-2.02 34.05 24.67 34.37 24.67 34.69 -2.02 34.36 -2.02 34.05"/><polygon class="cls-68" points="-2.02 33.73 24.67 34.06 24.67 34.37 -2.02 34.05 -2.02 33.73"/><polygon class="cls-69" points="-2.02 33.42 24.67 33.74 24.67 34.06 -2.02 33.73 -2.02 33.42"/><polygon class="cls-70" points="-2.02 33.1 24.67 33.43 24.67 33.74 -2.02 33.42 -2.02 33.1"/><polygon class="cls-71" points="-2.02 32.79 24.67 33.11 24.67 33.43 -2.02 33.1 -2.02 32.79"/><polygon class="cls-72" points="-2.02 32.47 24.67 32.8 24.67 33.11 -2.02 32.79 -2.02 32.47"/><polygon class="cls-73" points="-2.02 32.16 24.67 32.48 24.67 32.8 -2.02 32.47 -2.02 32.16"/><polygon class="cls-74" points="-2.02 31.84 24.67 32.17 24.67 32.48 -2.02 32.16 -2.02 31.84"/><polygon class="cls-75" points="-2.02 31.53 24.67 31.85 24.67 32.17 -2.02 31.84 -2.02 31.53"/><polygon class="cls-76" points="-2.02 31.21 24.67 31.54 24.67 31.85 -2.02 31.53 -2.02 31.21"/><polygon class="cls-77" points="-2.02 30.9 24.67 31.22 24.67 31.54 -2.02 31.21 -2.02 30.9"/><polygon class="cls-78" points="-2.02 30.58 24.67 30.91 24.67 31.22 -2.02 30.9 -2.02 30.58"/><polygon class="cls-79" points="-2.02 30.27 24.67 30.59 24.67 30.91 -2.02 30.58 -2.02 30.27"/><polygon class="cls-80" points="-2.02 29.95 24.67 30.27 24.67 30.59 -2.02 30.27 -2.02 29.95"/><polygon class="cls-81" points="-2.02 29.64 24.67 29.96 24.67 30.27 -2.02 29.95 -2.02 29.64"/><polygon class="cls-82" points="-2.02 29.32 24.67 29.64 24.67 29.96 -2.02 29.64 -2.02 29.32"/><polygon class="cls-83" points="-2.02 29.01 24.67 29.33 24.67 29.64 -2.02 29.32 -2.02 29.01"/><polygon class="cls-84" points="-2.02 28.69 24.67 29.01 24.67 29.33 -2.02 29.01 -2.02 28.69"/><polygon class="cls-85" points="-2.02 28.38 24.67 28.7 24.67 29.01 -2.02 28.69 -2.02 28.38"/><polygon class="cls-86" points="-2.02 28.06 24.67 28.38 24.67 28.7 -2.02 28.38 -2.02 28.06"/><polygon class="cls-87" points="-2.02 27.75 24.67 28.07 24.67 28.38 -2.02 28.06 -2.02 27.75"/><polygon class="cls-88" points="-2.02 27.43 24.67 27.75 24.67 28.07 -2.02 27.75 -2.02 27.43"/><polygon class="cls-89" points="-2.02 27.12 24.67 27.44 24.67 27.75 -2.02 27.43 -2.02 27.12"/><polygon class="cls-90" points="-2.02 26.8 24.67 27.12 24.67 27.44 -2.02 27.12 -2.02 26.8"/><polygon class="cls-91" points="-2.02 26.49 24.67 26.81 24.67 27.12 -2.02 26.8 -2.02 26.49"/><polygon class="cls-92" points="-2.02 26.17 24.67 26.49 24.67 26.81 -2.02 26.49 -2.02 26.17"/><polygon class="cls-93" points="-2.02 25.86 24.67 26.18 24.67 26.49 -2.02 26.17 -2.02 25.86"/><polygon class="cls-94" points="-2.02 25.54 24.67 25.86 24.67 26.18 -2.02 25.86 -2.02 25.54"/><polygon class="cls-95" points="-2.02 25.23 24.67 25.55 24.67 25.86 -2.02 25.54 -2.02 25.23"/><polygon class="cls-96" points="-2.02 24.91 24.67 25.23 24.67 25.55 -2.02 25.23 -2.02 24.91"/><polygon class="cls-97" points="-2.02 24.59 24.67 24.92 24.67 25.23 -2.02 24.91 -2.02 24.59"/><polygon class="cls-98" points="-2.02 24.28 24.67 24.6 24.67 24.92 -2.02 24.59 -2.02 24.28"/><polygon class="cls-99" points="-2.02 23.96 24.67 24.29 24.67 24.6 -2.02 24.28 -2.02 23.96"/><polygon class="cls-100" points="-2.02 23.65 24.67 23.97 24.67 24.29 -2.02 23.96 -2.02 23.65"/><polygon class="cls-101" points="-2.02 23.34 24.67 23.66 24.67 23.97 -2.02 23.65 -2.02 23.34"/><polygon class="cls-102" points="-2.02 23.02 24.67 23.34 24.67 23.66 -2.02 23.34 -2.02 23.02"/><polygon class="cls-103" points="-2.02 22.7 24.67 23.03 24.67 23.34 -2.02 23.02 -2.02 22.7"/><polygon class="cls-104" points="-2.02 22.39 24.67 22.71 24.67 23.03 -2.02 22.7 -2.02 22.39"/><polygon class="cls-105" points="-2.02 22.07 24.67 22.4 24.67 22.71 -2.02 22.39 -2.02 22.07"/><polygon class="cls-106" points="-2.02 21.76 24.67 22.08 24.67 22.4 -2.02 22.07 -2.02 21.76"/><polygon class="cls-107" points="-2.02 21.44 24.67 21.77 24.67 22.08 -2.02 21.76 -2.02 21.44"/><polygon class="cls-108" points="-2.02 21.13 24.67 21.45 24.67 21.77 -2.02 21.44 -2.02 21.13"/><polygon class="cls-109" points="-2.02 20.81 24.67 21.14 24.67 21.45 -2.02 21.13 -2.02 20.81"/><polygon class="cls-110" points="-2.02 20.5 24.67 20.82 24.67 21.14 -2.02 20.81 -2.02 20.5"/><polygon class="cls-111" points="-2.02 20.18 24.67 20.51 24.67 20.82 -2.02 20.5 -2.02 20.18"/><polygon class="cls-112" points="-2.02 19.87 24.67 20.19 24.67 20.51 -2.02 20.18 -2.02 19.87"/><polygon class="cls-113" points="-2.02 19.55 24.67 19.88 24.67 20.19 -2.02 19.87 -2.02 19.55"/><polygon class="cls-114" points="-2.02 19.24 24.67 19.56 24.67 19.88 -2.02 19.55 -2.02 19.24"/><polygon class="cls-115" points="-2.02 18.92 24.67 19.25 24.67 19.56 -2.02 19.24 -2.02 18.92"/><polygon class="cls-116" points="-2.02 18.61 24.67 18.93 24.67 19.25 -2.02 18.92 -2.02 18.61"/><polygon class="cls-117" points="-2.02 18.29 24.67 18.62 24.67 18.93 -2.02 18.61 -2.02 18.29"/><polygon class="cls-118" points="-2.02 17.98 24.67 18.3 24.67 18.62 -2.02 18.29 -2.02 17.98"/><polygon class="cls-119" points="-2.02 17.66 24.67 17.99 24.67 18.3 -2.02 17.98 -2.02 17.66"/><polygon class="cls-120" points="-2.02 17.35 24.67 17.67 24.67 17.99 -2.02 17.66 -2.02 17.35"/><polygon class="cls-121" points="-2.02 17.03 24.67 17.36 24.67 17.67 -2.02 17.35 -2.02 17.03"/><polygon class="cls-122" points="-2.02 16.72 24.67 17.04 24.67 17.36 -2.02 17.03 -2.02 16.72"/><polygon class="cls-123" points="-2.02 16.4 24.67 16.73 24.67 17.04 -2.02 16.72 -2.02 16.4"/><polygon class="cls-124" points="-2.02 16.09 24.67 16.41 24.67 16.73 -2.02 16.4 -2.02 16.09"/><polygon class="cls-125" points="-2.02 15.77 24.67 16.09 24.67 16.41 -2.02 16.09 -2.02 15.77"/><polygon class="cls-126" points="-2.02 15.46 24.67 15.78 24.67 16.09 -2.02 15.77 -2.02 15.46"/><polygon class="cls-127" points="-2.02 15.14 24.67 15.46 24.67 15.78 -2.02 15.46 -2.02 15.14"/><polygon class="cls-128" points="-2.02 14.83 24.67 15.15 24.67 15.46 -2.02 15.14 -2.02 14.83"/><polygon class="cls-129" points="-2.02 14.51 24.67 14.83 24.67 15.15 -2.02 14.83 -2.02 14.51"/><polygon class="cls-130" points="-2.02 14.2 24.67 14.52 24.67 14.83 -2.02 14.51 -2.02 14.2"/><polygon class="cls-131" points="-2.02 13.88 24.67 14.2 24.67 14.52 -2.02 14.2 -2.02 13.88"/><polygon class="cls-132" points="-2.02 13.57 24.67 13.89 24.67 14.2 -2.02 13.88 -2.02 13.57"/><polygon class="cls-133" points="-2.02 13.25 24.67 13.57 24.67 13.89 -2.02 13.57 -2.02 13.25"/><polygon class="cls-134" points="-2.02 12.94 24.67 13.26 24.67 13.57 -2.02 13.25 -2.02 12.94"/><polygon class="cls-135" points="-2.02 12.62 24.67 12.94 24.67 13.26 -2.02 12.94 -2.02 12.62"/><polygon class="cls-136" points="-2.02 12.31 24.67 12.63 24.67 12.94 -2.02 12.62 -2.02 12.31"/><polygon class="cls-137" points="-2.02 11.99 24.67 12.31 24.67 12.63 -2.02 12.31 -2.02 11.99"/><polygon class="cls-138" points="-2.02 11.68 24.67 12 24.67 12.31 -2.02 11.99 -2.02 11.68"/><polygon class="cls-139" points="-2.02 11.36 24.67 11.68 24.67 12 -2.02 11.68 -2.02 11.36"/><polygon class="cls-140" points="-2.02 11.04 24.67 11.37 24.67 11.68 -2.02 11.36 -2.02 11.04"/><polygon class="cls-141" points="-2.02 10.73 24.67 11.05 24.67 11.37 -2.02 11.04 -2.02 10.73"/><polygon class="cls-142" points="-2.02 10.41 24.67 10.74 24.67 11.05 -2.02 10.73 -2.02 10.41"/><polygon class="cls-143" points="-2.02 10.1 24.67 10.42 24.67 10.74 -2.02 10.41 -2.02 10.1"/><polygon class="cls-144" points="-2.02 9.79 24.67 10.11 24.67 10.42 -2.02 10.1 -2.02 9.79"/><polygon class="cls-145" points="-2.02 9.47 24.67 9.79 24.67 10.11 -2.02 9.79 -2.02 9.47"/><polygon class="cls-146" points="-2.02 9.15 24.67 9.48 24.67 9.79 -2.02 9.47 -2.02 9.15"/><polygon class="cls-147" points="-2.02 8.84 24.67 9.16 24.67 9.48 -2.02 9.15 -2.02 8.84"/><polygon class="cls-148" points="-2.02 8.52 24.67 8.85 24.67 9.16 -2.02 8.84 -2.02 8.52"/><polygon class="cls-149" points="-2.02 8.21 24.67 8.53 24.67 8.85 -2.02 8.52 -2.02 8.21"/><polygon class="cls-150" points="-2.02 7.89 24.67 8.22 24.67 8.53 -2.02 8.21 -2.02 7.89"/><polygon class="cls-151" points="-2.02 7.58 24.67 7.9 24.67 8.22 -2.02 7.89 -2.02 7.58"/><polygon class="cls-152" points="-2.02 7.26 24.67 7.59 24.67 7.9 -2.02 7.58 -2.02 7.26"/><polygon class="cls-153" points="-2.02 6.95 24.67 7.27 24.67 7.59 -2.02 7.26 -2.02 6.95"/><polygon class="cls-154" points="-2.02 6.63 24.67 6.96 24.67 7.27 -2.02 6.95 -2.02 6.63"/><polygon class="cls-155" points="-2.02 6.32 24.67 6.64 24.67 6.96 -2.02 6.63 -2.02 6.32"/><polygon class="cls-156" points="-2.02 6 24.67 6.33 24.67 6.64 -2.02 6.32 -2.02 6"/><polygon class="cls-157" points="-2.02 5.69 24.67 6.01 24.67 6.33 -2.02 6 -2.02 5.69"/><polygon class="cls-158" points="-2.02 5.37 24.67 5.7 24.67 6.01 -2.02 5.69 -2.02 5.37"/><polygon class="cls-159" points="-2.02 5.06 24.67 5.38 24.67 5.7 -2.02 5.37 -2.02 5.06"/><polygon class="cls-160" points="-2.02 4.74 24.67 5.07 24.67 5.38 -2.02 5.06 -2.02 4.74"/><polygon class="cls-161" points="-2.02 4.43 24.67 4.75 24.67 5.07 -2.02 4.74 -2.02 4.43"/><polygon class="cls-162" points="-2.02 4.11 24.67 4.44 24.67 4.75 -2.02 4.43 -2.02 4.11"/><polygon class="cls-163" points="-2.02 3.8 24.67 4.12 24.67 4.44 -2.02 4.11 -2.02 3.8"/><polygon class="cls-164" points="-2.02 3.48 24.67 3.81 24.67 4.12 -2.02 3.8 -2.02 3.48"/><polygon class="cls-165" points="-2.02 3.17 24.67 3.49 24.67 3.81 -2.02 3.48 -2.02 3.17"/><polygon class="cls-166" points="-2.02 2.85 24.67 3.17 24.67 3.49 -2.02 3.17 -2.02 2.85"/><polygon class="cls-167" points="-2.02 2.54 24.67 2.86 24.67 3.17 -2.02 2.85 -2.02 2.54"/><polygon class="cls-168" points="-2.02 2.22 24.67 2.54 24.67 2.86 -2.02 2.54 -2.02 2.22"/><polygon class="cls-169" points="-2.02 1.91 24.67 2.23 24.67 2.54 -2.02 2.22 -2.02 1.91"/><polygon class="cls-170" points="-2.02 1.59 24.67 1.92 24.67 2.23 -2.02 1.91 -2.02 1.59"/><polygon class="cls-171" points="-2.02 1.28 24.67 1.6 24.67 1.92 -2.02 1.59 -2.02 1.28"/><polygon class="cls-172" points="-2.02 0.96 24.67 1.28 24.67 1.6 -2.02 1.28 -2.02 0.96"/><polygon class="cls-173" points="-2.02 0.65 24.67 0.97 24.67 1.28 -2.02 0.96 -2.02 0.65"/><polygon class="cls-174" points="-2.02 0.33 24.67 0.65 24.67 0.97 -2.02 0.65 -2.02 0.33"/><polygon class="cls-175" points="-2.02 0.02 24.67 0.34 24.67 0.65 -2.02 0.33 -2.02 0.02"/><polygon class="cls-176" points="22.67 0 24.67 0.02 24.67 0.34 -2.02 0.02 -2.02 0 22.67 0"/><polygon class="cls-176" points="24.67 0.02 22.67 0 24.67 0 24.67 0.02"/></g><g class="cls-177"><rect class="cls-3" x="31.2" y="-0.05" width="26.87" height="0.2"/><rect class="cls-3" x="31.2" y="0.15" width="26.87" height="0.31"/><rect class="cls-4" x="31.2" y="0.47" width="26.87" height="0.31"/><rect class="cls-5" x="31.2" y="0.78" width="26.87" height="0.31"/><rect class="cls-6" x="31.2" y="1.09" width="26.87" height="0.31"/><rect class="cls-7" x="31.2" y="1.41" width="26.87" height="0.31"/><rect class="cls-8" x="31.2" y="1.72" width="26.87" height="0.31"/><rect class="cls-9" x="31.2" y="2.04" width="26.87" height="0.31"/><rect class="cls-10" x="31.2" y="2.35" width="26.87" height="0.31"/><rect class="cls-11" x="31.2" y="2.67" width="26.87" height="0.31"/><rect class="cls-12" x="31.2" y="2.98" width="26.87" height="0.31"/><rect class="cls-13" x="31.2" y="3.3" width="26.87" height="0.31"/><rect class="cls-14" x="31.2" y="3.61" width="26.87" height="0.31"/><rect class="cls-15" x="31.2" y="3.93" width="26.87" height="0.31"/><rect class="cls-16" x="31.2" y="4.24" width="26.87" height="0.31"/><rect class="cls-17" x="31.2" y="4.56" width="26.87" height="0.31"/><rect class="cls-18" x="31.2" y="4.87" width="26.87" height="0.31"/><rect class="cls-19" x="31.2" y="5.19" width="26.87" height="0.31"/><rect class="cls-20" x="31.2" y="5.5" width="26.87" height="0.31"/><rect class="cls-21" x="31.2" y="5.82" width="26.87" height="0.31"/><rect class="cls-22" x="31.2" y="6.13" width="26.87" height="0.31"/><rect class="cls-23" x="31.2" y="6.45" width="26.87" height="0.31"/><rect class="cls-24" x="31.2" y="6.76" width="26.87" height="0.31"/><rect class="cls-25" x="31.2" y="7.08" width="26.87" height="0.31"/><rect class="cls-26" x="31.2" y="7.39" width="26.87" height="0.31"/><rect class="cls-27" x="31.2" y="7.71" width="26.87" height="0.31"/><rect class="cls-28" x="31.2" y="8.02" width="26.87" height="0.31"/><rect class="cls-29" x="31.2" y="8.34" width="26.87" height="0.31"/><rect class="cls-30" x="31.2" y="8.65" width="26.87" height="0.31"/><rect class="cls-31" x="31.2" y="8.97" width="26.87" height="0.31"/><rect class="cls-32" x="31.2" y="9.28" width="26.87" height="0.31"/><rect class="cls-33" x="31.2" y="9.6" width="26.87" height="0.31"/><rect class="cls-34" x="31.2" y="9.91" width="26.87" height="0.31"/><rect class="cls-35" x="31.2" y="10.23" width="26.87" height="0.31"/><rect class="cls-36" x="31.2" y="10.54" width="26.87" height="0.31"/><rect class="cls-37" x="31.2" y="10.86" width="26.87" height="0.31"/><rect class="cls-38" x="31.2" y="11.17" width="26.87" height="0.31"/><rect class="cls-39" x="31.2" y="11.48" width="26.87" height="0.31"/><rect class="cls-40" x="31.2" y="11.8" width="26.87" height="0.31"/><rect class="cls-41" x="31.2" y="12.11" width="26.87" height="0.31"/><rect class="cls-42" x="31.2" y="12.43" width="26.87" height="0.31"/><rect class="cls-43" x="31.2" y="12.74" width="26.87" height="0.31"/><rect class="cls-44" x="31.2" y="13.06" width="26.87" height="0.31"/><rect class="cls-45" x="31.2" y="13.37" width="26.87" height="0.31"/><rect class="cls-46" x="31.2" y="13.69" width="26.87" height="0.31"/><rect class="cls-47" x="31.2" y="14" width="26.87" height="0.31"/><rect class="cls-48" x="31.2" y="14.32" width="26.87" height="0.31"/><rect class="cls-49" x="31.2" y="14.63" width="26.87" height="0.31"/><rect class="cls-50" x="31.2" y="14.95" width="26.87" height="0.31"/><rect class="cls-51" x="31.2" y="15.26" width="26.87" height="0.31"/><rect class="cls-52" x="31.2" y="15.58" width="26.87" height="0.31"/><rect class="cls-53" x="31.2" y="15.89" width="26.87" height="0.31"/><rect class="cls-54" x="31.2" y="16.21" width="26.87" height="0.31"/><rect class="cls-55" x="31.2" y="16.52" width="26.87" height="0.31"/><rect class="cls-56" x="31.2" y="16.84" width="26.87" height="0.31"/><rect class="cls-57" x="31.2" y="17.15" width="26.87" height="0.31"/><rect class="cls-58" x="31.2" y="17.47" width="26.87" height="0.31"/><rect class="cls-59" x="31.2" y="17.78" width="26.87" height="0.31"/><rect class="cls-60" x="31.2" y="18.1" width="26.87" height="0.31"/><rect class="cls-61" x="31.2" y="18.41" width="26.87" height="0.31"/><rect class="cls-62" x="31.2" y="18.73" width="26.87" height="0.31"/><rect class="cls-63" x="31.2" y="19.04" width="26.87" height="0.31"/><rect class="cls-64" x="31.2" y="19.36" width="26.87" height="0.31"/><rect class="cls-65" x="31.2" y="19.67" width="26.87" height="0.31"/><rect class="cls-66" x="31.2" y="19.99" width="26.87" height="0.31"/><rect class="cls-67" x="31.2" y="20.3" width="26.87" height="0.31"/><rect class="cls-68" x="31.2" y="20.62" width="26.87" height="0.31"/><rect class="cls-69" x="31.2" y="20.93" width="26.87" height="0.31"/><rect class="cls-70" x="31.2" y="21.25" width="26.87" height="0.31"/><rect class="cls-71" x="31.2" y="21.56" width="26.87" height="0.31"/><rect class="cls-72" x="31.2" y="21.88" width="26.87" height="0.31"/><rect class="cls-73" x="31.2" y="22.19" width="26.87" height="0.31"/><rect class="cls-74" x="31.2" y="22.5" width="26.87" height="0.31"/><rect class="cls-75" x="31.2" y="22.82" width="26.87" height="0.31"/><rect class="cls-76" x="31.2" y="23.13" width="26.87" height="0.31"/><rect class="cls-77" x="31.2" y="23.45" width="26.87" height="0.31"/><rect class="cls-78" x="31.2" y="23.76" width="26.87" height="0.31"/><rect class="cls-79" x="31.2" y="24.08" width="26.87" height="0.31"/><rect class="cls-80" x="31.2" y="24.39" width="26.87" height="0.31"/><rect class="cls-81" x="31.2" y="24.71" width="26.87" height="0.31"/><rect class="cls-82" x="31.2" y="25.02" width="26.87" height="0.31"/><rect class="cls-83" x="31.2" y="25.34" width="26.87" height="0.31"/><rect class="cls-84" x="31.2" y="25.65" width="26.87" height="0.31"/><rect class="cls-85" x="31.2" y="25.97" width="26.87" height="0.31"/><rect class="cls-86" x="31.2" y="26.28" width="26.87" height="0.31"/><rect class="cls-87" x="31.2" y="26.6" width="26.87" height="0.31"/><rect class="cls-88" x="31.2" y="26.91" width="26.87" height="0.31"/><rect class="cls-89" x="31.2" y="27.23" width="26.87" height="0.31"/><rect class="cls-90" x="31.2" y="27.54" width="26.87" height="0.31"/><rect class="cls-91" x="31.2" y="27.86" width="26.87" height="0.31"/><rect class="cls-92" x="31.2" y="28.17" width="26.87" height="0.31"/><rect class="cls-93" x="31.2" y="28.49" width="26.87" height="0.31"/><rect class="cls-94" x="31.2" y="28.8" width="26.87" height="0.31"/><rect class="cls-95" x="31.2" y="29.12" width="26.87" height="0.31"/><rect class="cls-96" x="31.2" y="29.43" width="26.87" height="0.31"/><rect class="cls-97" x="31.2" y="29.75" width="26.87" height="0.31"/><rect class="cls-98" x="31.2" y="30.06" width="26.87" height="0.31"/><rect class="cls-99" x="31.2" y="30.38" width="26.87" height="0.31"/><rect class="cls-100" x="31.2" y="30.69" width="26.87" height="0.31"/><rect class="cls-101" x="31.2" y="31.01" width="26.87" height="0.31"/><rect class="cls-102" x="31.2" y="31.32" width="26.87" height="0.31"/><rect class="cls-103" x="31.2" y="31.64" width="26.87" height="0.31"/><rect class="cls-104" x="31.2" y="31.95" width="26.87" height="0.31"/><rect class="cls-105" x="31.2" y="32.27" width="26.87" height="0.31"/><rect class="cls-106" x="31.2" y="32.58" width="26.87" height="0.31"/><rect class="cls-107" x="31.2" y="32.9" width="26.87" height="0.31"/><rect class="cls-108" x="31.2" y="33.21" width="26.87" height="0.31"/><rect class="cls-109" x="31.2" y="33.52" width="26.87" height="0.31"/><rect class="cls-110" x="31.2" y="33.84" width="26.87" height="0.31"/><rect class="cls-111" x="31.2" y="34.15" width="26.87" height="0.31"/><rect class="cls-112" x="31.2" y="34.47" width="26.87" height="0.31"/><rect class="cls-113" x="31.2" y="34.78" width="26.87" height="0.31"/><rect class="cls-114" x="31.2" y="35.1" width="26.87" height="0.31"/><rect class="cls-115" x="31.2" y="35.41" width="26.87" height="0.31"/><rect class="cls-116" x="31.2" y="35.73" width="26.87" height="0.31"/><rect class="cls-117" x="31.2" y="36.04" width="26.87" height="0.31"/><rect class="cls-118" x="31.2" y="36.36" width="26.87" height="0.31"/><rect class="cls-119" x="31.2" y="36.67" width="26.87" height="0.31"/><rect class="cls-120" x="31.2" y="36.99" width="26.87" height="0.31"/><rect class="cls-121" x="31.2" y="37.3" width="26.87" height="0.31"/><rect class="cls-122" x="31.2" y="37.62" width="26.87" height="0.31"/><rect class="cls-123" x="31.2" y="37.93" width="26.87" height="0.31"/><rect class="cls-124" x="31.2" y="38.25" width="26.87" height="0.31"/><rect class="cls-125" x="31.2" y="38.56" width="26.87" height="0.31"/><rect class="cls-126" x="31.2" y="38.88" width="26.87" height="0.31"/><rect class="cls-127" x="31.2" y="39.19" width="26.87" height="0.31"/><rect class="cls-128" x="31.2" y="39.51" width="26.87" height="0.31"/><rect class="cls-129" x="31.2" y="39.82" width="26.87" height="0.31"/><rect class="cls-130" x="31.2" y="40.14" width="26.87" height="0.31"/><rect class="cls-131" x="31.2" y="40.45" width="26.87" height="0.31"/><rect class="cls-132" x="31.2" y="40.77" width="26.87" height="0.31"/><rect class="cls-133" x="31.2" y="41.08" width="26.87" height="0.31"/><rect class="cls-134" x="31.2" y="41.4" width="26.87" height="0.31"/><rect class="cls-135" x="31.2" y="41.71" width="26.87" height="0.31"/><rect class="cls-136" x="31.2" y="42.03" width="26.87" height="0.31"/><rect class="cls-137" x="31.2" y="42.34" width="26.87" height="0.31"/><rect class="cls-138" x="31.2" y="42.66" width="26.87" height="0.31"/><rect class="cls-139" x="31.2" y="42.97" width="26.87" height="0.31"/><rect class="cls-140" x="31.2" y="43.29" width="26.87" height="0.31"/><rect class="cls-141" x="31.2" y="43.6" width="26.87" height="0.31"/><rect class="cls-142" x="31.2" y="43.91" width="26.87" height="0.31"/><rect class="cls-143" x="31.2" y="44.23" width="26.87" height="0.31"/><rect class="cls-144" x="31.2" y="44.54" width="26.87" height="0.31"/><rect class="cls-145" x="31.2" y="44.86" width="26.87" height="0.31"/><rect class="cls-146" x="31.2" y="45.17" width="26.87" height="0.31"/><rect class="cls-147" x="31.2" y="45.49" width="26.87" height="0.31"/><rect class="cls-148" x="31.2" y="45.8" width="26.87" height="0.31"/><rect class="cls-149" x="31.2" y="46.12" width="26.87" height="0.31"/><rect class="cls-150" x="31.2" y="46.43" width="26.87" height="0.31"/><rect class="cls-151" x="31.2" y="46.75" width="26.87" height="0.31"/><rect class="cls-152" x="31.2" y="47.06" width="26.87" height="0.31"/><rect class="cls-153" x="31.2" y="47.38" width="26.87" height="0.31"/><rect class="cls-154" x="31.2" y="47.69" width="26.87" height="0.31"/><rect class="cls-155" x="31.2" y="48.01" width="26.87" height="0.31"/><rect class="cls-156" x="31.2" y="48.32" width="26.87" height="0.31"/><rect class="cls-157" x="31.2" y="48.64" width="26.87" height="0.31"/><rect class="cls-158" x="31.2" y="48.95" width="26.87" height="0.31"/><rect class="cls-159" x="31.2" y="49.27" width="26.87" height="0.31"/><rect class="cls-160" x="31.2" y="49.58" width="26.87" height="0.31"/><rect class="cls-161" x="31.2" y="49.9" width="26.87" height="0.31"/><rect class="cls-162" x="31.2" y="50.21" width="26.87" height="0.31"/><rect class="cls-163" x="31.2" y="50.53" width="26.87" height="0.31"/><rect class="cls-164" x="31.2" y="50.84" width="26.87" height="0.31"/><rect class="cls-165" x="31.2" y="51.16" width="26.87" height="0.31"/><rect class="cls-166" x="31.2" y="51.47" width="26.87" height="0.31"/><rect class="cls-167" x="31.2" y="51.79" width="26.87" height="0.31"/><rect class="cls-168" x="31.2" y="52.1" width="26.87" height="0.31"/><rect class="cls-169" x="31.2" y="52.42" width="26.87" height="0.31"/><rect class="cls-170" x="31.2" y="52.73" width="26.87" height="0.31"/><rect class="cls-171" x="31.2" y="53.05" width="26.87" height="0.31"/><rect class="cls-172" x="31.2" y="53.36" width="26.87" height="0.31"/><rect class="cls-173" x="31.2" y="53.68" width="26.87" height="0.31"/><rect class="cls-174" x="31.2" y="53.99" width="26.87" height="0.31"/><rect class="cls-175" x="31.2" y="54.31" width="26.87" height="0.31"/><rect class="cls-176" x="31.2" y="54.62" width="26.87" height="0.31"/><rect class="cls-176" x="31.2" y="54.93" width="26.87" height="0.01"/></g></svg>
\ No newline at end of file
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.02 22.31"><defs><style>.cls-1{fill:#ff5160;}.cls-2{fill:#ffd5d5;}</style></defs><title>ic_画板 21</title><path class="cls-1" d="M4,21.31a3,3,0,0,1-3-3V4A3,3,0,0,1,5.63,1.49l11,7.15a3,3,0,0,1,0,5l-11,7.15A3,3,0,0,1,4,21.31Z"/><path class="cls-2" d="M4,2a2,2,0,0,1,1.08.33l11,7.15a2,2,0,0,1,0,3.36L5.09,20A2,2,0,0,1,4,20.31a2,2,0,0,1-2-2V4A2,2,0,0,1,4,2M4,0A4,4,0,0,0,0,4v14.3a4,4,0,0,0,6.18,3.36l11-7.15a4,4,0,0,0,0-6.71L6.18.65A4,4,0,0,0,4,0Z"/></svg>
\ No newline at end of file
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.02 22.31"><defs><style>.cls-1{fill:#8390ee;}.cls-2{fill:#c3caf8;}</style></defs><title>ic_画板 5</title><path class="cls-1" d="M4,21.31a3,3,0,0,1-3-3V4A3,3,0,0,1,5.63,1.49l11,7.15a3,3,0,0,1,0,5l-11,7.15A3,3,0,0,1,4,21.31Z"/><path class="cls-2" d="M4,2a2,2,0,0,1,1.08.33l11,7.15a2,2,0,0,1,0,3.36L5.09,20A2,2,0,0,1,4,20.31a2,2,0,0,1-2-2V4A2,2,0,0,1,4,2M4,0A4,4,0,0,0,0,4v14.3a4,4,0,0,0,6.18,3.36l11-7.15a4,4,0,0,0,0-6.71L6.18.65A4,4,0,0,0,4,0Z"/></svg>
\ No newline at end of file
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22"><defs><style>.cls-1{fill:#8390ee;}.cls-2{fill:#c3caf8;}</style></defs><title>ic_画板 20</title><rect class="cls-1" x="1" y="1" width="20" height="20" rx="3" ry="3"/><path class="cls-2" d="M18,22H4a4,4,0,0,1-4-4V4A4,4,0,0,1,4,0H18a4,4,0,0,1,4,4V18A4,4,0,0,1,18,22ZM4,2A2,2,0,0,0,2,4V18a2,2,0,0,0,2,2H18a2,2,0,0,0,2-2V4a2,2,0,0,0-2-2Z"/></svg>
\ No newline at end of file
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32.04 9"><defs><style>.cls-1{fill:#8390ee;}.cls-2{fill:#c3caf8;}</style></defs><title>ic_画板 4</title><circle class="cls-1" cx="4.5" cy="4.5" r="3.5"/><path class="cls-2" d="M4.5,2A2.5,2.5,0,1,1,2,4.5,2.5,2.5,0,0,1,4.5,2m0-2A4.5,4.5,0,1,0,9,4.5,4.51,4.51,0,0,0,4.5,0Z"/><path class="cls-1" d="M16,8a3.5,3.5,0,0,1,0-7,3.5,3.5,0,0,1,0,7Z"/><path class="cls-2" d="M16,2a2.5,2.5,0,1,1-2.29,1.5A2.49,2.49,0,0,1,16,2m0-2h0a4.5,4.5,0,1,0,1.79.37A4.5,4.5,0,0,0,16,0Z"/><path class="cls-1" d="M27.54,8a3.5,3.5,0,0,1,0-7,3.5,3.5,0,0,1,0,7Z"/><path class="cls-2" d="M27.54,2a2.5,2.5,0,1,1-2.29,1.5A2.49,2.49,0,0,1,27.54,2m0-2h0a4.5,4.5,0,1,0,1.79.37A4.5,4.5,0,0,0,27.54,0Z"/></svg>
\ No newline at end of file
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 819.2 716.8"><title>ic_画板 2</title><path d="M759.36,283.6C725,121.68,581.84,0,409.6,0,303.36,0,208.08,46.32,142.48,119.84a354.83,354.83,0,0,0-24.72,31c-2.24,3.12-15.36,15.52-15.36,28.4,0,14.16,11.44,25.12,25.6,25.6,16.8.56,24.72-14.4,27.52-18.48C210.72,104.88,303.76,51.2,409.6,51.2c146,0,267.68,102.08,298.88,238.64a76.51,76.51,0,1,0,50.88-6.24ZM742.4,384A25.6,25.6,0,1,1,768,358.4,25.57,25.57,0,0,1,742.4,384Z"/><path d="M691.2,512a25.52,25.52,0,0,0-18.08,7.52s-8,9-11.52,14c-55.44,79.76-147.52,132.08-252,132.08-146,0-267.92-101.92-299.2-238.48A76.57,76.57,0,1,0,59,433C93.36,595.12,237.2,716.8,409.6,716.8c119.44,0,225-58.56,290.08-148.4,2.8-3.84,12.16-15.76,13.6-18.16a24.21,24.21,0,0,0,3.52-12.64A25.58,25.58,0,0,0,691.2,512ZM76.8,384a25.6,25.6,0,1,1,25.6-25.6A25.58,25.58,0,0,1,76.8,384Z"/></svg>
\ No newline at end of file
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 255.98 358.35"><title>ic_画板 3</title><path d="M247.44,150.43a37.52,37.52,0,0,0-9.76-11L72.24,9.39C62.4,1.55,50.48-1.57,38.48.75c-12,2-22.48,9-29.76,19.6A49.83,49.83,0,0,0,0,49.31V309.39a49.61,49.61,0,0,0,13.44,34.48c8.72,9.36,19.92,14.48,31.92,14.48a40.69,40.69,0,0,0,26.48-9.44L237.28,219a49.72,49.72,0,0,0,18.16-32.16A53.05,53.05,0,0,0,247.44,150.43Z"/></svg>
\ No newline at end of file
<template>
<div class="icon-main icon_act">
<svg-icon icon-class="ic_2" class="svg_out"></svg-icon>
<svg-icon icon-class="ic_3" class="svg_in"></svg-icon>
<div class="icon_background">
<div class="icon-main icon_act">
<svg-icon icon-class="fwgl_ic_arrow" class="svg_out"></svg-icon>
<svg-icon icon-class="fwgl_ic_bufenguzhang" class="svg_in"></svg-icon>
</div>
</div>
</template>
......@@ -20,6 +22,9 @@ export default {
</script>
<style scoped>
.icon_background {
padding-top: 300px;
}
.icon-main {
/* margin-top: 100px; */
width: 60px;
......
<template>
<div class="detail_contain">
<p class="now_page_title">
我的服务 / 注册发布的服务 / <span>服务详情</span>
我的服务 / 注册发布的服务 /
<span>服务详情</span>
</p>
<div class="info_contain">
<service-header :data="service_header_arr"></service-header>
......@@ -15,34 +16,28 @@
:style="
now_service == index ? { borderBottom: '4px solid #f5ab4c' } : {}
"
>
{{ item }}
</div>
>{{ item }}</div>
</div>
<div class="type_box_select">
<info-list
:list_arr="now_service == 0 ? list_arr : servicead_arr"
v-if="now_service == 0 || now_service == 1"
>
<table-um
:headers="header_arr"
:datas="res_data"
slot="zd_table"
></table-um>
<table-um :headers="header_arr" :datas="res_data" slot="zd_table"></table-um>
<v-apaas-code :datas="code_arr" slot="zd_code"></v-apaas-code>
</info-list>
<div v-show="now_service == 2">
<p class="service_title"><span></span>服务运行概况</p>
<p class="service_title">
<span></span>服务运行概况
</p>
<div class="service_title_card">
<nor-card title="服务状态" class="service_card">
<template>
<div style="height:115px;padding-top:10px;">
<example-icon style="margin:10px auto;"></example-icon>
<waveIcon :state="yx_state.state" style="margin:10px auto;"></waveIcon>
<p
style="color: #58617a;font-size: 16px;text-align:center;"
>
{{ yx_state.state }}
</p>
>{{ yx_state.state }}</p>
</div>
</template>
</nor-card>
......@@ -64,10 +59,7 @@
</nor-card>
<nor-card title="资源使用" class="service_card">
<template>
<div
style="height:115px;padding-top:30px;"
class="service_num"
>
<div style="height:115px;padding-top:30px;" class="service_num">
<p>{{ yx_state.memory }}</p>
</div>
</template>
......@@ -76,11 +68,10 @@
<nor-card title="服务调用拓扑图" class="service_card_charts">
<Topology :datas="datas" />
</nor-card>
<p class="service_title"><span></span>服务调用列表</p>
<table-um
:headers="header_use_arr"
:datas="service_use_arr"
></table-um>
<p class="service_title">
<span></span>服务调用列表
</p>
<table-um :headers="header_use_arr" :datas="service_use_arr"></table-um>
<list-pagination
:total="listTotal"
:page-sizes="pageSizes"
......@@ -92,34 +83,19 @@
</div>
<div v-show="now_service == 3">
<p style="color: #8890a7;">服务规格:</p>
<table-um
:stripe="true"
:headers="service_size_arr"
:datas="service_size_data"
></table-um>
<table-um :stripe="true" :headers="service_size_arr" :datas="service_size_data"></table-um>
<p style="color: #8890a7;">购买方式:</p>
<p style="color: #242c43;margin:10px 0px;">
{{
buy_type == 1
? "按月购买"
: buy_type == 2
? "按年购买"
: "按月购买&按年购买"
buy_type == 1
? "按月购买"
: buy_type == 2
? "按年购买"
: "按月购买&按年购买"
}}
</p>
<div
class="editbtn"
v-if="now_user == 1"
@click="sizeset_flag = true"
>
编辑
</div>
<p
v-if="now_user == 1 && sizeset_flag"
style="color: #8890a7;margin-bottom:10px;"
>
规格设置:
</p>
<div class="editbtn" v-if="now_user == 1" @click="sizeset_flag = true">编辑</div>
<p v-if="now_user == 1 && sizeset_flag" style="color: #8890a7;margin-bottom:10px;">规格设置:</p>
<table-um
v-if="now_user == 1 && sizeset_flag"
:headers="edit_size_arr"
......@@ -131,26 +107,18 @@
:isIndex="true"
:datas="service_size_data"
@changeTable="now_size_data"
>
</table-um>
<p
v-if="now_user == 1 && sizeset_flag"
style="color: #8890a7;margin:10px 0;"
>
购买方式:
</p>
></table-um>
<p v-if="now_user == 1 && sizeset_flag" style="color: #8890a7;margin:10px 0;">购买方式:</p>
<el-button
v-if="now_user == 1 && sizeset_flag"
:type="buy_style.indexOf(1) !== -1 ? 'primary' : ''"
@click="change_buy(1)"
>按月购买</el-button
>
>按月购买</el-button>
<el-button
v-if="now_user == 1 && sizeset_flag"
:type="buy_style.indexOf(2) !== -1 ? 'primary' : ''"
@click="change_buy(2)"
>按年购买</el-button
>
>按年购买</el-button>
<div class="savebtn" v-if="now_user == 1 && sizeset_flag">
<el-button @click="change_service_size">保存</el-button>
<el-button @click="sizeset_flag = false">取消</el-button>
......@@ -168,7 +136,7 @@ import infoList from "@/components/infoList";
import tableUm from "@/components/table/table-um";
import codes from "@/components/general/codes";
import norCard from "@/components/card";
import exampleIcon from "@/pages/example/example_icon";
import waveIcon from "@/components/general/wave_icon";
import Topology from "@/components/topology.vue";
import serviceHeader from "@/components/service-header";
import ListPagination from "@/components/comments-pagination";
......@@ -181,11 +149,11 @@ export default {
tableUm,
"v-apaas-code": codes,
norCard,
exampleIcon,
waveIcon,
Topology,
serviceHeader,
dialogAction,
ListPagination,
ListPagination
},
data() {
return {
......@@ -203,9 +171,9 @@ export default {
maxTime: "",
averageTraffic: "",
maxTraffic: "",
memory: "",
memory: ""
},
service_use_arr:[],
service_use_arr: [],
res_data: [], //响应参数
buy_type: "",
sizeset_flag: false, //规格设置是否显示
......@@ -213,7 +181,7 @@ export default {
service_arr: [
["服务基本信息", "接口详细信息", "服务运行状态"],
["服务基本信息", "接口详细信息", "服务运行状态", "服务计费规则"],
["服务基本信息", "接口详细信息", "服务运行状态", "服务规格"],
["服务基本信息", "接口详细信息", "服务运行状态", "服务规格"]
],
service_size_data: [], //服务规格数组
service_header_arr: {
......@@ -222,29 +190,29 @@ export default {
first: [
{
name: "服务类型",
text: "",
text: ""
},
{
name: "申请次数",
text: "",
text: ""
},
{
name: "调用次数",
text: "",
text: ""
},
{
name: "服务状态",
text: "",
},
text: ""
}
],
second: [
{
name: "服务接口地址",
text: "",
},
text: ""
}
],
fixed: true,
fixedurl: this.$route.path.replace("servicedetail", "serviceedit"),
fixedurl: this.$route.path.replace("servicedetail", "serviceedit")
},
now_service: 0,
datas: {},
......@@ -253,90 +221,90 @@ export default {
prop: "name",
label: "字段名称",
minWidth: "20%",
align: "left",
align: "left"
},
{
prop: "field_type",
label: "字段编码",
width: "100px",
align: "center",
align: "center"
},
{
prop: "show_type",
label: "字段类型",
width: "100px",
align: "center",
align: "center"
},
{
prop: "descript",
label: "字段说明",
minWidth: "30%",
align: "left",
align: "left"
},
{
prop: "example",
label: "字段示例数值",
width: "120px",
align: "left",
},
align: "left"
}
],
header_use_arr: [
{
prop: "dydw",
label: "调用单位",
minWidth: "20%",
align: "left",
align: "left"
},
{
prop: "dyr",
label: "调用人",
width: "100px",
align: "center",
align: "center"
},
{
prop: "dyyw",
label: "调用业务系统",
minWidth: "20%",
align: "left",
align: "left"
},
{
prop: "ywxt",
label: "业务系统网址",
minWidth: "20%",
align: "left",
align: "left"
},
{
prop: "cjms",
label: "场景描述",
minWidth: "40%",
align: "left",
align: "left"
},
{
prop: "sqsj",
label: "申请调用时间",
width: "160px",
align: "right",
},
align: "right"
}
],
service_size_arr: [
{
prop: "count",
label: "访问次数(次/日)",
minWidth: "33.33%",
align: "center",
align: "center"
},
{
prop: "pv",
label: "访问量(PV/日)",
minWidth: "33.33%",
align: "center",
align: "center"
},
{
prop: "des",
label: "规格说明",
minWidth: "33.33%",
align: "left",
},
align: "left"
}
],
edit_size_arr: [
{
......@@ -344,21 +312,21 @@ export default {
label: "访问次数(次/日)",
minWidth: "33.33%",
align: "center",
type: "inputNumber",
type: "inputNumber"
},
{
prop: "pv",
label: "访问量(PV/日)",
minWidth: "33.33%",
align: "center",
type: "inputNumber",
type: "inputNumber"
},
{
prop: "des",
label: "规格说明",
minWidth: "33.33%",
align: "left",
type: "input",
type: "input"
},
{
label: "操作",
......@@ -369,48 +337,48 @@ export default {
{
type: "action-delete",
label: "删除",
local: true,
},
],
},
local: true
}
]
}
],
size_arr_down: [],
servicead_arr: [
{
title: "请求方式:",
info: "",
info: ""
},
{
title: "请求参数:",
info: "",
info: ""
},
{
title: "请求示例:",
info: "",
info: ""
},
{
title: "编码格式:",
info: "",
info: ""
},
{
title: "响应参数:",
info: "",
type: "solt",
solt_name: "zd_table",
solt_name: "zd_table"
},
{
title: "响应示例:",
info: "",
type: "solt",
solt_name: "zd_code",
},
solt_name: "zd_code"
}
],
service_type_arr: [
"数据服务",
"时空服务",
"视频服务",
"感知服务",
"综合服务",
"综合服务"
],
scrvice_area_arr: [
"经济建设",
......@@ -422,49 +390,49 @@ export default {
"文化休闲",
"社会团体",
"教育机构",
"其他",
"其他"
],
open_arr: ["共享", "受限", "敏感"],
service_state_arr: ["已下架","已上架", "审核中"],
service_state_arr: ["已下架", "已上架", "审核中"],
request_arr: ["GET", "POST", "PUT", "DELETE"],
list_arr: [
{
title: "服务描述:",
info: "",
info: ""
},
{
title: "服务领域:",
info: "",
info: ""
},
{
title: "所属组织:",
info: "",
info: ""
},
{
title: "开放程度:",
info: "",
info: ""
},
{
title: "接口编码:",
info: "",
info: ""
},
{
title: "注册发布时间:",
info: "",
},
],
info: ""
}
]
};
},
computed: {
...mapGetters(["level"]),
...mapState(["userInfo"]),
...mapState(["userInfo"])
},
watch: {
now_service(n, o) {
if (n == 2) {
this.getData();
}
},
}
},
created() {
if (this.userInfo) {
......@@ -487,34 +455,35 @@ export default {
this.currentPage = value;
this.get_use_list();
},
get_use_list(){
this.service_use_arr = []
get_use_list() {
this.service_use_arr = [];
this.$http
.get(`/apaas/service/v3/service/manager/service/applys?service_id=${this.$route.params.id}&page=${this.currentPage}&size=${this.pageSize}`)
.then((response) => {
.get(
`/apaas/service/v3/service/manager/service/applys?service_id=${this.$route.params.id}&page=${this.currentPage}&size=${this.pageSize}`
)
.then(response => {
console.log(response);
if(response.data.success){
this.listTotal = response.data.data.total
if (response.data.success) {
this.listTotal = response.data.data.total;
response.data.data.data.forEach(e => {
this.service_use_arr.push({
dydw:e.apply_org_name,
dyr:e.apply_user_info.user_name,
dyyw:e.business_name,
ywxt:e.business_url,
cjms:e.scene,
sqsj:e.apply_time,
})
dydw: e.apply_org_name,
dyr: e.apply_user_info.user_name,
dyyw: e.business_name,
ywxt: e.business_url,
cjms: e.scene,
sqsj: e.apply_time
});
});
}
})
.catch(function(response) {});
},
change_buy(val){
if(this.buy_style.indexOf(val)!==-1){
this.buy_style.splice(this.buy_style.indexOf(val),1)
}else{
this.buy_style.push(val)
change_buy(val) {
if (this.buy_style.indexOf(val) !== -1) {
this.buy_style.splice(this.buy_style.indexOf(val), 1);
} else {
this.buy_style.push(val);
}
},
getCurrentUser() {
......@@ -535,7 +504,7 @@ export default {
let url = "./static/antv.json";
this.$http
.get(url)
.then((response) => {
.then(response => {
this.datas = response.data.elements;
})
.catch(function(response) {});
......@@ -546,7 +515,7 @@ export default {
"/apaas/service/v3/service/manager?service_id=" +
this.$route.params.id
)
.then((response) => {
.then(response => {
if (response.data.success === 1) {
let data = response.data.data;
console.log(data);
......@@ -583,11 +552,7 @@ export default {
this.$route.path.replace("servicedetail", "serviceedit")
);
this.$set(this.list_arr[0], "info", data.descript);
this.$set(
this.list_arr[1],
"info",
data.sectors_name
);
this.$set(this.list_arr[1], "info", data.sectors_name);
this.$set(this.list_arr[2], "info", data.organization_name);
this.$set(this.list_arr[3], "info", data.openness_name);
this.$set(this.list_arr[4], "info", data.encode_method);
......@@ -613,15 +578,15 @@ export default {
this.service_size_data = data.request_spcs_info;
this.size_arr_down = data.request_spcs_info;
this.buy_type = data.request_spcs_info[0].type;
if(this.buy_type == 3){
this.buy_style = [1,2]
}else{
this.buy_style = [this.buy_type]
if (this.buy_type == 3) {
this.buy_style = [1, 2];
} else {
this.buy_style = [this.buy_type];
}
} else {
this.$message({
message: response.data.errMsg,
type: "warning",
type: "warning"
});
}
})
......@@ -637,47 +602,47 @@ export default {
"/apaas/service/v3/service/manager/request/spcs/list?service_id=" +
this.$route.params.id
)
.then((response) => {
.then(response => {
let data = response.data.data;
console.log(data);
this.service_size_data = data.data;
this.buy_type = data.data[0].type;
if(this.buy_type == 3){
this.buy_style = [1,2]
}else{
this.buy_style = [this.buy_type]
}
if (this.buy_type == 3) {
this.buy_style = [1, 2];
} else {
this.buy_style = [this.buy_type];
}
})
.catch(function(response) {});
},
change_service_size() {
let temp = [];
this.size_arr_down.forEach((e) => {
this.size_arr_down.forEach(e => {
if (e.pv && e.count) {
if (e.flag) {
e.id = 0;
}
if(this.buy_style.length==0){
this.$message.error('请选择申请时长')
return
}else if(this.buy_style.length==2){
e.type = 3
}else{
e.type = this.buy_style[0]
if (this.buy_style.length == 0) {
this.$message.error("请选择申请时长");
return;
} else if (this.buy_style.length == 2) {
e.type = 3;
} else {
e.type = this.buy_style[0];
}
delete e.undefined;
delete e.flag;
e.pv = parseInt(e.pv)
e.count = parseInt(e.count)
e.pv = parseInt(e.pv);
e.count = parseInt(e.count);
temp.push(e);
}
});
this.$http
.post("/apaas/service/v3/service/manager/request/spcs/save", {
service_id: parseInt(this.$route.params.id),
data: temp,
data: temp
})
.then((response) => {
.then(response => {
console.log(response);
if (response.data.success) {
this.$message.success("保存成功");
......@@ -691,23 +656,34 @@ export default {
getServiceyxztInfo() {
this.$http
.get(`/apaas/istio/service/apaas-proxy/overview/apaas-proxy-${this.$route.params.id}`)
.then((response) => {
if(response.data.success){
let data = response.data.data
this.yx_state={
state: data.appState=='running'?'运行中':'等待中',
averageTime: data.respTime.avg+'ms',
maxTime: data.respTime.max+'ms',
averageTraffic: data.throughput.avg+'dps',
maxTraffic: data.throughput.max+'dps',
memory: data.resource.memory+'MB',
}
.get(
`/apaas/istio/service/apaas-proxy/overview/apaas-proxy-${this.$route.params.id}`
)
.then(response => {
if (response.data.success) {
let data = response.data.data;
this.yx_state = {
state: data.appState == "running" ? "运行中" : "等待中",
averageTime: data.respTime.avg + "ms",
maxTime: data.respTime.max + "ms",
averageTraffic: data.throughput.avg + "dps",
maxTraffic: data.throughput.max + "dps",
memory: data.resource.memory + "MB"
};
}
})
},
},
.catch(response => {
this.yx_state = {
state: "停止",
averageTime: "0ms",
maxTime: "0ms",
averageTraffic: "0dps",
maxTraffic: "0dps",
memory: "0MB"
};
});
}
}
};
</script>
......
<template>
<div class="detail_contain">
<p class="now_page_title">我的应用 / 部署的应用 / <span>应用详情</span></p>
<p class="now_page_title">
我的应用 / 部署的应用 /
<span>应用详情</span>
</p>
<div class="info_contain">
<service-header
:data="service_header_arr"
@applymy="applymy"
></service-header>
<service-header :data="service_header_arr" @applymy="applymy"></service-header>
<div class="type_box">
<div class="type_title">
<div
......@@ -16,33 +16,40 @@
:style="
now_service == index ? { borderBottom: '4px solid #f5ab4c' } : {}
"
>
{{ item }}
</div>
>{{ item }}</div>
</div>
<div class="type_box_select">
<mavon-editor v-model="list_arr" :boxShadow="false" :toolbarsFlag="false" :subfield="false" defaultOpen="preview" :editable="false" v-if="now_service == 0"/>
<info-list v-if="now_service == 0" :list_arr="introductionArr">
<mavon-editor
slot="markdown"
v-model="markdown"
:boxShadow="false"
:toolbarsFlag="false"
:subfield="false"
defaultOpen="preview"
:editable="false"
v-if="now_service == 0"
/>
</info-list>
<div v-if="now_service==2" class="info_contain2">
<info-list :list_arr="fwfw_arr">
<div class="appcode" v-html="appcode" slot="app_code"></div>
<table-um
slot="fw_table"
:headers="header_fw_arr"
url="fw_rank_arr"
:stripe="true"
:paginationShow="true"
@detail="detail"
></table-um>
slot="fw_table"
:headers="header_fw_arr"
url="fw_rank_arr"
:stripe="true"
:paginationShow="true"
@detail="detail"
></table-um>
</info-list>
<div
@click="public_form = true"
v-if="public&&now_service == 0"
@click="public_form = true"
v-if="public && now_service == 0"
class="addimage"
title="将该应用以服务的形式发布至服务超市"
>
服务发布
</div>
>服务发布</div>
<el-form
:model="formInline"
label-width="0px"
......@@ -58,8 +65,7 @@
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="resource">
......@@ -80,17 +86,17 @@
</div>
<div v-if="now_service == 1&&image_arr.length">
<p class="service_title"><span></span>应用概况</p>
<p class="service_title">
<span></span>应用概况
</p>
<div class="service_title_card">
<nor-card title="应用状态" class="service_card">
<template>
<div style="height:115px;padding-top:10px;">
<example-icon style="margin:10px auto;"></example-icon>
<waveIcon :state="yx_state.state" style="margin:10px auto;"></waveIcon>
<p
style="color: #58617a;font-size: 16px;text-align:center;"
>
{{ yx_state.state }}
</p>
>{{ yx_state.state }}</p>
</div>
</template>
</nor-card>
......@@ -112,10 +118,7 @@
</nor-card>
<nor-card title="资源使用" class="service_card">
<template>
<div
style="height:115px;padding-top:30px;"
class="service_num"
>
<div style="height:115px;padding-top:30px;" class="service_num">
<p>{{ yx_state.memory }}</p>
</div>
</template>
......@@ -125,7 +128,7 @@
<span></span>应用设置
</p>
<div class="addimage">多版本回滚</div>
<p class="imagebox" >
<p class="imagebox">
<span
@click="image_select = index"
:style="
......@@ -135,13 +138,12 @@
"
v-for="(item, index) in image_arr"
:key="index + 6000"
>{{ item.name }}</span
>
>{{ item.name }}</span>
</p>
<table-um
v-for="(item, index) in image_arr"
:key="index+7000"
v-show="image_select == index"
v-for="(item, index) in image_arr"
:key="index+7000"
v-show="image_select == index"
:headers="header_image_arr"
:datas="image_arr[index].data"
:stripe="true"
......@@ -152,15 +154,10 @@
@online="online"
></table-um>
</div>
</div>
</div>
</div>
<dialog-action
ref="myConfirm"
:confirmOptions="tipsOptions"
></dialog-action>
<dialog-action ref="myConfirm" :confirmOptions="tipsOptions"></dialog-action>
</div>
</template>
......@@ -171,10 +168,10 @@ import serviceHeader from "@/components/service-header";
import dialogAction from "@/components/dialog-action";
import uploadFile from "@/components/general/upload_file";
import norCard from "@/components/card";
import exampleIcon from "@/pages/example/example_icon";
import waveIcon from "@/components/general/wave_icon";
import Topology from "@/components/topology.vue";
import { getRole } from "@/utils/common";
import { mapGetters,mapState } from 'vuex'
import { mapGetters, mapState } from "vuex";
export default {
components: {
infoList,
......@@ -184,7 +181,7 @@ export default {
uploadFile,
norCard,
Topology,
exampleIcon,
waveIcon
},
data() {
return {
......@@ -200,207 +197,207 @@ export default {
maxTime: "",
averageTraffic: "",
maxTraffic: "",
memory: "",
memory: ""
},
image_arr: [],
area_arr: [
{
label: "经济建设",
value: 0,
value: 0
},
{
label: "城市管理",
value: 1,
value: 1
},
{
label: "城市建设",
value: 2,
value: 2
},
{
label: "道路交通",
value: 3,
value: 3
},
{
label: "环境资源",
value: 4,
value: 4
},
{
label: "民生服务",
value: 5,
value: 5
},
{
label: "空间地理",
value: 6,
value: 6
},
{
label: "文化休闲",
value: 7,
value: 7
},
{
label: "社会团体",
value: 8,
value: 8
},
{
label: "教育机构",
value: 9,
value: 9
},
{
label: "其他",
value: 10,
},
value: 10
}
],
form: {
name: "",
fileList: "",
taps: "",
taps: ""
},
formInline: {
area: "",
resource: "",
resource: ""
},
fileList: "",
rules: {
name: [{ required: true, message: "请输入镜像名称", trigger: "blur" }],
taps: [{ required: true, message: "请输入镜像标签", trigger: "blur" }],
taps: [{ required: true, message: "请输入镜像标签", trigger: "blur" }]
},
rules1: {
area: [
{ required: true, message: "请选择服务领域", trigger: "change" },
{ required: true, message: "请选择服务领域", trigger: "change" }
],
resource: [
{ required: true, message: "请选择开放程度", trigger: "change" },
],
{ required: true, message: "请选择开放程度", trigger: "change" }
]
},
header_image_arr:[
{
prop:'vision',
label:'版本号',
minWidth: "20%",
align: "center",
},
{
prop:'state',
label:'状态',
minWidth: "20%",
align: "center",
},
{
prop:'date',
label:'在线日期',
minWidth: "30%",
align: "center",
},
{
label: "操作",
type: "Button",
align: "center",
minWidth: "30%",
btnList: [
{
type: "update",
label: "升级",
},
{
type: "rollback",
label: "回退",
},
{
type: "grouppublic",
label: "蓝绿发布",
},
{
type: "online",
label: "下线",
},
],
header_image_arr: [
{
prop: "vision",
label: "版本号",
minWidth: "20%",
align: "center"
},
{
prop: "state",
label: "状态",
minWidth: "20%",
align: "center"
},
{
prop: "date",
label: "在线日期",
minWidth: "30%",
align: "center"
},
{
label: "操作",
type: "Button",
align: "center",
minWidth: "30%",
btnList: [
{
type: "update",
label: "升级"
},
{
type: "rollback",
label: "回退"
},
{
type: "grouppublic",
label: "蓝绿发布"
},
{
type: "online",
label: "下线"
}
]
}
],
header_fw_arr:[
{
prop:'rank',
label:'服务排名',
width: "150px",
align: "center",
type:'rank',
},
{
prop:'name',
label:'服务名称',
minWidth: "40%",
align: "left",
type:'hot',
},
{
prop:'address',
label:'服务地址',
minWidth: "60%",
align: "left",
},
{
prop:'times',
label:'外部调用次数(次)',
width: "250px",
align: "center",
},
{
prop:'time',
label:'平均调用时长(h)',
width: "250px",
align: "center",
},
{
label: "操作",
type: "Button",
width: "250px",
align: "center",
btnList: [
{
type: "detail",
label: "查看监控日志",
},
],
header_fw_arr: [
{
prop: "rank",
label: "服务排名",
width: "150px",
align: "center",
type: "rank"
},
{
prop: "name",
label: "服务名称",
minWidth: "40%",
align: "left",
type: "hot"
},
{
prop: "address",
label: "服务地址",
minWidth: "60%",
align: "left"
},
{
prop: "times",
label: "外部调用次数(次)",
width: "250px",
align: "center"
},
{
prop: "time",
label: "平均调用时长(h)",
width: "250px",
align: "center"
},
{
label: "操作",
type: "Button",
width: "250px",
align: "center",
btnList: [
{
type: "detail",
label: "查看监控日志"
}
]
}
],
tipsOptions: {
title: "",
message: "",
btnSubmitText: "",
btnCancelText: "",
position: "",
position: ""
},
service_arr: [
["基本信息", "运行状态"],
["基本信息", "运行状态"],
["基本信息", "运行状态", "服务访问排名"],
["基本信息", "运行状态", "服务访问排名"]
],
service_header_arr: {
name: "",
first: [
{
"name": "业务类型",
"text": ""
name: "业务类型",
text: ""
},
{
"name": "业务领域",
"text": ""
name: "业务领域",
text: ""
}
],
second: [
{
"name": "上架区域",
"text": ""
name: "上架区域",
text: ""
},
{
"name": "部署区域",
"text": ""
name: "部署区域",
text: ""
},
{
"name":"部署时间",
"text":""
name: "部署时间",
text: ""
}
],
bsdetail: true,
url:'',
url: ""
},
now_service: 0,
header_arr: [
......@@ -408,13 +405,13 @@ export default {
prop: "jxmc",
label: "镜像名称",
minWidth: "33.33%",
align: "center",
align: "center"
},
{
prop: "bbh",
label: "版本号",
minWidth: "33.33%",
align: "center",
align: "center"
},
{
label: "操作",
......@@ -424,47 +421,64 @@ export default {
btnList: [
{
type: "actiondelete",
label: "删除",
},
],
label: "删除"
}
]
}
],
introductionArr: [
{
title: "应用简介:",
info: ""
},
{
title: "功能简介:",
info: ""
},
{
title: "应用场景:",
info: ""
},
{
title: "应用参数:",
info: "",
type: "solt",
solt_name: "markdown"
}
],
list_arr:'',
fwfw_arr:[
markdown: "",
fwfw_arr: [
{
title: "访问排名",
info: "",
prop:"title",
prop: "title",
type: "solt",
solt_name: "fw_table",
},
solt_name: "fw_table"
}
],
appcode: "",
showPass: false,
public: false,
public_form: false,
public_form: false
};
},
computed:{
...mapGetters([
'level',
]),
...mapState(['userInfo']),
computed: {
...mapGetters(["level"]),
...mapState(["userInfo"])
},
watch: {},
created() {
if(this.userInfo){
this.now_user = this.level
}else{
this.getCurrentUser()
if (this.userInfo) {
this.now_user = this.level;
} else {
this.getCurrentUser();
}
this.getServiceInfo();
this.getServiceBaseInfo();
this.getServiceyxztInfo();
this.getImageInfo();
if(this.$route.query.showstate){
this.now_service = 1
if (this.$route.query.showstate) {
this.now_service = 1;
}
},
mounted() {},
......@@ -476,32 +490,32 @@ export default {
console.log(data.data);
console.log("--- user info ---");
this.$store.commit("userInfofun", data.data);
this.now_user = this.level
console.log(this.level);
this.now_user = this.level;
console.log(this.level);
} else {
console.log(data.errMsg);
}
});
},
detail(val){
console.log(val);
},
update(val){
console.log(val);
},
rollback(val){
console.log(val);
},
grouppublic(val){
console.log(val);
},
online(val){
console.log(val);
},
detail(val) {
console.log(val);
},
update(val) {
console.log(val);
},
rollback(val) {
console.log(val);
},
grouppublic(val) {
console.log(val);
},
online(val) {
console.log(val);
},
getImageInfo() {
this.$http
.get("./static/deployappdetail.json")
.then((response) => {
.then(response => {
console.log(response);
let data = response.data.data;
this.image_arr = data.imagearr;
......@@ -511,7 +525,7 @@ export default {
getServiceyxztInfo() {
this.$http
.get("./static/servicedetail1.json")
.then((response) => {
.then(response => {
console.log(response);
let data = response.data.data;
this.yx_state = data.serviceyxzt;
......@@ -519,7 +533,7 @@ export default {
.catch(function(response) {});
},
saveInfo(name) {
this.$refs[name].validate((valid) => {
this.$refs[name].validate(valid => {
if (valid) {
alert("submit!");
} else {
......@@ -541,7 +555,7 @@ export default {
message: "",
btnSubmitText: "",
btnCancelText: "",
position: "",
position: ""
};
this.tipsOptions.message =
"申请密钥需要向组织管理员发送通知,由组织管理员在密钥管理中设置应用的密钥。";
......@@ -578,7 +592,7 @@ export default {
message: "",
btnSubmitText: "",
btnCancelText: "",
position: "",
position: ""
};
this.tipsOptions.message = "是否删除该数据";
this.tipsOptions.confirmSubmit = () => {
......@@ -595,30 +609,61 @@ export default {
},
getServiceInfo() {
this.$http
.get(`/apaas/hubApi/market/deployInfo/${this.$route.params.id}`)
.then((response) => {
.get(`/apaas/hubApi/market/deployInfo/${this.$route.params.deploy_id}`)
.then(response => {
let data = response.data.data;
this.$set(this.service_header_arr, "name", data.deploy_name+ ' ' +'V'+data.app_version);
this.$set(
this.service_header_arr,
"name",
data.deploy_name + " " + "V" + data.app_version
);
this.$set(this.service_header_arr, "url", data.logo);
this.$set(this.service_header_arr['first'][0], "text", data.type_name);
this.$set(this.service_header_arr['first'][1], "text", data.business_area_name);
this.$set(this.service_header_arr['second'][0], "text", data.upload_area);
this.$set(this.service_header_arr['second'][1], "text", data.namespace);
this.$set(this.service_header_arr['second'][2], "text", data.created);
this.$set(
this.service_header_arr["first"][0],
"text",
data.type_name
);
this.$set(
this.service_header_arr["first"][1],
"text",
data.business_area_name
);
this.$set(
this.service_header_arr["second"][0],
"text",
data.upload_area
);
this.$set(
this.service_header_arr["second"][1],
"text",
data.namespace
);
this.$set(this.service_header_arr["second"][2], "text", data.created);
})
.catch(function(response) {});
},
getServiceBaseInfo() {
this.$http
.get("/apaas/hubApi/market/readme/"+this.$route.params.id)
.then((response) => {
this.$api.workbench
.getAppIntroduction({
deploy_id: this.$route.params.deploy_id,
app_id: this.$route.params.app_id
})
.then(response => {
let data = response.data.data;
this.list_arr = data
this.introductionArr[0].info = data.yyjj;
this.introductionArr[1].info = data.gnjj;
this.introductionArr[2].info = data.cjsl;
});
this.$api.workbench
.getAppParams({
app_id: this.$route.params.app_id
})
.catch(function(response) {});
},
},
.then(response => {
let data = response.data.data;
this.markdown = data;
});
}
}
};
</script>
......
......@@ -45,7 +45,7 @@ export default {
components: {
appList,
apassList,
apassDialog,
apassDialog
},
data: () => ({
level: 0, // 用户等级
......@@ -62,15 +62,15 @@ export default {
submit: null,
cancelText: "",
sunbmitText: "",
submit: null,
submit: null
},
otherFilter1: [],
otherFilter2: [],
tempFliter: null,
tempFliter: null
}),
computed: {
...mapState({
yyglNav: "yyglNav",
yyglNav: "yyglNav"
}),
pathName() {
return this.yyglNav[this.level][this.type];
......@@ -91,7 +91,7 @@ export default {
}
return url;
},
}
},
methods: {
initHeader() {
......@@ -110,18 +110,18 @@ export default {
data: [
{
name: "平台应用",
value: 2,
value: 2
},
{
name: "开发者应用",
value: 1,
value: 1
},
{
name: "未上架",
value: 0,
},
],
},
value: 0
}
]
}
];
this.otherFilter2 = [
{
......@@ -130,13 +130,13 @@ export default {
data: [
{
name: "支持开发",
value: 1,
value: 1
},
{
name: "不支持开发",
value: 0,
},
],
value: 0
}
]
},
{
name: "应用来源",
......@@ -144,14 +144,14 @@ export default {
data: [
{
name: "创建的应用",
value: 0,
value: 0
},
{
name: "申请的应用",
value: 1,
},
],
},
value: 1
}
]
}
];
}
// 普通用户 --- 我部署的应用 card列表形式
......@@ -165,14 +165,14 @@ export default {
data: [
{
name: "应用商店",
value: 0,
value: 0
},
{
name: "开发者应用",
value: 1,
},
],
},
value: 1
}
]
}
];
this.otherFilter2 = [
{
......@@ -181,14 +181,14 @@ export default {
data: [
{
name: "支持开发",
value: 1,
value: 1
},
{
name: "不支持开发",
value: 0,
},
],
},
value: 0
}
]
}
];
}
// 普通用户 --- 申请的应用
......@@ -199,32 +199,32 @@ export default {
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
callback: this.detailItem
},
{
label: "应用版本",
prop: "version",
align: "center",
align: "center"
},
{
label: "应用类型",
prop: "type_name",
align: "center",
align: "center"
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
align: "center"
},
{
label: "在线区域",
prop: "online_state_name",
align: "center",
align: "center"
},
{
label: "申请类型",
prop: "apply_type_name",
align: "center",
align: "center"
},
{
label: "申请时间",
......@@ -233,13 +233,13 @@ export default {
let time = item.time || "";
return time.substring(0, 10);
},
align: "center",
align: "center"
},
{
label: "申请状态",
prop: "apply_status",
align: "center",
},
align: "center"
}
];
this.otherFilter1 = [
{
......@@ -248,14 +248,14 @@ export default {
data: [
{
name: "平台应用",
value: 2,
value: 2
},
{
name: "开发者应用",
value: 1,
},
],
},
value: 1
}
]
}
];
this.otherFilter2 = [
{
......@@ -264,13 +264,13 @@ export default {
data: [
{
name: "申请部署",
value: 0,
value: 0
},
{
name: "申请开发",
value: 1,
},
],
value: 1
}
]
},
{
name: "申请状态",
......@@ -278,18 +278,18 @@ export default {
data: [
{
name: "审批中",
value: 1,
value: 1
},
{
name: "审批通过",
value: 2,
value: 2
},
{
name: "审批未通过",
value: 0,
},
],
},
value: 0
}
]
}
];
}
......@@ -301,27 +301,27 @@ export default {
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
callback: this.detailItem
},
{
label: "应用版本",
prop: "version",
align: "center",
align: "center"
},
{
label: "应用类型",
prop: "type_name",
align: "center",
align: "center"
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
align: "center"
},
{
label: "在线状态",
prop: "online_state",
align: "center",
align: "center"
},
{
label: "创建时间",
......@@ -330,7 +330,7 @@ export default {
let time = item.create_date || "";
return time.substring(0, 10);
},
align: "center",
align: "center"
},
{
label: "操作",
......@@ -353,10 +353,10 @@ export default {
item.up_deploy_status == 0 ||
item.up_deploy_status == 2
);
},
},
],
},
}
}
]
}
];
this.otherFilter1 = [
{
......@@ -365,18 +365,18 @@ export default {
data: [
{
name: "平台应用",
value: 2,
value: 2
},
{
name: "开发者应用",
value: 1,
value: 1
},
{
name: "未上架",
value: 0,
},
],
},
value: 0
}
]
}
];
this.otherFilter2 = [
{
......@@ -385,13 +385,13 @@ export default {
data: [
{
name: "支持开发",
value: 1,
value: 1
},
{
name: "不支持开发",
value: 0,
},
],
value: 0
}
]
},
{
name: "应用来源",
......@@ -399,14 +399,14 @@ export default {
data: [
{
name: "创建的应用",
value: 0,
value: 0
},
{
name: "申请的应用",
value: 1,
},
],
},
value: 1
}
]
}
];
}
// 组织管理员 --- 部署的应用
......@@ -417,38 +417,38 @@ export default {
label: "应用名称",
prop: "deploy_name",
type: "button",
callback: this.detailItem,
callback: this.detailItemDeploy
},
{
label: "应用版本",
prop: "app_version",
align: "center",
align: "center"
},
{
label: "应用类型",
prop: "type_name",
align: "center",
align: "center"
},
{
label: "业务领域",
prop: "business_area_name",
align: "center",
align: "center"
},
{
label: "上架区域",
prop: "upload_area",
align: "center",
align: "center"
},
{
label: "部署时间",
prop: "created",
align: "center",
align: "center"
},
{
label: "部署区域",
prop: "namespace",
align: "center",
},
align: "center"
}
];
this.otherFilter1 = [
{
......@@ -457,18 +457,18 @@ export default {
data: [
{
name: "平台应用",
value: 2,
value: 2
},
{
name: "开发者应用",
value: 1,
value: 1
},
{
name: "未上架",
value: 0,
},
],
},
value: 0
}
]
}
];
this.otherFilter2 = [
{
......@@ -477,14 +477,14 @@ export default {
data: [
{
name: "支持开发",
value: 1,
value: 1
},
{
name: "不支持开发",
value: 0,
},
],
},
value: 0
}
]
}
];
}
// 组织管理员 --- 应用审批管理
......@@ -493,42 +493,42 @@ export default {
this.listHeader = [
{
label: "应用名称",
prop: "app_name",
prop: "app_name"
},
{
label: "应用版本",
prop: "version",
align: "center",
align: "center"
},
{
label: "应用类型",
prop: "type_name",
align: "center",
align: "center"
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
align: "center"
},
{
label: "在线区域",
prop: "online_state_name",
align: "center",
align: "center"
},
{
label: "申请类型",
prop: "apply_type_name",
align: "center",
align: "center"
},
{
label: "审批时间",
prop: "time",
align: "center",
align: "center"
},
{
label: "申请状态",
prop: "apply_status",
align: "center",
align: "center"
},
{
label: "操作",
......@@ -540,10 +540,10 @@ export default {
getLabel(item) {
return item.apply_status === "已审批" ? "详情" : "审批";
},
callback: this.detailItem,
},
],
},
callback: this.detailItem
}
]
}
];
this.otherFilter1 = [
{
......@@ -552,14 +552,14 @@ export default {
data: [
{
name: "应用商店",
value: 2,
value: 2
},
{
name: "开发者应用",
value: 1,
},
],
},
value: 1
}
]
}
];
this.otherFilter2 = [
{
......@@ -568,13 +568,13 @@ export default {
data: [
{
name: "申请部署",
value: 0,
value: 0
},
{
name: "申请开发",
value: 1,
},
],
value: 1
}
]
},
{
name: "申请状态",
......@@ -582,18 +582,18 @@ export default {
data: [
{
name: "审批中",
value: 1,
value: 1
},
{
name: "审批通过",
value: 2,
value: 2
},
{
name: "审批未通过",
value: 0,
},
],
},
value: 0
}
]
}
];
}
......@@ -605,32 +605,32 @@ export default {
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
callback: this.detailItem
},
{
label: "应用版本",
prop: "version",
align: "center",
align: "center"
},
{
label: "应用类型",
prop: "type_name",
align: "center",
align: "center"
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
align: "center"
},
{
label: "在线状态",
prop: "online_state",
align: "center",
align: "center"
},
{
label: "所属组织",
prop: "org_name",
align: "center",
align: "center"
},
{
label: "操作",
......@@ -640,7 +640,7 @@ export default {
actionList: [
{
label: "编辑",
callback: _self.editItem,
callback: _self.editItem
},
{
getLabel(item) {
......@@ -657,7 +657,7 @@ export default {
} else {
return item.up_platform_status != 2;
}
},
}
},
{
label: "删除",
......@@ -665,10 +665,10 @@ export default {
callback: _self.deleteItem,
disabledRule(item) {
return item.online_state != 2;
},
},
],
},
}
}
]
}
];
this.otherFilter1 = [
{
......@@ -677,18 +677,18 @@ export default {
data: [
{
name: "平台应用",
value: 2,
value: 2
},
{
name: "开发者应用",
value: 1,
value: 1
},
{
name: "未上架",
value: 0,
},
],
},
value: 0
}
]
}
];
this.otherFilter2 = [
{
......@@ -697,14 +697,14 @@ export default {
data: [
{
name: "支持开发",
value: 1,
value: 1
},
{
name: "不支持开发",
value: 0,
},
],
},
value: 0
}
]
}
];
}
// 超级管理员 --- 应用部署管理
......@@ -715,43 +715,43 @@ export default {
label: "应用名称",
prop: "deploy_name",
type: "button",
callback: this.detailItem,
callback: this.detailItemDeploy
},
{
label: "应用版本",
prop: "app_version",
align: "center",
align: "center"
},
{
label: "应用类型",
prop: "type_name",
align: "center",
align: "center"
},
{
label: "业务领域",
prop: "business_area_name",
align: "center",
align: "center"
},
{
label: "上架区域",
prop: "upload_area",
align: "center",
align: "center"
},
{
label: "所属组织",
prop: "org_name",
align: "center",
align: "center"
},
{
label: "部署时间",
prop: "created",
align: "center",
align: "center"
},
{
label: "部署区域",
prop: "namespace",
align: "center",
},
align: "center"
}
];
this.otherFilter1 = [
{
......@@ -760,18 +760,18 @@ export default {
data: [
{
name: "平台应用",
value: 2,
value: 2
},
{
name: "开发者应用",
value: 1,
value: 1
},
{
name: "未上架",
value: 0,
},
],
},
value: 0
}
]
}
];
this.otherFilter2 = [
{
......@@ -780,14 +780,14 @@ export default {
data: [
{
name: "支持开发",
value: 1,
value: 1
},
{
name: "不支持开发",
value: 0,
},
],
},
value: 0
}
]
}
];
}
// 超级管理员 --- 应用审批管理
......@@ -796,42 +796,42 @@ export default {
this.listHeader = [
{
label: "应用名称",
prop: "app_name",
prop: "app_name"
},
{
label: "应用版本",
prop: "version",
align: "center",
align: "center"
},
{
label: "应用类型",
prop: "type_name",
align: "center",
align: "center"
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
align: "center"
},
{
label: "在线区域",
prop: "online_state_name",
align: "center",
align: "center"
},
{
label: "申请类型",
prop: "apply_type_name",
align: "center",
align: "center"
},
{
label: "审批时间",
prop: "time",
align: "center",
align: "center"
},
{
label: "申请状态",
prop: "apply_status",
align: "center",
align: "center"
},
{
label: "操作",
......@@ -843,10 +843,10 @@ export default {
getLabel(item) {
return item.apply_status === "已审批" ? "详情" : "审批";
},
callback: this.detailItem,
},
],
},
callback: this.detailItem
}
]
}
];
this.otherFilter1 = [
{
......@@ -855,14 +855,14 @@ export default {
data: [
{
name: "应用商店",
value: 2,
value: 2
},
{
name: "开发者应用",
value: 1,
},
],
},
value: 1
}
]
}
];
this.otherFilter2 = [
{
......@@ -871,13 +871,13 @@ export default {
data: [
{
name: "申请部署",
value: 0,
value: 0
},
{
name: "申请开发",
value: 1,
},
],
value: 1
}
]
},
{
name: "申请状态",
......@@ -885,18 +885,18 @@ export default {
data: [
{
name: "审批中",
value: 1,
value: 1
},
{
name: "审批通过",
value: 2,
value: 2
},
{
name: "审批未通过",
value: 0,
},
],
},
value: 0
}
]
}
];
}
......@@ -914,39 +914,39 @@ export default {
callback(response) {
let datas = [];
datas = response.body.data.map((v) => ({
datas = response.body.data.map(v => ({
name: v.name,
value: v.id,
value: v.id
}));
return {
name: "应用类型",
prop: "appTypes",
data: datas,
data: datas
};
},
}
},
{
path: "/apaas/hubApi/market/businessAreas",
callback(response) {
let datas = [];
datas = response.body.data.map((v) => ({
datas = response.body.data.map(v => ({
name: v.name,
value: v.id,
value: v.id
}));
return {
name: "业务领域",
prop: "businessArea",
data: datas,
data: datas
};
},
},
}
}
];
Promise.all(urls.map((url) => this.$http.get(url.path)))
.then((responses) => {
Promise.all(urls.map(url => this.$http.get(url.path)))
.then(responses => {
let filterList = responses.map((response, index) => {
return urls[index].callback(response);
});
......@@ -954,10 +954,10 @@ export default {
this.filterList = [
...this.otherFilter1,
...filterList,
...this.otherFilter2,
...this.otherFilter2
];
})
.catch((error) => {
.catch(error => {
console.log(error);
});
},
......@@ -965,55 +965,55 @@ export default {
let listUrl = [
"/apaas/hubApi/market/list",
"/apaas/hubApi/market/deployList",
"/apaas/hubApi/market/applyList",
"/apaas/hubApi/market/applyList"
];
let params = {};
if (filter.online_state) {
params.online_state = filter.online_state
.map((item) => {
.map(item => {
return item.value;
})
.join(",");
} // 在线状态 / 部署来源 / 在线区域
if (filter.appTypes) {
params.appTypes = filter.appTypes
.map((item) => {
.map(item => {
return item.value;
})
.join(",");
} // 应用类型
if (filter.businessArea) {
params.businessArea = filter.businessArea
.map((item) => {
.map(item => {
return item.value;
})
.join(",");
} // 业务领域
if (filter.developable) {
params.developable = filter.developable
.map((item) => {
.map(item => {
return item.value;
})
.join(",");
} // 是否支持开发
if (filter.appSource) {
params.appSource = filter.appSource
.map((item) => {
.map(item => {
return item.value;
})
.join(",");
} // 应用来源
if (filter.apply_type) {
params.apply_type = filter.apply_type
.map((item) => {
.map(item => {
return item.value;
})
.join(",");
} // 申请类型
if (filter.apply_state) {
params.status = filter.apply_state
.map((item) => {
.map(item => {
return item.value;
})
.join(",");
......@@ -1027,14 +1027,14 @@ export default {
...params,
search: filter.keyword,
page: filter.page,
limit: filter.size,
},
limit: filter.size
}
})
.then(({ data }) => {
this.listTotal = data.total;
this.listData = data.data || [];
})
.catch((error) => {
.catch(error => {
console.log(error);
});
},
......@@ -1055,20 +1055,20 @@ export default {
if (data.success) {
this.$message({
message: `删除${item.app_name}成功.`,
type: "success",
type: "success"
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `删除${item.app_name}失败.`,
type: "warning",
type: "warning"
});
}
})
.catch((error) => {
.catch(error => {
this.$message({
message: `删除${item.app_name}失败.`,
type: "warning",
type: "warning"
});
});
};
......@@ -1082,7 +1082,7 @@ export default {
if (item.up_deploy_status === 3) {
this.$message({
message: `${item.app_name}正在申请下架中.`,
type: "warning",
type: "warning"
});
} else {
this.$http
......@@ -1091,20 +1091,20 @@ export default {
if (data.success) {
this.$message({
message: `申请下架${item.app_name}成功.`,
type: "success",
type: "success"
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `申请下架${item.app_name}失败.`,
type: "warning",
type: "warning"
});
}
})
.catch((error) => {
.catch(error => {
this.$message({
message: `申请下架${item.app_name}失败.`,
type: "warning",
type: "warning"
});
});
}
......@@ -1120,27 +1120,27 @@ export default {
this.$http
.delete(`/apaas/hubApi/market/deploy/${item.deploy_name}`, {
params: {
deployId: item.deploy_id,
},
deployId: item.deploy_id
}
})
.then(({ data }) => {
if (data.success) {
this.$message({
message: `删除${item.deploy_name}成功.`,
type: "success",
type: "success"
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `删除${item.deploy_name}失败.`,
type: "warning",
type: "warning"
});
}
})
.catch((error) => {
.catch(error => {
this.$message({
message: `删除${item.deploy_name}失败.`,
type: "warning",
type: "warning"
});
});
};
......@@ -1149,7 +1149,9 @@ export default {
this.$refs.dialog.show();
},
deploymentAction(item) {
this.$router.push(`/yygl/${this.level}/${this.type}/deployment/${item.app_id}`);
this.$router.push(
`/yygl/${this.level}/${this.type}/deployment/${item.app_id}`
);
},
changePageSize(value) {
this.pageSize = value;
......@@ -1166,6 +1168,9 @@ export default {
]}`
);
},
detailItemDeploy(item) {
this.$router.push(`${this.detailsUrl}${item.app_id}/${item.deploy_id}`);
},
soldUpItem(item) {
this.dialogInfo.title = "提示";
this.dialogInfo.msg = "确认上架此服务吗?";
......@@ -1176,20 +1181,20 @@ export default {
if (data.success) {
this.$message({
message: `上架${item.app_name}成功.`,
type: "success",
type: "success"
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `上架${item.app_name}失败.`,
type: "warning",
type: "warning"
});
}
})
.catch((error) => {
.catch(error => {
this.$message({
message: `上架${item.app_name}失败.`,
type: "warning",
type: "warning"
});
});
};
......@@ -1205,20 +1210,20 @@ export default {
if (data.success) {
this.$message({
message: `下架${item.app_name}成功.`,
type: "success",
type: "success"
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `下架${item.app_name}失败.`,
type: "warning",
type: "warning"
});
}
})
.catch((error) => {
.catch(error => {
this.$message({
message: `下架${item.app_name}失败.`,
type: "warning",
type: "warning"
});
});
};
......@@ -1237,20 +1242,20 @@ export default {
if (data.success) {
this.$message({
message: `上线${item.app_name}成功.`,
type: "success",
type: "success"
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `上线${item.app_name}失败.`,
type: "warning",
type: "warning"
});
}
})
.catch((error) => {
.catch(error => {
this.$message({
message: `上线${item.app_name}失败.`,
type: "warning",
type: "warning"
});
});
};
......@@ -1266,20 +1271,20 @@ export default {
if (data.success) {
this.$message({
message: `下线${item.app_name}成功.`,
type: "success",
type: "success"
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `下线${item.app_name}失败.`,
type: "warning",
type: "warning"
});
}
})
.catch((error) => {
.catch(error => {
this.$message({
message: `下线${item.app_name}失败.`,
type: "warning",
type: "warning"
});
});
};
......@@ -1297,24 +1302,24 @@ export default {
if (data.success) {
this.$message({
message: `删除${item.app_name}成功.`,
type: "success",
type: "success"
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `删除${item.app_name}失败.`,
type: "warning",
type: "warning"
});
}
})
.catch((error) => {
.catch(error => {
this.$message({
message: `删除${item.app_name}失败.`,
type: "warning",
type: "warning"
});
});
};
},
}
},
created() {
this.level = parseInt(this.$route.params.level);
......@@ -1337,7 +1342,7 @@ export default {
console.log(data.errMsg);
}
});
},
}
};
</script>
......
......@@ -18,6 +18,15 @@ const workbench = {
getServiceTypeList() {
return axios.get(`/apaas/service/v3/service/manager/servtype`)
},
// get application introduction
getAppIntroduction(params) {
return axios.get(`/apaas/hubApi/market/app/detail/${params.app_id}?deploy_id=${params.deploy_id}`)
},
// get application params
getAppParams(params) {
return axios.get(`/apaas/hubApi/market/values/${params.app_id}`)
},
}
export default workbench;
......@@ -92,7 +92,7 @@ export default new Router({
component: () => import("@/pages/workbench/yygl/app_edit"),
},
{
path: "/yygl/:level/:type/deploydetail/:id", // 我部署的应用详情
path: "/yygl/:level/:type/deploydetail/:app_id/:deploy_id", // 我部署的应用详情
name: "deploy_app_detail",
component: () =>
import("@/pages/workbench/yygl/deploy_app_detail"),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment