Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
aic_duty_strategy
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yinxiaoling
aic_duty_strategy
Commits
0494db9c
Commit
0494db9c
authored
May 21, 2020
by
yinxiaoling
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of gitlab.ciopaas.com:yinxiaoling/aic_duty_strategy
parents
54de97bc
b5d843c6
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
15 additions
and
9 deletions
+15
-9
index.html
public/zjtlj/dist/index.html
+1
-1
chunk-15cd5b8a.1f624528.css
public/zjtlj/dist/static/css/chunk-15cd5b8a.1f624528.css
+1
-0
chunk-29ca1b6e.d953179f.css
public/zjtlj/dist/static/css/chunk-29ca1b6e.d953179f.css
+0
-1
chunk-4344061d.b04302e7.css
public/zjtlj/dist/static/css/chunk-4344061d.b04302e7.css
+1
-1
app.4ef73a04.js
public/zjtlj/dist/static/js/app.4ef73a04.js
+1
-1
chunk-15cd5b8a.e5f41148.js
public/zjtlj/dist/static/js/chunk-15cd5b8a.e5f41148.js
+1
-1
chunk-4344061d.7f0c96b3.js
public/zjtlj/dist/static/js/chunk-4344061d.7f0c96b3.js
+1
-0
chunk-f040bb84.37e4bce5.js
public/zjtlj/dist/static/js/chunk-f040bb84.37e4bce5.js
+0
-1
add.vue
public/zjtlj/src/views/dashboard/add.vue
+0
-1
index.vue
public/zjtlj/src/views/login/index.vue
+9
-2
No files found.
public/zjtlj/dist/index.html
View file @
0494db9c
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
http-equiv=
X-UA-Compatible
content=
"IE=edge,chrome=1"
><meta
name=
renderer
content=
webkit
><meta
name=
viewport
content=
"width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
><link
rel=
icon
href=
/favicon.ico
><title>
浙江铁路局外呼策略
</title><link
href=
/static/css/chunk-libs.3dfb7769.css
rel=
stylesheet
><link
href=
/static/css/app.9a06411e.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
src=
/static/js/chunk-elementUI.268e3bcf.js
></script><script
src=
/static/js/chunk-libs.9f0007e6.js
></script><script>
(
function
(
e
){
function
t
(
t
){
for
(
var
r
,
c
,
a
=
t
[
0
],
f
=
t
[
1
],
i
=
t
[
2
],
d
=
0
,
l
=
[];
d
<
a
.
length
;
d
++
)
c
=
a
[
d
],
u
[
c
]
&&
l
.
push
(
u
[
c
][
0
]),
u
[
c
]
=
0
;
for
(
r
in
f
)
Object
.
prototype
.
hasOwnProperty
.
call
(
f
,
r
)
&&
(
e
[
r
]
=
f
[
r
]);
h
&&
h
(
t
);
while
(
l
.
length
)
l
.
shift
()();
return
o
.
push
.
apply
(
o
,
i
||
[]),
n
()}
function
n
(){
for
(
var
e
,
t
=
0
;
t
<
o
.
length
;
t
++
){
for
(
var
n
=
o
[
t
],
r
=!
0
,
c
=
1
;
c
<
n
.
length
;
c
++
){
var
a
=
n
[
c
];
0
!==
u
[
a
]
&&
(
r
=!
1
)}
r
&&
(
o
.
splice
(
t
--
,
1
),
e
=
f
(
f
.
s
=
n
[
0
]))}
return
e
}
var
r
=
{},
c
=
{
runtime
:
0
},
u
=
{
runtime
:
0
},
o
=
[];
function
a
(
e
){
return
f
.
p
+
"
static/js/
"
+
({}[
e
]
||
e
)
+
"
.
"
+
{
"
chunk-1db1bb26
"
:
"
541bf162
"
,
"
chunk-2d0c8d8c
"
:
"
24beb334
"
,
"
chunk-29ca1b6e
"
:
"
dbc5e86a
"
,
"
chunk-2d2105d3
"
:
"
c38e1553
"
,
"
chunk-2d230fe7
"
:
"
8023f254
"
,
"
chunk-521ff149
"
:
"
1a8e56c7
"
,
"
chunk-edda6906
"
:
"
f13325ba
"
,
"
chunk-f040bb84
"
:
"
37e4bce5
"
,
"
chunk-f46ba1c8
"
:
"
31519b4a
"
}[
e
]
+
"
.js
"
}
function
f
(
t
){
if
(
r
[
t
])
return
r
[
t
].
exports
;
var
n
=
r
[
t
]
=
{
i
:
t
,
l
:
!
1
,
exports
:{}};
return
e
[
t
].
call
(
n
.
exports
,
n
,
n
.
exports
,
f
),
n
.
l
=!
0
,
n
.
exports
}
f
.
e
=
function
(
e
){
var
t
=
[],
n
=
{
"
chunk-1db1bb26
"
:
1
,
"
chunk-29ca1b6e
"
:
1
,
"
chunk-521ff149
"
:
1
,
"
chunk-edda6906
"
:
1
,
"
chunk-f040bb84
"
:
1
,
"
chunk-f46ba1c8
"
:
1
};
c
[
e
]?
t
.
push
(
c
[
e
]):
0
!==
c
[
e
]
&&
n
[
e
]
&&
t
.
push
(
c
[
e
]
=
new
Promise
((
function
(
t
,
n
){
for
(
var
r
=
"
static/css/
"
+
({}[
e
]
||
e
)
+
"
.
"
+
{
"
chunk-1db1bb26
"
:
"
ee094622
"
,
"
chunk-2d0c8d8c
"
:
"
31d6cfe0
"
,
"
chunk-29ca1b6e
"
:
"
d953179f
"
,
"
chunk-2d2105d3
"
:
"
31d6cfe0
"
,
"
chunk-2d230fe7
"
:
"
31d6cfe0
"
,
"
chunk-521ff149
"
:
"
aa79ebe7
"
,
"
chunk-edda6906
"
:
"
c7c8f565
"
,
"
chunk-f040bb84
"
:
"
6d410dbb
"
,
"
chunk-f46ba1c8
"
:
"
34d3c0e3
"
}[
e
]
+
"
.css
"
,
u
=
f
.
p
+
r
,
o
=
document
.
getElementsByTagName
(
"
link
"
),
a
=
0
;
a
<
o
.
length
;
a
++
){
var
i
=
o
[
a
],
d
=
i
.
getAttribute
(
"
data-href
"
)
||
i
.
getAttribute
(
"
href
"
);
if
(
"
stylesheet
"
===
i
.
rel
&&
(
d
===
r
||
d
===
u
))
return
t
()}
var
l
=
document
.
getElementsByTagName
(
"
style
"
);
for
(
a
=
0
;
a
<
l
.
length
;
a
++
){
i
=
l
[
a
],
d
=
i
.
getAttribute
(
"
data-href
"
);
if
(
d
===
r
||
d
===
u
)
return
t
()}
var
h
=
document
.
createElement
(
"
link
"
);
h
.
rel
=
"
stylesheet
"
,
h
.
type
=
"
text/css
"
,
h
.
onload
=
t
,
h
.
onerror
=
function
(
t
){
var
r
=
t
&&
t
.
target
&&
t
.
target
.
src
||
u
,
o
=
new
Error
(
"
Loading CSS chunk
"
+
e
+
"
failed.
\n
(
"
+
r
+
"
)
"
);
o
.
request
=
r
,
delete
c
[
e
],
h
.
parentNode
.
removeChild
(
h
),
n
(
o
)},
h
.
href
=
u
;
var
s
=
document
.
getElementsByTagName
(
"
head
"
)[
0
];
s
.
appendChild
(
h
)})).
then
((
function
(){
c
[
e
]
=
0
})));
var
r
=
u
[
e
];
if
(
0
!==
r
)
if
(
r
)
t
.
push
(
r
[
2
]);
else
{
var
o
=
new
Promise
((
function
(
t
,
n
){
r
=
u
[
e
]
=
[
t
,
n
]}));
t
.
push
(
r
[
2
]
=
o
);
var
i
,
d
=
document
.
createElement
(
"
script
"
);
d
.
charset
=
"
utf-8
"
,
d
.
timeout
=
120
,
f
.
nc
&&
d
.
setAttribute
(
"
nonce
"
,
f
.
nc
),
d
.
src
=
a
(
e
),
i
=
function
(
t
){
d
.
onerror
=
d
.
onload
=
null
,
clearTimeout
(
l
);
var
n
=
u
[
e
];
if
(
0
!==
n
){
if
(
n
){
var
r
=
t
&&
(
"
load
"
===
t
.
type
?
"
missing
"
:
t
.
type
),
c
=
t
&&
t
.
target
&&
t
.
target
.
src
,
o
=
new
Error
(
"
Loading chunk
"
+
e
+
"
failed.
\n
(
"
+
r
+
"
:
"
+
c
+
"
)
"
);
o
.
type
=
r
,
o
.
request
=
c
,
n
[
1
](
o
)}
u
[
e
]
=
void
0
}};
var
l
=
setTimeout
((
function
(){
i
({
type
:
"
timeout
"
,
target
:
d
})}),
12
e4
);
d
.
onerror
=
d
.
onload
=
i
,
document
.
head
.
appendChild
(
d
)}
return
Promise
.
all
(
t
)},
f
.
m
=
e
,
f
.
c
=
r
,
f
.
d
=
function
(
e
,
t
,
n
){
f
.
o
(
e
,
t
)
||
Object
.
defineProperty
(
e
,
t
,{
enumerable
:
!
0
,
get
:
n
})},
f
.
r
=
function
(
e
){
"
undefined
"
!==
typeof
Symbol
&&
Symbol
.
toStringTag
&&
Object
.
defineProperty
(
e
,
Symbol
.
toStringTag
,{
value
:
"
Module
"
}),
Object
.
defineProperty
(
e
,
"
__esModule
"
,{
value
:
!
0
})},
f
.
t
=
function
(
e
,
t
){
if
(
1
&
t
&&
(
e
=
f
(
e
)),
8
&
t
)
return
e
;
if
(
4
&
t
&&
"
object
"
===
typeof
e
&&
e
&&
e
.
__esModule
)
return
e
;
var
n
=
Object
.
create
(
null
);
if
(
f
.
r
(
n
),
Object
.
defineProperty
(
n
,
"
default
"
,{
enumerable
:
!
0
,
value
:
e
}),
2
&
t
&&
"
string
"
!=
typeof
e
)
for
(
var
r
in
e
)
f
.
d
(
n
,
r
,
function
(
t
){
return
e
[
t
]}.
bind
(
null
,
r
));
return
n
},
f
.
n
=
function
(
e
){
var
t
=
e
&&
e
.
__esModule
?
function
(){
return
e
[
"
default
"
]}:
function
(){
return
e
};
return
f
.
d
(
t
,
"
a
"
,
t
),
t
},
f
.
o
=
function
(
e
,
t
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
t
)},
f
.
p
=
"
/
"
,
f
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
};
var
i
=
window
[
"
webpackJsonp
"
]
=
window
[
"
webpackJsonp
"
]
||
[],
d
=
i
.
push
.
bind
(
i
);
i
.
push
=
t
,
i
=
i
.
slice
();
for
(
var
l
=
0
;
l
<
i
.
length
;
l
++
)
t
(
i
[
l
]);
var
h
=
d
;
n
()})([]);
</script><script
src=
/static/js/app.d75e7805.js
></script></body></html>
\ No newline at end of file
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
http-equiv=
X-UA-Compatible
content=
"IE=edge,chrome=1"
><meta
name=
renderer
content=
webkit
><meta
name=
viewport
content=
"width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"
><link
rel=
icon
href=
/favicon.ico
><title>
浙江铁路局外呼策略
</title><link
href=
/static/css/chunk-libs.3dfb7769.css
rel=
stylesheet
><link
href=
/static/css/app.9a06411e.css
rel=
stylesheet
></head><body><div
id=
app
></div><script
src=
/static/js/chunk-elementUI.268e3bcf.js
></script><script
src=
/static/js/chunk-libs.9f0007e6.js
></script><script>
(
function
(
e
){
function
t
(
t
){
for
(
var
r
,
c
,
a
=
t
[
0
],
f
=
t
[
1
],
i
=
t
[
2
],
d
=
0
,
l
=
[];
d
<
a
.
length
;
d
++
)
c
=
a
[
d
],
u
[
c
]
&&
l
.
push
(
u
[
c
][
0
]),
u
[
c
]
=
0
;
for
(
r
in
f
)
Object
.
prototype
.
hasOwnProperty
.
call
(
f
,
r
)
&&
(
e
[
r
]
=
f
[
r
]);
h
&&
h
(
t
);
while
(
l
.
length
)
l
.
shift
()();
return
o
.
push
.
apply
(
o
,
i
||
[]),
n
()}
function
n
(){
for
(
var
e
,
t
=
0
;
t
<
o
.
length
;
t
++
){
for
(
var
n
=
o
[
t
],
r
=!
0
,
c
=
1
;
c
<
n
.
length
;
c
++
){
var
a
=
n
[
c
];
0
!==
u
[
a
]
&&
(
r
=!
1
)}
r
&&
(
o
.
splice
(
t
--
,
1
),
e
=
f
(
f
.
s
=
n
[
0
]))}
return
e
}
var
r
=
{},
c
=
{
runtime
:
0
},
u
=
{
runtime
:
0
},
o
=
[];
function
a
(
e
){
return
f
.
p
+
"
static/js/
"
+
({}[
e
]
||
e
)
+
"
.
"
+
{
"
chunk-1db1bb26
"
:
"
541bf162
"
,
"
chunk-2d0c8d8c
"
:
"
24beb334
"
,
"
chunk-15cd5b8a
"
:
"
e5f41148
"
,
"
chunk-2d2105d3
"
:
"
c38e1553
"
,
"
chunk-2d230fe7
"
:
"
8023f254
"
,
"
chunk-4344061d
"
:
"
7f0c96b3
"
,
"
chunk-521ff149
"
:
"
1a8e56c7
"
,
"
chunk-edda6906
"
:
"
f13325ba
"
,
"
chunk-f46ba1c8
"
:
"
31519b4a
"
}[
e
]
+
"
.js
"
}
function
f
(
t
){
if
(
r
[
t
])
return
r
[
t
].
exports
;
var
n
=
r
[
t
]
=
{
i
:
t
,
l
:
!
1
,
exports
:{}};
return
e
[
t
].
call
(
n
.
exports
,
n
,
n
.
exports
,
f
),
n
.
l
=!
0
,
n
.
exports
}
f
.
e
=
function
(
e
){
var
t
=
[],
n
=
{
"
chunk-1db1bb26
"
:
1
,
"
chunk-15cd5b8a
"
:
1
,
"
chunk-4344061d
"
:
1
,
"
chunk-521ff149
"
:
1
,
"
chunk-edda6906
"
:
1
,
"
chunk-f46ba1c8
"
:
1
};
c
[
e
]?
t
.
push
(
c
[
e
]):
0
!==
c
[
e
]
&&
n
[
e
]
&&
t
.
push
(
c
[
e
]
=
new
Promise
((
function
(
t
,
n
){
for
(
var
r
=
"
static/css/
"
+
({}[
e
]
||
e
)
+
"
.
"
+
{
"
chunk-1db1bb26
"
:
"
ee094622
"
,
"
chunk-2d0c8d8c
"
:
"
31d6cfe0
"
,
"
chunk-15cd5b8a
"
:
"
1f624528
"
,
"
chunk-2d2105d3
"
:
"
31d6cfe0
"
,
"
chunk-2d230fe7
"
:
"
31d6cfe0
"
,
"
chunk-4344061d
"
:
"
b04302e7
"
,
"
chunk-521ff149
"
:
"
aa79ebe7
"
,
"
chunk-edda6906
"
:
"
c7c8f565
"
,
"
chunk-f46ba1c8
"
:
"
34d3c0e3
"
}[
e
]
+
"
.css
"
,
u
=
f
.
p
+
r
,
o
=
document
.
getElementsByTagName
(
"
link
"
),
a
=
0
;
a
<
o
.
length
;
a
++
){
var
i
=
o
[
a
],
d
=
i
.
getAttribute
(
"
data-href
"
)
||
i
.
getAttribute
(
"
href
"
);
if
(
"
stylesheet
"
===
i
.
rel
&&
(
d
===
r
||
d
===
u
))
return
t
()}
var
l
=
document
.
getElementsByTagName
(
"
style
"
);
for
(
a
=
0
;
a
<
l
.
length
;
a
++
){
i
=
l
[
a
],
d
=
i
.
getAttribute
(
"
data-href
"
);
if
(
d
===
r
||
d
===
u
)
return
t
()}
var
h
=
document
.
createElement
(
"
link
"
);
h
.
rel
=
"
stylesheet
"
,
h
.
type
=
"
text/css
"
,
h
.
onload
=
t
,
h
.
onerror
=
function
(
t
){
var
r
=
t
&&
t
.
target
&&
t
.
target
.
src
||
u
,
o
=
new
Error
(
"
Loading CSS chunk
"
+
e
+
"
failed.
\n
(
"
+
r
+
"
)
"
);
o
.
request
=
r
,
delete
c
[
e
],
h
.
parentNode
.
removeChild
(
h
),
n
(
o
)},
h
.
href
=
u
;
var
s
=
document
.
getElementsByTagName
(
"
head
"
)[
0
];
s
.
appendChild
(
h
)})).
then
((
function
(){
c
[
e
]
=
0
})));
var
r
=
u
[
e
];
if
(
0
!==
r
)
if
(
r
)
t
.
push
(
r
[
2
]);
else
{
var
o
=
new
Promise
((
function
(
t
,
n
){
r
=
u
[
e
]
=
[
t
,
n
]}));
t
.
push
(
r
[
2
]
=
o
);
var
i
,
d
=
document
.
createElement
(
"
script
"
);
d
.
charset
=
"
utf-8
"
,
d
.
timeout
=
120
,
f
.
nc
&&
d
.
setAttribute
(
"
nonce
"
,
f
.
nc
),
d
.
src
=
a
(
e
),
i
=
function
(
t
){
d
.
onerror
=
d
.
onload
=
null
,
clearTimeout
(
l
);
var
n
=
u
[
e
];
if
(
0
!==
n
){
if
(
n
){
var
r
=
t
&&
(
"
load
"
===
t
.
type
?
"
missing
"
:
t
.
type
),
c
=
t
&&
t
.
target
&&
t
.
target
.
src
,
o
=
new
Error
(
"
Loading chunk
"
+
e
+
"
failed.
\n
(
"
+
r
+
"
:
"
+
c
+
"
)
"
);
o
.
type
=
r
,
o
.
request
=
c
,
n
[
1
](
o
)}
u
[
e
]
=
void
0
}};
var
l
=
setTimeout
((
function
(){
i
({
type
:
"
timeout
"
,
target
:
d
})}),
12
e4
);
d
.
onerror
=
d
.
onload
=
i
,
document
.
head
.
appendChild
(
d
)}
return
Promise
.
all
(
t
)},
f
.
m
=
e
,
f
.
c
=
r
,
f
.
d
=
function
(
e
,
t
,
n
){
f
.
o
(
e
,
t
)
||
Object
.
defineProperty
(
e
,
t
,{
enumerable
:
!
0
,
get
:
n
})},
f
.
r
=
function
(
e
){
"
undefined
"
!==
typeof
Symbol
&&
Symbol
.
toStringTag
&&
Object
.
defineProperty
(
e
,
Symbol
.
toStringTag
,{
value
:
"
Module
"
}),
Object
.
defineProperty
(
e
,
"
__esModule
"
,{
value
:
!
0
})},
f
.
t
=
function
(
e
,
t
){
if
(
1
&
t
&&
(
e
=
f
(
e
)),
8
&
t
)
return
e
;
if
(
4
&
t
&&
"
object
"
===
typeof
e
&&
e
&&
e
.
__esModule
)
return
e
;
var
n
=
Object
.
create
(
null
);
if
(
f
.
r
(
n
),
Object
.
defineProperty
(
n
,
"
default
"
,{
enumerable
:
!
0
,
value
:
e
}),
2
&
t
&&
"
string
"
!=
typeof
e
)
for
(
var
r
in
e
)
f
.
d
(
n
,
r
,
function
(
t
){
return
e
[
t
]}.
bind
(
null
,
r
));
return
n
},
f
.
n
=
function
(
e
){
var
t
=
e
&&
e
.
__esModule
?
function
(){
return
e
[
"
default
"
]}:
function
(){
return
e
};
return
f
.
d
(
t
,
"
a
"
,
t
),
t
},
f
.
o
=
function
(
e
,
t
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
t
)},
f
.
p
=
"
/
"
,
f
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
};
var
i
=
window
[
"
webpackJsonp
"
]
=
window
[
"
webpackJsonp
"
]
||
[],
d
=
i
.
push
.
bind
(
i
);
i
.
push
=
t
,
i
=
i
.
slice
();
for
(
var
l
=
0
;
l
<
i
.
length
;
l
++
)
t
(
i
[
l
]);
var
h
=
d
;
n
()})([]);
</script><script
src=
/static/js/app.4ef73a04.js
></script></body></html>
\ No newline at end of file
public/zjtlj/dist/static/css/chunk-15cd5b8a.1f624528.css
0 → 100644
View file @
0494db9c
@supports
(
-webkit-mask
:
none
)
and
(
not
(
cater-color
:
#000
)){
.login-container
.el-input
input
{
color
:
#000
}}
.login-container
.el-input
{
display
:
inline-block
;
height
:
47px
;
width
:
85%
}
@-webkit-keyframes
autofill
{
to
{
color
:
#333
;
background
:
transparent
}}
.login-container
.el-input
input
{
background
:
transparent
;
border
:
0
;
-webkit-appearance
:
none
;
border-radius
:
0
;
padding
:
12px
5px
12px
15px
;
color
:
#000
;
height
:
47px
;
caret-color
:
#000
}
.login-container
.el-input
input
:-webkit-autofill
{
-webkit-box-shadow
:
0
0
0
1000px
transparent
inset
!important
;
box-shadow
:
inset
0
0
0
1000px
transparent
!important
;
-webkit-text-fill-color
:
#000
!important
;
-webkit-animation-name
:
autofill
;
-webkit-animation-fill-mode
:
both
}
.login-container
.el-form-item
{
border-radius
:
5px
;
color
:
#454545
}
.login-container
.el-form-item.border-b
{
border-bottom
:
1px
solid
#ddd
}
.login-container
[
data-v-242d2e17
]
{
min-height
:
100%
;
width
:
100%
;
background-color
:
#fff
;
overflow
:
hidden
}
.login-container
.login-form
[
data-v-242d2e17
]
{
top
:
calc
(
50%
-
280px
);
position
:
absolute
;
left
:
calc
(
50%
-
260px
);
width
:
520px
;
max-width
:
100%
;
padding
:
30px
;
margin
:
0
auto
;
overflow
:
hidden
;
border
:
1px
solid
#ddd
;
border-radius
:
8px
}
.login-container
.tips
[
data-v-242d2e17
]
{
font-size
:
14px
;
margin-bottom
:
10px
}
.login-container
.tips
span
[
data-v-242d2e17
]
:first-of-type
{
margin-right
:
16px
}
.login-container
.svg-container
[
data-v-242d2e17
]
{
padding
:
6px
5px
6px
15px
;
color
:
#889aa4
;
vertical-align
:
middle
;
width
:
30px
;
display
:
inline-block
}
.login-container
.title-container
[
data-v-242d2e17
]
{
position
:
relative
;
text-align
:
center
}
.login-container
.title-container
img
[
data-v-242d2e17
]
{
width
:
100px
;
height
:
100px
}
.login-container
.title-container
.title
[
data-v-242d2e17
]
{
font-size
:
26px
;
color
:
#369dff
;
margin
:
20px
auto
;
text-align
:
center
}
.login-container
.show-pwd
[
data-v-242d2e17
]
{
position
:
absolute
;
right
:
10px
;
top
:
7px
;
font-size
:
16px
;
color
:
#889aa4
;
cursor
:
pointer
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
}
.login-container
.thirdparty-button
[
data-v-242d2e17
]
{
position
:
absolute
;
right
:
0
;
bottom
:
6px
}
@media
only
screen
and
(
max-width
:
470px
){
.login-container
.thirdparty-button
[
data-v-242d2e17
]
{
display
:
none
}}
.login-container
.read-box
[
data-v-242d2e17
]
{
text-align
:
center
}
.login-container
.remenber-box
[
data-v-242d2e17
]
{
padding-left
:
15px
}
.login-container
.agreement-txt
[
data-v-242d2e17
]
{
color
:
#3690ff
;
text-decoration
:
underline
}
.login-container
.login-btn
[
data-v-242d2e17
]
{
width
:
100%
;
margin-bottom
:
20px
;
background-color
:
#a4cdff
;
color
:
#fff
;
padding
:
15px
}
\ No newline at end of file
public/zjtlj/dist/static/css/chunk-29ca1b6e.d953179f.css
deleted
100644 → 0
View file @
54de97bc
@supports
(
-webkit-mask
:
none
)
and
(
not
(
cater-color
:
#000
)){
.login-container
.el-input
input
{
color
:
#000
}}
.login-container
.el-input
{
display
:
inline-block
;
height
:
47px
;
width
:
85%
}
.login-container
.el-input
input
{
background
:
transparent
;
border
:
0
;
-webkit-appearance
:
none
;
border-radius
:
0
;
padding
:
12px
5px
12px
15px
;
color
:
#000
;
height
:
47px
;
caret-color
:
#000
}
.login-container
.el-input
input
:-webkit-autofill
{
-webkit-box-shadow
:
0
0
0
1000px
#283443
inset
!important
;
box-shadow
:
inset
0
0
0
1000px
#283443
!important
;
-webkit-text-fill-color
:
#000
!important
}
.login-container
.el-form-item
{
border-radius
:
5px
;
color
:
#454545
}
.login-container
.el-form-item.border-b
{
border-bottom
:
1px
solid
#ddd
}
.login-container
[
data-v-fb29c77e
]
{
min-height
:
100%
;
width
:
100%
;
background-color
:
#fff
;
overflow
:
hidden
}
.login-container
.login-form
[
data-v-fb29c77e
]
{
top
:
calc
(
50%
-
280px
);
position
:
absolute
;
left
:
calc
(
50%
-
260px
);
width
:
520px
;
max-width
:
100%
;
padding
:
30px
;
margin
:
0
auto
;
overflow
:
hidden
;
border
:
1px
solid
#ddd
;
border-radius
:
8px
}
.login-container
.tips
[
data-v-fb29c77e
]
{
font-size
:
14px
;
margin-bottom
:
10px
}
.login-container
.tips
span
[
data-v-fb29c77e
]
:first-of-type
{
margin-right
:
16px
}
.login-container
.svg-container
[
data-v-fb29c77e
]
{
padding
:
6px
5px
6px
15px
;
color
:
#889aa4
;
vertical-align
:
middle
;
width
:
30px
;
display
:
inline-block
}
.login-container
.title-container
[
data-v-fb29c77e
]
{
position
:
relative
;
text-align
:
center
}
.login-container
.title-container
img
[
data-v-fb29c77e
]
{
width
:
100px
;
height
:
100px
}
.login-container
.title-container
.title
[
data-v-fb29c77e
]
{
font-size
:
26px
;
color
:
#369dff
;
margin
:
20px
auto
;
text-align
:
center
}
.login-container
.show-pwd
[
data-v-fb29c77e
]
{
position
:
absolute
;
right
:
10px
;
top
:
7px
;
font-size
:
16px
;
color
:
#889aa4
;
cursor
:
pointer
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
}
.login-container
.thirdparty-button
[
data-v-fb29c77e
]
{
position
:
absolute
;
right
:
0
;
bottom
:
6px
}
@media
only
screen
and
(
max-width
:
470px
){
.login-container
.thirdparty-button
[
data-v-fb29c77e
]
{
display
:
none
}}
.login-container
.read-box
[
data-v-fb29c77e
]
{
text-align
:
center
}
.login-container
.remenber-box
[
data-v-fb29c77e
]
{
padding-left
:
15px
}
.login-container
.agreement-txt
[
data-v-fb29c77e
]
{
color
:
#3690ff
;
text-decoration
:
underline
}
.login-container
.login-btn
[
data-v-fb29c77e
]
{
width
:
100%
;
margin-bottom
:
20px
;
background-color
:
#a4cdff
;
color
:
#fff
;
padding
:
15px
}
\ No newline at end of file
public/zjtlj/dist/static/css/chunk-
f040bb84.6d410dbb
.css
→
public/zjtlj/dist/static/css/chunk-
4344061d.b04302e7
.css
View file @
0494db9c
.waves-ripple
{
position
:
absolute
;
border-radius
:
100%
;
background-color
:
rgba
(
0
,
0
,
0
,
.15
);
background-clip
:
padding-box
;
pointer-events
:
none
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
;
-webkit-transform
:
scale
(
0
);
transform
:
scale
(
0
);
opacity
:
1
}
.waves-ripple.z-active
{
opacity
:
0
;
-webkit-transform
:
scale
(
2
);
transform
:
scale
(
2
);
-webkit-transition
:
opacity
1.2s
ease-out
,
-webkit-transform
.6s
ease-out
;
transition
:
opacity
1.2s
ease-out
,
-webkit-transform
.6s
ease-out
;
transition
:
opacity
1.2s
ease-out
,
transform
.6s
ease-out
;
transition
:
opacity
1.2s
ease-out
,
transform
.6s
ease-out
,
-webkit-transform
.6s
ease-out
}
.el-icon-upload
[
data-v-29423b4f
]
{
color
:
#0000cd
;
font-size
:
24px
;
vertical-align
:
middle
}
.result-box
[
data-v-29423b4f
]
{
line-height
:
30px
;
text-align
:
center
}
.result-box
.down-txt
[
data-v-29423b4f
]
{
color
:
#4dc1f4
}
.result-box
.el-icon-success
[
data-v-29423b4f
]
{
color
:
#03b615
;
font-size
:
33px
}
.result-box
.el-icon-warning
[
data-v-29423b4f
]
{
font-size
:
33px
}
.result-box
.fail-all-bgc
[
data-v-29423b4f
]
{
color
:
#d9001b
}
.result-box
.fail-bgc
[
data-v-29423b4f
]
{
color
:
#f59a23
}
.down-btn
[
data-v-29423b4f
],
.upload-btn
[
data-v-29423b4f
]
{
color
:
#3691ff
}
label
[
data-v-29423b4f
]
{
font-weight
:
400
}
.import-box
[
data-v-29423b4f
]
:before
{
content
:
"*"
;
color
:
#ff4949
;
margin-right
:
4px
;
display
:
inline-block
}
.el-icon-upload
[
data-v-1206d3c3
]
{
color
:
#c3c6ca
;
font-size
:
24px
;
vertical-align
:
middle
;
position
:
absolute
;
top
:
0
;
right
:
100px
;
line-height
:
36px
}
.el-date-editor.el-input
[
data-v-1206d3c3
]
{
width
:
100%
}
.upload-box
[
data-v-1206d3c3
]
{
margin-right
:
69px
}
.upload-box
input
[
data-v-1206d3c3
]
{
height
:
36px
;
line-height
:
36px
;
border-top-right-radius
:
0
;
border-bottom-right-radius
:
0
;
border-right
:
none
}
.upload-box
.el-input
:hover
+
.el-icon-circle-close
[
data-v-1206d3c3
]
{
display
:
inline-block
}
.upload-box
.el-icon-circle-close
[
data-v-1206d3c3
]
{
color
:
#c3c6ca
;
font-size
:
16px
;
vertical-align
:
middle
;
position
:
absolute
;
top
:
0
;
right
:
75px
;
line-height
:
36px
;
z-index
:
1
;
display
:
none
}
.upload-box
.el-icon-circle-close
[
data-v-1206d3c3
]
:hover
{
display
:
inline-block
}
.download-btn
[
data-v-1206d3c3
]
{
position
:
absolute
;
top
:
0
;
right
:
0
;
height
:
36px
;
line-height
:
36px
;
width
:
70px
;
text-align
:
center
;
padding
:
0
;
text-decoration
:
underline
}
.result-box
[
data-v-1206d3c3
]
{
line-height
:
30px
;
text-align
:
center
}
.result-box
.down-txt
[
data-v-1206d3c3
]
{
color
:
#4dc1f4
}
.result-box
.el-icon-success
[
data-v-1206d3c3
]
{
color
:
#03b615
;
font-size
:
33px
}
.result-box
.el-icon-warning
[
data-v-1206d3c3
]
{
font-size
:
33px
}
.result-box
.fail-all-bgc
[
data-v-1206d3c3
]
{
color
:
#d9001b
}
.result-box
.fail-bgc
[
data-v-1206d3c3
]
{
color
:
#f59a23
}
.down-btn
[
data-v-1206d3c3
],
.upload-btn
[
data-v-1206d3c3
]
{
color
:
#3691ff
}
label
[
data-v-1206d3c3
]
{
font-weight
:
400
}
.import-box
[
data-v-1206d3c3
]
:before
{
content
:
"*"
;
color
:
#ff4949
;
margin-right
:
4px
;
display
:
inline-block
}
#strategy-add-form
.hide-label
label
,
#strategy-add-form
.hide-label
label
:before
{
display
:
none
}
#strategy-add-form
.fl-label
label
{
float
:
left
;
margin-right
:
10px
}
\ No newline at end of file
.waves-ripple
{
position
:
absolute
;
border-radius
:
100%
;
background-color
:
rgba
(
0
,
0
,
0
,
.15
);
background-clip
:
padding-box
;
pointer-events
:
none
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
;
-webkit-transform
:
scale
(
0
);
transform
:
scale
(
0
);
opacity
:
1
}
.waves-ripple.z-active
{
opacity
:
0
;
-webkit-transform
:
scale
(
2
);
transform
:
scale
(
2
);
-webkit-transition
:
opacity
1.2s
ease-out
,
-webkit-transform
.6s
ease-out
;
transition
:
opacity
1.2s
ease-out
,
-webkit-transform
.6s
ease-out
;
transition
:
opacity
1.2s
ease-out
,
transform
.6s
ease-out
;
transition
:
opacity
1.2s
ease-out
,
transform
.6s
ease-out
,
-webkit-transform
.6s
ease-out
}
.el-icon-upload
[
data-v-29423b4f
]
{
color
:
#0000cd
;
font-size
:
24px
;
vertical-align
:
middle
}
.result-box
[
data-v-29423b4f
]
{
line-height
:
30px
;
text-align
:
center
}
.result-box
.down-txt
[
data-v-29423b4f
]
{
color
:
#4dc1f4
}
.result-box
.el-icon-success
[
data-v-29423b4f
]
{
color
:
#03b615
;
font-size
:
33px
}
.result-box
.el-icon-warning
[
data-v-29423b4f
]
{
font-size
:
33px
}
.result-box
.fail-all-bgc
[
data-v-29423b4f
]
{
color
:
#d9001b
}
.result-box
.fail-bgc
[
data-v-29423b4f
]
{
color
:
#f59a23
}
.down-btn
[
data-v-29423b4f
],
.upload-btn
[
data-v-29423b4f
]
{
color
:
#3691ff
}
label
[
data-v-29423b4f
]
{
font-weight
:
400
}
.import-box
[
data-v-29423b4f
]
:before
{
content
:
"*"
;
color
:
#ff4949
;
margin-right
:
4px
;
display
:
inline-block
}
.el-icon-upload
[
data-v-f401d8fe
]
{
color
:
#c3c6ca
;
font-size
:
24px
;
vertical-align
:
middle
;
position
:
absolute
;
top
:
0
;
right
:
100px
;
line-height
:
36px
}
.el-date-editor.el-input
[
data-v-f401d8fe
]
{
width
:
100%
}
.upload-box
[
data-v-f401d8fe
]
{
margin-right
:
69px
}
.upload-box
input
[
data-v-f401d8fe
]
{
height
:
36px
;
line-height
:
36px
;
border-top-right-radius
:
0
;
border-bottom-right-radius
:
0
;
border-right
:
none
}
.upload-box
.el-input
:hover
+
.el-icon-circle-close
[
data-v-f401d8fe
]
{
display
:
inline-block
}
.upload-box
.el-icon-circle-close
[
data-v-f401d8fe
]
{
color
:
#c3c6ca
;
font-size
:
16px
;
vertical-align
:
middle
;
position
:
absolute
;
top
:
0
;
right
:
75px
;
line-height
:
36px
;
z-index
:
1
;
display
:
none
}
.upload-box
.el-icon-circle-close
[
data-v-f401d8fe
]
:hover
{
display
:
inline-block
}
.download-btn
[
data-v-f401d8fe
]
{
position
:
absolute
;
top
:
0
;
right
:
0
;
height
:
36px
;
line-height
:
36px
;
width
:
70px
;
text-align
:
center
;
padding
:
0
;
text-decoration
:
underline
}
.result-box
[
data-v-f401d8fe
]
{
line-height
:
30px
;
text-align
:
center
}
.result-box
.down-txt
[
data-v-f401d8fe
]
{
color
:
#4dc1f4
}
.result-box
.el-icon-success
[
data-v-f401d8fe
]
{
color
:
#03b615
;
font-size
:
33px
}
.result-box
.el-icon-warning
[
data-v-f401d8fe
]
{
font-size
:
33px
}
.result-box
.fail-all-bgc
[
data-v-f401d8fe
]
{
color
:
#d9001b
}
.result-box
.fail-bgc
[
data-v-f401d8fe
]
{
color
:
#f59a23
}
.down-btn
[
data-v-f401d8fe
],
.upload-btn
[
data-v-f401d8fe
]
{
color
:
#3691ff
}
label
[
data-v-f401d8fe
]
{
font-weight
:
400
}
.import-box
[
data-v-f401d8fe
]
:before
{
content
:
"*"
;
color
:
#ff4949
;
margin-right
:
4px
;
display
:
inline-block
}
#strategy-add-form
.hide-label
label
,
#strategy-add-form
.hide-label
label
:before
{
display
:
none
}
#strategy-add-form
.fl-label
label
{
float
:
left
;
margin-right
:
10px
}
\ No newline at end of file
public/zjtlj/dist/static/js/app.
d75e7805
.js
→
public/zjtlj/dist/static/js/app.
4ef73a04
.js
View file @
0494db9c
This source diff could not be displayed because it is too large. You can
view the blob
instead.
public/zjtlj/dist/static/js/chunk-
29ca1b6e.dbc5e86a
.js
→
public/zjtlj/dist/static/js/chunk-
15cd5b8a.e5f41148
.js
View file @
0494db9c
(
window
[
"
webpackJsonp
"
]
=
window
[
"
webpackJsonp
"
]
||
[]).
push
([[
"
chunk-29ca1b6e
"
],{
2017
:
function
(
e
,
t
,
n
){
"
use strict
"
;
var
o
=
n
(
"
b12d
"
),
s
=
n
.
n
(
o
);
s
.
a
},
3378
:
function
(
e
,
t
,
n
){},
"
823f
"
:
function
(
e
,
t
,
n
){
"
use strict
"
;
var
o
=
n
(
"
3378
"
),
s
=
n
.
n
(
o
);
s
.
a
},
"
9ed6
"
:
function
(
e
,
t
,
n
){
"
use strict
"
;
n
.
r
(
t
);
var
o
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
o
=
e
.
_self
.
_c
||
t
;
return
o
(
"
div
"
,{
staticClass
:
"
login-container
"
,
attrs
:{
id
:
"
particlesId
"
}},[
o
(
"
el-form
"
,{
ref
:
"
loginForm
"
,
staticClass
:
"
login-form
"
,
attrs
:{
model
:
e
.
loginForm
,
rules
:
e
.
loginRules
,
autocomplete
:
"
on
"
,
"
label-position
"
:
"
left
"
}},[
o
(
"
div
"
,{
staticClass
:
"
title-container
"
},[
o
(
"
div
"
,[
o
(
"
img
"
,{
attrs
:{
src
:
n
(
"
4ffd
"
),
alt
:
"
AI智能客服系统
"
}})]),
e
.
_v
(
"
"
),
o
(
"
div
"
,{
staticClass
:
"
title
"
},[
e
.
_v
(
"
AI智能客服系统
"
)])]),
e
.
_v
(
"
"
),
o
(
"
el-form-item
"
,{
staticClass
:
"
border-b
"
,
attrs
:{
prop
:
"
username
"
}},[
o
(
"
span
"
,{
staticClass
:
"
svg-container
"
},[
o
(
"
svg-icon
"
,{
attrs
:{
"
icon-class
"
:
"
user
"
}})],
1
),
e
.
_v
(
"
"
),
o
(
"
el-input
"
,{
ref
:
"
username
"
,
attrs
:{
placeholder
:
"
请输入手机号/账号
"
,
name
:
"
username
"
,
type
:
"
text
"
,
tabindex
:
"
1
"
,
autocomplete
:
"
on
"
},
model
:{
value
:
e
.
loginForm
.
username
,
callback
:
function
(
t
){
e
.
$set
(
e
.
loginForm
,
"
username
"
,
t
)},
expression
:
"
loginForm.username
"
}})],
1
),
e
.
_v
(
"
"
),
o
(
"
el-tooltip
"
,{
attrs
:{
content
:
"
Caps lock is On
"
,
placement
:
"
right
"
,
manual
:
""
},
model
:{
value
:
e
.
capsTooltip
,
callback
:
function
(
t
){
e
.
capsTooltip
=
t
},
expression
:
"
capsTooltip
"
}},[
o
(
"
el-form-item
"
,{
staticClass
:
"
border-b
"
,
attrs
:{
prop
:
"
password
"
}},[
o
(
"
span
"
,{
staticClass
:
"
svg-container
"
},[
o
(
"
svg-icon
"
,{
attrs
:{
"
icon-class
"
:
"
password
"
}})],
1
),
e
.
_v
(
"
"
),
o
(
"
el-input
"
,{
key
:
e
.
passwordType
,
ref
:
"
password
"
,
attrs
:{
type
:
e
.
passwordType
,
placeholder
:
"
请输入密码
"
,
name
:
"
password
"
,
tabindex
:
"
2
"
,
autocomplete
:
"
on
"
},
on
:{
blur
:
function
(
t
){
e
.
capsTooltip
=!
1
}},
nativeOn
:{
keyup
:[
function
(
t
){
return
e
.
checkCapslock
(
t
)},
function
(
t
){
return
!
t
.
type
.
indexOf
(
"
key
"
)
&&
e
.
_k
(
t
.
keyCode
,
"
enter
"
,
13
,
t
.
key
,
"
Enter
"
)?
null
:
e
.
handleLogin
(
t
)}]},
model
:{
value
:
e
.
loginForm
.
password
,
callback
:
function
(
t
){
e
.
$set
(
e
.
loginForm
,
"
password
"
,
t
)},
expression
:
"
loginForm.password
"
}}),
e
.
_v
(
"
"
),
o
(
"
span
"
,{
staticClass
:
"
show-pwd
"
,
on
:{
click
:
e
.
showPwd
}},[
o
(
"
svg-icon
"
,{
attrs
:{
"
icon-class
"
:
"
password
"
===
e
.
passwordType
?
"
eye
"
:
"
eye-open
"
}})],
1
)],
1
)],
1
),
e
.
_v
(
"
"
),
o
(
"
el-form-item
"
,{
staticClass
:
"
remenber-box
"
,
attrs
:{
prop
:
"
remenber
"
}},[
o
(
"
el-row
"
,[
o
(
"
el-col
"
,{
attrs
:{
span
:
12
}},[
o
(
"
el-checkbox
"
,{
model
:{
value
:
e
.
loginForm
.
remenber
,
callback
:
function
(
t
){
e
.
$set
(
e
.
loginForm
,
"
remenber
"
,
t
)},
expression
:
"
loginForm.remenber
"
}},[
e
.
_v
(
"
记住密码
"
)])],
1
)],
1
)],
1
),
e
.
_v
(
"
"
),
o
(
"
el-button
"
,{
staticClass
:
"
login-btn
"
,
attrs
:{
loading
:
e
.
loading
},
nativeOn
:{
click
:
function
(
t
){
return
t
.
preventDefault
(),
e
.
handleLogin
(
t
)}}},[
e
.
_v
(
"
登录
"
)]),
e
.
_v
(
"
"
),
o
(
"
el-form-item
"
,{
staticClass
:
"
read-box
"
,
attrs
:{
prop
:
"
readAgrement
"
}},[
o
(
"
el-checkbox
"
,{
model
:{
value
:
e
.
loginForm
.
readAgrement
,
callback
:
function
(
t
){
e
.
$set
(
e
.
loginForm
,
"
readAgrement
"
,
t
)},
expression
:
"
loginForm.readAgrement
"
}},[
o
(
"
span
"
,[
e
.
_v
(
"
我已阅读并同意AI智能客服
"
)])]),
e
.
_v
(
"
"
),
o
(
"
a
"
,{
staticClass
:
"
agreement-txt
"
,
on
:{
click
:
e
.
handleAgreementOpen
}},[
e
.
_v
(
"
用户协议
"
)])],
1
)],
1
),
e
.
_v
(
"
"
),
o
(
"
el-dialog
"
,{
staticStyle
:{
height
:
"
90%
"
},
attrs
:{
title
:
"
AI智能客服用户协议
"
,
visible
:
e
.
dialogAgreementVisible
,
"
close-on-click-modal
"
:
!
1
,
"
before-close
"
:
e
.
handleAgreementClose
,
width
:
"
60%
"
,
center
:
""
},
on
:{
"
update:visible
"
:
function
(
t
){
e
.
dialogAgreementVisible
=
t
}}},[
o
(
"
div
"
,[
o
(
"
div
"
,{
staticClass
:
"
am-modal-bd rule
"
,
staticStyle
:{
padding
:
"
0px 100px 0px 100px!important
"
}},[
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
温馨提示:
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
AI智能客服平台在此特别提醒您(用户)在使用户之前,请认真阅读本《用户协议》(以下简称“协议”),确保您充分理解本协议中各条款。请您审慎阅读并选择接受或不接受本协议。除非您接受本协议所有条款,否则您无权登录或使用本协议所涉服务。您的登录、使用等行为将视为对本协议的接受,并同意接受本协议各项条款的约束。本协议约定AI智能客服系统与用户之间关于“AI智能客服系统”软件服务(以下简称“服务”)的权利义务。“用户”是指登录、使用本服务的个人或企业。本协议可由AI智能客服系统随时更新,更新后的协议条款一旦公布即代替原来的协议条款,恕不再另行通知,用户可在本网站查阅最新版协议条款。在AI智能客服系统修改协议条款后,如果用户不接受修改后的条款,请立即停止使用AI智能客服系统提供的服务,用户继续使用AI智能客服系统提供的服务将被视为接受修改后的协议。
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
一、服务内容
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、AI智能客服系统可以对其提供的服务予以变更,且AI智能客服系统提供的服务内容可能随时变更;用户将会收到关于服务变更的通知。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
2、AI智能客服系统提供的服务包含免费服务与收费服务。用户可以通过付费方式购买收费服务,对于收费服务,AI智能客服系统会在用户使用之前给予用户明确的提示,只有用户根据提示确认其同意按照前述支付方式支付费用并完成了支付行为,用户才能使用该等收费服务。支付行为的完成以银行或第三方支付平台生成“支付已完成”的确认通知为准。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
二、用户个人信息保护
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、用户个人信息包括:
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
1)用户自行提供的用户个人信息;2)其他方分享的用户个人信息;3)AI智能客服系统为提供服务而合法收集的用户必要个人信息(如使用服务时系统自动采集的设备或软件信息,浏览历史信息,通讯时间信息等技术信息,用户开启定位功能并使用服务时的地理位置信息等)。
\n
其中个人隐私信息是指涉及用户个人身份或个人隐私的信息,比如,用户真实姓名、身份证号、手机号码、手机设备识别码、IP地址。非个人隐私信息是指用户对本服务的操作状态以及使用习惯等明确且客观反映在AI智能客服系统服务器端的基本记录信息、个人隐私信息范围外的其它普通信息,以及用户同意公开的上述隐私信息。AI智能客服系统保证在取得用户书面同意的情况下收集、使用或公开用户的个人隐私信息,用户同意AI智能客服系统无需获得用户的另行确认与授权即可收集、使用或公开用户的非个人隐私信息。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
2、尊重用户个人信息的私有性是AI智能客服系统的一贯制度,AI智能客服系统将采取技术措施和其他必要措施,确保用户个人信息安全,防止在本服务中收集的用户个人信息泄露、毁损或丢失。在发生前述情形或者AI智能客服系统发现存在发生前述情形的可能时,AI智能客服系统将及时采取补救措施并告知用户,用户如发现存在前述情形亦需立即与AI智能客服系统联系。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
3、AI智能客服系统未经用户同意不向任何第三方公开、 透露用户个人隐私信息。但以下特定情形除外:
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
(1) AI智能客服系统根据法律法规规定或有权机关的指示提供用户的个人隐私信息; (2) 由于用户将其用户密码告知他人或与他人共享注册帐户与密码,由此导致的任何个人信息的泄漏,或其他非因AI智能客服系统原因导致的个人隐私信息的泄露;
\n
(3) 用户自行向第三方公开其个人隐私信息; (4) 用户与AI智能客服系统及合作单位之间就用户个人隐私信息的使用公开达成约定,AI智能客服系统因此向合作单位公开用户个人隐私信息;
\n
(5) 任何由于黑客攻击、电脑病毒侵入及其他不可抗力事件导致用户个人隐私信息的泄露; (6) 用户个人信息已经经过处理无法识别特定个人且不能复原。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
4、用户同意AI智能客服系统可在以下事项中使用用户的个人隐私信息: (1) AI智能客服系统向用户及时发送重要通知,如软件更新、本协议条款的变更; (2)
\n
AI智能客服系统内部进行审计、数据分析和研究等,以改进AI智能客服系统的产品、服务和与用户之间的沟通; (3) 依本协议约定,AI智能客服系统管理、审查用户信息及进行处理措施;
\n
(4) 适用法律法规规定的其他事项。 除上述事项外,如未取得用户事先同意,AI智能客服系统不会将用户个人隐私信息使用于任何其他用途。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
5、为了改善AI智能客服系统的技术和服务,向用户提供更好的服务体验,AI智能客服系统或可会自行收集使用或向第三方提供用户的非个人隐私信息。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
6、AI智能客服系统保证在合法、正当与必要的原则下收集、使用或者公开用户个人信息且不会收集与提供的服务无关的用户个人信息。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
三、内容规范
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、本条所述内容是指用户使用本服务过程中所制作、上载、复制、发布、的任何内容,包括但不限于帐号头像、名称、用户说明等认证资料,或文字、语音、图片、视频、图文等发送、回复或自动回复消息和相关链接页面,以及其他使用帐号或本服务所产生的内容。
\n
2、用户不得利用“AI智能客服系统”帐号或本服务制作、上载、复制、发布、传播如下法律、法规和政策禁止的内容: (1) 反对宪法所确定的基本原则的; (2)
\n
危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的; (3) 损害国家荣誉和利益的; (4) 煽动民族仇恨、民族歧视,破坏民族团结的; (5) 破坏国家宗教政策,宣扬邪教和封建迷信的;
\n
(6) 散布谣言,扰乱社会秩序,破坏社会稳定的; (7) 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的; (8) 侮辱或者诽谤他人,侵害他人合法权益的;
\n
(9) 不遵守法律法规底线、社会主义制度底线、国家利益底线、公民合法权益底线、社会公共秩序底线、道德风尚底线和信息真实性底线的“七条底线”要求的; (10)
\n
含有法律、行政法规禁止的其他内容的信息。 3、用户不得利用“AI智能客服系统”帐号或本服务制作、上载、复制、发布、传播如下干扰“AI智能客服系统”正常运营,以及侵犯其他用户或第三方合法权益的内容:
\n
(1) 含有任何性或性暗示的; (2) 含有辱骂、恐吓、威胁内容的; (3) 含有骚扰、垃圾广告、恶意信息、诱骗信息的; (4) 涉及他人隐私、个人信息或资料的;
\n
(5) 侵害他人名誉权、肖像权、知识产权、商业秘密等合法权利的; (6) 含有其他干扰本服务正常运营和侵犯其他用户或第三方合法权益内容的信息。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
四、使用规则
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、用户在本服务中或通过本服务所传送、发布的任何内容并不反映或代表,也不得被视为反映或代表AI智能客服系统的观点、立场或政策,AI智能客服系统对此不承担任何责任。
\n
2、用户不得利用“AI智能客服系统”帐号或本服务进行如下行为: (1) 提交、发布虚假信息,或盗用他人头像或资料,冒充、利用他人名义的; (2) 强制、诱导其他用户关注、点击链接页面或分享信息的;
\n
(3) 虚构事实、隐瞒真相以误导、欺骗他人的; (4) 利用技术手段批量建立虚假帐号的; (5) 利用“AI智能客服系统”帐号或本服务从事任何违法犯罪活动的;
\n
(6) 制作、发布与以上行为相关的方法、工具,或对此类方法、工具进行运营或传播,无论这些行为是否为商业目的; (7) 其他违反法律法规规定、侵犯其他用户合法权益、干扰“AI智能客服系统”正常运营或AI智能客服系统未明示授权的行为。
\n
3、用户须对利用“AI智能客服系统”帐号或本服务传送信息的真实性、合法性、无害性、准确性、有效性等全权负责,与用户所传播的信息相关的任何法律责任由用户自行承担,与AI智能客服系统无关。如因此给AI智能客服系统或第三方造成损害的,用户应当依法予以赔偿。
\n
4、AI智能客服系统提供的服务中可能包括广告,用户同意在使用过程中显示AI智能客服系统和第三方供应商、合作伙伴提供的广告。除法律法规明确规定外,用户应自行对依该广告信息进行的交易负责,对用户因依该广告信息进行的交易或前述广告商提供的内容而遭受的损失或损害,AI智能客服系统不承担任何责任。
\n
5、除非AI智能客服系统书面许可,用户不得从事下列任一行为: (1) 删除软件及其副本上关于著作权的信息; (2) 对软件进行反向工程、反向汇编、反向编译,或者以其他方式尝试发现软件的源代码;
\n
(3) 对AI智能客服系统拥有知识产权的内容进行使用、出租、出借、复制、修改、链接、转载、汇编、发表、出版、建立镜像站点等; (4) 对软件或者软件运行过程中释放到任何终端内存中的数据、软件运行过程中客户端与服务器端的交互数据,以及软件运行所必需的系统数据,进行复制、修改、增加、删除、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经AI智能客服系统授权的第三方工具/服务接入软件和相关系统;
\n
(5) 通过修改或伪造软件运行中的指令、数据,增加、删减、变动软件的功能或运行效果,或者将用于上述用途的软件、方法进行运营或向公众传播,无论这些行为是否为商业目的;
\n
(6) 通过非AI智能客服系统开发、授权的第三方软件、插件、外挂、系统,登录或使用AI智能客服系统软件及服务,或制作、发布、传播非AI智能客服系统开发、授权的第三方软件、插件、外挂、系统。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
五、账户管理
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、 “AI智能客服系统”帐号的所有权归AI智能客服系统所有,获得“AI智能客服系统”帐号的使用权,该使用权仅属于初始申请人,禁止赠与、借用、租用、转让或售卖。AI智能客服系统因经营需要,有权回收用户的“AI智能客服系统”帐号。
\n
2、用户可以通过1)查看与编辑个人资料页,2)更改“AI智能客服系统”帐户上的个人基本信息及传送内容等,但需注意,删除有关信息的同时也会删除用户储存在系统中的文字和图片。用户需承担该风险。
\n
3、用户有责任妥善保管帐号信息及帐号密码的安全,因用户保管不善可能导致遭受盗号或密码失窃,责任由用户自行承担。用户需要对帐号以及密码下的行为承担法律责任。用户同意在任何情况下不使用其他用户的帐号或密码。在用户怀疑他人使用其帐号或密码时,用户同意立即通知AI智能客服系统。
\n
4、用户应遵守本协议的各项条款,正确、适当地使用本服务,如因用户违反本协议中的任何条款,AI智能客服系统在通知用户后有权依据协议中断或终止对违约用户“AI智能客服系统”帐号提供服务。同时,AI智能客服系统保留在任何时候收回“AI智能客服系统”帐号、用户名的权利。
\n
5、如用户“AI智能客服系统”帐号后一年不登录,通知用户后,AI智能客服系统可以收回该帐号,以免造成资源浪费,由此造成的不利后果由用户自行承担。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
六、数据储存
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、AI智能客服系统不对用户在本服务中相关数据的删除或储存失败负责。 2、AI智能客服系统可以根据实际情况自行决定用户在本服务中数据的最长储存期限,并在服务器上为其分配数据最大存储空间等。用户可根据自己的需要自行备份本服务中的相关数据。
\n
3、如用户停止使用本服务或本服务终止,AI智能客服系统可以从服务器上永久地删除用户的数据。本服务停止、终止后,AI智能客服系统没有义务向用户返还任何数据。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
七、风险承担
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、用户理解并同意,“AI智能客服系统”仅为用户提供信息分享、传送及获取的平台,用户必须为自己帐号下的一切行为负责,包括用户所传送的任何内容以及由此产生的任何后果。用户应对“AI智能客服系统”及本服务中的内容自行加以判断,并承担因使用内容而引起的所有风险,包括因对内容的正确性、完整性或实用性的依赖而产生的风险。AI智能客服系统无法且不会对因用户行为而导致的任何损失或损害承担责任。
\n
如果用户发现任何人违反本协议约定或以其他不当的方式使用本服务,请立即向AI智能客服系统举报或投诉,举报或投诉电话为 400-777-9908
\n
,AI智能客服系统将依本协议约定进行处理。
\n
2、用户理解并同意,因业务发展需要,AI智能客服系统保留单方面对本服务的全部或部分服务内容变更、暂停、终止或撤销的权利,用户需承担此风险。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
八、知识产权声明
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、除本服务中涉及广告的知识产权由相应广告商享有外,AI智能客服系统在本服务中提供的内容(包括但不限于网页、文字、图片、音频、图表等)的知识产权均归AI智能客服系统所有,但用户在使用本服务前对自己发布的内容已合法取得知识产权的除外。
\n
2、除另有特别声明外,AI智能客服系统提供本服务时所依托软件的著作权、专利权及其他知识产权均归AI智能客服系统所有。 3、AI智能客服系统在本服务中所涉及的图形、文字或其组成,以及其他AI智能客服系统标志及产品、服务名称(以下统称“AI智能客服系统标识”),其著作权或商标权归AI智能客服系统所有。未经AI智能客服系统事先书面同意,用户不得将AI智能客服系统标识以任何方式展示或使用或作其他处理,也不得向他人表明用户有权展示、使用、或其他有权处理AI智能客服系统标识的行为。
\n
4、上述及其他任何AI智能客服系统或相关广告商依法拥有的知识产权均受到法律保护,未经AI智能客服系统或相关广告商书面许可,用户不得以任何形式进行使用或创造相关衍生作品。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
九、法律责任
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、甲方同意并接受本协议的相关规定,合法合规使用本软件,并保证不用于骚扰类盲打电话外呼用途。甲方不得利用本软件从事反党反国家以及其他违反国家法律、法规或侵犯第三方权益的活动。甲方将本软件用于外呼的,应当征得接听方同意,不得对接听方正常生活造成影响,接听方明确表示拒绝的,不得继续向其发起呼叫。否则由此产生的后果均由甲方承担,同时乙方有权终止本合同,拒绝为甲方提供产品账户的剩余服务期限,给乙方造成损失的,甲方应承担乙方所有损失,包括但不限于律师费、诉讼费、差旅费、鉴定费等一切相关费用。2、如果AI智能客服系统发现或收到他人举报或投诉用户违反本协议约定的,AI智能客服系统有权不经通知随时对相关内容,包括但不限于用户资料、会话记录进行审查、删除,并视情节轻重对违规帐号处以包括但不限于警告、帐号封禁
\n
、设备封禁 、功能封禁 的处罚,且通知用户处理结果。 3、因违反用户协议被封禁的用户,可以自行到 致电 400-777-9908
\n
查询封禁期限,并在封禁期限届满后自助解封。其中,被实施功能封禁的用户会在封禁期届满后自动恢复被封禁功能。被封禁用户可向AI智能客服系统网站相关页面提交申诉,AI智能客服系统将对申诉进行审查,并自行合理判断决定是否变更处罚措施。
\n
4、用户理解并同意,AI智能客服系统有权依合理判断对违反有关法律法规或本协议规定的行为进行处罚,对违法违规的任何用户采取适当的法律行动,并依据法律法规保存有关信息向有关部门报告等,用户应承担由此而产生的一切法律责任。
\n
5、用户理解并同意,因用户违反本协议约定,导致或产生的任何第三方主张的任何索赔、要求或损失,包括合理的律师费,用户应当赔偿AI智能客服系统与合作公司、关联公司,并使之免受损害。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
十、不可抗力及其他免责事由
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、用户理解并确认,在使用本服务的过程中,可能会遇到不可抗力等风险因素,使本服务发生中断。不可抗力是指不能预见、不能克服并不能避免且对一方或双方造成重大影响的客观事件,包括但不限于自然灾害如洪水、地震、瘟疫流行和风暴等以及社会事件如战争、动乱、政府行为等。出现上述情况时,AI智能客服系统将努力在第一时间与相关单位配合,及时进行修复,但是由此给用户或第三方造成的损失,AI智能客服系统及合作单位在法律允许的范围内免责。
\n
2、本服务同大多数互联网服务一样,受包括但不限于用户原因、网络服务质量、社会环境等因素的差异影响,可能受到各种安全问题的侵扰,如他人利用用户的资料,造成现实生活中的骚扰;用户下载安装的其它软件或访问的其他网站中含有“特洛伊木马”等病毒,威胁到用户的计算机信息和数据的安全,继而影响本服务的正常使用等等。用户应加强信息安全及使用者资料的保护意识,要注意加强密码保护,以免遭致损失和骚扰。
\n
3、用户理解并确认,本服务存在因不可抗力、计算机病毒或黑客攻击、系统不稳定、用户所在位置、用户关机以及其他任何技术、互联网络、通信线路原因等造成的服务中断或不能满足用户要求的风险,因此导致的用户或第三方任何损失,AI智能客服系统不承担任何责任。
\n
4、用户理解并确认,在使用本服务过程中存在来自任何他人的包括误导性的、欺骗性的、威胁性的、诽谤性的、令人反感的或非法的信息,或侵犯他人权利的匿名或冒名的信息,以及伴随该等信息的行为,因此导致的用户或第三方的任何损失,AI智能客服系统不承担任何责任。
\n
5、用户理解并确认,AI智能客服系统需要定期或不定期地对“AI智能客服系统”平台或相关的设备进行检修或者维护,如因此类情况而造成服务在合理时间内的中断,AI智能客服系统无需为此承担任何责任,但AI智能客服系统应事先进行通告。
\n
6、AI智能客服系统依据法律法规、本协议约定获得处理违法违规或违约内容的权利,该权利不构成AI智能客服系统的义务或承诺,AI智能客服系统不能保证及时发现违法违规或违约行为或进行相应处理。
\n
7、用户理解并确认,对于AI智能客服系统向用户提供的下列产品或者服务的质量缺陷及其引发的任何损失,AI智能客服系统无需承担任何责任: (1) AI智能客服系统向用户免费提供的服务;
\n
(2) AI智能客服系统向用户赠送的任何产品或者服务。 8、在任何情况下,AI智能客服系统均不对任何间接性、后果性、惩罚性、偶然性、特殊性或刑罚性的损害,包括因用户使用“AI智能客服系统”或本服务而遭受的利润损失,承担责任(即使AI智能客服系统已被告知该等损失的可能性亦然)。尽管本协议中可能含有相悖的规定,AI智能客服系统对用户承担的全部责任,无论因何原因或何种行为方式,始终不超过用户因使用AI智能客服系统提供的服务而支付给AI智能客服系统的费用(如有)。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
十一、服务的变更、中断、终止
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、如发生下列任何一种情形,AI智能客服系统有权变更、中断或终止向用户提供的免费服务或收费服务,而无需对用户或任何第三方承担任何责任: (1) 根据法律规定用户应提交真实信息,而用户提供的个人资料不真实、或信息不一致又未能提供合理证明;
\n
(2) 用户违反相关法律法规或本协议的约定; (3) 按照法律规定或有权机关的要求; (4) 出于安全的原因或其他必要的情形。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
十二、其他
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、AI智能客服系统郑重提醒用户注意本协议中免除AI智能客服系统责任和限制用户权利的条款,请用户仔细阅读,自主考虑风险。未成年人应在法定监护人的陪同下阅读本协议。
\n
2、本协议的效力、解释及纠纷的解决,适用于中华人民共和国法律。若用户和AI智能客服系统之间发生任何纠纷或争议,首先应友好协商解决,协商不成的,用户同意将纠纷或争议提交AI智能客服系统住所地有管辖权的人民法院管辖。
\n
3、本协议的任何条款无论因何种原因无效或不具可执行性,其余条款仍有效,对双方具有约束力。
\n
"
)])])]),
e
.
_v
(
"
"
),
o
(
"
span
"
,{
staticClass
:
"
dialog-footer
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
o
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
e
.
handleAgreementSave
}},[
e
.
_v
(
"
同意
"
)])],
1
)])],
1
)},
s
=
[],
r
=
(
n
(
"
ac6a
"
),
n
(
"
456d
"
),
n
(
"
6b54
"
),
n
(
"
572f
"
),{
name
:
"
Login
"
,
data
:
function
(){
return
{
dialogAgreementVisible
:
!
1
,
loginForm
:{
remenber
:
!
0
,
readAgrement
:
!
0
,
username
:
""
,
password
:
""
},
loginRules
:{
username
:[{
required
:
!
0
,
trigger
:
"
blur
"
,
message
:
"
账号必填
"
}],
password
:[{
required
:
!
0
,
trigger
:
"
blur
"
,
message
:
"
密码必填
"
}]},
passwordType
:
"
password
"
,
capsTooltip
:
!
1
,
loading
:
!
1
,
redirect
:
void
0
,
otherQuery
:{}}},
watch
:{
$route
:{
handler
:
function
(
e
){
var
t
=
e
.
query
;
t
&&
(
this
.
redirect
=
t
.
redirect
,
this
.
otherQuery
=
this
.
getOtherQuery
(
t
))},
immediate
:
!
0
}},
mounted
:
function
(){
"
yes
"
===
localStorage
.
getItem
(
"
aicremenberpwd
"
)
&&
(
this
.
loginForm
.
remenber
=!
0
,
this
.
loginForm
.
username
=
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
aicusername
"
)),
this
.
loginForm
.
password
=
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
aicuserpwd
"
))),
particlesJS
(
"
particlesId
"
,{
particles
:{
number
:{
value
:
80
,
density
:{
enable
:
!
0
,
value_area
:
800
}},
color
:{
value
:
"
#666
"
},
shape
:{
type
:
"
circle
"
,
stroke
:{
width
:
0
,
color
:
"
#666
"
},
polygon
:{
nb_sides
:
5
},
image
:{
src
:
"
img/github.svg
"
,
width
:
100
,
height
:
100
}},
opacity
:{
value
:.
5
,
random
:
!
1
,
anim
:{
enable
:
!
1
,
speed
:
1
,
opacity_min
:.
1
,
sync
:
!
1
}},
size
:{
value
:
5
,
random
:
!
0
,
anim
:{
enable
:
!
1
,
speed
:
40
,
size_min
:.
1
,
sync
:
!
1
}},
line_linked
:{
enable
:
!
0
,
distance
:
150
,
color
:
"
#666
"
,
opacity
:.
4
,
width
:
1
},
move
:{
enable
:
!
0
,
speed
:
6
,
direction
:
"
none
"
,
random
:
!
1
,
straight
:
!
1
,
out_mode
:
"
out
"
,
attract
:{
enable
:
!
1
,
rotateX
:
600
,
rotateY
:
1200
}}},
interactivity
:{
detect_on
:
"
canvas
"
,
events
:{
onhover
:{
enable
:
!
0
,
mode
:
"
repulse
"
},
onclick
:{
enable
:
!
0
,
mode
:
"
push
"
},
resize
:
!
0
},
modes
:{
grab
:{
distance
:
400
,
line_linked
:{
opacity
:
1
}},
bubble
:{
distance
:
400
,
size
:
40
,
duration
:
2
,
opacity
:
8
,
speed
:
3
},
repulse
:{
distance
:
200
},
push
:{
particles_nb
:
4
},
remove
:{
particles_nb
:
2
}}},
retina_detect
:
!
0
,
config_demo
:{
hide_card
:
!
1
,
background_color
:
"
#000
"
,
background_image
:
""
,
background_position
:
"
50% 50%
"
,
background_repeat
:
"
no-repeat
"
,
background_size
:
"
cover
"
}}),
""
===
this
.
loginForm
.
username
?
this
.
$refs
.
username
.
focus
():
""
===
this
.
loginForm
.
password
&&
this
.
$refs
.
password
.
focus
()},
methods
:{
handleAgreementClose
:
function
(){
this
.
dialogAgreementVisible
=!
1
},
handleAgreementOpen
:
function
(){
this
.
dialogAgreementVisible
=!
0
},
handleAgreementSave
:
function
(){
this
.
dialogAgreementVisible
=!
1
,
this
.
loginForm
.
readAgrement
=!
0
},
checkCapslock
:
function
(
e
){
var
t
=
e
.
key
;
this
.
capsTooltip
=
t
&&
1
===
t
.
length
&&
t
>=
"
A
"
&&
t
<=
"
Z
"
},
showPwd
:
function
(){
var
e
=
this
;
"
password
"
===
this
.
passwordType
?
this
.
passwordType
=
""
:
this
.
passwordType
=
"
password
"
,
this
.
$nextTick
((
function
(){
e
.
$refs
.
password
.
focus
()}))},
handleLogin
:
function
(){
var
e
=
this
;
this
.
$refs
.
loginForm
.
validate
((
function
(
t
){
if
(
!
t
)
return
!
1
;
if
(
!
e
.
loginForm
.
readAgrement
)
return
e
.
$message
({
message
:
"
请阅读并勾选用户协议
"
,
type
:
"
warning
"
}),
!
1
;
e
.
loginForm
.
remenber
?(
localStorage
.
setItem
(
"
aicremenberpwd
"
,
"
yes
"
),
localStorage
.
setItem
(
"
aicusername
"
,
e
.
$publicTools
.
encrypt
(
e
.
loginForm
.
username
)),
localStorage
.
setItem
(
"
aicuserpwd
"
,
e
.
$publicTools
.
encrypt
(
e
.
loginForm
.
password
))):(
localStorage
.
removeItem
(
"
aicremenberpwd
"
),
localStorage
.
removeItem
(
"
aicusername
"
),
localStorage
.
removeItem
(
"
aicuserpwd
"
)),
e
.
loading
=!
0
;
var
n
=
e
.
loginForm
,
o
=
n
.
username
,
s
=
n
.
password
;
e
.
$store
.
dispatch
(
"
user/login
"
,{
username
:
o
,
password
:
s
}).
then
((
function
(
t
){
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
t
.
info
)?(
localStorage
.
setItem
(
"
user_name
"
,
e
.
$publicTools
.
encrypt
(
t
.
info
.
user_name
)),
localStorage
.
setItem
(
"
user_sn
"
,
e
.
$publicTools
.
encrypt
(
t
.
info
.
user_sn
))):(
localStorage
.
setItem
(
"
user_name
"
,
""
),
localStorage
.
setItem
(
"
user_sn
"
,
""
)),
e
.
$router
.
push
({
path
:
e
.
redirect
||
"
/
"
,
query
:
e
.
otherQuery
}),
e
.
loading
=!
1
})).
catch
((
function
(){
e
.
loading
=!
1
}))}))},
getOtherQuery
:
function
(
e
){
return
Object
.
keys
(
e
).
reduce
((
function
(
t
,
n
){
return
"
redirect
"
!==
n
&&
(
t
[
n
]
=
e
[
n
]),
t
}),{})}}}),
i
=
r
,
a
=
(
n
(
"
2017
"
),
n
(
"
823f
"
),
n
(
"
2877
"
)),
l
=
Object
(
a
[
"
a
"
])(
i
,
o
,
s
,
!
1
,
null
,
"
fb29c77e
"
,
null
);
t
[
"
default
"
]
=
l
.
exports
},
b12d
:
function
(
e
,
t
,
n
){}}]);
\ No newline at end of file
(
window
[
"
webpackJsonp
"
]
=
window
[
"
webpackJsonp
"
]
||
[]).
push
([[
"
chunk-15cd5b8a
"
],{
2017
:
function
(
e
,
t
,
n
){
"
use strict
"
;
var
o
=
n
(
"
b12d
"
),
s
=
n
.
n
(
o
);
s
.
a
},
4530
:
function
(
e
,
t
,
n
){
"
use strict
"
;
var
o
=
n
(
"
8e75
"
),
s
=
n
.
n
(
o
);
s
.
a
},
"
8e75
"
:
function
(
e
,
t
,
n
){},
"
9ed6
"
:
function
(
e
,
t
,
n
){
"
use strict
"
;
n
.
r
(
t
);
var
o
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
o
=
e
.
_self
.
_c
||
t
;
return
o
(
"
div
"
,{
staticClass
:
"
login-container
"
,
attrs
:{
id
:
"
particlesId
"
}},[
o
(
"
el-form
"
,{
ref
:
"
loginForm
"
,
staticClass
:
"
login-form
"
,
attrs
:{
model
:
e
.
loginForm
,
rules
:
e
.
loginRules
,
autocomplete
:
"
on
"
,
"
label-position
"
:
"
left
"
}},[
o
(
"
div
"
,{
staticClass
:
"
title-container
"
},[
o
(
"
div
"
,[
o
(
"
img
"
,{
attrs
:{
src
:
n
(
"
4ffd
"
),
alt
:
"
AI智能客服系统
"
}})]),
e
.
_v
(
"
"
),
o
(
"
div
"
,{
staticClass
:
"
title
"
},[
e
.
_v
(
"
AI智能客服系统
"
)])]),
e
.
_v
(
"
"
),
o
(
"
el-form-item
"
,{
staticClass
:
"
border-b
"
,
attrs
:{
prop
:
"
username
"
}},[
o
(
"
span
"
,{
staticClass
:
"
svg-container
"
},[
o
(
"
svg-icon
"
,{
attrs
:{
"
icon-class
"
:
"
user
"
}})],
1
),
e
.
_v
(
"
"
),
o
(
"
el-input
"
,{
ref
:
"
username
"
,
attrs
:{
placeholder
:
"
请输入手机号/账号
"
,
name
:
"
username
"
,
type
:
"
text
"
,
tabindex
:
"
1
"
,
autocomplete
:
"
on
"
},
model
:{
value
:
e
.
loginForm
.
username
,
callback
:
function
(
t
){
e
.
$set
(
e
.
loginForm
,
"
username
"
,
t
)},
expression
:
"
loginForm.username
"
}})],
1
),
e
.
_v
(
"
"
),
o
(
"
el-tooltip
"
,{
attrs
:{
content
:
"
Caps lock is On
"
,
placement
:
"
right
"
,
manual
:
""
},
model
:{
value
:
e
.
capsTooltip
,
callback
:
function
(
t
){
e
.
capsTooltip
=
t
},
expression
:
"
capsTooltip
"
}},[
o
(
"
el-form-item
"
,{
staticClass
:
"
border-b
"
,
attrs
:{
prop
:
"
password
"
}},[
o
(
"
span
"
,{
staticClass
:
"
svg-container
"
},[
o
(
"
svg-icon
"
,{
attrs
:{
"
icon-class
"
:
"
password
"
}})],
1
),
e
.
_v
(
"
"
),
o
(
"
el-input
"
,{
key
:
e
.
passwordType
,
ref
:
"
password
"
,
attrs
:{
type
:
e
.
passwordType
,
placeholder
:
"
请输入密码
"
,
name
:
"
password
"
,
tabindex
:
"
2
"
,
autocomplete
:
"
on
"
},
on
:{
blur
:
function
(
t
){
e
.
capsTooltip
=!
1
}},
nativeOn
:{
keyup
:[
function
(
t
){
return
e
.
checkCapslock
(
t
)},
function
(
t
){
return
!
t
.
type
.
indexOf
(
"
key
"
)
&&
e
.
_k
(
t
.
keyCode
,
"
enter
"
,
13
,
t
.
key
,
"
Enter
"
)?
null
:
e
.
handleLogin
(
t
)}]},
model
:{
value
:
e
.
loginForm
.
password
,
callback
:
function
(
t
){
e
.
$set
(
e
.
loginForm
,
"
password
"
,
t
)},
expression
:
"
loginForm.password
"
}}),
e
.
_v
(
"
"
),
o
(
"
span
"
,{
staticClass
:
"
show-pwd
"
,
on
:{
click
:
e
.
showPwd
}},[
o
(
"
svg-icon
"
,{
attrs
:{
"
icon-class
"
:
"
password
"
===
e
.
passwordType
?
"
eye
"
:
"
eye-open
"
}})],
1
)],
1
)],
1
),
e
.
_v
(
"
"
),
o
(
"
el-form-item
"
,{
staticClass
:
"
remenber-box
"
,
attrs
:{
prop
:
"
remenber
"
}},[
o
(
"
el-row
"
,[
o
(
"
el-col
"
,{
attrs
:{
span
:
12
}},[
o
(
"
el-checkbox
"
,{
model
:{
value
:
e
.
loginForm
.
remenber
,
callback
:
function
(
t
){
e
.
$set
(
e
.
loginForm
,
"
remenber
"
,
t
)},
expression
:
"
loginForm.remenber
"
}},[
e
.
_v
(
"
记住密码
"
)])],
1
)],
1
)],
1
),
e
.
_v
(
"
"
),
o
(
"
el-button
"
,{
staticClass
:
"
login-btn
"
,
attrs
:{
loading
:
e
.
loading
},
nativeOn
:{
click
:
function
(
t
){
return
t
.
preventDefault
(),
e
.
handleLogin
(
t
)}}},[
e
.
_v
(
"
登录
"
)]),
e
.
_v
(
"
"
),
o
(
"
el-form-item
"
,{
staticClass
:
"
read-box
"
,
attrs
:{
prop
:
"
readAgrement
"
}},[
o
(
"
el-checkbox
"
,{
model
:{
value
:
e
.
loginForm
.
readAgrement
,
callback
:
function
(
t
){
e
.
$set
(
e
.
loginForm
,
"
readAgrement
"
,
t
)},
expression
:
"
loginForm.readAgrement
"
}},[
o
(
"
span
"
,[
e
.
_v
(
"
我已阅读并同意AI智能客服
"
)])]),
e
.
_v
(
"
"
),
o
(
"
a
"
,{
staticClass
:
"
agreement-txt
"
,
on
:{
click
:
e
.
handleAgreementOpen
}},[
e
.
_v
(
"
用户协议
"
)])],
1
)],
1
),
e
.
_v
(
"
"
),
o
(
"
el-dialog
"
,{
staticStyle
:{
height
:
"
90%
"
},
attrs
:{
title
:
"
AI智能客服用户协议
"
,
visible
:
e
.
dialogAgreementVisible
,
"
close-on-click-modal
"
:
!
1
,
"
before-close
"
:
e
.
handleAgreementClose
,
width
:
"
60%
"
,
center
:
""
},
on
:{
"
update:visible
"
:
function
(
t
){
e
.
dialogAgreementVisible
=
t
}}},[
o
(
"
div
"
,[
o
(
"
div
"
,{
staticClass
:
"
am-modal-bd rule
"
,
staticStyle
:{
padding
:
"
0px 100px 0px 100px!important
"
}},[
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
温馨提示:
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
AI智能客服平台在此特别提醒您(用户)在使用户之前,请认真阅读本《用户协议》(以下简称“协议”),确保您充分理解本协议中各条款。请您审慎阅读并选择接受或不接受本协议。除非您接受本协议所有条款,否则您无权登录或使用本协议所涉服务。您的登录、使用等行为将视为对本协议的接受,并同意接受本协议各项条款的约束。本协议约定AI智能客服系统与用户之间关于“AI智能客服系统”软件服务(以下简称“服务”)的权利义务。“用户”是指登录、使用本服务的个人或企业。本协议可由AI智能客服系统随时更新,更新后的协议条款一旦公布即代替原来的协议条款,恕不再另行通知,用户可在本网站查阅最新版协议条款。在AI智能客服系统修改协议条款后,如果用户不接受修改后的条款,请立即停止使用AI智能客服系统提供的服务,用户继续使用AI智能客服系统提供的服务将被视为接受修改后的协议。
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
一、服务内容
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、AI智能客服系统可以对其提供的服务予以变更,且AI智能客服系统提供的服务内容可能随时变更;用户将会收到关于服务变更的通知。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
2、AI智能客服系统提供的服务包含免费服务与收费服务。用户可以通过付费方式购买收费服务,对于收费服务,AI智能客服系统会在用户使用之前给予用户明确的提示,只有用户根据提示确认其同意按照前述支付方式支付费用并完成了支付行为,用户才能使用该等收费服务。支付行为的完成以银行或第三方支付平台生成“支付已完成”的确认通知为准。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
二、用户个人信息保护
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、用户个人信息包括:
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
1)用户自行提供的用户个人信息;2)其他方分享的用户个人信息;3)AI智能客服系统为提供服务而合法收集的用户必要个人信息(如使用服务时系统自动采集的设备或软件信息,浏览历史信息,通讯时间信息等技术信息,用户开启定位功能并使用服务时的地理位置信息等)。
\n
其中个人隐私信息是指涉及用户个人身份或个人隐私的信息,比如,用户真实姓名、身份证号、手机号码、手机设备识别码、IP地址。非个人隐私信息是指用户对本服务的操作状态以及使用习惯等明确且客观反映在AI智能客服系统服务器端的基本记录信息、个人隐私信息范围外的其它普通信息,以及用户同意公开的上述隐私信息。AI智能客服系统保证在取得用户书面同意的情况下收集、使用或公开用户的个人隐私信息,用户同意AI智能客服系统无需获得用户的另行确认与授权即可收集、使用或公开用户的非个人隐私信息。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
2、尊重用户个人信息的私有性是AI智能客服系统的一贯制度,AI智能客服系统将采取技术措施和其他必要措施,确保用户个人信息安全,防止在本服务中收集的用户个人信息泄露、毁损或丢失。在发生前述情形或者AI智能客服系统发现存在发生前述情形的可能时,AI智能客服系统将及时采取补救措施并告知用户,用户如发现存在前述情形亦需立即与AI智能客服系统联系。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
3、AI智能客服系统未经用户同意不向任何第三方公开、 透露用户个人隐私信息。但以下特定情形除外:
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
(1) AI智能客服系统根据法律法规规定或有权机关的指示提供用户的个人隐私信息; (2) 由于用户将其用户密码告知他人或与他人共享注册帐户与密码,由此导致的任何个人信息的泄漏,或其他非因AI智能客服系统原因导致的个人隐私信息的泄露;
\n
(3) 用户自行向第三方公开其个人隐私信息; (4) 用户与AI智能客服系统及合作单位之间就用户个人隐私信息的使用公开达成约定,AI智能客服系统因此向合作单位公开用户个人隐私信息;
\n
(5) 任何由于黑客攻击、电脑病毒侵入及其他不可抗力事件导致用户个人隐私信息的泄露; (6) 用户个人信息已经经过处理无法识别特定个人且不能复原。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
4、用户同意AI智能客服系统可在以下事项中使用用户的个人隐私信息: (1) AI智能客服系统向用户及时发送重要通知,如软件更新、本协议条款的变更; (2)
\n
AI智能客服系统内部进行审计、数据分析和研究等,以改进AI智能客服系统的产品、服务和与用户之间的沟通; (3) 依本协议约定,AI智能客服系统管理、审查用户信息及进行处理措施;
\n
(4) 适用法律法规规定的其他事项。 除上述事项外,如未取得用户事先同意,AI智能客服系统不会将用户个人隐私信息使用于任何其他用途。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
5、为了改善AI智能客服系统的技术和服务,向用户提供更好的服务体验,AI智能客服系统或可会自行收集使用或向第三方提供用户的非个人隐私信息。
\n
"
),
o
(
"
br
"
),
e
.
_v
(
"
6、AI智能客服系统保证在合法、正当与必要的原则下收集、使用或者公开用户个人信息且不会收集与提供的服务无关的用户个人信息。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
三、内容规范
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、本条所述内容是指用户使用本服务过程中所制作、上载、复制、发布、的任何内容,包括但不限于帐号头像、名称、用户说明等认证资料,或文字、语音、图片、视频、图文等发送、回复或自动回复消息和相关链接页面,以及其他使用帐号或本服务所产生的内容。
\n
2、用户不得利用“AI智能客服系统”帐号或本服务制作、上载、复制、发布、传播如下法律、法规和政策禁止的内容: (1) 反对宪法所确定的基本原则的; (2)
\n
危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的; (3) 损害国家荣誉和利益的; (4) 煽动民族仇恨、民族歧视,破坏民族团结的; (5) 破坏国家宗教政策,宣扬邪教和封建迷信的;
\n
(6) 散布谣言,扰乱社会秩序,破坏社会稳定的; (7) 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的; (8) 侮辱或者诽谤他人,侵害他人合法权益的;
\n
(9) 不遵守法律法规底线、社会主义制度底线、国家利益底线、公民合法权益底线、社会公共秩序底线、道德风尚底线和信息真实性底线的“七条底线”要求的; (10)
\n
含有法律、行政法规禁止的其他内容的信息。 3、用户不得利用“AI智能客服系统”帐号或本服务制作、上载、复制、发布、传播如下干扰“AI智能客服系统”正常运营,以及侵犯其他用户或第三方合法权益的内容:
\n
(1) 含有任何性或性暗示的; (2) 含有辱骂、恐吓、威胁内容的; (3) 含有骚扰、垃圾广告、恶意信息、诱骗信息的; (4) 涉及他人隐私、个人信息或资料的;
\n
(5) 侵害他人名誉权、肖像权、知识产权、商业秘密等合法权利的; (6) 含有其他干扰本服务正常运营和侵犯其他用户或第三方合法权益内容的信息。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
四、使用规则
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、用户在本服务中或通过本服务所传送、发布的任何内容并不反映或代表,也不得被视为反映或代表AI智能客服系统的观点、立场或政策,AI智能客服系统对此不承担任何责任。
\n
2、用户不得利用“AI智能客服系统”帐号或本服务进行如下行为: (1) 提交、发布虚假信息,或盗用他人头像或资料,冒充、利用他人名义的; (2) 强制、诱导其他用户关注、点击链接页面或分享信息的;
\n
(3) 虚构事实、隐瞒真相以误导、欺骗他人的; (4) 利用技术手段批量建立虚假帐号的; (5) 利用“AI智能客服系统”帐号或本服务从事任何违法犯罪活动的;
\n
(6) 制作、发布与以上行为相关的方法、工具,或对此类方法、工具进行运营或传播,无论这些行为是否为商业目的; (7) 其他违反法律法规规定、侵犯其他用户合法权益、干扰“AI智能客服系统”正常运营或AI智能客服系统未明示授权的行为。
\n
3、用户须对利用“AI智能客服系统”帐号或本服务传送信息的真实性、合法性、无害性、准确性、有效性等全权负责,与用户所传播的信息相关的任何法律责任由用户自行承担,与AI智能客服系统无关。如因此给AI智能客服系统或第三方造成损害的,用户应当依法予以赔偿。
\n
4、AI智能客服系统提供的服务中可能包括广告,用户同意在使用过程中显示AI智能客服系统和第三方供应商、合作伙伴提供的广告。除法律法规明确规定外,用户应自行对依该广告信息进行的交易负责,对用户因依该广告信息进行的交易或前述广告商提供的内容而遭受的损失或损害,AI智能客服系统不承担任何责任。
\n
5、除非AI智能客服系统书面许可,用户不得从事下列任一行为: (1) 删除软件及其副本上关于著作权的信息; (2) 对软件进行反向工程、反向汇编、反向编译,或者以其他方式尝试发现软件的源代码;
\n
(3) 对AI智能客服系统拥有知识产权的内容进行使用、出租、出借、复制、修改、链接、转载、汇编、发表、出版、建立镜像站点等; (4) 对软件或者软件运行过程中释放到任何终端内存中的数据、软件运行过程中客户端与服务器端的交互数据,以及软件运行所必需的系统数据,进行复制、修改、增加、删除、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经AI智能客服系统授权的第三方工具/服务接入软件和相关系统;
\n
(5) 通过修改或伪造软件运行中的指令、数据,增加、删减、变动软件的功能或运行效果,或者将用于上述用途的软件、方法进行运营或向公众传播,无论这些行为是否为商业目的;
\n
(6) 通过非AI智能客服系统开发、授权的第三方软件、插件、外挂、系统,登录或使用AI智能客服系统软件及服务,或制作、发布、传播非AI智能客服系统开发、授权的第三方软件、插件、外挂、系统。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
五、账户管理
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、 “AI智能客服系统”帐号的所有权归AI智能客服系统所有,获得“AI智能客服系统”帐号的使用权,该使用权仅属于初始申请人,禁止赠与、借用、租用、转让或售卖。AI智能客服系统因经营需要,有权回收用户的“AI智能客服系统”帐号。
\n
2、用户可以通过1)查看与编辑个人资料页,2)更改“AI智能客服系统”帐户上的个人基本信息及传送内容等,但需注意,删除有关信息的同时也会删除用户储存在系统中的文字和图片。用户需承担该风险。
\n
3、用户有责任妥善保管帐号信息及帐号密码的安全,因用户保管不善可能导致遭受盗号或密码失窃,责任由用户自行承担。用户需要对帐号以及密码下的行为承担法律责任。用户同意在任何情况下不使用其他用户的帐号或密码。在用户怀疑他人使用其帐号或密码时,用户同意立即通知AI智能客服系统。
\n
4、用户应遵守本协议的各项条款,正确、适当地使用本服务,如因用户违反本协议中的任何条款,AI智能客服系统在通知用户后有权依据协议中断或终止对违约用户“AI智能客服系统”帐号提供服务。同时,AI智能客服系统保留在任何时候收回“AI智能客服系统”帐号、用户名的权利。
\n
5、如用户“AI智能客服系统”帐号后一年不登录,通知用户后,AI智能客服系统可以收回该帐号,以免造成资源浪费,由此造成的不利后果由用户自行承担。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
六、数据储存
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、AI智能客服系统不对用户在本服务中相关数据的删除或储存失败负责。 2、AI智能客服系统可以根据实际情况自行决定用户在本服务中数据的最长储存期限,并在服务器上为其分配数据最大存储空间等。用户可根据自己的需要自行备份本服务中的相关数据。
\n
3、如用户停止使用本服务或本服务终止,AI智能客服系统可以从服务器上永久地删除用户的数据。本服务停止、终止后,AI智能客服系统没有义务向用户返还任何数据。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
七、风险承担
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、用户理解并同意,“AI智能客服系统”仅为用户提供信息分享、传送及获取的平台,用户必须为自己帐号下的一切行为负责,包括用户所传送的任何内容以及由此产生的任何后果。用户应对“AI智能客服系统”及本服务中的内容自行加以判断,并承担因使用内容而引起的所有风险,包括因对内容的正确性、完整性或实用性的依赖而产生的风险。AI智能客服系统无法且不会对因用户行为而导致的任何损失或损害承担责任。
\n
如果用户发现任何人违反本协议约定或以其他不当的方式使用本服务,请立即向AI智能客服系统举报或投诉,举报或投诉电话为 400-777-9908
\n
,AI智能客服系统将依本协议约定进行处理。
\n
2、用户理解并同意,因业务发展需要,AI智能客服系统保留单方面对本服务的全部或部分服务内容变更、暂停、终止或撤销的权利,用户需承担此风险。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
八、知识产权声明
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、除本服务中涉及广告的知识产权由相应广告商享有外,AI智能客服系统在本服务中提供的内容(包括但不限于网页、文字、图片、音频、图表等)的知识产权均归AI智能客服系统所有,但用户在使用本服务前对自己发布的内容已合法取得知识产权的除外。
\n
2、除另有特别声明外,AI智能客服系统提供本服务时所依托软件的著作权、专利权及其他知识产权均归AI智能客服系统所有。 3、AI智能客服系统在本服务中所涉及的图形、文字或其组成,以及其他AI智能客服系统标志及产品、服务名称(以下统称“AI智能客服系统标识”),其著作权或商标权归AI智能客服系统所有。未经AI智能客服系统事先书面同意,用户不得将AI智能客服系统标识以任何方式展示或使用或作其他处理,也不得向他人表明用户有权展示、使用、或其他有权处理AI智能客服系统标识的行为。
\n
4、上述及其他任何AI智能客服系统或相关广告商依法拥有的知识产权均受到法律保护,未经AI智能客服系统或相关广告商书面许可,用户不得以任何形式进行使用或创造相关衍生作品。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
九、法律责任
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、甲方同意并接受本协议的相关规定,合法合规使用本软件,并保证不用于骚扰类盲打电话外呼用途。甲方不得利用本软件从事反党反国家以及其他违反国家法律、法规或侵犯第三方权益的活动。甲方将本软件用于外呼的,应当征得接听方同意,不得对接听方正常生活造成影响,接听方明确表示拒绝的,不得继续向其发起呼叫。否则由此产生的后果均由甲方承担,同时乙方有权终止本合同,拒绝为甲方提供产品账户的剩余服务期限,给乙方造成损失的,甲方应承担乙方所有损失,包括但不限于律师费、诉讼费、差旅费、鉴定费等一切相关费用。2、如果AI智能客服系统发现或收到他人举报或投诉用户违反本协议约定的,AI智能客服系统有权不经通知随时对相关内容,包括但不限于用户资料、会话记录进行审查、删除,并视情节轻重对违规帐号处以包括但不限于警告、帐号封禁
\n
、设备封禁 、功能封禁 的处罚,且通知用户处理结果。 3、因违反用户协议被封禁的用户,可以自行到 致电 400-777-9908
\n
查询封禁期限,并在封禁期限届满后自助解封。其中,被实施功能封禁的用户会在封禁期届满后自动恢复被封禁功能。被封禁用户可向AI智能客服系统网站相关页面提交申诉,AI智能客服系统将对申诉进行审查,并自行合理判断决定是否变更处罚措施。
\n
4、用户理解并同意,AI智能客服系统有权依合理判断对违反有关法律法规或本协议规定的行为进行处罚,对违法违规的任何用户采取适当的法律行动,并依据法律法规保存有关信息向有关部门报告等,用户应承担由此而产生的一切法律责任。
\n
5、用户理解并同意,因用户违反本协议约定,导致或产生的任何第三方主张的任何索赔、要求或损失,包括合理的律师费,用户应当赔偿AI智能客服系统与合作公司、关联公司,并使之免受损害。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
十、不可抗力及其他免责事由
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、用户理解并确认,在使用本服务的过程中,可能会遇到不可抗力等风险因素,使本服务发生中断。不可抗力是指不能预见、不能克服并不能避免且对一方或双方造成重大影响的客观事件,包括但不限于自然灾害如洪水、地震、瘟疫流行和风暴等以及社会事件如战争、动乱、政府行为等。出现上述情况时,AI智能客服系统将努力在第一时间与相关单位配合,及时进行修复,但是由此给用户或第三方造成的损失,AI智能客服系统及合作单位在法律允许的范围内免责。
\n
2、本服务同大多数互联网服务一样,受包括但不限于用户原因、网络服务质量、社会环境等因素的差异影响,可能受到各种安全问题的侵扰,如他人利用用户的资料,造成现实生活中的骚扰;用户下载安装的其它软件或访问的其他网站中含有“特洛伊木马”等病毒,威胁到用户的计算机信息和数据的安全,继而影响本服务的正常使用等等。用户应加强信息安全及使用者资料的保护意识,要注意加强密码保护,以免遭致损失和骚扰。
\n
3、用户理解并确认,本服务存在因不可抗力、计算机病毒或黑客攻击、系统不稳定、用户所在位置、用户关机以及其他任何技术、互联网络、通信线路原因等造成的服务中断或不能满足用户要求的风险,因此导致的用户或第三方任何损失,AI智能客服系统不承担任何责任。
\n
4、用户理解并确认,在使用本服务过程中存在来自任何他人的包括误导性的、欺骗性的、威胁性的、诽谤性的、令人反感的或非法的信息,或侵犯他人权利的匿名或冒名的信息,以及伴随该等信息的行为,因此导致的用户或第三方的任何损失,AI智能客服系统不承担任何责任。
\n
5、用户理解并确认,AI智能客服系统需要定期或不定期地对“AI智能客服系统”平台或相关的设备进行检修或者维护,如因此类情况而造成服务在合理时间内的中断,AI智能客服系统无需为此承担任何责任,但AI智能客服系统应事先进行通告。
\n
6、AI智能客服系统依据法律法规、本协议约定获得处理违法违规或违约内容的权利,该权利不构成AI智能客服系统的义务或承诺,AI智能客服系统不能保证及时发现违法违规或违约行为或进行相应处理。
\n
7、用户理解并确认,对于AI智能客服系统向用户提供的下列产品或者服务的质量缺陷及其引发的任何损失,AI智能客服系统无需承担任何责任: (1) AI智能客服系统向用户免费提供的服务;
\n
(2) AI智能客服系统向用户赠送的任何产品或者服务。 8、在任何情况下,AI智能客服系统均不对任何间接性、后果性、惩罚性、偶然性、特殊性或刑罚性的损害,包括因用户使用“AI智能客服系统”或本服务而遭受的利润损失,承担责任(即使AI智能客服系统已被告知该等损失的可能性亦然)。尽管本协议中可能含有相悖的规定,AI智能客服系统对用户承担的全部责任,无论因何原因或何种行为方式,始终不超过用户因使用AI智能客服系统提供的服务而支付给AI智能客服系统的费用(如有)。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
十一、服务的变更、中断、终止
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、如发生下列任何一种情形,AI智能客服系统有权变更、中断或终止向用户提供的免费服务或收费服务,而无需对用户或任何第三方承担任何责任: (1) 根据法律规定用户应提交真实信息,而用户提供的个人资料不真实、或信息不一致又未能提供合理证明;
\n
(2) 用户违反相关法律法规或本协议的约定; (3) 按照法律规定或有权机关的要求; (4) 出于安全的原因或其他必要的情形。
\n
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
十二、其他
"
)]),
e
.
_v
(
"
"
),
o
(
"
p
"
,{
staticStyle
:{
"
text-indent
"
:
"
2em
"
,
color
:
"
#404040
"
,
"
font-size
"
:
"
14px
"
}},[
e
.
_v
(
"
\n
1、AI智能客服系统郑重提醒用户注意本协议中免除AI智能客服系统责任和限制用户权利的条款,请用户仔细阅读,自主考虑风险。未成年人应在法定监护人的陪同下阅读本协议。
\n
2、本协议的效力、解释及纠纷的解决,适用于中华人民共和国法律。若用户和AI智能客服系统之间发生任何纠纷或争议,首先应友好协商解决,协商不成的,用户同意将纠纷或争议提交AI智能客服系统住所地有管辖权的人民法院管辖。
\n
3、本协议的任何条款无论因何种原因无效或不具可执行性,其余条款仍有效,对双方具有约束力。
\n
"
)])])]),
e
.
_v
(
"
"
),
o
(
"
span
"
,{
staticClass
:
"
dialog-footer
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
o
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
e
.
handleAgreementSave
}},[
e
.
_v
(
"
同意
"
)])],
1
)])],
1
)},
s
=
[],
r
=
(
n
(
"
ac6a
"
),
n
(
"
456d
"
),
n
(
"
6b54
"
),
n
(
"
572f
"
),{
name
:
"
Login
"
,
data
:
function
(){
return
{
dialogAgreementVisible
:
!
1
,
loginForm
:{
remenber
:
!
0
,
readAgrement
:
!
0
,
username
:
""
,
password
:
""
},
loginRules
:{
username
:[{
required
:
!
0
,
trigger
:
"
blur
"
,
message
:
"
账号必填
"
}],
password
:[{
required
:
!
0
,
trigger
:
"
blur
"
,
message
:
"
密码必填
"
}]},
passwordType
:
"
password
"
,
capsTooltip
:
!
1
,
loading
:
!
1
,
redirect
:
void
0
,
otherQuery
:{}}},
watch
:{
$route
:{
handler
:
function
(
e
){
var
t
=
e
.
query
;
t
&&
(
this
.
redirect
=
t
.
redirect
,
this
.
otherQuery
=
this
.
getOtherQuery
(
t
))},
immediate
:
!
0
}},
mounted
:
function
(){
"
yes
"
===
localStorage
.
getItem
(
"
aicremenberpwd
"
)
&&
(
this
.
loginForm
.
remenber
=!
0
,
this
.
loginForm
.
username
=
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
aicusername
"
)),
this
.
loginForm
.
password
=
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
aicuserpwd
"
))),
particlesJS
(
"
particlesId
"
,{
particles
:{
number
:{
value
:
80
,
density
:{
enable
:
!
0
,
value_area
:
800
}},
color
:{
value
:
"
#666
"
},
shape
:{
type
:
"
circle
"
,
stroke
:{
width
:
0
,
color
:
"
#666
"
},
polygon
:{
nb_sides
:
5
},
image
:{
src
:
"
img/github.svg
"
,
width
:
100
,
height
:
100
}},
opacity
:{
value
:.
5
,
random
:
!
1
,
anim
:{
enable
:
!
1
,
speed
:
1
,
opacity_min
:.
1
,
sync
:
!
1
}},
size
:{
value
:
5
,
random
:
!
0
,
anim
:{
enable
:
!
1
,
speed
:
40
,
size_min
:.
1
,
sync
:
!
1
}},
line_linked
:{
enable
:
!
0
,
distance
:
150
,
color
:
"
#666
"
,
opacity
:.
4
,
width
:
1
},
move
:{
enable
:
!
0
,
speed
:
6
,
direction
:
"
none
"
,
random
:
!
1
,
straight
:
!
1
,
out_mode
:
"
out
"
,
attract
:{
enable
:
!
1
,
rotateX
:
600
,
rotateY
:
1200
}}},
interactivity
:{
detect_on
:
"
canvas
"
,
events
:{
onhover
:{
enable
:
!
0
,
mode
:
"
repulse
"
},
onclick
:{
enable
:
!
0
,
mode
:
"
push
"
},
resize
:
!
0
},
modes
:{
grab
:{
distance
:
400
,
line_linked
:{
opacity
:
1
}},
bubble
:{
distance
:
400
,
size
:
40
,
duration
:
2
,
opacity
:
8
,
speed
:
3
},
repulse
:{
distance
:
200
},
push
:{
particles_nb
:
4
},
remove
:{
particles_nb
:
2
}}},
retina_detect
:
!
0
,
config_demo
:{
hide_card
:
!
1
,
background_color
:
"
#000
"
,
background_image
:
""
,
background_position
:
"
50% 50%
"
,
background_repeat
:
"
no-repeat
"
,
background_size
:
"
cover
"
}}),
""
===
this
.
loginForm
.
username
?
this
.
$refs
.
username
.
focus
():
""
===
this
.
loginForm
.
password
&&
this
.
$refs
.
password
.
focus
()},
methods
:{
handleAgreementClose
:
function
(){
this
.
dialogAgreementVisible
=!
1
},
handleAgreementOpen
:
function
(){
this
.
dialogAgreementVisible
=!
0
},
handleAgreementSave
:
function
(){
this
.
dialogAgreementVisible
=!
1
,
this
.
loginForm
.
readAgrement
=!
0
},
checkCapslock
:
function
(
e
){
var
t
=
e
.
key
;
this
.
capsTooltip
=
t
&&
1
===
t
.
length
&&
t
>=
"
A
"
&&
t
<=
"
Z
"
},
showPwd
:
function
(){
var
e
=
this
;
"
password
"
===
this
.
passwordType
?
this
.
passwordType
=
""
:
this
.
passwordType
=
"
password
"
,
this
.
$nextTick
((
function
(){
e
.
$refs
.
password
.
focus
()}))},
handleLogin
:
function
(){
var
e
=
this
;
this
.
$refs
.
loginForm
.
validate
((
function
(
t
){
if
(
!
t
)
return
!
1
;
if
(
!
e
.
loginForm
.
readAgrement
)
return
e
.
$message
({
message
:
"
请阅读并勾选用户协议
"
,
type
:
"
warning
"
}),
!
1
;
e
.
loginForm
.
remenber
?(
localStorage
.
setItem
(
"
aicremenberpwd
"
,
"
yes
"
),
localStorage
.
setItem
(
"
aicusername
"
,
e
.
$publicTools
.
encrypt
(
e
.
loginForm
.
username
)),
localStorage
.
setItem
(
"
aicuserpwd
"
,
e
.
$publicTools
.
encrypt
(
e
.
loginForm
.
password
))):(
localStorage
.
removeItem
(
"
aicremenberpwd
"
),
localStorage
.
removeItem
(
"
aicusername
"
),
localStorage
.
removeItem
(
"
aicuserpwd
"
)),
e
.
loading
=!
0
;
var
n
=
e
.
loginForm
,
o
=
n
.
username
,
s
=
n
.
password
;
e
.
$store
.
dispatch
(
"
user/login
"
,{
username
:
o
,
password
:
s
}).
then
((
function
(
t
){
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
t
.
info
)?(
localStorage
.
setItem
(
"
user_name
"
,
e
.
$publicTools
.
encrypt
(
t
.
info
.
user_name
)),
localStorage
.
setItem
(
"
user_sn
"
,
e
.
$publicTools
.
encrypt
(
t
.
info
.
user_sn
))):(
localStorage
.
setItem
(
"
user_name
"
,
""
),
localStorage
.
setItem
(
"
user_sn
"
,
""
)),
e
.
$router
.
push
({
path
:
e
.
redirect
||
"
/
"
,
query
:
e
.
otherQuery
}),
e
.
loading
=!
1
})).
catch
((
function
(){
e
.
loading
=!
1
}))}))},
getOtherQuery
:
function
(
e
){
return
Object
.
keys
(
e
).
reduce
((
function
(
t
,
n
){
return
"
redirect
"
!==
n
&&
(
t
[
n
]
=
e
[
n
]),
t
}),{})}}}),
i
=
r
,
a
=
(
n
(
"
2017
"
),
n
(
"
4530
"
),
n
(
"
2877
"
)),
l
=
Object
(
a
[
"
a
"
])(
i
,
o
,
s
,
!
1
,
null
,
"
242d2e17
"
,
null
);
t
[
"
default
"
]
=
l
.
exports
},
b12d
:
function
(
e
,
t
,
n
){}}]);
\ No newline at end of file
public/zjtlj/dist/static/js/chunk-4344061d.7f0c96b3.js
0 → 100644
View file @
0494db9c
(
window
[
"
webpackJsonp
"
]
=
window
[
"
webpackJsonp
"
]
||
[]).
push
([[
"
chunk-4344061d
"
],{
1190
:
function
(
t
,
e
,
a
){
"
use strict
"
;
var
s
=
a
(
"
e228
"
),
l
=
a
.
n
(
s
);
l
.
a
},
2423
:
function
(
t
,
e
,
a
){
"
use strict
"
;
a
.
d
(
e
,
"
a
"
,(
function
(){
return
l
})),
a
.
d
(
e
,
"
h
"
,(
function
(){
return
i
})),
a
.
d
(
e
,
"
g
"
,(
function
(){
return
o
})),
a
.
d
(
e
,
"
f
"
,(
function
(){
return
n
})),
a
.
d
(
e
,
"
j
"
,(
function
(){
return
r
})),
a
.
d
(
e
,
"
d
"
,(
function
(){
return
c
})),
a
.
d
(
e
,
"
c
"
,(
function
(){
return
d
})),
a
.
d
(
e
,
"
k
"
,(
function
(){
return
u
})),
a
.
d
(
e
,
"
i
"
,(
function
(){
return
p
})),
a
.
d
(
e
,
"
e
"
,(
function
(){
return
m
})),
a
.
d
(
e
,
"
b
"
,(
function
(){
return
f
}));
var
s
=
a
(
"
b775
"
);
function
l
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategySet
"
,
method
:
"
post
"
,
data
:
t
})}
function
i
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategySet
"
,
method
:
"
get
"
,
params
:
t
})}
function
o
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategy/getProjectsList
"
,
method
:
"
post
"
,
data
:
t
})}
function
n
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategy/getCallNumberList
"
,
method
:
"
post
"
,
data
:
t
})}
function
r
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategy/getUsersList
"
,
method
:
"
post
"
,
data
:
t
})}
function
c
(
t
){
var
e
=
"
https://test117.ciopaas.com:81/
"
;
window
.
open
(
e
+
(
"
/
"
===
e
.
slice
(
e
.
length
-
1
)?
""
:
"
/
"
)
+
"
api/strategy/downloadModel?user_sn=
"
+
t
.
user_sn
)}
function
d
(
t
){
var
e
=
"
https://test117.ciopaas.com:81/
"
;
window
.
open
(
e
+
(
"
/
"
===
e
.
slice
(
e
.
length
-
1
)?
""
:
"
/
"
)
+
"
api/strategy/downloadFailExcel?user_sn=
"
+
t
.
user_sn
+
"
&filename=
"
+
t
.
filename
)}
function
u
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategy/importExcelData
"
,
method
:
"
post
"
,
data
:
t
})}
function
p
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategyTask
"
,
method
:
"
get
"
,
params
:
t
})}
function
m
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategyTask/
"
.
concat
(
t
.
id
),
method
:
"
PUT
"
,
data
:
t
})}
function
f
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategySet/
"
+
t
.
strategy_sn
+
"
?user_sn=
"
+
t
.
user_sn
,
method
:
"
delete
"
})}},
"
41bd
"
:
function
(
t
,
e
,
a
){},
6201
:
function
(
t
,
e
,
a
){},
6724
:
function
(
t
,
e
,
a
){
"
use strict
"
;
a
(
"
8d41
"
);
var
s
=
"
@@wavesContext
"
;
function
l
(
t
,
e
){
function
a
(
a
){
var
s
=
Object
.
assign
({},
e
.
value
),
l
=
Object
.
assign
({
ele
:
t
,
type
:
"
hit
"
,
color
:
"
rgba(0, 0, 0, 0.15)
"
},
s
),
i
=
l
.
ele
;
if
(
i
){
i
.
style
.
position
=
"
relative
"
,
i
.
style
.
overflow
=
"
hidden
"
;
var
o
=
i
.
getBoundingClientRect
(),
n
=
i
.
querySelector
(
"
.waves-ripple
"
);
switch
(
n
?
n
.
className
=
"
waves-ripple
"
:(
n
=
document
.
createElement
(
"
span
"
),
n
.
className
=
"
waves-ripple
"
,
n
.
style
.
height
=
n
.
style
.
width
=
Math
.
max
(
o
.
width
,
o
.
height
)
+
"
px
"
,
i
.
appendChild
(
n
)),
l
.
type
){
case
"
center
"
:
n
.
style
.
top
=
o
.
height
/
2
-
n
.
offsetHeight
/
2
+
"
px
"
,
n
.
style
.
left
=
o
.
width
/
2
-
n
.
offsetWidth
/
2
+
"
px
"
;
break
;
default
:
n
.
style
.
top
=
(
a
.
pageY
-
o
.
top
-
n
.
offsetHeight
/
2
-
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
)
+
"
px
"
,
n
.
style
.
left
=
(
a
.
pageX
-
o
.
left
-
n
.
offsetWidth
/
2
-
document
.
documentElement
.
scrollLeft
||
document
.
body
.
scrollLeft
)
+
"
px
"
}
return
n
.
style
.
backgroundColor
=
l
.
color
,
n
.
className
=
"
waves-ripple z-active
"
,
!
1
}}
return
t
[
s
]?
t
[
s
].
removeHandle
=
a
:
t
[
s
]
=
{
removeHandle
:
a
},
a
}
var
i
=
{
bind
:
function
(
t
,
e
){
t
.
addEventListener
(
"
click
"
,
l
(
t
,
e
),
!
1
)},
update
:
function
(
t
,
e
){
t
.
removeEventListener
(
"
click
"
,
t
[
s
].
removeHandle
,
!
1
),
t
.
addEventListener
(
"
click
"
,
l
(
t
,
e
),
!
1
)},
unbind
:
function
(
t
){
t
.
removeEventListener
(
"
click
"
,
t
[
s
].
removeHandle
,
!
1
),
t
[
s
]
=
null
,
delete
t
[
s
]}},
o
=
function
(
t
){
t
.
directive
(
"
waves
"
,
i
)};
window
.
Vue
&&
(
window
.
waves
=
i
,
Vue
.
use
(
o
)),
i
.
install
=
o
;
e
[
"
a
"
]
=
i
},
"
8d41
"
:
function
(
t
,
e
,
a
){},
9406
:
function
(
t
,
e
,
a
){
"
use strict
"
;
a
.
r
(
e
);
var
s
=
function
(){
var
t
=
this
,
e
=
t
.
$createElement
,
a
=
t
.
_self
.
_c
||
e
;
return
a
(
"
div
"
,{
staticClass
:
"
app-container
"
},[
a
(
"
div
"
,{
staticClass
:
"
filter-container text-rt
"
},[
a
(
"
el-button
"
,{
staticStyle
:{
"
margin-left
"
:
"
10px
"
,
padding
:
"
10px
"
},
attrs
:{
icon
:
"
el-icon-circle-plus-outline
"
},
on
:{
click
:
t
.
handleCreate
}})],
1
),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
body-container
"
},[
a
(
"
el-table
"
,{
directives
:[{
name
:
"
loading
"
,
rawName
:
"
v-loading
"
,
value
:
t
.
listLoading
,
expression
:
"
listLoading
"
}],
key
:
t
.
tableKey
,
ref
:
"
singleTable
"
,
staticStyle
:{
width
:
"
100%
"
},
attrs
:{
data
:
t
.
list
,
border
:
""
,
fit
:
""
,
"
highlight-current-row
"
:
""
}},[
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
策略名称
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
strategy_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
话术流程
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
project_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
导入数据量
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
total
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
外呼日期
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
day_type_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
外呼频率
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
frequency_type_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
状态
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
disabled_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
创建时间
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
created_at
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
fixed
:
"
right
"
,
label
:
"
操作
"
,
align
:
"
center
"
,
width
:
"
180
"
,
"
class-name
"
:
"
small-padding fixed-width
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
el-tooltip
"
,{
attrs
:{
content
:
"
导入数据
"
}},[
a
(
"
el-button
"
,{
attrs
:{
size
:
"
small
"
,
plain
:
""
,
icon
:
"
el-icon-edit-outline
"
},
on
:{
click
:
function
(
e
){
return
t
.
importData
(
s
)}}})],
1
),
t
.
_v
(
"
"
),
a
(
"
el-tooltip
"
,{
attrs
:{
content
:
"
任务数据
"
}},[
a
(
"
el-button
"
,{
attrs
:{
size
:
"
small
"
,
plain
:
""
,
icon
:
"
el-icon-document
"
},
on
:{
click
:
function
(
e
){
return
t
.
goTaskData
(
s
)}}})],
1
),
t
.
_v
(
"
"
),
a
(
"
el-tooltip
"
,{
attrs
:{
content
:
"
删除
"
}},[
a
(
"
el-button
"
,{
attrs
:{
size
:
"
small
"
,
plain
:
""
,
icon
:
"
el-icon-delete
"
},
on
:{
click
:
function
(
e
){
return
t
.
handleDelete
(
s
)}}})],
1
)]}}])})],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
t
.
textMap
[
t
.
dialogStatus
]
+
"
外呼策略
"
,
visible
:
t
.
dialogFormVisible
,
"
append-to-body
"
:
!
0
,
width
:
"
720px
"
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
dialogFormVisible
=
e
}}},[
t
.
dialogFormVisible
?
a
(
"
AddOrEdit
"
,{
attrs
:{
temp
:
t
.
temp
,
dialogStatus
:
t
.
dialogStatus
},
on
:{
save
:
t
.
addCallback
}}):
t
.
_e
()],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
"
导入数据
"
,
width
:
"
400px
"
,
visible
:
t
.
importVisible
,
"
append-to-body
"
:
!
0
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
importVisible
=
e
}}},[
t
.
importVisible
?
a
(
"
ImprtData
"
,{
attrs
:{
temp
:
t
.
temp
,
dialogStatus
:
t
.
dialogStatus
},
on
:{
indexSave
:
t
.
importCallbackIndex
}}):
t
.
_e
()],
1
)],
1
)},
l
=
[],
i
=
(
a
(
"
6b54
"
),
a
(
"
5df3
"
),
a
(
"
1c4c
"
),
a
(
"
2423
"
)),
o
=
a
(
"
6724
"
),
n
=
function
(){
var
t
=
this
,
e
=
t
.
$createElement
,
a
=
t
.
_self
.
_c
||
e
;
return
a
(
"
div
"
,[
a
(
"
div
"
,[
a
(
"
el-form
"
,{
ref
:
"
dataForm
"
,
attrs
:{
rules
:
t
.
rules
,
model
:
t
.
temp
,
"
label-position
"
:
"
top
"
,
"
label-width
"
:
"
90px
"
,
id
:
"
strategy-add-form
"
}},[
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
策略名称
"
,
prop
:
"
strategy_name
"
}},[
a
(
"
el-input
"
,{
attrs
:{
clearable
:
""
,
placeholder
:
"
请输入策略名称
"
},
model
:{
value
:
t
.
temp
.
strategy_name
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
strategy_name
"
,
e
)},
expression
:
"
temp.strategy_name
"
}})],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
客户数据
"
,
prop
:
"
upload
"
}},[
a
(
"
div
"
,{
staticClass
:
"
upload-box
"
},[
a
(
"
el-input
"
,{
attrs
:{
placeholder
:
"
请按照模板格式填写数据(文件大小不可超过8MB)
"
,
readonly
:
""
},
model
:{
value
:
t
.
temp
.
uploadname
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
uploadname
"
,
e
)},
expression
:
"
temp.uploadname
"
}}),
t
.
_v
(
"
"
),
a
(
"
i
"
,{
staticClass
:
"
el-icon-circle-close
"
,
on
:{
click
:
t
.
delFile
}}),
t
.
_v
(
"
"
),
a
(
"
i
"
,{
staticClass
:
"
el-icon-upload
"
,
on
:{
click
:
t
.
importData
}})],
1
),
t
.
_v
(
"
"
),
a
(
"
el-button
"
,{
staticClass
:
"
download-btn
"
,
attrs
:{
size
:
"
small
"
},
on
:{
click
:
t
.
downloadTemplate
}},[
t
.
_v
(
"
下载模板
"
)])],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
子账号
"
,
prop
:
"
user_sn
"
}},[
a
(
"
el-select
"
,{
staticClass
:
"
filter-item
"
,
attrs
:{
clearable
:
""
,
disabled
:
""
,
placeholder
:
"
请选择子账号
"
},
model
:{
value
:
t
.
temp
.
user_sn
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
user_sn
"
,
e
)},
expression
:
"
temp.user_sn
"
}},
t
.
_l
(
t
.
typeOptions
,(
function
(
t
){
return
a
(
"
el-option
"
,{
key
:
t
.
user_sn
,
attrs
:{
label
:
t
.
user_name
,
value
:
t
.
user_sn
}})})),
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
主叫号码
"
,
prop
:
"
call_number
"
}},[
a
(
"
el-select
"
,{
staticClass
:
"
filter-item
"
,
attrs
:{
clearable
:
""
,
placeholder
:
"
请选择主叫号码
"
},
model
:{
value
:
t
.
temp
.
call_number
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
call_number
"
,
e
)},
expression
:
"
temp.call_number
"
}},
t
.
_l
(
t
.
CallNumberList
,(
function
(
t
,
e
){
return
a
(
"
el-option
"
,{
key
:
e
,
attrs
:{
label
:
t
,
value
:
t
}})})),
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
外呼日期
"
,
prop
:
"
day_type
"
}},[
a
(
"
el-radio-group
"
,{
attrs
:{
size
:
"
medium
"
},
model
:{
value
:
t
.
temp
.
day_type
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
day_type
"
,
e
)},
expression
:
"
temp.day_type
"
}},[
a
(
"
el-radio-button
"
,{
attrs
:{
label
:
"
0
"
}},[
t
.
_v
(
"
每天
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-radio-button
"
,{
attrs
:{
label
:
"
1
"
}},[
t
.
_v
(
"
日期前一天和当天
"
)])],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
外呼频率
"
,
prop
:
"
frequency_type
"
}},[
a
(
"
el-radio-group
"
,{
attrs
:{
size
:
"
medium
"
,
disabled
:
""
},
model
:{
value
:
t
.
temp
.
frequency_type
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
frequency_type
"
,
e
)},
expression
:
"
temp.frequency_type
"
}},[
a
(
"
el-radio-button
"
,{
attrs
:{
label
:
"
2
"
}},[
t
.
_v
(
"
一天两次
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-radio-button
"
,{
attrs
:{
label
:
"
1
"
}},[
t
.
_v
(
"
一天一次
"
)])],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
呼叫设置
"
,
prop
:
"
setdate1
"
}},[
a
(
"
el-time-picker
"
,{
attrs
:{
"
picker-options
"
:{
selectableRange
:
"
00:00:00 - 23:59:59
"
},
placeholder
:
"
请选择呼叫时间点1
"
},
model
:{
value
:
t
.
temp
.
setdate1
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
setdate1
"
,
e
)},
expression
:
"
temp.setdate1
"
}})],
1
),
t
.
_v
(
"
"
),
t
.
showDate
?
a
(
"
el-form-item
"
,{
staticClass
:
"
hide-label
"
,
attrs
:{
label
:
"
请选择呼叫时间点2
"
,
prop
:
"
setdate2
"
}},[
a
(
"
el-time-picker
"
,{
attrs
:{
"
picker-options
"
:{
selectableRange
:
"
00:00:00 - 23:59:59
"
},
placeholder
:
"
请选择呼叫时间点2
"
},
model
:{
value
:
t
.
temp
.
setdate2
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
setdate2
"
,
e
)},
expression
:
"
temp.setdate2
"
}})],
1
):
t
.
_e
(),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
staticClass
:
"
hide-label
"
,
attrs
:{
label
:
"
话术流程
"
,
prop
:
"
project_sn
"
}},[
a
(
"
el-select
"
,{
attrs
:{
multiple
:
""
,
"
multiple-limit
"
:
2
,
placeholder
:
"
请选择话术流程
"
},
model
:{
value
:
t
.
temp
.
project_sn
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
project_sn
"
,
e
)},
expression
:
"
temp.project_sn
"
}},
t
.
_l
(
t
.
processOpts
,(
function
(
t
){
return
a
(
"
el-option
"
,{
key
:
t
.
sn
,
attrs
:{
label
:
t
.
name
,
value
:
t
.
sn
}})})),
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
staticClass
:
"
fl-label
"
,
attrs
:{
label
:
"
状态
"
,
prop
:
"
disabled
"
}},[
a
(
"
el-switch
"
,{
model
:{
value
:
t
.
temp
.
disabled
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
disabled
"
,
e
)},
expression
:
"
temp.disabled
"
}})],
1
)],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
dialog-footer text-rt
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
a
(
"
el-button
"
,{
on
:{
click
:
function
(
e
){
return
t
.
saveData
(
0
)}}},[
t
.
_v
(
"
取消
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
function
(
e
){
return
t
.
saveData
(
1
)}}},[
t
.
_v
(
"
确定
"
)])],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
"
导入数据
"
,
visible
:
t
.
importVisible
,
"
append-to-body
"
:
!
0
,
width
:
"
30%
"
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
importVisible
=
e
}}},[
t
.
importVisible
?
a
(
"
ImprtData
"
,{
attrs
:{
temp
:
t
.
temp
,
dialogStatus
:
t
.
dialogStatus
},
on
:{
addSave
:
t
.
importCallback
}}):
t
.
_e
()],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
"
导入数据结果
"
,
visible
:
t
.
dialogResultVisible
,
"
append-to-body
"
:
!
0
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
,
width
:
"
400px
"
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
dialogResultVisible
=
e
}}},[
a
(
"
div
"
,{
staticClass
:
"
result-box
"
},[
a
(
"
div
"
,[
t
.
failTotal
>
0
?
a
(
"
i
"
,{
staticClass
:
"
el-icon-warning
"
,
class
:[
0
===
t
.
successTotal
&&
t
.
failTotal
>
0
?
"
fail-all-bgc
"
:
"
fail-bgc
"
]}):
a
(
"
i
"
,{
staticClass
:
"
el-icon-success
"
})]),
t
.
_v
(
"
"
),
a
(
"
div
"
,[
t
.
_v
(
"
成功导入
"
+
t
.
_s
(
t
.
successTotal
)
+
"
个号码,
"
+
t
.
_s
(
t
.
failTotal
)
+
"
个号码导入失败
"
)]),
t
.
_v
(
"
"
),
t
.
failTotal
>
0
?
a
(
"
div
"
,[
a
(
"
a
"
,{
staticClass
:
"
down-txt
"
,
on
:{
click
:
t
.
downloadFail
}},[
t
.
_v
(
"
点击下载失败数据文件
"
)])]):
t
.
_e
()]),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
dialog-footer text-center
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
a
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
t
.
handleResultClose
}},[
t
.
_v
(
"
确定
"
)])],
1
)])],
1
)},
r
=
[],
c
=
(
a
(
"
7f7f
"
),
function
(){
var
t
=
this
,
e
=
t
.
$createElement
,
a
=
t
.
_self
.
_c
||
e
;
return
a
(
"
div
"
,[
a
(
"
div
"
,[
a
(
"
el-form
"
,{
ref
:
"
importForm
"
,
attrs
:{
model
:
t
.
temp
,
"
label-position
"
:
"
top
"
,
"
label-width
"
:
"
90px
"
}},[
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
文件模板(请按照模板格式填写数据)
"
}},[
a
(
"
el-button
"
,{
staticClass
:
"
down-btn
"
,
attrs
:{
size
:
"
small
"
,
icon
:
"
el-icon-download
"
},
on
:{
click
:
t
.
downloadTemplate
}},[
t
.
_v
(
"
点击下载模板
"
)])],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
staticClass
:
"
import-box
"
,
attrs
:{
label
:
"
导入文件(文件大小不可超过8MB)
"
}},[
a
(
"
el-upload
"
,{
ref
:
"
upload
"
,
staticClass
:
"
upload-demo
"
,
attrs
:{
action
:
"
#
"
,
"
on-change
"
:
t
.
handleChange
,
"
on-remove
"
:
t
.
handleRemove
,
"
file-list
"
:
t
.
fileList
,
"
auto-upload
"
:
!
1
,
accept
:
"
.xls, .xlsx
"
}},[
a
(
"
el-button
"
,{
staticClass
:
"
upload-btn
"
,
attrs
:{
slot
:
"
trigger
"
,
icon
:
"
el-icon-upload
"
,
size
:
"
small
"
},
slot
:
"
trigger
"
},[
t
.
_v
(
"
点击导入文件
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-button
"
,{
directives
:[{
name
:
"
show
"
,
rawName
:
"
v-show
"
,
value
:
0
,
expression
:
"
0
"
}],
attrs
:{
size
:
"
small
"
,
type
:
"
success
"
},
on
:{
click
:
t
.
submitUpload
}},[
t
.
_v
(
"
上传到服务器
"
)])],
1
)],
1
)],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
dialog-footer text-center
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
a
(
"
el-button
"
,{
on
:{
click
:
function
(
e
){
return
t
.
saveData
(
0
)}}},[
t
.
_v
(
"
取消
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
function
(
e
){
return
t
.
saveData
(
1
)}}},[
t
.
_v
(
"
确定
"
)])],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
"
导入数据结果
"
,
visible
:
t
.
dialogResultVisible
,
"
append-to-body
"
:
!
0
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
,
width
:
"
400px
"
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
dialogResultVisible
=
e
}}},[
a
(
"
div
"
,{
staticClass
:
"
result-box
"
},[
a
(
"
div
"
,[
t
.
failTotal
>
0
?
a
(
"
i
"
,{
staticClass
:
"
el-icon-warning
"
,
class
:[
0
===
t
.
successTotal
&&
t
.
failTotal
>
0
?
"
fail-all-bgc
"
:
"
fail-bgc
"
]}):
a
(
"
i
"
,{
staticClass
:
"
el-icon-success
"
})]),
t
.
_v
(
"
"
),
a
(
"
div
"
,[
t
.
_v
(
"
成功导入
"
+
t
.
_s
(
t
.
successTotal
)
+
"
个号码,
"
+
t
.
_s
(
t
.
failTotal
)
+
"
个号码导入失败
"
)]),
t
.
_v
(
"
"
),
t
.
failTotal
>
0
?
a
(
"
div
"
,[
a
(
"
a
"
,{
staticClass
:
"
down-txt
"
,
on
:{
click
:
t
.
downloadFail
}},[
t
.
_v
(
"
点击下载失败数据文件
"
)])]):
t
.
_e
()]),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
dialog-footer text-center
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
a
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
t
.
handleResultClose
}},[
t
.
_v
(
"
确定
"
)])],
1
)])],
1
)}),
d
=
[],
u
=
(
a
(
"
c5f6
"
),{
name
:
"
ImprtData
"
,
props
:[
"
temp
"
],
data
:
function
(){
return
{
failDataFile
:
""
,
successTotal
:
0
,
failTotal
:
0
,
dialogResultVisible
:
!
1
,
fileList
:[],
dialogFormVisible
:
!
1
}},
created
:
function
(){
this
.
temp
.
upload
&&
this
.
temp
.
uploadname
&&
(
this
.
fileList
=
[
this
.
temp
.
upload
])},
methods
:{
validateFiles
:
function
(){
var
t
=
this
.
fileList
.
length
&&
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
this
.
fileList
[
0
])?
this
.
fileList
[
0
].
raw
:{
size
:
0
};
return
!
(
Number
(
t
.
size
/
1024
/
1024
)
>
8
)
||
(
this
.
$message
.
warning
(
"
文件大小不可超过8MB
"
),
!
1
)},
downloadFail
:
function
(){
Object
(
i
[
"
c
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
)),
filename
:
this
.
failDataFile
})},
handleResultClose
:
function
(){
this
.
dialogResultVisible
=!
1
,
this
.
temp
.
isAddGo
?
this
.
$emit
(
"
addSave
"
,
this
.
fileList
[
0
].
raw
):
this
.
$emit
(
"
indexSave
"
,
1
)},
downloadTemplate
:
function
(){
Object
(
i
[
"
d
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))})},
handleRemove
:
function
(
t
,
e
){
this
.
fileList
=
[]},
handleChange
:
function
(
t
,
e
){
this
.
fileList
=
[
t
],
this
.
validateFiles
()},
submitUpload
:
function
(){
var
t
=
this
;
if
(
this
.
temp
.
isAddGo
)
this
.
$emit
(
"
addSave
"
,
this
.
fileList
[
0
].
raw
);
else
{
var
e
=
new
FormData
;
e
.
append
(
"
user_sn
"
,
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))),
e
.
append
(
"
strategy_sn
"
,
this
.
temp
.
isAddGo
?
""
:
this
.
temp
.
strategy_sn
),
e
.
append
(
"
upload
"
,
this
.
fileList
[
0
].
raw
);
var
a
=
this
.
$loading
({
lock
:
!
0
,
text
:
"
Loading
"
,
spinner
:
"
el-icon-loading
"
,
background
:
"
rgba(0, 0, 0, 0.9)
"
});
Object
(
i
[
"
k
"
])(
e
).
then
((
function
(
e
){
a
.
close
(),
t
.
dialogResultVisible
=!
0
,
t
.
failDataFile
=
e
.
info
.
failDataFile
||
""
,
t
.
failTotal
=
e
.
info
.
failTotal
||
0
,
t
.
successTotal
=
e
.
info
.
successTotal
||
0
})).
catch
((
function
(
e
){
a
.
close
(),
t
.
$message
.
warning
(
e
)}))}},
saveData
:
function
(
t
){
var
e
=
this
;
t
?
this
.
$refs
[
"
importForm
"
].
validate
((
function
(
t
){
e
.
fileList
.
length
?
t
&&
e
.
validateFiles
()
&&
e
.
submitUpload
():
e
.
$message
.
warning
(
"
请先导入文件
"
)})):(
this
.
$emit
(
"
addSave
"
,
0
),
this
.
$emit
(
"
indexSave
"
,
0
))}}}),
p
=
u
,
m
=
(
a
(
"
1190
"
),
a
(
"
2877
"
)),
f
=
Object
(
m
[
"
a
"
])(
p
,
c
,
d
,
!
1
,
null
,
"
29423b4f
"
,
null
),
b
=
f
.
exports
,
g
=
{
name
:
"
AddOrEdit
"
,
components
:{
ImprtData
:
b
},
props
:[
"
dialogStatus
"
,
"
temp
"
],
data
:
function
(){
return
{
failDataFile
:
""
,
successTotal
:
0
,
failTotal
:
0
,
dialogResultVisible
:
!
1
,
showDate
:
!
1
,
importVisible
:
!
1
,
onlyOneProcess
:
!
1
,
processOpts
:[],
CallNumberList
:[],
typeOptions
:[],
rules
:{
strategy_name
:[{
required
:
!
0
,
message
:
"
策略名称必填且不能超过30个字符
"
,
trigger
:
"
blur
"
,
max
:
30
}],
files
:[{
required
:
!
0
,
message
:
"
源码类型必填
"
,
trigger
:
"
blur
"
}],
user_sn
:[{
required
:
!
0
,
message
:
"
子账号必选
"
,
trigger
:
"
blur
"
}],
call_number
:[{
required
:
!
0
,
message
:
"
主叫号码必选
"
,
trigger
:
"
blur
"
}],
day_type
:[{
required
:
!
0
,
message
:
"
外呼日期必选
"
,
trigger
:
"
blur
"
}],
frequency_type
:[{
required
:
!
0
,
message
:
"
外呼频率必选
"
,
trigger
:
"
blur
"
}],
setdate1
:[{
required
:
!
0
,
message
:
"
呼叫设置-外呼时间点1必选
"
,
trigger
:
"
blur
"
}],
setdate2
:[{
required
:
!
0
,
message
:
"
呼叫设置-外呼时间点2必选
"
,
trigger
:
"
blur
"
}],
project_sn
:[{
required
:
!
0
,
message
:
"
呼叫设置-话术流程必选
"
,
trigger
:
"
blur
"
}],
disabled
:[{
required
:
!
0
,
message
:
"
状态必选
"
,
trigger
:
"
blur
"
}]}}},
watch
:{
"
temp.day_type
"
:
function
(
t
){
this
.
change_day_type
(
t
)}},
created
:
function
(){
var
t
=
this
;
this
.
change_day_type
(
this
.
temp
.
day_type
),
Object
(
i
[
"
g
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))}).
then
((
function
(
e
){
t
.
processOpts
=
Array
.
isArray
(
e
.
info
)?
e
.
info
:[]})).
catch
((
function
(){
t
.
processOpts
=
[]})),
Object
(
i
[
"
f
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))}).
then
((
function
(
e
){
t
.
CallNumberList
=
Array
.
isArray
(
e
.
info
)?
e
.
info
:[]})).
catch
((
function
(){
t
.
CallNumberList
=
[]})),
Object
(
i
[
"
j
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))}).
then
((
function
(
e
){
t
.
typeOptions
=
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
e
.
info
)?[
e
.
info
]:[],
t
.
typeOptions
.
length
&&
(
t
.
temp
.
user_sn
=
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
t
.
typeOptions
[
0
])?
t
.
typeOptions
[
0
].
user_sn
:
""
)})).
catch
((
function
(){
t
.
typeOptions
=
[]}))},
methods
:{
downloadFail
:
function
(){
Object
(
i
[
"
c
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
)),
filename
:
this
.
failDataFile
})},
handleResultClose
:
function
(){
this
.
dialogResultVisible
=!
1
,
this
.
$emit
(
"
save
"
)},
change_day_type
:
function
(
t
){
this
.
temp
.
project_sn
=
null
,
"
0
"
===
t
?(
this
.
temp
.
frequency_type
=
"
2
"
,
this
.
showDate
=!
0
,
this
.
onlyOneProcess
=!
0
):
"
1
"
===
t
&&
(
this
.
temp
.
frequency_type
=
"
1
"
,
this
.
showDate
=!
1
,
this
.
onlyOneProcess
=!
1
)},
delFile
:
function
(){
this
.
temp
.
upload
=
{},
this
.
temp
.
uploadname
=
""
},
importData
:
function
(
t
){
this
.
temp
.
isAddGo
=!
0
,
this
.
importVisible
=!
0
},
importCallback
:
function
(
t
){
this
.
importVisible
=!
1
,
t
&&
t
.
name
&&
(
this
.
temp
.
upload
=
t
||
{},
this
.
temp
.
uploadname
=
this
.
temp
.
upload
.
name
)},
downloadTemplate
:
function
(){
Object
(
i
[
"
d
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))})},
saveData
:
function
(
t
){
var
e
=
this
;
this
.
temp
.
disabled
=!
0
!==
this
.
temp
.
disabled
&&!
1
!==
this
.
temp
.
disabled
||
this
.
temp
.
disabled
;
var
a
=
this
.
temp
.
disabled
?
0
:
1
;
t
?
this
.
$refs
[
"
dataForm
"
].
validate
((
function
(
t
){
if
(
t
){
if
(
"
1
"
===
e
.
temp
.
day_type
&&
Array
.
isArray
(
e
.
temp
.
project_sn
)
&&
2
!==
e
.
temp
.
project_sn
.
length
)
return
e
.
$message
({
message
:
"
话术流程必选2个
"
,
type
:
"
warning
"
}),
!
1
;
var
s
=
e
.
temp
,
l
=
s
.
strategy_name
,
o
=
s
.
call_number
,
n
=
s
.
day_type
,
r
=
s
.
frequency_type
,
c
=
new
FormData
;
c
.
append
(
"
user_sn
"
,
e
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))),
c
.
append
(
"
strategy_name
"
,
l
),
c
.
append
(
"
call_number
"
,
o
),
c
.
append
(
"
day_type
"
,
n
),
c
.
append
(
"
frequency_type
"
,
r
),
c
.
append
(
"
call_time_set
"
,
e
.
$moment
(
e
.
temp
.
setdate1
).
format
(
"
HH:mm:ss
"
)
+
(
e
.
temp
.
setdate2
?
"
#
"
+
e
.
$moment
(
e
.
temp
.
setdate2
).
format
(
"
HH:mm:ss
"
):
""
)),
c
.
append
(
"
project_sn
"
,
e
.
temp
.
project_sn
.
join
(
"
#
"
)),
c
.
append
(
"
disabled
"
,
a
),
c
.
append
(
"
upload
"
,
e
.
temp
.
upload
);
var
d
=
e
.
$loading
({
lock
:
!
0
,
text
:
"
Loading
"
,
spinner
:
"
el-icon-loading
"
,
background
:
"
rgba(0, 0, 0, 0.7)
"
});
"
create
"
===
e
.
dialogStatus
&&
Object
(
i
[
"
a
"
])(
c
).
then
((
function
(
t
){
d
.
close
(),
e
.
$message
({
message
:
"
创建成功
"
,
type
:
"
success
"
}),
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
t
.
info
)?(
e
.
failDataFile
=
t
.
info
.
failDataFile
||
""
,
e
.
failTotal
=
t
.
info
.
failTotal
||
0
,
e
.
successTotal
=
t
.
info
.
successTotal
||
0
,
e
.
successTotal
||
e
.
failTotal
?
e
.
dialogResultVisible
=!
0
:
e
.
$emit
(
"
save
"
)):
e
.
$emit
(
"
save
"
)})).
catch
((
function
(){
d
.
close
()}))}})):
this
.
$emit
(
"
save
"
)}}},
_
=
g
,
h
=
(
a
(
"
a719
"
),
a
(
"
d176
"
),
Object
(
m
[
"
a
"
])(
_
,
n
,
r
,
!
1
,
null
,
"
f401d8fe
"
,
null
)),
v
=
h
.
exports
,
y
=
{
name
:
"
Dashboard
"
,
components
:{
AddOrEdit
:
v
,
ImprtData
:
b
},
directives
:{
waves
:
o
[
"
a
"
]},
filters
:{},
data
:
function
(){
return
{
textMap
:{
update
:
"
编辑
"
,
create
:
"
新建
"
},
fileList
:[],
multipleSelection
:[],
tableKey
:
0
,
list
:[],
listLoading
:
!
0
,
temp
:{
user_sn
:
""
,
strategy_name
:
""
,
call_number
:
""
,
day_type
:
"
0
"
,
frequency_type
:
"
2
"
,
call_time_set
:
""
,
setdate1
:
""
,
setdate2
:
""
,
project_sn
:
""
,
disabled
:
""
,
upload
:
""
,
uploadname
:
""
},
dialogFormVisible
:
!
1
,
importVisible
:
!
1
,
dialogStatus
:
""
}},
created
:
function
(){
this
.
getList
()},
methods
:{
addCallback
:
function
(){
this
.
dialogFormVisible
=!
1
,
this
.
getList
()},
importCallbackIndex
:
function
(
t
){
this
.
importVisible
=!
1
,
1
===
t
&&
this
.
getList
()},
getList
:
function
(){
var
t
=
this
;
this
.
listLoading
=!
0
,
Object
(
i
[
"
h
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))}).
then
((
function
(
e
){
t
.
listLoading
=!
1
,
t
.
list
=
Array
.
from
(
e
.
info
)})).
catch
((
function
(){
t
.
listLoading
=!
1
}))},
handleFilter
:
function
(){
this
.
getList
()},
resetTemp
:
function
(){
this
.
temp
=
{
user_sn
:
""
,
strategy_name
:
""
,
call_number
:
""
,
day_type
:
"
0
"
,
frequency_type
:
"
2
"
,
call_time_set
:
""
,
setdate1
:
""
,
setdate2
:
""
,
project_sn
:
""
,
disabled
:
""
,
upload
:
""
,
uploadname
:
""
}},
handleCreate
:
function
(){
this
.
list
.
length
>=
2
?
this
.
$message
({
message
:
"
最多2个外呼策略
"
,
type
:
"
warning
"
}):(
this
.
resetTemp
(),
this
.
dialogStatus
=
"
create
"
,
this
.
dialogFormVisible
=!
0
)},
goTaskData
:
function
(
t
){
this
.
$router
.
push
({
path
:
"
/strategy/taskdata/index
"
,
query
:{
strategy_sn
:
t
.
strategy_sn
}})},
importData
:
function
(
t
){
this
.
temp
=
this
.
$publicTools
.
deepClone
(
t
),
this
.
importVisible
=!
0
},
handleDelete
:
function
(
t
){
var
e
=
this
;
this
.
$confirm
(
"
确定要删除此条数据吗?
"
,
"
删除提示
"
,{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
,
dangerouslyUseHTMLString
:
!
0
}).
then
((
function
(){
var
a
=
e
.
$loading
({
lock
:
!
0
,
text
:
"
Loading
"
,
spinner
:
"
el-icon-loading
"
,
background
:
"
rgba(0, 0, 0, 0.7)
"
});
Object
(
i
[
"
b
"
])({
user_sn
:
e
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
)),
strategy_sn
:
t
.
strategy_sn
||
""
}).
then
((
function
(
t
){
a
.
close
(),
e
.
getList
(),
e
.
$message
({
message
:
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
t
)
&&
t
.
info
?
t
.
info
:
"
delete Successfully
"
,
type
:
"
success
"
})})).
catch
((
function
(){
a
.
close
()}))})).
catch
((
function
(){}))}}},
w
=
y
,
k
=
Object
(
m
[
"
a
"
])(
w
,
s
,
l
,
!
1
,
null
,
"
a1791394
"
,
null
);
e
[
"
default
"
]
=
k
.
exports
},
a719
:
function
(
t
,
e
,
a
){
"
use strict
"
;
var
s
=
a
(
"
6201
"
),
l
=
a
.
n
(
s
);
l
.
a
},
d176
:
function
(
t
,
e
,
a
){
"
use strict
"
;
var
s
=
a
(
"
41bd
"
),
l
=
a
.
n
(
s
);
l
.
a
},
e228
:
function
(
t
,
e
,
a
){}}]);
\ No newline at end of file
public/zjtlj/dist/static/js/chunk-f040bb84.37e4bce5.js
deleted
100644 → 0
View file @
54de97bc
(
window
[
"
webpackJsonp
"
]
=
window
[
"
webpackJsonp
"
]
||
[]).
push
([[
"
chunk-f040bb84
"
],{
1190
:
function
(
t
,
e
,
a
){
"
use strict
"
;
var
s
=
a
(
"
e228
"
),
l
=
a
.
n
(
s
);
l
.
a
},
2423
:
function
(
t
,
e
,
a
){
"
use strict
"
;
a
.
d
(
e
,
"
a
"
,(
function
(){
return
l
})),
a
.
d
(
e
,
"
h
"
,(
function
(){
return
i
})),
a
.
d
(
e
,
"
g
"
,(
function
(){
return
o
})),
a
.
d
(
e
,
"
f
"
,(
function
(){
return
n
})),
a
.
d
(
e
,
"
j
"
,(
function
(){
return
r
})),
a
.
d
(
e
,
"
d
"
,(
function
(){
return
c
})),
a
.
d
(
e
,
"
c
"
,(
function
(){
return
d
})),
a
.
d
(
e
,
"
k
"
,(
function
(){
return
u
})),
a
.
d
(
e
,
"
i
"
,(
function
(){
return
p
})),
a
.
d
(
e
,
"
e
"
,(
function
(){
return
m
})),
a
.
d
(
e
,
"
b
"
,(
function
(){
return
f
}));
var
s
=
a
(
"
b775
"
);
function
l
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategySet
"
,
method
:
"
post
"
,
data
:
t
})}
function
i
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategySet
"
,
method
:
"
get
"
,
params
:
t
})}
function
o
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategy/getProjectsList
"
,
method
:
"
post
"
,
data
:
t
})}
function
n
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategy/getCallNumberList
"
,
method
:
"
post
"
,
data
:
t
})}
function
r
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategy/getUsersList
"
,
method
:
"
post
"
,
data
:
t
})}
function
c
(
t
){
var
e
=
"
https://test117.ciopaas.com:81/
"
;
window
.
open
(
e
+
(
"
/
"
===
e
.
slice
(
e
.
length
-
1
)?
""
:
"
/
"
)
+
"
api/strategy/downloadModel?user_sn=
"
+
t
.
user_sn
)}
function
d
(
t
){
var
e
=
"
https://test117.ciopaas.com:81/
"
;
window
.
open
(
e
+
(
"
/
"
===
e
.
slice
(
e
.
length
-
1
)?
""
:
"
/
"
)
+
"
api/strategy/downloadFailExcel?user_sn=
"
+
t
.
user_sn
+
"
&filename=
"
+
t
.
filename
)}
function
u
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategy/importExcelData
"
,
method
:
"
post
"
,
data
:
t
})}
function
p
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategyTask
"
,
method
:
"
get
"
,
params
:
t
})}
function
m
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategyTask/
"
.
concat
(
t
.
id
),
method
:
"
PUT
"
,
data
:
t
})}
function
f
(
t
){
return
Object
(
s
[
"
a
"
])({
url
:
"
/api/strategySet/
"
+
t
.
strategy_sn
+
"
?user_sn=
"
+
t
.
user_sn
,
method
:
"
delete
"
})}},
"
41bd
"
:
function
(
t
,
e
,
a
){},
6724
:
function
(
t
,
e
,
a
){
"
use strict
"
;
a
(
"
8d41
"
);
var
s
=
"
@@wavesContext
"
;
function
l
(
t
,
e
){
function
a
(
a
){
var
s
=
Object
.
assign
({},
e
.
value
),
l
=
Object
.
assign
({
ele
:
t
,
type
:
"
hit
"
,
color
:
"
rgba(0, 0, 0, 0.15)
"
},
s
),
i
=
l
.
ele
;
if
(
i
){
i
.
style
.
position
=
"
relative
"
,
i
.
style
.
overflow
=
"
hidden
"
;
var
o
=
i
.
getBoundingClientRect
(),
n
=
i
.
querySelector
(
"
.waves-ripple
"
);
switch
(
n
?
n
.
className
=
"
waves-ripple
"
:(
n
=
document
.
createElement
(
"
span
"
),
n
.
className
=
"
waves-ripple
"
,
n
.
style
.
height
=
n
.
style
.
width
=
Math
.
max
(
o
.
width
,
o
.
height
)
+
"
px
"
,
i
.
appendChild
(
n
)),
l
.
type
){
case
"
center
"
:
n
.
style
.
top
=
o
.
height
/
2
-
n
.
offsetHeight
/
2
+
"
px
"
,
n
.
style
.
left
=
o
.
width
/
2
-
n
.
offsetWidth
/
2
+
"
px
"
;
break
;
default
:
n
.
style
.
top
=
(
a
.
pageY
-
o
.
top
-
n
.
offsetHeight
/
2
-
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
)
+
"
px
"
,
n
.
style
.
left
=
(
a
.
pageX
-
o
.
left
-
n
.
offsetWidth
/
2
-
document
.
documentElement
.
scrollLeft
||
document
.
body
.
scrollLeft
)
+
"
px
"
}
return
n
.
style
.
backgroundColor
=
l
.
color
,
n
.
className
=
"
waves-ripple z-active
"
,
!
1
}}
return
t
[
s
]?
t
[
s
].
removeHandle
=
a
:
t
[
s
]
=
{
removeHandle
:
a
},
a
}
var
i
=
{
bind
:
function
(
t
,
e
){
t
.
addEventListener
(
"
click
"
,
l
(
t
,
e
),
!
1
)},
update
:
function
(
t
,
e
){
t
.
removeEventListener
(
"
click
"
,
t
[
s
].
removeHandle
,
!
1
),
t
.
addEventListener
(
"
click
"
,
l
(
t
,
e
),
!
1
)},
unbind
:
function
(
t
){
t
.
removeEventListener
(
"
click
"
,
t
[
s
].
removeHandle
,
!
1
),
t
[
s
]
=
null
,
delete
t
[
s
]}},
o
=
function
(
t
){
t
.
directive
(
"
waves
"
,
i
)};
window
.
Vue
&&
(
window
.
waves
=
i
,
Vue
.
use
(
o
)),
i
.
install
=
o
;
e
[
"
a
"
]
=
i
},
"
8d41
"
:
function
(
t
,
e
,
a
){},
9406
:
function
(
t
,
e
,
a
){
"
use strict
"
;
a
.
r
(
e
);
var
s
=
function
(){
var
t
=
this
,
e
=
t
.
$createElement
,
a
=
t
.
_self
.
_c
||
e
;
return
a
(
"
div
"
,{
staticClass
:
"
app-container
"
},[
a
(
"
div
"
,{
staticClass
:
"
filter-container text-rt
"
},[
a
(
"
el-button
"
,{
staticStyle
:{
"
margin-left
"
:
"
10px
"
,
padding
:
"
10px
"
},
attrs
:{
icon
:
"
el-icon-circle-plus-outline
"
},
on
:{
click
:
t
.
handleCreate
}})],
1
),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
body-container
"
},[
a
(
"
el-table
"
,{
directives
:[{
name
:
"
loading
"
,
rawName
:
"
v-loading
"
,
value
:
t
.
listLoading
,
expression
:
"
listLoading
"
}],
key
:
t
.
tableKey
,
ref
:
"
singleTable
"
,
staticStyle
:{
width
:
"
100%
"
},
attrs
:{
data
:
t
.
list
,
border
:
""
,
fit
:
""
,
"
highlight-current-row
"
:
""
}},[
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
策略名称
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
strategy_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
话术流程
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
project_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
导入数据量
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
total
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
外呼日期
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
day_type_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
外呼频率
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
frequency_type_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
状态
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
disabled_name
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
label
:
"
创建时间
"
,
align
:
"
center
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
span
"
,[
t
.
_v
(
t
.
_s
(
s
.
created_at
))])]}}])}),
t
.
_v
(
"
"
),
a
(
"
el-table-column
"
,{
attrs
:{
fixed
:
"
right
"
,
label
:
"
操作
"
,
align
:
"
center
"
,
width
:
"
180
"
,
"
class-name
"
:
"
small-padding fixed-width
"
},
scopedSlots
:
t
.
_u
([{
key
:
"
default
"
,
fn
:
function
(
e
){
var
s
=
e
.
row
;
return
[
a
(
"
el-tooltip
"
,{
attrs
:{
content
:
"
导入数据
"
}},[
a
(
"
el-button
"
,{
attrs
:{
size
:
"
small
"
,
plain
:
""
,
icon
:
"
el-icon-edit-outline
"
},
on
:{
click
:
function
(
e
){
return
t
.
importData
(
s
)}}})],
1
),
t
.
_v
(
"
"
),
a
(
"
el-tooltip
"
,{
attrs
:{
content
:
"
任务数据
"
}},[
a
(
"
el-button
"
,{
attrs
:{
size
:
"
small
"
,
plain
:
""
,
icon
:
"
el-icon-document
"
},
on
:{
click
:
function
(
e
){
return
t
.
goTaskData
(
s
)}}})],
1
),
t
.
_v
(
"
"
),
a
(
"
el-tooltip
"
,{
attrs
:{
content
:
"
删除
"
}},[
a
(
"
el-button
"
,{
attrs
:{
size
:
"
small
"
,
plain
:
""
,
icon
:
"
el-icon-delete
"
},
on
:{
click
:
function
(
e
){
return
t
.
handleDelete
(
s
)}}})],
1
)]}}])})],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
t
.
textMap
[
t
.
dialogStatus
]
+
"
外呼策略
"
,
visible
:
t
.
dialogFormVisible
,
"
append-to-body
"
:
!
0
,
width
:
"
720px
"
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
dialogFormVisible
=
e
}}},[
t
.
dialogFormVisible
?
a
(
"
AddOrEdit
"
,{
attrs
:{
temp
:
t
.
temp
,
dialogStatus
:
t
.
dialogStatus
},
on
:{
save
:
t
.
addCallback
}}):
t
.
_e
()],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
"
导入数据
"
,
width
:
"
400px
"
,
visible
:
t
.
importVisible
,
"
append-to-body
"
:
!
0
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
importVisible
=
e
}}},[
t
.
importVisible
?
a
(
"
ImprtData
"
,{
attrs
:{
temp
:
t
.
temp
,
dialogStatus
:
t
.
dialogStatus
},
on
:{
indexSave
:
t
.
importCallbackIndex
}}):
t
.
_e
()],
1
)],
1
)},
l
=
[],
i
=
(
a
(
"
6b54
"
),
a
(
"
5df3
"
),
a
(
"
1c4c
"
),
a
(
"
2423
"
)),
o
=
a
(
"
6724
"
),
n
=
function
(){
var
t
=
this
,
e
=
t
.
$createElement
,
a
=
t
.
_self
.
_c
||
e
;
return
a
(
"
div
"
,[
a
(
"
div
"
,[
a
(
"
el-form
"
,{
ref
:
"
dataForm
"
,
attrs
:{
rules
:
t
.
rules
,
model
:
t
.
temp
,
"
label-position
"
:
"
top
"
,
"
label-width
"
:
"
90px
"
,
id
:
"
strategy-add-form
"
}},[
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
策略名称
"
,
prop
:
"
strategy_name
"
}},[
a
(
"
el-input
"
,{
attrs
:{
clearable
:
""
,
placeholder
:
"
请输入策略名称
"
},
model
:{
value
:
t
.
temp
.
strategy_name
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
strategy_name
"
,
e
)},
expression
:
"
temp.strategy_name
"
}})],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
客户数据
"
,
prop
:
"
upload
"
}},[
a
(
"
div
"
,{
staticClass
:
"
upload-box
"
},[
a
(
"
el-input
"
,{
attrs
:{
placeholder
:
"
请按照模板格式填写数据(文件大小不可超过8MB)
"
,
readonly
:
""
},
model
:{
value
:
t
.
temp
.
uploadname
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
uploadname
"
,
e
)},
expression
:
"
temp.uploadname
"
}}),
t
.
_v
(
"
"
),
a
(
"
i
"
,{
staticClass
:
"
el-icon-circle-close
"
,
on
:{
click
:
t
.
delFile
}}),
t
.
_v
(
"
"
),
a
(
"
i
"
,{
staticClass
:
"
el-icon-upload
"
,
on
:{
click
:
t
.
importData
}})],
1
),
t
.
_v
(
"
"
),
a
(
"
el-button
"
,{
staticClass
:
"
download-btn
"
,
attrs
:{
size
:
"
small
"
},
on
:{
click
:
t
.
downloadTemplate
}},[
t
.
_v
(
"
下载模板
"
)])],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
子账号
"
,
prop
:
"
user_sn
"
}},[
a
(
"
el-select
"
,{
staticClass
:
"
filter-item
"
,
attrs
:{
clearable
:
""
,
disabled
:
""
,
placeholder
:
"
请选择子账号
"
},
model
:{
value
:
t
.
temp
.
user_sn
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
user_sn
"
,
e
)},
expression
:
"
temp.user_sn
"
}},
t
.
_l
(
t
.
typeOptions
,(
function
(
t
){
return
a
(
"
el-option
"
,{
key
:
t
.
user_sn
,
attrs
:{
label
:
t
.
user_name
,
value
:
t
.
user_sn
}})})),
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
主叫号码
"
,
prop
:
"
call_number
"
}},[
a
(
"
el-select
"
,{
staticClass
:
"
filter-item
"
,
attrs
:{
clearable
:
""
,
placeholder
:
"
请选择主叫号码
"
},
model
:{
value
:
t
.
temp
.
call_number
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
call_number
"
,
e
)},
expression
:
"
temp.call_number
"
}},
t
.
_l
(
t
.
CallNumberList
,(
function
(
t
,
e
){
return
a
(
"
el-option
"
,{
key
:
e
,
attrs
:{
label
:
t
,
value
:
t
}})})),
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
外呼日期
"
,
prop
:
"
day_type
"
}},[
a
(
"
el-radio-group
"
,{
attrs
:{
size
:
"
medium
"
},
model
:{
value
:
t
.
temp
.
day_type
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
day_type
"
,
e
)},
expression
:
"
temp.day_type
"
}},[
a
(
"
el-radio-button
"
,{
attrs
:{
label
:
"
0
"
}},[
t
.
_v
(
"
每天
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-radio-button
"
,{
attrs
:{
label
:
"
1
"
}},[
t
.
_v
(
"
日期前一天和当天
"
)])],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
外呼频率
"
,
prop
:
"
frequency_type
"
}},[
a
(
"
el-radio-group
"
,{
attrs
:{
size
:
"
medium
"
,
disabled
:
""
},
model
:{
value
:
t
.
temp
.
frequency_type
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
frequency_type
"
,
e
)},
expression
:
"
temp.frequency_type
"
}},[
a
(
"
el-radio-button
"
,{
attrs
:{
label
:
"
2
"
}},[
t
.
_v
(
"
一天两次
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-radio-button
"
,{
attrs
:{
label
:
"
1
"
}},[
t
.
_v
(
"
一天一次
"
)])],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
呼叫设置
"
,
prop
:
"
setdate1
"
}},[
a
(
"
el-time-picker
"
,{
attrs
:{
"
picker-options
"
:{
selectableRange
:
"
00:00:00 - 23:59:59
"
},
placeholder
:
"
请选择呼叫时间点1
"
},
model
:{
value
:
t
.
temp
.
setdate1
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
setdate1
"
,
e
)},
expression
:
"
temp.setdate1
"
}})],
1
),
t
.
_v
(
"
"
),
t
.
showDate
?
a
(
"
el-form-item
"
,{
staticClass
:
"
hide-label
"
,
attrs
:{
label
:
"
请选择呼叫时间点2
"
,
prop
:
"
setdate2
"
}},[
a
(
"
el-time-picker
"
,{
attrs
:{
"
picker-options
"
:{
selectableRange
:
"
00:00:00 - 23:59:59
"
},
placeholder
:
"
请选择呼叫时间点2
"
},
model
:{
value
:
t
.
temp
.
setdate2
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
setdate2
"
,
e
)},
expression
:
"
temp.setdate2
"
}})],
1
):
t
.
_e
(),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
staticClass
:
"
hide-label
"
,
attrs
:{
label
:
"
话术流程
"
,
prop
:
"
project_sn
"
}},[
a
(
"
el-select
"
,{
attrs
:{
multiple
:
""
,
"
multiple-limit
"
:
2
,
placeholder
:
"
请选择话术流程
"
},
model
:{
value
:
t
.
temp
.
project_sn
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
project_sn
"
,
e
)},
expression
:
"
temp.project_sn
"
}},
t
.
_l
(
t
.
processOpts
,(
function
(
t
){
return
a
(
"
el-option
"
,{
key
:
t
.
sn
,
attrs
:{
label
:
t
.
name
,
value
:
t
.
sn
}})})),
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
staticClass
:
"
fl-label
"
,
attrs
:{
label
:
"
状态
"
,
prop
:
"
disabled
"
}},[
a
(
"
el-switch
"
,{
model
:{
value
:
t
.
temp
.
disabled
,
callback
:
function
(
e
){
t
.
$set
(
t
.
temp
,
"
disabled
"
,
e
)},
expression
:
"
temp.disabled
"
}})],
1
)],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
dialog-footer text-rt
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
a
(
"
el-button
"
,{
on
:{
click
:
function
(
e
){
return
t
.
saveData
(
0
)}}},[
t
.
_v
(
"
取消
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
function
(
e
){
return
t
.
saveData
(
1
)}}},[
t
.
_v
(
"
确定
"
)])],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
"
导入数据
"
,
visible
:
t
.
importVisible
,
"
append-to-body
"
:
!
0
,
width
:
"
30%
"
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
importVisible
=
e
}}},[
t
.
importVisible
?
a
(
"
ImprtData
"
,{
attrs
:{
temp
:
t
.
temp
,
dialogStatus
:
t
.
dialogStatus
},
on
:{
addSave
:
t
.
importCallback
}}):
t
.
_e
()],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
"
导入数据结果
"
,
visible
:
t
.
dialogResultVisible
,
"
append-to-body
"
:
!
0
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
,
width
:
"
400px
"
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
dialogResultVisible
=
e
}}},[
a
(
"
div
"
,{
staticClass
:
"
result-box
"
},[
a
(
"
div
"
,[
t
.
failTotal
>
0
?
a
(
"
i
"
,{
staticClass
:
"
el-icon-warning
"
,
class
:[
0
===
t
.
successTotal
&&
t
.
failTotal
>
0
?
"
fail-all-bgc
"
:
"
fail-bgc
"
]}):
a
(
"
i
"
,{
staticClass
:
"
el-icon-success
"
})]),
t
.
_v
(
"
"
),
a
(
"
div
"
,[
t
.
_v
(
"
成功导入
"
+
t
.
_s
(
t
.
successTotal
)
+
"
个号码,
"
+
t
.
_s
(
t
.
failTotal
)
+
"
个号码导入失败
"
)]),
t
.
_v
(
"
"
),
t
.
failTotal
>
0
?
a
(
"
div
"
,[
a
(
"
a
"
,{
staticClass
:
"
down-txt
"
,
on
:{
click
:
t
.
downloadFail
}},[
t
.
_v
(
"
点击下载失败数据文件
"
)])]):
t
.
_e
()]),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
dialog-footer text-center
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
a
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
t
.
handleResultClose
}},[
t
.
_v
(
"
确定
"
)])],
1
)])],
1
)},
r
=
[],
c
=
(
a
(
"
7f7f
"
),
function
(){
var
t
=
this
,
e
=
t
.
$createElement
,
a
=
t
.
_self
.
_c
||
e
;
return
a
(
"
div
"
,[
a
(
"
div
"
,[
a
(
"
el-form
"
,{
ref
:
"
importForm
"
,
attrs
:{
model
:
t
.
temp
,
"
label-position
"
:
"
top
"
,
"
label-width
"
:
"
90px
"
}},[
a
(
"
el-form-item
"
,{
attrs
:{
label
:
"
文件模板(请按照模板格式填写数据)
"
}},[
a
(
"
el-button
"
,{
staticClass
:
"
down-btn
"
,
attrs
:{
size
:
"
small
"
,
icon
:
"
el-icon-download
"
},
on
:{
click
:
t
.
downloadTemplate
}},[
t
.
_v
(
"
点击下载模板
"
)])],
1
),
t
.
_v
(
"
"
),
a
(
"
el-form-item
"
,{
staticClass
:
"
import-box
"
,
attrs
:{
label
:
"
导入文件(文件大小不可超过8MB)
"
}},[
a
(
"
el-upload
"
,{
ref
:
"
upload
"
,
staticClass
:
"
upload-demo
"
,
attrs
:{
action
:
"
#
"
,
"
on-change
"
:
t
.
handleChange
,
"
on-remove
"
:
t
.
handleRemove
,
"
file-list
"
:
t
.
fileList
,
"
auto-upload
"
:
!
1
,
accept
:
"
.xls, .xlsx
"
}},[
a
(
"
el-button
"
,{
staticClass
:
"
upload-btn
"
,
attrs
:{
slot
:
"
trigger
"
,
icon
:
"
el-icon-upload
"
,
size
:
"
small
"
},
slot
:
"
trigger
"
},[
t
.
_v
(
"
点击导入文件
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-button
"
,{
directives
:[{
name
:
"
show
"
,
rawName
:
"
v-show
"
,
value
:
0
,
expression
:
"
0
"
}],
attrs
:{
size
:
"
small
"
,
type
:
"
success
"
},
on
:{
click
:
t
.
submitUpload
}},[
t
.
_v
(
"
上传到服务器
"
)])],
1
)],
1
)],
1
)],
1
),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
dialog-footer text-center
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
a
(
"
el-button
"
,{
on
:{
click
:
function
(
e
){
return
t
.
saveData
(
0
)}}},[
t
.
_v
(
"
取消
"
)]),
t
.
_v
(
"
"
),
a
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
function
(
e
){
return
t
.
saveData
(
1
)}}},[
t
.
_v
(
"
确定
"
)])],
1
),
t
.
_v
(
"
"
),
a
(
"
el-dialog
"
,{
attrs
:{
title
:
"
导入数据结果
"
,
visible
:
t
.
dialogResultVisible
,
"
append-to-body
"
:
!
0
,
"
destroy-on-close
"
:
!
0
,
"
close-on-click-modal
"
:
!
1
,
width
:
"
400px
"
},
on
:{
"
update:visible
"
:
function
(
e
){
t
.
dialogResultVisible
=
e
}}},[
a
(
"
div
"
,{
staticClass
:
"
result-box
"
},[
a
(
"
div
"
,[
t
.
failTotal
>
0
?
a
(
"
i
"
,{
staticClass
:
"
el-icon-warning
"
,
class
:[
0
===
t
.
successTotal
&&
t
.
failTotal
>
0
?
"
fail-all-bgc
"
:
"
fail-bgc
"
]}):
a
(
"
i
"
,{
staticClass
:
"
el-icon-success
"
})]),
t
.
_v
(
"
"
),
a
(
"
div
"
,[
t
.
_v
(
"
成功导入
"
+
t
.
_s
(
t
.
successTotal
)
+
"
个号码,
"
+
t
.
_s
(
t
.
failTotal
)
+
"
个号码导入失败
"
)]),
t
.
_v
(
"
"
),
t
.
failTotal
>
0
?
a
(
"
div
"
,[
a
(
"
a
"
,{
staticClass
:
"
down-txt
"
,
on
:{
click
:
t
.
downloadFail
}},[
t
.
_v
(
"
点击下载失败数据文件
"
)])]):
t
.
_e
()]),
t
.
_v
(
"
"
),
a
(
"
div
"
,{
staticClass
:
"
dialog-footer text-center
"
,
attrs
:{
slot
:
"
footer
"
},
slot
:
"
footer
"
},[
a
(
"
el-button
"
,{
attrs
:{
type
:
"
primary
"
},
on
:{
click
:
t
.
handleResultClose
}},[
t
.
_v
(
"
确定
"
)])],
1
)])],
1
)}),
d
=
[],
u
=
(
a
(
"
c5f6
"
),{
name
:
"
ImprtData
"
,
props
:[
"
temp
"
],
data
:
function
(){
return
{
failDataFile
:
""
,
successTotal
:
0
,
failTotal
:
0
,
dialogResultVisible
:
!
1
,
fileList
:[],
dialogFormVisible
:
!
1
}},
created
:
function
(){
this
.
temp
.
upload
&&
this
.
temp
.
uploadname
&&
(
this
.
fileList
=
[
this
.
temp
.
upload
])},
methods
:{
validateFiles
:
function
(){
var
t
=
this
.
fileList
.
length
&&
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
this
.
fileList
[
0
])?
this
.
fileList
[
0
].
raw
:{
size
:
0
};
return
!
(
Number
(
t
.
size
/
1024
/
1024
)
>
8
)
||
(
this
.
$message
.
warning
(
"
文件大小不可超过8MB
"
),
!
1
)},
downloadFail
:
function
(){
Object
(
i
[
"
c
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
)),
filename
:
this
.
failDataFile
})},
handleResultClose
:
function
(){
this
.
dialogResultVisible
=!
1
,
this
.
temp
.
isAddGo
?
this
.
$emit
(
"
addSave
"
,
this
.
fileList
[
0
].
raw
):
this
.
$emit
(
"
indexSave
"
,
1
)},
downloadTemplate
:
function
(){
Object
(
i
[
"
d
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))})},
handleRemove
:
function
(
t
,
e
){
this
.
fileList
=
[]},
handleChange
:
function
(
t
,
e
){
this
.
fileList
=
[
t
],
this
.
validateFiles
()},
submitUpload
:
function
(){
var
t
=
this
;
if
(
this
.
temp
.
isAddGo
)
this
.
$emit
(
"
addSave
"
,
this
.
fileList
[
0
].
raw
);
else
{
var
e
=
new
FormData
;
e
.
append
(
"
user_sn
"
,
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))),
e
.
append
(
"
strategy_sn
"
,
this
.
temp
.
isAddGo
?
""
:
this
.
temp
.
strategy_sn
),
e
.
append
(
"
upload
"
,
this
.
fileList
[
0
].
raw
);
var
a
=
this
.
$loading
({
lock
:
!
0
,
text
:
"
Loading
"
,
spinner
:
"
el-icon-loading
"
,
background
:
"
rgba(0, 0, 0, 0.9)
"
});
Object
(
i
[
"
k
"
])(
e
).
then
((
function
(
e
){
a
.
close
(),
t
.
dialogResultVisible
=!
0
,
t
.
failDataFile
=
e
.
info
.
failDataFile
||
""
,
t
.
failTotal
=
e
.
info
.
failTotal
||
0
,
t
.
successTotal
=
e
.
info
.
successTotal
||
0
})).
catch
((
function
(
e
){
a
.
close
(),
t
.
$message
.
warning
(
e
)}))}},
saveData
:
function
(
t
){
var
e
=
this
;
t
?
this
.
$refs
[
"
importForm
"
].
validate
((
function
(
t
){
e
.
fileList
.
length
?
t
&&
e
.
validateFiles
()
&&
e
.
submitUpload
():
e
.
$message
.
warning
(
"
请先导入文件
"
)})):(
this
.
$emit
(
"
addSave
"
,
0
),
this
.
$emit
(
"
indexSave
"
,
0
))}}}),
p
=
u
,
m
=
(
a
(
"
1190
"
),
a
(
"
2877
"
)),
f
=
Object
(
m
[
"
a
"
])(
p
,
c
,
d
,
!
1
,
null
,
"
29423b4f
"
,
null
),
b
=
f
.
exports
,
g
=
{
name
:
"
AddOrEdit
"
,
components
:{
ImprtData
:
b
},
props
:[
"
dialogStatus
"
,
"
temp
"
],
data
:
function
(){
return
{
failDataFile
:
""
,
successTotal
:
0
,
failTotal
:
0
,
dialogResultVisible
:
!
1
,
showDate
:
!
1
,
importVisible
:
!
1
,
onlyOneProcess
:
!
1
,
processOpts
:[],
CallNumberList
:[],
typeOptions
:[],
rules
:{
strategy_name
:[{
required
:
!
0
,
message
:
"
策略名称必填且不能超过30个字符
"
,
trigger
:
"
blur
"
,
max
:
30
}],
files
:[{
required
:
!
0
,
message
:
"
源码类型必填
"
,
trigger
:
"
blur
"
}],
user_sn
:[{
required
:
!
0
,
message
:
"
子账号必选
"
,
trigger
:
"
blur
"
}],
call_number
:[{
required
:
!
0
,
message
:
"
主叫号码必选
"
,
trigger
:
"
blur
"
}],
day_type
:[{
required
:
!
0
,
message
:
"
外呼日期必选
"
,
trigger
:
"
blur
"
}],
frequency_type
:[{
required
:
!
0
,
message
:
"
外呼频率必选
"
,
trigger
:
"
blur
"
}],
setdate1
:[{
required
:
!
0
,
message
:
"
呼叫设置-外呼时间点1必选
"
,
trigger
:
"
blur
"
}],
setdate2
:[{
required
:
!
0
,
message
:
"
呼叫设置-外呼时间点2必选
"
,
trigger
:
"
blur
"
}],
project_sn
:[{
required
:
!
0
,
message
:
"
呼叫设置-话术流程必选
"
,
trigger
:
"
blur
"
}],
disabled
:[{
required
:
!
0
,
message
:
"
状态必选
"
,
trigger
:
"
blur
"
}]}}},
watch
:{
"
temp.day_type
"
:
function
(
t
){
this
.
change_day_type
(
t
)}},
created
:
function
(){
var
t
=
this
;
this
.
change_day_type
(
this
.
temp
.
day_type
),
Object
(
i
[
"
g
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))}).
then
((
function
(
e
){
t
.
processOpts
=
Array
.
isArray
(
e
.
info
)?
e
.
info
:[]})).
catch
((
function
(){
t
.
processOpts
=
[]})),
Object
(
i
[
"
f
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))}).
then
((
function
(
e
){
t
.
CallNumberList
=
Array
.
isArray
(
e
.
info
)?
e
.
info
:[]})).
catch
((
function
(){
t
.
CallNumberList
=
[]})),
Object
(
i
[
"
j
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))}).
then
((
function
(
e
){
t
.
typeOptions
=
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
e
.
info
)?[
e
.
info
]:[],
t
.
typeOptions
.
length
&&
(
t
.
temp
.
user_sn
=
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
t
.
typeOptions
[
0
])?
t
.
typeOptions
[
0
].
user_sn
:
""
)})).
catch
((
function
(){
t
.
typeOptions
=
[]}))},
methods
:{
downloadFail
:
function
(){
Object
(
i
[
"
c
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
)),
filename
:
this
.
failDataFile
})},
handleResultClose
:
function
(){
this
.
dialogResultVisible
=!
1
,
this
.
$emit
(
"
save
"
)},
change_day_type
:
function
(
t
){
this
.
temp
.
project_sn
=
null
,
"
0
"
===
t
?(
this
.
temp
.
frequency_type
=
"
2
"
,
this
.
showDate
=!
0
,
this
.
onlyOneProcess
=!
0
):
"
1
"
===
t
&&
(
this
.
temp
.
frequency_type
=
"
1
"
,
this
.
showDate
=!
1
,
this
.
onlyOneProcess
=!
1
)},
delFile
:
function
(){
this
.
temp
.
upload
=
{},
this
.
temp
.
uploadname
=
""
},
importData
:
function
(
t
){
this
.
temp
.
isAddGo
=!
0
,
this
.
importVisible
=!
0
},
importCallback
:
function
(
t
){
this
.
importVisible
=!
1
,
t
&&
t
.
name
&&
(
this
.
temp
.
upload
=
t
||
{},
this
.
temp
.
uploadname
=
this
.
temp
.
upload
.
name
)},
downloadTemplate
:
function
(){
Object
(
i
[
"
d
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))})},
saveData
:
function
(
t
){
var
e
=
this
;
this
.
temp
.
disabled
=!
0
!==
this
.
temp
.
disabled
&&!
1
!==
this
.
temp
.
disabled
||
this
.
temp
.
disabled
;
var
a
=
this
.
temp
.
disabled
?
0
:
1
;
t
?
this
.
$refs
[
"
dataForm
"
].
validate
((
function
(
t
){
if
(
t
){
if
(
"
1
"
===
e
.
temp
.
day_type
&&
Array
.
isArray
(
e
.
temp
.
project_sn
)
&&
2
!==
e
.
temp
.
project_sn
.
length
)
return
e
.
$message
({
message
:
"
话术流程必选2个
"
,
type
:
"
warning
"
}),
!
1
;
var
s
=
e
.
temp
,
l
=
s
.
strategy_name
,
o
=
s
.
call_number
,
n
=
s
.
day_type
,
r
=
s
.
frequency_type
,
c
=
new
FormData
;
c
.
append
(
"
user_sn
"
,
e
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))),
c
.
append
(
"
strategy_name
"
,
l
),
c
.
append
(
"
call_number
"
,
o
),
c
.
append
(
"
day_type
"
,
n
),
c
.
append
(
"
frequency_type
"
,
r
),
c
.
append
(
"
call_time_set
"
,
e
.
$moment
(
e
.
temp
.
setdate1
).
format
(
"
HH:mm:ss
"
)
+
(
e
.
temp
.
setdate2
?
"
#
"
+
e
.
$moment
(
e
.
temp
.
setdate2
).
format
(
"
HH:mm:ss
"
):
""
)),
c
.
append
(
"
project_sn
"
,
e
.
temp
.
project_sn
.
join
(
"
#
"
)),
c
.
append
(
"
disabled
"
,
a
),
c
.
append
(
"
upload
"
,
e
.
temp
.
upload
);
var
d
=
e
.
$loading
({
lock
:
!
0
,
text
:
"
Loading
"
,
spinner
:
"
el-icon-loading
"
,
background
:
"
rgba(0, 0, 0, 0.7)
"
});
"
create
"
===
e
.
dialogStatus
&&
Object
(
i
[
"
a
"
])(
c
).
then
((
function
(
t
){
d
.
close
(),
e
.
$message
({
message
:
"
创建成功
"
,
type
:
"
success
"
}),
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
t
.
info
)?(
e
.
failDataFile
=
t
.
info
.
failDataFile
||
""
,
e
.
failTotal
=
t
.
info
.
failTotal
||
0
,
e
.
successTotal
=
t
.
info
.
successTotal
||
0
,
e
.
successTotal
||
e
.
failTotal
?
e
.
dialogResultVisible
=!
0
:
e
.
$emit
(
"
save
"
)):
e
.
$emit
(
"
save
"
)})).
catch
((
function
(){
d
.
close
()}))}})):
this
.
$emit
(
"
save
"
)}}},
_
=
g
,
h
=
(
a
(
"
a53d
"
),
a
(
"
d176
"
),
Object
(
m
[
"
a
"
])(
_
,
n
,
r
,
!
1
,
null
,
"
1206d3c3
"
,
null
)),
v
=
h
.
exports
,
y
=
{
name
:
"
Dashboard
"
,
components
:{
AddOrEdit
:
v
,
ImprtData
:
b
},
directives
:{
waves
:
o
[
"
a
"
]},
filters
:{},
data
:
function
(){
return
{
textMap
:{
update
:
"
编辑
"
,
create
:
"
新建
"
},
fileList
:[],
multipleSelection
:[],
tableKey
:
0
,
list
:[],
listLoading
:
!
0
,
temp
:{
user_sn
:
""
,
strategy_name
:
""
,
call_number
:
""
,
day_type
:
"
0
"
,
frequency_type
:
"
2
"
,
call_time_set
:
""
,
setdate1
:
""
,
setdate2
:
""
,
project_sn
:
""
,
disabled
:
""
,
upload
:
""
,
uploadname
:
""
},
dialogFormVisible
:
!
1
,
importVisible
:
!
1
,
dialogStatus
:
""
}},
created
:
function
(){
this
.
getList
()},
methods
:{
addCallback
:
function
(){
this
.
dialogFormVisible
=!
1
,
this
.
getList
()},
importCallbackIndex
:
function
(
t
){
this
.
importVisible
=!
1
,
1
===
t
&&
this
.
getList
()},
getList
:
function
(){
var
t
=
this
;
this
.
listLoading
=!
0
,
Object
(
i
[
"
h
"
])({
user_sn
:
this
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
))}).
then
((
function
(
e
){
t
.
listLoading
=!
1
,
t
.
list
=
Array
.
from
(
e
.
info
)})).
catch
((
function
(){
t
.
listLoading
=!
1
}))},
handleFilter
:
function
(){
this
.
getList
()},
resetTemp
:
function
(){
this
.
temp
=
{
user_sn
:
""
,
strategy_name
:
""
,
call_number
:
""
,
day_type
:
"
0
"
,
frequency_type
:
"
2
"
,
call_time_set
:
""
,
setdate1
:
""
,
setdate2
:
""
,
project_sn
:
""
,
disabled
:
""
,
upload
:
""
,
uploadname
:
""
}},
handleCreate
:
function
(){
this
.
list
.
length
>=
2
?
this
.
$message
({
message
:
"
最多2个外呼策略
"
,
type
:
"
warning
"
}):(
this
.
resetTemp
(),
this
.
dialogStatus
=
"
create
"
,
this
.
dialogFormVisible
=!
0
)},
goTaskData
:
function
(
t
){
this
.
$router
.
push
({
path
:
"
/strategy/taskdata/index
"
,
query
:{
strategy_sn
:
t
.
strategy_sn
}})},
importData
:
function
(
t
){
this
.
temp
=
this
.
$publicTools
.
deepClone
(
t
),
this
.
importVisible
=!
0
},
handleDelete
:
function
(
t
){
var
e
=
this
;
this
.
$confirm
(
"
确定要删除此条数据吗?
"
,
"
删除提示
"
,{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
,
dangerouslyUseHTMLString
:
!
0
}).
then
((
function
(){
var
a
=
e
.
$loading
({
lock
:
!
0
,
text
:
"
Loading
"
,
spinner
:
"
el-icon-loading
"
,
background
:
"
rgba(0, 0, 0, 0.7)
"
});
Object
(
i
[
"
b
"
])({
user_sn
:
e
.
$publicTools
.
decrypt
(
localStorage
.
getItem
(
"
user_sn
"
)),
strategy_sn
:
t
.
strategy_sn
||
""
}).
then
((
function
(
t
){
a
.
close
(),
e
.
getList
(),
e
.
$message
({
message
:
"
[object Object]
"
===
Object
.
prototype
.
toString
.
call
(
t
)
&&
t
.
info
?
t
.
info
:
"
delete Successfully
"
,
type
:
"
success
"
})})).
catch
((
function
(){
a
.
close
()}))})).
catch
((
function
(){}))}}},
w
=
y
,
k
=
Object
(
m
[
"
a
"
])(
w
,
s
,
l
,
!
1
,
null
,
"
a1791394
"
,
null
);
e
[
"
default
"
]
=
k
.
exports
},
a53d
:
function
(
t
,
e
,
a
){
"
use strict
"
;
var
s
=
a
(
"
cb6b
"
),
l
=
a
.
n
(
s
);
l
.
a
},
cb6b
:
function
(
t
,
e
,
a
){},
d176
:
function
(
t
,
e
,
a
){
"
use strict
"
;
var
s
=
a
(
"
41bd
"
),
l
=
a
.
n
(
s
);
l
.
a
},
e228
:
function
(
t
,
e
,
a
){}}]);
\ No newline at end of file
public/zjtlj/src/views/dashboard/add.vue
View file @
0494db9c
...
...
@@ -395,7 +395,6 @@ export default {
if
(
this
.
dialogStatus
===
'
create
'
)
{
addStrategySet
(
form
)
.
then
(
res
=>
{
debugger
loading
.
close
()
this
.
$message
({
message
:
'
创建成功
'
,
...
...
public/zjtlj/src/views/login/index.vue
View file @
0494db9c
...
...
@@ -505,7 +505,12 @@ $cursor: black;
display
:
inline-block
;
height
:
47px
;
width
:
85%
;
@-webkit-keyframes
autofill
{
to
{
color
:
#333
;
//input中文字的颜色
background
:
transparent
;
}
}
input
{
background
:
transparent
;
border
:
0px
;
...
...
@@ -517,8 +522,10 @@ $cursor: black;
caret-color
:
$cursor
;
&
:
-
webkit-autofill
{
box-shadow
:
0
0
0px
1000px
$bg
inset
!
important
;
box-shadow
:
0
0
0px
1000px
transparent
inset
!
important
;
-webkit-text-fill-color
:
$cursor
!
important
;
-webkit-animation-name
:
autofill
;
-webkit-animation-fill-mode
:
both
;
}
}
}
...
...
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