Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
so-manage-ui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
smart-operation
so-manage-ui
Commits
9f57ca73
Commit
9f57ca73
authored
May 06, 2023
by
白舜
🎱
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重构能力推荐管理功能,修复之前的bug
parent
c2cf6ba7
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
159 additions
and
106 deletions
+159
-106
src/components/ability-card.vue
src/components/ability-card.vue
+39
-15
src/components/ability-list.vue
src/components/ability-list.vue
+26
-13
src/page/main/home-config/recommend/edit/index.vue
src/page/main/home-config/recommend/edit/index.vue
+94
-78
No files found.
src/components/ability-card.vue
View file @
9f57ca73
...
@@ -2,25 +2,46 @@
...
@@ -2,25 +2,46 @@
<div
class=
"item_card"
:style=
"
{ height: props.flag ? '242px' : '206px' }">
<div
class=
"item_card"
:style=
"
{ height: props.flag ? '242px' : '206px' }">
<div
class=
"action_box"
v-if=
"props.flag"
>
<div
class=
"action_box"
v-if=
"props.flag"
>
<div
class=
"can_click_text"
@
click=
"deleteItem(props.item)"
>
删除
</div>
<div
class=
"can_click_text"
@
click=
"deleteItem(props.item)"
>
删除
</div>
<div
class=
"can_click_text"
@
click=
"move(1)"
:class=
"props.item.canDown ? '' : 'disabled'"
>
下移
</div>
<div
class=
"can_click_text"
@
click=
"move(1)"
:class=
"props.item.canDown ? '' : 'disabled'"
>
<div
class=
"can_click_text"
@
click=
"move(2)"
:class=
"props.item.canUp ? '' : 'disabled'"
>
上移
</div>
下移
</div>
<div
class=
"can_click_text"
@
click=
"move(2)"
:class=
"props.item.canUp ? '' : 'disabled'"
>
上移
</div>
</div>
</div>
<div
class=
"top_info"
:style=
"
{ 'padding-left': !props.flag ? '8px' : '24px' }">
<div
class=
"top_info"
:style=
"
{ 'padding-left': !props.flag ? '8px' : '24px' }">
<template
v-if=
"props.item.isSelected"
>
<el-checkbox
v-if=
"!props.flag"
class=
"select_box"
v-model=
"props.item.isSelected"
:disabled=
"props.item.isSelected"
@
change=
"changeSelectedList"
></el-checkbox>
</
template
>
<el-checkbox
<el-checkbox
v-if=
"!props.flag"
v-
else-
if=
"!props.flag"
class=
"select_box"
class=
"select_box"
v-model=
"
props.item.
checked"
v-model=
"checked"
@
change=
"change
_check
"
></el-checkbox>
@
change=
"change
SelectedList
"
></el-checkbox>
<div
class=
"logo"
>
<div
class=
"logo"
>
<img
v-if=
"props.item.ability_logo"
:src=
"JSON.parse(props.item.ability_logo)[0].url"
alt=
""
/>
<img
v-if=
"props.item.ability_logo !== '[]'"
:src=
"JSON.parse(props.item.ability_logo)[0].url"
alt=
""
/>
<img
v-else
src=
"../assets/imgs/img_cover_ability.png"
alt=
""
/>
<img
v-else
src=
"../assets/imgs/img_cover_ability.png"
alt=
""
/>
</div>
</div>
<div
class=
"info"
>
<div
class=
"info"
>
<div
class=
"name"
>
<div
class=
"name"
>
<el-tooltip
class=
"box-item"
effect=
"light"
:content=
"props.item.ability_name"
placement=
"top"
>
<el-tooltip
class=
"box-item"
effect=
"light"
:content=
"props.item.ability_name"
placement=
"top"
>
<span
class=
"ability_name"
>
{{ props.item.ability_name }}
</span>
<span
class=
"ability_name"
>
{{ props.item.ability_name }}
</span>
</el-tooltip>
</el-tooltip>
<span
class=
"icon_box openness"
:class=
"openClassObj[props.item.openness_id]"
>
{{
props
.
item
.
openness
}}
</span>
<span
class=
"icon_box openness"
:class=
"openClassObj[props.item.openness_id]"
>
{{
props.item.openness
}}
</span>
<span
class=
"icon_box mock"
v-if=
"props.item.include_mock_service"
>
mock
</span>
<span
class=
"icon_box mock"
v-if=
"props.item.include_mock_service"
>
mock
</span>
</div>
</div>
<div
class=
"count"
>
<div
class=
"count"
>
...
@@ -33,7 +54,8 @@
...
@@ -33,7 +54,8 @@
<div
class=
"line"
></div>
<div
class=
"line"
></div>
<div
class=
"box2"
>
<div
class=
"box2"
>
阅读{{
阅读{{
props
.
item
.
browse_count
==
0
||
(
props
.
item
.
browse_count
&&
props
.
item
.
browse_count
<
10000
)
props.item.browse_count == 0 ||
(props.item.browse_count
&&
props.item.browse_count
<
10000
)
?
props
.
item
.
browse_count
?
props
.
item
.
browse_count
:
props
.
item
.
browse_count
<
10000000
:
props
.
item
.
browse_count
<
10000000
?
Math
.
floor
(
props
.
item
.
browse_count
/
10000
)
+
"万+"
?
Math
.
floor
(
props
.
item
.
browse_count
/
10000
)
+
"万+"
...
@@ -53,7 +75,9 @@
...
@@ -53,7 +75,9 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"bottom_info"
:style=
"
{ height: props.flag ? 'calc(100% - 128px)' : 'calc(100% - 92px)' }">
<div
class=
"bottom_info"
:style=
"{ height: props.flag ? 'calc(100% - 128px)' : 'calc(100% - 92px)' }"
>
<div
class=
"desc"
:title=
"props.item.synopsis"
>
<div
class=
"desc"
:title=
"props.item.synopsis"
>
{{ props.item.synopsis }}
{{ props.item.synopsis }}
</div>
</div>
...
@@ -68,8 +92,9 @@
...
@@ -68,8 +92,9 @@
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
ref
}
from
"
vue
"
;
import
{
useRouter
}
from
"
vue-router
"
;
import
{
useRouter
}
from
"
vue-router
"
;
const
checked
=
ref
(
false
);
const
router
=
useRouter
();
const
router
=
useRouter
();
const
props
=
defineProps
({
const
props
=
defineProps
({
item
:
{
item
:
{
...
@@ -81,7 +106,7 @@ const props = defineProps({
...
@@ -81,7 +106,7 @@ const props = defineProps({
default
:
false
,
default
:
false
,
},
},
});
});
const
emit
=
defineEmits
([
"
change
_check
"
,
"
deleteItem
"
,
"
move
"
]);
const
emit
=
defineEmits
([
"
change
SelectedList
"
,
"
deleteItem
"
,
"
move
"
]);
const
openClassObj
=
{
const
openClassObj
=
{
"
9de06ba6-6ee2-4449-91d9-31a1c7554311
"
:
"
open
"
,
"
9de06ba6-6ee2-4449-91d9-31a1c7554311
"
:
"
open
"
,
"
4e8b4c37-e565-4195-8303-3b1ccd48dd13
"
:
"
share
"
,
"
4e8b4c37-e565-4195-8303-3b1ccd48dd13
"
:
"
share
"
,
...
@@ -89,9 +114,8 @@ const openClassObj = {
...
@@ -89,9 +114,8 @@ const openClassObj = {
"
4e8b4c37-e565-4195-8303-3b1ccd48dd16
"
:
"
sensitive
"
,
"
4e8b4c37-e565-4195-8303-3b1ccd48dd16
"
:
"
sensitive
"
,
};
};
const
change_check
=
()
=>
{
const
changeSelectedList
=
()
=>
{
console
.
log
(
props
.
item
);
emit
(
"
changeSelectedList
"
,
props
.
item
,
checked
.
value
);
emit
(
"
change_check
"
,
props
.
item
);
};
};
const
deleteItem
=
(
item
)
=>
{
const
deleteItem
=
(
item
)
=>
{
emit
(
"
deleteItem
"
,
item
);
emit
(
"
deleteItem
"
,
item
);
...
...
src/components/ability-list.vue
View file @
9f57ca73
<
template
>
<
template
>
<div
v-if=
"!props.flag && props.loading === true"
>
<div
class=
"empty-tips"
>
数据加载中...
</div>
</div>
<div
class=
"card_list"
>
<div
class=
"card_list"
>
<div
v-for=
"(e, i) in props.list"
:key=
"'card' + i"
class=
"item"
>
<template
v-if=
"props.list.length > 0"
>
<ability-card
<div
v-for=
"(item, i) in props.list"
:key=
"'card' + i"
class=
"item"
>
v-if=
"e.id"
<ability-card
:item=
"e"
:item=
"item"
@
change_check=
"changeCheck"
@
change-selected-list=
"changeSelectedList"
:flag=
"props.flag"
:flag=
"props.flag"
@
deleteItem=
"deleteItem"
@
deleteItem=
"deleteItem"
@
move=
"move"
/>
@
move=
"move"
/>
<div
v-else
class=
"empty_card"
@
click=
"open"
>
</div>
</
template
>
<div
class=
"item"
v-if=
"props.flag"
>
<div
v-if=
"props.list.length < 9"
class=
"empty_card"
@
click=
"open"
>
<span>
+
</span>
<span>
+
</span>
</div>
</div>
</div>
</div>
...
@@ -26,13 +32,16 @@ const props = defineProps({
...
@@ -26,13 +32,16 @@ const props = defineProps({
type
:
Boolean
,
type
:
Boolean
,
default
:
false
,
default
:
false
,
},
},
loading
:
{
type
:
Boolean
,
default
:
false
,
}
});
});
const
emit
=
defineEmits
([
"
change
Check
"
,
"
openBox
"
,
"
deleteItem
"
,
"
move
"
]);
const
emit
=
defineEmits
([
"
change
SelectedList
"
,
"
openBox
"
,
"
deleteItem
"
,
"
move
"
]);
const
change
Check
=
(
item
)
=>
{
const
change
SelectedList
=
(
item
,
checked
)
=>
{
emit
(
"
change
Check
"
,
item
);
emit
(
"
change
SelectedList
"
,
item
,
checked
);
};
};
const
open
=
()
=>
{
const
open
=
()
=>
{
console
.
log
(
3333
);
emit
(
"
openBox
"
);
emit
(
"
openBox
"
);
};
};
const
deleteItem
=
(
item
)
=>
{
const
deleteItem
=
(
item
)
=>
{
...
@@ -67,5 +76,9 @@ const move = (temp) => {
...
@@ -67,5 +76,9 @@ const move = (temp) => {
font-size
:
48px
;
font-size
:
48px
;
font-weight
:
100
;
font-weight
:
100
;
}
}
.empty-tips
{
text-align
:
center
;
}
}
}
</
style
>
</
style
>
src/page/main/home-config/recommend/edit/index.vue
View file @
9f57ca73
This diff is collapsed.
Click to expand it.
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