Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart_gov_platform
Commits
d0eb3bec
Commit
d0eb3bec
authored
Sep 07, 2023
by
廖旭伟
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
0a00901d
e3a722de
Changes
14
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1136 additions
and
785 deletions
+1136
-785
base-manager-ui/admin/package.json
base-manager-ui/admin/package.json
+1
-0
base-manager-ui/admin/src/assets/css/common.less
base-manager-ui/admin/src/assets/css/common.less
+17
-10
base-manager-ui/admin/src/store/index.js
base-manager-ui/admin/src/store/index.js
+6
-5
base-manager-ui/admin/src/utils/util.js
base-manager-ui/admin/src/utils/util.js
+50
-1
base-manager-ui/admin/yarn.lock
base-manager-ui/admin/yarn.lock
+5
-0
portal-manager-ui/admin/src/assets/css/common.less
portal-manager-ui/admin/src/assets/css/common.less
+8
-1
portal-manager-ui/admin/src/store/index.js
portal-manager-ui/admin/src/store/index.js
+6
-5
portal-manager-ui/admin/src/utils/index.js
portal-manager-ui/admin/src/utils/index.js
+63
-0
portal-manager-ui/admin/src/views/dataActuary/behaviour/pathanalyse/pathAnalyse.vue
...c/views/dataActuary/behaviour/pathanalyse/pathAnalyse.vue
+18
-11
portal-manager-ui/admin/src/views/dataActuary/behaviour/product/product.vue
...admin/src/views/dataActuary/behaviour/product/product.vue
+4
-2
portal-manager-ui/admin/src/views/dataActuary/behaviour/usinghabit/usinghabit.vue
...src/views/dataActuary/behaviour/usinghabit/usinghabit.vue
+279
-221
portal-manager-ui/admin/src/views/dataActuary/portrayal/portrayalBase/index.vue
...n/src/views/dataActuary/portrayal/portrayalBase/index.vue
+677
-529
portal-manager-ui/admin/src/views/dataAdmin/components/queueCall/callRecord.vue
...n/src/views/dataAdmin/components/queueCall/callRecord.vue
+1
-0
portal-manager-ui/admin/src/views/dataAdmin/components/queueCall/queueRecord.vue
.../src/views/dataAdmin/components/queueCall/queueRecord.vue
+1
-0
No files found.
base-manager-ui/admin/package.json
View file @
d0eb3bec
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
"china-division"
:
"^2.5.0"
,
"china-division"
:
"^2.5.0"
,
"clipboard"
:
"^2.0.6"
,
"clipboard"
:
"^2.0.6"
,
"core-js"
:
"^3.6.5"
,
"core-js"
:
"^3.6.5"
,
"crypto-js"
:
"^4.1.1"
,
"date-fns"
:
"^2.14.0"
,
"date-fns"
:
"^2.14.0"
,
"echarts"
:
"^5.2.2"
,
"echarts"
:
"^5.2.2"
,
"element-china-area-data"
:
"^5.0.2"
,
"element-china-area-data"
:
"^5.0.2"
,
...
...
base-manager-ui/admin/src/assets/css/common.less
View file @
d0eb3bec
...
@@ -31,16 +31,17 @@
...
@@ -31,16 +31,17 @@
border-bottom: 1px solid rgb(224, 224, 224) !important;
border-bottom: 1px solid rgb(224, 224, 224) !important;
}
}
.ant-tabs-tab{
.ant-tabs-tab
{
font-weight: bold;
font-weight: bold;
color: rgba(0, 0, 0, 0.65);
color: rgba(0, 0, 0, 0.65);
i{
i
{
color:
#1890ff
color:
#1890ff;
}
}
}
}
.ant-spin-nested-loading,.ant-spin-container{
.ant-spin-nested-loading,
width:100%;
.ant-spin-container {
height:100%;
width: 100%;
height: 100%;
}
}
/* 溢出表格滚动条 */
/* 溢出表格滚动条 */
/* 表格 */
/* 表格 */
...
@@ -56,10 +57,9 @@
...
@@ -56,10 +57,9 @@
tr:only-child > th:last-child {
tr:only-child > th:last-child {
border-right-color: #f0f0f0 !important;
border-right-color: #f0f0f0 !important;
}
}
}
}
.ant-table-placeholder{
.ant-table-placeholder
{
width:
calc(100% - 6px)
width:
calc(100% - 6px);
}
}
.ant-table-header {
.ant-table-header {
background: #fff;
background: #fff;
...
@@ -119,3 +119,10 @@
...
@@ -119,3 +119,10 @@
// justify-content:space-between;
// justify-content:space-between;
// margin-bottom: 20px;
// margin-bottom: 20px;
// }
// }
// 统一设置表格为空时的展示
.ant-table-tbody {
td:empty::after {
content: "--";
}
}
base-manager-ui/admin/src/store/index.js
View file @
d0eb3bec
...
@@ -2,8 +2,9 @@ import Vue from "vue";
...
@@ -2,8 +2,9 @@ import Vue from "vue";
import
Vuex
from
"
vuex
"
;
import
Vuex
from
"
vuex
"
;
import
modules
from
"
./modules
"
;
import
modules
from
"
./modules
"
;
import
createPersistedState
from
"
vuex-persistedstate
"
;
import
createPersistedState
from
"
vuex-persistedstate
"
;
import
SecureLS
from
"
secure-ls
"
;
// import SecureLS from "secure-ls";
var
ls
=
new
SecureLS
({
isCompression
:
false
});
// var ls = new SecureLS({ isCompression: false });
import
{
SessionCrypto
}
from
"
@/utils/util
"
;
Vue
.
use
(
Vuex
);
Vue
.
use
(
Vuex
);
const
store
=
new
Vuex
.
Store
({
const
store
=
new
Vuex
.
Store
({
modules
,
modules
,
...
@@ -15,9 +16,9 @@ const store = new Vuex.Store({
...
@@ -15,9 +16,9 @@ const store = new Vuex.Store({
createPersistedState
({
createPersistedState
({
key
:
"
info
"
,
key
:
"
info
"
,
storage
:
{
storage
:
{
getItem
:
(
key
)
=>
ls
.
get
(
key
),
getItem
:
(
key
)
=>
SessionCrypto
.
getItem
(
key
),
setItem
:
(
key
,
value
)
=>
ls
.
set
(
key
,
value
),
setItem
:
(
key
,
value
)
=>
SessionCrypto
.
setItem
(
key
,
value
),
removeItem
:
(
key
)
=>
ls
.
remove
(
key
),
removeItem
:
(
key
)
=>
SessionCrypto
.
remove
(
key
),
},
},
}),
}),
],
],
...
...
base-manager-ui/admin/src/utils/util.js
View file @
d0eb3bec
import
enquireJs
from
"
enquire.js
"
;
import
enquireJs
from
"
enquire.js
"
;
import
CryptoJS
from
"
crypto-js
"
;
export
function
isDef
(
v
)
{
export
function
isDef
(
v
)
{
return
v
!==
undefined
&&
v
!==
null
;
return
v
!==
undefined
&&
v
!==
null
;
}
}
...
@@ -62,3 +62,52 @@ export const extractTree = (arrs, childs, attrArr) => {
...
@@ -62,3 +62,52 @@ export const extractTree = (arrs, childs, attrArr) => {
};
};
return
getObj
(
arrs
);
return
getObj
(
arrs
);
};
};
/**
* 加密存储临时数据并解析对象
*/
const
aseKey
=
"
**_FXxx_1234_KEY
"
;
const
KEY
=
"
KEY_EXTRA
"
;
export
class
SessionCrypto
{
// 加密
static
setItem
(
key
=
KEY
,
value
=
""
)
{
if
(
typeof
key
===
"
string
"
)
{
const
stringify
=
JSON
.
stringify
(
value
);
const
encrypt
=
CryptoJS
.
AES
.
encrypt
(
stringify
,
CryptoJS
.
enc
.
Utf8
.
parse
(
aseKey
),
{
mode
:
CryptoJS
.
mode
.
ECB
,
padding
:
CryptoJS
.
pad
.
Pkcs7
,
}
).
toString
();
window
.
sessionStorage
.
setItem
(
key
,
encrypt
);
return
encrypt
;
}
}
// 解密
static
getItem
(
key
=
KEY
)
{
const
ssStr
=
window
.
sessionStorage
.
getItem
(
key
)
||
""
;
try
{
if
(
ssStr
)
{
const
decrypt
=
CryptoJS
.
AES
.
decrypt
(
ssStr
,
CryptoJS
.
enc
.
Utf8
.
parse
(
aseKey
),
{
mode
:
CryptoJS
.
mode
.
ECB
,
padding
:
CryptoJS
.
pad
.
Pkcs7
,
}
).
toString
(
CryptoJS
.
enc
.
Utf8
);
const
parseStr
=
JSON
.
parse
(
decrypt
);
return
parseStr
;
}
return
""
;
}
catch
(
e
)
{
return
""
;
}
}
// 删除
static
remove
(
key
)
{
window
.
sessionStorage
.
removeItem
(
key
);
}
}
base-manager-ui/admin/yarn.lock
View file @
d0eb3bec
...
@@ -3676,6 +3676,11 @@ crypto-js@^3.1.6:
...
@@ -3676,6 +3676,11 @@ crypto-js@^3.1.6:
resolved "https://registry.npmmirror.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b"
resolved "https://registry.npmmirror.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b"
integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==
integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==
crypto-js@^4.1.1:
version "4.1.1"
resolved "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==
crypto-random-string@^2.0.0:
crypto-random-string@^2.0.0:
version "2.0.0"
version "2.0.0"
resolved "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz?cache=0&sync_timestamp=1583560482221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-2.0.0.tgz"
resolved "https://registry.npm.taobao.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz?cache=0&sync_timestamp=1583560482221&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-random-string%2Fdownload%2Fcrypto-random-string-2.0.0.tgz"
...
...
portal-manager-ui/admin/src/assets/css/common.less
View file @
d0eb3bec
...
@@ -777,3 +777,10 @@ img {
...
@@ -777,3 +777,10 @@ img {
// }
// }
// }
// }
// }
// }
// 统一设置表格为空时的展示
.ant-table-tbody {
td:empty::after {
content: "--";
}
}
\ No newline at end of file
portal-manager-ui/admin/src/store/index.js
View file @
d0eb3bec
...
@@ -2,9 +2,10 @@ import Vue from "vue";
...
@@ -2,9 +2,10 @@ import Vue from "vue";
import
Vuex
from
"
vuex
"
;
import
Vuex
from
"
vuex
"
;
import
modules
from
"
./modules
"
;
import
modules
from
"
./modules
"
;
import
createPersistedState
from
"
vuex-persistedstate
"
;
import
createPersistedState
from
"
vuex-persistedstate
"
;
import
SecureLS
from
"
secure-ls
"
;
//
import SecureLS from "secure-ls";
var
ls
=
new
SecureLS
({
isCompression
:
false
});
//
var ls = new SecureLS({ isCompression: false });
import
VuexReset
from
"
@ianwalter/vuex-reset
"
;
import
VuexReset
from
"
@ianwalter/vuex-reset
"
;
import
{
SessionCrypto
}
from
"
@/utils
"
;
// import persistedState from 'vuex-persistedstate'
// import persistedState from 'vuex-persistedstate'
Vue
.
use
(
Vuex
);
Vue
.
use
(
Vuex
);
const
store
=
new
Vuex
.
Store
({
const
store
=
new
Vuex
.
Store
({
...
@@ -16,9 +17,9 @@ const store = new Vuex.Store({
...
@@ -16,9 +17,9 @@ const store = new Vuex.Store({
createPersistedState
({
createPersistedState
({
key
:
"
info
"
,
key
:
"
info
"
,
storage
:
{
storage
:
{
getItem
:
(
key
)
=>
ls
.
get
(
key
),
getItem
:
(
key
)
=>
SessionCrypto
.
getItem
(
key
),
setItem
:
(
key
,
value
)
=>
ls
.
set
(
key
,
value
),
setItem
:
(
key
,
value
)
=>
SessionCrypto
.
setItem
(
key
,
value
),
removeItem
:
(
key
)
=>
ls
.
remove
(
key
),
removeItem
:
(
key
)
=>
SessionCrypto
.
remove
(
key
),
},
},
}),
}),
],
],
...
...
portal-manager-ui/admin/src/utils/index.js
View file @
d0eb3bec
...
@@ -16,3 +16,66 @@ export let encrypt = (str, keyStr, ivStr) => {
...
@@ -16,3 +16,66 @@ export let encrypt = (str, keyStr, ivStr) => {
return
encrypted
.
toString
();
return
encrypted
.
toString
();
};
};
// 解密
export
const
decrypt
=
(
word
,
keyStr
,
ivStr
)
=>
{
keyStr
=
keyStr
?
keyStr
:
"
0000000671595991
"
;
ivStr
=
ivStr
?
ivStr
:
"
tdrdadq59tbss5n7
"
;
let
key
=
CryptoJS
.
enc
.
Utf8
.
parse
(
keyStr
);
let
iv
=
CryptoJS
.
enc
.
Utf8
.
parse
(
ivStr
);
let
decrypt
=
CryptoJS
.
AES
.
decrypt
(
word
,
key
,
{
iv
,
mode
:
CryptoJS
.
mode
.
CBC
,
padding
:
CryptoJS
.
pad
.
Pkcs7
,
});
return
decrypt
.
toString
(
CryptoJS
.
enc
.
Utf8
);
};
/**
* 加密存储临时数据并解析对象
*/
const
aseKey
=
"
**_FXxx_1234_KEY
"
;
const
KEY
=
"
KEY_EXTRA
"
;
export
class
SessionCrypto
{
// 加密
static
setItem
(
key
=
KEY
,
value
=
""
)
{
if
(
typeof
key
===
"
string
"
)
{
const
stringify
=
JSON
.
stringify
(
value
);
const
encrypt
=
CryptoJS
.
AES
.
encrypt
(
stringify
,
CryptoJS
.
enc
.
Utf8
.
parse
(
aseKey
),
{
mode
:
CryptoJS
.
mode
.
ECB
,
padding
:
CryptoJS
.
pad
.
Pkcs7
,
}
).
toString
();
window
.
sessionStorage
.
setItem
(
key
,
encrypt
);
return
encrypt
;
}
}
// 解密
static
getItem
(
key
=
KEY
)
{
const
ssStr
=
window
.
sessionStorage
.
getItem
(
key
)
||
""
;
try
{
if
(
ssStr
)
{
const
decrypt
=
CryptoJS
.
AES
.
decrypt
(
ssStr
,
CryptoJS
.
enc
.
Utf8
.
parse
(
aseKey
),
{
mode
:
CryptoJS
.
mode
.
ECB
,
padding
:
CryptoJS
.
pad
.
Pkcs7
,
}
).
toString
(
CryptoJS
.
enc
.
Utf8
);
const
parseStr
=
JSON
.
parse
(
decrypt
);
return
parseStr
;
}
return
""
;
}
catch
(
e
)
{
return
""
;
}
}
// 删除
static
remove
(
key
)
{
window
.
sessionStorage
.
removeItem
(
key
);
}
}
portal-manager-ui/admin/src/views/dataActuary/behaviour/pathanalyse/pathAnalyse.vue
View file @
d0eb3bec
...
@@ -80,13 +80,20 @@ export default {
...
@@ -80,13 +80,20 @@ export default {
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
;
getWayAccessAnalyse
(
this
.
queryform
).
then
((
res
)
=>
{
getWayAccessAnalyse
(
this
.
queryform
).
then
((
res
)
=>
{
let
data
=
res
.
data
.
data
.
map
((
item
,
i
)
=>
let
newobj
=
{};
item
.
code
!=
"
/sceneSignIn
"
let
data
=
res
.
data
.
data
.
reduce
((
preVal
,
curVal
)
=>
{
?
{
newobj
[
curVal
.
name
]
name
:
item
.
name
,
?
""
}
:
(
newobj
[
curVal
.
name
]
=
preVal
.
push
(
curVal
));
:
""
return
preVal
;
);
},
[]);
// let data = res.data.data.map((item, i) =>
// item.code != "/sceneSignIn"
// ? {
// name: item.name,
// }
// : ""
// );
let
links
=
res
.
data
.
links
.
map
((
item
)
=>
({
let
links
=
res
.
data
.
links
.
map
((
item
)
=>
({
source
:
item
.
sourceName
,
source
:
item
.
sourceName
,
target
:
item
.
targetName
,
target
:
item
.
targetName
,
...
@@ -96,7 +103,7 @@ export default {
...
@@ -96,7 +103,7 @@ export default {
},
},
}));
}));
data
=
data
.
filter
((
v
)
=>
v
);
data
=
data
.
filter
((
v
)
=>
v
);
links
=
links
.
filter
((
v
)
=>
v
.
target
!=
"
首页
"
);
links
=
links
.
filter
((
v
)
=>
v
.
target
!=
"
首页
"
&&
v
.
target
!=
v
.
source
);
this
.
init
(
data
,
links
);
this
.
init
(
data
,
links
);
});
});
},
},
...
...
portal-manager-ui/admin/src/views/dataActuary/behaviour/product/product.vue
View file @
d0eb3bec
...
@@ -217,12 +217,14 @@ export default {
...
@@ -217,12 +217,14 @@ export default {
display: flex;
display: flex;
.img-dv {
.img-dv {
width: 60%
;
flex: 1
;
margin: 100px;
margin: 100px;
height: 600px;
position: relative;
position: relative;
img {
img {
width: 100%;
width: 100%;
height: 100%;
}
}
#queuing {
#queuing {
...
@@ -236,7 +238,7 @@ export default {
...
@@ -236,7 +238,7 @@ export default {
}
}
.list-dv {
.list-dv {
width:
40
%;
width:
55
%;
min-height: 100%;
min-height: 100%;
border-left: solid 1px #efefef;
border-left: solid 1px #efefef;
box-sizing: border-box;
box-sizing: border-box;
...
...
portal-manager-ui/admin/src/views/dataActuary/behaviour/usinghabit/usinghabit.vue
View file @
d0eb3bec
<
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-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"time"
style=
"width: 300px"
:allowClear=
"false"
/>
<a-range-picker
valueFormat=
"yyyy-MM-DD"
v-model=
"time"
style=
"width: 300px"
:allowClear=
"false"
/>
</a-form-model-item>
</a-form-model-item>
<a-form-model-item>
<a-form-model-item>
<a-button
type=
"primary"
class=
"addclass"
@
click=
"getData"
>
<a-button
type=
"primary"
class=
"addclass"
@
click=
"getData"
>
...
@@ -27,187 +45,225 @@
...
@@ -27,187 +45,225 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
*
as
echarts
from
'
echarts
'
import
*
as
echarts
from
"
echarts
"
;
import
moment
from
'
moment
'
;
import
moment
from
"
moment
"
;
import
{
getUsageCensus
}
from
'
@/api/dataActuary.js
'
import
{
getUsageCensus
}
from
"
@/api/dataActuary.js
"
;
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
"
),
pageCode
:
'
/
'
pageCode
:
"
/
"
,
},
},
time
:
[
moment
().
format
(
'
yyyy-MM-DD
'
),
moment
().
format
(
'
yyyy-MM-DD
'
)],
time
:
[
moment
().
format
(
"
yyyy-MM-DD
"
),
moment
().
format
(
"
yyyy-MM-DD
"
)],
product
:
[{
product
:
[
title
:
'
排队机
'
,
{
id
:
1
title
:
"
排队机
"
,
}],
id
:
1
,
},
],
labelCol
:
{
labelCol
:
{
span
:
1
span
:
1
,
},
},
wrapperCol
:
{
wrapperCol
:
{
span
:
14
span
:
14
,
},
},
}
};
},
},
mounted
()
{
mounted
()
{
this
.
getData
()
this
.
getData
();
},
},
methods
:
{
methods
:
{
getData
()
{
getData
()
{
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
0
]
:
null
this
.
queryform
.
dateTimeStart
=
this
.
time
?
this
.
time
[
0
]
:
null
;
this
.
queryform
.
dateTimeEnd
=
this
.
time
?
this
.
time
[
1
]
:
null
this
.
queryform
.
dateTimeEnd
=
this
.
time
?
this
.
time
[
1
]
:
null
;
getUsageCensus
(
this
.
queryform
).
then
(
res
=>
{
this
.
queryform
.
productId
==
1
let
data
=
res
.
data
.
map
(({
businessName
,
propValue
})
=>
({
name
:
businessName
,
value
:
propValue
*
100
}))
?
(
this
.
queryform
.
businessCodeList
=
[
"
iDCardSignIn
"
])
this
.
initType
(
data
)
:
""
;
})
console
.
log
(
this
.
queryform
);
},
getUsageCensus
(
this
.
queryform
).
then
((
res
)
=>
{
initWay
(){
let
data
=
res
.
data
.
map
(({
businessName
,
propValue
})
=>
({
let
chartDom
=
document
.
getElementById
(
'
way
'
)
name
:
businessName
,
value
:
propValue
*
100
,
}));
this
.
initType
(
data
);
});
},
initWay
()
{
let
chartDom
=
document
.
getElementById
(
"
way
"
);
let
myChart
=
echarts
.
init
(
chartDom
);
let
myChart
=
echarts
.
init
(
chartDom
);
myChart
.
setOption
({
myChart
.
setOption
({
title
:
{
title
:
{
text
:
'
取号方式分析
'
,
text
:
"
取号方式分析
"
,
left
:
'
center
'
left
:
"
center
"
,
},
},
tooltip
:
{
tooltip
:
{
trigger
:
'
item
'
,
trigger
:
"
item
"
,
},
},
legend
:
{
legend
:
{
bottom
:
0
,
bottom
:
0
,
left
:
'
center
'
,
left
:
"
center
"
,
itemWidth
:
10
,
itemWidth
:
10
,
itemHeight
:
10
itemHeight
:
10
,
},
},
color
:
[
'
#6395F9
'
,
'
#64DAAB
'
,
'
#647798
'
,
'
#F6C02D
'
,
'
#7567FA
'
,
'
#75CBED
'
],
color
:
[
series
:
[{
"
#6395F9
"
,
name
:
'
Access From
'
,
"
#64DAAB
"
,
type
:
'
pie
'
,
"
#647798
"
,
radius
:
'
65%
'
,
"
#F6C02D
"
,
"
#7567FA
"
,
"
#75CBED
"
,
],
series
:
[
{
name
:
"
Access From
"
,
type
:
"
pie
"
,
radius
:
"
65%
"
,
label
:
{
label
:
{
normal
:
{
normal
:
{
formatter
:
'
{d}%
'
//自定义显示格式(b:name, c:value, d:百分比)
formatter
:
"
{d}%
"
,
//自定义显示格式(b:name, c:value, d:百分比)
}
},
},
},
labelLine
:
{
labelLine
:
{
normal
:
{
normal
:
{
length
:
1
length
:
1
,
}
},
},
},
data
:
[{
data
:
[
{
value
:
1048
,
value
:
1048
,
name
:
'
Search Engine
'
name
:
"
Search Engine
"
,
},
},
{
{
value
:
735
,
value
:
735
,
name
:
'
Direct
'
name
:
"
Direct
"
,
},
},
{
{
value
:
580
,
value
:
580
,
name
:
'
Email
'
name
:
"
Email
"
,
},
},
{
{
value
:
484
,
value
:
484
,
name
:
'
Union Ads
'
name
:
"
Union Ads
"
,
},
},
{
{
value
:
300
,
value
:
300
,
name
:
'
Video Ads
'
name
:
"
Video Ads
"
,
}
},
],
],
}]
},
})
],
});
},
},
initType
(
data
)
{
initType
(
data
)
{
console
.
log
(
data
)
console
.
log
(
data
);
let
chartDom
=
document
.
getElementById
(
'
type
'
)
let
chartDom
=
document
.
getElementById
(
"
type
"
);
let
myChart
=
echarts
.
init
(
chartDom
);
let
myChart
=
echarts
.
init
(
chartDom
);
myChart
.
setOption
({
myChart
.
setOption
({
title
:
{
title
:
{
text
:
this
.
queryform
.
productId
==
1
?
'
取号类型分析
'
:
'
功能使用分布
'
,
text
:
this
.
queryform
.
productId
==
1
?
"
取号类型分析
"
:
"
功能使用分布
"
,
left
:
'
center
'
left
:
"
center
"
,
},
},
tooltip
:
{
tooltip
:
{
trigger
:
'
item
'
,
trigger
:
"
item
"
,
},
},
legend
:
{
legend
:
{
bottom
:
0
,
bottom
:
0
,
left
:
'
center
'
,
left
:
"
center
"
,
itemWidth
:
10
,
itemWidth
:
10
,
itemHeight
:
10
itemHeight
:
10
,
},
},
color
:
[
'
#6395F9
'
,
'
#64DAAB
'
,
'
#647798
'
,
'
#F6C02D
'
,
'
#7567FA
'
,
'
#75CBED
'
],
color
:
[
series
:
[{
"
#6395F9
"
,
type
:
'
pie
'
,
"
#64DAAB
"
,
radius
:
'
65%
'
,
"
#647798
"
,
"
#F6C02D
"
,
"
#7567FA
"
,
"
#75CBED
"
,
],
series
:
[
{
type
:
"
pie
"
,
radius
:
"
65%
"
,
label
:
{
label
:
{
normal
:
{
normal
:
{
formatter
:
'
{d}%
'
//自定义显示格式(b:name, c:value, d:百分比)
formatter
:
"
{d}%
"
,
//自定义显示格式(b:name, c:value, d:百分比)
}
},
},
},
labelLine
:
{
labelLine
:
{
normal
:
{
normal
:
{
length
:
1
length
:
1
,
}
},
},
data
:
data
,
},
},
data
:
data
],
}]
});
})
},
},
initCanal
()
{
initCanal
()
{
let
chartDom
=
document
.
getElementById
(
'
canal
'
)
let
chartDom
=
document
.
getElementById
(
"
canal
"
);
let
myChart
=
echarts
.
init
(
chartDom
);
let
myChart
=
echarts
.
init
(
chartDom
);
myChart
.
setOption
({
myChart
.
setOption
({
title
:
{
title
:
{
text
:
'
取号渠道分析
'
,
text
:
"
取号渠道分析
"
,
left
:
'
center
'
left
:
"
center
"
,
},
},
tooltip
:
{
tooltip
:
{
trigger
:
'
item
'
,
trigger
:
"
item
"
,
},
},
legend
:
{
legend
:
{
bottom
:
0
,
bottom
:
0
,
left
:
'
center
'
,
left
:
"
center
"
,
itemWidth
:
10
,
itemWidth
:
10
,
itemHeight
:
10
itemHeight
:
10
,
},
},
color
:
[
'
#6395F9
'
,
'
#64DAAB
'
,
'
#647798
'
,
'
#F6C02D
'
,
'
#7567FA
'
,
'
#75CBED
'
],
color
:
[
series
:
[{
"
#6395F9
"
,
name
:
'
Access From
'
,
"
#64DAAB
"
,
type
:
'
pie
'
,
"
#647798
"
,
radius
:
'
65%
'
,
"
#F6C02D
"
,
"
#7567FA
"
,
"
#75CBED
"
,
],
series
:
[
{
name
:
"
Access From
"
,
type
:
"
pie
"
,
radius
:
"
65%
"
,
label
:
{
label
:
{
normal
:
{
normal
:
{
formatter
:
'
{d}%
'
//自定义显示格式(b:name, c:value, d:百分比)
formatter
:
"
{d}%
"
,
//自定义显示格式(b:name, c:value, d:百分比)
}
},
},
},
labelLine
:
{
labelLine
:
{
normal
:
{
normal
:
{
length
:
1
length
:
1
,
}
},
},
data
:
[{
},
data
:
[
{
value
:
1048
,
value
:
1048
,
name
:
'
终端取号
'
name
:
"
终端取号
"
,
},
},
{
{
value
:
735
,
value
:
735
,
name
:
'
在线取号
'
name
:
"
在线取号
"
,
}
},
]
],
}]
},
})
],
}
});
}
},
};
},
};
</
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;
...
@@ -222,10 +278,12 @@
...
@@ -222,10 +278,12 @@
justify-content: center;
justify-content: center;
padding: 50px 0;
padding: 50px 0;
#canal,#type,#way {
#canal,
#type,
#way {
width: 30%;
width: 30%;
height: 100%;
height: 100%;
}
}
}
}
}
}
</
style
>
</
style
>
portal-manager-ui/admin/src/views/dataActuary/portrayal/portrayalBase/index.vue
View file @
d0eb3bec
This diff is collapsed.
Click to expand it.
portal-manager-ui/admin/src/views/dataAdmin/components/queueCall/callRecord.vue
View file @
d0eb3bec
...
@@ -361,6 +361,7 @@ export default {
...
@@ -361,6 +361,7 @@ export default {
this
.
$emit
(
"
update
"
,
{
total
,
time
:
this
.
searchForm
.
time
});
this
.
$emit
(
"
update
"
,
{
total
,
time
:
this
.
searchForm
.
time
});
}
}
this
.
loading
=
false
;
this
.
loading
=
false
;
this
.
$forceUpdate
();
},
},
// 翻页
// 翻页
...
...
portal-manager-ui/admin/src/views/dataAdmin/components/queueCall/queueRecord.vue
View file @
d0eb3bec
...
@@ -354,6 +354,7 @@ export default {
...
@@ -354,6 +354,7 @@ export default {
this
.
$emit
(
"
update
"
,
{
total
,
time
:
this
.
searchForm
.
time
});
this
.
$emit
(
"
update
"
,
{
total
,
time
:
this
.
searchForm
.
time
});
}
}
this
.
loading
=
false
;
this
.
loading
=
false
;
this
.
$forceUpdate
();
},
},
// 翻页
// 翻页
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment