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_systemName = 数字政务一体化智慧管理平台
\ No newline at end of file
VUE_APP_systemName = 智慧大厅集成化综合管理平台
\ No newline at end of file
<template>
<div class="app h-full w-full">
<div class="app w-full h-full">
<a-config-provider :locale="zh_CN">
<router-view />
</a-config-provider>
......@@ -57,11 +57,16 @@ export default {
};
</script>
<style lang="less" scoped>
.app {
min-width: 1600px;
}
<style lang="less">
.export {
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>
\ No newline at end of file
@searBG:#F0F0F0;
/* 基础 */
.primary {
color: #1890ff;
......@@ -34,6 +36,49 @@
img {
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 */
.m10 {
......@@ -461,7 +506,7 @@ img {
padding: 0 !important;
& + .ant-btn-link {
margin-left: 1rem !important;
margin-left: 6px !important;
}
}
......@@ -581,10 +626,23 @@ img {
padding: 10px;
}
.ant-table {
max-width:1500px;
border:none;
tr, th,td{
border:none !important;
}
// .ant-table-body-inner{
// &::-webkit-scrollbar{
// display: none;
// }
// }
// :hover{
// .ant-table-body-inner{
// &::-webkit-scrollbar{
// display: block;
// }
// }
// }
}
.ant-table-thead th {
background: linear-gradient(0deg, #f9fbff 0%, #cbddff 78%);
......@@ -635,15 +693,15 @@ img {
}
.ant-select {
width: 100%;
height: 42px;
min-height:42px;
.ant-select-selection__rendered {
height: 100%;
min-height:42px;
display: flex;
align-items: center;
}
.ant-select-selection {
height: 42px;
background: #f0f0f0;
min-height:42px;
background: @searBG;
border-radius: 4px;
border: none;
font-size: 14px;
......@@ -658,22 +716,31 @@ img {
font-weight: 500;
color: #232323;
}
.ant-select-selection__clear{
background: @searBG;
}
.ant-calendar-picker {
min-width: 100% !important;
max-width: 100%;
}
.ant-calendar-picker-input {
.ant-calendar-range-picker-input:nth-child(1) {
width:33%;
text-align: left;
}
.ant-calendar-range-picker-input:nth-child(3) {
width:33%;
text-align: right;
}
}
.ant-calendar-picker-clear{
background: @searBG;
}
.ant-input {
width: 100%;
height: 42px;
background: #f0f0f0;
background: @searBG;
border: none;
border-radius: 4px;
font-size: 14px;
......@@ -692,3 +759,19 @@ img {
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 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe608;</span>
<div class="name"></div>
<div class="code-name">&amp;#xe608;</div>
<span class="icon iconfont">&#xe901;</span>
<div class="name">闭眼睛</div>
<div class="code-name">&amp;#xe901;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe607;</span>
<div class="name">不可见</div>
<div class="code-name">&amp;#xe607;</div>
<span class="icon iconfont">&#xe608;</span>
<div class="name"></div>
<div class="code-name">&amp;#xe608;</div>
</li>
<li class="dib">
......@@ -102,9 +102,9 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1692777691620') format('woff2'),
url('iconfont.woff?t=1692777691620') format('woff'),
url('iconfont.ttf?t=1692777691620') format('truetype');
src: url('iconfont.woff2?t=1693536528455') format('woff2'),
url('iconfont.woff?t=1693536528455') format('woff'),
url('iconfont.ttf?t=1693536528455') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
......@@ -131,20 +131,20 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-dot"></span>
<span class="icon iconfont icon-hidden"></span>
<div class="name">
闭眼睛
</div>
<div class="code-name">.icon-dot
<div class="code-name">.icon-hidden
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-hidden"></span>
<span class="icon iconfont icon-dot"></span>
<div class="name">
不可见
</div>
<div class="code-name">.icon-hidden
<div class="code-name">.icon-dot
</div>
</li>
......@@ -204,18 +204,18 @@
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-dot"></use>
<use xlink:href="#icon-hidden"></use>
</svg>
<div class="name"></div>
<div class="code-name">#icon-dot</div>
<div class="name">闭眼睛</div>
<div class="code-name">#icon-hidden</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-hidden"></use>
<use xlink:href="#icon-dot"></use>
</svg>
<div class="name">不可见</div>
<div class="code-name">#icon-hidden</div>
<div class="name"></div>
<div class="code-name">#icon-dot</div>
</li>
<li class="dib">
......
@font-face {
font-family: "iconfont"; /* Project id 4222008 */
src: url('iconfont.woff2?t=1692777691620') format('woff2'),
url('iconfont.woff?t=1692777691620') format('woff'),
url('iconfont.ttf?t=1692777691620') format('truetype');
src: url('iconfont.woff2?t=1693536528455') format('woff2'),
url('iconfont.woff?t=1693536528455') format('woff'),
url('iconfont.ttf?t=1693536528455') format('truetype');
}
.iconfont {
......@@ -13,12 +13,12 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-dot:before {
content: "\e608";
.icon-hidden:before {
content: "\e901";
}
.icon-hidden:before {
content: "\e607";
.icon-dot:before {
content: "\e608";
}
.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);
\ No newline at end of file
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
......@@ -5,6 +5,13 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "4354835",
"name": "闭眼睛",
"font_class": "hidden",
"unicode": "e901",
"unicode_decimal": 59649
},
{
"icon_id": "1920286",
"name": "点",
......@@ -12,13 +19,6 @@
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "12183287",
"name": "不可见",
"font_class": "hidden",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "12387627",
"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 @@
<a-select-option value="" label="全部"> 全部 </a-select-option>
<a-select-option :value="0" label="未处理"> 未处理 </a-select-option>
</a-select>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -30,8 +30,8 @@
:label="v.name + '-' + v.fromnum"
>{{ v.name + "-" + v.fromnum }}</a-select-option
>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -46,8 +46,8 @@
:label="v"
>{{ v }}</a-select-option
>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入工作人员姓名查询"
......@@ -61,6 +61,8 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import Storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
......@@ -74,6 +76,10 @@ const alert = {
};
export default {
name: "abnormalReportForm-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: Storage.get(2, "siteId"),
......@@ -104,8 +110,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.windowData = data;
}
},
......
......@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -14,8 +14,8 @@
>
<a-select-option value="" label="全部类型"> 全部类型 </a-select-option>
<a-select-option :value="0" label="离线"> 离线 </a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -30,8 +30,8 @@
<a-select-option :value="2" label="清除已确认">
清除已确认
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入设备名称查询"
......@@ -45,11 +45,17 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
export default {
name: "alerting-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......
......@@ -4,7 +4,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</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
allowClear
placeholder="请输入手机号码搜索"
......@@ -18,11 +18,17 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
export default {
name: "callRecordForm-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......
<template>
<!-- 排号机搜索 -->
<div class="search-form">
<a-space direction="vertical" size="middle">
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
placeholder="请选择大厅"
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
v-for="v in datingList"
......@@ -20,8 +23,8 @@
>
{{ v.hallName }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -37,15 +40,15 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
placeholder="请选择设备"
v-model="searchForm.id"
>
<a-select-option value=""> 全部设备 </a-select-option>
<a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option
v-for="v in deviceData"
:key="v.id"
......@@ -54,8 +57,8 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -71,8 +74,10 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<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
allowClear
placeholder="输入排队编号搜索"
......@@ -87,6 +92,8 @@
<script>
import storage from "@/utils/js/Storage";
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getCalllist } from "@/api/dataAdmin";
import { debounce } from "lodash";
......@@ -102,6 +109,10 @@ const style = [
];
export default {
name: "callRecord-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......@@ -137,8 +148,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.datingList = data;
}
},
......@@ -150,8 +161,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.deptList = data;
}
},
......@@ -162,8 +173,8 @@ export default {
page: 1,
size: -1,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.deviceData = data;
}
},
......
......@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -21,8 +21,8 @@
>
{{ v.hallName }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -38,7 +38,7 @@
>
{{ v.name }}
</a-select-option>
</a-select>
</y-select>
<a-select
allowClear
showSearch
......@@ -47,7 +47,9 @@
v-model="evaChoose"
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
v-for="v in optonList"
:key="v.id"
......@@ -65,7 +67,9 @@
v-model="evaFrom"
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="2" label="自助服务终端">
自助服务终端
......@@ -79,10 +83,10 @@
一体化评价
</a-select-option>
</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
allowClear
placeholder="请输入评价人姓名或部门名称搜索"
placeholder="请输入评价人姓名或窗口编号搜索"
v-model="searchForm.info"
/>
<a-button block class="search-btn" icon="search" @click="handleSearch">
......@@ -92,13 +96,19 @@
</div>
</template>
<script>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getOptonList } from "@/api/dataAdmin";
import { debounce } from "lodash";
export default {
name: "departmentEvaluation-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......@@ -137,8 +147,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.datingList = data;
}
},
......@@ -150,8 +160,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.deptList = data;
}
},
......@@ -159,8 +169,8 @@ export default {
// 获取评价选项
async getOptonList() {
let res = await getOptonList();
if (res.data.code == 1) {
this.optonList = res.data.data;
if (res.code == 1) {
this.optonList = res.data;
}
},
......@@ -191,5 +201,5 @@ export default {
};
</script>
<style lang="less" scoped>
<style lang="less" scoped>
</style>
\ No newline at end of file
......@@ -5,14 +5,14 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
placeholder="请选择设备"
v-model="searchForm.number"
>
<a-select-option value=""> 全部设备 </a-select-option>
<a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option
v-for="v in deviceData"
:key="v.id"
......@@ -21,8 +21,8 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -32,8 +32,8 @@
<a-select-option value="" label="全部状态"> 全部状态 </a-select-option>
<a-select-option :value="1" label="未取件"> 未取件 </a-select-option>
<a-select-option :value="2" label="已取件"> 已取件 </a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入邮递员姓名或联系电话查询"
......@@ -47,12 +47,18 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { getSitePickupDevice } from "@/api/dataAdmin";
import { debounce } from "lodash";
export default {
name: "depositRecord-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......@@ -81,8 +87,8 @@ export default {
page: 1,
size: -1,
});
if (res.data.code == 1) {
let { data } = res.data;
if (res.code == 1) {
let { data } = res;
this.deviceData = data;
}
},
......
......@@ -4,7 +4,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -13,8 +13,8 @@
>
<a-select-option :value="1" label="按事项"> 按事项 </a-select-option>
<a-select-option :value="2" label="按材料"> 按材料 </a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -28,8 +28,8 @@
<a-select-option :value="2" label="在线提交">
在线提交
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入名称搜索"
......@@ -43,11 +43,17 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
export default {
name: "fillForm-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......
......@@ -5,17 +5,17 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
placeholder="请选择"
v-model="searchForm.reply"
>
<a-select-option value=""> 全部 </a-select-option>
<a-select-option :value="0"> 未回复 </a-select-option>
</a-select>
<a-select
<a-select-option value="" label="全部"> 全部 </a-select-option>
<a-select-option :value="0" label="未回复"> 未回复 </a-select-option>
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -31,8 +31,8 @@
>
{{ v.label }}
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入标题或姓名关键字搜索"
......@@ -46,6 +46,8 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
......@@ -61,6 +63,10 @@ const deviceList = [
];
export default {
name: "ImpossibleForm-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......
......@@ -4,7 +4,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -20,8 +20,8 @@
>
{{ v }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -37,8 +37,8 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入标题或姓名关键字搜索"
......@@ -52,6 +52,8 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
......@@ -63,6 +65,10 @@ const source = {
};
export default {
name: "letterRecordForm-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......@@ -88,8 +94,8 @@ export default {
// 获取类型列表
async getType() {
let res = await getType();
if (res.data.code == 1) {
this.typeList = res.data.data;
if (res.code == 1) {
this.typeList = res.data;
}
},
// 搜索
......
......@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -21,8 +21,8 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -38,8 +38,8 @@
>
{{ v }}
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入预约人姓名/业务名称搜索"
......@@ -53,6 +53,8 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { getDeptList } from "@/api/dataAdmin";
......@@ -65,6 +67,10 @@ let statusItem = {
};
export default {
name: "RecordReport-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
statusItem,
......@@ -95,8 +101,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.depList = data;
}
},
......
......@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -21,8 +21,8 @@
>
{{ v.hallName }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -38,7 +38,7 @@
>
{{ v.name }}
</a-select-option>
</a-select>
</y-select>
<a-select
allowClear
showSearch
......@@ -47,7 +47,9 @@
v-model="evaChoose"
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
v-for="v in optonList"
:key="v.id"
......@@ -65,7 +67,9 @@
v-model="evaFrom"
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="2" label="自助服务终端">
自助服务终端
......@@ -79,10 +83,10 @@
一体化评价
</a-select-option>
</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
allowClear
placeholder="请输入评价人姓名或排号编号搜索"
placeholder="请输入评价人姓名或窗口编号搜索"
v-model="searchForm.info"
/>
<a-button block class="search-btn" icon="search" @click="handleSearch">
......@@ -93,12 +97,18 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getOptonList } from "@/api/dataAdmin";
import { debounce } from "lodash";
export default {
name: "matterEvaluation-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......@@ -137,8 +147,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.datingList = data;
}
},
......@@ -150,8 +160,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.deptList = data;
}
},
......@@ -159,8 +169,8 @@ export default {
// 获取评价选项
async getOptonList() {
let res = await getOptonList();
if (res.data.code == 1) {
this.optonList = res.data.data;
if (res.code == 1) {
this.optonList = res.data;
}
},
......
......@@ -5,16 +5,14 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
placeholder="请选择类型"
v-model="searchForm.check_real"
>
<a-select-option value="-1" label="全部类型">
全部类型
</a-select-option>
<a-select-option value="" label="全部类型"> 全部类型 </a-select-option>
<a-select-option
v-for="(v, key) in check_realList"
:key="key"
......@@ -23,8 +21,8 @@
>
{{ v }}
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入昵称关键字搜索"
......@@ -38,6 +36,8 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
......@@ -47,6 +47,10 @@ let check_realList = {
};
export default {
name: "microForm-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
check_realList,
......@@ -54,7 +58,7 @@ export default {
// 搜索数据
searchForm: {
search: "",
check_real: "-1",
check_real: "",
time: [
this.$moment().format("YYYY-MM-DD"),
this.$moment().format("YYYY-MM-DD"),
......
......@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -15,8 +15,8 @@
<a-select-option value=""> 全部建议 </a-select-option>
<a-select-option :value="0"> 未处理 </a-select-option>
<a-select-option :value="1"> 已处理 </a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -32,8 +32,8 @@
>
{{ v }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -49,8 +49,8 @@
>
{{ v }}
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入标题或姓名关键字搜索"
......@@ -64,6 +64,8 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
......@@ -83,6 +85,10 @@ const nowDevice = {
};
export default {
name: "networkForm-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......
......@@ -5,14 +5,14 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
placeholder="请选择设备"
v-model="searchForm.number"
>
<a-select-option value=""> 全部设备 </a-select-option>
<a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option
v-for="v in deviceData"
:key="v.id"
......@@ -21,8 +21,8 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -38,8 +38,8 @@
>
{{ v }}
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-button block class="search-btn" icon="search" @click="handleSearch">
搜索
</a-button>
......@@ -48,6 +48,8 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { getSitePickupDevice } from "@/api/dataAdmin";
......@@ -62,6 +64,10 @@ const operationTypeList = {
};
export default {
name: "otherRecord-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......@@ -90,8 +96,8 @@ export default {
page: 1,
size: -1,
});
if (res.data.code == 1) {
let { data } = res.data;
if (res.code == 1) {
let { data } = res;
this.deviceData = data;
}
},
......
......@@ -5,14 +5,14 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
placeholder="请选择设备"
v-model="searchForm.number"
>
<a-select-option value=""> 全部设备 </a-select-option>
<a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option
v-for="v in deviceData"
:key="v.id"
......@@ -21,8 +21,8 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入取件人姓名或手机号搜索"
......@@ -35,13 +35,19 @@
</div>
</template>
<script>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { getSitePickupDevice } from "@/api/dataAdmin";
import { debounce } from "lodash";
export default {
name: "pickUpRecord-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......@@ -69,8 +75,8 @@ export default {
page: 1,
size: -1,
});
if (res.data.code == 1) {
let { data } = res.data;
if (res.code == 1) {
let { data } = res;
this.deviceData = data;
}
},
......@@ -98,5 +104,5 @@ export default {
};
</script>
<style lang="less" scoped>
<style lang="less" scoped>
</style>
\ No newline at end of file
......@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -21,7 +21,7 @@
>
{{ v }}
</a-select-option>
</a-select>
</y-select>
<a-input
allowClear
placeholder="请输入用户姓名或者手机号搜索"
......@@ -35,6 +35,8 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
......@@ -45,6 +47,10 @@ const levelList = {
};
export default {
name: "PoliticsShow-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......
......@@ -4,7 +4,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -20,8 +20,8 @@
>
{{ v.hallName }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -37,15 +37,15 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
placeholder="请选择设备"
v-model="searchForm.id"
>
<a-select-option value=""> 全部设备 </a-select-option>
<a-select-option value="" label="全部设备"> 全部设备 </a-select-option>
<a-select-option
v-for="v in deviceData"
:key="v.id"
......@@ -54,8 +54,8 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -71,8 +71,8 @@
>
{{ v.name }}
</a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="输入排队编号搜索"
......@@ -86,6 +86,8 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getTaskList } from "@/api/dataAdmin";
......@@ -106,6 +108,10 @@ const style = [
];
export default {
name: "queueRecord-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......@@ -141,8 +147,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.datingList = data;
}
},
......@@ -154,8 +160,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.deptList = data;
}
},
......@@ -166,8 +172,8 @@ export default {
page: 1,
size: -1,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.deviceData = data;
}
},
......
......@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -14,8 +14,8 @@
>
<a-select-option :value="1" label="按事项"> 按事项 </a-select-option>
<a-select-option :value="2" label="按材料"> 按材料 </a-select-option>
</a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
</y-select>
<y-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time" />
<a-input
allowClear
placeholder="请输入名称搜索"
......@@ -29,11 +29,17 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { debounce } from "lodash";
export default {
name: "sampleForm-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......
......@@ -5,7 +5,7 @@
<a-button block class="export-btn" icon="upload" @click="handleExport">
导出
</a-button>
<a-select
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -21,8 +21,8 @@
>
{{ v.hallName }}
</a-select-option>
</a-select>
<a-select
</y-select>
<y-select
allowClear
showSearch
optionFilterProp="label"
......@@ -38,7 +38,7 @@
>
{{ v.name }}
</a-select-option>
</a-select>
</y-select>
<a-select
allowClear
showSearch
......@@ -47,7 +47,9 @@
v-model="evaChoose"
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
v-for="v in optonList"
:key="v.id"
......@@ -65,7 +67,9 @@
v-model="evaFrom"
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="2" label="自助服务终端">
自助服务终端
......@@ -79,7 +83,7 @@
一体化评价
</a-select-option>
</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
allowClear
placeholder="请输入评价人姓名或窗口编号搜索"
......@@ -93,12 +97,18 @@
</template>
<script>
import YSelect from "@/components/YSelect.vue";
import YRangePicker from "@/components/YRangePicker.vue";
import storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
import { getDatingList, getBumenList, getOptonList } from "@/api/dataAdmin";
import { debounce } from "lodash";
export default {
name: "windowsEvaluation-search",
components: {
YSelect,
YRangePicker,
},
data() {
return {
siteId: storage.get(2, "siteId"),
......@@ -137,8 +147,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.datingList = data;
}
},
......@@ -150,8 +160,8 @@ export default {
size: -1,
siteId: this.siteId,
});
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.deptList = data;
}
},
......@@ -159,8 +169,8 @@ export default {
// 获取评价选项
async getOptonList() {
let res = await getOptonList();
if (res.data.code == 1) {
this.optonList = res.data.data;
if (res.code == 1) {
this.optonList = res.data;
}
},
......
import Storage from "@/utils/js/Storage";
import store from "@/store";
// 修改密码权限
export const permission = {
inserted: function (el, binding) {
const { value } = binding;
const roles = Storage.get(2, "userInfo").id;
const roles = store.getters["user/userData"].id;
if (value) {
const permissionRoles = value;
const hasPermission = permissionRoles.includes(roles);
......
......@@ -56,7 +56,7 @@ export default {
}
menuList(obj).then((res) => {
// console.log(res);
let { code, data, dict } = res.data;
let { code, data, dict } = res;
if (code == 1) {
data.data = data.data.map((item) => {
this.menuRouterList.forEach((v) => {
......
......@@ -60,7 +60,7 @@ axios.interceptors.response.use(
}
}
// NProgress.done();
return response;
return response.data;
},
(error) => {
if (error && error.response) {
......
......@@ -17,6 +17,10 @@ const routes = [
),
meta: { title: "数据管理" },
children: [
{
path: "dataAdmin",
redirect: "/",//升级前门户跳转重定向
},
{
path: "pickUp",
name: "pickUp",
......@@ -27,6 +31,7 @@ const routes = [
),
meta: { title: "取件记录报表" },
children: [
{
path: "pickUpRecord",
name: "pickUpRecord",
......
......@@ -13,7 +13,7 @@
.ant-btn {
&+.ant-btn {
margin-left: 1rem !important;
margin-left: 6px !important;
}
}
......@@ -31,26 +31,26 @@
// }
// }
::-webkit-scrollbar {
width: 7px;
background: transparent !important;
}
// ::-webkit-scrollbar {
// width: 7px;
// background: transparent !important;
// }
::-webkit-scrollbar-corner,
/* 滚动条角落 */
::-webkit-scrollbar-thumb,
::-webkit-scrollbar-track {
border-radius: 5px;
}
// ::-webkit-scrollbar-corner,
// /* 滚动条角落 */
// ::-webkit-scrollbar-thumb,
// ::-webkit-scrollbar-track {
// border-radius: 5px;
// }
::-webkit-scrollbar-corner,
::-webkit-scrollbar-track {
/* 滚动条轨道 */
background-color: transparent !important;
box-shadow: unset !important;
}
// ::-webkit-scrollbar-corner,
// ::-webkit-scrollbar-track {
// /* 滚动条轨道 */
// background-color: transparent !important;
// box-shadow: unset !important;
// }
::-webkit-scrollbar-thumb {
background-color: rgba(144, 147, 153, .5);
/* 滚动条手柄 */
}
\ No newline at end of file
// ::-webkit-scrollbar-thumb {
// background-color: rgba(144, 147, 153, .5);
// /* 滚动条手柄 */
// }
\ No newline at end of file
......@@ -194,6 +194,7 @@ export default {
.demo {
width: 100%;
height: 100%;
opacity: 0.3;
// background: url("@/assets/img/demo/bg.png") no-repeat center;
}
</style>
\ No newline at end of file
......@@ -31,13 +31,16 @@
/>
</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>
<div class="mt20">
<a-table
:columns="columns"
:data-source="data"
:loading="loading"
:scroll="{ y: 590 }"
:pagination="false"
>
......@@ -49,9 +52,9 @@
<script>
import { getEventCensus } from "@/api/dataActuary.js";
import moment from "moment";
import product from "../mixins/product"
import product from "../mixins/product";
export default {
mixins:[product],
mixins: [product],
data() {
return {
queryform: {
......@@ -101,6 +104,7 @@ export default {
},
],
data: [],
loading: false,
};
},
mounted() {
......@@ -108,10 +112,12 @@ export default {
},
methods: {
getList() {
this.loading = true;
this.queryform.dateTimeStart = this.time ? this.time[0] : null;
this.queryform.dateTimeStart = this.time ? this.time[1] : null;
getEventCensus(this.queryform).then((res) => {
this.data = res.data.data;
this.loading = false;
});
},
},
......
......@@ -53,7 +53,8 @@ export default {
<style lang="less" scoped>
@headerH: 4.5rem;
.Container {
height: 100% !important;
width: 100%;
height: auto !important;
// background: #fac;
background: #f5f5f5;
display: flex;
......@@ -103,8 +104,8 @@ export default {
margin-left: 0.7rem !important;
}
}
/deep/.ant-tabs-bar{
margin: 0;
/deep/.ant-tabs-bar {
margin: 0;
}
}
</style>
......
......@@ -167,11 +167,9 @@ export default {
});
},
getList() {
this.queryform.dateTimeStart = this.time ? this.time[0] : null;
this.queryform.dateTimeStart = this.time ? this.time[1] : null;
getProductHotCensus(this.queryform).then((res) => {
console.log(res);
this.clickSum = res.data.clickSum;
this.data = res.data.top10List;
this.img =
......
<template>
<div class="Container">
<div class="main">
<div class="first_card">
<div class="breadMenu">
<Breadcrumb/>
</div>
<div class="searchBox">
<a-auto-complete
v-model="businessName"
:data-source="dataSource"
optionLabelProp="value"
style="width: 35.625rem"
placeholder="请输入业务名称搜索"
@select="onSelect"
@search="onSearch"
/>
<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 class="content_view">
<router-view keep-alive/>
</div>
</div>
</div>
<div class="Container">
<div class="main">
<div class="first_card">
<div class="breadMenu">
<Breadcrumb />
</div>
<div class="searchBox">
<a-space>
<a-auto-complete
v-model="businessName"
:data-source="dataSource"
optionLabelProp="value"
style="width: 35.625rem"
placeholder="请输入业务名称搜索"
@select="onSelect"
@search="onSearch"
/>
<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 class="content_view">
<router-view keep-alive />
</div>
</div>
</div>
</template>
<script>
import _ from 'lodash';
import axios from 'axios';
import _ from "lodash";
import axios from "axios";
import Breadcrumb from "./breadcrumb/index.vue";
import {userSiteBus} from '@/api/dataActuary'
import { userSiteBus } from "@/api/dataActuary";
export default {
components:{
Breadcrumb
},
data() {
return {
// 搜索框
businessName: '',
dataSource: [],
sourceList:[],
// dataList: [],
btnShow: false,
}
},
mounted() {
// this.getList()
},
created(){
},
computed:{
},
methods:{
startAnalysis() {
if(!this.businessName){
this.$message.error('请输入业务名称搜索')
}else{
let item = this.sourceList.filter(i=>{return i.name == this.businessName})[0]
if(item){
this.$router.push({ path: 'analysiscontent', query:{id:item.id}})
this.btnShow= true
}
}
},
backBase() {
this.$router.push({ path: 'basecontent'})
this.btnShow= false
this.businessName= ''
},
// async getList(){
// await axios.get('http://192.168.0.98:8090/inter/statistic/busList',{params: {siteid: 1}}).then((res)=>{
// if(res && res.status==200){
// res.data.data.forEach(item=>{
// this.dataList.push(item.name)
// })
// }
// })
// },
onSearch: _.debounce(function(val){
this.dataSource= []
userSiteBus({siteid: localStorage.getItem('siteId'),bus_name:val}).then(res => {
if (res.code == 1) {
this.sourceList = res.data;
res.data.forEach(r => {
this.dataSource.push(
r.name
);
});
}
})
},0),
onSelect(val){
this.businessName= val
}
},
}
components: {
Breadcrumb,
},
data() {
return {
// 搜索框
businessName: "",
dataSource: [],
sourceList: [],
// dataList: [],
btnShow: false,
};
},
mounted() {
// this.getList()
},
created() {},
computed: {},
methods: {
startAnalysis() {
if (!this.businessName) {
this.$message.error("请输入业务名称搜索");
} else {
let item = this.sourceList.filter((i) => {
return i.name == this.businessName;
})[0];
if (item) {
this.$router.push({
path: "analysiscontent",
query: { id: item.id },
});
this.btnShow = true;
}
}
},
backBase() {
this.$router.push({ path: "basecontent" });
this.btnShow = false;
this.businessName = "";
},
// async getList(){
// await axios.get('http://192.168.0.98:8090/inter/statistic/busList',{params: {siteid: 1}}).then((res)=>{
// if(res && res.status==200){
// res.data.data.forEach(item=>{
// this.dataList.push(item.name)
// })
// }
// })
// },
onSearch: _.debounce(function (val) {
this.dataSource = [];
userSiteBus({
siteid: localStorage.getItem("siteId"),
bus_name: val,
}).then((res) => {
if (res.code == 1) {
this.sourceList = res.data;
res.data.forEach((r) => {
this.dataSource.push(r.name);
});
}
});
}, 0),
onSelect(val) {
this.businessName = val;
},
},
};
</script>
<style lang="less" scoped>
@headerH: 4.5rem;
.Container {
height: 100% !important;
// background: #fac;
background: #f5f5f5;
display: flex;
flex-direction: column;
.main {
// background: #afc;
border-radius: 6px;
flex: 1;
overflow-y: auto;
overflow-x: hidden;
}
&::before {
content: "";
display: block;
width: 100%;
height: @headerH;
background: rgb(59, 135, 255);
background: -moz-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: -webkit-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
/deep/.ant-tabs-tab {
font-size: 14px !important;
& + .ant-tabs-tab {
margin: 0 !important;
margin-left: 0.7rem !important;
}
}
/deep/.ant-tabs-bar{
margin: 0;
}
@headerH: 4.5rem;
.Container {
height: 100% !important;
// background: #fac;
background: #f5f5f5;
display: flex;
flex-direction: column;
.main {
// background: #afc;
border-radius: 6px;
flex: 1;
overflow-y: auto;
overflow-x: hidden;
}
.first_card{
background: #FFF;
margin-bottom: .9375rem;
&::before {
content: "";
display: block;
width: 100%;
height: @headerH;
background: rgb(59, 135, 255);
background: -moz-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: -webkit-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
.breadMenu{
height: 2.8125rem;
line-height: 2.8125rem;
padding: 0 5rem;
border-bottom: 1px solid rgba(226, 226, 226, 1);
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
.searchBox{
height: 6.25rem;
display: flex;
justify-content: center;
align-items: center;
/deep/.ant-tabs-tab {
font-size: 14px !important;
& + .ant-tabs-tab {
margin: 0 !important;
margin-left: 0.7rem !important;
}
}
.content_view{
padding: 0 5rem;
/deep/.ant-tabs-bar {
margin: 0;
}
}
.first_card {
background: #fff;
margin-bottom: 0.9375rem;
}
.breadMenu {
height: 2.8125rem;
line-height: 2.8125rem;
padding: 0 5rem;
border-bottom: 1px solid rgba(226, 226, 226, 1);
}
.searchBox {
height: 6.25rem;
display: flex;
justify-content: center;
align-items: center;
}
.content_view {
padding: 0 5rem;
}
</style>
<template>
<div class="Container">
<div class="main">
<div class="first_card">
<div class="breadMenu">
<Breadcrumb/>
</div>
<div class="searchBox">
<!-- <a-auto-complete
<div class="Container">
<div class="main">
<div class="first_card">
<div class="breadMenu">
<Breadcrumb />
</div>
<div class="searchBox">
<!-- <a-auto-complete
v-model="businessName"
:data-source="dataSource"
optionLabelProp="value"
......@@ -15,155 +15,169 @@
@select="onSelect"
@search="onSearch"
/> -->
<!-- <a-select show-search placeholder="请输入业务名称搜索" style="width: 35.625rem"
<!-- <a-select show-search 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-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 class="content_view">
<router-view keep-alive/>
</div>
</div>
</div>
</template>
<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 class="content_view">
<router-view keep-alive />
</div>
</div>
</div>
</template>
<script>
import _ from 'lodash';
import axios from 'axios';
import Breadcrumb from "./breadcrumb/index.vue";
export default {
components:{
Breadcrumb
},
data() {
return {
// 搜索框
businessName: '',
dataSource: [],
dataList: [],
btnShow: false,
}
},
mounted() {
this.getList()
},
methods:{
startAnalysis() {
if(!this.businessName){
this.$message.error('请输入业务名称搜索')
}else{
this.$router.push({ path: 'analysiscontent', query:{name: this.businessName}})
this.btnShow= true
}
},
backBase() {
this.$router.push({ path: 'basecontent'})
this.btnShow= false
this.businessName= ''
},
async getList(){
await axios.get('http://192.168.0.98:8090/inter/statistic/busList',{params: {siteid: 1}}).then((res)=>{
if(res && res.status==200){
res.data.data.forEach(item=>{
this.dataList.push(item.name)
})
}
})
},
onSearch: _.debounce(function(val){
this.dataSource= []
this.dataList.forEach(item=>{
if(item.indexOf(val) !== -1){
this.dataSource.push(item)
}
})
}, 1000),
onSelect(val){
this.businessName= val
}
}
}
</script>
import _ from "lodash";
import axios from "axios";
import Breadcrumb from "./breadcrumb/index.vue";
export default {
components: {
Breadcrumb,
},
data() {
return {
// 搜索框
businessName: "",
dataSource: [],
dataList: [],
btnShow: false,
};
},
mounted() {
this.getList();
},
methods: {
startAnalysis() {
if (!this.businessName) {
this.$message.error("请输入业务名称搜索");
} else {
this.$router.push({
path: "analysiscontent",
query: { name: this.businessName },
});
this.btnShow = true;
}
},
backBase() {
this.$router.push({ path: "basecontent" });
this.btnShow = false;
this.businessName = "";
},
async getList() {
await axios
.get("http://192.168.0.98:8090/inter/statistic/busList", {
params: { siteid: 1 },
})
.then((res) => {
if (res && res.status == 200) {
res.data.data.forEach((item) => {
this.dataList.push(item.name);
});
}
});
},
onSearch: _.debounce(function (val) {
this.dataSource = [];
this.dataList.forEach((item) => {
if (item.indexOf(val) !== -1) {
this.dataSource.push(item);
}
});
}, 1000),
onSelect(val) {
this.businessName = val;
},
},
};
</script>
<style lang="less" scoped>
@headerH: 4.5rem;
.Container {
height: 100% !important;
// background: #fac;
background: #f5f5f5;
display: flex;
flex-direction: column;
.main {
// background: #afc;
border-radius: 6px;
flex: 1;
overflow-y: auto;
overflow-x: hidden;
}
&::before {
content: "";
display: block;
width: 100%;
height: @headerH;
background: rgb(59, 135, 255);
background: -moz-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: -webkit-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
/deep/.ant-tabs-tab {
font-size: 14px !important;
& + .ant-tabs-tab {
margin: 0 !important;
margin-left: 0.7rem !important;
}
}
/deep/.ant-tabs-bar{
margin: 0;
}
@headerH: 4.5rem;
.Container {
height: 100% !important;
// background: #fac;
background: #f5f5f5;
display: flex;
flex-direction: column;
.main {
// background: #afc;
border-radius: 6px;
flex: 1;
overflow-y: auto;
overflow-x: hidden;
}
.first_card{
background: #FFF;
margin-bottom: .9375rem;
&::before {
content: "";
display: block;
width: 100%;
height: @headerH;
background: rgb(59, 135, 255);
background: -moz-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: -webkit-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
.breadMenu{
height: 2.8125rem;
line-height: 2.8125rem;
padding: 0 5rem;
border-bottom: 1px solid rgba(226, 226, 226, 1);
/deep/.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
.searchBox{
height: 6.25rem;
display: flex;
justify-content: center;
align-items: center;
/deep/.ant-tabs-tab {
font-size: 14px !important;
& + .ant-tabs-tab {
margin: 0 !important;
margin-left: 0.7rem !important;
}
}
.content_view{
padding: 0 5rem;
/deep/.ant-tabs-bar {
margin: 0;
}
</style>
}
.first_card {
background: #fff;
margin-bottom: 0.9375rem;
}
.breadMenu {
height: 2.8125rem;
line-height: 2.8125rem;
padding: 0 5rem;
border-bottom: 1px solid rgba(226, 226, 226, 1);
}
.searchBox {
height: 6.25rem;
display: flex;
justify-content: center;
align-items: center;
}
.content_view {
padding: 0 5rem;
}
</style>
\ No newline at end of file
<template>
<div class="actuary w-full h-auto">
<Start class="start"/>
<Start class="start" />
<div class="act_cont">
<div class="act_tit">
<h1>智慧政务数据精算</h1>
<p>
<p class="text-center">
运用以人工智能为代表的新技术,驱动政务服务模式创新,为人民提供更加智慧化、人性化的政务服务,实现互联网与政务服务深度融合,大幅提升政务服务智慧化水平,让政府服务更聪明,让企业和市民办事更方便、更快捷、更有效率。
</p>
</div>
<div class="over_act_mod">
<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"
@click="handleJump(item.url)"
@mouseover="hoverItem(index)"
@mouseleave="hoverleave(index)"
:style="{background: `url(${require('@/assets/images/dataActuary/'+(index+1)+'.png')}) no-repeat`}">
<div class="actitem_tit">
{{item.name}}
</div>
:style="{
background: `url(${require('@/assets/images/dataActuary/' +
(index + 1) +
'.png')}) no-repeat`,
}"
>
<div class="actitem_tit">{{ item.name }}</div>
<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>
......@@ -31,8 +42,9 @@
<script>
import menu from "@/mixins/menu";
import Start from "./ParticleWavy.vue";
import { mapState } from "vuex";
import Storage from "@/utils/js/Storage";
import Start from "./demo2"
export default {
mixins: [menu],
data() {
......@@ -41,8 +53,12 @@ export default {
menuPermission: [],
};
},
components:{
Start
components: {
Start,
},
computed: {
...mapState("user", ["userData", "token"]),
},
created() {
......@@ -52,30 +68,45 @@ export default {
},
methods: {
hoverItem(index){
this.menuPermission[index].hover = true
this.$refs.mode.style.transition="all 1s ease 0s";
hoverItem(index) {
this.menuPermission[index].hover = true;
this.$refs.mode.style.transition = "all 1s ease 0s";
// 如果大于6就要往前移动
if(index>5){
let num = index-5
this.$refs.mode.style.transform="translateX(-"+num*190+"px)";
this.$forceUpdate()
let listlength = this.menuPermission.length;
if (listlength > 6) {
if (listlength % 2 == 1) {
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){
this.$refs.mode.style.transform="translate(0, 0)";
this.$refs.mode.style.transition="all .5s ease 0s";
this.menuPermission[index].hover = false
this.$forceUpdate()
hoverleave(index) {
this.$refs.mode.style.transform = "translate(0, 0)";
this.$refs.mode.style.paddingLeft = "0px";
// this.$refs.mode.style.paddingRight = "0px";
this.$refs.mode.style.transition = "all .5s ease 0s";
this.menuPermission[index].hover = false;
this.$forceUpdate();
},
// 跳转
handleJump(url) {
this.$router.push(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);
}
},
// 获取子菜单权限
getChildrenPermission() {
let { menuList } = Storage.get(2, "userInfo");
let { menuList } = this.userData;
let actuary = menuList.filter((v) => v.name === "数据精算");
if (actuary.length) {
let arr = actuary
......@@ -87,10 +118,10 @@ export default {
}
})
.flat();
arr.forEach(item=>{
item.hover = false
})
this.menuPermission = arr
arr.forEach((item) => {
item.hover = false;
});
this.menuPermission = arr;
}
},
},
......@@ -98,8 +129,7 @@ export default {
</script>
<style lang="less" scoped>
@headerH: 4.5rem;
@keyframes startopen{
@keyframes startopen {
0% {
width: 170px;
}
......@@ -107,7 +137,7 @@ export default {
width: 551px;
}
}
@keyframes leaveopen{
@keyframes leaveopen {
0% {
width: 551px;
background-size: 100% 100%;
......@@ -117,7 +147,7 @@ export default {
width: 170px;
}
}
.start{
.start {
position: absolute;
bottom: 0;
z-index: 0;
......@@ -126,7 +156,6 @@ export default {
.actuary {
background: url("~@/assets/images/dataActuary/bg.png") center no-repeat;
background-size: cover;
padding-top: @headerH;
.act_cont {
margin: 120px auto;
......@@ -143,100 +172,117 @@ export default {
color: #ffffff;
font-size: 53px;
font-family: FZZhengHeiS-EB-GB;
color: #FFFFFF;
color: #ffffff;
line-height: 64px;
letter-spacing: 6px;
background: linear-gradient(0deg, #D2F8FF 0%, #FFFFFF 88.37890625%);
-webkit-background-clip: text;
background: linear-gradient(0deg, #d2f8ff 0%, #ffffff 88.37890625%);
background-clip: text;
-webkit-text-fill-color: transparent;
}
p {
padding-top: 20px;
text-align: left;
font-size: 22px;
font-family: Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
color: #ffffff;
line-height: 34px;
}
}
.over_act_mod{
.over_act_mod {
width: 1520px;
overflow: hidden;
margin: 50px auto 0;
}
.act_mod {
display: flex;
justify-content: space-between;
// justify-content: space-between;
justify-content: center;
transition: all 1s ease 0s;
.act_mod_item:hover{
.act_mod_item:hover {
// animation: startopen 1s normal 1 forwards;
transition: all 1s ease 0s;
overflow: hidden;
flex-shrink: 0;
width: 551px;
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%;
border-radius: 12px;
box-sizing: border-box;
padding: 90px 50px;
.actitem_tit{
.actitem_tit {
width: 350px;
font-size: 31px;
font-family: Source Han Sans CN;
font-weight: bold;
color: #FFFFFF;
line-height: 59px;
color: #ffffff;
padding: 0;
margin-bottom: 20px;
}
.actitem_tit::before{
.actitem_tit::before {
content: none;
}
.actitem_p{
.actitem_p {
width: 350px;
font-size: 16px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #FFFFFF;
color: #ffffff;
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;
transition: all .5s ease 0s;
transition: all 0.5s ease 0s;
flex-shrink: 0;
width: 170px;
height: 450px;
border-radius: 12px;
margin:0 10px;
.actitem_p{
margin: 0 10px;
.actitem_p {
padding: 0 10px;
font-size: 12px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #0857E8;
color: #0857e8;
line-height: 38px;
opacity: 0.7;
}
.actitem_tit{
.actitem_tit {
font-size: 20px;
font-family: Source Han Sans CN;
font-weight: bold;
color: #0857E8;
color: #0857e8;
line-height: 38px;
padding:40px 10px 8px;
padding: 40px 10px 8px;
position: relative;
}
.actitem_tit::before{
.actitem_tit::before {
content: "";
position: absolute;
left: 10px;
bottom: 0;
width: 30px;
height: 2px;
background: linear-gradient(to bottom right, #0857E8, #fff);
background: linear-gradient(to bottom right, #0857e8, #fff);
}
}
}
......
<template>
<div>
<a-table
style="width: 1500px"
size="middle"
:columns="columns"
:data-source="tableData"
......@@ -182,8 +181,8 @@ export default {
...this.searchForm,
...searchForm,
});
if (res.data.code == 1) {
let { data, total } = res.data.data;
if (res.code == 1) {
let { data, total } = res.data;
list = data;
listTotal = total;
}
......
<template>
<div>
<a-table
style="width: 1500px"
size="middle"
:columns="columns"
:data-source="tableData"
:loading="loading"
:scroll="{
x: 1000,
y: 490,
}"
:row-selection="{
......@@ -195,8 +195,8 @@ export default {
alarmTimeEnd: this.searchForm.time[1],
...searchForm,
});
if (res.data.code == 1) {
let { data, total } = res.data.data;
if (res.code == 1) {
let { data, total } = res.data;
list = data;
listTotal = total;
}
......
<template>
<div>
<a-table
style="width: 1500px"
size="middle"
:columns="columns"
:data-source="tableData"
......@@ -187,8 +186,8 @@ export default {
this.total = total;
this.tableData = data;
let res = await getCountImpossible({ ...this.searchForm });
if (res.data.code == 1) {
let { reply_count, count } = res.data.data;
if (res.code == 1) {
let { reply_count, count } = res.data;
this.$emit("update", {
total: count,
reply_count: reply_count,
......@@ -209,8 +208,8 @@ export default {
...this.searchForm,
...searchForm,
});
if (res.data.code == 1) {
let { data, total } = res.data.data;
if (res.code == 1) {
let { data, total } = res.data;
list = data;
listTotal = total;
}
......@@ -312,7 +311,7 @@ export default {
getImpossibleInfo({
id: id,
}).then((res) => {
const { code, data } = res.data;
const { code, data } = res;
if (code == 1) {
this.$refs.FormDetails.fromData = data;
this.visible = true;
......
<template>
<div>
<a-table
style="width: 1500px"
size="middle"
:columns="columns"
:data-source="tableData"
:loading="loading"
:scroll="{
x: 1000,
y: 490,
}"
:row-selection="{
......@@ -242,9 +242,9 @@ export default {
...this.searchForm,
...searchForm,
});
if (res.data.code == 1) {
if (res.code == 1) {
let { data, total, picturesCount, trial, videosCount, designer } =
res.data.data;
res.data;
list = data;
listTotal = total;
picturesCount_total = picturesCount;
......
......@@ -105,8 +105,8 @@ export default {
this.loading = true;
this.designType = type;
let res = await picInfoList({ customerId });
if (res.data.code == 1) {
let { data } = res.data.data;
if (res.code == 1) {
let { data } = res.data;
this.designList = data.filter((v) => v.designType == type) || [];
}
this.loading = false;
......
<template>
<div>
<a-table
style="width: 1500px"
size="middle"
:columns="columns"
:data-source="tableData"
......@@ -277,8 +276,8 @@ export default {
...this.searchForm,
...searchForm,
});
if (res.data.code == 1) {
let { data, total } = res.data.data.data;
if (res.code == 1) {
let { data, total } = res.data.data;
list = data;
listTotal = total;
}
......@@ -385,8 +384,8 @@ export default {
// 详情
async checkInfo(id) {
let res = await getEvaData({ id });
if (res.data.code == 1) {
let { data } = res.data;
if (res.code == 1) {
let { data } = res;
this.title = "评价详情";
this.detailsInfo = data;
this.detailsVisible = true;
......@@ -407,7 +406,7 @@ export default {
let res = await getEvaDetil({
id,
});
let { code, msg } = res.data;
let { code, msg } = res;
if (code == 1) {
_this.$message.success(msg);
_this.getEvaList();
......
<template>
<div>
<a-table
style="width: 1500px"
size="middle"
:columns="columns"
:data-source="tableData"
......@@ -274,8 +273,8 @@ export default {
...this.searchForm,
...searchForm,
});
if (res.data.code == 1) {
let { data, total } = res.data.data.data;
if (res.code == 1) {
let { data, total } = res.data.data;
list = data;
listTotal = total;
}
......@@ -382,8 +381,8 @@ export default {
// 详情
async checkInfo(id) {
let res = await getQueEvaData({ id });
if (res.data.code == 1) {
let { data } = res.data;
if (res.code == 1) {
let { data } = res;
this.detailsInfo = data;
this.detailsVisible = true;
}
......@@ -403,7 +402,7 @@ export default {
let res = await getEvaDetil({
id,
});
let { code, msg } = res.data;
let { code, msg } = res;
if (code == 1) {
_this.$message.success(msg);
_this.getEvaList();
......
<template>
<div>
<a-table
style="width: 1500px"
size="middle"
:columns="columns"
:data-source="tableData"
:loading="loading"
:scroll="{
x: 1500,
y: 490,
}"
:row-selection="{
......@@ -274,8 +274,8 @@ export default {
...this.searchForm,
...searchForm,
});
if (res.data.code == 1) {
let { data, total } = res.data.data.data;
if (res.code == 1) {
let { data, total } = res.data.data;
list = data;
listTotal = total;
}
......@@ -382,8 +382,8 @@ export default {
// 详情
async checkInfo(id) {
let res = await getEvaData({ id });
if (res.data.code == 1) {
let { data } = res.data;
if (res.code == 1) {
let { data } = res;
this.title = "评价详情";
this.detailsInfo = data;
this.detailsVisible = true;
......@@ -404,7 +404,7 @@ export default {
let res = await getEvaDetil({
id,
});
let { code, msg } = res.data;
let { code, msg } = res;
if (code == 1) {
_this.$message.success(msg);
_this.getEvaList();
......
<template>
<div>
<a-table
style="width: 1500px"
size="middle"
:columns="columns"
:data-source="tableData"
......@@ -224,8 +223,8 @@ export default {
pramse.materialName = `%${this.searchForm.searchName}%`;
}
let res = await getPrintList(pramse);
if (res.data.code == 1) {
let { data, total } = res.data.data;
if (res.code == 1) {
let { data, total } = res.data;
this.total = total;
this.tableData = data;
this.$emit("update", { total, time: this.searchForm.time });
......
<template>
<div>
<a-table
style="width: 1500px"
size="middle"
:columns="columns"
:data-source="tableData"
......@@ -293,8 +292,8 @@ export default {
...this.searchForm,
...searchForm,
});
if (res.data.code == 1) {
let { data, total } = res.data.data;
if (res.code == 1) {
let { data, total } = res.data;
list = data;
listTotal = total;
}
......@@ -385,8 +384,8 @@ export default {
// 详情
async checkInfo({ id }) {
let res = await getOrderinfo({ id });
if (res.data.code == 1) {
this.detailsInfo = res.data.data;
if (res.code == 1) {
this.detailsInfo = res.data;
this.visible = true;
}
},
......
......@@ -94,6 +94,7 @@ export default {
<style lang="less" scoped>
@headerH: 4.5rem;
#dataAnalyse-Container {
width: 100%;
height: 100% !important;
background: #eee;
display: flex;
......
This diff is collapsed.
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