Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
rs-cloud-platform-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
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
周健威
rs-cloud-platform-ui
Commits
d12fda14
Commit
d12fda14
authored
Dec 07, 2020
by
obt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
20201207更新
parent
28728079
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1359 additions
and
526 deletions
+1359
-526
index.js
src/api/website/newsCategory/index.js
+4
-2
md5.js
src/utils/md5.js
+200
-0
translate.js
src/utils/translate.js
+67
-0
uuid.js
src/utils/uuid.js
+71
-0
index.vue
src/views/webSiteManagement/newsCategory/index.vue
+2
-1
index.vue
...s/webSiteManagement/newsCategory/nebulaDynamics/index.vue
+950
-518
index.vue
...iews/webSiteManagement/newsCategory/newsCreator/index.vue
+65
-5
No files found.
src/api/website/newsCategory/index.js
View file @
d12fda14
/*
/*
* @Author: Jenkins
* @Author: Jenkins
* @Date: 2020-12-02 09:18:01
* @Date: 2020-12-02 09:18:01
* @LastEditTime: 2020-12-0
3 11:07:18
* @LastEditTime: 2020-12-0
7 16:03:52
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @Description: 星云动态页请求接口
* @Description: 星云动态页请求接口
* @FilePath: \rs-cloud-platform-ui\src\api\wsmanagement\newsCategory\index.js
* @FilePath: \rs-cloud-platform-ui\src\api\wsmanagement\newsCategory\index.js
...
@@ -9,12 +9,13 @@
...
@@ -9,12 +9,13 @@
import
fetch
from
'utils/fetch'
;
import
fetch
from
'utils/fetch'
;
/**
/**
* 获取所有新闻类型
* 获取所有新闻类型
*/
*/
export
function
getAllnewsType
(){
export
function
getAllnewsType
(){
return
fetch
({
return
fetch
({
url
:
'/api/
admin/user/front/menu/a
ll'
,
url
:
'/api/
website/newsType/app/unauth/getA
ll'
,
method
:
'get'
method
:
'get'
});
});
}
}
...
@@ -78,3 +79,4 @@ export function uploadFile(obj){
...
@@ -78,3 +79,4 @@ export function uploadFile(obj){
data
:
obj
data
:
obj
});
});
}
}
src/utils/md5.js
0 → 100644
View file @
d12fda14
window
.
MD5
=
function
(
string
)
{
function
RotateLeft
(
lValue
,
iShiftBits
)
{
return
(
lValue
<<
iShiftBits
)
|
(
lValue
>>>
(
32
-
iShiftBits
));
}
function
AddUnsigned
(
lX
,
lY
)
{
var
lX4
,
lY4
,
lX8
,
lY8
,
lResult
;
lX8
=
(
lX
&
0x80000000
);
lY8
=
(
lY
&
0x80000000
);
lX4
=
(
lX
&
0x40000000
);
lY4
=
(
lY
&
0x40000000
);
lResult
=
(
lX
&
0x3FFFFFFF
)
+
(
lY
&
0x3FFFFFFF
);
if
(
lX4
&
lY4
)
{
return
(
lResult
^
0x80000000
^
lX8
^
lY8
);
}
if
(
lX4
|
lY4
)
{
if
(
lResult
&
0x40000000
)
{
return
(
lResult
^
0xC0000000
^
lX8
^
lY8
);
}
else
{
return
(
lResult
^
0x40000000
^
lX8
^
lY8
);
}
}
else
{
return
(
lResult
^
lX8
^
lY8
);
}
}
function
F
(
x
,
y
,
z
)
{
return
(
x
&
y
)
|
((
~
x
)
&
z
);
}
function
G
(
x
,
y
,
z
)
{
return
(
x
&
z
)
|
(
y
&
(
~
z
));
}
function
H
(
x
,
y
,
z
)
{
return
(
x
^
y
^
z
);
}
function
I
(
x
,
y
,
z
)
{
return
(
y
^
(
x
|
(
~
z
)));
}
function
FF
(
a
,
b
,
c
,
d
,
x
,
s
,
ac
)
{
a
=
AddUnsigned
(
a
,
AddUnsigned
(
AddUnsigned
(
F
(
b
,
c
,
d
),
x
),
ac
));
return
AddUnsigned
(
RotateLeft
(
a
,
s
),
b
);
};
function
GG
(
a
,
b
,
c
,
d
,
x
,
s
,
ac
)
{
a
=
AddUnsigned
(
a
,
AddUnsigned
(
AddUnsigned
(
G
(
b
,
c
,
d
),
x
),
ac
));
return
AddUnsigned
(
RotateLeft
(
a
,
s
),
b
);
};
function
HH
(
a
,
b
,
c
,
d
,
x
,
s
,
ac
)
{
a
=
AddUnsigned
(
a
,
AddUnsigned
(
AddUnsigned
(
H
(
b
,
c
,
d
),
x
),
ac
));
return
AddUnsigned
(
RotateLeft
(
a
,
s
),
b
);
};
function
II
(
a
,
b
,
c
,
d
,
x
,
s
,
ac
)
{
a
=
AddUnsigned
(
a
,
AddUnsigned
(
AddUnsigned
(
I
(
b
,
c
,
d
),
x
),
ac
));
return
AddUnsigned
(
RotateLeft
(
a
,
s
),
b
);
};
function
ConvertToWordArray
(
string
)
{
var
lWordCount
;
var
lMessageLength
=
string
.
length
;
var
lNumberOfWords_temp1
=
lMessageLength
+
8
;
var
lNumberOfWords_temp2
=
(
lNumberOfWords_temp1
-
(
lNumberOfWords_temp1
%
64
))
/
64
;
var
lNumberOfWords
=
(
lNumberOfWords_temp2
+
1
)
*
16
;
var
lWordArray
=
Array
(
lNumberOfWords
-
1
);
var
lBytePosition
=
0
;
var
lByteCount
=
0
;
while
(
lByteCount
<
lMessageLength
)
{
lWordCount
=
(
lByteCount
-
(
lByteCount
%
4
))
/
4
;
lBytePosition
=
(
lByteCount
%
4
)
*
8
;
lWordArray
[
lWordCount
]
=
(
lWordArray
[
lWordCount
]
|
(
string
.
charCodeAt
(
lByteCount
)
<<
lBytePosition
));
lByteCount
++
;
}
lWordCount
=
(
lByteCount
-
(
lByteCount
%
4
))
/
4
;
lBytePosition
=
(
lByteCount
%
4
)
*
8
;
lWordArray
[
lWordCount
]
=
lWordArray
[
lWordCount
]
|
(
0x80
<<
lBytePosition
);
lWordArray
[
lNumberOfWords
-
2
]
=
lMessageLength
<<
3
;
lWordArray
[
lNumberOfWords
-
1
]
=
lMessageLength
>>>
29
;
return
lWordArray
;
};
function
WordToHex
(
lValue
)
{
var
WordToHexValue
=
""
,
WordToHexValue_temp
=
""
,
lByte
,
lCount
;
for
(
lCount
=
0
;
lCount
<=
3
;
lCount
++
)
{
lByte
=
(
lValue
>>>
(
lCount
*
8
))
&
255
;
WordToHexValue_temp
=
"0"
+
lByte
.
toString
(
16
);
WordToHexValue
=
WordToHexValue
+
WordToHexValue_temp
.
substr
(
WordToHexValue_temp
.
length
-
2
,
2
);
}
return
WordToHexValue
;
};
function
Utf8Encode
(
string
)
{
string
=
string
.
replace
(
/
\r\n
/g
,
"
\n
"
);
var
utftext
=
""
;
for
(
var
n
=
0
;
n
<
string
.
length
;
n
++
)
{
var
c
=
string
.
charCodeAt
(
n
);
if
(
c
<
128
)
{
utftext
+=
String
.
fromCharCode
(
c
);
}
else
if
((
c
>
127
)
&&
(
c
<
2048
))
{
utftext
+=
String
.
fromCharCode
((
c
>>
6
)
|
192
);
utftext
+=
String
.
fromCharCode
((
c
&
63
)
|
128
);
}
else
{
utftext
+=
String
.
fromCharCode
((
c
>>
12
)
|
224
);
utftext
+=
String
.
fromCharCode
(((
c
>>
6
)
&
63
)
|
128
);
utftext
+=
String
.
fromCharCode
((
c
&
63
)
|
128
);
}
}
return
utftext
;
};
var
x
=
Array
();
var
k
,
AA
,
BB
,
CC
,
DD
,
a
,
b
,
c
,
d
;
var
S11
=
7
,
S12
=
12
,
S13
=
17
,
S14
=
22
;
var
S21
=
5
,
S22
=
9
,
S23
=
14
,
S24
=
20
;
var
S31
=
4
,
S32
=
11
,
S33
=
16
,
S34
=
23
;
var
S41
=
6
,
S42
=
10
,
S43
=
15
,
S44
=
21
;
string
=
Utf8Encode
(
string
);
x
=
ConvertToWordArray
(
string
);
a
=
0x67452301
;
b
=
0xEFCDAB89
;
c
=
0x98BADCFE
;
d
=
0x10325476
;
for
(
k
=
0
;
k
<
x
.
length
;
k
+=
16
)
{
AA
=
a
;
BB
=
b
;
CC
=
c
;
DD
=
d
;
a
=
FF
(
a
,
b
,
c
,
d
,
x
[
k
+
0
],
S11
,
0xD76AA478
);
d
=
FF
(
d
,
a
,
b
,
c
,
x
[
k
+
1
],
S12
,
0xE8C7B756
);
c
=
FF
(
c
,
d
,
a
,
b
,
x
[
k
+
2
],
S13
,
0x242070DB
);
b
=
FF
(
b
,
c
,
d
,
a
,
x
[
k
+
3
],
S14
,
0xC1BDCEEE
);
a
=
FF
(
a
,
b
,
c
,
d
,
x
[
k
+
4
],
S11
,
0xF57C0FAF
);
d
=
FF
(
d
,
a
,
b
,
c
,
x
[
k
+
5
],
S12
,
0x4787C62A
);
c
=
FF
(
c
,
d
,
a
,
b
,
x
[
k
+
6
],
S13
,
0xA8304613
);
b
=
FF
(
b
,
c
,
d
,
a
,
x
[
k
+
7
],
S14
,
0xFD469501
);
a
=
FF
(
a
,
b
,
c
,
d
,
x
[
k
+
8
],
S11
,
0x698098D8
);
d
=
FF
(
d
,
a
,
b
,
c
,
x
[
k
+
9
],
S12
,
0x8B44F7AF
);
c
=
FF
(
c
,
d
,
a
,
b
,
x
[
k
+
10
],
S13
,
0xFFFF5BB1
);
b
=
FF
(
b
,
c
,
d
,
a
,
x
[
k
+
11
],
S14
,
0x895CD7BE
);
a
=
FF
(
a
,
b
,
c
,
d
,
x
[
k
+
12
],
S11
,
0x6B901122
);
d
=
FF
(
d
,
a
,
b
,
c
,
x
[
k
+
13
],
S12
,
0xFD987193
);
c
=
FF
(
c
,
d
,
a
,
b
,
x
[
k
+
14
],
S13
,
0xA679438E
);
b
=
FF
(
b
,
c
,
d
,
a
,
x
[
k
+
15
],
S14
,
0x49B40821
);
a
=
GG
(
a
,
b
,
c
,
d
,
x
[
k
+
1
],
S21
,
0xF61E2562
);
d
=
GG
(
d
,
a
,
b
,
c
,
x
[
k
+
6
],
S22
,
0xC040B340
);
c
=
GG
(
c
,
d
,
a
,
b
,
x
[
k
+
11
],
S23
,
0x265E5A51
);
b
=
GG
(
b
,
c
,
d
,
a
,
x
[
k
+
0
],
S24
,
0xE9B6C7AA
);
a
=
GG
(
a
,
b
,
c
,
d
,
x
[
k
+
5
],
S21
,
0xD62F105D
);
d
=
GG
(
d
,
a
,
b
,
c
,
x
[
k
+
10
],
S22
,
0x2441453
);
c
=
GG
(
c
,
d
,
a
,
b
,
x
[
k
+
15
],
S23
,
0xD8A1E681
);
b
=
GG
(
b
,
c
,
d
,
a
,
x
[
k
+
4
],
S24
,
0xE7D3FBC8
);
a
=
GG
(
a
,
b
,
c
,
d
,
x
[
k
+
9
],
S21
,
0x21E1CDE6
);
d
=
GG
(
d
,
a
,
b
,
c
,
x
[
k
+
14
],
S22
,
0xC33707D6
);
c
=
GG
(
c
,
d
,
a
,
b
,
x
[
k
+
3
],
S23
,
0xF4D50D87
);
b
=
GG
(
b
,
c
,
d
,
a
,
x
[
k
+
8
],
S24
,
0x455A14ED
);
a
=
GG
(
a
,
b
,
c
,
d
,
x
[
k
+
13
],
S21
,
0xA9E3E905
);
d
=
GG
(
d
,
a
,
b
,
c
,
x
[
k
+
2
],
S22
,
0xFCEFA3F8
);
c
=
GG
(
c
,
d
,
a
,
b
,
x
[
k
+
7
],
S23
,
0x676F02D9
);
b
=
GG
(
b
,
c
,
d
,
a
,
x
[
k
+
12
],
S24
,
0x8D2A4C8A
);
a
=
HH
(
a
,
b
,
c
,
d
,
x
[
k
+
5
],
S31
,
0xFFFA3942
);
d
=
HH
(
d
,
a
,
b
,
c
,
x
[
k
+
8
],
S32
,
0x8771F681
);
c
=
HH
(
c
,
d
,
a
,
b
,
x
[
k
+
11
],
S33
,
0x6D9D6122
);
b
=
HH
(
b
,
c
,
d
,
a
,
x
[
k
+
14
],
S34
,
0xFDE5380C
);
a
=
HH
(
a
,
b
,
c
,
d
,
x
[
k
+
1
],
S31
,
0xA4BEEA44
);
d
=
HH
(
d
,
a
,
b
,
c
,
x
[
k
+
4
],
S32
,
0x4BDECFA9
);
c
=
HH
(
c
,
d
,
a
,
b
,
x
[
k
+
7
],
S33
,
0xF6BB4B60
);
b
=
HH
(
b
,
c
,
d
,
a
,
x
[
k
+
10
],
S34
,
0xBEBFBC70
);
a
=
HH
(
a
,
b
,
c
,
d
,
x
[
k
+
13
],
S31
,
0x289B7EC6
);
d
=
HH
(
d
,
a
,
b
,
c
,
x
[
k
+
0
],
S32
,
0xEAA127FA
);
c
=
HH
(
c
,
d
,
a
,
b
,
x
[
k
+
3
],
S33
,
0xD4EF3085
);
b
=
HH
(
b
,
c
,
d
,
a
,
x
[
k
+
6
],
S34
,
0x4881D05
);
a
=
HH
(
a
,
b
,
c
,
d
,
x
[
k
+
9
],
S31
,
0xD9D4D039
);
d
=
HH
(
d
,
a
,
b
,
c
,
x
[
k
+
12
],
S32
,
0xE6DB99E5
);
c
=
HH
(
c
,
d
,
a
,
b
,
x
[
k
+
15
],
S33
,
0x1FA27CF8
);
b
=
HH
(
b
,
c
,
d
,
a
,
x
[
k
+
2
],
S34
,
0xC4AC5665
);
a
=
II
(
a
,
b
,
c
,
d
,
x
[
k
+
0
],
S41
,
0xF4292244
);
d
=
II
(
d
,
a
,
b
,
c
,
x
[
k
+
7
],
S42
,
0x432AFF97
);
c
=
II
(
c
,
d
,
a
,
b
,
x
[
k
+
14
],
S43
,
0xAB9423A7
);
b
=
II
(
b
,
c
,
d
,
a
,
x
[
k
+
5
],
S44
,
0xFC93A039
);
a
=
II
(
a
,
b
,
c
,
d
,
x
[
k
+
12
],
S41
,
0x655B59C3
);
d
=
II
(
d
,
a
,
b
,
c
,
x
[
k
+
3
],
S42
,
0x8F0CCC92
);
c
=
II
(
c
,
d
,
a
,
b
,
x
[
k
+
10
],
S43
,
0xFFEFF47D
);
b
=
II
(
b
,
c
,
d
,
a
,
x
[
k
+
1
],
S44
,
0x85845DD1
);
a
=
II
(
a
,
b
,
c
,
d
,
x
[
k
+
8
],
S41
,
0x6FA87E4F
);
d
=
II
(
d
,
a
,
b
,
c
,
x
[
k
+
15
],
S42
,
0xFE2CE6E0
);
c
=
II
(
c
,
d
,
a
,
b
,
x
[
k
+
6
],
S43
,
0xA3014314
);
b
=
II
(
b
,
c
,
d
,
a
,
x
[
k
+
13
],
S44
,
0x4E0811A1
);
a
=
II
(
a
,
b
,
c
,
d
,
x
[
k
+
4
],
S41
,
0xF7537E82
);
d
=
II
(
d
,
a
,
b
,
c
,
x
[
k
+
11
],
S42
,
0xBD3AF235
);
c
=
II
(
c
,
d
,
a
,
b
,
x
[
k
+
2
],
S43
,
0x2AD7D2BB
);
b
=
II
(
b
,
c
,
d
,
a
,
x
[
k
+
9
],
S44
,
0xEB86D391
);
a
=
AddUnsigned
(
a
,
AA
);
b
=
AddUnsigned
(
b
,
BB
);
c
=
AddUnsigned
(
c
,
CC
);
d
=
AddUnsigned
(
d
,
DD
);
}
var
temp
=
WordToHex
(
a
)
+
WordToHex
(
b
)
+
WordToHex
(
c
)
+
WordToHex
(
d
);
return
temp
.
toLowerCase
();
}
src/utils/translate.js
0 → 100644
View file @
d12fda14
/*
* @Author: your name
* @Date: 2020-12-07 15:45:49
* @LastEditTime: 2020-12-07 16:24:54
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \rs-cloud-platform-ui\src\utils\translate.js
*/
import
"utils/md5"
;
window
.
transResult
=
""
// 初始化翻译
window
.
toTranslate
=
function
(
words
,
toLanguage
)
{
if
(
words
==
""
)
{
return
;
}
//获取创建的script标签
var
s
=
document
.
getElementById
(
'urlData'
);
//如果script标签已经存在删除了重新创建
if
(
s
)
{
s
.
parentNode
.
removeChild
(
s
);
translate
(
words
,
toLanguage
);
}
else
{
translate
(
words
,
toLanguage
);
}
}
// 初始翻译标签
window
.
translate
=
function
(
words
,
lang
=
"en"
)
{
// appId和appSecret需要更改
let
appId
=
"2015063000000001"
let
appSecret
=
"12345678"
//获取接口
let
url
=
'http://api.fanyi.baidu.com/api/trans/vip/translate?'
;
// 当前时间戳
let
salt
=
(
new
Date
).
getTime
()
// 组合字段
let
str
=
appId
+
words
+
salt
+
appSecret
;
//秘钥
//此处拼接接口数据,好转换成jsonp数据格式,实现跨域访问
// var str = '20170605000052254' + words + salt + '63r1c42X7_buc4OrXm1g';
//使用加密算法计算数据
let
md5
=
window
.
MD5
(
str
);
//然后得到的数据
let
data
=
'q='
+
words
+
'&from=auto&to='
+
lang
+
'&appid='
+
appId
+
'&salt='
+
salt
+
'&sign='
+
md5
+
"&callback=callbackName"
;
//引入src路径
let
src
=
url
+
data
;
//调用创建script标签函数
createScript
(
src
);
}
// 创建翻译脚本
window
.
createScript
=
function
(
src
)
{
//创建一个script标签
var
script
=
document
.
createElement
(
'script'
);
//添加src和id属性
script
.
id
=
'urlData'
;
script
.
src
=
src
;
//将script标签添加到body页面中
document
.
body
.
appendChild
(
script
);
}
//回调函数定义
window
.
callbackName
=
function
(
str
){
window
.
transResult
=
str
console
.
log
(
"翻译结果=>"
,
window
.
transResult
)
}
\ No newline at end of file
src/utils/uuid.js
0 → 100644
View file @
d12fda14
/*
* @Author: your name
* @Date: 2020-12-07 18:47:48
* @LastEditTime: 2020-12-07 18:48:54
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \rs-cloud-platform-ui\src\utils\uuid.js
*/
export
function
uuid
()
{
var
s
=
[];
var
hexDigits
=
"0123456789abcdef"
;
for
(
var
i
=
0
;
i
<
36
;
i
++
)
{
s
[
i
]
=
hexDigits
.
substr
(
Math
.
floor
(
Math
.
random
()
*
0x10
),
1
);
}
s
[
14
]
=
"4"
;
// bits 12-15 of the time_hi_and_version field to 0010
s
[
19
]
=
hexDigits
.
substr
((
s
[
19
]
&
0x3
)
|
0x8
,
1
);
// bits 6-7 of the clock_seq_hi_and_reserved to 01
s
[
8
]
=
s
[
13
]
=
s
[
18
]
=
s
[
23
]
=
"-"
;
var
uuid
=
s
.
join
(
""
);
return
uuid
;
}
export
function
guid
()
{
return
'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.
replace
(
/
[
xy
]
/g
,
function
(
c
)
{
var
r
=
Math
.
random
()
*
16
|
0
,
v
=
c
==
'x'
?
r
:
(
r
&
0x3
|
0x8
);
return
v
.
toString
(
16
);
});
}
export
function
guid2
()
{
function
S4
()
{
return
(((
1
+
Math
.
random
())
*
0x10000
)
|
0
).
toString
(
16
).
substring
(
1
);
}
return
(
S4
()
+
S4
()
+
"-"
+
S4
()
+
"-"
+
S4
()
+
"-"
+
S4
()
+
"-"
+
S4
()
+
S4
()
+
S4
());
}
export
/*
指定长度和基数
*/
function
uuid2
(
len
,
radix
)
{
var
chars
=
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
.
split
(
''
);
var
uuid
=
[],
i
;
radix
=
radix
||
chars
.
length
;
if
(
len
)
{
// Compact form
for
(
i
=
0
;
i
<
len
;
i
++
)
uuid
[
i
]
=
chars
[
0
|
Math
.
random
()
*
radix
];
}
else
{
// rfc4122, version 4 form
var
r
;
// rfc4122 requires these characters
uuid
[
8
]
=
uuid
[
13
]
=
uuid
[
18
]
=
uuid
[
23
]
=
'-'
;
uuid
[
14
]
=
'4'
;
// Fill in random data. At i==19 set the high bits of clock sequence as
// per rfc4122, sec. 4.1.5
for
(
i
=
0
;
i
<
36
;
i
++
)
{
if
(
!
uuid
[
i
])
{
r
=
0
|
Math
.
random
()
*
16
;
uuid
[
i
]
=
chars
[(
i
==
19
)
?
(
r
&
0x3
)
|
0x8
:
r
];
}
}
}
return
uuid
.
join
(
''
);
}
src/views/webSiteManagement/newsCategory/index.vue
View file @
d12fda14
<!--
<!--
* @Author: your name
* @Author: your name
* @Date: 2020-12-01 09:54:12
* @Date: 2020-12-01 09:54:12
* @LastEditTime: 2020-12-0
2 16:35:10
* @LastEditTime: 2020-12-0
7 18:31:07
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @Description: In User Settings Edit
* @FilePath: \rs-cloud-platform-ui\src\views\webSiteManagement\newsCategory\index.vue
* @FilePath: \rs-cloud-platform-ui\src\views\webSiteManagement\newsCategory\index.vue
...
@@ -26,6 +26,7 @@ export default {
...
@@ -26,6 +26,7 @@ export default {
data
(){
data
(){
return
{
return
{
componentName
:
'nebulaDynamics'
,
componentName
:
'nebulaDynamics'
,
regions
:[]
}
}
},
},
mounted
()
{
mounted
()
{
...
...
src/views/webSiteManagement/newsCategory/nebulaDynamics/index.vue
View file @
d12fda14
<!--
<!--
* @Author: Jenkins
* @Author: Jenkins
* @Date: 2020-12-01 09:54:12
* @Date: 2020-12-01 09:54:12
* @LastEditTime: 2020-12-0
3 17:39:59
* @LastEditTime: 2020-12-0
7 18:53:34
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @Description: 星云动态
* @Description: 星云动态
* @FilePath: \rs-cloud-platform-ui\src\views\webSiteManagement\newsCategory\index.vue
* @FilePath: \rs-cloud-platform-ui\src\views\webSiteManagement\newsCategory\index.vue
-->
-->
<
template
>
<
template
>
<div
id=
'nebulaDynamics'
>
<div
id=
"nebulaDynamics"
>
<!-- 顶部功能栏 -->
<!-- 顶部功能栏 -->
<div
class=
"top"
>
<div
class=
"top"
>
<div
class=
"title"
>
星云动态
</div>
<div
class=
"title"
>
星云动态
</div>
<div
class=
"controls"
>
<div
class=
"controls"
>
<div
class=
"item"
v-for=
"(val,index) in topControls"
:key=
"index"
@
click=
"topControlActive(val.key)"
>
<div
{{
val
.
name
}}
class=
"item"
</div>
v-for=
"(val, index) in topControls"
</div>
:key=
"index"
@
click=
"topControlActive(val.key)"
>
{{
val
.
name
}}
</div>
</div>
</div>
<!-- 类型管理弹框 -->
</div>
<el-dialog
title=
"类型管理"
:visible
.
sync=
"typeManagerVisible"
append-to-body
>
<!-- 类型管理弹框 -->
<div
id=
"typeManager"
>
<el-dialog
title=
"类型管理"
:visible
.
sync=
"typeManagerVisible"
append-to-body
>
<div
class=
"controls"
>
<div
id=
"typeManager"
>
<div
class=
"addUpdate"
@
click=
"typeCreatorVisible = true"
>
<div
class=
"controls"
>
添加类型
<div
class=
"addUpdate"
@
click=
"typeCreatorVisible = true"
>
</div>
添加类型
</div>
</div>
<div
class=
"content"
>
<el-table
:data=
"tableType"
border
fit
highlight-current-row
style=
"width: 100%"
max-height=
"400"
>
<el-table-column
label=
"序号"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
id
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"类型名称"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
name
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"排序"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
sort
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
<div
class=
"operators"
>
<div
class=
"edit"
>
编辑
</div>
<div
class=
"offshelf"
>
下架
</div>
<div
class=
"delete"
>
删除
</div>
</div>
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</div>
<!-- 添加类型弹框 -->
<div
class=
"content"
>
<el-dialog
width=
"40%"
title=
"添加类型"
:visible
.
sync=
"typeCreatorVisible"
append-to-body
>
<el-table
<div
id=
"typeCreator"
>
:data=
"tableType"
<div
class=
"content"
>
border
<span>
*类型名称
</span>
fit
<el-col
:span=
"14"
>
highlight-current-row
<el-input
v-model=
"newType"
placeholder=
"请输入类型名称"
size=
"100px"
></el-input>
style=
"width: 100%"
</el-col>
max-height=
"400"
</div>
>
<div
class=
"content"
>
<el-table-column
label=
"序号"
align=
"center"
>
<span>
*类型排序
</span>
<template
slot-scope=
"scope"
>
<el-col
:span=
"14"
>
<span>
{{
scope
.
row
.
id
}}
</span>
<el-input
v-model=
"newSort"
placeholder=
"请设置排序0-10000,数值越大排序越靠前"
></el-input>
</
template
>
</el-col>
</el-table-column>
</div>
<el-table-column
label=
"类型名称(中文)"
align=
"center"
>
<div
class=
"operators"
>
<
template
slot-scope=
"scope"
>
<div
class=
"cancel"
>
取消
</div>
<span>
{{
scope
.
row
.
name
}}
</span>
<div
class=
"confirm"
>
确定
</div>
</
template
>
</div>
</el-table-column>
</div>
<el-table-column
label=
"排序"
align=
"center"
>
</el-dialog>
<
template
slot-scope=
"scope"
>
</el-dialog>
<span>
{{
scope
.
row
.
sort
}}
</span>
<!-- 操作表格栏 -->
</
template
>
<div
class=
"operators"
>
</el-table-column>
<div
class=
"status"
>
<el-table-column
label=
"操作"
align=
"center"
>
<span>
所有状态
</span>
<
template
slot-scope=
"scope"
>
<el-select
v-model=
"currentStatus"
placeholder=
"全部"
>
<span>
<el-option
v-for=
"item in status"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<div
class=
"operators"
>
</el-option>
<div
class=
"edit"
@
click
.
stop=
"clickTypeEditor(scope.row)"
>
编辑
</div>
</el-select>
<div
class=
"offshelf"
v-if=
"scope.row.status==1"
>
下架
</div>
<div
class=
"upshelf"
v-else
>
上架
</div>
<div
class=
"delete"
>
删除
</div>
</div>
</span>
</
template
>
</el-table-column>
</el-table>
</div>
<div
class=
"typePagination"
>
<el-pagination
@
size-change=
"changeHandleSize"
@
current-change=
"changeHandleCurrent"
:current-page
.
sync=
"typePagination.currentPage"
:page-sizes=
"[2,4,6]"
:page-size=
"typePagination.pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"typePagination.total"
>
</el-pagination>
</div>
</div>
<!-- 编辑类型弹框 -->
<el-dialog
width=
"40%"
title=
"添加类型"
:visible
.
sync=
"typeEditorVisible"
append-to-body
>
<div
id=
"typeCreator"
>
<div
class=
"content"
>
<span>
*中文名称
</span>
<el-col
:span=
"14"
>
<el-input
v-model=
"editorType.name"
placeholder=
"请输入类型名称(中文)"
size=
"100px"
></el-input>
</el-col>
</div>
</div>
<div
class=
"types"
>
<div
class=
"content"
>
<span>
资讯类型
</span>
<span>
*英文名称
</span>
<el-select
v-model=
"currentTypes"
placeholder=
"全部"
>
<el-col
:span=
"14"
>
<el-option
v-for=
"item in types"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<el-input
</el-option>
v-model=
"editorType.nameEn"
</el-select>
placeholder=
"请输入类型名称(英文)"
></el-input>
</el-col>
</div>
</div>
<div
class=
"sorts"
>
<div
class=
"content"
>
<span>
排序
</span>
<span>
*类型排序
</span>
<el-select
v-model=
"currentSorts"
placeholder=
"全部"
>
<el-col
:span=
"14"
>
<el-option
v-for=
"item in sorts"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<el-input
</el-option>
v-model=
"editorType.sort"
</el-select>
placeholder=
"请设置排序0-10000,数值越大排序越靠前"
></el-input>
</el-col>
</div>
</div>
<div
class=
"controls"
>
<div
class=
"operators"
>
<div
class=
"item"
v-for=
"(item,index) in operatorControls"
:key=
"index"
>
<div
class=
"cancel"
@
click
.
stop=
"typeEditorVisible = false"
>
取消
</div>
{{item.name}}
<div
class=
"confirm"
@
click
.
stop=
"confirmEditor"
>
确定
</div>
</div>
</div>
</div>
</el-dialog>
<!-- 添加类型弹框 -->
<el-dialog
width=
"40%"
title=
"编辑类型"
:visible
.
sync=
"typeCreatorVisible"
append-to-body
>
<div
id=
"typeEditor"
>
<div
class=
"content"
>
<span>
*类型名称
</span>
<el-col
:span=
"14"
>
<el-input
v-model=
"newType"
placeholder=
"请输入类型名称(中文)"
size=
"100px"
></el-input>
</el-col>
</div>
<div
class=
"content"
>
<span>
*类型排序
</span>
<el-col
:span=
"14"
>
<el-input
v-model=
"newSort"
placeholder=
"请设置排序0-10000,数值越大排序越靠前"
></el-input>
</el-col>
</div>
</div>
<div
class=
"operators"
>
<div
class=
"cancel"
@
click
.
stop=
"typeCreatorVisible = false"
>
取消
</div>
<div
class=
"confirm"
@
click
.
stop=
"createType"
>
确定
</div>
</div>
</div>
</el-dialog>
</el-dialog>
<!-- 操作表格栏 -->
<div
class=
"operators"
>
<div
class=
"status"
>
<span>
所有状态
</span>
<el-select
v-model=
"currentStatus"
placeholder=
"全部"
>
<el-option
v-for=
"item in status"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</div>
</div>
<!-- 表格 -->
<div
class=
"types"
>
<div
class=
"table"
>
<span>
资讯类型
</span>
<el-table
:data=
"tableData"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-select
v-model=
"currentType"
placeholder=
"全部"
>
<el-table-column
label=
"序号"
width=
"100"
align=
"center"
>
<el-option
<
template
slot-scope=
"scope"
>
v-for=
"item in types"
<span>
{{
scope
.
row
.
id
}}
</span>
:key=
"item.value"
</
template
>
:label=
"item.label"
</el-table-column>
:value=
"item.value"
<el-table-column
label=
"资讯标题"
width=
"200"
align=
"center"
>
>
<
template
slot-scope=
"scope"
>
</el-option>
<span>
{{
scope
.
row
.
title
}}
</span>
</el-select>
</
template
>
</div>
</el-table-column>
<div
class=
"sorts"
>
<el-table-column
label=
"缩略图"
width=
"150"
align=
"center"
>
<span>
排序
</span>
<
template
slot-scope=
"scope"
>
<el-select
v-model=
"currentSort"
placeholder=
"全部"
>
<span>
<el-option
<img
class=
"icon"
:src=
"scope.row.icon.url"
@
click=
"showPreview(scope.row.icon)"
/>
v-for=
"item in sorts"
</span>
:key=
"item.value"
</
template
>
:label=
"item.label"
</el-table-column>
:value=
"item.value"
<el-table-column
label=
"简介"
align=
"center"
>
>
<
template
slot-scope=
"scope"
>
</el-option>
<span
class=
"introduce"
>
{{
scope
.
row
.
introduce
}}
</span>
</el-select>
</
template
>
</el-table-column>
<el-table-column
label=
"类型"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
type
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"排序"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
sort
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
status
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<!--
<span>
{{
scope
.
row
.
operator
}}
</span>
-->
<span>
<div
class=
"operators"
>
<div
class=
"edit"
>
编辑
</div>
<div
class=
"offshelf"
>
下架
</div>
<div
class=
"delete"
>
删除
</div>
</div>
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<!-- 使用图片查看器预览当前缩略图 -->
<div
class=
"controls"
>
<el-image-viewer
v-if=
"currentIcon.showPreview"
:on-close=
"closePreview"
:url-list=
"[currentIcon.url]"
/>
<div
class=
"item"
v-for=
"(item, index) in operatorControls"
:key=
"index"
@
click
.
stop=
"clickOperator(item.type)"
>
{{ item.name }}
</div>
</div>
</div>
<!-- 表格 -->
<div
class=
"table"
>
<el-table
:data=
"tableData"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
label=
"序号"
width=
"100"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
id
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"资讯标题"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
title
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"缩略图"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
<img
class=
"icon"
:src=
"scope.row.icon.url"
@
click=
"showPreview(scope.row.icon)"
/>
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"简介"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
class=
"introduce"
>
{{
scope
.
row
.
introduce
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"类型"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
type
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"排序"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
sort
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
status
==
1
?
"上架"
:
"下架"
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<!--
<span>
{{
scope
.
row
.
operator
}}
</span>
-->
<span>
<div
class=
"operators"
>
<div
class=
"edit"
>
编辑
</div>
<div
class=
"offshelf"
v-if=
"scope.row.status == 1"
>
下架
</div>
<div
class=
"upshelf"
v-else
>
上架
</div>
<div
class=
"delete"
>
删除
</div>
</div>
</span>
</
template
>
</el-table-column>
</el-table>
</div>
<div
class=
"infoPagination"
v-show=
"infoPagination"
>
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"infoPagination.currentPage"
:page-sizes=
"[10, 20, 30, 40]"
:page-size=
"infoPagination.pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"infoPagination.total"
>
</el-pagination>
</div>
<!-- 使用图片查看器预览当前缩略图 -->
<el-image-viewer
v-if=
"currentIcon.showPreview"
:on-close=
"closePreview"
:url-list=
"[currentIcon.url]"
/>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
// 导入组件
// 导入组件
import
ElImageViewer
from
'element-ui/packages/image/src/image-viewer'
;
import
ElImageViewer
from
"element-ui/packages/image/src/image-viewer"
;
// 导入请求
// 导入请求
import
{
getAllnewsType
,
getListnewsType
,
addUpdateNewsType
,
getListNewsInfo
,
addUpdateNewsInfo
}
from
'@/api/website/newsCategory/index'
;
import
{
getAllnewsType
,
getListnewsType
,
addUpdateNewsType
,
getListNewsInfo
,
}
from
"@/api/website/newsCategory/index"
;
export
default
{
export
default
{
name
:
'nebulaDynamics'
,
name
:
"nebulaDynamics"
,
components
:
{
components
:
{
ElImageViewer
ElImageViewer
,
},
},
data
(){
data
()
{
return
{
return
{
// 功能按钮
// 功能按钮
topControls
:
[{
topControls
:
[
key
:
'manager'
,
{
name
:
'类型管理'
,
key
:
"manager"
,
},{
name
:
"类型管理"
,
key
:
'creator'
,
},
name
:
'创建资讯文章'
,
{
}],
key
:
"creator"
,
typeManagerVisible
:
false
,
name
:
"创建资讯文章"
,
typeCreatorVisible
:
false
,
},
newType
:
""
,
],
newSort
:
""
,
typeManagerVisible
:
false
,
// 状态下拉
typeCreatorVisible
:
false
,
status
:
[{
newType
:
""
,
value
:
'1'
,
newSort
:
""
,
label
:
'全部'
// 状态框
},
{
status
:
[
value
:
'2'
,
{
label
:
'上架'
value
:
""
,
},
{
label
:
"全部"
,
value
:
'3'
,
},
label
:
'下架'
{
}],
value
:
"1"
,
currentStatus
:
'全部'
,
label
:
"上架"
,
// 类型下拉
},
types
:
[{
{
value
:
'1'
,
value
:
"2"
,
label
:
'全部'
label
:
"下架"
,
},
{
},
value
:
'2'
,
],
label
:
'新闻动态'
currentStatus
:
""
,
},
{
// 类型框
value
:
'3'
,
typesState
:
[],
label
:
'行业新闻'
types
:
[
},
{
{
value
:
'4'
,
value
:
""
,
label
:
'新闻发布'
label
:
"全部"
,
}],
},
currentTypes
:
'全部'
,
],
// 排序下拉
currentType
:
""
,
sorts
:
[{
// 排序框
value
:
'1'
,
sorts
:
[
label
:
'全部'
{
},
{
value
:
""
,
value
:
'2'
,
label
:
"全部"
,
label
:
'降序'
},
},
{
{
value
:
'3'
,
value
:
"1"
,
label
:
'升序'
label
:
"降序"
,
}],
},
currentSorts
:
'全部'
,
{
// 功能按钮
value
:
"2"
,
operatorControls
:
[{
label
:
"升序"
,
name
:
'搜索'
,
},
},{
],
name
:
'清空搜索'
,
currentSort
:
""
,
}],
// 功能按钮
// 表格数据
operatorControls
:
[
tableData
:
[{
{
id
:
'1'
,
type
:
"search"
,
title
:
'王小虎'
,
name
:
"搜索"
,
icon
:
{
},
url
:
'https://onemap.obtdata.com/wx/download/world.png'
,
{
showPreview
:
false
type
:
"clearSearch"
,
},
name
:
"清空搜索"
,
introduce
:
'介绍介绍介绍介绍介绍介绍介绍介绍介绍介绍介绍'
,
},
type
:
'类型'
,
],
sort
:
'排序'
,
canPull
:
false
,
status
:
'状态'
,
// 表格数据
operator
:
'操作'
,
tableData
:
[
}],
// {
currentIcon
:
''
,
// id: "1",
// 类型表格数据
// title: "王小虎",
tableType
:
[{
// icon: {
id
:
'1'
,
// url: "https://onemap.obtdata.com/wx/download/world.png",
name
:
'类型名称'
,
// showPreview: false,
sort
:
'排序'
,
// },
operator
:
'操作'
// introduce: "介绍介绍介绍介绍介绍介绍介绍介绍介绍介绍介绍",
}],
// type: "类型",
}
// sort: "排序",
},
// status: "状态",
mounted
()
{
// operator: "操作",
/**
// },
// 获取所有新闻类型
],
getAllnewsType().then(res => {
tableDataState
:
[],
// 缓存当前的表格数据
console.log("获取所有新闻类型=>",res)
infoPagination
:
{
});
currentPage
:
1
,
// 当前页码
// 获取分页新闻类型
pageSize
:
10
,
// 每页查询数量
getListnewsType({
total
:
0
,
// 总记录数量
page: "0",
},
limit: "10",
// 当前查看器显示的图片
name: ""
currentIcon
:
""
,
}).then(res => {
// 类型表格数据
console.log("获取分页新闻类型=>",res)
tableType
:
[
});
// {
// 新增或更新新闻类型
// id: "1",
addUpdateNewsType({
// name: "类型名称",
nameCn: "行业创新",
// sort: "排序",
nameEn: "News creation",
// },
rank: 0,
],
status: 1,
typePagination
:
{
id: "11"
currentPage
:
1
,
// 当前页码
}).then(res => {
pageSize
:
2
,
// 每页查询数量
console.log("新增或更新新闻类型=>",res)
total
:
0
,
// 总记录数量
});
},
// 获取分页新闻资讯
typeEditorVisible
:
false
,
getListNewsInfo({
editorType
:
{},
// 编辑中的类型
page: "0",
};
limit: "10",
typeId: "1"
}).then(res => {
console.log("获取分页新闻资讯=>",res)
});
// 新增或更新新闻资讯
addUpdateNewsInfo({
id: 1001,
title: "",
detail: "",
coverImg: "",
content: "",
newsDate: "2020-12-25 17:29:34",
typeId: 1,
status: 1,
indexShow: 1,
typeName: ""
}).then(res => {
console.log("新增或更新新闻资讯",res)
});
*/
},
},
methods
:
{
watch
:{
topControlActive
(
key
){
// // 筛选状态发生改变
if
(
key
==
'manager'
){
// currentStatus(newVal) {
this
.
typeManagerVisible
=
true
// console.log("状态=>",newVal)
}
else
{
// this.screenTableData()
this
.
$parent
.
componentName
=
"newsCreator"
// },
// // 筛选类型发生改变
// currentType(newVal) {
// console.log("类型=>",newVal)
// this.screenTableData()
// },
// // 筛选排序发生改变
// currentSort(newVal) {
// console.log("排序=>",newVal)
// this.screenTableData()
// },
canPull
(
newVal
){
// 分页获取新闻信息
newVal
&&
(
this
.
pullListNewsInfo
())
},
// 当前页码有改变时重新拉取分页数据
"infoPagination.currentPage"
:
{
deep
:
true
,
handler
:
function
(){
this
.
pullListNewsInfo
()
}
}
},
},
showPreview
(
icon
){
// 当查询数量有改变时重新拉取分页数据
this
.
currentIcon
=
icon
"infoPagination.pageSize"
:
{
this
.
currentIcon
.
showPreview
=
true
deep
:
true
,
handler
:
function
(
newVal
){
this
.
pullListNewsInfo
()
}
},
// 类型表格筛选页码改变
"typePagination.currentPage"
:
{
deep
:
true
,
handler
(){
this
.
changeTableType
()
}
},
},
closePreview
(){
// 类型表格筛选数量改变
this
.
currentIcon
.
showPreview
=
false
"typePagination.pageSize"
:
{
deep
:
true
,
handler
(){
this
.
changeTableType
()
}
}
}
},
},
}
mounted
()
{
</
script
>
// 获取所有新闻类型
this
.
pullAllNewsType
()
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
// // 获取分页新闻类型
#nebulaDynamics
{
// getListnewsType({
margin
:
0
1%
0
1%
;
// page: "0",
width
:
98%
;
// limit: "10",
height
:
auto
;
// name: "",
.top
{
// }).then((res) => {
width
:
100%
;
// console.log("获取分页新闻类型=>", res);
height
:
68px
;
// });
display
:
flex
;
// // 新增或更新新闻类型
flex-direction
:
row
;
// addUpdateNewsType({
justify-content
:
space-between
;
// nameCn: "行业创新",
align-items
:
center
;
// nameEn: "News creation",
overflow
:
hidden
;
// rank: 0,
border-bottom
:
1px
solid
#EEEEEE
;
// status: 1,
.title
{
// id: "11",
width
:
114px
;
// }).then((res) => {
height
:
46px
;
// console.log("新增或更新新闻类型=>", res);
display
:
flex
;
// });
flex-direction
:
row
;
},
justify-content
:
center
;
methods
:
{
align-items
:
center
;
handleSizeChange
(
val
)
{
color
:
#000000
;
// console.log(`每页 ${val} 条`);
overflow
:
hidden
;
this
.
infoPagination
.
pageSize
=
val
},
handleCurrentChange
(
val
)
{
// console.log(`当前页: ${val}`);
this
.
infoPagination
.
currentPage
=
val
},
// 获取所有的新闻类型
pullAllNewsType
(
isInit
=
true
){
this
.
typesState
=
[]
this
.
types
=
[]
// 获取所有新闻类型
getAllnewsType
().
then
((
res
)
=>
{
// console.log("所有的新闻类型=>",res)
if
(
res
.
status
==
200
){
res
.
data
.
forEach
(
element
=>
{
// 未被删除的类型且已启用
if
(
element
.
isDel
==
0
&&
element
.
status
==
1
){
this
.
types
.
push
({
value
:
element
.
id
,
label
:
element
.
nameCn
});
}
// 缓存所有类型
this
.
typesState
.
push
(
element
);
});
// 升序排序
this
.
types
.
sort
((
obj1
,
obj2
)
=>
{
let
val1
=
parseInt
((
obj1
.
value
+
""
))
let
val2
=
parseInt
((
obj2
.
value
+
""
))
if
(
val1
<
val2
){
return
-
1
}
else
if
(
val1
>
val2
){
return
1
}
else
{
return
0
}
});
console
.
log
(
"获取到的所有类型=>"
,
this
.
typesState
)
this
.
canPull
=
isInit
}
}
.controls
{
});
width
:
296px
;
},
height
:
46px
;
// 分页获取新闻资讯
display
:
flex
;
pullListNewsInfo
(){
flex-direction
:
row
;
getListNewsInfo
({
justify-content
:
space-around
;
page
:
this
.
infoPagination
.
currentPage
,
align-items
:
center
;
limit
:
this
.
infoPagination
.
pageSize
,
overflow
:
hidden
;
typeId
:
this
.
currentType
,
.item
{
}).
then
((
res
)
=>
{
width
:
138px
;
if
(
res
.
status
==
200
){
height
:
46px
;
// console.log("res=>",res)
display
:
flex
;
this
.
tableDataState
=
[]
// 先清空当前缓存
flex-direction
:
row
;
this
.
infoPagination
.
total
=
res
.
data
.
totalCount
// 更改总记录数
justify-content
:
center
;
res
.
data
.
data
.
forEach
(
element
=>
{
align-items
:
center
;
// 缓存当前的表格数据
background-color
:
#5178F2
;
this
.
tableDataState
.
push
(
element
)
border
:
1px
solid
#5178F2
;
// 将缓存的数据作进一步的筛选
border-radius
:
5px
;
this
.
screenTableData
()
color
:
#FFFFFF
;
})
font-weight
:
400
;
cursor
:
pointer
;
overflow
:
hidden
;
}
}
}
}
console
.
log
(
"获取分页新闻资讯=>"
,
res
);
.operators
{
});
// margin: 0 1% 0 1%;
},
width
:
100%
;
// 筛选表格数据
height
:
68px
;
screenTableData
(){
display
:
flex
;
// 先清空当前表格数据
flex-direction
:
row
;
this
.
tableData
=
[]
justify-content
:
flex-start
;
// 先把未被删除的数据放入到表格
align-items
:
center
;
this
.
tableDataState
.
forEach
((
element
,
index
)
=>
{
.status
,
.types
,
.sorts
{
// 未被删除则显示
width
:
auto
;
if
(
element
.
isDel
==
0
){
height
:
46px
;
this
.
tableData
.
push
({
display
:
flex
;
id
:
element
.
id
,
flex-direction
:
row
;
title
:
element
.
title
,
justify-content
:
center
;
icon
:
{
align-items
:
center
;
url
:
element
.
coverImg
,
overflow
:
hidden
;
showPreview
:
false
,
span
{
},
margin
:
0
10px
0
20px
;
introduce
:
element
.
detail
,
}
type
:
(
this
.
typesState
.
find
(
ele
=>
ele
.
id
==
element
.
typeId
)).
nameCn
,
}
typeId
:
element
.
typeId
,
.controls
{
sort
:
index
+
1
,
margin-left
:
40px
;
status
:
element
.
status
,
width
:
260px
;
});
height
:
46px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-between
;
align-items
:
center
;
.item
{
width
:
120px
;
height
:
36px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
font-weight
:
400
;
color
:
#5178F2
;
border
:
1px
solid
#5178F2
;
border-radius
:
5px
;
cursor
:
pointer
;
}
}
}
})
// 状态码不为空字符串(全部,上架1,下架2)
if
(
this
.
currentStatus
!=
""
){
this
.
tableData
=
this
.
tableData
.
filter
(
element
=>
element
.
status
==
this
.
currentStatus
)
}
}
.table
{
// 类型id不为空字符串(类型的id,若为空则筛选全部)
margin
:
1%
1%
0
1%
;
if
(
this
.
currentType
!=
""
){
width
:
98%
;
this
.
tableData
=
this
.
tableData
.
filter
(
element
=>
element
.
typeId
==
this
.
currentType
)
height
:
auto
;
}
span
{
// 排序码不为空字符串(全部,升序1,降序2s)
display
:
flex
;
if
(
this
.
currentSort
!=
""
){
flex-direction
:
row
;
// 按升序
justify-content
:
center
;
if
(
this
.
currentSort
==
1
){
align-items
:
center
;
this
.
tableData
.
sort
((
obj1
,
obj2
)
=>
{
.icon
{
let
val1
=
parseInt
((
obj1
.
id
+
""
))
width
:
50px
;
let
val2
=
parseInt
((
obj2
.
id
+
""
))
height
:
50px
;
if
(
val1
<
val2
){
object-fit
:
cover
;
return
-
1
}
}
else
if
(
val1
>
val2
){
.operators
{
return
1
width
:
300px
;
}
else
{
height
:
46px
;
return
0
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-around
;
align-items
:
center
;
.edit
,
.offshelf
,
.delete
{
width
:
auto
;
height
:
36px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
cursor
:
pointer
;
}
.edit
,
.offshelf
{
color
:
#1890FF
;
}
}
.delete
{
})
color
:
#FE4066
;
}
else
{
// 按降序
this
.
tableData
.
sort
((
obj1
,
obj2
)
=>
{
let
val1
=
parseInt
((
obj1
.
id
+
""
))
let
val2
=
parseInt
((
obj2
.
id
+
""
))
if
(
val1
<
val2
){
return
1
}
else
if
(
val1
>
val2
){
return
-
1
}
else
{
return
0
}
}
}
}
)
}
}
}
}
}
},
#typeManager
{
// 顶部栏功能按钮
width
:
100%
;
topControlActive
(
key
)
{
height
:
auto
;
if
(
key
==
"manager"
)
{
.controls
{
this
.
typeManagerVisible
=
true
;
margin
:
0
0
30px
0
;
// 将获取到的所有新闻类型按字段放入到弹框表格中
width
:
100%
;
// console.log("所有新闻类型缓存数据=>",this.typesState)
height
:
46px
;
this
.
changeTableType
()
display
:
flex
;
}
else
{
flex-direction
:
row
;
this
.
$parent
.
componentName
=
"newsCreator"
;
justify-content
:
flex-start
;
this
.
$parent
.
regions
=
this
.
typesState
align-items
:
center
;
}
.addUpdate
{
},
width
:
120px
;
// 更改类型表格
height
:
100%
;
changeTableType
(){
display
:
flex
;
this
.
tableType
=
[]
flex-direction
:
row
;
let
startIndex
=
(
this
.
typePagination
.
currentPage
*
this
.
typePagination
.
pageSize
)
-
this
.
typePagination
.
pageSize
;
// 开始截取的索引位置
justify-content
:
center
;
let
endIndex
=
startIndex
+
this
.
typePagination
.
pageSize
// 结束截取的索引位置
align-items
:
center
;
this
.
typePagination
.
total
=
this
.
typesState
.
length
color
:
#5178F2
;
this
.
typesState
.
slice
(
startIndex
,
endIndex
).
forEach
((
element
,
index
)
=>
{
border
:
1px
solid
#5178F2
;
// 未被删除的类型
border-radius
:
5px
;
if
(
element
.
isDel
==
0
){
cursor
:
pointer
;
this
.
tableType
.
push
({
id
:
element
.
id
,
name
:
element
.
nameCn
,
nameEn
:
element
.
nameEn
,
sort
:
element
.
rank
,
status
:
element
.
status
})
}
}
}
});
.content
{
this
.
typesState
.
sort
((
obj1
,
obj2
)
=>
{
width
:
100%
;
let
val1
=
parseInt
((
obj1
.
id
+
""
))
height
:
auto
;
let
val2
=
parseInt
((
obj2
.
id
+
""
))
display
:
flex
;
if
(
val1
<
val2
){
flex-direction
:
row
;
return
-
1
justify-content
:
flex-start
;
}
else
if
(
val1
>
val2
){
align-items
:
center
;
return
1
.operators
{
}
else
{
width
:
auto
;
return
0
height
:
16px
;
}
display
:
flex
;
});
flex-direction
:
row
;
console
.
log
(
"类型表格数据改变=>"
,
this
.
tableType
)
justify-content
:
space-around
;
},
align-items
:
center
;
createType
(){
.edit
,
.offshelf
,
.delete
{
if
(
this
.
newType
&&
this
.
newSort
){
width
:
auto
;
// 必须是中文名称
height
:
16px
;
if
(
/^
(?:[\u
3400-
\u
4DB5
\u
4E00-
\u
9FEA
\u
FA0E
\u
FA0F
\u
FA11
\u
FA13
\u
FA14
\u
FA1F
\u
FA21
\u
FA23
\u
FA24
\u
FA27-
\u
FA29
]
|
[\u
D840-
\u
D868
\u
D86A-
\u
D86C
\u
D86F-
\u
D872
\u
D874-
\u
D879
][\u
DC00-
\u
DFFF
]
|
\u
D869
[\u
DC00-
\u
DED6
\u
DF00-
\u
DFFF
]
|
\u
D86D
[\u
DC00-
\u
DF34
\u
DF40-
\u
DFFF
]
|
\u
D86E
[\u
DC00-
\u
DC1D
\u
DC20-
\u
DFFF
]
|
\u
D873
[\u
DC00-
\u
DEA1
\u
DEB0-
\u
DFFF
]
|
\u
D87A
[\u
DC00-
\u
DFE0
])
+$/
.
test
(
this
.
newType
)){
display
:
flex
;
if
(
this
.
newSort
>=
0
&&
this
.
newSort
<
10000
){
flex-direction
:
row
;
addUpdateNewsType
({
justify-content
:
center
;
nameCn
:
this
.
newType
,
align-items
:
center
;
nameEn
:
""
,
cursor
:
pointer
;
rank
:
this
.
newSort
,
}
status
:
1
// 创建即启用
.edit
,
.offshelf
{
}).
then
(
res
=>
{
color
:
#1890FF
;
if
(
res
.
status
==
200
){
this
.
$message
({
message
:
'创建成功!!!'
,
type
:
'success'
})
this
.
typeCreatorVisible
=
false
this
.
pullAllNewsType
(
false
)
}
})
}
else
{
this
.
$message
.
error
(
'排序值不在指定范围,请输入正确的排序值!!!'
);
}
}
.delete
{
}
else
{
color
:
#FE4066
;
this
.
$message
.
error
(
'请输入中文名称!!!'
);
}
}
else
{
this
.
$message
.
error
(
'必填框有缺乏值,请完善输入!!!'
);
}
},
clickTypeEditor
(
type
){
this
.
typeEditorVisible
=
true
this
.
editorType
=
type
},
confirmEditor
(){
// 中文对应
if
(
/^
(?:[\u
3400-
\u
4DB5
\u
4E00-
\u
9FEA
\u
FA0E
\u
FA0F
\u
FA11
\u
FA13
\u
FA14
\u
FA1F
\u
FA21
\u
FA23
\u
FA24
\u
FA27-
\u
FA29
]
|
[\u
D840-
\u
D868
\u
D86A-
\u
D86C
\u
D86F-
\u
D872
\u
D874-
\u
D879
][\u
DC00-
\u
DFFF
]
|
\u
D869
[\u
DC00-
\u
DED6
\u
DF00-
\u
DFFF
]
|
\u
D86D
[\u
DC00-
\u
DF34
\u
DF40-
\u
DFFF
]
|
\u
D86E
[\u
DC00-
\u
DC1D
\u
DC20-
\u
DFFF
]
|
\u
D873
[\u
DC00-
\u
DEA1
\u
DEB0-
\u
DFFF
]
|
\u
D87A
[\u
DC00-
\u
DFE0
])
+$/
.
test
(
this
.
editorType
.
name
)){
// 非中文对应
if
(
!
/^
(?:[\u
3400-
\u
4DB5
\u
4E00-
\u
9FEA
\u
FA0E
\u
FA0F
\u
FA11
\u
FA13
\u
FA14
\u
FA1F
\u
FA21
\u
FA23
\u
FA24
\u
FA27-
\u
FA29
]
|
[\u
D840-
\u
D868
\u
D86A-
\u
D86C
\u
D86F-
\u
D872
\u
D874-
\u
D879
][\u
DC00-
\u
DFFF
]
|
\u
D869
[\u
DC00-
\u
DED6
\u
DF00-
\u
DFFF
]
|
\u
D86D
[\u
DC00-
\u
DF34
\u
DF40-
\u
DFFF
]
|
\u
D86E
[\u
DC00-
\u
DC1D
\u
DC20-
\u
DFFF
]
|
\u
D873
[\u
DC00-
\u
DEA1
\u
DEB0-
\u
DFFF
]
|
\u
D87A
[\u
DC00-
\u
DFE0
])
+$/
.
test
(
this
.
editorType
.
nameEn
)){
if
(
this
.
editorType
.
sort
>=
0
&&
this
.
editorType
.
sort
<
10000
){
// 上传修改
this
.
typeEditorVisible
=
false
}
else
{
this
.
$message
.
error
(
'排序值不在指定范围,请输入正确的排序值!!!'
);
}
}
}
else
{
this
.
$message
.
error
(
'英文名称不正确!!!'
);
}
}
}
else
{
this
.
$message
.
error
(
'中文名称不正确!!!'
);
}
}
},
// 功能按钮
clickOperator
(
type
){
if
(
type
==
"search"
){
this
.
screenTableData
()
}
else
{
this
.
currentStatus
=
""
this
.
currentType
=
""
this
.
currentSort
=
""
this
.
screenTableData
()
}
},
changeHandleSize
(
val
)
{
// console.log(`每页 ${val} 条`);
this
.
typePagination
.
pageSize
=
val
},
changeHandleCurrent
(
val
)
{
// console.log(`当前页: ${val}`);
this
.
typePagination
.
currentPage
=
val
},
// 显示图片查看器
showPreview
(
icon
)
{
this
.
currentIcon
=
icon
;
this
.
currentIcon
.
showPreview
=
true
;
},
// 关闭图片查看器
closePreview
()
{
this
.
currentIcon
.
showPreview
=
false
;
},
},
};
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
#nebulaDynamics
{
margin
:
0
1%
0
1%
;
width
:
98%
;
height
:
auto
;
.top
{
width
:
100%
;
height
:
68px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-between
;
align-items
:
center
;
overflow
:
hidden
;
border-bottom
:
1px
solid
#eeeeee
;
.title
{
width
:
114px
;
height
:
46px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
color
:
#000000
;
overflow
:
hidden
;
}
}
#typeCreator
{
.controls
{
width
:
100%
;
width
:
296px
;
height
:
auto
;
height
:
46px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-around
;
align-items
:
center
;
overflow
:
hidden
;
.item
{
width
:
138px
;
height
:
46px
;
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
row
;
justify-content
:
flex-start
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
.content
{
background-color
:
#5178f2
;
margin-bottom
:
25px
;
border
:
1px
solid
#5178f2
;
width
:
100%
;
border-radius
:
5px
;
height
:
26px
;
color
:
#ffffff
;
display
:
flex
;
font-weight
:
400
;
flex-direction
:
row
;
cursor
:
pointer
;
justify-content
:
center
;
overflow
:
hidden
;
align-items
:
center
;
}
span
{
}
width
:
100px
;
}
height
:
26px
;
.operators
{
}
// margin: 0 1% 0 1%;
width
:
100%
;
height
:
68px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
flex-start
;
align-items
:
center
;
.status
,
.types
,
.sorts
{
width
:
auto
;
height
:
46px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
overflow
:
hidden
;
span
{
margin
:
0
10px
0
20px
;
}
}
.controls
{
margin-left
:
40px
;
width
:
260px
;
height
:
46px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-between
;
align-items
:
center
;
.item
{
width
:
120px
;
height
:
36px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
font-weight
:
400
;
color
:
#5178f2
;
border
:
1px
solid
#5178f2
;
border-radius
:
5px
;
cursor
:
pointer
;
}
}
}
.table
{
margin
:
1%
1%
0
1%
;
width
:
98%
;
height
:
auto
;
span
{
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
.icon
{
width
:
50px
;
height
:
50px
;
object-fit
:
cover
;
}
.operators
{
width
:
300px
;
height
:
46px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-around
;
align-items
:
center
;
.edit
,
.upshelf
,
.offshelf
,
.delete
{
width
:
auto
;
height
:
36px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
cursor
:
pointer
;
}
}
.operators
{
.edit
,
.upshelf
{
margin
:
25px
0
0
0
;
color
:
#1890ff
;
width
:
100%
;
}
height
:
30px
;
.offshelf
{
display
:
flex
;
color
:
#A6A9AD
;
flex-direction
:
row
;
justify-content
:
flex-start
;
align-items
:
center
;
.cancel
,
.confirm
{
margin-left
:
20px
;
width
:
82px
;
height
:
100%
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
border-radius
:
5px
;
}
.cancel
{
border
:
1px
solid
#bdbdbd
;
color
:
#000000
;
cursor
:
pointer
;
}
.confirm
{
border
:
1px
solid
#5178F2
;
background-color
:
#5178F2
;
color
:
#FFFFFF
;
cursor
:
pointer
;
}
}
}
.delete
{
color
:
#fe4066
;
}
}
}
}
}
.infoPagination
{
margin
:
1%
1%
0
1%
;
width
:
98%
;
}
}
#typeManager
{
width
:
100%
;
height
:
auto
;
.controls
{
margin
:
0
0
30px
0
;
width
:
100%
;
height
:
46px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
flex-start
;
align-items
:
center
;
.addUpdate
{
width
:
120px
;
height
:
100%
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
color
:
#5178f2
;
border
:
1px
solid
#5178f2
;
border-radius
:
5px
;
cursor
:
pointer
;
}
}
.content
{
width
:
100%
;
height
:
auto
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
flex-start
;
align-items
:
center
;
.operators
{
width
:
auto
;
height
:
16px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
space-around
;
align-items
:
center
;
.edit
,
.upshelf
,
.offshelf
,
.delete
{
width
:
auto
;
height
:
16px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
cursor
:
pointer
;
}
.edit
,
.upshelf
{
color
:
#1890ff
;
}
.offshelf
{
color
:
#A6A9AD
;
}
.delete
{
color
:
#fe4066
;
}
}
}
.typePagination
{
margin
:
30px
0
;
width
:
100%
;
}
}
#typeCreator
,
#typeEditor
{
width
:
100%
;
height
:
auto
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
flex-start
;
align-items
:
center
;
.content
{
margin-bottom
:
25px
;
width
:
100%
;
height
:
26px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
span
{
width
:
100px
;
height
:
26px
;
}
}
.operators
{
margin
:
25px
0
0
0
;
width
:
100%
;
height
:
30px
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
flex-start
;
align-items
:
center
;
.cancel
,
.confirm
{
margin-left
:
20px
;
width
:
82px
;
height
:
100%
;
display
:
flex
;
flex-direction
:
row
;
justify-content
:
center
;
align-items
:
center
;
border-radius
:
5px
;
}
.cancel
{
border
:
1px
solid
#bdbdbd
;
color
:
#000000
;
cursor
:
pointer
;
}
.confirm
{
border
:
1px
solid
#5178f2
;
background-color
:
#5178f2
;
color
:
#ffffff
;
cursor
:
pointer
;
}
}
}
</
style
>
</
style
>
\ No newline at end of file
src/views/webSiteManagement/newsCategory/newsCreator/index.vue
View file @
d12fda14
<!--
<!--
* @Author: Jenkins
* @Author: Jenkins
* @Date: 2020-12-02 14:49:10
* @Date: 2020-12-02 14:49:10
* @LastEditTime: 2020-12-0
4 13:53:59
* @LastEditTime: 2020-12-0
7 18:52:23
* @LastEditors: Please set LastEditors
* @LastEditors: Please set LastEditors
* @Description: 创建新闻
* @Description: 创建新闻
* @FilePath: \rs-cloud-platform-ui\src\views\webSiteManagement\newsCategory\newsCreator\index.vue
* @FilePath: \rs-cloud-platform-ui\src\views\webSiteManagement\newsCategory\newsCreator\index.vue
...
@@ -32,8 +32,15 @@
...
@@ -32,8 +32,15 @@
<el-form-item
label=
"*资讯类型"
>
<el-form-item
label=
"*资讯类型"
>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-select
v-model=
"form.region"
placeholder=
"请选择选择资讯类型"
>
<el-select
v-model=
"form.region"
placeholder=
"请选择选择资讯类型"
>
<el-option
label=
"类型一"
value=
"type1"
></el-option>
<el-option
<el-option
label=
"类型二"
value=
"type2"
></el-option>
v-for=
"item in types"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
<!--
<el-option
v-for=
"item in types"
:key=
"item.key"
:label=
"item.label"
:value=
"item.key"
v-show=
"types.length>0"
></el-option>
-->
<!--
<el-option
label=
"类型一"
value=
"type1"
></el-option>
<el-option
label=
"类型二"
value=
"type2"
></el-option>
-->
</el-select>
</el-select>
</el-col>
</el-col>
</el-form-item>
</el-form-item>
...
@@ -59,6 +66,11 @@
...
@@ -59,6 +66,11 @@
<
script
>
<
script
>
import
singleImageX
from
'@/components/Upload/singleImageX'
;
import
singleImageX
from
'@/components/Upload/singleImageX'
;
import
KindEditor
from
"@/components/Kindeditor"
;
import
KindEditor
from
"@/components/Kindeditor"
;
import
{
timestamp2Date
}
from
'@/utils/dateUtils'
;
import
{
uuid
}
from
"@/utils/uuid"
;
// 导入请求
import
{
addUpdateNewsInfo
,
}
from
"@/api/website/newsCategory/index"
;
export
default
{
export
default
{
name
:
'newsCreator'
,
name
:
'newsCreator'
,
components
:
{
components
:
{
...
@@ -67,7 +79,9 @@ export default {
...
@@ -67,7 +79,9 @@ export default {
},
},
data
(){
data
(){
return
{
return
{
types
:
[],
form
:
{
form
:
{
id
:
''
,
title
:
''
,
title
:
''
,
coverImg
:
''
,
coverImg
:
''
,
introduce
:
''
,
introduce
:
''
,
...
@@ -78,7 +92,15 @@ export default {
...
@@ -78,7 +92,15 @@ export default {
}
}
},
},
mounted
()
{
mounted
()
{
this
.
types
=
[]
this
.
$parent
.
regions
.
forEach
(
element
=>
{
if
(
element
.
status
==
1
){
this
.
types
.
push
({
value
:
element
.
id
,
label
:
element
.
nameCn
,
})
}
});
},
},
methods
:
{
methods
:
{
onContentChange
(
val
)
{
onContentChange
(
val
)
{
...
@@ -91,7 +113,45 @@ export default {
...
@@ -91,7 +113,45 @@ export default {
this
.
form
.
coverImg
=
url
this
.
form
.
coverImg
=
url
},
},
onSubmit
()
{
onSubmit
()
{
console
.
log
(
'submit!'
);
if
(
this
.
form
.
title
==
""
){
this
.
$message
.
error
(
'请输入资讯标题!!!'
);
}
else
if
(
this
.
form
.
coverImg
==
""
){
this
.
$message
.
error
(
'请输入上传封面图!!!'
);
}
else
if
(
this
.
form
.
introduce
==
""
){
this
.
$message
.
error
(
'请输入资讯简介!!!'
);
}
else
if
(
this
.
form
.
region
==
""
){
this
.
$message
.
error
(
'请选择选择资讯类型!!!'
);
}
else
if
(
this
.
form
.
sort
==
""
){
this
.
$message
.
error
(
'请输入序号!!!'
);
}
else
if
(
this
.
form
.
content
==
""
){
this
.
$message
.
error
(
'请输入资讯详情!!!'
);
}
else
{
// 新增新闻资讯
addUpdateNewsInfo
({
id
:
uuid
(),
title
:
this
.
form
.
title
,
detail
:
this
.
form
.
introduce
,
coverImg
:
this
.
form
.
coverImg
,
content
:
this
.
form
.
content
,
newsDate
:
timestamp2Date
((
new
Date
()).
getTime
()),
typeId
:
this
.
form
.
region
,
status
:
0
,
// 默认上传即为下架状态
indexShow
:
1
,
typeName
:
(
this
.
types
.
find
(
ele
=>
ele
.
value
==
this
.
form
.
region
)).
label
,
}).
then
((
res
)
=>
{
if
(
res
.
status
==
200
){
let
_this
=
this
this
.
$message
({
message
:
'创建成功!!!'
,
type
:
'success'
,
duration
:
2000
,
});
setTimeout
(()
=>
{
_this
.
componentName
=
"nebulaDynamics"
},
2100
);
}
});
}
}
}
},
},
}
}
...
...
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