|
|
|
|
@ -529,12 +529,30 @@
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item v-show="showFields.fundChannel" label="资金渠道" prop="moneyWay" :rules="[{ required: true, message: '请选择资金渠道', trigger: 'submit' }]">
|
|
|
|
|
<Select v-model="form.moneyWay" placeholder="请选择资金渠道" style="width: 100%" multiple>
|
|
|
|
|
<Option v-for="item in moneyWay" :key="item.id" :value="item.id">{{ item.value }}</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
<div v-if="form.moneyWay && form.moneyWay.length > 0" class="money-way-tags">
|
|
|
|
|
<el-tag v-for="id in form.moneyWay" :key="id" closable @close="removeMoneyWay(id)">
|
|
|
|
|
{{ getMoneyWayName(id) }}
|
|
|
|
|
<div class="money-way-tree-container">
|
|
|
|
|
<el-tree
|
|
|
|
|
ref="moneyWayTree"
|
|
|
|
|
:data="planTypes"
|
|
|
|
|
:props="defaultProps"
|
|
|
|
|
show-checkbox
|
|
|
|
|
node-key="id"
|
|
|
|
|
:default-checked-keys="form.moneyWay || []"
|
|
|
|
|
:check-strictly="false"
|
|
|
|
|
style="width: 100%; max-height: 200px; overflow: auto; border: 1px solid #dcdfe6; border-radius: 4px; padding: 10px;"
|
|
|
|
|
@check="handleMoneyWayCheck"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="selectedMoneyWayLabels.length > 0" class="selected-money-way" style="margin-top: 10px;">
|
|
|
|
|
<div style="margin-bottom: 5px; font-size: 12px; color: #606266;">已选择:</div>
|
|
|
|
|
<el-tag
|
|
|
|
|
v-for="(item, index) in selectedMoneyWayLabels"
|
|
|
|
|
:key="index"
|
|
|
|
|
closable
|
|
|
|
|
size="small"
|
|
|
|
|
style="margin-right: 5px; margin-bottom: 5px;"
|
|
|
|
|
@close="removeMoneyWay(item.id)"
|
|
|
|
|
>
|
|
|
|
|
{{ item.label }}
|
|
|
|
|
</el-tag>
|
|
|
|
|
</div>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
@ -640,22 +658,15 @@
|
|
|
|
|
</Modal>
|
|
|
|
|
|
|
|
|
|
<!-- 搜索使用 预算计划 -->
|
|
|
|
|
<xy-dialog :is-show.sync="isShowPlanForSearch" title="预算计划" :width="720" @on-ok="planSelectForSearch">
|
|
|
|
|
<xy-dialog :is-show.sync="isShowPlanForSearch" title="预算计划" width="60" @on-ok="planSelectForSearch">
|
|
|
|
|
<template v-slot:normalContent>
|
|
|
|
|
<div class="search-controls">
|
|
|
|
|
<Input
|
|
|
|
|
v-model="planSearch.name"
|
|
|
|
|
search
|
|
|
|
|
enter-button="搜 索"
|
|
|
|
|
placeholder="搜索预算计划名称"
|
|
|
|
|
style="width: 300px; margin-right: 10px"
|
|
|
|
|
@on-search="searchBudgets"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<Select
|
|
|
|
|
v-model="planSearch.plan_department_id"
|
|
|
|
|
placeholder="选择部门"
|
|
|
|
|
style="width: 200px; margin-right: 10px"
|
|
|
|
|
style="width: 220px; margin-right: 10px"
|
|
|
|
|
clearable
|
|
|
|
|
@on-change="searchBudgets"
|
|
|
|
|
>
|
|
|
|
|
@ -671,7 +682,7 @@
|
|
|
|
|
<Select
|
|
|
|
|
v-model="planSearch.year"
|
|
|
|
|
placeholder="选择年份"
|
|
|
|
|
style="width: 120px"
|
|
|
|
|
style="width: 120px;margin-right: 10px"
|
|
|
|
|
clearable
|
|
|
|
|
@on-change="searchBudgets"
|
|
|
|
|
>
|
|
|
|
|
@ -683,6 +694,13 @@
|
|
|
|
|
{{ year }}
|
|
|
|
|
</Option>
|
|
|
|
|
</Select>
|
|
|
|
|
<Input
|
|
|
|
|
v-model="planSearch.name"
|
|
|
|
|
search
|
|
|
|
|
enter-button="搜 索"
|
|
|
|
|
placeholder="搜索预算计划名称"
|
|
|
|
|
@on-search="searchBudgets"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="margin: 10px 0;display: flex;justify-content: space-between;align-items: center;">
|
|
|
|
|
<div>已选择:<span style="margin-right:10px; color: #409EFF; font-weight: 500;">{{ select.plan_name || '未选择' }}</span></div>
|
|
|
|
|
@ -713,7 +731,7 @@
|
|
|
|
|
</xy-dialog>
|
|
|
|
|
|
|
|
|
|
<!-- 新增表 预算计划 -->
|
|
|
|
|
<xy-dialog :is-show.sync="isShowPlan" :width="720" title="预算计划" @on-ok="planSelect">
|
|
|
|
|
<xy-dialog :is-show.sync="isShowPlan" width="60" title="预算计划" @on-ok="planSelect">
|
|
|
|
|
<template v-slot:normalContent>
|
|
|
|
|
<div style="display: flex;">
|
|
|
|
|
<el-select
|
|
|
|
|
@ -723,7 +741,7 @@
|
|
|
|
|
size="small"
|
|
|
|
|
multiple
|
|
|
|
|
collapse-tags
|
|
|
|
|
style="width: 220px;"
|
|
|
|
|
style="width: 220px;margin-right: 10px"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in departments"
|
|
|
|
|
@ -732,8 +750,8 @@
|
|
|
|
|
:value="item.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
<el-date-picker size="small" type="year" placeholder="请选择年份" v-model="planSearch.year"
|
|
|
|
|
format="yyyy" value-format="yyyy"></el-date-picker>
|
|
|
|
|
<el-date-picker size="small" type="year" placeholder="请选择年份" v-model="planSearch.year"
|
|
|
|
|
format="yyyy" value-format="yyyy" style="width: 120px;margin-right: 10px"></el-date-picker>
|
|
|
|
|
<Input
|
|
|
|
|
v-model="planSearch.name"
|
|
|
|
|
enter-button="搜 索"
|
|
|
|
|
@ -832,6 +850,9 @@ import {
|
|
|
|
|
import {
|
|
|
|
|
getparameter
|
|
|
|
|
} from '@/api/system/dictionary'
|
|
|
|
|
import {
|
|
|
|
|
index as getPlanType
|
|
|
|
|
} from '@/api/budget/plantype.js'
|
|
|
|
|
import {
|
|
|
|
|
getContractCategoryTemplateBaseConfig,
|
|
|
|
|
getContractCategoryTemplateConfigParams,
|
|
|
|
|
@ -847,7 +868,8 @@ import {
|
|
|
|
|
getOatoken
|
|
|
|
|
} from '@/api/oatoken'
|
|
|
|
|
import {
|
|
|
|
|
parseTime
|
|
|
|
|
parseTime,
|
|
|
|
|
buildTree
|
|
|
|
|
} from '@/utils'
|
|
|
|
|
import {
|
|
|
|
|
Message
|
|
|
|
|
@ -1430,19 +1452,28 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
planTypes: [],
|
|
|
|
|
// 树形选择相关数据
|
|
|
|
|
defaultProps: {
|
|
|
|
|
children: 'children',
|
|
|
|
|
label: 'name'
|
|
|
|
|
},
|
|
|
|
|
// 已选择的资金列支渠道标签
|
|
|
|
|
selectedMoneyWayLabels: [],
|
|
|
|
|
planTableSearch: [{
|
|
|
|
|
label: '分类',
|
|
|
|
|
prop: 'type',
|
|
|
|
|
formatter: (cell, data, value) => {
|
|
|
|
|
const res = this.moneyWay.filter(item => {
|
|
|
|
|
return item.id === value
|
|
|
|
|
})
|
|
|
|
|
return res[0]?.value || '未知'
|
|
|
|
|
}
|
|
|
|
|
label: '预算类型',
|
|
|
|
|
prop: 'type_detail.name',
|
|
|
|
|
width:220,
|
|
|
|
|
// formatter: (cell, data, value) => {
|
|
|
|
|
// const res = this.moneyWay.filter(item => {
|
|
|
|
|
// return item.id === value
|
|
|
|
|
// })
|
|
|
|
|
// return res[0]?.value || '未知'
|
|
|
|
|
// }
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
label: '年份',
|
|
|
|
|
prop: 'year',
|
|
|
|
|
width: 100,
|
|
|
|
|
align: 'center'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -1460,7 +1491,7 @@ export default {
|
|
|
|
|
const m1 = row.money
|
|
|
|
|
const m2 = row.update_money
|
|
|
|
|
|
|
|
|
|
return m2 == 0 ? m1 : m2
|
|
|
|
|
return (!m2 || m2 == 0) ? m1 : m2
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
@ -1479,7 +1510,7 @@ export default {
|
|
|
|
|
// })
|
|
|
|
|
// return res[0]?.value || '未知'
|
|
|
|
|
// },
|
|
|
|
|
width: 100,
|
|
|
|
|
width: 220,
|
|
|
|
|
fixed: 'left'
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
@ -1516,7 +1547,7 @@ export default {
|
|
|
|
|
const m1 = row.money
|
|
|
|
|
const m2 = row.update_money
|
|
|
|
|
|
|
|
|
|
return m2 == 0 ? m1 : m2
|
|
|
|
|
return (!m2 || m2 == 0) ? m1 : m2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
@ -1639,6 +1670,7 @@ export default {
|
|
|
|
|
this.getDepartment(-1)
|
|
|
|
|
this.getPurchaseWay()
|
|
|
|
|
this.getMoneyWay()
|
|
|
|
|
this.getPlanTypes()
|
|
|
|
|
this.initAvailableYears()
|
|
|
|
|
|
|
|
|
|
// 页面激活后刷新合同列表
|
|
|
|
|
@ -1670,11 +1702,18 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
async getPlanTypes() {
|
|
|
|
|
const res = await getparameter({
|
|
|
|
|
number: 'money_way'
|
|
|
|
|
const res = await getPlanType({
|
|
|
|
|
page_size: 999,
|
|
|
|
|
page: 1,
|
|
|
|
|
sort_name: 'sort',
|
|
|
|
|
sort_type: 'asc',
|
|
|
|
|
filter: [{
|
|
|
|
|
key: 'year',
|
|
|
|
|
op: 'eq',
|
|
|
|
|
value: this.$moment().format('YYYY'),
|
|
|
|
|
}]
|
|
|
|
|
})
|
|
|
|
|
this.planTypes = res.detail
|
|
|
|
|
console.log(this.planTypes)
|
|
|
|
|
this.planTypes = buildTree(res.data)
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 预算计划金额输入
|
|
|
|
|
@ -2105,9 +2144,16 @@ export default {
|
|
|
|
|
this.isShowPlan = true
|
|
|
|
|
await this.getBudgets()
|
|
|
|
|
},
|
|
|
|
|
showPlanForSearch() {
|
|
|
|
|
this.isShowPlanForSearch = true
|
|
|
|
|
this.getBudgets()
|
|
|
|
|
showPlanForSearch(type) {
|
|
|
|
|
if (type === 'modal') {
|
|
|
|
|
// 表单中选择预算计划,显示表单用的弹出框
|
|
|
|
|
this.isShowPlan = true
|
|
|
|
|
this.getBudgets()
|
|
|
|
|
} else {
|
|
|
|
|
// 搜索中选择预算计划,显示搜索用的弹出框
|
|
|
|
|
this.isShowPlanForSearch = true
|
|
|
|
|
this.getBudgets()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
selectPlanForSearch(sel, row) {
|
|
|
|
|
console.log(sel,row)
|
|
|
|
|
@ -2138,38 +2184,41 @@ export default {
|
|
|
|
|
label: item.name,
|
|
|
|
|
value: {
|
|
|
|
|
plan_id: item.id,
|
|
|
|
|
use_money: item.useMoney,
|
|
|
|
|
use_money: item.useMoney || 0,
|
|
|
|
|
new_money: item.money
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
this.plan = [...this.form.plan, ...select]
|
|
|
|
|
// 直接替换 form.plan,避免重复添加
|
|
|
|
|
this.form.plan = select
|
|
|
|
|
// 同时更新临时变量用于显示
|
|
|
|
|
this.plan = this.form.plan
|
|
|
|
|
} else {
|
|
|
|
|
this.plan = this.form.plan
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 确认计划选择
|
|
|
|
|
planSelect() {
|
|
|
|
|
if (this.plan.length === 0) {
|
|
|
|
|
if (this.form.plan.length === 0) {
|
|
|
|
|
Message({
|
|
|
|
|
type: 'warning',
|
|
|
|
|
message: '选择计划不能为空'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
for (const item of this.plan) {
|
|
|
|
|
if (!item.value.use_money) {
|
|
|
|
|
Message({
|
|
|
|
|
type: 'warning',
|
|
|
|
|
message: '金额不能为空'
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 设置表单数据
|
|
|
|
|
this.form.plan = this.plan
|
|
|
|
|
// 设置显示文本,使用换行符分隔
|
|
|
|
|
this.form.plan_display = this.plan.map(item => item.label).join('\n')
|
|
|
|
|
|
|
|
|
|
// for (const item of this.form.plan) {
|
|
|
|
|
// if (!item.value.use_money) {
|
|
|
|
|
// Message({
|
|
|
|
|
// type: 'warning',
|
|
|
|
|
// message: '金额不能为空'
|
|
|
|
|
// })
|
|
|
|
|
// return
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// 设置显示文本,使用逗号分隔
|
|
|
|
|
this.form.plan_display = this.form.plan.map(item => item.label).join(', ')
|
|
|
|
|
// 关闭对话框
|
|
|
|
|
this.isShowPlan = false
|
|
|
|
|
},
|
|
|
|
|
@ -2944,6 +2993,17 @@ export default {
|
|
|
|
|
this.purchaseFormOptions = []
|
|
|
|
|
this.purchaseSubFormOptions = []
|
|
|
|
|
this.purchaseMethodOptions = []
|
|
|
|
|
|
|
|
|
|
// 清空资金渠道选择
|
|
|
|
|
this.selectedMoneyWayLabels = []
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
if (this.$refs.moneyWayTree) {
|
|
|
|
|
this.$refs.moneyWayTree.setCheckedKeys([])
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 清空预算计划选择
|
|
|
|
|
this.plan = []
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 获取分类配置
|
|
|
|
|
@ -3096,12 +3156,12 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
// 新增方法:移除预算计划
|
|
|
|
|
removePlan(item) {
|
|
|
|
|
// 从 plan 数组中移除
|
|
|
|
|
this.plan = this.plan.filter(p => p.value.plan_id !== item.value.plan_id)
|
|
|
|
|
// 从 form.plan 中移除
|
|
|
|
|
this.form.plan = this.form.plan.filter(p => p.value.plan_id !== item.value.plan_id)
|
|
|
|
|
// 同时更新临时变量
|
|
|
|
|
this.plan = this.form.plan
|
|
|
|
|
// 更新显示文本
|
|
|
|
|
this.form.plan_display = this.plan.map(p => p.label).join(', ')
|
|
|
|
|
this.form.plan_display = this.form.plan.map(p => p.label).join(', ')
|
|
|
|
|
},
|
|
|
|
|
// 切换到事后支付表格
|
|
|
|
|
nextPaymentStep() {
|
|
|
|
|
@ -3141,15 +3201,77 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
this.form.showAfterPayment = true
|
|
|
|
|
},
|
|
|
|
|
// 获取资金渠道名称的方法
|
|
|
|
|
getMoneyWayName(id) {
|
|
|
|
|
const way = this.moneyWay.find(item => item.id === id)
|
|
|
|
|
return way ? way.value : ''
|
|
|
|
|
// 处理资金列支渠道树形选择
|
|
|
|
|
handleMoneyWayCheck(data, checkedInfo) {
|
|
|
|
|
const { checkedKeys, checkedNodes } = checkedInfo
|
|
|
|
|
|
|
|
|
|
// 过滤出叶子节点(没有子级的节点)
|
|
|
|
|
const leafNodes = checkedNodes.filter(node => !node.children || node.children.length === 0)
|
|
|
|
|
|
|
|
|
|
// 更新选中的值
|
|
|
|
|
this.form.moneyWay = leafNodes.map(node => node.id)
|
|
|
|
|
|
|
|
|
|
// 更新显示的标签
|
|
|
|
|
this.selectedMoneyWayLabels = leafNodes.map(node => ({
|
|
|
|
|
id: node.id,
|
|
|
|
|
label: node.name
|
|
|
|
|
}))
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 移除资金渠道
|
|
|
|
|
// 移除已选择的资金列支渠道
|
|
|
|
|
removeMoneyWay(id) {
|
|
|
|
|
this.form.moneyWay = this.form.moneyWay.filter(item => item !== id)
|
|
|
|
|
// 从选中数组中移除
|
|
|
|
|
const index = this.form.moneyWay.indexOf(id)
|
|
|
|
|
if (index > -1) {
|
|
|
|
|
this.form.moneyWay.splice(index, 1)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 从标签数组中移除
|
|
|
|
|
const labelIndex = this.selectedMoneyWayLabels.findIndex(item => item.id === id)
|
|
|
|
|
if (labelIndex > -1) {
|
|
|
|
|
this.selectedMoneyWayLabels.splice(labelIndex, 1)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 更新树形组件的选中状态
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
if (this.$refs.moneyWayTree) {
|
|
|
|
|
this.$refs.moneyWayTree.setCheckedKeys(this.form.moneyWay)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 更新已选择的资金列支渠道标签
|
|
|
|
|
updateSelectedMoneyWayLabels() {
|
|
|
|
|
if (!this.form.moneyWay || this.form.moneyWay.length === 0) {
|
|
|
|
|
this.selectedMoneyWayLabels = []
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 根据选中的ID数组,从planTypes中查找对应的节点信息
|
|
|
|
|
const selectedNodes = []
|
|
|
|
|
const findNodes = (nodes, ids) => {
|
|
|
|
|
nodes.forEach(node => {
|
|
|
|
|
if (ids.includes(node.id)) {
|
|
|
|
|
selectedNodes.push({
|
|
|
|
|
id: node.id,
|
|
|
|
|
label: node.name
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
if (node.children && node.children.length > 0) {
|
|
|
|
|
findNodes(node.children, ids)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
findNodes(this.planTypes, this.form.moneyWay)
|
|
|
|
|
this.selectedMoneyWayLabels = selectedNodes
|
|
|
|
|
|
|
|
|
|
// 更新树形组件的选中状态
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
if (this.$refs.moneyWayTree) {
|
|
|
|
|
this.$refs.moneyWayTree.setCheckedKeys(this.form.moneyWay)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 获取科室名称的方法
|
|
|
|
|
@ -3295,6 +3417,11 @@ export default {
|
|
|
|
|
this.form.plan_display = this.form.plan.map(item => item.label).join(', ')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 更新资金渠道标签显示
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.updateSelectedMoneyWayLabels()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 如果是从付款登记进入,手动触发流程
|
|
|
|
|
if (isFromPayment) {
|
|
|
|
|
this.disablePrevStep = true
|
|
|
|
|
@ -3365,6 +3492,11 @@ export default {
|
|
|
|
|
this.form.plan_display = this.form.plan.map(item => item.label).join(', ')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 更新资金渠道标签显示
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.updateSelectedMoneyWayLabels()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 确保停留在第一步
|
|
|
|
|
this.currentStep = 1
|
|
|
|
|
}
|
|
|
|
|
@ -4041,6 +4173,42 @@ export default {
|
|
|
|
|
background-color: #f8f9fa;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 资金列支渠道树形选择组件样式
|
|
|
|
|
.money-way-tree-container {
|
|
|
|
|
::v-deep .el-tree {
|
|
|
|
|
.el-tree-node__content {
|
|
|
|
|
height: 32px;
|
|
|
|
|
line-height: 32px;
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
background-color: #f5f7fa;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-tree-node__label {
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-checkbox {
|
|
|
|
|
margin-right: 8px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.selected-money-way {
|
|
|
|
|
.el-tag {
|
|
|
|
|
background-color: #e1f3d8;
|
|
|
|
|
border-color: #67c23a;
|
|
|
|
|
color: #67c23a;
|
|
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
background-color: #f0f9ff;
|
|
|
|
|
border-color: #409eff;
|
|
|
|
|
color: #409eff;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|