|
|
@ -1,10 +1,10 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="mod-advanced-search-center"> |
|
|
<div class="mod-advanced-search-center"> |
|
|
<div class="page-header"> |
|
|
<div class="page-header"> |
|
|
<div class="title">高级搜索</div> |
|
|
|
|
|
|
|
|
<div class="title">高级搜索方案</div> |
|
|
<div class="actions"> |
|
|
<div class="actions"> |
|
|
<el-button :loading="schemeLoading" @click="loadSavedSchemeList">刷新</el-button> |
|
|
<el-button :loading="schemeLoading" @click="loadSavedSchemeList">刷新</el-button> |
|
|
<el-button type="primary" @click="openCreateDialog()">新建</el-button> |
|
|
|
|
|
|
|
|
<el-button type="primary" @click="openCreateDialog()">设置方案</el-button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
@ -15,6 +15,7 @@ |
|
|
class="scheme-card" |
|
|
class="scheme-card" |
|
|
v-for="row in schemeList" |
|
|
v-for="row in schemeList" |
|
|
:key="row.schemeKey" |
|
|
:key="row.schemeKey" |
|
|
|
|
|
:style="buildSchemeCardStyle(row)" |
|
|
@click="gotoSchemeResult(row)"> |
|
|
@click="gotoSchemeResult(row)"> |
|
|
<div class="count-badge">{{ row.count === null ? '-' : row.count }}</div> |
|
|
<div class="count-badge">{{ row.count === null ? '-' : row.count }}</div> |
|
|
<div class="scheme-title">{{ row.itemDesc || '未命名方案' }}</div> |
|
|
<div class="scheme-title">{{ row.itemDesc || '未命名方案' }}</div> |
|
|
@ -24,6 +25,13 @@ |
|
|
<div v-for="(line, idx) in row.conditionPreviewList" :key="idx" class="condition-line">{{ line }}</div> |
|
|
<div v-for="(line, idx) in row.conditionPreviewList" :key="idx" class="condition-line">{{ line }}</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="card-footer"> |
|
|
<div class="card-footer"> |
|
|
|
|
|
<!-- <el-button |
|
|
|
|
|
type="text" |
|
|
|
|
|
size="mini" |
|
|
|
|
|
:loading="routeResolvingKey === row.schemeKey" |
|
|
|
|
|
@click.stop="gotoSchemeResult(row)"> |
|
|
|
|
|
查看结果 |
|
|
|
|
|
</el-button>--> |
|
|
<el-button type="text" size="mini" style="color:#f56c6c" :loading="deletingKey === row.schemeKey" @click.stop="deleteScheme(row)">删除</el-button> |
|
|
<el-button type="text" size="mini" style="color:#f56c6c" :loading="deletingKey === row.schemeKey" @click.stop="deleteScheme(row)">删除</el-button> |
|
|
<el-button type="text" size="mini" @click.stop="openEditDialog(row)">编辑</el-button> |
|
|
<el-button type="text" size="mini" @click.stop="openEditDialog(row)">编辑</el-button> |
|
|
</div> |
|
|
</div> |
|
|
@ -50,6 +58,16 @@ |
|
|
<el-form-item label="方案名称"> |
|
|
<el-form-item label="方案名称"> |
|
|
<el-input v-model="editForm.itemDesc" clearable placeholder="请输入方案名称" style="width: 220px"></el-input> |
|
|
<el-input v-model="editForm.itemDesc" clearable placeholder="请输入方案名称" style="width: 220px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="方案颜色"> |
|
|
|
|
|
<el-color-picker |
|
|
|
|
|
v-model="editForm.schemeColor" |
|
|
|
|
|
:predefine="schemeColorPredefine" |
|
|
|
|
|
:show-alpha="false"> |
|
|
|
|
|
</el-color-picker> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<!-- <el-form-item label=" "> |
|
|
|
|
|
<el-checkbox v-model="editForm.caseInsensitive">不区分大小写</el-checkbox> |
|
|
|
|
|
</el-form-item>--> |
|
|
<el-form-item label=" "> |
|
|
<el-form-item label=" "> |
|
|
<el-button :loading="editLoading" @click="loadEditFields">读取菜单搜索字段</el-button> |
|
|
<el-button :loading="editLoading" @click="loadEditFields">读取菜单搜索字段</el-button> |
|
|
<el-button type="primary" :loading="editSaving" @click="saveScheme">保存</el-button> |
|
|
<el-button type="primary" :loading="editSaving" @click="saveScheme">保存</el-button> |
|
|
@ -60,8 +78,7 @@ |
|
|
ref="editFieldTable" |
|
|
ref="editFieldTable" |
|
|
:data="editFieldList" |
|
|
:data="editFieldList" |
|
|
border |
|
|
border |
|
|
stripe |
|
|
|
|
|
class="board-table" |
|
|
|
|
|
|
|
|
stripe class="board-table" |
|
|
height="50vh" |
|
|
height="50vh" |
|
|
v-loading="editLoading" |
|
|
v-loading="editLoading" |
|
|
@selection-change="handleEditSelectionChange"> |
|
|
@selection-change="handleEditSelectionChange"> |
|
|
@ -79,6 +96,25 @@ |
|
|
<el-input v-model="row.formula" clearable :disabled="!isEditRowSelected(row)"></el-input> |
|
|
<el-input v-model="row.formula" clearable :disabled="!isEditRowSelected(row)"></el-input> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
|
|
|
<!-- <el-table-column label="排序" width="110" align="center"> |
|
|
|
|
|
<template slot-scope="{ row }"> |
|
|
|
|
|
<el-select v-model="row.sortBy" clearable :disabled="!isEditRowSelected(row)"> |
|
|
|
|
|
<el-option label="升序" value="asc"></el-option> |
|
|
|
|
|
<el-option label="降序" value="desc"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column label="次序" width="100" align="center"> |
|
|
|
|
|
<template slot-scope="{ row }"> |
|
|
|
|
|
<el-input-number |
|
|
|
|
|
v-model="row.orderSeq" |
|
|
|
|
|
:min="0" |
|
|
|
|
|
:controls="false" |
|
|
|
|
|
style="width: 82px" |
|
|
|
|
|
:disabled="!isEditRowSelected(row)"> |
|
|
|
|
|
</el-input-number> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column>--> |
|
|
</el-table> |
|
|
</el-table> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
</div> |
|
|
</div> |
|
|
@ -98,7 +134,7 @@ import { |
|
|
import { resolveMenuSearchFieldsByMeta } from '../modules/sift/menuSearchFieldResolver' |
|
|
import { resolveMenuSearchFieldsByMeta } from '../modules/sift/menuSearchFieldResolver' |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
name: 'home', |
|
|
|
|
|
|
|
|
name: 'advanced-search-center', |
|
|
data () { |
|
|
data () { |
|
|
return { |
|
|
return { |
|
|
schemeLoading: false, |
|
|
schemeLoading: false, |
|
|
@ -117,8 +153,10 @@ export default { |
|
|
menuId: '', |
|
|
menuId: '', |
|
|
itemNo: null, |
|
|
itemNo: null, |
|
|
itemDesc: '', |
|
|
itemDesc: '', |
|
|
caseInsensitive: true |
|
|
|
|
|
|
|
|
caseInsensitive: true, |
|
|
|
|
|
schemeColor: '#409EFF' |
|
|
}, |
|
|
}, |
|
|
|
|
|
schemeColorPredefine: ['#409EFF', '#67C23A', '#E6A23C', '#F56C6C', '#909399', '#9C27B0', '#00ACC1', '#FF7043'], |
|
|
symbolOptions: [ |
|
|
symbolOptions: [ |
|
|
{ value: 'eq', label: '等于' }, |
|
|
{ value: 'eq', label: '等于' }, |
|
|
{ value: 'gt', label: '大于' }, |
|
|
{ value: 'gt', label: '大于' }, |
|
|
@ -140,12 +178,18 @@ export default { |
|
|
in: 'in', |
|
|
in: 'in', |
|
|
ne: '!=', |
|
|
ne: '!=', |
|
|
like: 'like' |
|
|
like: 'like' |
|
|
} |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
defaultSchemeColor: '#409EFF' |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
computed: { |
|
|
computed: { |
|
|
menuOptions () { |
|
|
menuOptions () { |
|
|
return this.menuFlatList.filter(item => item.url && !item.hasChildren && !/^https?:\/\//i.test(item.url)) |
|
|
|
|
|
|
|
|
return this.menuFlatList.filter(item => |
|
|
|
|
|
item.url && // 1. 必须有 url 属性 |
|
|
|
|
|
!item.hasChildren && // 2. 必须没有子菜单 |
|
|
|
|
|
!/^https?:\/\//i.test(item.url) && // 3. 必须不是 http/https 开头的外部链接 |
|
|
|
|
|
item.url.includes('/') // 4. [新增] url 必须包含 '/' 字符 |
|
|
|
|
|
) |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
activated () { |
|
|
activated () { |
|
|
@ -211,6 +255,90 @@ export default { |
|
|
return fieldName + ' ' + symbol + ' ' + item.formula |
|
|
return fieldName + ' ' + symbol + ' ' + item.formula |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
getSchemeColorStorageKey () { |
|
|
|
|
|
return 'advancedSearchCenterSchemeColorMap_' + String(this.$store.state.user.id || '') |
|
|
|
|
|
}, |
|
|
|
|
|
loadStoredSchemeColorMap () { |
|
|
|
|
|
try { |
|
|
|
|
|
var text = localStorage.getItem(this.getSchemeColorStorageKey()) |
|
|
|
|
|
var map = text ? JSON.parse(text) : {} |
|
|
|
|
|
return map && typeof map === 'object' ? map : {} |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
return {} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
saveStoredSchemeColorMap (map) { |
|
|
|
|
|
try { |
|
|
|
|
|
localStorage.setItem(this.getSchemeColorStorageKey(), JSON.stringify(map || {})) |
|
|
|
|
|
} catch (e) { |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
normalizeSchemeColor (color) { |
|
|
|
|
|
if (!color) { |
|
|
|
|
|
return '' |
|
|
|
|
|
} |
|
|
|
|
|
var value = String(color).trim() |
|
|
|
|
|
if (!value) { |
|
|
|
|
|
return '' |
|
|
|
|
|
} |
|
|
|
|
|
if (/^#([0-9a-fA-F]{3}){1,2}$/.test(value)) { |
|
|
|
|
|
return value.toUpperCase() |
|
|
|
|
|
} |
|
|
|
|
|
return '' |
|
|
|
|
|
}, |
|
|
|
|
|
resolveSchemeColorFromRow (row) { |
|
|
|
|
|
var source = row || {} |
|
|
|
|
|
var candidates = [ |
|
|
|
|
|
source.schemeColor, |
|
|
|
|
|
source.colorHex, |
|
|
|
|
|
source.cardColor, |
|
|
|
|
|
source.themeColor, |
|
|
|
|
|
source.color |
|
|
|
|
|
] |
|
|
|
|
|
for (var i = 0; i < candidates.length; i++) { |
|
|
|
|
|
var normalized = this.normalizeSchemeColor(candidates[i]) |
|
|
|
|
|
if (normalized) { |
|
|
|
|
|
return normalized |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return '' |
|
|
|
|
|
}, |
|
|
|
|
|
hexToRgba (hex, alpha) { |
|
|
|
|
|
var value = this.normalizeSchemeColor(hex) |
|
|
|
|
|
if (!value) { |
|
|
|
|
|
return 'rgba(64, 158, 255, ' + alpha + ')' |
|
|
|
|
|
} |
|
|
|
|
|
var color = value.slice(1) |
|
|
|
|
|
if (color.length === 3) { |
|
|
|
|
|
color = color.split('').map(char => char + char).join('') |
|
|
|
|
|
} |
|
|
|
|
|
var r = parseInt(color.slice(0, 2), 16) |
|
|
|
|
|
var g = parseInt(color.slice(2, 4), 16) |
|
|
|
|
|
var b = parseInt(color.slice(4, 6), 16) |
|
|
|
|
|
return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + alpha + ')' |
|
|
|
|
|
}, |
|
|
|
|
|
buildSchemeCardStyle (row) { |
|
|
|
|
|
var color = this.normalizeSchemeColor((row || {}).schemeColor) || this.defaultSchemeColor |
|
|
|
|
|
return { |
|
|
|
|
|
'--scheme-accent': color, |
|
|
|
|
|
'--scheme-bg-start': this.hexToRgba(color, 0.16), |
|
|
|
|
|
'--scheme-bg-end': this.hexToRgba(color, 0.04), |
|
|
|
|
|
'--scheme-border': this.hexToRgba(color, 0.28) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
upsertStoredSchemeColor (schemeKey, color) { |
|
|
|
|
|
if (!schemeKey) { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
var normalizedColor = this.normalizeSchemeColor(color) |
|
|
|
|
|
var map = this.loadStoredSchemeColorMap() |
|
|
|
|
|
if (normalizedColor) { |
|
|
|
|
|
map[schemeKey] = normalizedColor |
|
|
|
|
|
} else { |
|
|
|
|
|
delete map[schemeKey] |
|
|
|
|
|
} |
|
|
|
|
|
this.saveStoredSchemeColorMap(map) |
|
|
|
|
|
}, |
|
|
toSnakeCaseFieldName (name) { |
|
|
toSnakeCaseFieldName (name) { |
|
|
if (!name) { |
|
|
if (!name) { |
|
|
return '' |
|
|
return '' |
|
|
@ -236,6 +364,7 @@ export default { |
|
|
async loadSavedSchemeList () { |
|
|
async loadSavedSchemeList () { |
|
|
this.schemeLoading = true |
|
|
this.schemeLoading = true |
|
|
try { |
|
|
try { |
|
|
|
|
|
var storedColorMap = this.loadStoredSchemeColorMap() |
|
|
var userId = String(this.$store.state.user.id) |
|
|
var userId = String(this.$store.state.user.id) |
|
|
var summaryResp = await searchSavedSchemeSummary({ userId: userId }) |
|
|
var summaryResp = await searchSavedSchemeSummary({ userId: userId }) |
|
|
var summaryData = summaryResp && summaryResp.data ? summaryResp.data : {} |
|
|
var summaryData = summaryResp && summaryResp.data ? summaryResp.data : {} |
|
|
@ -281,11 +410,13 @@ export default { |
|
|
this.schemeList = summaryRows.map(item => { |
|
|
this.schemeList = summaryRows.map(item => { |
|
|
var key = this.buildSchemeKey(item) |
|
|
var key = this.buildSchemeKey(item) |
|
|
var menu = this.menuFlatList.find(m => String(m.menuId) === String(item.menuId)) |
|
|
var menu = this.menuFlatList.find(m => String(m.menuId) === String(item.menuId)) |
|
|
|
|
|
var rowColor = this.resolveSchemeColorFromRow(item) || this.normalizeSchemeColor(storedColorMap[key]) || this.defaultSchemeColor |
|
|
return Object.assign({}, item, { |
|
|
return Object.assign({}, item, { |
|
|
schemeKey: key, |
|
|
schemeKey: key, |
|
|
count: countMap[key] !== undefined ? countMap[key] : null, |
|
|
count: countMap[key] !== undefined ? countMap[key] : null, |
|
|
menuName: item.menuName || (menu ? menu.name : ('菜单' + item.menuId)), |
|
|
menuName: item.menuName || (menu ? menu.name : ('菜单' + item.menuId)), |
|
|
conditionPreviewList: this.buildConditionPreviewList(detailMap[key]) |
|
|
|
|
|
|
|
|
conditionPreviewList: this.buildConditionPreviewList(detailMap[key]), |
|
|
|
|
|
schemeColor: rowColor |
|
|
}) |
|
|
}) |
|
|
}) |
|
|
}) |
|
|
} catch (e) { |
|
|
} catch (e) { |
|
|
@ -343,6 +474,7 @@ export default { |
|
|
this.editForm.itemNo = row.itemNo |
|
|
this.editForm.itemNo = row.itemNo |
|
|
this.editForm.itemDesc = row.itemDesc |
|
|
this.editForm.itemDesc = row.itemDesc |
|
|
this.editForm.caseInsensitive = true |
|
|
this.editForm.caseInsensitive = true |
|
|
|
|
|
this.editForm.schemeColor = this.normalizeSchemeColor(row.schemeColor) || this.defaultSchemeColor |
|
|
this.loadEditFields() |
|
|
this.loadEditFields() |
|
|
}, |
|
|
}, |
|
|
newScheme () { |
|
|
newScheme () { |
|
|
@ -350,7 +482,8 @@ export default { |
|
|
menuId: '', |
|
|
menuId: '', |
|
|
itemNo: null, |
|
|
itemNo: null, |
|
|
itemDesc: '', |
|
|
itemDesc: '', |
|
|
caseInsensitive: true |
|
|
|
|
|
|
|
|
caseInsensitive: true, |
|
|
|
|
|
schemeColor: this.defaultSchemeColor |
|
|
} |
|
|
} |
|
|
this.editFieldList = [] |
|
|
this.editFieldList = [] |
|
|
this.editSelectedFieldNameSet = {} |
|
|
this.editSelectedFieldNameSet = {} |
|
|
@ -479,12 +612,17 @@ export default { |
|
|
this.editSaving = true |
|
|
this.editSaving = true |
|
|
try { |
|
|
try { |
|
|
var userId = String(this.$store.state.user.id) |
|
|
var userId = String(this.$store.state.user.id) |
|
|
|
|
|
var normalizedSchemeColor = this.normalizeSchemeColor(this.editForm.schemeColor) || this.defaultSchemeColor |
|
|
|
|
|
var currentItemNo = this.editForm.itemNo |
|
|
|
|
|
var currentMenuId = this.editForm.menuId |
|
|
|
|
|
var currentItemDesc = this.editForm.itemDesc.trim() |
|
|
var payload = { |
|
|
var payload = { |
|
|
menuId: this.editForm.menuId, |
|
|
menuId: this.editForm.menuId, |
|
|
userId: userId, |
|
|
userId: userId, |
|
|
dtsName: 'ADOQResult', |
|
|
dtsName: 'ADOQResult', |
|
|
itemNo: this.editForm.itemNo, |
|
|
itemNo: this.editForm.itemNo, |
|
|
itemDesc: this.editForm.itemDesc.trim(), |
|
|
itemDesc: this.editForm.itemDesc.trim(), |
|
|
|
|
|
schemeColor: normalizedSchemeColor, |
|
|
caseSensitiveFlag: this.editForm.caseInsensitive ? 'N' : 'Y', |
|
|
caseSensitiveFlag: this.editForm.caseInsensitive ? 'N' : 'Y', |
|
|
querySavedDetailList: selectedList.map(item => { |
|
|
querySavedDetailList: selectedList.map(item => { |
|
|
var normalizedItem = this.normalizeOriginalFieldForSql(item) |
|
|
var normalizedItem = this.normalizeOriginalFieldForSql(item) |
|
|
@ -508,6 +646,34 @@ export default { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
this.$message.success(data.msg || '保存成功') |
|
|
this.$message.success(data.msg || '保存成功') |
|
|
await this.loadSavedSchemeList() |
|
|
await this.loadSavedSchemeList() |
|
|
|
|
|
if (currentItemNo) { |
|
|
|
|
|
var currentKey = this.buildSchemeKey({ |
|
|
|
|
|
menuId: currentMenuId, |
|
|
|
|
|
itemNo: currentItemNo |
|
|
|
|
|
}) |
|
|
|
|
|
this.upsertStoredSchemeColor(currentKey, normalizedSchemeColor) |
|
|
|
|
|
this.schemeList = this.schemeList.map(item => { |
|
|
|
|
|
if (item.schemeKey === currentKey) { |
|
|
|
|
|
return Object.assign({}, item, { schemeColor: normalizedSchemeColor }) |
|
|
|
|
|
} |
|
|
|
|
|
return item |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
var createdRows = this.schemeList.filter(item => |
|
|
|
|
|
String(item.menuId) === String(currentMenuId) && |
|
|
|
|
|
String((item.itemDesc || '')).trim() === currentItemDesc) |
|
|
|
|
|
createdRows.forEach(item => { |
|
|
|
|
|
this.upsertStoredSchemeColor(item.schemeKey, normalizedSchemeColor) |
|
|
|
|
|
}) |
|
|
|
|
|
if (createdRows.length) { |
|
|
|
|
|
var createdMap = {} |
|
|
|
|
|
createdRows.forEach(item => { createdMap[item.schemeKey] = true }) |
|
|
|
|
|
this.schemeList = this.schemeList.map(item => |
|
|
|
|
|
createdMap[item.schemeKey] |
|
|
|
|
|
? Object.assign({}, item, { schemeColor: normalizedSchemeColor }) |
|
|
|
|
|
: item) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
if (!this.editForm.itemNo) { |
|
|
if (!this.editForm.itemNo) { |
|
|
this.newScheme() |
|
|
this.newScheme() |
|
|
} |
|
|
} |
|
|
@ -572,12 +738,13 @@ export default { |
|
|
.mod-advanced-search-center { |
|
|
.mod-advanced-search-center { |
|
|
padding: 12px; |
|
|
padding: 12px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.board-table .cell { |
|
|
.board-table .cell { |
|
|
line-height: 20px; |
|
|
line-height: 20px; |
|
|
height: 20px; |
|
|
height: 20px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.board-table { |
|
|
|
|
|
margin-top: 12px; |
|
|
|
|
|
} |
|
|
.page-header { |
|
|
.page-header { |
|
|
display: flex; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
@ -600,8 +767,8 @@ export default { |
|
|
.scheme-card { |
|
|
.scheme-card { |
|
|
position: relative; |
|
|
position: relative; |
|
|
border-radius: 10px; |
|
|
border-radius: 10px; |
|
|
border: 1px solid #ebeef5; |
|
|
|
|
|
background: linear-gradient(160deg, #ffffff, #f7f9fc); |
|
|
|
|
|
|
|
|
border: 1px solid var(--scheme-border, #ebeef5); |
|
|
|
|
|
background: linear-gradient(160deg, var(--scheme-bg-start, #ffffff), var(--scheme-bg-end, #f7f9fc)); |
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06); |
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06); |
|
|
padding: 12px; |
|
|
padding: 12px; |
|
|
cursor: pointer; |
|
|
cursor: pointer; |
|
|
@ -620,7 +787,7 @@ export default { |
|
|
min-width: 28px; |
|
|
min-width: 28px; |
|
|
padding: 2px 8px; |
|
|
padding: 2px 8px; |
|
|
border-radius: 12px; |
|
|
border-radius: 12px; |
|
|
background: #1abc9c; |
|
|
|
|
|
|
|
|
background: var(--scheme-accent, #1abc9c); |
|
|
color: #fff; |
|
|
color: #fff; |
|
|
font-size: 12px; |
|
|
font-size: 12px; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
@ -671,4 +838,3 @@ export default { |
|
|
margin-top: 8px; |
|
|
margin-top: 8px; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
|
|
|
|