Commit f938e637 authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents 7fb42113 c0ba780a
# 易政秀 # 易政秀
VUE_APP_API_ES_URL=http://8.136.255.30 VUE_APP_API_ES_URL=http://8.136.255.30
# 系统名称 # 系统名称
VUE_APP_systemName = 数字政务一体化智慧管理平台 VUE_APP_systemName = 智慧大厅集成化综合管理平台
\ No newline at end of file \ No newline at end of file
<template> <template>
<div class="app h-full w-full"> <div class="app w-full h-full">
<a-config-provider :locale="zh_CN"> <a-config-provider :locale="zh_CN">
<router-view /> <router-view />
</a-config-provider> </a-config-provider>
...@@ -57,11 +57,16 @@ export default { ...@@ -57,11 +57,16 @@ export default {
}; };
</script> </script>
<style lang="less" scoped> <style lang="less">
.app {
min-width: 1600px;
}
.export { .export {
background-color: rgba(0, 0, 0, 0.3); background-color: rgba(0, 0, 0, 0.3);
} }
.ant-calendar-prev-month-btn::before,
.ant-calendar-prev-year-btn::before,
.ant-calendar-prev-year-btn::after,
.ant-calendar-next-month-btn::before,
.ant-calendar-next-year-btn::before,
.ant-calendar-next-year-btn::after {
border-color: rgba(0, 0, 0, 1) !important;
}
</style> </style>
\ No newline at end of file
@searBG:#F0F0F0;
/* 基础 */ /* 基础 */
.primary { .primary {
color: #1890ff; color: #1890ff;
...@@ -34,6 +36,49 @@ ...@@ -34,6 +36,49 @@
img { img {
display: inline-block; display: inline-block;
} }
/* 弹性布局 */
.flex {
display: flex;
}
.flex1 {
flex: 1;
}
.flexc {
flex-direction: column;
}
.flexwrap {
flex-wrap: wrap;
}
.jcc {
justify-content: center;
}
.jca {
justify-content: space-around;
}
.jcb {
justify-content: space-between;
}
.jce {
justify-content: space-evenly;
}
.jc-start {
justify-content: flex-start;
}
.jc-end {
justify-content: flex-end;
}
.aic {
align-items: center;
}
.aca {
align-content: space-around;
}
.acb {
align-content: space-between;
}
.ace {
align-content: space-evenly;
}
/* margin */ /* margin */
.m10 { .m10 {
...@@ -461,7 +506,7 @@ img { ...@@ -461,7 +506,7 @@ img {
padding: 0 !important; padding: 0 !important;
& + .ant-btn-link { & + .ant-btn-link {
margin-left: 1rem !important; margin-left: 6px !important;
} }
} }
...@@ -581,10 +626,23 @@ img { ...@@ -581,10 +626,23 @@ img {
padding: 10px; padding: 10px;
} }
.ant-table { .ant-table {
max-width:1500px;
border:none; border:none;
tr, th,td{ tr, th,td{
border:none !important; border:none !important;
} }
// .ant-table-body-inner{
// &::-webkit-scrollbar{
// display: none;
// }
// }
// :hover{
// .ant-table-body-inner{
// &::-webkit-scrollbar{
// display: block;
// }
// }
// }
} }
.ant-table-thead th { .ant-table-thead th {
background: linear-gradient(0deg, #f9fbff 0%, #cbddff 78%); background: linear-gradient(0deg, #f9fbff 0%, #cbddff 78%);
...@@ -635,15 +693,15 @@ img { ...@@ -635,15 +693,15 @@ img {
} }
.ant-select { .ant-select {
width: 100%; width: 100%;
height: 42px; min-height:42px;
.ant-select-selection__rendered { .ant-select-selection__rendered {
height: 100%; min-height:42px;
display: flex; display: flex;
align-items: center; align-items: center;
} }
.ant-select-selection { .ant-select-selection {
height: 42px; min-height:42px;
background: #f0f0f0; background: @searBG;
border-radius: 4px; border-radius: 4px;
border: none; border: none;
font-size: 14px; font-size: 14px;
...@@ -658,22 +716,31 @@ img { ...@@ -658,22 +716,31 @@ img {
font-weight: 500; font-weight: 500;
color: #232323; color: #232323;
} }
.ant-select-selection__clear{
background: @searBG;
}
.ant-calendar-picker { .ant-calendar-picker {
min-width: 100% !important; min-width: 100% !important;
max-width: 100%; max-width: 100%;
} }
.ant-calendar-picker-input { .ant-calendar-picker-input {
.ant-calendar-range-picker-input:nth-child(1) { .ant-calendar-range-picker-input:nth-child(1) {
width:33%;
text-align: left; text-align: left;
} }
.ant-calendar-range-picker-input:nth-child(3) { .ant-calendar-range-picker-input:nth-child(3) {
width:33%;
text-align: right; text-align: right;
} }
} }
.ant-calendar-picker-clear{
background: @searBG;
}
.ant-input { .ant-input {
width: 100%; width: 100%;
height: 42px; height: 42px;
background: #f0f0f0; background: @searBG;
border: none; border: none;
border-radius: 4px; border-radius: 4px;
font-size: 14px; font-size: 14px;
...@@ -692,3 +759,19 @@ img { ...@@ -692,3 +759,19 @@ img {
color: #ffffff; color: #ffffff;
} }
} }
// 表格鼠标移入显示滚动条
.ant-table {
.ant-table-body,.ant-table-body-inner{
&::-webkit-scrollbar{
display: none;
}
}
:hover{
.ant-table-body,.ant-table-body-inner{
&::-webkit-scrollbar{
display:block;
}
}
}
}
\ No newline at end of file
...@@ -55,15 +55,15 @@ ...@@ -55,15 +55,15 @@
<ul class="icon_lists dib-box"> <ul class="icon_lists dib-box">
<li class="dib"> <li class="dib">
<span class="icon iconfont">&#xe608;</span> <span class="icon iconfont">&#xe901;</span>
<div class="name"></div> <div class="name">闭眼睛</div>
<div class="code-name">&amp;#xe608;</div> <div class="code-name">&amp;#xe901;</div>
</li> </li>
<li class="dib"> <li class="dib">
<span class="icon iconfont">&#xe607;</span> <span class="icon iconfont">&#xe608;</span>
<div class="name">不可见</div> <div class="name"></div>
<div class="code-name">&amp;#xe607;</div> <div class="code-name">&amp;#xe608;</div>
</li> </li>
<li class="dib"> <li class="dib">
...@@ -102,9 +102,9 @@ ...@@ -102,9 +102,9 @@
<pre><code class="language-css" <pre><code class="language-css"
>@font-face { >@font-face {
font-family: 'iconfont'; font-family: 'iconfont';
src: url('iconfont.woff2?t=1692777691620') format('woff2'), src: url('iconfont.woff2?t=1693536528455') format('woff2'),
url('iconfont.woff?t=1692777691620') format('woff'), url('iconfont.woff?t=1693536528455') format('woff'),
url('iconfont.ttf?t=1692777691620') format('truetype'); url('iconfont.ttf?t=1693536528455') format('truetype');
} }
</code></pre> </code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3> <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
...@@ -131,20 +131,20 @@ ...@@ -131,20 +131,20 @@
<ul class="icon_lists dib-box"> <ul class="icon_lists dib-box">
<li class="dib"> <li class="dib">
<span class="icon iconfont icon-dot"></span> <span class="icon iconfont icon-hidden"></span>
<div class="name"> <div class="name">
闭眼睛
</div> </div>
<div class="code-name">.icon-dot <div class="code-name">.icon-hidden
</div> </div>
</li> </li>
<li class="dib"> <li class="dib">
<span class="icon iconfont icon-hidden"></span> <span class="icon iconfont icon-dot"></span>
<div class="name"> <div class="name">
不可见
</div> </div>
<div class="code-name">.icon-hidden <div class="code-name">.icon-dot
</div> </div>
</li> </li>
...@@ -204,18 +204,18 @@ ...@@ -204,18 +204,18 @@
<li class="dib"> <li class="dib">
<svg class="icon svg-icon" aria-hidden="true"> <svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-dot"></use> <use xlink:href="#icon-hidden"></use>
</svg> </svg>
<div class="name"></div> <div class="name">闭眼睛</div>
<div class="code-name">#icon-dot</div> <div class="code-name">#icon-hidden</div>
</li> </li>
<li class="dib"> <li class="dib">
<svg class="icon svg-icon" aria-hidden="true"> <svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-hidden"></use> <use xlink:href="#icon-dot"></use>
</svg> </svg>
<div class="name">不可见</div> <div class="name"></div>
<div class="code-name">#icon-hidden</div> <div class="code-name">#icon-dot</div>
</li> </li>
<li class="dib"> <li class="dib">
......
@font-face { @font-face {
font-family: "iconfont"; /* Project id 4222008 */ font-family: "iconfont"; /* Project id 4222008 */
src: url('iconfont.woff2?t=1692777691620') format('woff2'), src: url('iconfont.woff2?t=1693536528455') format('woff2'),
url('iconfont.woff?t=1692777691620') format('woff'), url('iconfont.woff?t=1693536528455') format('woff'),
url('iconfont.ttf?t=1692777691620') format('truetype'); url('iconfont.ttf?t=1693536528455') format('truetype');
} }
.iconfont { .iconfont {
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
.icon-dot:before { .icon-hidden:before {
content: "\e608"; content: "\e901";
} }
.icon-hidden:before { .icon-dot:before {
content: "\e607"; content: "\e608";
} }
.icon-pwd:before { .icon-pwd:before {
......
window._iconfont_svg_string_4222008='<svg><symbol id="icon-dot" viewBox="0 0 1024 1024"><path d="M512 320a192.064 192.064 0 0 1 0 384 192 192 0 0 1 0-384z" fill="" ></path></symbol><symbol id="icon-hidden" viewBox="0 0 1024 1024"><path d="M853.504 451.072c46.592-34.816 85.504-76.288 110.592-123.904 7.168-13.824 1.536-31.232-11.776-37.888-6.656-3.584-14.336-4.608-21.504-2.048-7.168 2.048-13.312 7.168-16.384 14.336-62.464 118.272-223.744 198.144-401.92 198.144S173.568 419.84 110.592 301.568c-3.584-6.656-9.216-11.776-16.384-13.824-7.168-2.048-14.848-1.536-21.504 2.048-14.336 6.656-19.456 24.576-11.776 37.888 25.088 47.616 63.488 90.112 110.592 123.904l-107.52 134.144c-6.656 8.704-8.192 20.48-3.584 30.208 4.608 9.728 14.848 16.384 25.6 16.384 8.704 0 16.384-3.584 22.016-10.752l111.616-138.752c49.664 27.648 106.496 48.128 167.936 60.416l-71.168 155.136c-6.656 14.336 0 31.232 14.336 37.376 4.096 1.536 8.192 3.072 11.776 3.072 10.752 0 20.992-6.144 26.112-16.384l76.8-170.496c21.504 2.048 44.032 4.096 66.56 4.096 18.432 0 35.84-1.536 53.248-3.072l77.312 168.96c3.072 6.656 8.704 12.288 15.872 14.848 7.168 2.56 14.848 2.048 21.504-1.024 14.336-6.144 20.48-23.552 14.336-37.376l-69.632-153.6c63.488-10.24 124.416-31.744 180.224-62.976l111.104 138.752c5.632 6.656 13.824 10.752 22.016 10.752 6.144 0 12.288-2.048 17.408-6.144 12.288-9.728 14.336-27.648 4.608-39.936l-106.496-134.144z m0 0" ></path></symbol><symbol id="icon-pwd" viewBox="0 0 1024 1024"><path d="M725.4 928.3H299.7c-88 0-159.6-71.6-159.6-159.6V555.8c0-88 71.6-159.6 159.6-159.6h425.7c88 0 159.6 71.6 159.6 159.6v212.8c0 88.1-71.6 159.7-159.6 159.7zM299.7 460c-52.8 0-95.8 43-95.8 95.8v212.8c0 52.8 43 95.8 95.8 95.8h425.7c52.8 0 95.8-43 95.8-95.8V555.8c0-52.8-43-95.8-95.8-95.8H299.7z" fill="#A1A0A5" ></path><path d="M778.6 406.8h-63.9c0-110.9-90.2-244.8-202.2-244.8S310.3 296 310.3 406.8h-63.9c0-142.7 116.2-308.6 266.1-308.6s266.1 165.9 266.1 308.6z" fill="#A1A0A5" ></path></symbol><symbol id="icon-show" viewBox="0 0 1024 1024"><path d="M678.976 586.24c0 92.224-74.752 166.976-166.976 166.976S345.024 678.464 345.024 586.24 419.776 419.2 512 419.2s166.976 74.816 166.976 167.04z" fill="#666666" ></path><path d="M512 266.112C229.248 266.112 0 586.24 0 586.24s229.248 320.128 512 320.128 512-320.128 512-320.128-229.248-320.128-512-320.128z m0 532.992c-117.568 0-212.864-95.296-212.864-212.864 0-117.568 95.296-212.864 212.864-212.864s212.864 95.296 212.864 212.864c0 117.568-95.296 212.864-212.864 212.864z" fill="#666666" ></path><path d="M678.976 586.24c0 92.224-74.752 166.976-166.976 166.976S345.024 678.464 345.024 586.24 419.776 419.2 512 419.2s166.976 74.816 166.976 167.04z" fill="#666666" ></path><path d="M678.976 586.24c0 92.224-74.752 166.976-166.976 166.976S345.024 678.464 345.024 586.24 419.776 419.2 512 419.2s166.976 74.816 166.976 167.04z" fill="#666666" ></path></symbol><symbol id="icon-user" viewBox="0 0 1024 1024"><path d="M602.08 960.576H423.488c-169.408 0-303.2 0-303.2-87.872v-17.568c0-164.672 136.032-298.624 303.2-298.624H602.08c167.168 0 303.2 133.952 303.2 298.624v17.568c-0.032 87.872-140.544 87.872-303.2 87.872zM423.456 609.184c-138.112 0-250.496 110.304-250.496 245.92v17.568c0 35.168 144.768 35.168 250.496 35.168h178.592c87.52 0 250.496 0 250.496-35.168v-17.568c0-135.616-112.384-245.92-250.496-245.92H423.456z m80.384-70.304c-132.736 0-240.672-106.4-240.672-237.184S371.104 64.544 503.84 64.544s240.672 106.368 240.672 237.152S636.544 538.88 503.84 538.88zM315.872 301.696c0 101.696 84.32 184.48 187.968 184.48s187.968-82.752 187.968-184.48-84.32-184.448-187.968-184.448S315.872 200 315.872 301.696z" ></path></symbol></svg>',function(n){var t=(t=document.getElementsByTagName("script"))[t.length-1],e=t.getAttribute("data-injectcss"),t=t.getAttribute("data-disable-injectsvg");if(!t){var c,i,o,l,d,s=function(t,e){e.parentNode.insertBefore(t,e)};if(e&&!n.__iconfont__svg__cssinject__){n.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(t){console&&console.log(t)}}c=function(){var t,e=document.createElement("div");e.innerHTML=n._iconfont_svg_string_4222008,(e=e.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",e=e,(t=document.body).firstChild?s(e,t.firstChild):t.appendChild(e))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),c()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(o=c,l=n.document,d=!1,h(),l.onreadystatechange=function(){"complete"==l.readyState&&(l.onreadystatechange=null,a())})}function a(){d||(d=!0,o())}function h(){try{l.documentElement.doScroll("left")}catch(t){return void setTimeout(h,50)}a()}}(window); window._iconfont_svg_string_4222008='<svg><symbol id="icon-hidden" viewBox="0 0 1024 1024"><path d="M469.333333 681.386667c-36.053333-2.432-71.253333-8.533333-104.96-17.92l-69.802666 149.674666a42.368 42.368 0 0 1-56.533334 20.266667 42.666667 42.666667 0 0 1-20.821333-56.32l66.986667-143.658667a451.712 451.712 0 0 1-148.906667-112.682666 388.693333 388.693333 0 0 1-70.570667-119.338667 42.666667 42.666667 0 1 1 80.128-29.354667 303.445333 303.445333 0 0 0 55.210667 93.098667C270.634667 547.413333 383.018667 597.333333 505.728 597.333333c122.752 0 235.136-49.962667 305.706667-132.181333a303.445333 303.445333 0 0 0 55.210666-93.098667 42.666667 42.666667 0 0 1 80.128 29.354667 388.693333 388.693333 0 0 1-70.570666 119.338667 423.68 423.68 0 0 1-18.773334 20.48l104.362667 104.362666a42.666667 42.666667 0 0 1-0.298667 60.032 42.368 42.368 0 0 1-60.032 0.298667l-109.653333-109.653333c-20.48 14.08-42.24 26.581333-65.024 37.418666l66.901333 143.36a42.666667 42.666667 0 0 1-20.821333 56.362667 42.368 42.368 0 0 1-56.533333-20.266667l-69.717334-149.546666a520.533333 520.533333 0 0 1-91.946666 16.810666v130.645334A42.666667 42.666667 0 0 1 512 853.333333c-23.722667 0-42.666667-18.944-42.666667-42.24v-129.706666z" fill="#3D3D3D" ></path><path d="M176.128 524.373333a42.368 42.368 0 0 1 60.032 0.256 42.666667 42.666667 0 0 1 0.298667 60.074667l-121.216 121.216a42.368 42.368 0 0 1-60.074667-0.298667 42.666667 42.666667 0 0 1-0.298667-60.032l121.258667-121.258666z" fill="#3D3D3D" ></path></symbol><symbol id="icon-dot" viewBox="0 0 1024 1024"><path d="M512 320a192.064 192.064 0 0 1 0 384 192 192 0 0 1 0-384z" fill="" ></path></symbol><symbol id="icon-pwd" viewBox="0 0 1024 1024"><path d="M725.4 928.3H299.7c-88 0-159.6-71.6-159.6-159.6V555.8c0-88 71.6-159.6 159.6-159.6h425.7c88 0 159.6 71.6 159.6 159.6v212.8c0 88.1-71.6 159.7-159.6 159.7zM299.7 460c-52.8 0-95.8 43-95.8 95.8v212.8c0 52.8 43 95.8 95.8 95.8h425.7c52.8 0 95.8-43 95.8-95.8V555.8c0-52.8-43-95.8-95.8-95.8H299.7z" fill="#A1A0A5" ></path><path d="M778.6 406.8h-63.9c0-110.9-90.2-244.8-202.2-244.8S310.3 296 310.3 406.8h-63.9c0-142.7 116.2-308.6 266.1-308.6s266.1 165.9 266.1 308.6z" fill="#A1A0A5" ></path></symbol><symbol id="icon-show" viewBox="0 0 1024 1024"><path d="M678.976 586.24c0 92.224-74.752 166.976-166.976 166.976S345.024 678.464 345.024 586.24 419.776 419.2 512 419.2s166.976 74.816 166.976 167.04z" fill="#666666" ></path><path d="M512 266.112C229.248 266.112 0 586.24 0 586.24s229.248 320.128 512 320.128 512-320.128 512-320.128-229.248-320.128-512-320.128z m0 532.992c-117.568 0-212.864-95.296-212.864-212.864 0-117.568 95.296-212.864 212.864-212.864s212.864 95.296 212.864 212.864c0 117.568-95.296 212.864-212.864 212.864z" fill="#666666" ></path><path d="M678.976 586.24c0 92.224-74.752 166.976-166.976 166.976S345.024 678.464 345.024 586.24 419.776 419.2 512 419.2s166.976 74.816 166.976 167.04z" fill="#666666" ></path><path d="M678.976 586.24c0 92.224-74.752 166.976-166.976 166.976S345.024 678.464 345.024 586.24 419.776 419.2 512 419.2s166.976 74.816 166.976 167.04z" fill="#666666" ></path></symbol><symbol id="icon-user" viewBox="0 0 1024 1024"><path d="M602.08 960.576H423.488c-169.408 0-303.2 0-303.2-87.872v-17.568c0-164.672 136.032-298.624 303.2-298.624H602.08c167.168 0 303.2 133.952 303.2 298.624v17.568c-0.032 87.872-140.544 87.872-303.2 87.872zM423.456 609.184c-138.112 0-250.496 110.304-250.496 245.92v17.568c0 35.168 144.768 35.168 250.496 35.168h178.592c87.52 0 250.496 0 250.496-35.168v-17.568c0-135.616-112.384-245.92-250.496-245.92H423.456z m80.384-70.304c-132.736 0-240.672-106.4-240.672-237.184S371.104 64.544 503.84 64.544s240.672 106.368 240.672 237.152S636.544 538.88 503.84 538.88zM315.872 301.696c0 101.696 84.32 184.48 187.968 184.48s187.968-82.752 187.968-184.48-84.32-184.448-187.968-184.448S315.872 200 315.872 301.696z" ></path></symbol></svg>',function(n){var t=(t=document.getElementsByTagName("script"))[t.length-1],e=t.getAttribute("data-injectcss"),t=t.getAttribute("data-disable-injectsvg");if(!t){var i,o,c,l,a,d=function(t,e){e.parentNode.insertBefore(t,e)};if(e&&!n.__iconfont__svg__cssinject__){n.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(t){console&&console.log(t)}}i=function(){var t,e=document.createElement("div");e.innerHTML=n._iconfont_svg_string_4222008,(e=e.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",e=e,(t=document.body).firstChild?d(e,t.firstChild):t.appendChild(e))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(i,0):(o=function(){document.removeEventListener("DOMContentLoaded",o,!1),i()},document.addEventListener("DOMContentLoaded",o,!1)):document.attachEvent&&(c=i,l=n.document,a=!1,h(),l.onreadystatechange=function(){"complete"==l.readyState&&(l.onreadystatechange=null,s())})}function s(){a||(a=!0,c())}function h(){try{l.documentElement.doScroll("left")}catch(t){return void setTimeout(h,50)}s()}}(window);
\ No newline at end of file \ No newline at end of file
...@@ -5,6 +5,13 @@ ...@@ -5,6 +5,13 @@
"css_prefix_text": "icon-", "css_prefix_text": "icon-",
"description": "", "description": "",
"glyphs": [ "glyphs": [
{
"icon_id": "4354835",
"name": "闭眼睛",
"font_class": "hidden",
"unicode": "e901",
"unicode_decimal": 59649
},
{ {
"icon_id": "1920286", "icon_id": "1920286",
"name": "点", "name": "点",
...@@ -12,13 +19,6 @@ ...@@ -12,13 +19,6 @@
"unicode": "e608", "unicode": "e608",
"unicode_decimal": 58888 "unicode_decimal": 58888
}, },
{
"icon_id": "12183287",
"name": "不可见",
"font_class": "hidden",
"unicode": "e607",
"unicode_decimal": 58887
},
{ {
"icon_id": "12387627", "icon_id": "12387627",
"name": "密码", "name": "密码",
......
<template>
<div>
<a-range-picker
v-bind="$attrs"
:allowClear="allowClear"
valueFormat="YYYY-MM-DD"
:value="value"
@change="handleChange"
>
<img slot="suffixIcon" src="@/assets/images/dataManage/icon-date.png" />
</a-range-picker>
</div>
</template>
<script>
export default {
model: {
value: "value",
event: "change",
},
props: {
value: {
required: true,
default: "",
},
allowClear: {
default: false,
},
},
data() {
return {};
},
methods: {
handleChange(value) {
this.$emit("change", value);
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div>
<a-select
:v-bind="$attrs"
:allowClear="allowClear"
:showSearch="showSearch"
:value="value"
:optionFilterProp="optionFilterProp"
@change="handleChange"
>
<img slot="clearIcon" src="@/assets/images/icon-close.png" />
<img slot="suffixIcon" src="@/assets/images/dataManage/pull-down.png" />
<slot></slot>>
</a-select>
</div>
</template>
<script>
export default {
model: {
value: "value",
event: "change",
},
props: {
value: {
required: true,
default: "",
},
allowClear: {
default: "",
},
showSearch: {
default: "",
},
optionFilterProp: {
default: "",
},
},
data() {
return {};
},
methods: {
handleChange(value) {
this.$emit("change", value);
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<a-select-option value="" label="全部"> 全部 </a-select-option> <a-select-option value="" label="全部"> 全部 </a-select-option>
<a-select-option :value="0" label="未处理"> 未处理 </a-select-option> <a-select-option :value="0" label="未处理"> 未处理 </a-select-option>
</a-select> </a-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
:label="v.name + '-' + v.fromnum" :label="v.name + '-' + v.fromnum"
>{{ v.name + "-" + v.fromnum }}</a-select-option >{{ v.name + "-" + v.fromnum }}</a-select-option
> >
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -46,8 +46,8 @@ ...@@ -46,8 +46,8 @@
:label="v" :label="v"
>{{ v }}</a-select-option >{{ v }}</a-select-option
> >
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入工作人员姓名查询" placeholder="请输入工作人员姓名查询"
...@@ -61,6 +61,8 @@ ...@@ -61,6 +61,8 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import Storage from "@/utils/js/Storage"; import Storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
...@@ -74,6 +76,10 @@ const alert = { ...@@ -74,6 +76,10 @@ const alert = {
}; };
export default { export default {
name: "abnormalReportForm-search", name: "abnormalReportForm-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: Storage.get(2, "siteId"), siteId: Storage.get(2, "siteId"),
...@@ -104,8 +110,8 @@ export default { ...@@ -104,8 +110,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.windowData = data; this.windowData = data;
} }
}, },
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
> >
<a-select-option value="" label="全部类型"> 全部类型 </a-select-option> <a-select-option value="" label="全部类型"> 全部类型 </a-select-option>
<a-select-option :value="0" label="离线"> 离线 </a-select-option> <a-select-option :value="0" label="离线"> 离线 </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
<a-select-option :value="2" label="清除已确认"> <a-select-option :value="2" label="清除已确认">
清除已确认 清除已确认
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入设备名称查询" placeholder="请输入设备名称查询"
...@@ -45,11 +45,17 @@ ...@@ -45,11 +45,17 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
export default { export default {
name: "alerting-search", name: "alerting-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入手机号码搜索" placeholder="请输入手机号码搜索"
...@@ -18,11 +18,17 @@ ...@@ -18,11 +18,17 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
export default { export default {
name: "callRecordForm-search", name: "callRecordForm-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
......
<template> <template>
<!-- 排号机搜索 -->
<div class="search-form"> <div class="search-form">
<a-space direction="vertical" size="middle"> <a-space direction="vertical" size="middle">
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
placeholder="请选择大厅" placeholder="请选择大厅"
v-model="searchForm.hallid" v-model="searchForm.hallid"
> >
<img slot="clearIcon" src="@/assets/images/icon-close.png" />
<img slot="suffixIcon" src="@/assets/images/dataManage/pull-down.png" />
<a-select-option value="" label="全部大厅"> 全部大厅 </a-select-option> <a-select-option value="" label="全部大厅"> 全部大厅 </a-select-option>
<a-select-option <a-select-option
v-for="v in datingList" v-for="v in datingList"
...@@ -20,8 +23,8 @@ ...@@ -20,8 +23,8 @@
> >
{{ v.hallName }} {{ v.hallName }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -37,15 +40,15 @@ ...@@ -37,15 +40,15 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
placeholder="请选择设备" placeholder="请选择设备"
v-model="searchForm.id" v-model="searchForm.id"
> >
<a-select-option value=""> 全部设备 </a-select-option> <a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option <a-select-option
v-for="v in deviceData" v-for="v in deviceData"
:key="v.id" :key="v.id"
...@@ -54,8 +57,8 @@ ...@@ -54,8 +57,8 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -71,8 +74,10 @@ ...@@ -71,8 +74,10 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time">
<img slot="suffixIcon" src="@/assets/images/dataManage/icon-date.png" />
</y-range-picker>
<a-input <a-input
allowClear allowClear
placeholder="输入排队编号搜索" placeholder="输入排队编号搜索"
...@@ -87,6 +92,8 @@ ...@@ -87,6 +92,8 @@
<script> <script>
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getCalllist } from "@/api/dataAdmin"; import { getDatingList, getBumenList, getCalllist } from "@/api/dataAdmin";
import { debounce } from "lodash"; import { debounce } from "lodash";
...@@ -102,6 +109,10 @@ const style = [ ...@@ -102,6 +109,10 @@ const style = [
]; ];
export default { export default {
name: "callRecord-search", name: "callRecord-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
...@@ -137,8 +148,8 @@ export default { ...@@ -137,8 +148,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.datingList = data; this.datingList = data;
} }
}, },
...@@ -150,8 +161,8 @@ export default { ...@@ -150,8 +161,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.deptList = data; this.deptList = data;
} }
}, },
...@@ -162,8 +173,8 @@ export default { ...@@ -162,8 +173,8 @@ export default {
page: 1, page: 1,
size: -1, size: -1,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.deviceData = data; this.deviceData = data;
} }
}, },
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
> >
{{ v.hallName }} {{ v.hallName }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <a-select
allowClear allowClear
showSearch showSearch
...@@ -47,7 +47,9 @@ ...@@ -47,7 +47,9 @@
v-model="evaChoose" v-model="evaChoose"
mode="multiple" mode="multiple"
> >
<a-select-option value=""> 全部评价 </a-select-option> <img slot="clearIcon" src="@/assets/images/icon-close.png" />
<img slot="suffixIcon" src="@/assets/images/dataManage/pull-down.png" />
<!-- <a-select-option value="" label="全部评价"> 全部评价 </a-select-option> -->
<a-select-option <a-select-option
v-for="v in optonList" v-for="v in optonList"
:key="v.id" :key="v.id"
...@@ -65,7 +67,9 @@ ...@@ -65,7 +67,9 @@
v-model="evaFrom" v-model="evaFrom"
mode="multiple" mode="multiple"
> >
<a-select-option value="" label=""> 全部来源 </a-select-option> <img slot="clearIcon" src="@/assets/images/icon-close.png" />
<img slot="suffixIcon" src="@/assets/images/dataManage/pull-down.png" />
<!-- <a-select-option value="" label="全部来源"> 全部来源 </a-select-option> -->
<a-select-option value="1" label="窗口评价"> 窗口评价 </a-select-option> <a-select-option value="1" label="窗口评价"> 窗口评价 </a-select-option>
<a-select-option value="2" label="自助服务终端"> <a-select-option value="2" label="自助服务终端">
自助服务终端 自助服务终端
...@@ -79,10 +83,10 @@ ...@@ -79,10 +83,10 @@
一体化评价 一体化评价
</a-select-option> </a-select-option>
</a-select> </a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入评价人姓名或部门名称搜索" placeholder="请输入评价人姓名或窗口编号搜索"
v-model="searchForm.info" v-model="searchForm.info"
/> />
<a-button block class="search-btn" icon="search" @click="handleSearch"> <a-button block class="search-btn" icon="search" @click="handleSearch">
...@@ -92,13 +96,19 @@ ...@@ -92,13 +96,19 @@
</div> </div>
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getOptonList } from "@/api/dataAdmin"; import { getDatingList, getBumenList, getOptonList } from "@/api/dataAdmin";
import { debounce } from "lodash"; import { debounce } from "lodash";
export default { export default {
name: "departmentEvaluation-search", name: "departmentEvaluation-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
...@@ -137,8 +147,8 @@ export default { ...@@ -137,8 +147,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.datingList = data; this.datingList = data;
} }
}, },
...@@ -150,8 +160,8 @@ export default { ...@@ -150,8 +160,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.deptList = data; this.deptList = data;
} }
}, },
...@@ -159,8 +169,8 @@ export default { ...@@ -159,8 +169,8 @@ export default {
// 获取评价选项 // 获取评价选项
async getOptonList() { async getOptonList() {
let res = await getOptonList(); let res = await getOptonList();
if (res.data.code == 1) { if (res.code == 1) {
this.optonList = res.data.data; this.optonList = res.data;
} }
}, },
...@@ -191,5 +201,5 @@ export default { ...@@ -191,5 +201,5 @@ export default {
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
</style> </style>
\ No newline at end of file
...@@ -5,14 +5,14 @@ ...@@ -5,14 +5,14 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
placeholder="请选择设备" placeholder="请选择设备"
v-model="searchForm.number" v-model="searchForm.number"
> >
<a-select-option value=""> 全部设备 </a-select-option> <a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option <a-select-option
v-for="v in deviceData" v-for="v in deviceData"
:key="v.id" :key="v.id"
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -32,8 +32,8 @@ ...@@ -32,8 +32,8 @@
<a-select-option value="" label="全部状态"> 全部状态 </a-select-option> <a-select-option value="" label="全部状态"> 全部状态 </a-select-option>
<a-select-option :value="1" label="未取件"> 未取件 </a-select-option> <a-select-option :value="1" label="未取件"> 未取件 </a-select-option>
<a-select-option :value="2" label="已取件"> 已取件 </a-select-option> <a-select-option :value="2" label="已取件"> 已取件 </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入邮递员姓名或联系电话查询" placeholder="请输入邮递员姓名或联系电话查询"
...@@ -47,12 +47,18 @@ ...@@ -47,12 +47,18 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { getSitePickupDevice } from "@/api/dataAdmin"; import { getSitePickupDevice } from "@/api/dataAdmin";
import { debounce } from "lodash"; import { debounce } from "lodash";
export default { export default {
name: "depositRecord-search", name: "depositRecord-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
...@@ -81,8 +87,8 @@ export default { ...@@ -81,8 +87,8 @@ export default {
page: 1, page: 1,
size: -1, size: -1,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.deviceData = data; this.deviceData = data;
} }
}, },
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
> >
<a-select-option :value="1" label="按事项"> 按事项 </a-select-option> <a-select-option :value="1" label="按事项"> 按事项 </a-select-option>
<a-select-option :value="2" label="按材料"> 按材料 </a-select-option> <a-select-option :value="2" label="按材料"> 按材料 </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -28,8 +28,8 @@ ...@@ -28,8 +28,8 @@
<a-select-option :value="2" label="在线提交"> <a-select-option :value="2" label="在线提交">
在线提交 在线提交
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入名称搜索" placeholder="请输入名称搜索"
...@@ -43,11 +43,17 @@ ...@@ -43,11 +43,17 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
export default { export default {
name: "fillForm-search", name: "fillForm-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
......
...@@ -5,17 +5,17 @@ ...@@ -5,17 +5,17 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
placeholder="请选择" placeholder="请选择"
v-model="searchForm.reply" v-model="searchForm.reply"
> >
<a-select-option value=""> 全部 </a-select-option> <a-select-option value="" label="全部"> 全部 </a-select-option>
<a-select-option :value="0"> 未回复 </a-select-option> <a-select-option :value="0" label="未回复"> 未回复 </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -31,8 +31,8 @@ ...@@ -31,8 +31,8 @@
> >
{{ v.label }} {{ v.label }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入标题或姓名关键字搜索" placeholder="请输入标题或姓名关键字搜索"
...@@ -46,6 +46,8 @@ ...@@ -46,6 +46,8 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
...@@ -61,6 +63,10 @@ const deviceList = [ ...@@ -61,6 +63,10 @@ const deviceList = [
]; ];
export default { export default {
name: "ImpossibleForm-search", name: "ImpossibleForm-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
> >
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -37,8 +37,8 @@ ...@@ -37,8 +37,8 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入标题或姓名关键字搜索" placeholder="请输入标题或姓名关键字搜索"
...@@ -52,6 +52,8 @@ ...@@ -52,6 +52,8 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
...@@ -63,6 +65,10 @@ const source = { ...@@ -63,6 +65,10 @@ const source = {
}; };
export default { export default {
name: "letterRecordForm-search", name: "letterRecordForm-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
...@@ -88,8 +94,8 @@ export default { ...@@ -88,8 +94,8 @@ export default {
// 获取类型列表 // 获取类型列表
async getType() { async getType() {
let res = await getType(); let res = await getType();
if (res.data.code == 1) { if (res.code == 1) {
this.typeList = res.data.data; this.typeList = res.data;
} }
}, },
// 搜索 // 搜索
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -38,8 +38,8 @@ ...@@ -38,8 +38,8 @@
> >
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入预约人姓名/业务名称搜索" placeholder="请输入预约人姓名/业务名称搜索"
...@@ -53,6 +53,8 @@ ...@@ -53,6 +53,8 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { getDeptList } from "@/api/dataAdmin"; import { getDeptList } from "@/api/dataAdmin";
...@@ -65,6 +67,10 @@ let statusItem = { ...@@ -65,6 +67,10 @@ let statusItem = {
}; };
export default { export default {
name: "RecordReport-search", name: "RecordReport-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
statusItem, statusItem,
...@@ -95,8 +101,8 @@ export default { ...@@ -95,8 +101,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.depList = data; this.depList = data;
} }
}, },
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
> >
{{ v.hallName }} {{ v.hallName }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <a-select
allowClear allowClear
showSearch showSearch
...@@ -47,7 +47,9 @@ ...@@ -47,7 +47,9 @@
v-model="evaChoose" v-model="evaChoose"
mode="multiple" mode="multiple"
> >
<a-select-option value=""> 全部评价 </a-select-option> <img slot="clearIcon" src="@/assets/images/icon-close.png" />
<img slot="suffixIcon" src="@/assets/images/dataManage/pull-down.png" />
<!-- <a-select-option value="" label="全部评价"> 全部评价 </a-select-option> -->
<a-select-option <a-select-option
v-for="v in optonList" v-for="v in optonList"
:key="v.id" :key="v.id"
...@@ -65,7 +67,9 @@ ...@@ -65,7 +67,9 @@
v-model="evaFrom" v-model="evaFrom"
mode="multiple" mode="multiple"
> >
<a-select-option value="" label=""> 全部来源 </a-select-option> <img slot="clearIcon" src="@/assets/images/icon-close.png" />
<img slot="suffixIcon" src="@/assets/images/dataManage/pull-down.png" />
<!-- <a-select-option value="" label="全部来源"> 全部来源 </a-select-option> -->
<a-select-option value="1" label="窗口评价"> 窗口评价 </a-select-option> <a-select-option value="1" label="窗口评价"> 窗口评价 </a-select-option>
<a-select-option value="2" label="自助服务终端"> <a-select-option value="2" label="自助服务终端">
自助服务终端 自助服务终端
...@@ -79,10 +83,10 @@ ...@@ -79,10 +83,10 @@
一体化评价 一体化评价
</a-select-option> </a-select-option>
</a-select> </a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入评价人姓名或排号编号搜索" placeholder="请输入评价人姓名或窗口编号搜索"
v-model="searchForm.info" v-model="searchForm.info"
/> />
<a-button block class="search-btn" icon="search" @click="handleSearch"> <a-button block class="search-btn" icon="search" @click="handleSearch">
...@@ -93,12 +97,18 @@ ...@@ -93,12 +97,18 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getOptonList } from "@/api/dataAdmin"; import { getDatingList, getBumenList, getOptonList } from "@/api/dataAdmin";
import { debounce } from "lodash"; import { debounce } from "lodash";
export default { export default {
name: "matterEvaluation-search", name: "matterEvaluation-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
...@@ -137,8 +147,8 @@ export default { ...@@ -137,8 +147,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.datingList = data; this.datingList = data;
} }
}, },
...@@ -150,8 +160,8 @@ export default { ...@@ -150,8 +160,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.deptList = data; this.deptList = data;
} }
}, },
...@@ -159,8 +169,8 @@ export default { ...@@ -159,8 +169,8 @@ export default {
// 获取评价选项 // 获取评价选项
async getOptonList() { async getOptonList() {
let res = await getOptonList(); let res = await getOptonList();
if (res.data.code == 1) { if (res.code == 1) {
this.optonList = res.data.data; this.optonList = res.data;
} }
}, },
......
...@@ -5,16 +5,14 @@ ...@@ -5,16 +5,14 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
placeholder="请选择类型" placeholder="请选择类型"
v-model="searchForm.check_real" v-model="searchForm.check_real"
> >
<a-select-option value="-1" label="全部类型"> <a-select-option value="" label="全部类型"> 全部类型 </a-select-option>
全部类型
</a-select-option>
<a-select-option <a-select-option
v-for="(v, key) in check_realList" v-for="(v, key) in check_realList"
:key="key" :key="key"
...@@ -23,8 +21,8 @@ ...@@ -23,8 +21,8 @@
> >
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入昵称关键字搜索" placeholder="请输入昵称关键字搜索"
...@@ -38,6 +36,8 @@ ...@@ -38,6 +36,8 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
...@@ -47,6 +47,10 @@ let check_realList = { ...@@ -47,6 +47,10 @@ let check_realList = {
}; };
export default { export default {
name: "microForm-search", name: "microForm-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
check_realList, check_realList,
...@@ -54,7 +58,7 @@ export default { ...@@ -54,7 +58,7 @@ export default {
// 搜索数据 // 搜索数据
searchForm: { searchForm: {
search: "", search: "",
check_real: "-1", check_real: "",
time: [ time: [
this.$moment().format("YYYY-MM-DD"), this.$moment().format("YYYY-MM-DD"),
this.$moment().format("YYYY-MM-DD"), this.$moment().format("YYYY-MM-DD"),
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
<a-select-option value=""> 全部建议 </a-select-option> <a-select-option value=""> 全部建议 </a-select-option>
<a-select-option :value="0"> 未处理 </a-select-option> <a-select-option :value="0"> 未处理 </a-select-option>
<a-select-option :value="1"> 已处理 </a-select-option> <a-select-option :value="1"> 已处理 </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -32,8 +32,8 @@ ...@@ -32,8 +32,8 @@
> >
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -49,8 +49,8 @@ ...@@ -49,8 +49,8 @@
> >
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入标题或姓名关键字搜索" placeholder="请输入标题或姓名关键字搜索"
...@@ -64,6 +64,8 @@ ...@@ -64,6 +64,8 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
...@@ -83,6 +85,10 @@ const nowDevice = { ...@@ -83,6 +85,10 @@ const nowDevice = {
}; };
export default { export default {
name: "networkForm-search", name: "networkForm-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
......
...@@ -5,14 +5,14 @@ ...@@ -5,14 +5,14 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
placeholder="请选择设备" placeholder="请选择设备"
v-model="searchForm.number" v-model="searchForm.number"
> >
<a-select-option value=""> 全部设备 </a-select-option> <a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option <a-select-option
v-for="v in deviceData" v-for="v in deviceData"
:key="v.id" :key="v.id"
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -38,8 +38,8 @@ ...@@ -38,8 +38,8 @@
> >
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-button block class="search-btn" icon="search" @click="handleSearch"> <a-button block class="search-btn" icon="search" @click="handleSearch">
搜索 搜索
</a-button> </a-button>
...@@ -48,6 +48,8 @@ ...@@ -48,6 +48,8 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { getSitePickupDevice } from "@/api/dataAdmin"; import { getSitePickupDevice } from "@/api/dataAdmin";
...@@ -62,6 +64,10 @@ const operationTypeList = { ...@@ -62,6 +64,10 @@ const operationTypeList = {
}; };
export default { export default {
name: "otherRecord-search", name: "otherRecord-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
...@@ -90,8 +96,8 @@ export default { ...@@ -90,8 +96,8 @@ export default {
page: 1, page: 1,
size: -1, size: -1,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.deviceData = data; this.deviceData = data;
} }
}, },
......
...@@ -5,14 +5,14 @@ ...@@ -5,14 +5,14 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
placeholder="请选择设备" placeholder="请选择设备"
v-model="searchForm.number" v-model="searchForm.number"
> >
<a-select-option value=""> 全部设备 </a-select-option> <a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option <a-select-option
v-for="v in deviceData" v-for="v in deviceData"
:key="v.id" :key="v.id"
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入取件人姓名或手机号搜索" placeholder="请输入取件人姓名或手机号搜索"
...@@ -35,13 +35,19 @@ ...@@ -35,13 +35,19 @@
</div> </div>
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { getSitePickupDevice } from "@/api/dataAdmin"; import { getSitePickupDevice } from "@/api/dataAdmin";
import { debounce } from "lodash"; import { debounce } from "lodash";
export default { export default {
name: "pickUpRecord-search", name: "pickUpRecord-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
...@@ -69,8 +75,8 @@ export default { ...@@ -69,8 +75,8 @@ export default {
page: 1, page: 1,
size: -1, size: -1,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.deviceData = data; this.deviceData = data;
} }
}, },
...@@ -98,5 +104,5 @@ export default { ...@@ -98,5 +104,5 @@ export default {
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
</style> </style>
\ No newline at end of file
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
> >
{{ v }} {{ v }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-input <a-input
allowClear allowClear
placeholder="请输入用户姓名或者手机号搜索" placeholder="请输入用户姓名或者手机号搜索"
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
...@@ -45,6 +47,10 @@ const levelList = { ...@@ -45,6 +47,10 @@ const levelList = {
}; };
export default { export default {
name: "PoliticsShow-search", name: "PoliticsShow-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
> >
{{ v.hallName }} {{ v.hallName }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -37,15 +37,15 @@ ...@@ -37,15 +37,15 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
placeholder="请选择设备" placeholder="请选择设备"
v-model="searchForm.id" v-model="searchForm.id"
> >
<a-select-option value=""> 全部设备 </a-select-option> <a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option <a-select-option
v-for="v in deviceData" v-for="v in deviceData"
:key="v.id" :key="v.id"
...@@ -54,8 +54,8 @@ ...@@ -54,8 +54,8 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -71,8 +71,8 @@ ...@@ -71,8 +71,8 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="输入排队编号搜索" placeholder="输入排队编号搜索"
...@@ -86,6 +86,8 @@ ...@@ -86,6 +86,8 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getTaskList } from "@/api/dataAdmin"; import { getDatingList, getBumenList, getTaskList } from "@/api/dataAdmin";
...@@ -106,6 +108,10 @@ const style = [ ...@@ -106,6 +108,10 @@ const style = [
]; ];
export default { export default {
name: "queueRecord-search", name: "queueRecord-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
...@@ -141,8 +147,8 @@ export default { ...@@ -141,8 +147,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.datingList = data; this.datingList = data;
} }
}, },
...@@ -154,8 +160,8 @@ export default { ...@@ -154,8 +160,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.deptList = data; this.deptList = data;
} }
}, },
...@@ -166,8 +172,8 @@ export default { ...@@ -166,8 +172,8 @@ export default {
page: 1, page: 1,
size: -1, size: -1,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.deviceData = data; this.deviceData = data;
} }
}, },
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
> >
<a-select-option :value="1" label="按事项"> 按事项 </a-select-option> <a-select-option :value="1" label="按事项"> 按事项 </a-select-option>
<a-select-option :value="2" label="按材料"> 按材料 </a-select-option> <a-select-option :value="2" label="按材料"> 按材料 </a-select-option>
</a-select> </y-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入名称搜索" placeholder="请输入名称搜索"
...@@ -29,11 +29,17 @@ ...@@ -29,11 +29,17 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { debounce } from "lodash"; import { debounce } from "lodash";
export default { export default {
name: "sampleForm-search", name: "sampleForm-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport"> <a-button block class="export-btn" icon="upload" @click="handleExport">
导出 导出
</a-button> </a-button>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
> >
{{ v.hallName }} {{ v.hallName }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <y-select
allowClear allowClear
showSearch showSearch
optionFilterProp="label" optionFilterProp="label"
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
> >
{{ v.name }} {{ v.name }}
</a-select-option> </a-select-option>
</a-select> </y-select>
<a-select <a-select
allowClear allowClear
showSearch showSearch
...@@ -47,7 +47,9 @@ ...@@ -47,7 +47,9 @@
v-model="evaChoose" v-model="evaChoose"
mode="multiple" mode="multiple"
> >
<a-select-option value=""> 全部评价 </a-select-option> <img slot="clearIcon" src="@/assets/images/icon-close.png" />
<img slot="suffixIcon" src="@/assets/images/dataManage/pull-down.png" />
<!-- <a-select-option value="" label="全部评价"> 全部评价 </a-select-option> -->
<a-select-option <a-select-option
v-for="v in optonList" v-for="v in optonList"
:key="v.id" :key="v.id"
...@@ -65,7 +67,9 @@ ...@@ -65,7 +67,9 @@
v-model="evaFrom" v-model="evaFrom"
mode="multiple" mode="multiple"
> >
<a-select-option value="" label=""> 全部来源 </a-select-option> <img slot="clearIcon" src="@/assets/images/icon-close.png" />
<img slot="suffixIcon" src="@/assets/images/dataManage/pull-down.png" />
<!-- <a-select-option value="" label="全部来源"> 全部来源 </a-select-option> -->
<a-select-option value="1" label="窗口评价"> 窗口评价 </a-select-option> <a-select-option value="1" label="窗口评价"> 窗口评价 </a-select-option>
<a-select-option value="2" label="自助服务终端"> <a-select-option value="2" label="自助服务终端">
自助服务终端 自助服务终端
...@@ -79,7 +83,7 @@ ...@@ -79,7 +83,7 @@
一体化评价 一体化评价
</a-select-option> </a-select-option>
</a-select> </a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" /> <y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input <a-input
allowClear allowClear
placeholder="请输入评价人姓名或窗口编号搜索" placeholder="请输入评价人姓名或窗口编号搜索"
...@@ -93,12 +97,18 @@ ...@@ -93,12 +97,18 @@
</template> </template>
<script> <script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getOptonList } from "@/api/dataAdmin"; import { getDatingList, getBumenList, getOptonList } from "@/api/dataAdmin";
import { debounce } from "lodash"; import { debounce } from "lodash";
export default { export default {
name: "windowsEvaluation-search", name: "windowsEvaluation-search",
components: {
YSelect,
YRangePicker,
},
data() { data() {
return { return {
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
...@@ -137,8 +147,8 @@ export default { ...@@ -137,8 +147,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.datingList = data; this.datingList = data;
} }
}, },
...@@ -150,8 +160,8 @@ export default { ...@@ -150,8 +160,8 @@ export default {
size: -1, size: -1,
siteId: this.siteId, siteId: this.siteId,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.deptList = data; this.deptList = data;
} }
}, },
...@@ -159,8 +169,8 @@ export default { ...@@ -159,8 +169,8 @@ export default {
// 获取评价选项 // 获取评价选项
async getOptonList() { async getOptonList() {
let res = await getOptonList(); let res = await getOptonList();
if (res.data.code == 1) { if (res.code == 1) {
this.optonList = res.data.data; this.optonList = res.data;
} }
}, },
......
import Storage from "@/utils/js/Storage"; import Storage from "@/utils/js/Storage";
import store from "@/store";
// 修改密码权限 // 修改密码权限
export const permission = { export const permission = {
inserted: function (el, binding) { inserted: function (el, binding) {
const { value } = binding; const { value } = binding;
const roles = Storage.get(2, "userInfo").id; const roles = store.getters["user/userData"].id;
if (value) { if (value) {
const permissionRoles = value; const permissionRoles = value;
const hasPermission = permissionRoles.includes(roles); const hasPermission = permissionRoles.includes(roles);
......
...@@ -56,7 +56,7 @@ export default { ...@@ -56,7 +56,7 @@ export default {
} }
menuList(obj).then((res) => { menuList(obj).then((res) => {
// console.log(res); // console.log(res);
let { code, data, dict } = res.data; let { code, data, dict } = res;
if (code == 1) { if (code == 1) {
data.data = data.data.map((item) => { data.data = data.data.map((item) => {
this.menuRouterList.forEach((v) => { this.menuRouterList.forEach((v) => {
......
...@@ -60,7 +60,7 @@ axios.interceptors.response.use( ...@@ -60,7 +60,7 @@ axios.interceptors.response.use(
} }
} }
// NProgress.done(); // NProgress.done();
return response; return response.data;
}, },
(error) => { (error) => {
if (error && error.response) { if (error && error.response) {
......
...@@ -17,6 +17,10 @@ const routes = [ ...@@ -17,6 +17,10 @@ const routes = [
), ),
meta: { title: "数据管理" }, meta: { title: "数据管理" },
children: [ children: [
{
path: "dataAdmin",
redirect: "/",//升级前门户跳转重定向
},
{ {
path: "pickUp", path: "pickUp",
name: "pickUp", name: "pickUp",
...@@ -27,6 +31,7 @@ const routes = [ ...@@ -27,6 +31,7 @@ const routes = [
), ),
meta: { title: "取件记录报表" }, meta: { title: "取件记录报表" },
children: [ children: [
{ {
path: "pickUpRecord", path: "pickUpRecord",
name: "pickUpRecord", name: "pickUpRecord",
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
.ant-btn { .ant-btn {
&+.ant-btn { &+.ant-btn {
margin-left: 1rem !important; margin-left: 6px !important;
} }
} }
...@@ -31,26 +31,26 @@ ...@@ -31,26 +31,26 @@
// } // }
// } // }
::-webkit-scrollbar { // ::-webkit-scrollbar {
width: 7px; // width: 7px;
background: transparent !important; // background: transparent !important;
} // }
::-webkit-scrollbar-corner, // ::-webkit-scrollbar-corner,
/* 滚动条角落 */ // /* 滚动条角落 */
::-webkit-scrollbar-thumb, // ::-webkit-scrollbar-thumb,
::-webkit-scrollbar-track { // ::-webkit-scrollbar-track {
border-radius: 5px; // border-radius: 5px;
} // }
::-webkit-scrollbar-corner, // ::-webkit-scrollbar-corner,
::-webkit-scrollbar-track { // ::-webkit-scrollbar-track {
/* 滚动条轨道 */ // /* 滚动条轨道 */
background-color: transparent !important; // background-color: transparent !important;
box-shadow: unset !important; // box-shadow: unset !important;
} // }
::-webkit-scrollbar-thumb { // ::-webkit-scrollbar-thumb {
background-color: rgba(144, 147, 153, .5); // background-color: rgba(144, 147, 153, .5);
/* 滚动条手柄 */ // /* 滚动条手柄 */
} // }
\ No newline at end of file \ No newline at end of file
...@@ -194,6 +194,7 @@ export default { ...@@ -194,6 +194,7 @@ export default {
.demo { .demo {
width: 100%; width: 100%;
height: 100%; height: 100%;
opacity: 0.3;
// background: url("@/assets/img/demo/bg.png") no-repeat center; // background: url("@/assets/img/demo/bg.png") no-repeat center;
} }
</style> </style>
\ No newline at end of file
...@@ -31,13 +31,16 @@ ...@@ -31,13 +31,16 @@
/> />
</a-form-model-item> </a-form-model-item>
<a-form-model-item> <a-form-model-item>
<a-button type="primary" class="addclass" @click="getList"> 开始分析 </a-button> <a-button type="primary" class="addclass" @click="getList">
开始分析
</a-button>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
<div class="mt20"> <div class="mt20">
<a-table <a-table
:columns="columns" :columns="columns"
:data-source="data" :data-source="data"
:loading="loading"
:scroll="{ y: 590 }" :scroll="{ y: 590 }"
:pagination="false" :pagination="false"
> >
...@@ -49,9 +52,9 @@ ...@@ -49,9 +52,9 @@
<script> <script>
import { getEventCensus } from "@/api/dataActuary.js"; import { getEventCensus } from "@/api/dataActuary.js";
import moment from "moment"; import moment from "moment";
import product from "../mixins/product" import product from "../mixins/product";
export default { export default {
mixins:[product], mixins: [product],
data() { data() {
return { return {
queryform: { queryform: {
...@@ -101,6 +104,7 @@ export default { ...@@ -101,6 +104,7 @@ export default {
}, },
], ],
data: [], data: [],
loading: false,
}; };
}, },
mounted() { mounted() {
...@@ -108,10 +112,12 @@ export default { ...@@ -108,10 +112,12 @@ export default {
}, },
methods: { methods: {
getList() { getList() {
this.loading = true;
this.queryform.dateTimeStart = this.time ? this.time[0] : null; this.queryform.dateTimeStart = this.time ? this.time[0] : null;
this.queryform.dateTimeStart = this.time ? this.time[1] : null; this.queryform.dateTimeStart = this.time ? this.time[1] : null;
getEventCensus(this.queryform).then((res) => { getEventCensus(this.queryform).then((res) => {
this.data = res.data.data; this.data = res.data.data;
this.loading = false;
}); });
}, },
}, },
......
<template> <template>
<!-- 信息流分析 --> <!-- 信息流分析 -->
<div class="page"> <div class="page">
<a-form-model :model="queryform" :label-col="labelCol" :wrapper-col="wrapperCol" layout="inline"> <a-form-model
:model="queryform"
:label-col="labelCol"
:wrapper-col="wrapperCol"
layout="inline"
>
<a-form-model-item> <a-form-model-item>
<a-select v-model="queryform.productId" style="width: 200px" placeholder="选择产品"> <a-select
<a-select-option :value="item.id" v-for="(item,index) in product" :key="index"> v-model="queryform.productId"
{{item.title}} style="width: 200px"
placeholder="选择产品"
>
<a-select-option
:value="item.id"
v-for="(item, index) in product"
:key="index"
>
{{ item.title }}
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item> <a-form-model-item>
<a-date-picker valueFormat="yyyy-MM-DD" v-model="time" style="width: 200px" :allowClear="false"/> <a-date-picker
valueFormat="yyyy-MM-DD"
v-model="time"
style="width: 200px"
:allowClear="false"
/>
</a-form-model-item> </a-form-model-item>
<a-form-model-item> <a-form-model-item>
<a-select v-model="queryform.particleType" style="width: 200px" placeholder="选择时间粒度"> <a-select
v-model="queryform.particleType"
style="width: 200px"
placeholder="选择时间粒度"
>
<a-select-option value="1">10分钟</a-select-option> <a-select-option value="1">10分钟</a-select-option>
<a-select-option value="2">30分钟</a-select-option> <a-select-option value="2">30分钟</a-select-option>
<a-select-option value="3">1小时</a-select-option> <a-select-option value="3">1小时</a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item> <a-form-model-item>
<a-select v-model="queryform.value" style="width: 200px" placeholder="选择一级场景"> <a-select
v-model="queryform.value"
style="width: 200px"
placeholder="选择一级场景"
>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item> <a-form-model-item>
<a-select v-model="queryform.value" style="width: 200px" placeholder="选择二级场景"> <a-select
v-model="queryform.value"
style="width: 200px"
placeholder="选择二级场景"
>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item> <a-form-model-item>
<a-select v-model="queryform.value" style="width: 200px" placeholder="选择三级场景"> <a-select
v-model="queryform.value"
style="width: 200px"
placeholder="选择三级场景"
>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item> <a-form-model-item>
...@@ -42,7 +73,7 @@ ...@@ -42,7 +73,7 @@
</a-form-model> </a-form-model>
<div class="table-box"> <div class="table-box">
<div class="mb"> <div class="mb">
<span style="margin-right: 30px;">指标筛选</span> <span style="margin-right: 30px">指标筛选</span>
<a-checkbox-group @change="changeIndex" v-model="indexList"> <a-checkbox-group @change="changeIndex" v-model="indexList">
<a-checkbox value="accessCount">访问人数</a-checkbox> <a-checkbox value="accessCount">访问人数</a-checkbox>
<a-checkbox value="accessCount1">打开次数</a-checkbox> <a-checkbox value="accessCount1">打开次数</a-checkbox>
...@@ -50,62 +81,74 @@ ...@@ -50,62 +81,74 @@
</a-checkbox-group> </a-checkbox-group>
</div> </div>
<div class="mb"> <div class="mb">
<span style="margin-right: 30px;">对比筛选</span> <span style="margin-right: 30px">对比筛选</span>
<a-checkbox @change="onChange"> <a-checkbox @change="onChange"> 日对比 </a-checkbox>
日对比
</a-checkbox>
</div> </div>
<a-table :columns="columns" :data-source="data" :scroll="{ y: 590 }" :pagination="false"> <a-table
:columns="columns"
:data-source="data"
:scroll="{ y: 590 }"
:pagination="false"
:loading="loading"
>
<template slot="访问人数" slot-scope="text, record, index"> <template slot="访问人数" slot-scope="text, record, index">
<div>{{record.accessCount}}</div> <div>{{ record.accessCount }}</div>
<div v-show="queryform.isRatio == 1">日对比:{{(record.accessRatio * 100).toFixed(2)}}%</div> <div v-show="queryform.isRatio == 1">
日对比:{{ (record.accessRatio * 100).toFixed(2) }}%
</div>
</template> </template>
<template slot="打开次数" slot-scope="text, record, index"> <template slot="打开次数" slot-scope="text, record, index">
<div>{{record.accessCount}}</div> <div>{{ record.accessCount }}</div>
<div v-show="queryform.isRatio == 1">日对比:{{(record.accessRatio * 100).toFixed(2)}}%</div> <div v-show="queryform.isRatio == 1">
日对比:{{ (record.accessRatio * 100).toFixed(2) }}%
</div>
</template> </template>
<template slot="访问页面数" slot-scope="text, record, index"> <template slot="访问页面数" slot-scope="text, record, index">
<div>{{record.pageDepth}}</div> <div>{{ record.pageDepth }}</div>
<div v-show="queryform.isRatio == 1">日对比:{{(record.depthRatio * 100).toFixed(2)}}%</div> <div v-show="queryform.isRatio == 1">
日对比:{{ (record.depthRatio * 100).toFixed(2) }}%
</div>
</template> </template>
</a-table> </a-table>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import {getInformationFlow} from '@/api/dataActuary.js' import { getInformationFlow } from "@/api/dataActuary.js";
import moment from 'moment'; import moment from "moment";
import product from "../mixins/product" import product from "../mixins/product";
export default { export default {
mixins:[product], mixins: [product],
data() { data() {
return { return {
queryform: { queryform: {
productId: 1, productId: 1,
dateTimeStart:moment().format('yyyy-MM-DD'), dateTimeStart: moment().format("yyyy-MM-DD"),
dateTimeEnd:moment().format('yyyy-MM-DD'), dateTimeEnd: moment().format("yyyy-MM-DD"),
particleType:'1', particleType: "1",
isRatio:0 isRatio: 0,
}, },
time:moment().format('yyyy-MM-DD'), time: moment().format("yyyy-MM-DD"),
product:[{ product: [
title:'排队机', {
id:1 title: "排队机",
}], id: 1,
indexList:['accessCount','accessCount1','pageDepth'], },
],
indexList: ["accessCount", "accessCount1", "pageDepth"],
labelCol: { labelCol: {
span: 1 span: 1,
}, },
wrapperCol: { wrapperCol: {
span: 14 span: 14,
}, },
columns: [{ columns: [
{
title: "序号", title: "序号",
width: "70px", width: "70px",
dataIndex: 'index', dataIndex: "index",
customRender: (text, record, index) => `${index+1}`, customRender: (text, record, index) => `${index + 1}`,
align: "center", align: "center",
}, },
{ {
...@@ -114,46 +157,49 @@ ...@@ -114,46 +157,49 @@
align: "center", align: "center",
}, },
{ {
title: '产品名称', title: "产品名称",
dataIndex: 'productName', dataIndex: "productName",
align: "center", align: "center",
}, },
{ {
title: '一级场景', title: "一级场景",
dataIndex: 'firstName', dataIndex: "firstName",
align: "center", align: "center",
}, },
{ {
title: '二级场景', title: "二级场景",
dataIndex: 'secondName', dataIndex: "secondName",
align: "center", align: "center",
}, },
{ {
title: '三级场景', title: "三级场景",
dataIndex: 'thirdName', dataIndex: "thirdName",
align: "center", align: "center",
},{ },
title: '访问人数', {
dataIndex: 'accessCount', title: "访问人数",
dataIndex: "accessCount",
align: "center", align: "center",
scopedSlots: { scopedSlots: {
customRender: "访问人数", customRender: "访问人数",
}, },
},{ },
title: '打开次数', {
dataIndex: 'accessCount1', title: "打开次数",
dataIndex: "accessCount1",
align: "center", align: "center",
scopedSlots: { scopedSlots: {
customRender: "打开次数", customRender: "打开次数",
}, },
},{ },
title: '访问页面数', {
dataIndex: 'pageDepth', title: "访问页面数",
dataIndex: "pageDepth",
align: "center", align: "center",
scopedSlots: { scopedSlots: {
customRender: "访问页面数", customRender: "访问页面数",
}, },
} },
], ],
data: [], data: [],
pagination: { pagination: {
...@@ -161,38 +207,50 @@ ...@@ -161,38 +207,50 @@
pageSize: 10, //每页中显示10条数据 pageSize: 10, //每页中显示10条数据
showSizeChanger: true, showSizeChanger: true,
pageSizeOptions: ["10", "20", "50", "100"], //每页中显示的数据 pageSizeOptions: ["10", "20", "50", "100"], //每页中显示的数据
showTotal: total => `共有 ${total} 条数据`, //分页中显示总的数据 showTotal: (total) => `共有 ${total} 条数据`, //分页中显示总的数据
}, },
filterColumns:[] filterColumns: [],
} loading: false,
};
}, },
mounted() { mounted() {
this.filterColumns = this.columns this.filterColumns = this.columns;
this.getData() this.getData();
}, },
methods:{ methods: {
onChange(e){ onChange(e) {
this.queryform.isRatio = e.target.checked ? 1 : 0 this.queryform.isRatio = e.target.checked ? 1 : 0;
this.getData() this.getData();
}, },
changeIndex(e) { changeIndex(e) {
e = e.concat(['index','dateStr','productName','firstName','secondName','thirdName']) e = e.concat([
let columns = JSON.parse(JSON.stringify(this.filterColumns)) "index",
this.columns = columns.filter(item=> e.some(items=> item.dataIndex == items)) "dateStr",
"productName",
"firstName",
"secondName",
"thirdName",
]);
let columns = JSON.parse(JSON.stringify(this.filterColumns));
this.columns = columns.filter((item) =>
e.some((items) => item.dataIndex == items)
);
}, },
getData() { getData() {
this.queryform.dateTimeStart = this.time ? this.time : null this.loading = true;
this.queryform.dateTimeStart = this.time ? this.time : null this.queryform.dateTimeStart = this.time ? this.time : null;
getInformationFlow(this.queryform).then(res=>{ this.queryform.dateTimeStart = this.time ? this.time : null;
this.data = res.data getInformationFlow(this.queryform).then((res) => {
}) this.data = res.data;
this.loading = false;
});
}, },
} },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.page { .page {
height: calc(100% - 50px); height: calc(100% - 50px);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -203,9 +261,9 @@ ...@@ -203,9 +261,9 @@
.table-box { .table-box {
padding: 0 15px; padding: 0 15px;
.mb{ .mb {
margin-bottom: 20px; margin-bottom: 20px;
} }
} }
} }
</style> </style>
\ No newline at end of file
...@@ -53,7 +53,8 @@ export default { ...@@ -53,7 +53,8 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
@headerH: 4.5rem; @headerH: 4.5rem;
.Container { .Container {
height: 100% !important; width: 100%;
height: auto !important;
// background: #fac; // background: #fac;
background: #f5f5f5; background: #f5f5f5;
display: flex; display: flex;
...@@ -103,7 +104,7 @@ export default { ...@@ -103,7 +104,7 @@ export default {
margin-left: 0.7rem !important; margin-left: 0.7rem !important;
} }
} }
/deep/.ant-tabs-bar{ /deep/.ant-tabs-bar {
margin: 0; margin: 0;
} }
} }
......
...@@ -167,11 +167,9 @@ export default { ...@@ -167,11 +167,9 @@ export default {
}); });
}, },
getList() { getList() {
this.queryform.dateTimeStart = this.time ? this.time[0] : null; this.queryform.dateTimeStart = this.time ? this.time[0] : null;
this.queryform.dateTimeStart = this.time ? this.time[1] : null; this.queryform.dateTimeStart = this.time ? this.time[1] : null;
getProductHotCensus(this.queryform).then((res) => { getProductHotCensus(this.queryform).then((res) => {
console.log(res);
this.clickSum = res.data.clickSum; this.clickSum = res.data.clickSum;
this.data = res.data.top10List; this.data = res.data.top10List;
this.img = this.img =
......
...@@ -15,14 +15,16 @@ ...@@ -15,14 +15,16 @@
<a-col :span="8"> <a-col :span="8">
<a-row type="flex" align="middle"> <a-row type="flex" align="middle">
<a-col :span="12"> <a-col :span="12">
<div class="f_40 f_center success">{{ situation.lev1_not_child_nums }}</div> <div class="f_40 f_center success">
{{ situation.lev1_not_child_nums }}
</div>
<div class="f_center">一级业务(无子业务)</div> <div class="f_center">一级业务(无子业务)</div>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<Pie <Pie
:id="`one_pie`" :id="`one_pie`"
:height=200 :height="200"
:width=200 :width="200"
:datas="firstPie" :datas="firstPie"
/> />
</a-col> </a-col>
...@@ -31,18 +33,20 @@ ...@@ -31,18 +33,20 @@
<a-col :span="12"> <a-col :span="12">
<a-row type="flex" align="middle"> <a-row type="flex" align="middle">
<a-col :span="8"> <a-col :span="8">
<div class="f_40 f_center prima">{{ situation.lev1_has_child_nums }}</div> <div class="f_40 f_center prima">
<div class=" f_center">一级业务(有子业务)</div> {{ situation.lev1_has_child_nums }}
</div>
<div class="f_center">一级业务(有子业务)</div>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<div class="f_40 f_center prima">{{ situation.child_nums }}</div> <div class="f_40 f_center prima">{{ situation.child_nums }}</div>
<div class=" f_center">子级业务</div> <div class="f_center">子级业务</div>
</a-col> </a-col>
<a-col :span="8"> <a-col :span="8">
<Pie <Pie
:id="`two_pie`" :id="`two_pie`"
:height=200 :height="200"
:width=200 :width="200"
:datas="secondPie" :datas="secondPie"
/> />
</a-col> </a-col>
...@@ -69,16 +73,17 @@ ...@@ -69,16 +73,17 @@
<div class="f_center">未排队业务</div> <div class="f_center">未排队业务</div>
</a-col> </a-col>
</a-row> </a-row>
<Pie <Pie :id="`three_pie`" :height="200" :width="280" :datas="thirdPie" />
:id="`three_pie`"
:height="200"
:width="280"
:datas="thirdPie"
/>
</a-col> </a-col>
<a-col :span="20"> <a-col :span="20">
<div class="table_title">排队业务分布情况</div> <div class="table_title">排队业务分布情况</div>
<a-table :row-key="(record,index) => index" :dataSource="lineUp" :columns="lineUpColumns" :pagination="false" :scroll="{ x: 1400, y: 0 }"/> <a-table
:row-key="(record, index) => index"
:dataSource="lineUp"
:columns="lineUpColumns"
:pagination="false"
:scroll="{ x: 1400, y: 0 }"
/>
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>
...@@ -101,22 +106,27 @@ ...@@ -101,22 +106,27 @@
<div class="f_center">未预约业务</div> <div class="f_center">未预约业务</div>
</a-col> </a-col>
</a-row> </a-row>
<Pie <Pie :id="`four_pie`" :height="200" :width="280" :datas="fourthPie" />
:id="`four_pie`"
:height="200"
:width="280"
:datas="fourthPie"
/>
</a-col> </a-col>
<a-col :span="20"> <a-col :span="20">
<div>预约业务分布情况</div> <div>预约业务分布情况</div>
<a-table :row-key="(record,index) => index" :dataSource="appointment" :columns="appointmentColumns" :pagination="false" :scroll="{ x: 1400, y: 0 }"/> <a-table
:row-key="(record, index) => index"
:dataSource="appointment"
:columns="appointmentColumns"
:pagination="false"
:scroll="{ x: 1400, y: 0 }"
/>
</a-col> </a-col>
</a-row> </a-row>
</a-card> </a-card>
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-card :bordered="false" class="mb_15" style="margin-right: .625rem; min-height: 44.125rem"> <a-card
:bordered="false"
class="mb_15"
style="margin-right: 0.625rem; min-height: 44.125rem"
>
<template slot="title"> <template slot="title">
<div class="head"> <div class="head">
<div class="head_title">取号最多业务Top10</div> <div class="head_title">取号最多业务Top10</div>
...@@ -132,19 +142,38 @@ ...@@ -132,19 +142,38 @@
> >
</a-select> </a-select>
</template> </template>
<a-table :row-key="(record,index) => index" :dataSource="takeNumberTop" :columns="takeNumberTopColumns" :pagination="false"> <a-table
:row-key="(record, index) => index"
:dataSource="takeNumberTop"
:columns="takeNumberTopColumns"
:pagination="false"
>
<span slot="index" slot-scope="text, record, index"> <span slot="index" slot-scope="text, record, index">
{{ index + 1 }} {{ index + 1 }}
</span> </span>
<span slot="nums" slot-scope="text, record, index" style="display: flex;"> <span
<a-progress :percent="text" :showInfo="false" strokeColor="#87d068"/> slot="nums"
<div style="min-width: 3.125rem;text-align: right;">{{ text }}件</div> slot-scope="text, record, index"
style="display: flex"
>
<a-progress
:percent="text"
:showInfo="false"
strokeColor="#87d068"
/>
<div style="min-width: 3.125rem; text-align: right">
{{ text }}件
</div>
</span> </span>
</a-table> </a-table>
</a-card> </a-card>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-card :bordered="false" class="mb_15" style="margin-left: .625rem; min-height: 44.125rem"> <a-card
:bordered="false"
class="mb_15"
style="margin-left: 0.625rem; min-height: 44.125rem"
>
<template slot="title"> <template slot="title">
<div class="head"> <div class="head">
<div class="head_title">预约最多业务Top10</div> <div class="head_title">预约最多业务Top10</div>
...@@ -160,13 +189,28 @@ ...@@ -160,13 +189,28 @@
> >
</a-select> </a-select>
</template> </template>
<a-table :row-key="(record,index) => index" :dataSource="appointmentTop" :columns="appointmentTopColumns" :pagination="false"> <a-table
:row-key="(record, index) => index"
:dataSource="appointmentTop"
:columns="appointmentTopColumns"
:pagination="false"
>
<span slot="index" slot-scope="text, record, index"> <span slot="index" slot-scope="text, record, index">
{{ index + 1 }} {{ index + 1 }}
</span> </span>
<span slot="nums" slot-scope="text, record, index" style="display: flex;"> <span
<a-progress :percent="text" :showInfo="false" strokeColor="#87d068"/> slot="nums"
<div style="min-width: 3.125rem;text-align: right;">{{ text }}件</div> slot-scope="text, record, index"
style="display: flex"
>
<a-progress
:percent="text"
:showInfo="false"
strokeColor="#87d068"
/>
<div style="min-width: 3.125rem; text-align: right">
{{ text }}件
</div>
</span> </span>
</a-table> </a-table>
</a-card> </a-card>
...@@ -174,7 +218,11 @@ ...@@ -174,7 +218,11 @@
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-card :bordered="false" class="mb_15" style="margin-right: .625rem; min-height: 44.125rem"> <a-card
:bordered="false"
class="mb_15"
style="margin-right: 0.625rem; min-height: 44.125rem"
>
<template slot="title"> <template slot="title">
<div class="head"> <div class="head">
<div class="head_title">取号最少业务Top10</div> <div class="head_title">取号最少业务Top10</div>
...@@ -190,19 +238,38 @@ ...@@ -190,19 +238,38 @@
> >
</a-select> </a-select>
</template> </template>
<a-table :row-key="(record,index) => index" :dataSource="takeNumberLess" :columns="takeNumberLessColumns" :pagination="false"> <a-table
:row-key="(record, index) => index"
:dataSource="takeNumberLess"
:columns="takeNumberLessColumns"
:pagination="false"
>
<span slot="index" slot-scope="text, record, index"> <span slot="index" slot-scope="text, record, index">
{{ index + 1 }} {{ index + 1 }}
</span> </span>
<span slot="nums" slot-scope="text, record, index" style="display: flex;"> <span
<a-progress :percent="text" :showInfo="false" strokeColor="#87d068"/> slot="nums"
<div style="min-width: 3.125rem;text-align: right;">{{ text }}件</div> slot-scope="text, record, index"
style="display: flex"
>
<a-progress
:percent="text"
:showInfo="false"
strokeColor="#87d068"
/>
<div style="min-width: 3.125rem; text-align: right">
{{ text }}件
</div>
</span> </span>
</a-table> </a-table>
</a-card> </a-card>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-card :bordered="false" class="mb_15" style="margin-left: .625rem; min-height: 44.125rem"> <a-card
:bordered="false"
class="mb_15"
style="margin-left: 0.625rem; min-height: 44.125rem"
>
<template slot="title"> <template slot="title">
<div class="head"> <div class="head">
<div class="head_title">预约最少业务Top10</div> <div class="head_title">预约最少业务Top10</div>
...@@ -218,13 +285,28 @@ ...@@ -218,13 +285,28 @@
> >
</a-select> </a-select>
</template> </template>
<a-table :row-key="(record,index) => index" :dataSource="appointmentLess" :columns="appointmentLessColumns" :pagination="false"> <a-table
:row-key="(record, index) => index"
:dataSource="appointmentLess"
:columns="appointmentLessColumns"
:pagination="false"
>
<span slot="index" slot-scope="text, record, index"> <span slot="index" slot-scope="text, record, index">
{{ index + 1 }} {{ index + 1 }}
</span> </span>
<span slot="nums" slot-scope="text, record, index" style="display: flex;"> <span
<a-progress :percent="text" :showInfo="false" strokeColor="#87d068"/> slot="nums"
<div style="min-width: 3.125rem;text-align: right;">{{ text }}件</div> slot-scope="text, record, index"
style="display: flex"
>
<a-progress
:percent="text"
:showInfo="false"
strokeColor="#87d068"
/>
<div style="min-width: 3.125rem; text-align: right">
{{ text }}件
</div>
</span> </span>
</a-table> </a-table>
</a-card> </a-card>
...@@ -234,17 +316,23 @@ ...@@ -234,17 +316,23 @@
</template> </template>
<script > <script >
import Pie from "../Component/emptyPie/index.vue" import Pie from "../Component/emptyPie/index.vue";
import axios from 'axios' import axios from "axios";
import {getAllInfo,getBusinessInfo,getWyInfo,getTopBusiness,getTopWy} from '@/api/dataActuary.js' import {
import moment from "moment" getAllInfo,
export default { getBusinessInfo,
components:{ getWyInfo,
Pie getTopBusiness,
}, getTopWy,
data(){ } from "@/api/dataActuary.js";
return{ import moment from "moment";
nowDate: '', export default {
components: {
Pie,
},
data() {
return {
nowDate: "",
// 基本情况 // 基本情况
situation: {}, situation: {},
// 第一个饼状图 // 第一个饼状图
...@@ -255,404 +343,422 @@ import moment from "moment" ...@@ -255,404 +343,422 @@ import moment from "moment"
thirdPie: {}, thirdPie: {},
// 第四个饼状图 // 第四个饼状图
fourthPie: {}, fourthPie: {},
takeLineTotal: '', // 排队业务总数 takeLineTotal: "", // 排队业务总数
noTakeLine: '', // 未排队业务 noTakeLine: "", // 未排队业务
appointmentTotal: '', // 预约业务总数 appointmentTotal: "", // 预约业务总数
noAppointment: '', // 未预约业务 noAppointment: "", // 未预约业务
// 下拉框选项 // 下拉框选项
options:[ options: [
{ {
value: '0', value: "0",
label: '今天', label: "今天",
}, },
{ {
value: '1', value: "1",
label: '近7日', label: "近7日",
}, },
{ {
value: '2', value: "2",
label: '近30日', label: "近30日",
}, },
{ {
value: '3', value: "3",
label: '近3个月', label: "近3个月",
}, },
{ {
value: '4', value: "4",
label: '本年度', label: "本年度",
}, },
], ],
// 排队表格数据 // 排队表格数据
lineUp:[ lineUp: [
{ {
key: '1', key: "1",
info: '绑定一级业务数量', info: "绑定一级业务数量",
title: '排队机名称', title: "排队机名称",
}, },
{ {
key: '2', key: "2",
info: '占比', info: "占比",
title: '排队机名称', title: "排队机名称",
}, },
{ {
key: '3', key: "3",
info: '绑定二级业务数量', info: "绑定二级业务数量",
title: '排队机名称', title: "排队机名称",
}, },
{ {
key: '4', key: "4",
info: '占比', info: "占比",
title: '排队机名称', title: "排队机名称",
}, },
], ],
// 排队表格列 // 排队表格列
lineUpColumns:[ lineUpColumns: [
{ {
key: 'key', key: "key",
title: '排队机名称', title: "排队机名称",
width: 200, width: 200,
dataIndex: 'info', dataIndex: "info",
fixed: 'left' fixed: "left",
}, },
], ],
// 预约表格数据 // 预约表格数据
appointment:[ appointment: [
{ {
key: '1', key: "1",
info: '预约一级业务数量', info: "预约一级业务数量",
title: '排队机名称', title: "排队机名称",
}, },
{ {
key: '2', key: "2",
info: '占比', info: "占比",
title: '排队机名称', title: "排队机名称",
}, },
{ {
key: '3', key: "3",
info: '预约二级业务数量', info: "预约二级业务数量",
title: '排队机名称', title: "排队机名称",
}, },
{ {
key: '4', key: "4",
info: '占比', info: "占比",
title: '排队机名称', title: "排队机名称",
}, },
], ],
// 预约表格列 // 预约表格列
appointmentColumns:[ appointmentColumns: [
{ {
key: 'key', key: "key",
title: '排队机名称', title: "排队机名称",
width: 200, width: 200,
dataIndex: 'info', dataIndex: "info",
fixed: 'left' fixed: "left",
}, },
], ],
// 排队TOP // 排队TOP
takeNumberTop:[], takeNumberTop: [],
// 排队TOP列 // 排队TOP列
takeNumberTopColumns: [ takeNumberTopColumns: [
{ {
key:'index', key: "index",
title: '排名', title: "排名",
dataIndex: 'index', dataIndex: "index",
scopedSlots: { customRender: 'index' }, scopedSlots: { customRender: "index" },
}, },
{ {
key:'businessName', key: "businessName",
title: '业务名称', title: "业务名称",
dataIndex: 'name', dataIndex: "name",
}, },
{ {
key:'number', key: "number",
title: '办理数量', title: "办理数量",
dataIndex: 'nums', dataIndex: "nums",
scopedSlots: { customRender: 'nums' }, scopedSlots: { customRender: "nums" },
}, },
], ],
// 预约TOP数据 // 预约TOP数据
appointmentTop:[], appointmentTop: [],
// 预约TOP列 // 预约TOP列
appointmentTopColumns: [ appointmentTopColumns: [
{ {
key:'index', key: "index",
title: '排名', title: "排名",
dataIndex: 'index', dataIndex: "index",
scopedSlots: { customRender: 'index' }, scopedSlots: { customRender: "index" },
}, },
{ {
key:'businessName', key: "businessName",
title: '业务名称', title: "业务名称",
dataIndex: 'name', dataIndex: "name",
}, },
{ {
key:'number', key: "number",
title: '办理数量', title: "办理数量",
dataIndex: 'nums', dataIndex: "nums",
scopedSlots: { customRender: 'nums' }, scopedSlots: { customRender: "nums" },
}, },
], ],
// 排队Less // 排队Less
takeNumberLess:[], takeNumberLess: [],
// 排队Less列 // 排队Less列
takeNumberLessColumns: [ takeNumberLessColumns: [
{ {
key:'index', key: "index",
title: '排名', title: "排名",
dataIndex: 'index', dataIndex: "index",
scopedSlots: { customRender: 'index' }, scopedSlots: { customRender: "index" },
}, },
{ {
key:'businessName', key: "businessName",
title: '业务名称', title: "业务名称",
dataIndex: 'name', dataIndex: "name",
}, },
{ {
key:'number', key: "number",
title: '办理数量', title: "办理数量",
dataIndex: 'nums', dataIndex: "nums",
scopedSlots: { customRender: 'nums' }, scopedSlots: { customRender: "nums" },
}, },
], ],
// 预约Less数据 // 预约Less数据
appointmentLess:[], appointmentLess: [],
// 预约Less列 // 预约Less列
appointmentLessColumns: [ appointmentLessColumns: [
{ {
key:'index', key: "index",
title: '排名', title: "排名",
dataIndex: 'index', dataIndex: "index",
// scopedSlots: { customRender: 'index' }, // scopedSlots: { customRender: 'index' },
}, },
{ {
key:'businessName', key: "businessName",
title: '业务名称', title: "业务名称",
dataIndex: 'name', dataIndex: "name",
}, },
{ {
key:'number', key: "number",
title: '办理数量', title: "办理数量",
dataIndex: 'nums', dataIndex: "nums",
// scopedSlots: { customRender: 'nums' }, // scopedSlots: { customRender: 'nums' },
}, },
], ],
takeNumberTopDate: '0', takeNumberTopDate: "0",
appointmentTopDate: '0', appointmentTopDate: "0",
takeNumberLessDate: '0', takeNumberLessDate: "0",
appointmentLessDate: '0', appointmentLessDate: "0",
siteid:localStorage.getItem("siteId") siteid: localStorage.getItem("siteId"),
} };
}, },
mounted(){ mounted() {
this.$bus.$on("changeSite", () => { this.$bus.$on("changeSite", () => {
this.siteid = localStorage.getItem("siteId") this.siteid = localStorage.getItem("siteId");
}); });
this.getAllData() this.getAllData();
this.getTakeLineData() this.getTakeLineData();
this.getAppointmentData() this.getAppointmentData();
this.getTakeNumberTop() this.getTakeNumberTop();
this.getAppointmentTop() this.getAppointmentTop();
this.getTakeNumberLess() this.getTakeNumberLess();
this.getAppointmentLess() this.getAppointmentLess();
}, },
watch:{ watch: {
siteid(){ siteid() {
this.getAllData() this.getAllData();
this.getTakeLineData() this.getTakeLineData();
this.getAppointmentData() this.getAppointmentData();
this.getTakeNumberTop() this.getTakeNumberTop();
this.getAppointmentTop() this.getAppointmentTop();
this.getTakeNumberLess() this.getTakeNumberLess();
this.getAppointmentLess() this.getAppointmentLess();
} },
}, },
methods:{ methods: {
//获取全部基本数据 //获取全部基本数据
async getAllData() { async getAllData() {
this.nowDate= moment(new Date()).format('YYYY-MM-DD h:mm:ss') this.nowDate = moment(new Date()).format("YYYY-MM-DD h:mm:ss");
const res = await getAllInfo({siteid:this.siteid}) const res = await getAllInfo({ siteid: this.siteid });
if(res.code == 1){ if (res.code == 1) {
this.situation= res.data this.situation = res.data;
this.firstPie= { this.firstPie = {
name: '占比', name: "占比",
val: res.data.lev1_nums, val: res.data.lev1_nums,
total: res.data.lev1_not_child_nums, total: res.data.lev1_not_child_nums,
color: '#04CA8F' color: "#04CA8F",
} };
this.secondPie= { this.secondPie = {
name: '占比', name: "占比",
val: res.data.lev1_has_child_nums, val: res.data.lev1_has_child_nums,
total: res.data.child_nums, total: res.data.child_nums,
color: '#6394f9' color: "#6394f9",
} };
} }
}, },
// 排队取号 // 排队取号
async getTakeLineData() { async getTakeLineData() {
const res = await getBusinessInfo({siteid:this.siteid}) const res = await getBusinessInfo({ siteid: this.siteid });
if(res.code == 1){ if (res.code == 1) {
let arr= res.data.info let arr = res.data.info;
let newArr= [] let newArr = [];
arr.forEach((item ,index)=>{ arr.forEach((item, index) => {
let obj={ let obj = {
id: item.id, id: item.id,
dataIndex: item.id, dataIndex: item.id,
title: item.name, title: item.name,
} };
newArr.push(obj) newArr.push(obj);
this.lineUp[0][item.id]= item.lev1_nums this.lineUp[0][item.id] = item.lev1_nums;
this.lineUp[1][item.id]= (item.lev1_rate * 100).toFixed(2) + '%' this.lineUp[1][item.id] = (item.lev1_rate * 100).toFixed(2) + "%";
this.lineUp[2][item.id]= item.lev2_nums this.lineUp[2][item.id] = item.lev2_nums;
this.lineUp[3][item.id]= (item.lev2_rate * 100).toFixed(2) + '%' this.lineUp[3][item.id] = (item.lev2_rate * 100).toFixed(2) + "%";
}) });
this.lineUpColumns= [...this.lineUpColumns, ...newArr] this.lineUpColumns = [...this.lineUpColumns, ...newArr];
this.takeLineTotal=res.data.use_bus_nums this.takeLineTotal = res.data.use_bus_nums;
this.noTakeLine=res.data.not_use_bus_nums this.noTakeLine = res.data.not_use_bus_nums;
this.thirdPie= { this.thirdPie = {
name: '占比', name: "占比",
val: res.data.not_use_bus_nums, val: res.data.not_use_bus_nums,
total: res.data.use_bus_nums, total: res.data.use_bus_nums,
color: '#04CA8F' color: "#04CA8F",
} };
} }
}, },
// 预约情况 // 预约情况
async getAppointmentData() { async getAppointmentData() {
const res = await getWyInfo({siteid:this.siteid}) const res = await getWyInfo({ siteid: this.siteid });
if(res.code == 1){ if (res.code == 1) {
let arr= res.data.info let arr = res.data.info;
let newArr= [] let newArr = [];
arr.forEach((item ,index)=>{ arr.forEach((item, index) => {
let obj={ let obj = {
id: item.id, id: item.id,
dataIndex: item.id, dataIndex: item.id,
title: item.name, title: item.name,
} };
newArr.push(obj) newArr.push(obj);
this.appointment[0][item.id]= item.lev1_nums this.appointment[0][item.id] = item.lev1_nums;
this.appointment[1][item.id]= (item.lev1_rate * 100).toFixed(2) + '%' this.appointment[1][item.id] =
this.appointment[2][item.id]= item.lev2_nums (item.lev1_rate * 100).toFixed(2) + "%";
this.appointment[3][item.id]= (item.lev2_rate * 100).toFixed(2) + '%' this.appointment[2][item.id] = item.lev2_nums;
}) this.appointment[3][item.id] =
this.appointmentColumns= [...this.appointmentColumns, ...newArr] (item.lev2_rate * 100).toFixed(2) + "%";
this.appointmentTotal=res.data.use_bus_nums });
this.noAppointment=res.data.not_use_bus_nums this.appointmentColumns = [...this.appointmentColumns, ...newArr];
this.fourthPie= { this.appointmentTotal = res.data.use_bus_nums;
name: '占比', this.noAppointment = res.data.not_use_bus_nums;
this.fourthPie = {
name: "占比",
val: res.data.not_use_bus_nums, val: res.data.not_use_bus_nums,
total: res.data.use_bus_nums, total: res.data.use_bus_nums,
color: '#04CA8F' color: "#04CA8F",
} };
} }
}, },
// 取号TOP // 取号TOP
async getTakeNumberTop(val){ async getTakeNumberTop(val) {
if(val== undefined){ if (val == undefined) {
val = 0 val = 0;
} }
const res = await getTopBusiness({selected: val,sort: 'DESC',siteid:this.siteid}) const res = await getTopBusiness({
if(res.code == 1) { selected: val,
this.takeNumberTop= res.data sort: "DESC",
siteid: this.siteid,
});
if (res.code == 1) {
this.takeNumberTop = res.data;
} }
}, },
// 取号Less // 取号Less
async getTakeNumberLess(val){ async getTakeNumberLess(val) {
if(val== undefined){ if (val == undefined) {
val = 0 val = 0;
} }
const res = await getTopBusiness({selected: val,sort: 'ASC',siteid:this.siteid}) const res = await getTopBusiness({
if(res.code == 1) { selected: val,
this.takeNumberLess= res.data sort: "ASC",
siteid: this.siteid,
});
if (res.code == 1) {
this.takeNumberLess = res.data;
} }
}, },
// 预约TOP // 预约TOP
async getAppointmentTop(val){ async getAppointmentTop(val) {
if(val== undefined){ if (val == undefined) {
val = 0 val = 0;
} }
const res = await getTopWy({selected: val,sort: 'DESC',siteid:this.siteid}) const res = await getTopWy({
if(res.code == 1) { selected: val,
this.appointmentTop= res.data sort: "DESC",
siteid: this.siteid,
});
if (res.code == 1) {
this.appointmentTop = res.data;
} }
}, },
// 预约LESS // 预约LESS
async getAppointmentLess(val){ async getAppointmentLess(val) {
if(val== undefined){ if (val == undefined) {
val = 0 val = 0;
} }
const res = await getTopWy({selected: val,sort: 'ASC',siteid:this.siteid}) const res = await getTopWy({
if(res.code == 1) { selected: val,
this.appointmentLess= res.data sort: "ASC",
siteid: this.siteid,
});
if (res.code == 1) {
this.appointmentLess = res.data;
} }
}, },
changeTakeNumberTopDate(val){ changeTakeNumberTopDate(val) {
this.getTakeNumberTop(val) this.getTakeNumberTop(val);
}, },
changeAppointmentTopDate(val){ changeAppointmentTopDate(val) {
this.getAppointmentTop(val) this.getAppointmentTop(val);
}, },
changeTakeNumberLessDate(val){ changeTakeNumberLessDate(val) {
this.getTakeNumberLess(val) this.getTakeNumberLess(val);
}, },
changeAppointmentLessDate(val){ changeAppointmentLessDate(val) {
this.getAppointmentLess(val) this.getAppointmentLess(val);
}, },
} },
} };
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.head{ .head {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
.head_title{ .head_title {
font-weight: bold; font-weight: bold;
font-style: normal; font-style: normal;
font-size: 16px; font-size: 16px;
color: #333; color: #333;
margin-right: 1.25rem; margin-right: 1.25rem;
} }
.head_desc{ .head_desc {
font-weight: 400; font-weight: 400;
font-style: normal; font-style: normal;
font-size: 14px; font-size: 14px;
color: #888888; color: #888888;
} }
} }
/deep/ .ant-table{ /deep/ .ant-table {
width: 100% !important; width: 100% !important;
} }
.table_title{ .table_title {
color: #333; color: #333;
font-weight: 700; font-weight: 700;
font-style: normal; font-style: normal;
font-size: .875rem; font-size: 0.875rem;
margin-bottom: .625rem; margin-bottom: 0.625rem;
} }
.f_20{ .f_20 {
font-size: 1.25rem; font-size: 1.25rem;
} }
.f_40{ .f_40 {
font-size: 2.5rem; font-size: 2.5rem;
} }
.f_center{ .f_center {
text-align: center; text-align: center;
} }
.warning{ .warning {
color: #FD6805 color: #fd6805;
} }
.primary{ .primary {
color: #0595FD color: #0595fd;
} }
.success{ .success {
color: #04CA8F color: #04ca8f;
} }
.h_200{ .h_200 {
height: 12.5rem; height: 12.5rem;
} }
.mb_15{ .mb_15 {
margin-bottom: .9375rem; margin-bottom: 0.9375rem;
} }
</style> </style>
\ No newline at end of file
...@@ -3,9 +3,10 @@ ...@@ -3,9 +3,10 @@
<div class="main"> <div class="main">
<div class="first_card"> <div class="first_card">
<div class="breadMenu"> <div class="breadMenu">
<Breadcrumb/> <Breadcrumb />
</div> </div>
<div class="searchBox"> <div class="searchBox">
<a-space>
<a-auto-complete <a-auto-complete
v-model="businessName" v-model="businessName"
:data-source="dataSource" :data-source="dataSource"
...@@ -15,59 +16,70 @@ ...@@ -15,59 +16,70 @@
@select="onSelect" @select="onSelect"
@search="onSearch" @search="onSearch"
/> />
<a-button type="primary" class="addclass" v-if="!btnShow" @click="startAnalysis">开始分析</a-button> <a-button
<a-button type="primary" class="addclass" v-else @click="backBase">返回</a-button> type="primary"
class="addclass"
v-if="!btnShow"
@click="startAnalysis"
>开始分析</a-button
>
<a-button type="primary" class="addclass" v-else @click="backBase"
>返回</a-button
>
</a-space>
</div> </div>
</div> </div>
<div class="content_view"> <div class="content_view">
<router-view keep-alive/> <router-view keep-alive />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import _ from 'lodash'; import _ from "lodash";
import axios from 'axios'; import axios from "axios";
import Breadcrumb from "./breadcrumb/index.vue"; import Breadcrumb from "./breadcrumb/index.vue";
import {userSiteBus} from '@/api/dataActuary' import { userSiteBus } from "@/api/dataActuary";
export default { export default {
components:{ components: {
Breadcrumb Breadcrumb,
}, },
data() { data() {
return { return {
// 搜索框 // 搜索框
businessName: '', businessName: "",
dataSource: [], dataSource: [],
sourceList:[], sourceList: [],
// dataList: [], // dataList: [],
btnShow: false, btnShow: false,
} };
}, },
mounted() { mounted() {
// this.getList() // this.getList()
}, },
created(){ created() {},
}, computed: {},
computed:{ methods: {
},
methods:{
startAnalysis() { startAnalysis() {
if(!this.businessName){ if (!this.businessName) {
this.$message.error('请输入业务名称搜索') this.$message.error("请输入业务名称搜索");
}else{ } else {
let item = this.sourceList.filter(i=>{return i.name == this.businessName})[0] let item = this.sourceList.filter((i) => {
if(item){ return i.name == this.businessName;
this.$router.push({ path: 'analysiscontent', query:{id:item.id}}) })[0];
this.btnShow= true if (item) {
this.$router.push({
path: "analysiscontent",
query: { id: item.id },
});
this.btnShow = true;
} }
} }
}, },
backBase() { backBase() {
this.$router.push({ path: 'basecontent'}) this.$router.push({ path: "basecontent" });
this.btnShow= false this.btnShow = false;
this.businessName= '' this.businessName = "";
}, },
// async getList(){ // async getList(){
// await axios.get('http://192.168.0.98:8090/inter/statistic/busList',{params: {siteid: 1}}).then((res)=>{ // await axios.get('http://192.168.0.98:8090/inter/statistic/busList',{params: {siteid: 1}}).then((res)=>{
...@@ -78,28 +90,29 @@ export default { ...@@ -78,28 +90,29 @@ export default {
// } // }
// }) // })
// }, // },
onSearch: _.debounce(function(val){ onSearch: _.debounce(function (val) {
this.dataSource= [] this.dataSource = [];
userSiteBus({siteid: localStorage.getItem('siteId'),bus_name:val}).then(res => { userSiteBus({
siteid: localStorage.getItem("siteId"),
bus_name: val,
}).then((res) => {
if (res.code == 1) { if (res.code == 1) {
this.sourceList = res.data; this.sourceList = res.data;
res.data.forEach(r => { res.data.forEach((r) => {
this.dataSource.push( this.dataSource.push(r.name);
r.name
);
}); });
} }
}) });
},0), }, 0),
onSelect(val){ onSelect(val) {
this.businessName= val this.businessName = val;
}
}, },
} },
};
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@headerH: 4.5rem; @headerH: 4.5rem;
.Container { .Container {
height: 100% !important; height: 100% !important;
// background: #fac; // background: #fac;
background: #f5f5f5; background: #f5f5f5;
...@@ -148,27 +161,27 @@ export default { ...@@ -148,27 +161,27 @@ export default {
margin-left: 0.7rem !important; margin-left: 0.7rem !important;
} }
} }
/deep/.ant-tabs-bar{ /deep/.ant-tabs-bar {
margin: 0; margin: 0;
} }
} }
.first_card{ .first_card {
background: #FFF; background: #fff;
margin-bottom: .9375rem; margin-bottom: 0.9375rem;
} }
.breadMenu{ .breadMenu {
height: 2.8125rem; height: 2.8125rem;
line-height: 2.8125rem; line-height: 2.8125rem;
padding: 0 5rem; padding: 0 5rem;
border-bottom: 1px solid rgba(226, 226, 226, 1); border-bottom: 1px solid rgba(226, 226, 226, 1);
} }
.searchBox{ .searchBox {
height: 6.25rem; height: 6.25rem;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.content_view{ .content_view {
padding: 0 5rem; padding: 0 5rem;
} }
</style> </style>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="main"> <div class="main">
<div class="first_card"> <div class="first_card">
<div class="breadMenu"> <div class="breadMenu">
<Breadcrumb/> <Breadcrumb />
</div> </div>
<div class="searchBox"> <div class="searchBox">
<!-- <a-auto-complete <!-- <a-auto-complete
...@@ -20,79 +20,93 @@ ...@@ -20,79 +20,93 @@
:not-found-content="null" :options="peopleArr" @search="peopelListFn" :not-found-content="null" :options="peopleArr" @search="peopelListFn"
@change="handleChange"> @change="handleChange">
</a-select> --> </a-select> -->
<a-button type="primary" class="addclass" v-if="!btnShow" @click="startAnalysis">开始分析</a-button> <a-button
<a-button type="primary" class="addclass" v-else @click="backBase">返回</a-button> type="primary"
class="addclass"
v-if="!btnShow"
@click="startAnalysis"
>开始分析</a-button
>
<a-button type="primary" class="addclass" v-else @click="backBase"
>返回</a-button
>
</div> </div>
</div> </div>
<div class="content_view"> <div class="content_view">
<router-view keep-alive/> <router-view keep-alive />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import _ from 'lodash'; import _ from "lodash";
import axios from 'axios'; import axios from "axios";
import Breadcrumb from "./breadcrumb/index.vue"; import Breadcrumb from "./breadcrumb/index.vue";
export default { export default {
components:{ components: {
Breadcrumb Breadcrumb,
}, },
data() { data() {
return { return {
// 搜索框 // 搜索框
businessName: '', businessName: "",
dataSource: [], dataSource: [],
dataList: [], dataList: [],
btnShow: false, btnShow: false,
} };
}, },
mounted() { mounted() {
this.getList() this.getList();
}, },
methods:{ methods: {
startAnalysis() { startAnalysis() {
if(!this.businessName){ if (!this.businessName) {
this.$message.error('请输入业务名称搜索') this.$message.error("请输入业务名称搜索");
}else{ } else {
this.$router.push({ path: 'analysiscontent', query:{name: this.businessName}}) this.$router.push({
this.btnShow= true path: "analysiscontent",
query: { name: this.businessName },
});
this.btnShow = true;
} }
}, },
backBase() { backBase() {
this.$router.push({ path: 'basecontent'}) this.$router.push({ path: "basecontent" });
this.btnShow= false this.btnShow = false;
this.businessName= '' this.businessName = "";
}, },
async getList(){ async getList() {
await axios.get('http://192.168.0.98:8090/inter/statistic/busList',{params: {siteid: 1}}).then((res)=>{ await axios
if(res && res.status==200){ .get("http://192.168.0.98:8090/inter/statistic/busList", {
res.data.data.forEach(item=>{ params: { siteid: 1 },
this.dataList.push(item.name)
}) })
.then((res) => {
if (res && res.status == 200) {
res.data.data.forEach((item) => {
this.dataList.push(item.name);
});
} }
}) });
}, },
onSearch: _.debounce(function(val){ onSearch: _.debounce(function (val) {
this.dataSource= [] this.dataSource = [];
this.dataList.forEach(item=>{ this.dataList.forEach((item) => {
if(item.indexOf(val) !== -1){ if (item.indexOf(val) !== -1) {
this.dataSource.push(item) this.dataSource.push(item);
} }
}) });
}, 1000), }, 1000),
onSelect(val){ onSelect(val) {
this.businessName= val this.businessName = val;
} },
} },
} };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@headerH: 4.5rem; @headerH: 4.5rem;
.Container { .Container {
height: 100% !important; height: 100% !important;
// background: #fac; // background: #fac;
background: #f5f5f5; background: #f5f5f5;
...@@ -141,29 +155,29 @@ ...@@ -141,29 +155,29 @@
margin-left: 0.7rem !important; margin-left: 0.7rem !important;
} }
} }
/deep/.ant-tabs-bar{ /deep/.ant-tabs-bar {
margin: 0; margin: 0;
} }
} }
.first_card{ .first_card {
background: #FFF; background: #fff;
margin-bottom: .9375rem; margin-bottom: 0.9375rem;
} }
.breadMenu{ .breadMenu {
height: 2.8125rem; height: 2.8125rem;
line-height: 2.8125rem; line-height: 2.8125rem;
padding: 0 5rem; padding: 0 5rem;
border-bottom: 1px solid rgba(226, 226, 226, 1); border-bottom: 1px solid rgba(226, 226, 226, 1);
} }
.searchBox{ .searchBox {
height: 6.25rem; height: 6.25rem;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.content_view{ .content_view {
padding: 0 5rem; padding: 0 5rem;
} }
</style> </style>
\ No newline at end of file
<template> <template>
<div class="actuary w-full h-auto"> <div class="actuary w-full h-auto">
<Start class="start"/> <Start class="start" />
<div class="act_cont"> <div class="act_cont">
<div class="act_tit"> <div class="act_tit">
<h1>智慧政务数据精算</h1> <h1>智慧政务数据精算</h1>
<p> <p class="text-center">
运用以人工智能为代表的新技术,驱动政务服务模式创新,为人民提供更加智慧化、人性化的政务服务,实现互联网与政务服务深度融合,大幅提升政务服务智慧化水平,让政府服务更聪明,让企业和市民办事更方便、更快捷、更有效率。 运用以人工智能为代表的新技术,驱动政务服务模式创新,为人民提供更加智慧化、人性化的政务服务,实现互联网与政务服务深度融合,大幅提升政务服务智慧化水平,让政府服务更聪明,让企业和市民办事更方便、更快捷、更有效率。
</p> </p>
</div> </div>
<div class="over_act_mod"> <div class="over_act_mod">
<div class="act_mod" ref="mode"> <div class="act_mod" ref="mode">
<div class="act_mod_item" v-for="(item,index) of menuPermission" <div
class="act_mod_item"
v-for="(item, index) of menuPermission"
:key="item.id" :key="item.id"
@click="handleJump(item.url)"
@mouseover="hoverItem(index)" @mouseover="hoverItem(index)"
@mouseleave="hoverleave(index)" @mouseleave="hoverleave(index)"
:style="{background: `url(${require('@/assets/images/dataActuary/'+(index+1)+'.png')}) no-repeat`}"> :style="{
<div class="actitem_tit"> background: `url(${require('@/assets/images/dataActuary/' +
{{item.name}} (index + 1) +
</div> '.png')}) no-repeat`,
}"
>
<div class="actitem_tit">{{ item.name }}</div>
<div class="actitem_p"> <div class="actitem_p">
{{item.hover?item.remark:'Business data analysis'}} {{ item.hover ? item.remark : "Business data analysis" }}
</div>
<div
class="actitem_btn cursor-pointer"
v-show="item.hover"
@click="handleJump(item.url)"
>
查看详情
</div> </div>
</div> </div>
</div> </div>
...@@ -31,8 +42,9 @@ ...@@ -31,8 +42,9 @@
<script> <script>
import menu from "@/mixins/menu"; import menu from "@/mixins/menu";
import Start from "./ParticleWavy.vue";
import { mapState } from "vuex";
import Storage from "@/utils/js/Storage"; import Storage from "@/utils/js/Storage";
import Start from "./demo2"
export default { export default {
mixins: [menu], mixins: [menu],
data() { data() {
...@@ -41,8 +53,12 @@ export default { ...@@ -41,8 +53,12 @@ export default {
menuPermission: [], menuPermission: [],
}; };
}, },
components:{ components: {
Start Start,
},
computed: {
...mapState("user", ["userData", "token"]),
}, },
created() { created() {
...@@ -52,30 +68,45 @@ export default { ...@@ -52,30 +68,45 @@ export default {
}, },
methods: { methods: {
hoverItem(index){ hoverItem(index) {
this.menuPermission[index].hover = true this.menuPermission[index].hover = true;
this.$refs.mode.style.transition="all 1s ease 0s"; this.$refs.mode.style.transition = "all 1s ease 0s";
// 如果大于6就要往前移动 // 如果大于6就要往前移动
if(index>5){ let listlength = this.menuPermission.length;
let num = index-5 if (listlength > 6) {
this.$refs.mode.style.transform="translateX(-"+num*190+"px)"; if (listlength % 2 == 1) {
this.$forceUpdate() this.$refs.mode.style.paddingLeft = "190px";
} else {
this.$refs.mode.style.paddingLeft = "380px";
}
}
if (index > 5) {
let num = index - 5;
this.$refs.mode.style.transform = "translateX(-" + num * 190 + "px)";
} }
this.$forceUpdate();
}, },
hoverleave(index){ hoverleave(index) {
this.$refs.mode.style.transform="translate(0, 0)"; this.$refs.mode.style.transform = "translate(0, 0)";
this.$refs.mode.style.transition="all .5s ease 0s"; this.$refs.mode.style.paddingLeft = "0px";
this.menuPermission[index].hover = false // this.$refs.mode.style.paddingRight = "0px";
this.$forceUpdate() this.$refs.mode.style.transition = "all .5s ease 0s";
this.menuPermission[index].hover = false;
this.$forceUpdate();
}, },
// 跳转 // 跳转
handleJump(url) { handleJump(url) {
if (url.includes("http") || url.includes("https")) {
let siteid = Storage.get(2, "siteId") || 0;
location.href = `${url}?token=${this.token}&siteid=${siteid}`;
} else {
this.$router.push(url); this.$router.push(url);
}
}, },
// 获取子菜单权限 // 获取子菜单权限
getChildrenPermission() { getChildrenPermission() {
let { menuList } = Storage.get(2, "userInfo"); let { menuList } = this.userData;
let actuary = menuList.filter((v) => v.name === "数据精算"); let actuary = menuList.filter((v) => v.name === "数据精算");
if (actuary.length) { if (actuary.length) {
let arr = actuary let arr = actuary
...@@ -87,10 +118,10 @@ export default { ...@@ -87,10 +118,10 @@ export default {
} }
}) })
.flat(); .flat();
arr.forEach(item=>{ arr.forEach((item) => {
item.hover = false item.hover = false;
}) });
this.menuPermission = arr this.menuPermission = arr;
} }
}, },
}, },
...@@ -98,8 +129,7 @@ export default { ...@@ -98,8 +129,7 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@headerH: 4.5rem; @keyframes startopen {
@keyframes startopen{
0% { 0% {
width: 170px; width: 170px;
} }
...@@ -107,7 +137,7 @@ export default { ...@@ -107,7 +137,7 @@ export default {
width: 551px; width: 551px;
} }
} }
@keyframes leaveopen{ @keyframes leaveopen {
0% { 0% {
width: 551px; width: 551px;
background-size: 100% 100%; background-size: 100% 100%;
...@@ -117,7 +147,7 @@ export default { ...@@ -117,7 +147,7 @@ export default {
width: 170px; width: 170px;
} }
} }
.start{ .start {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
z-index: 0; z-index: 0;
...@@ -126,7 +156,6 @@ export default { ...@@ -126,7 +156,6 @@ export default {
.actuary { .actuary {
background: url("~@/assets/images/dataActuary/bg.png") center no-repeat; background: url("~@/assets/images/dataActuary/bg.png") center no-repeat;
background-size: cover; background-size: cover;
padding-top: @headerH;
.act_cont { .act_cont {
margin: 120px auto; margin: 120px auto;
...@@ -143,100 +172,117 @@ export default { ...@@ -143,100 +172,117 @@ export default {
color: #ffffff; color: #ffffff;
font-size: 53px; font-size: 53px;
font-family: FZZhengHeiS-EB-GB; font-family: FZZhengHeiS-EB-GB;
color: #FFFFFF; color: #ffffff;
line-height: 64px; line-height: 64px;
letter-spacing: 6px; letter-spacing: 6px;
background: linear-gradient(0deg, #D2F8FF 0%, #FFFFFF 88.37890625%); background: linear-gradient(0deg, #d2f8ff 0%, #ffffff 88.37890625%);
-webkit-background-clip: text; background-clip: text;
-webkit-text-fill-color: transparent; -webkit-text-fill-color: transparent;
} }
p { p {
padding-top: 20px; padding-top: 20px;
text-align: left;
font-size: 22px; font-size: 22px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 500; font-weight: 500;
color: #FFFFFF; color: #ffffff;
line-height: 34px; line-height: 34px;
} }
} }
.over_act_mod{ .over_act_mod {
width: 1520px; width: 1520px;
overflow: hidden; overflow: hidden;
margin: 50px auto 0; margin: 50px auto 0;
} }
.act_mod { .act_mod {
display: flex; display: flex;
justify-content: space-between; // justify-content: space-between;
justify-content: center;
transition: all 1s ease 0s; transition: all 1s ease 0s;
.act_mod_item:hover{ .act_mod_item:hover {
// animation: startopen 1s normal 1 forwards; // animation: startopen 1s normal 1 forwards;
transition: all 1s ease 0s; transition: all 1s ease 0s;
overflow: hidden; overflow: hidden;
flex-shrink: 0; flex-shrink: 0;
width: 551px; width: 551px;
height: 450px; height: 450px;
background: url('~@/assets/images/dataActuary/bg-open.png') center no-repeat !important; background: url("~@/assets/images/dataActuary/bg-open.png") center
no-repeat !important;
background-size: 100% 100%; background-size: 100% 100%;
border-radius: 12px; border-radius: 12px;
box-sizing: border-box; box-sizing: border-box;
padding: 90px 50px; padding: 90px 50px;
.actitem_tit{ .actitem_tit {
width: 350px; width: 350px;
font-size: 31px; font-size: 31px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: bold; font-weight: bold;
color: #FFFFFF; color: #ffffff;
line-height: 59px; padding: 0;
margin-bottom: 20px; margin-bottom: 20px;
} }
.actitem_tit::before{ .actitem_tit::before {
content: none; content: none;
} }
.actitem_p{ .actitem_p {
width: 350px; width: 350px;
font-size: 16px; font-size: 16px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
line-height: 28px; line-height: 28px;
padding: 0;
}
.actitem_btn {
margin-top: 20px;
width: 98px;
height: 36px;
background: #ffffff;
border-radius: 8px;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 500;
color: #0857e8;
line-height: 28px;
display: flex;
justify-content: center;
align-items: center;
} }
} }
.act_mod_item{ .act_mod_item {
// animation: leaveopen .5s normal 1 forwards; // animation: leaveopen .5s normal 1 forwards;
transition: all .5s ease 0s; transition: all 0.5s ease 0s;
flex-shrink: 0; flex-shrink: 0;
width: 170px; width: 170px;
height: 450px; height: 450px;
border-radius: 12px; border-radius: 12px;
margin:0 10px; margin: 0 10px;
.actitem_p{ .actitem_p {
padding: 0 10px; padding: 0 10px;
font-size: 12px; font-size: 12px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #0857E8; color: #0857e8;
line-height: 38px; line-height: 38px;
opacity: 0.7; opacity: 0.7;
} }
.actitem_tit{ .actitem_tit {
font-size: 20px; font-size: 20px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: bold; font-weight: bold;
color: #0857E8; color: #0857e8;
line-height: 38px; line-height: 38px;
padding:40px 10px 8px; padding: 40px 10px 8px;
position: relative; position: relative;
} }
.actitem_tit::before{ .actitem_tit::before {
content: ""; content: "";
position: absolute; position: absolute;
left: 10px; left: 10px;
bottom: 0; bottom: 0;
width: 30px; width: 30px;
height: 2px; height: 2px;
background: linear-gradient(to bottom right, #0857E8, #fff); background: linear-gradient(to bottom right, #0857e8, #fff);
} }
} }
} }
......
...@@ -6,14 +6,33 @@ ...@@ -6,14 +6,33 @@
<Breadcrumb /> <Breadcrumb />
</div> </div>
<div class="searchBox"> <div class="searchBox">
<a-select show-search placeholder="请输入群众名称搜索" style="width: 35.625rem" <a-space>
:default-active-first-option="false" :show-arrow="false" :filter-option="false" allowClear <a-select
:not-found-content="null" :options="peopleArr" @search="peopelListFn" show-search
@change="handleChange"></a-select> placeholder="请输入群众名称搜索"
style="width: 35.625rem"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
allowClear
:not-found-content="null"
:options="peopleArr"
@search="peopelListFn"
@change="handleChange"
></a-select>
<!-- <a-input v-model="peopleName" placeholder="请输入群众名称搜索" style="width: 35.625rem"></a-input> --> <!-- <a-input v-model="peopleName" placeholder="请输入群众名称搜索" style="width: 35.625rem"></a-input> -->
<a-button type="primary" class="addclass" v-if="!btnShow" @click="startAnalysis()">开始分析</a-button> <a-button
<a-button type="primary" class="addclass" v-else @click="backBase()">返回</a-button> type="primary"
class="addclass"
v-if="!btnShow"
@click="startAnalysis()"
>开始分析</a-button
>
<a-button type="primary" class="addclass" v-else @click="backBase()"
>返回</a-button
>
</a-space>
</div> </div>
</div> </div>
<div class="content_view"> <div class="content_view">
...@@ -25,54 +44,57 @@ ...@@ -25,54 +44,57 @@
<script> <script>
import Breadcrumb from "./breadcrumb/index.vue"; import Breadcrumb from "./breadcrumb/index.vue";
import { peopelList } from '@/api/userPortrait' import { peopelList } from "@/api/userPortrait";
export default { export default {
components: { components: {
Breadcrumb Breadcrumb,
}, },
data() { data() {
return { return {
// 搜索框 // 搜索框
peopleId: '', peopleId: "",
peopleArr: [], peopleArr: [],
btnShow: false, btnShow: false,
} };
}, },
methods: { methods: {
//输入框回显 //输入框回显
peopelListFn(val) { peopelListFn(val) {
this.peopleArr = [] this.peopleArr = [];
peopelList({ siteid: localStorage.getItem('siteId'), name: val }).then(res => { peopelList({ siteid: localStorage.getItem("siteId"), name: val }).then(
(res) => {
if (res.code == 1) { if (res.code == 1) {
res.data.forEach(r => { res.data.forEach((r) => {
this.peopleArr.push({ this.peopleArr.push({
value: r.id, value: r.id,
label: r.idcard_Name + '    ' + r.idcard_IDCardNo, label: r.idcard_Name + "    " + r.idcard_IDCardNo,
}); });
}); });
} }
}) }
);
}, },
handleChange(val) { handleChange(val) {
this.peopleId = val; this.peopleId = val;
}, },
startAnalysis() { startAnalysis() {
if (this.peopleId) { if (this.peopleId) {
this.$router.push({ path: 'portrayalAnalysis', query: { peopleid: this.peopleId } }) this.$router.push({
this.btnShow = true path: "portrayalAnalysis",
query: { peopleid: this.peopleId },
});
this.btnShow = true;
} else { } else {
this.$message.warning('请选择群众后搜索') this.$message.warning("请选择群众后搜索");
} }
}, },
backBase() { backBase() {
this.peopleArr = [] this.peopleArr = [];
this.$router.push({ path: 'portrayalBase' }) this.$router.push({ path: "portrayalBase" });
this.btnShow = false this.btnShow = false;
}, },
} },
} };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
...@@ -99,15 +121,21 @@ export default { ...@@ -99,15 +121,21 @@ export default {
width: 100%; width: 100%;
height: @headerH; height: @headerH;
background: rgb(59, 135, 255); background: rgb(59, 135, 255);
background: -moz-linear-gradient(174deg, background: -moz-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%, rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%); rgba(108, 53, 247, 1) 85%
background: -webkit-linear-gradient(174deg, );
background: -webkit-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%, rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%); rgba(108, 53, 247, 1) 85%
background: linear-gradient(174deg, );
background: linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%, rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%); rgba(108, 53, 247, 1) 85%
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff", endColorstr="#6c35f7", GradientType=1); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff", endColorstr="#6c35f7", GradientType=1);
} }
...@@ -120,7 +148,7 @@ export default { ...@@ -120,7 +148,7 @@ export default {
/deep/.ant-tabs-tab { /deep/.ant-tabs-tab {
font-size: 14px !important; font-size: 14px !important;
&+.ant-tabs-tab { & + .ant-tabs-tab {
margin: 0 !important; margin: 0 !important;
margin-left: 0.7rem !important; margin-left: 0.7rem !important;
} }
...@@ -132,8 +160,8 @@ export default { ...@@ -132,8 +160,8 @@ export default {
} }
.first_card { .first_card {
background: #FFF; background: #fff;
margin-bottom: .9375rem; margin-bottom: 0.9375rem;
} }
.breadMenu { .breadMenu {
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -182,8 +181,8 @@ export default { ...@@ -182,8 +181,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="loading" :loading="loading"
:scroll="{ :scroll="{
x: 1000,
y: 490, y: 490,
}" }"
:row-selection="{ :row-selection="{
...@@ -195,8 +195,8 @@ export default { ...@@ -195,8 +195,8 @@ export default {
alarmTimeEnd: this.searchForm.time[1], alarmTimeEnd: this.searchForm.time[1],
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -187,8 +186,8 @@ export default { ...@@ -187,8 +186,8 @@ export default {
this.total = total; this.total = total;
this.tableData = data; this.tableData = data;
let res = await getCountImpossible({ ...this.searchForm }); let res = await getCountImpossible({ ...this.searchForm });
if (res.data.code == 1) { if (res.code == 1) {
let { reply_count, count } = res.data.data; let { reply_count, count } = res.data;
this.$emit("update", { this.$emit("update", {
total: count, total: count,
reply_count: reply_count, reply_count: reply_count,
...@@ -209,8 +208,8 @@ export default { ...@@ -209,8 +208,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
...@@ -312,7 +311,7 @@ export default { ...@@ -312,7 +311,7 @@ export default {
getImpossibleInfo({ getImpossibleInfo({
id: id, id: id,
}).then((res) => { }).then((res) => {
const { code, data } = res.data; const { code, data } = res;
if (code == 1) { if (code == 1) {
this.$refs.FormDetails.fromData = data; this.$refs.FormDetails.fromData = data;
this.visible = true; this.visible = true;
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="loading" :loading="loading"
:scroll="{ :scroll="{
x: 1000,
y: 490, y: 490,
}" }"
:row-selection="{ :row-selection="{
...@@ -242,9 +242,9 @@ export default { ...@@ -242,9 +242,9 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total, picturesCount, trial, videosCount, designer } = let { data, total, picturesCount, trial, videosCount, designer } =
res.data.data; res.data;
list = data; list = data;
listTotal = total; listTotal = total;
picturesCount_total = picturesCount; picturesCount_total = picturesCount;
......
...@@ -105,8 +105,8 @@ export default { ...@@ -105,8 +105,8 @@ export default {
this.loading = true; this.loading = true;
this.designType = type; this.designType = type;
let res = await picInfoList({ customerId }); let res = await picInfoList({ customerId });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.designList = data.filter((v) => v.designType == type) || []; this.designList = data.filter((v) => v.designType == type) || [];
} }
this.loading = false; this.loading = false;
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -277,8 +276,8 @@ export default { ...@@ -277,8 +276,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data.data; let { data, total } = res.data.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
...@@ -385,8 +384,8 @@ export default { ...@@ -385,8 +384,8 @@ export default {
// 详情 // 详情
async checkInfo(id) { async checkInfo(id) {
let res = await getEvaData({ id }); let res = await getEvaData({ id });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.title = "评价详情"; this.title = "评价详情";
this.detailsInfo = data; this.detailsInfo = data;
this.detailsVisible = true; this.detailsVisible = true;
...@@ -407,7 +406,7 @@ export default { ...@@ -407,7 +406,7 @@ export default {
let res = await getEvaDetil({ let res = await getEvaDetil({
id, id,
}); });
let { code, msg } = res.data; let { code, msg } = res;
if (code == 1) { if (code == 1) {
_this.$message.success(msg); _this.$message.success(msg);
_this.getEvaList(); _this.getEvaList();
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -274,8 +273,8 @@ export default { ...@@ -274,8 +273,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data.data; let { data, total } = res.data.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
...@@ -382,8 +381,8 @@ export default { ...@@ -382,8 +381,8 @@ export default {
// 详情 // 详情
async checkInfo(id) { async checkInfo(id) {
let res = await getQueEvaData({ id }); let res = await getQueEvaData({ id });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.detailsInfo = data; this.detailsInfo = data;
this.detailsVisible = true; this.detailsVisible = true;
} }
...@@ -403,7 +402,7 @@ export default { ...@@ -403,7 +402,7 @@ export default {
let res = await getEvaDetil({ let res = await getEvaDetil({
id, id,
}); });
let { code, msg } = res.data; let { code, msg } = res;
if (code == 1) { if (code == 1) {
_this.$message.success(msg); _this.$message.success(msg);
_this.getEvaList(); _this.getEvaList();
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="loading" :loading="loading"
:scroll="{ :scroll="{
x: 1500,
y: 490, y: 490,
}" }"
:row-selection="{ :row-selection="{
...@@ -274,8 +274,8 @@ export default { ...@@ -274,8 +274,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data.data; let { data, total } = res.data.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
...@@ -382,8 +382,8 @@ export default { ...@@ -382,8 +382,8 @@ export default {
// 详情 // 详情
async checkInfo(id) { async checkInfo(id) {
let res = await getEvaData({ id }); let res = await getEvaData({ id });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.title = "评价详情"; this.title = "评价详情";
this.detailsInfo = data; this.detailsInfo = data;
this.detailsVisible = true; this.detailsVisible = true;
...@@ -404,7 +404,7 @@ export default { ...@@ -404,7 +404,7 @@ export default {
let res = await getEvaDetil({ let res = await getEvaDetil({
id, id,
}); });
let { code, msg } = res.data; let { code, msg } = res;
if (code == 1) { if (code == 1) {
_this.$message.success(msg); _this.$message.success(msg);
_this.getEvaList(); _this.getEvaList();
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -224,8 +223,8 @@ export default { ...@@ -224,8 +223,8 @@ export default {
pramse.materialName = `%${this.searchForm.searchName}%`; pramse.materialName = `%${this.searchForm.searchName}%`;
} }
let res = await getPrintList(pramse); let res = await getPrintList(pramse);
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
this.total = total; this.total = total;
this.tableData = data; this.tableData = data;
this.$emit("update", { total, time: this.searchForm.time }); this.$emit("update", { total, time: this.searchForm.time });
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -293,8 +292,8 @@ export default { ...@@ -293,8 +292,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
...@@ -385,8 +384,8 @@ export default { ...@@ -385,8 +384,8 @@ export default {
// 详情 // 详情
async checkInfo({ id }) { async checkInfo({ id }) {
let res = await getOrderinfo({ id }); let res = await getOrderinfo({ id });
if (res.data.code == 1) { if (res.code == 1) {
this.detailsInfo = res.data.data; this.detailsInfo = res.data;
this.visible = true; this.visible = true;
} }
}, },
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="loading" :loading="loading"
:scroll="{ :scroll="{
x: 1000,
y: 490, y: 490,
}" }"
:row-selection="{ :row-selection="{
...@@ -210,8 +210,8 @@ export default { ...@@ -210,8 +210,8 @@ export default {
search: this.searchForm.search, search: this.searchForm.search,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="loading" :loading="loading"
:scroll="{ :scroll="{
x: 1000,
y: 490, y: 490,
}" }"
:row-selection="{ :row-selection="{
...@@ -136,8 +136,8 @@ export default { ...@@ -136,8 +136,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -259,8 +258,8 @@ export default { ...@@ -259,8 +258,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
...@@ -345,8 +344,8 @@ export default { ...@@ -345,8 +344,8 @@ export default {
// 查看信息 // 查看信息
checkInfo(id) { checkInfo(id) {
letterInfo({ id }).then((res) => { letterInfo({ id }).then((res) => {
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.$refs.FormDetails.fromData = data; this.$refs.FormDetails.fromData = data;
this.visible = true; this.visible = true;
} }
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -242,8 +241,8 @@ export default { ...@@ -242,8 +241,8 @@ export default {
this.total = total; this.total = total;
this.tableData = data; this.tableData = data;
let res = await getWLLZCount({ ...this.searchForm, siteid: this.siteId }); let res = await getWLLZCount({ ...this.searchForm, siteid: this.siteId });
if (res.data.code == 1) { if (res.code == 1) {
let { all_count, hf_count } = res.data.data; let { all_count, hf_count } = res.data;
this.$emit("update", { this.$emit("update", {
JYCount: all_count, JYCount: all_count,
HFCount: hf_count, HFCount: hf_count,
...@@ -264,8 +263,8 @@ export default { ...@@ -264,8 +263,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
...@@ -381,7 +380,7 @@ export default { ...@@ -381,7 +380,7 @@ export default {
getWLLZInfo({ getWLLZInfo({
id: id, id: id,
}).then((res) => { }).then((res) => {
const { code, data } = res.data; const { code, data } = res;
if (code == 1) { if (code == 1) {
this.$refs.FormDetails.fromData = data; this.$refs.FormDetails.fromData = data;
this.visible = true; this.visible = true;
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="loading" :loading="loading"
:scroll="{ :scroll="{
x: 1000,
y: 490, y: 490,
}" }"
:row-selection="{ :row-selection="{
...@@ -193,8 +193,8 @@ export default { ...@@ -193,8 +193,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="loading" :loading="loading"
:scroll="{ :scroll="{
x: 1000,
y: 490, y: 490,
}" }"
:row-selection="{ :row-selection="{
...@@ -162,8 +162,8 @@ export default { ...@@ -162,8 +162,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -202,8 +201,8 @@ export default { ...@@ -202,8 +201,8 @@ export default {
...this.searchForm, ...this.searchForm,
...searchForm, ...searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -162,7 +161,7 @@ export default { ...@@ -162,7 +161,7 @@ export default {
const columns = [ const columns = [
{ {
title: "序号", title: "序号",
width: 100, width: 50,
align: "center", align: "center",
fixed: "left", fixed: "left",
customRender: (text, record, index) => { customRender: (text, record, index) => {
...@@ -172,7 +171,8 @@ export default { ...@@ -172,7 +171,8 @@ export default {
{ {
title: "排队编号", title: "排队编号",
fixed: "left", fixed: "left",
width: 150, align: "center",
width: 100,
dataIndex: "flownum", dataIndex: "flownum",
}, },
{ {
...@@ -223,10 +223,10 @@ export default { ...@@ -223,10 +223,10 @@ export default {
}, },
{ {
title: "办理窗口", title: "办理窗口",
width: 150, width: 200,
dataIndex: "window_name", dataIndex: "window_name",
customRender: (text) => { customRender: (text, record) => {
return text || "--"; return text ? `${text}-${record.window_fromnum}` : "--";
}, },
}, },
{ {
...@@ -266,7 +266,7 @@ export default { ...@@ -266,7 +266,7 @@ export default {
width: 160, width: 160,
dataIndex: "wait_time", dataIndex: "wait_time",
customRender: (text) => { customRender: (text) => {
return text.wait_time || "--"; return text || "--";
}, },
}, },
...@@ -354,8 +354,8 @@ export default { ...@@ -354,8 +354,8 @@ export default {
siteId: this.siteId, siteId: this.siteId,
...this.searchForm, ...this.searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
this.total = total; this.total = total;
this.tableData = data; this.tableData = data;
this.$emit("update", { total, time: this.searchForm.time }); this.$emit("update", { total, time: this.searchForm.time });
...@@ -377,8 +377,8 @@ export default { ...@@ -377,8 +377,8 @@ export default {
peopleid: row.peopleid, peopleid: row.peopleid,
time: this.searchForm.time, time: this.searchForm.time,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.userInfo = { ...row, ...data }; this.userInfo = { ...row, ...data };
} }
this.userInfoVisible = true; this.userInfoVisible = true;
...@@ -390,8 +390,8 @@ export default { ...@@ -390,8 +390,8 @@ export default {
businessid: row.businessid, businessid: row.businessid,
time: this.searchForm.time, time: this.searchForm.time,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
let { business } = row; let { business } = row;
this.businessName = business; this.businessName = business;
this.businessInfo = data; this.businessInfo = data;
...@@ -408,8 +408,8 @@ export default { ...@@ -408,8 +408,8 @@ export default {
let result = await getWorkerInfo({ let result = await getWorkerInfo({
id, id,
}); });
let { data } = res.data; let { data } = res;
this.workerInfo = { ...data, ...result.data.data }; this.workerInfo = { ...data, ...result.data };
this.workerInfoVisible = true; this.workerInfoVisible = true;
}, },
...@@ -418,8 +418,8 @@ export default { ...@@ -418,8 +418,8 @@ export default {
let res = await getQueueInfo({ let res = await getQueueInfo({
id, id,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.detailsInfo = data; this.detailsInfo = data;
this.detailsVisible = true; this.detailsVisible = true;
} }
...@@ -487,8 +487,8 @@ export default { ...@@ -487,8 +487,8 @@ export default {
size: size, size: size,
...this.searchForm, ...this.searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
this.excelData = this.excelData.concat(data || []); this.excelData = this.excelData.concat(data || []);
// app.vue loading // app.vue loading
this.$app.progressFile.show = true; this.$app.progressFile.show = true;
......
...@@ -217,14 +217,28 @@ export default { ...@@ -217,14 +217,28 @@ export default {
}, },
// 转换时间为秒 // 转换时间为秒
timeToSec(time) { timeToSec(time) {
if (time !== null && time !== undefined) { if (time) {
var s = ""; let s = "";
let min,
sec = "";
if (time.includes("分钟") && time.includes("")) { if (time.includes("分钟") && time.includes("")) {
var min = time.split("分钟")[0]; min = time.split("分钟")[0];
var sec = time.split("分钟")[1].split("")[0]; sec = time.split("分钟")[1].split("")[0];
s = Number(min * 60) + Number(sec); s = Number(min * 60) + Number(sec);
return s; return s;
} else if (time.includes("分钟")) {
min = time.split("分钟")[0];
s = Number(min * 60);
return s;
} else if (time.includes("")) {
sec = time.split("")[0];
s = Number(sec);
return s;
} else {
return 0;
} }
} else {
return 0;
} }
}, },
}, },
......
<template> <template>
<div class="h-full w-full flex flex-col"> <div class="h-full w-full flex flex-col">
<div class="total-info"> <div class="total-info">
<span class="mr-[30px]">取号次数:{{ total ?? 0 }}</span> <span
v-if="$route.path == '/home/dataManagement/queueCall/queueRecord'"
class="mr-[30px]"
>取号次数:{{ total ?? 0 }}</span
>
<span
v-if="$route.path == '/home/dataManagement/queueCall/callRecord'"
class="mr-[30px]"
>呼叫次数:{{ total ?? 0 }}</span
>
<span>统计时间段:{{ time[0] }} - {{ time[1] }}</span> <span>统计时间段:{{ time[0] }} - {{ time[1] }}</span>
</div> </div>
<div class="reportforms-out-box"> <div class="reportforms-out-box">
......
<template> <template>
<div class="queue"> <div class="queue">
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
...@@ -156,7 +155,7 @@ export default { ...@@ -156,7 +155,7 @@ export default {
const columns = [ const columns = [
{ {
title: "序号", title: "序号",
width: 100, width: 50,
align: "center", align: "center",
fixed: "left", fixed: "left",
customRender: (text, record, index) => { customRender: (text, record, index) => {
...@@ -166,7 +165,8 @@ export default { ...@@ -166,7 +165,8 @@ export default {
{ {
title: "排队编号", title: "排队编号",
fixed: "left", fixed: "left",
width: 150, align: "center",
width: 100,
dataIndex: "flownum", dataIndex: "flownum",
}, },
{ {
...@@ -216,10 +216,10 @@ export default { ...@@ -216,10 +216,10 @@ export default {
}, },
{ {
title: "办理窗口", title: "办理窗口",
width: 150, width: 200,
dataIndex: "window_name", dataIndex: "window_name",
customRender: (text) => { customRender: (text, record) => {
return text || "--"; return text ? `${text}-${record.window_fromnum}` : "--";
}, },
}, },
{ {
...@@ -347,8 +347,8 @@ export default { ...@@ -347,8 +347,8 @@ export default {
siteId: this.siteId, siteId: this.siteId,
...this.searchForm, ...this.searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
this.total = total; this.total = total;
this.tableData = data; this.tableData = data;
this.$emit("update", { total, time: this.searchForm.time }); this.$emit("update", { total, time: this.searchForm.time });
...@@ -370,8 +370,8 @@ export default { ...@@ -370,8 +370,8 @@ export default {
peopleid: row.peopleid, peopleid: row.peopleid,
time: this.searchForm.time, time: this.searchForm.time,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.userInfo = { ...row, ...data }; this.userInfo = { ...row, ...data };
} }
this.userInfoVisible = true; this.userInfoVisible = true;
...@@ -383,8 +383,8 @@ export default { ...@@ -383,8 +383,8 @@ export default {
businessid: row.businessid, businessid: row.businessid,
time: this.searchForm.time, time: this.searchForm.time,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
let { business } = row; let { business } = row;
this.businessName = business; this.businessName = business;
this.businessInfo = data; this.businessInfo = data;
...@@ -401,8 +401,8 @@ export default { ...@@ -401,8 +401,8 @@ export default {
let result = await getWorkerInfo({ let result = await getWorkerInfo({
id, id,
}); });
let { data } = res.data; let { data } = res;
this.workerInfo = { ...data, ...result.data.data }; this.workerInfo = { ...data, ...result.data };
this.workerInfoVisible = true; this.workerInfoVisible = true;
}, },
...@@ -411,8 +411,8 @@ export default { ...@@ -411,8 +411,8 @@ export default {
let res = await getQueueInfo({ let res = await getQueueInfo({
id, id,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data; let { data } = res;
this.detailsInfo = data; this.detailsInfo = data;
this.detailsVisible = true; this.detailsVisible = true;
} }
...@@ -481,8 +481,8 @@ export default { ...@@ -481,8 +481,8 @@ export default {
size: size, size: size,
...this.searchForm, ...this.searchForm,
}); });
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
this.excelData = this.excelData.concat(data || []); this.excelData = this.excelData.concat(data || []);
// app.vue loading // app.vue loading
this.$app.progressFile.show = true; this.$app.progressFile.show = true;
......
<template> <template>
<div> <div>
<a-table <a-table
style="width: 1500px"
size="middle" size="middle"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="loading" :loading="loading"
:scroll="{ :scroll="{
x: 1000,
y: 490, y: 490,
}" }"
:row-selection="{ :row-selection="{
...@@ -187,8 +187,8 @@ export default { ...@@ -187,8 +187,8 @@ export default {
pramse.materialName = `%${this.searchForm.searchName}%`; pramse.materialName = `%${this.searchForm.searchName}%`;
} }
let res = await getBillList(pramse); let res = await getBillList(pramse);
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
this.total = total; this.total = total;
this.tableData = data; this.tableData = data;
this.$emit("update", { total, time: this.searchForm.time }); this.$emit("update", { total, time: this.searchForm.time });
...@@ -214,8 +214,8 @@ export default { ...@@ -214,8 +214,8 @@ export default {
pramse.materialName = `%${this.searchForm.searchName}%`; pramse.materialName = `%${this.searchForm.searchName}%`;
} }
let res = await getBillList(pramse); let res = await getBillList(pramse);
if (res.data.code == 1) { if (res.code == 1) {
let { data, total } = res.data.data; let { data, total } = res.data;
list = data; list = data;
listTotal = total; listTotal = total;
} }
......
...@@ -20,7 +20,9 @@ ...@@ -20,7 +20,9 @@
<!-- <a-select-option value="5"> 自定义 </a-select-option> --> <!-- <a-select-option value="5"> 自定义 </a-select-option> -->
</a-select> </a-select>
<a-button type="primary" class="addclass" @click="getData">搜索</a-button> <a-button type="primary" class="addclass" @click="getData"
>搜索</a-button
>
</template> </template>
</Head> </Head>
<div class="heat_box" v-if="data"> <div class="heat_box" v-if="data">
...@@ -30,11 +32,14 @@ ...@@ -30,11 +32,14 @@
<i>部门名称</i> <i>部门名称</i>
<b>预约热度</b> <b>预约热度</b>
</li> </li>
<li class="list" v-for="item,index in data.section" :key="index"> <li class="list" v-for="(item, index) in data.section" :key="index">
<span>NO.{{ index+1 }}</span> <span>NO.{{ index + 1 }}</span>
<i>{{item.deptname}}</i> <i>{{ item.deptname }}</i>
<b> <b>
<a-progress :percent="item.count" :show-info="false" status="active" <a-progress
:percent="item.count"
:show-info="false"
status="active"
/></b> /></b>
</li> </li>
</ul> </ul>
...@@ -44,11 +49,14 @@ ...@@ -44,11 +49,14 @@
<i>事项名称</i> <i>事项名称</i>
<b>预约热度</b> <b>预约热度</b>
</li> </li>
<li class="list" v-for="item,index in data.matter" :key="index"> <li class="list" v-for="(item, index) in data.matter" :key="index">
<span>NO.{{ index+1 }}</span> <span>NO.{{ index + 1 }}</span>
<i>{{item.mattername}}</i> <i>{{ item.mattername }}</i>
<b> <b>
<a-progress :percent="item.count" :show-info="false" status="active" <a-progress
:percent="item.count"
:show-info="false"
status="active"
/></b> /></b>
</li> </li>
</ul> </ul>
...@@ -59,36 +67,36 @@ ...@@ -59,36 +67,36 @@
<script> <script>
import Head from "./components/header.vue"; import Head from "./components/header.vue";
import {getOrderRanking} from '@/api/dataAdmin.js' import { getOrderRanking } from "@/api/dataAdmin.js";
export default { export default {
name: "PortalAdminVueHeatRanking", name: "PortalAdminVueHeatRanking",
data() { data() {
return { return {
day:'0', day: "0",
BegindAndEndTime: [], BegindAndEndTime: [],
data:null data: null,
}; };
}, },
components: { components: {
Head, Head,
}, },
watch:{ watch: {
day(val){ day(val) {
if (val != 5) this.BegindAndEndTime = [] if (val != 5) this.BegindAndEndTime = [];
} },
}, },
mounted() { mounted() {
this.getData() this.getData();
}, },
methods: { methods: {
getData(){ getData() {
getOrderRanking({ getOrderRanking({
selected:this.day == 5 ? null : this.day, selected: this.day == 5 ? null : this.day,
time:this.BegindAndEndTime time: this.BegindAndEndTime,
}).then(res=>{ }).then((res) => {
this.data = res.data this.data = res.data;
}) });
}, },
rangePickerChange(val) { rangePickerChange(val) {
console.log(val); console.log(val);
...@@ -99,6 +107,7 @@ export default { ...@@ -99,6 +107,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.HeatRanking-Container { .HeatRanking-Container {
width: 100%;
& > .pm { & > .pm {
.heat_box { .heat_box {
display: flex; display: flex;
......
...@@ -94,6 +94,7 @@ export default { ...@@ -94,6 +94,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
@headerH: 4.5rem; @headerH: 4.5rem;
#dataAnalyse-Container { #dataAnalyse-Container {
width: 100%;
height: 100% !important; height: 100% !important;
background: #eee; background: #eee;
display: flex; display: flex;
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
> >
<!-- 动态组件渲染各自报表搜索 --> <!-- 动态组件渲染各自报表搜索 -->
<component <component
v-if="censusList.length" v-if="censusList.length && curSearchForm"
:is="curSearchForm + '-search'" :is="curSearchForm + '-search'"
></component> ></component>
<div v-else class="flex-1 flex items-center justify-center"> <div v-else class="flex-1 flex items-center justify-center">
...@@ -113,7 +113,18 @@ export default { ...@@ -113,7 +113,18 @@ export default {
let { path } = this.$route; let { path } = this.$route;
let index = path.lastIndexOf("/"); let index = path.lastIndexOf("/");
let str = path.slice(index + 1); let str = path.slice(index + 1);
if (str == "dataManagement") {
return false;
} else {
return str; return str;
}
},
},
watch: {
"$route.path"(newPath) {
if (newPath == "/home/dataManagement") {
this.censusListInterface();
}
}, },
}, },
created() { created() {
...@@ -142,14 +153,14 @@ export default { ...@@ -142,14 +153,14 @@ export default {
// 获取数据分类列表 // 获取数据分类列表
async censusListInterface() { async censusListInterface() {
let res = await censusListInterface({ siteId: this.siteId }); let res = await censusListInterface({ siteId: this.siteId });
if (res.data.code == 1) { if (res.code == 1) {
let { let {
CensusType_1, CensusType_1,
CensusType_2, CensusType_2,
CensusType_3, CensusType_3,
CensusType_4, CensusType_4,
CensusType_5, CensusType_5,
} = res.data.data.data; } = res.data.data;
if (CensusType_1 && CensusType_1.length) if (CensusType_1 && CensusType_1.length)
this.CensusType_1 = CensusType_1.filter((v) => v.status != 0); this.CensusType_1 = CensusType_1.filter((v) => v.status != 0);
if (CensusType_2 && CensusType_2.length) if (CensusType_2 && CensusType_2.length)
...@@ -209,6 +220,7 @@ export default { ...@@ -209,6 +220,7 @@ export default {
margin-bottom: 12px; margin-bottom: 12px;
} }
.out-box { .out-box {
overflow: auto;
border-radius: 8px; border-radius: 8px;
} }
.search-box { .search-box {
...@@ -256,6 +268,9 @@ export default { ...@@ -256,6 +268,9 @@ export default {
padding: 10px; padding: 10px;
border-radius: 8px; border-radius: 8px;
position: relative; position: relative;
.swiper-container {
padding-left: 50px;
}
.swiper-slide { .swiper-slide {
width: 180px !important; width: 180px !important;
height: 100px; height: 100px;
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
</h1> </h1>
<div class="selectOnptions"> <div class="selectOnptions">
<a-select v-model="siteInfo" labelInValue @change="handleChange"> <a-select v-model="siteInfo" labelInValue @change="handleChange">
<a-icon slot="suffixIcon" type="down-circle" />
<a-select-option v-for="v in siteList" :key="v.id" :value="v.id"> <a-select-option v-for="v in siteList" :key="v.id" :value="v.id">
{{ v.siteName }} {{ v.siteName }}
</a-select-option> </a-select-option>
...@@ -45,7 +46,7 @@ ...@@ -45,7 +46,7 @@
<p class="text-[14px]">返回门户</p> <p class="text-[14px]">返回门户</p>
</div> </div>
<div v-if="isHomePage" class="show-time flex flex-col items-end"> <div v-if="isHomePage" class="show-time flex flex-col items-end">
<div class="time mb-1">{{ nowTime }}</div> <div class="time mb-[4px]">{{ nowTime }}</div>
<div class="date">{{ nowDay }} {{ nowWeek }}</div> <div class="date">{{ nowDay }} {{ nowWeek }}</div>
</div> </div>
<div class="line"></div> <div class="line"></div>
...@@ -53,14 +54,14 @@ ...@@ -53,14 +54,14 @@
<a-dropdown> <a-dropdown>
<div class="flex items-center"> <div class="flex items-center">
<div class="userInfo flex flex-col items-center cursor-pointer"> <div class="userInfo flex flex-col items-center cursor-pointer">
<span class="mb-1"> <span class="mb-[4px]">
{{ userData.loginName ? userData.loginName : "--" }} {{ userData.loginName ? userData.loginName : "--" }}
</span> </span>
<span> <span>
{{ userData.realName ? userData.realName : "--" }} {{ userData.realName ? userData.realName : "--" }}
</span> </span>
</div> </div>
<a-icon class="ml-1" type="down" /> <a-icon class="ml-[4px]" type="down" />
</div> </div>
<a-menu slot="overlay"> <a-menu slot="overlay">
<a-menu-item> <a-menu-item>
...@@ -189,6 +190,9 @@ export default { ...@@ -189,6 +190,9 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
@headerHeight: 72px; @headerHeight: 72px;
.route-view {
position: relative;
}
.header { .header {
height: @headerHeight; height: @headerHeight;
padding: 0px 60px; padding: 0px 60px;
...@@ -230,6 +234,8 @@ export default { ...@@ -230,6 +234,8 @@ export default {
:deep(.ant-menu) { :deep(.ant-menu) {
background-color: transparent; background-color: transparent;
border: none; border: none;
flex: 1;
margin-left: 120px;
.ant-menu-item { .ant-menu-item {
font-size: 18px; font-size: 18px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<img class="w-[74px] mb-[20px]" src="@/assets/images/logo.png" /> <img class="w-[74px] mb-[20px]" src="@/assets/images/logo.png" />
<p class="login-text text-[40px] mb-[20px]">欢迎登录!</p> <p class="login-text text-[40px] mb-[20px]">欢迎登录!</p>
<p class="login-text text-[32px] mb-[30px]"> <p class="login-text text-[32px] mb-[30px]">
智慧政务一体化综合管理平台 {{ sysName }}
</p> </p>
<a-form-model <a-form-model
:model="form" :model="form"
...@@ -20,42 +20,70 @@ ...@@ -20,42 +20,70 @@
> >
<a-form-model-item prop="loginName"> <a-form-model-item prop="loginName">
<a-input <a-input
allowClear
placeholder="请输入用户名" placeholder="请输入用户名"
v-model="form.loginName" v-model="form.loginName"
@pressEnter="handleSubmit"
> >
<img slot="prefix" src="@/assets/images/icon-user.png" /> <img slot="prefix" src="@/assets/images/icon-user.png" />
<img
slot="suffix"
v-show="form.loginName"
class="cursor-pointer"
@click="form.loginName = ''"
src="@/assets/images/icon-close.png"
/>
</a-input> </a-input>
</a-form-model-item> </a-form-model-item>
<a-form-model-item prop="password"> <a-form-model-item prop="password">
<a-input-password <a-input
allowClear
placeholder="请输入密码" placeholder="请输入密码"
class="password" :type="iptType"
v-model="form.password" v-model="form.password"
@pressEnter="handleSubmit" @pressEnter="handleSubmit"
> >
<img slot="prefix" src="@/assets/images/icon-pwd.png" /> <img slot="prefix" src="@/assets/images/icon-user.png" />
</a-input-password> <template slot="suffix">
<a-space>
<img
v-show="form.password"
class="cursor-pointer"
@click="form.password = ''"
src="@/assets/images/icon-close.png"
/>
<i
v-if="iptType == 'password'"
class="iconfont icon-hidden cursor-pointer"
@click="iptType = 'text'"
></i>
<i
v-else
class="iconfont icon-show cursor-pointer"
@click="iptType = 'password'"
></i>
</a-space>
</template>
</a-input>
</a-form-model-item> </a-form-model-item>
<a-form-model-item class="code" prop="securityCode"> <a-form-model-item class="code" prop="securityCode">
<a-input <a-input
allowClear
placeholder="请输入验证码" placeholder="请输入验证码"
v-model="form.securityCode" v-model="form.securityCode"
@pressEnter="handleSubmit" @pressEnter="handleSubmit"
> >
<img
slot="suffix"
v-show="form.securityCode"
class="cursor-pointer"
@click="form.securityCode = ''"
src="@/assets/images/icon-close.png"
/>
</a-input> </a-input>
<div class="code-box"> <div class="code-box">
<img :src="imgCode" @click="createCode" /> <img :src="imgCode" @click="createCode" />
</div> </div>
</a-form-model-item> </a-form-model-item>
<a-form-model-item> <a-form-model-item>
<a-button <a-button :loading="loading" class="login-btn" @click="handleSubmit"
:loading="loading"
type="primary"
class="login-btn"
@click="handleSubmit"
>登录</a-button >登录</a-button
> >
</a-form-model-item> </a-form-model-item>
...@@ -74,11 +102,13 @@ import storage from "@/utils/js/Storage"; ...@@ -74,11 +102,13 @@ import storage from "@/utils/js/Storage";
export default { export default {
data() { data() {
return { return {
sysName: process.env.VUE_APP_systemName,
labelCol: { span: 0 }, labelCol: { span: 0 },
wrapperCol: { span: 24 }, wrapperCol: { span: 24 },
api: process.env.VUE_APP_API_BASE_URL, api: process.env.VUE_APP_API_BASE_URL,
loading: false, loading: false,
imgCode: "", imgCode: "",
iptType: "password",
form: { form: {
loginName: "", loginName: "",
password: "", password: "",
...@@ -125,7 +155,7 @@ export default { ...@@ -125,7 +155,7 @@ export default {
loginName: encrypt(this.form.loginName), loginName: encrypt(this.form.loginName),
password: encrypt(this.form.password), password: encrypt(this.form.password),
}); });
let { code, data } = res.data; let { code, data } = res;
if (code == 1) { if (code == 1) {
let { siteList, user, token } = data; let { siteList, user, token } = data;
this.set_token(token); this.set_token(token);
...@@ -182,7 +212,7 @@ export default { ...@@ -182,7 +212,7 @@ export default {
.login { .login {
--pd: 9%; --pd: 9%;
--input-height: 50px; --input-height: 50px;
--input-border-color: #d9d9d9; --input-border-color: rgba(238, 238, 238, 1);
--time: 1s; --time: 1s;
background: url("@/assets/images/login_bg.png"); background: url("@/assets/images/login_bg.png");
background-size: 100% auto; background-size: 100% auto;
...@@ -218,6 +248,10 @@ export default { ...@@ -218,6 +248,10 @@ export default {
background: url("@/assets/images/login_box_bg.png") center; background: url("@/assets/images/login_box_bg.png") center;
background-size: 100% 100%; background-size: 100% 100%;
border-radius: 36px; border-radius: 36px;
.iconfont {
font-size: 18px;
color: #232323;
}
} }
.login-text { .login-text {
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
...@@ -229,9 +263,11 @@ export default { ...@@ -229,9 +263,11 @@ export default {
background: #fff; background: #fff;
border-radius: 8px; border-radius: 8px;
// font-family: Source Han Sans CN; // font-family: Source Han Sans CN;
background: var(--input-border-color);
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
color: #232323; color: #232323;
border-color: var(--input-border-color);
&::placeholder { &::placeholder {
color: #b5b5b5; color: #b5b5b5;
font-weight: normal; font-weight: normal;
...@@ -240,6 +276,19 @@ export default { ...@@ -240,6 +276,19 @@ export default {
background: #ffffff; background: #ffffff;
} }
} }
:deep(.ant-input-affix-wrapper):hover .ant-input:not(.ant-input-disabled) {
&:focus {
border-color: #0857e8;
}
&:hover {
border-color: #0857e8;
}
}
:deep(.has-error) .ant-input-affix-wrapper .ant-input,
:deep(.has-error) .ant-input-affix-wrapper .ant-input:hover {
border-color: #f5222d !important;
}
:deep(.ant-input-clear-icon) { :deep(.ant-input-clear-icon) {
font-size: 16px; font-size: 16px;
} }
......
<template> <template>
<div class="station w-full h-auto"> <div class="station w-full h-auto flex flex-col justify-between">
<!-- 删除常用 --> <!-- 删除常用 -->
<div class="del-box" :class="['del-box', { active: isDel }]"> <div class="del-box" :class="['del-box', { active: isDel }]">
<draggable <draggable
v-model="delList" v-model="delList"
:options="{ :group="{ name: 'item', pull: false }"
group: { name: draName1, pull: false, put: joinDel },
}"
animation="400" animation="400"
delay="20" delay="20"
draggable=".common-item" draggable=".common-item"
class="w-full h-full text-white text-xl flex items-center justify-center" class="w-full h-full text-white text-xl flex items-center justify-center"
@add="handleDelete" @add="changeCollect"
> >
<span class="del-text">{{ placeholder }}</span> <span class="del-text">{{ placeholder }}</span>
</draggable> </draggable>
...@@ -32,27 +30,24 @@ ...@@ -32,27 +30,24 @@
> >
<draggable <draggable
v-model="collectList" v-model="collectList"
:options="{ :group="{ name: 'item', pull: true, put: handleJoin }"
group: { name: draName2, pull: true, put: handleJoin },
}"
animation="400" animation="400"
delay="20" delay="10"
draggable=".common-item" draggable=".common-item"
class="common-list" class="common-list"
dragClass="dragClass" dragClass="dragClass"
@add="addEnd" @add="addEnd"
@end="collectEnd" @start="isDel = true"
@start="delStart" @end="changeCollect"
> >
<div <div
class="common-item w-full flex flex-col items-center cursor-pointer" class="common-item w-full flex flex-col items-center"
v-for="(v, i) in collectList" v-for="(v, i) in collectList"
:key="'' + v.id + i" :key="'' + v.id + i"
@click="openWindow(v)"
> >
<div class="item-logo item-logo1"> <div class="item-logo cursor-pointer" @click="openWindow(v)">
<img <img
class="w-full h-full object-cover" class="w-full h-full object-contain"
:src="api + v.modelIcon" :src="api + v.modelIcon"
/> />
<img <img
...@@ -60,7 +55,9 @@ ...@@ -60,7 +55,9 @@
src="@/assets/images/siteArrange/pic-bottom.png" src="@/assets/images/siteArrange/pic-bottom.png"
/> />
</div> </div>
<div class="text-white mt-[10px] leading-[20px]"> <div
class="text-white mt-[10px] leading-[20px] text-center cursor-default"
>
{{ v.modelName }} {{ v.modelName }}
</div> </div>
</div> </div>
...@@ -79,12 +76,10 @@ ...@@ -79,12 +76,10 @@
<div class="type-title">{{ v.type }}</div> <div class="type-title">{{ v.type }}</div>
<draggable <draggable
v-model="v.list" v-model="v.list"
:options="{ :group="{ name: 'item', pull: 'clone', put: false }"
group: { name: draName3, pull: 'clone', put: false }, :sort="false"
sort: false,
}"
animation="400" animation="400"
delay="20" delay="10"
draggable=".common-item" draggable=".common-item"
class="type-list" class="type-list"
dragClass="dragClass" dragClass="dragClass"
...@@ -92,18 +87,19 @@ ...@@ -92,18 +87,19 @@
@end="isAdd = false" @end="isAdd = false"
> >
<div <div
class="common-item w-[160px] flex flex-col items-center cursor-pointer" class="common-item w-full h-[125px] flex flex-col items-center"
v-for="item in v.list" v-for="item in v.list"
:key="item.id" :key="item.id"
@click="openWindow(item)"
> >
<div class="item-logo"> <div class="item-logo cursor-pointer" @click="openWindow(item)">
<img <img
class="w-full h-full object-cover" class="w-full h-full object-contain"
:src="api + item.modelIcon" :src="api + item.modelIcon"
/> />
</div> </div>
<div class="text-white mt-[10px] leading-[20px]"> <div
class="text-white mt-[10px] leading-[20px] text-center cursor-default"
>
{{ item.modelName }} {{ item.modelName }}
</div> </div>
</div> </div>
...@@ -128,9 +124,6 @@ export default { ...@@ -128,9 +124,6 @@ export default {
siteModelList: [], // 站点编排列表 siteModelList: [], // 站点编排列表
isAdd: false, // 是否在拖动站点到常用列表 isAdd: false, // 是否在拖动站点到常用列表
isCollapsed: true, isCollapsed: true,
draName1: "item",
draName2: "item",
draName3: "item",
placeholder: "将模块拖到此处删除", placeholder: "将模块拖到此处删除",
delList: [], delList: [],
isDel: false, isDel: false,
...@@ -150,15 +143,15 @@ export default { ...@@ -150,15 +143,15 @@ export default {
// 获取用户常用站点列表 // 获取用户常用站点列表
async getCollect() { async getCollect() {
let res = await getCollect(); let res = await getCollect();
if (res.data.code == 1) { if (res.code == 1) {
this.collectList = res.data.data; this.collectList = res.data;
} }
}, },
// 获取站点分类列表 // 获取站点分类列表
async appsListInterface() { async appsListInterface() {
let res = await appsListInterface({ siteId: this.siteId }); let res = await appsListInterface({ siteId: this.siteId });
if (res.data.code == 1) { if (res.code == 1) {
let { data } = res.data.data; let { data } = res.data;
this.siteModelList = data; this.siteModelList = data;
} }
}, },
...@@ -209,30 +202,20 @@ export default { ...@@ -209,30 +202,20 @@ export default {
// this.$message.success("设置成功"); // this.$message.success("设置成功");
// this.getCollect(); // this.getCollect();
// } // }
if (res.data.code != 1) { if (res.code != 1) {
this.getCollect(); this.getCollect();
} }
}, },
// 删除开始时 // 删除开始时
delStart() { delStart() {
this.isDel = true; this.isDel = true;
this.draName3 = "del";
}, },
// 进入删除范围
joinDel() {}, // 修改常用
collectEnd() { changeCollect() {
this.getCollect();
this.isDel = false;
this.draName3 = "item";
},
// 删除常用
handleDelete() {
this.saveCollect(); this.saveCollect();
this.delList.pop();
this.isDel = false; this.isDel = false;
this.draName3 = "item";
}, },
// 判断是否有重复 // 判断是否有重复
hasDuplicate(arr) { hasDuplicate(arr) {
let idSet = new Set(); let idSet = new Set();
...@@ -256,13 +239,15 @@ export default { ...@@ -256,13 +239,15 @@ export default {
.del-box { .del-box {
width: 100%; width: 100%;
height: 150px; height: 150px;
background: rgba(0, 0, 0, 0.5); background: rgba(247, 50, 50, 0.8);
position: fixed; position: fixed;
top: -100%; top: -100%;
left: 0px; left: 0px;
transition: all 0.5s; transition: all 0.2s;
z-index: 999;
.del-text { .del-text {
position: absolute; position: absolute;
font-size: 26px;
} }
} }
.active { .active {
...@@ -291,6 +276,9 @@ export default { ...@@ -291,6 +276,9 @@ export default {
justify-items: center; justify-items: center;
} }
} }
.common-item {
font-family: Source Han Sans CN;
}
.icon-img { .icon-img {
transform: rotateZ(0deg); transform: rotateZ(0deg);
transition: all 1s; transition: all 1s;
...@@ -299,21 +287,23 @@ export default { ...@@ -299,21 +287,23 @@ export default {
background: rgba(0, 0, 0, 0.5); background: rgba(0, 0, 0, 0.5);
} }
.item-logo { .item-logo {
width: 80px; width: 66px;
height: 80px; height: 66px;
padding: 10px; padding: 10px;
background: linear-gradient(180deg, #daefff 0%, #ffffff 100%);
box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.1); box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.1);
border-radius: 20px; border-radius: 20px;
display: flex;
align-items: center;
justify-content: center;
position: relative; position: relative;
.bottom-img { .bottom-img {
position: absolute; position: absolute;
left: 0px; left: -2px;
bottom: -10px; bottom: -11px;
width: 70px;
} }
} }
.item-logo1 {
background: linear-gradient(180deg, #daefff 0%, #ffffff 100%);
}
.site-box { .site-box {
width: 100%; width: 100%;
height: 440px; height: 440px;
...@@ -340,16 +330,53 @@ export default { ...@@ -340,16 +330,53 @@ export default {
padding: 0px 6px; padding: 0px 6px;
height: 200px; height: 200px;
display: grid; display: grid;
grid-template-columns: repeat(3, 1fr); grid-template-columns: repeat(4, 1fr);
// grid-template-rows: repeat(3, 140px);
grid-row-gap: 10px; grid-row-gap: 10px;
align-content: start;
overflow-y: auto; overflow-y: auto;
&::-webkit-scrollbar {
display: none; /* Chrome Safari */
}
// &::-webkit-scrollbar {
// width: 2px;
// height: 2px;
// overflow-y: auto;
// }
// &::-webkit-scrollbar-thumb {
// border-radius: 2px;
// background-image: linear-gradient(
// 180deg,
// #0000 0%,
// #fff 30%,
// #0000 90%
// );
// }
// &::-webkit-scrollbar-track {
// border-radius: 2px;
// background: #0000;
// }
} }
&:nth-child(1) { &:nth-child(1) {
.type-list {
border-style: solid;
border-right-width: 2px;
border-image: linear-gradient(180deg, #0000 0%, #fff 30%, #0000 90%) 1;
// border-image-slice: 2;
}
.item-logo { .item-logo {
background: linear-gradient(180deg, #c7e1f6 0%, #ffffff 85%); background: linear-gradient(180deg, #c7e1f6 0%, #ffffff 85%);
} }
} }
&:nth-child(2) { &:nth-child(2) {
.type-list {
border-style: solid;
border-right-width: 2px;
border-image: linear-gradient(180deg, #0000 0%, #fff 30%, #0000 90%) 1;
// border-image-slice: 2;
}
.item-logo { .item-logo {
background: linear-gradient(180deg, #c7f6db 0%, #ffffff 85%); background: linear-gradient(180deg, #c7f6db 0%, #ffffff 85%);
} }
......
const anim_data = {
domArr: [],
// [
// // 杂乱的正方形
// {
// widthStr: "160rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "linear-gradient(-33deg,#8f35ff,rgba(143,53,255,0)),radial-gradient(circle at 62% -28%,rgba(0,45,156,.75) 0,#002d9c 68%,rgba(0,45,156,0) 111%),linear-gradient(116deg,rgba(0,137,255,.2) 1%,rgba(0,186,255,.04) 38%,rgba(68,149,255,.08) 68%,rgba(3,79,255,.16) 88%)",
// topStr: "calc(50% - 421rem)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 756rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.4,
// opacityAnimMap: new Map([
// [0.2, 0.4], // [帧,值]
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "80rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "linear-gradient(133deg,rgba(255,186,0,0),rgba(255,207,0,.6) 68%),linear-gradient(170deg,#ffc400,#ff9200),linear-gradient(170deg,#ffc400,#ff9200)",
// topStr: "calc(50% - 192rem)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 487rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 1,
// opacityAnimMap: new Map([]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "96rem",
// backgroundColorStr: "#cc7201",
// backgroundImageStr: "",
// topStr: "calc(50% - 141rem)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 624rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.8,
// opacityAnimMap: new Map([
// [0, 0.8],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "40rem",
// backgroundColorStr: "",
// backgroundImageStr: "linear-gradient(170deg,#3e9eff,#0062ff)",
// topStr: "calc(50% - 67rem)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 316rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.75,
// opacityAnimMap: new Map([
// [0, 0.75],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "46rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "radial-gradient(77deg,#ff8300 0,#ff9200 54%,rgba(255,146,0,0) 128%),linear-gradient(77deg,#ffb400,#ff9200 25%,#ffdf2f 68%,#ff8e00)",
// topStr: "calc(50% - 28rem)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 259rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.3,
// opacityAnimMap: new Map([
// [0, 0.3],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "72rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "radial-gradient(77deg,#ff8300 0,#ff9200 54%,rgba(255,146,0,0) 128%),linear-gradient(77deg,#ffb400,#ff9200 25%,#ffdf2f 68%,#ff8e00)",
// topStr: "",
// rightStr: "",
// bottomStr: "calc(50% - 175rem)",
// leftStr: "calc(50% - 579rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.4,
// opacityAnimMap: new Map([
// [0, 0.4],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "160rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "linear-gradient(220deg,#e58dff,#8f35ff 67%,rgba(143,53,255,0)),radial-gradient(circle at 1.2222% -87%,rgba(0,45,156,.75) 0,#002d9c 171%,rgba(0,45,156,0) 278%),linear-gradient(137deg,rgba(0,137,255,.3),rgba(3,79,255,.24))",
// topStr: "",
// rightStr: "",
// bottomStr: "calc(50% - 412rem)",
// leftStr: "calc(50% - 701rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.3,
// opacityAnimMap: new Map([
// [0, 0.3],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "24rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "linear-gradient(220deg,#e58dff,#8f35ff 67%,rgba(143,53,255,0)),radial-gradient(circle at 1.2222% -87%,rgba(0,45,156,.75) 0,#002d9c 171%,rgba(0,45,156,0) 278%),linear-gradient(137deg,rgba(0,137,255,.3),rgba(3,79,255,.24))",
// topStr: "calc(50% - 3rem)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 243rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.3,
// opacityAnimMap: new Map([
// [0, 0.3],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "96rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "linear-gradient(-27deg,rgba(143,53,255,.8) 11%,rgba(143,53,255,0)),radial-gradient(circle at 62% -28%,rgba(0,45,156,.75) 0,#002d9c 68%,rgba(0,45,156,0) 111%)",
// topStr: "calc(50% - 473rem)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 154rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.3,
// opacityAnimMap: new Map([
// [0, 0.3],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "46rem",
// backgroundColorStr: "#ffa800",
// backgroundImageStr: "",
// topStr: "",
// rightStr: "",
// bottomStr: "calc(50% - 98rem)",
// leftStr: "calc(50% - 362rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.95,
// opacityAnimMap: new Map([
// [0, 0.95],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "96rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "linear-gradient(180deg,#004fff,rgba(0,45,156,0) 70%)",
// topStr: "",
// rightStr: "",
// bottomStr: "calc(50% - 498rem)",
// leftStr: "calc(50% - 165rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.95,
// opacityAnimMap: new Map([
// [0, 0.95],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "40rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "-webkit-radial-gradient(top,rgba(0,45,156,.75) 0,#002d9c 92%,rgba(0,45,156,0) 166%)",
// topStr: "",
// rightStr: "",
// bottomStr: "calc(50% - 352rem)",
// leftStr: "calc(50% - 26rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.35,
// opacityAnimMap: new Map([
// [0, 0.35],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "64rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "-webkit-radial-gradient(top,rgba(0,45,156,.75) 0,#002d9c 92%,rgba(0,45,156,0) 166%),-webkit-linear-gradient(334deg,rgba(0,137,255,.2) 1%,rgba(0,186,255,.04) 38%,rgba(68,149,255,.08) 68%,rgba(3,79,255,.16) 88%)",
// topStr: "calc(50% - 395rem)",
// rightStr: "calc(50% - 102rem)",
// bottomStr: "",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.4,
// opacityAnimMap: new Map([
// [0, 0.4],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "24rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "linear-gradient(147deg,#004fff,#002d9c 82%),linear-gradient(153deg,#007fff 5%,#0063ff 95%)",
// topStr: "calc(50% - 206rem)",
// rightStr: "calc(50% - 38rem)",
// bottomStr: "",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.3,
// opacityAnimMap: new Map([
// [0, 0.3],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "130rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "linear-gradient(147deg,#004fff,#002d9c 82%),linear-gradient(153deg,#007fff 5%,#0063ff 95%)",
// topStr: "calc(50% - 263rem)",
// rightStr: "calc(50% - 704rem)",
// bottomStr: "",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.67,
// opacityAnimMap: new Map([
// [0, 0.67],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "64rem",
// backgroundColorStr: "",
// backgroundImageStr: "linear-gradient(128deg,#00ebb6,#00ba46 69%)",
// topStr: "calc(50% - 226rem)",
// rightStr: "calc(50% - 505rem)",
// bottomStr: "",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.95,
// opacityAnimMap: new Map([
// [0, 0.95],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "24rem",
// backgroundColorStr: "",
// backgroundImageStr: "linear-gradient(170deg,#ffc400,rgba(255,207,0,.6))",
// topStr: "calc(50% - 52rem)",
// rightStr: "calc(50% - 218rem)",
// bottomStr: "",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.2,
// opacityAnimMap: new Map([
// [0, 0.2],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "24rem",
// backgroundColorStr: "",
// backgroundImageStr: "linear-gradient(170deg,#00b6ff,#007fff)",
// topStr: "",
// rightStr: "calc(50% - 300rem)",
// bottomStr: "calc(50% - 49rem)",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.96,
// opacityAnimMap: new Map([
// [0, 0.96],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "64rem",
// backgroundColorStr: "",
// backgroundImageStr: "linear-gradient(148deg,#76d2ff,#09baff 99%)",
// topStr: "",
// rightStr: "calc(50% - 453rem)",
// bottomStr: "calc(50% - 170rem)",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.96,
// opacityAnimMap: new Map([
// [0, 0.96],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "96rem",
// backgroundColorStr: "",
// backgroundImageStr: "linear-gradient(136deg,#3e9eff 19%,#0062ff)",
// topStr: "",
// rightStr: "calc(50% - 657rem)",
// bottomStr: "calc(50% - 133rem)",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.96,
// opacityAnimMap: new Map([
// [0, 0.96],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "160rem",
// backgroundColorStr: "",
// backgroundImageStr:
// "linear-gradient(147deg,rgba(0,79,255,.6),rgba(0,45,156,.6) 82%),linear-gradient(153deg,#007fff 5%,#0063ff 95%)",
// topStr: "",
// rightStr: "calc(50% - 800rem)",
// bottomStr: "calc(50% - 345rem)",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.5,
// opacityAnimMap: new Map([
// [0, 0.5],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "96rem",
// backgroundColorStr: "",
// backgroundImageStr: "linear-gradient(-2deg,rgba(0,45,156,.75),#002d9c)",
// topStr: "",
// rightStr: "calc(50% - 213rem)",
// bottomStr: "calc(50% - 532rem)",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.2,
// opacityAnimMap: new Map([
// [0, 0.2],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// {
// widthStr: "96rem",
// backgroundColorStr: "",
// backgroundImageStr: "linear-gradient(-2deg,rgba(0,45,156,.75),#002d9c)",
// topStr: "",
// rightStr: "calc(50% - 213rem)",
// bottomStr: "calc(50% - 532rem)",
// leftStr: "",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 0.2,
// opacityAnimMap: new Map([
// [0, 0.2],
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 800 },
// },
// ],
// ]),
// },
// // logo 图标
// {
// widthStr: "190rem",
// backgroundColorStr: "",
// backgroundStr:
// "url(" +
// require("@/assets/images/siteArrange/logo-pingtai.png") +
// ") center no-repeat",
// topStr: "calc(50% - 90rem)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 90rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 1,
// index: 99,
// opacityAnimMap: new Map([
// [0, 1], // [帧,值]
// [0.6, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// scale: 1,
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// scale: 1,
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: -1300, z: 800 },
// scale: 1.5,
// },
// ],
// ]),
// },
// // logo 图标
// {
// widthStr: "180rem",
// backgroundColorStr: "",
// backgroundImageStr: "linear-gradient(0deg, #2254F3 0%, #15C5FF 100%)",
// topStr: "calc(50% - 90rem)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 90rem)",
// className: "e-square",
// parentClassName: "effect-box",
// opacity: 1,
// opacityAnimMap: new Map([
// [0, 1], // [帧,值]
// [0.6, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// scale: 1,
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// scale: 1,
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: -1300, z: 800 },
// scale: 1.5,
// },
// ],
// ]),
// },
// // 平台设置字体
// {
// widthStr: "200rem",
// backgroundColorStr: "",
// backgroundImageStr: "",
// topStr: "calc(62%)",
// rightStr: "",
// bottomStr: "",
// leftStr: "calc(50% - 98rem)",
// className: "e-square",
// parentClassName: "effect-box",
// text: "平台设置",
// fontSizeStr: "48rem",
// fontColorStr: "#ffffff",
// opacity: 1,
// opacityAnimMap: new Map([
// [0, 1], // [帧,值]
// [0.6, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 0 },
// scale: 1,
// },
// transformAnimMap: new Map([
// [
// 0,
// {
// translate3d: { x: 0, y: 0, z: 0 },
// scale: 1,
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: -1300, z: 800 },
// scale: 1.5,
// },
// ],
// ]),
// },
// // e-icon-box 相关元素
// // e-icon-box-bg
// {
// widthStr: "",
// backgroundColorStr: "",
// backgroundImageStr: "",
// topStr: "",
// rightStr: "",
// bottomStr: "",
// leftStr: "",
// className: "e-icon-box-bg",
// parentClassName: "e-icon-box",
// opacity: 0,
// opacityAnimMap: new Map([
// [0.6, 0], // [帧,值]
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 10 },
// scale: 0.8,
// },
// transformAnimMap: new Map([
// [
// 0.6,
// {
// translate3d: { x: 0, y: 0, z: 10 },
// scale: 0.8,
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 10 },
// scale: 1,
// },
// ],
// ]),
// },
// // e-icon-box 上部字体
// {
// widthStr: "",
// backgroundColorStr: "",
// backgroundImageStr: "",
// topStr: "calc(-38%)",
// rightStr: "",
// bottomStr: "",
// leftStr: "",
// className: "title_boxx",
// parentClassName: "e-icon-box",
// text: "平台设置",
// opacity: 0,
// fontColorStr: "#ffffff",
// opacityAnimMap: new Map([
// [0.6, 0], // [帧,值]
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 10 },
// scale: 0.8,
// },
// transformAnimMap: new Map([
// [
// 0.6,
// {
// translate3d: { x: 0, y: 0, z: 10 },
// scale: 0.8,
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 10 },
// scale: 1,
// },
// ],
// ]),
// },
// {
// widthStr: "",
// backgroundColorStr: "",
// backgroundImageStr: "",
// topStr: "calc(-16%)",
// rightStr: "",
// bottomStr: "",
// leftStr: "",
// className: "desc_boxx",
// parentClassName: "e-icon-box",
// text: "运用以人工智能为代表的新技术,驱动政务服务模式创新,为人民提供更加智慧化、人性化的政务服务。",
// opacity: 0,
// fontColorStr: "#ffffff",
// opacityAnimMap: new Map([
// [0.6, 0], // [帧,值]
// [1, 1],
// ]),
// transform: {
// translate3d: { x: 0, y: 0, z: 10 },
// scale: 0.8,
// },
// transformAnimMap: new Map([
// [
// 0.6,
// {
// translate3d: { x: 0, y: 0, z: 10 },
// scale: 0.8,
// },
// ],
// [
// 1,
// {
// translate3d: { x: 0, y: 0, z: 10 },
// scale: 1,
// },
// ],
// ]),
// },
// // e-icon 上行
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.1, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: 450, y: 80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: 450, y: 80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.1,
// // {
// // translate3d: { x: 450, y: 100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.3, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: 300, y: 80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: 300, y: 80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.3,
// // {
// // translate3d: { x: 300, y: 100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.5, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: 150, y: 80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: 150, y: 80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.5,
// // {
// // translate3d: { x: 150, y: 100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.7, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: 0, y: 80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: 0, y: 80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.7,
// // {
// // translate3d: { x: 0, y: 100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.5, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: -150, y: 80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: -150, y: 80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.5,
// // {
// // translate3d: { x: -150, y: 100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.3, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: -300, y: 80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: -300, y: 80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.3,
// // {
// // translate3d: { x: -300, y: 100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.1, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: -450, y: 80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: -450, y: 80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.1,
// // {
// // translate3d: { x: -450, y: 100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // e-icon 下行
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.1, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: 450, y: -80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: 450, y: -80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.1,
// // {
// // translate3d: { x: 450, y: -100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.3, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: 300, y: -80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: 300, y: -80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.3,
// // {
// // translate3d: { x: 300, y: -100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.5, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: 150, y: -80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: 150, y: -80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.5,
// // {
// // translate3d: { x: 150, y: -100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.7, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: 0, y: -80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: 0, y: -80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.7,
// // {
// // translate3d: { x: 0, y: -100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.5, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: -150, y: -80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: -150, y: -80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.5,
// // {
// // translate3d: { x: -150, y: -100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.3, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: -300, y: -80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: -300, y: -80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.3,
// // {
// // translate3d: { x: -300, y: -100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// // {
// // widthStr: "",
// // backgroundColorStr: "",
// // backgroundImageStr: "",
// // topStr: "",
// // rightStr: "",
// // bottomStr: "",
// // leftStr: "",
// // className: "e-icon",
// // parentClassName: "e-icon-box",
// // opacity: 0,
// // opacityAnimMap: new Map([
// // [0.1, 0], // [帧,值]
// // [1, 1],
// // ]),
// // transform: {
// // translate3d: { x: -450, y: -80, z: 10 },
// // scale: 0,
// // },
// // transformAnimMap: new Map([
// // [
// // 0.1,
// // {
// // translate3d: { x: -450, y: -80, z: 10 },
// // scale: 0,
// // },
// // ],
// // [
// // 0.1,
// // {
// // translate3d: { x: -450, y: -100, z: 10 },
// // scale: 0.5,
// // },
// // ],
// // [
// // 1,
// // {
// // translate3d: { x: 0, y: 0, z: 10 },
// // scale: 1,
// // },
// // ],
// // ]),
// // },
// ],
};
// 特效管理
class EffectManager {
constructor(data = anim_data) {
data.domArr.forEach((item) => {
const entity = new Entity();
// 添加形状组件
entity.addComp(
new ShapeComp({
shapeAtt: item,
})
);
// 添加动画组件
entity.addComp(
new ShapeAnimComp({
opacityAnimMap: item.opacityAnimMap,
transformAnimMap: item.transformAnimMap,
})
);
// 添加滚动事件组件
entity.addComp(
new RollEventComp({
cb: function (scrollPos) {
this.getComp("ShapeAnimComp").changeOpacity(
scrollPos,
this.getComp("ShapeComp")
);
this.getComp("ShapeAnimComp").changeTransform(
scrollPos,
this.getComp("ShapeComp")
);
}.bind(entity),
})
);
});
}
}
// 单体
class Entity {
constructor() {
this._compMap = new Map();
}
addComp(comp) {
this._compMap.set(comp.name, comp);
}
getComp(compName) {
return this._compMap.get(compName);
}
}
// 形状组件
class ShapeComp {
constructor(data) {
this.name = "ShapeComp";
this._shapeDom = document.createElement("div");
this._shapeDom.classList.add(data.shapeAtt.className);
this._shapeDom.style.width = data.shapeAtt.widthStr;
this._shapeDom.style.height = data.shapeAtt.widthStr;
data.shapeAtt.backgroundImageStr
? (this._shapeDom.style.backgroundImage =
data.shapeAtt.backgroundImageStr)
: data.shapeAtt.backgroundStr
? (this._shapeDom.style.background = data.shapeAtt.backgroundStr)
: "";
this._shapeDom.style.top = data.shapeAtt.topStr;
this._shapeDom.style.right = data.shapeAtt.rightStr;
this._shapeDom.style.bottom = data.shapeAtt.bottomStr;
this._shapeDom.style.left = data.shapeAtt.leftStr;
this._shapeDom.style.backgroundColor = data.shapeAtt.backgroundColorStr;
data.shapeAtt.fontColorStr
? (this._shapeDom.style.color = data.shapeAtt.fontColorStr)
: "";
data.shapeAtt.fontSizeStr
? (this._shapeDom.style.fontSize = data.shapeAtt.fontSizeStr)
: "";
data.shapeAtt.text ? (this._shapeDom.innerHTML = data.shapeAtt.text) : "";
data.shapeAtt.index
? (this._shapeDom.style.zIndex = data.shapeAtt.index)
: "";
if (data.shapeAtt.url) {
let aE = document.createElement("a");
let imgDom = document.createElement("div");
imgDom.style.width = "66rem";
imgDom.style.height = "66rem";
imgDom.style.background =
"url(" + _this.api + data.shapeAtt.imgPath + ") no-repeat";
imgDom.style.backgroundSize = "100%";
let txtDom = document.createElement("span");
txtDom.innerHTML = data.shapeAtt.name;
aE.setAttribute("href", "#" + data.shapeAtt.url);
aE.appendChild(imgDom);
aE.appendChild(txtDom);
this._shapeDom.appendChild(aE);
}
document
.getElementsByClassName(data.shapeAtt.parentClassName)[0]
.appendChild(this._shapeDom);
this._opacity = null;
this._transform = null;
this.opacity = data.shapeAtt.opacity;
this.transform = data.shapeAtt.transform;
}
set opacity(value) {
if (value !== this._opacity) {
this._shapeDom.style.opacity = value + "";
}
this._opacity = value;
}
get opacity() {
return this._opacity;
}
set transform(value) {
let transformStr = "";
if (value.translate3d !== undefined) {
transformStr = `translate3d(${value.translate3d.x}rem, ${value.translate3d.y}rem, ${value.translate3d.z}rem)`;
}
if (value.scale !== undefined) {
transformStr += `scale(${value.scale})`;
}
this._shapeDom.style.transform = transformStr;
this._transform = value;
}
get transform() {
return this._transform;
}
}
// 动画组件
class ShapeAnimComp {
constructor(data) {
this.name = "ShapeAnimComp";
this._opacityAnimMap = data.opacityAnimMap;
this._transformAnimMap = data.transformAnimMap;
}
// 返回根据滚动改变的状态值
_getStateValue(scrollPos, beginPos, endPos, beginValue, endValue) {
if (beginValue === endValue) {
return beginValue;
}
const value =
((endValue - beginValue) * (scrollPos - beginPos)) / (endPos - beginPos) +
beginValue;
return Number(value.toFixed(3));
}
// 根据滚动值改变透明度
changeOpacity(scrollPos, shapeComp) {
if (this._opacityAnimMap.size === 0) {
return;
}
const keyArr = [...this._opacityAnimMap.keys()].sort((a, b) => a - b);
const beginPos = keyArr.findLast((item) => item <= scrollPos);
let beginValue = this._opacityAnimMap.get(beginPos);
const endPos = keyArr.find((item) => item >= scrollPos);
let endValue = this._opacityAnimMap.get(endPos);
if (beginValue === undefined && endValue !== undefined) {
beginValue = endValue;
} else if (beginValue !== undefined && endValue === undefined) {
endValue = beginValue;
} else if (beginValue === undefined && endValue === undefined) {
return;
}
const opacity = this._getStateValue(
scrollPos,
beginPos,
endPos,
beginValue,
endValue
);
shapeComp.opacity = opacity;
}
// 根据滚动值改变 transform
changeTransform(scrollPos, shapeComp) {
if (this._transformAnimMap.size === 0) {
return;
}
let transform = {};
const keyArr = [...this._transformAnimMap.keys()].sort((a, b) => a - b);
const beginPos = keyArr.findLast((item) => item <= scrollPos);
let beginValue = this._transformAnimMap.get(beginPos);
const endPos = keyArr.find((item) => item >= scrollPos);
let endValue = this._transformAnimMap.get(endPos);
if (beginValue === undefined && endValue !== undefined) {
beginValue = endValue;
} else if (beginValue !== undefined && endValue === undefined) {
endValue = beginValue;
} else if (beginValue === undefined && endValue === undefined) {
return;
}
// translate3d
if (beginValue.translate3d !== undefined) {
const translate3dx = this._getStateValue(
scrollPos,
beginPos,
endPos,
beginValue.translate3d.x,
endValue.translate3d.x
);
const translate3dy = this._getStateValue(
scrollPos,
beginPos,
endPos,
beginValue.translate3d.y,
endValue.translate3d.y
);
const translate3dz = this._getStateValue(
scrollPos,
beginPos,
endPos,
beginValue.translate3d.z,
endValue.translate3d.z
);
transform.translate3d = {
x: translate3dx,
y: translate3dy,
z: translate3dz,
};
}
// scale
if (beginValue.scale !== undefined) {
const scale = this._getStateValue(
scrollPos,
beginPos,
endPos,
beginValue.scale,
endValue.scale
);
transform.scale = scale;
}
shapeComp.transform = transform;
}
}
// 滚动事件组件
class RollEventComp {
constructor(data) {
this.name = "RollEventComp";
let index = 0;
// let set = setInterval(function () {
// index += 0.004;
// data.cb(index);
// if (index >= 0.43) {
// document.getElementsByClassName("effect-box")[0]
// ? (document.getElementsByClassName(
// "effect-box"
// )[0].style.backgroundColor = `rgba(3, 18, 51, ${
// 0 ? 0 : 0.5 - index
// })`)
// : "";
// }
// if (index > 1) {
// clearInterval(set);
// }
// });
function fn() {
index += 0.015;
data.cb(index);
if (index >= 0.43) {
document.getElementsByClassName("effect-box")[0]
? (document.getElementsByClassName(
"effect-box"
)[0].style.backgroundColor = `rgba(3, 18, 51, ${
0 ? 0 : 0.5 - index
})`)
: "";
}
if (index < 1.1) {
window.requestAnimationFrame(fn);
}
}
window.requestAnimationFrame(fn);
// window.addEventListener("scroll", (event) => {
// const scrollTop = document.documentElement.scrollTop;
// const scrollHeight = document.documentElement.scrollHeight;
// const clientHeight = document.documentElement.clientHeight;
// let scrollPos = 0;
// if (scrollTop + clientHeight >= scrollHeight - 5) {
// scrollPos = 1;
// } else if (scrollTop === 0) {
// scrollPos = 0;
// } else {
// scrollPos = Number(
// (scrollTop / (scrollHeight - clientHeight)).toFixed(3)
// );
// }
// console.log(scrollPos, "###########");
// data.cb(scrollPos);
// });
}
}
export default EffectManager;
...@@ -38,13 +38,13 @@ ...@@ -38,13 +38,13 @@
listArr[active] ? listArr[active].productName : "--" listArr[active] ? listArr[active].productName : "--"
}}</span> }}</span>
<span class="count primary">{{ <span class="count primary">{{
listArr[active].curInfo.length listArr[active]?.curInfo.length
}}</span> }}</span>
</div> </div>
<div v-if="listArr[active].curInfo.length > 0"> <div v-if="listArr[active]?.curInfo.length > 0">
<div <div
class="list flex aic jcb" class="list flex aic jcb"
v-for="(i, j) in listArr[active].curInfo" v-for="(i, j) in listArr[active]?.curInfo"
:key="j" :key="j"
> >
<div class="app-name">{{ i.appName }}</div> <div class="app-name">{{ i.appName }}</div>
......
...@@ -207,6 +207,7 @@ export default { ...@@ -207,6 +207,7 @@ export default {
}, },
// 获取菜单列表 // 获取菜单列表
async getMenuList() { async getMenuList() {
this.tableLoading = true;
let res = await menuList({ let res = await menuList({
page: this.tablePagination.current, page: this.tablePagination.current,
size: -1, size: -1,
...@@ -218,10 +219,12 @@ export default { ...@@ -218,10 +219,12 @@ export default {
this.firstStair = data.filter((v) => v.parentId === -1); this.firstStair = data.filter((v) => v.parentId === -1);
let childrens = data.filter((v) => v.parentId !== -1); let childrens = data.filter((v) => v.parentId !== -1);
this.menusTreeData = this.fliterEvent(this.firstStair, childrens); this.menusTreeData = this.fliterEvent(this.firstStair, childrens);
this.tableLoading = false;
}, },
// 搜索 // 搜索
async searchData() { async searchData() {
if (this.searchForm.parentId || this.searchForm.name) { if (this.searchForm.parentId || this.searchForm.name) {
this.tableLoading = true;
let obj = { ...this.searchForm }; let obj = { ...this.searchForm };
obj.name = "%" + this.searchForm.name + "%"; obj.name = "%" + this.searchForm.name + "%";
let res = await menuList({ let res = await menuList({
...@@ -232,6 +235,7 @@ export default { ...@@ -232,6 +235,7 @@ export default {
let { data, total } = res.data; let { data, total } = res.data;
this.tablePagination.total = total; this.tablePagination.total = total;
this.menusTreeData = data; this.menusTreeData = data;
this.tableLoading = false;
} else { } else {
this.getMenuList(); this.getMenuList();
} }
......
...@@ -44,12 +44,12 @@ ...@@ -44,12 +44,12 @@
> >
<a-button <a-button
:style=" :style="
userInfo.id == record.id userData.id == record.id
? { color: '#3333' } ? { color: '#3333' }
: { color: '#ff4420' } : { color: '#ff4420' }
" "
type="link" type="link"
:disabled="userInfo.id === record.id" :disabled="userData.id === record.id"
@click="deleteRole(record, index)" @click="deleteRole(record, index)"
>删除</a-button >删除</a-button
> >
...@@ -70,11 +70,11 @@ ...@@ -70,11 +70,11 @@
import { deepClone } from "@/utils/js/common.js"; import { deepClone } from "@/utils/js/common.js";
import { roleList, roleDelete } from "@/api/authorityMis.js"; import { roleList, roleDelete } from "@/api/authorityMis.js";
import AddEditRole from "./components/addEditRole.vue"; import AddEditRole from "./components/addEditRole.vue";
import { mapState } from "vuex";
export default { export default {
name: "PortalAdminVueAuthorityMis", name: "PortalAdminVueAuthorityMis",
data() { data() {
return { return {
userInfo: {},
searchRoleName: undefined, searchRoleName: undefined,
tableLoading: false, tableLoading: false,
tablePagination: { tablePagination: {
...@@ -131,22 +131,15 @@ export default { ...@@ -131,22 +131,15 @@ export default {
components: { components: {
AddEditRole, AddEditRole,
}, },
computed: {
...mapState("user", ["userData"]),
},
created() { created() {
// for (let key = 0; key < 20; key++) {
// this.tableSourceData.push({
// key: `00${key + 1}`,
// name: `超级管理员${key + 1}`,
// remark: `该角色定义为省级权限${key + 1}`,
// });
// }
localStorage.getItem("userInfo")
? (this.userInfo = JSON.parse(localStorage.getItem("userInfo")))
: "";
console.log(this.userInfo);
this.getRoleList(); this.getRoleList();
}, },
methods: { methods: {
async getRoleList() { async getRoleList() {
this.tableLoading = true;
let res = await roleList({ let res = await roleList({
page: this.tablePagination.current, //当前页 page: this.tablePagination.current, //当前页
size: this.tablePagination.pageSize, //每页条数 size: this.tablePagination.pageSize, //每页条数
...@@ -163,6 +156,7 @@ export default { ...@@ -163,6 +156,7 @@ export default {
this.tableSourceData = data.data; this.tableSourceData = data.data;
this.roleDict = dict; this.roleDict = dict;
} }
this.tableLoading = false;
}, },
pagTableChange(pag) { pagTableChange(pag) {
this.tablePagination.current = pag.current; this.tablePagination.current = pag.current;
......
...@@ -56,7 +56,9 @@ ...@@ -56,7 +56,9 @@
</a-form-model> </a-form-model>
<div slot="footer"> <div slot="footer">
<a-button style="margin-left: 10px" @click="resetForm">重置</a-button> <a-button style="margin-left: 10px" @click="resetForm">重置</a-button>
<a-button type="primary" class="addclass" @click="onSubmit">确定</a-button> <a-button type="primary" class="addclass" @click="onSubmit"
>确定</a-button
>
</div> </div>
</a-modal> </a-modal>
</div> </div>
......
...@@ -180,12 +180,12 @@ ...@@ -180,12 +180,12 @@
<script> <script>
import { roleInfo, assignMenuToRole } from "@/api/authorityMis.js"; import { roleInfo, assignMenuToRole } from "@/api/authorityMis.js";
// import { deepClone, childrenTreeNode } from "@/utils/js/common.js"; // import { deepClone, childrenTreeNode } from "@/utils/js/common.js";
import menu from "@/mixins/menu"; // import menu from "@/mixins/menu";
import { menuFindAllTree } from "@/api/menuMgmt"; import { menuFindAllTree } from "@/api/menuMgmt";
// import common from "@/mixins/common"; // import common from "@/mixins/common";
export default { export default {
// mixins: [common], // mixins: [common],
mixins: [menu], // mixins: [menu],
name: "PortalAdminVueSetMenuPerms", name: "PortalAdminVueSetMenuPerms",
data() { data() {
return { return {
...@@ -216,7 +216,7 @@ export default { ...@@ -216,7 +216,7 @@ export default {
}; };
}, },
created() { created() {
this.getMenuList(true); // this.getMenuList(true);
this.getRoleInfo(); this.getRoleInfo();
this.menuFindAllTree(); this.menuFindAllTree();
}, },
......
...@@ -197,6 +197,7 @@ export default { ...@@ -197,6 +197,7 @@ export default {
// 获取用户列表 // 获取用户列表
async getUserList() { async getUserList() {
this.tableLoading = true;
let realName = ""; let realName = "";
let mobile = ""; let mobile = "";
if (this.userform.searchVal) { if (this.userform.searchVal) {
...@@ -227,6 +228,7 @@ export default { ...@@ -227,6 +228,7 @@ export default {
this.tablePagination.total = total; this.tablePagination.total = total;
this.userDict = this.transverter(roleId); this.userDict = this.transverter(roleId);
this.tableSourceData = data; this.tableSourceData = data;
this.tableLoading = false;
}, },
// 添加用户 // 添加用户
......
...@@ -174,6 +174,7 @@ export default { ...@@ -174,6 +174,7 @@ export default {
}, },
dict: {}, dict: {},
total: 0, total: 0,
tableLoading: false,
}; };
}, },
components: { components: {
...@@ -184,6 +185,7 @@ export default { ...@@ -184,6 +185,7 @@ export default {
}, },
methods: { methods: {
getList() { getList() {
this.tableLoading = true;
getInterfaceList({ getInterfaceList({
page: this.tablePagination.current, page: this.tablePagination.current,
size: this.tablePagination.pageSize, size: this.tablePagination.pageSize,
...@@ -195,8 +197,8 @@ export default { ...@@ -195,8 +197,8 @@ export default {
this.dict = dict; this.dict = dict;
this.tableSourceData = data; this.tableSourceData = data;
this.tablePagination.total = total; this.tablePagination.total = total;
return data;
} }
this.tableLoading = false;
}); });
}, },
QueueState(type) { QueueState(type) {
......
...@@ -142,6 +142,7 @@ export default { ...@@ -142,6 +142,7 @@ export default {
deveLanguage: {}, deveLanguage: {},
isEnable: {}, isEnable: {},
}, },
tableLoading: false,
}; };
}, },
components: { components: {
...@@ -153,6 +154,7 @@ export default { ...@@ -153,6 +154,7 @@ export default {
}, },
methods: { methods: {
getList(search) { getList(search) {
this.tableLoading = true;
getApps({ getApps({
page: this.tablePagination.current, page: this.tablePagination.current,
size: this.tablePagination.pageSize, size: this.tablePagination.pageSize,
...@@ -164,6 +166,7 @@ export default { ...@@ -164,6 +166,7 @@ export default {
this.dict = dict; this.dict = dict;
this.tableSourceData = data; this.tableSourceData = data;
this.tablePagination.total = total; this.tablePagination.total = total;
this.tableLoading = false;
return data; return data;
} }
}); });
......
...@@ -113,6 +113,7 @@ export default { ...@@ -113,6 +113,7 @@ export default {
current: 1, current: 1,
pageSize: 10, pageSize: 10,
}, },
tableLoading: false,
}; };
}, },
components: { components: {
...@@ -124,6 +125,7 @@ export default { ...@@ -124,6 +125,7 @@ export default {
}, },
methods: { methods: {
getList(search) { getList(search) {
this.tableLoading = true;
getDocument({ getDocument({
page: this.tablePagination.current, page: this.tablePagination.current,
size: this.tablePagination.pageSize, size: this.tablePagination.pageSize,
...@@ -136,6 +138,7 @@ export default { ...@@ -136,6 +138,7 @@ export default {
this.dict = dict; this.dict = dict;
this.tableSourceData = data; this.tableSourceData = data;
this.tablePagination.total = total; this.tablePagination.total = total;
this.tableLoading = false;
return data; return data;
} }
}); });
......
...@@ -158,6 +158,7 @@ export default { ...@@ -158,6 +158,7 @@ export default {
.Container { .Container {
height: 100%; height: 100%;
width: 100%;
background: #f5f5f5; background: #f5f5f5;
.search_box { .search_box {
......
* {
margin: 0;
padding: 0;
}
* {
margin: 0;
padding: 0;
}
:root { :root {
--base-font-size: 0.0625rem; --base-font-size: 0.0625rem;
} }
...@@ -17,13 +8,13 @@ ...@@ -17,13 +8,13 @@
} }
} }
html { html{
font-size: var(--base-font-size); font-size: var(--base-font-size);
} }
body::-webkit-scrollbar { /* body::-webkit-scrollbar {
display: none; display: none;
} } */
.effect-content { .effect-content {
/* height: 200vh; /* height: 200vh;
...@@ -35,7 +26,7 @@ body::-webkit-scrollbar { ...@@ -35,7 +26,7 @@ body::-webkit-scrollbar {
position: sticky; position: sticky;
top: 0; top: 0;
/* height: 100vh; */ /* height: 100vh; */
min-height: 932rem; min-height: 930rem;
background-color: #031233; background-color: #031233;
perspective: 800px; perspective: 800px;
overflow: hidden; overflow: hidden;
...@@ -55,7 +46,24 @@ body::-webkit-scrollbar { ...@@ -55,7 +46,24 @@ body::-webkit-scrollbar {
.e-icon-box { .e-icon-box {
position: absolute; position: absolute;
top: 50%; top: 48%;
left: 50%;
transform-origin: 50% 50%;
width: 1200rem;
height: 500rem;
transform: translate(-50%, -100rem);
display: grid;
grid-template-columns: repeat(4, 250rem);
grid-gap: 30rem;
grid-auto-rows: 200rem;
justify-content: center;
align-content: center;
z-index: 10;
}
/* .e-icon-box {
position: absolute;
top: 48%;
left: 50%; left: 50%;
transform-origin: 50% 50%; transform-origin: 50% 50%;
width: 1200rem; width: 1200rem;
...@@ -65,26 +73,41 @@ body::-webkit-scrollbar { ...@@ -65,26 +73,41 @@ body::-webkit-scrollbar {
grid-template-columns: repeat(7, 120rem); grid-template-columns: repeat(7, 120rem);
grid-gap: 80rem 30rem; grid-gap: 80rem 30rem;
grid-auto-rows: 120rem; grid-auto-rows: 120rem;
justify-content: center; justify-content: center;
align-content: center; align-content: center;
z-index: 10; z-index: 10;
} */
.e-icon a {
display: flex;
width: 100%;
height: 100%;
flex-direction: column;
justify-content: center;
align-items: center;
color: #ffffff;
}
.e-icon span {
margin-top: 20px;
font-size: 20px;
font-family: Source Han Sans CN;
font-weight: bold;
color: #ffffff;
} }
.e-icon-box-bg { .e-icon-box-bg {
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: rgba(5, 30, 75, 0.66); background-color: rgba(5, 30, 75, 0.2);
border-radius: 16px;
} }
.e-icon { .e-icon {
position: relative; position: relative;
background-color: #0089ff; /* background-color: #0089ff; */
border-radius: 10rem; border-radius: 10rem;
} }
.title { .title_boxx {
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 64px; height: 64px;
...@@ -95,7 +118,7 @@ body::-webkit-scrollbar { ...@@ -95,7 +118,7 @@ body::-webkit-scrollbar {
line-height: 64px; line-height: 64px;
text-align: center; text-align: center;
} }
.desc { .desc_boxx {
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 34px; height: 34px;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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