<template>
|
<div>
|
<a-spin :spinning="loading">
|
<div class="todo-container">
|
<el-dropdown
|
v-for="(item, index) in todoList"
|
:key="index"
|
class="todo-item"
|
@click.native="handelDetail(item)"
|
>
|
<span class="todo-title" >{{ item.description }}</span>
|
<!-- <el-dropdown-menu slot="dropdown">-->
|
<!-- <el-dropdown-item @click.native="handelDetail(item)">执行/审批</el-dropdown-item>-->
|
<!-- </el-dropdown-menu>-->
|
<div class="todo-info">
|
<div class="todo-node">{{ item.name }}</div>
|
<div class="todo-time">{{ item.createTime }}</div>
|
</div>
|
</el-dropdown>
|
</div>
|
</a-spin>
|
|
<AssignFileStreamHandle
|
ref='modalFormApproval'
|
:selectShenpiData='selectShenpiData'
|
@searchReset='searchReset'
|
></AssignFileStreamHandle>
|
<DispatchFileHandle
|
ref='modalFormDispatchFileXq'
|
:selectShenpiData='selectDispatchFileXqData'
|
@searchReset='searchReset'
|
></DispatchFileHandle>
|
<StandardizedProcessHandle
|
ref='StandardizedProcessHandle'
|
:selectShenpiData='selectDispatchFileXqData'
|
@searchReset='searchReset'
|
></StandardizedProcessHandle>
|
<DispatchFileBachHandleStyle
|
ref='modalFormDispatchFileBatch'
|
@ok='modalFormOk'
|
@searchReset='searchReset'
|
></DispatchFileBachHandleStyle>
|
<!--单个流程处理-->
|
<InspectionOrderHandle
|
ref='modalFormInspectionOrder'
|
:selectShenpiData='selectInspectionOrderData'
|
@searchReset='searchReset'
|
></InspectionOrderHandle>
|
<week-maintenance-approval-modal
|
ref='weekMaintenanceApprovalModal'
|
:selectShenpiData='selectWeekMaintenanceData'
|
@searchReset='searchReset'
|
></week-maintenance-approval-modal>
|
<repair-order-approval-modal
|
ref='repairOrderApprovalModal'
|
:selectShenpiData='selectRepairOrderData'
|
@searchReset='searchReset'
|
></repair-order-approval-modal>
|
<out-bound-order-handle
|
ref='outBoundOrderHandle'
|
:selectShenpiData='selectOutBoundOrderData'
|
@searchReset='searchReset'
|
></out-bound-order-handle>
|
<stocktaking-bound-handle
|
ref='stocktakingBoundHandle'
|
:selectShenpiData='selectStocktakingBoundOrderData'
|
@searchReset='searchReset'
|
></stocktaking-bound-handle>
|
|
<loss-bound-handle
|
ref='lossBoundHandle'
|
:selectShenpiData='selectLossBoundOrderData'
|
@searchReset='searchReset'
|
></loss-bound-handle>
|
|
<!--批量处理-->
|
<inspection-order-batch-handle
|
ref='inspectionOrderBatchHandleRef'
|
:taskList='selectionRows'
|
@searchReset='searchReset'
|
/>
|
|
<week-maintenance-batch-approval-modal
|
ref='weenMaintenanceBatchApprovalModalRef'
|
:taskList='selectionRows'
|
@searchReset='searchReset'
|
/>
|
<equipment-lean-out-approval-modal
|
ref='equipmentLeanOutApprovalModelRef'
|
@searchReset='searchReset'
|
/>
|
<equipment-return-approval-modal
|
ref='equipmentReturnApprovalModelRef'
|
@searchReset='searchReset'
|
/>
|
|
<second-maintenance-approval-modal
|
ref='secondMaintenanceApprovalModal'
|
:selectShenpiData='selectSecondMaintenanceData'
|
@searchReset='searchReset'
|
></second-maintenance-approval-modal>
|
<third-maintenance-approval-modal
|
ref='thirdMaintenanceApprovalModal'
|
:selectShenpiData='selectThirdMaintenanceData'
|
@searchReset='searchReset'
|
></third-maintenance-approval-modal>
|
<equipment-seal-up-approval-modal
|
ref='equipmentSealUpApprovalModelRef'
|
@searchReset='searchReset'
|
/>
|
<inbound-order-handle
|
ref='inboundOrderApprovalModal'
|
:selectInboundOrderData='selectInboundOrderData'
|
@searchReset='searchReset'
|
></inbound-order-handle>
|
<equipment-transfer-approval-modal
|
ref='equipmentTransferApprovalModelRef'
|
@searchReset='searchReset'
|
/>
|
<equipment-scrap-approval-modal
|
ref='equipmentScrapApprovalModelRef'
|
@searchReset='searchReset'
|
/>
|
<spare-part-apply-handle
|
ref='sparePartApplyModal'
|
:selectSparePartApplyData='selectSparePartApplyData'
|
@searchReset='searchReset'
|
></spare-part-apply-handle>
|
<guide-card-batch-handle
|
ref='guideCardBatchHandle'
|
:selectShenpiData='selectGuideCardData'
|
@searchReset='searchReset'
|
></guide-card-batch-handle>
|
<AssignEquipmentFileStreamHandle
|
ref='assignEquipmentFileStreamHandle'
|
:selectShenpiData='selectEquipmentSealUpData'
|
@searchReset='searchReset'
|
></AssignEquipmentFileStreamHandle>
|
</div>
|
</template>
|
|
<script>
|
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
import { mixinDevice } from '@/utils/mixin'
|
import lossBoundHandle from '@views/flowable/workflow/lossBound/lossBoundHandle.vue'
|
import stocktakingBoundHandle from '@views/flowable/workflow/stocktakingBound/stocktakingBoundHandle.vue'
|
import AssignFileStreamHandle from '@views/flowable/workflow/assignFileStream/AssignFileStreamHandle.vue'
|
import DispatchFileHandle from '@views/flowable/workflow/dispatchFile/DispatchFileHandle.vue'
|
import DispatchFileBachHandleStyle from '@views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle#Drawer.vue'
|
import WeekMaintenanceBatchApprovalModal
|
from '@views/flowable/workflow/weekMaintenance/WeekMaintenanceBatchApprovalModal.vue'
|
import InspectionOrderBatchHandle from '@views/flowable/workflow/InspectionOrder/InspectionOrderBatchHandle.vue'
|
import JDictSelectTag from '@comp/dict/JDictSelectTag.vue'
|
import WeekMaintenanceApprovalModal from '@views/flowable/workflow/weekMaintenance/WeekMaintenanceApprovalModal.vue'
|
import RepairOrderApprovalModal from '@views/flowable/workflow/repairOrder/RepairOrderApprovalModal.vue'
|
import InspectionOrderHandle from '@views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue'
|
import EquipmentLeanOutApprovalModal from '@views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue'
|
import EquipmentReturnApprovalModal from '@views/flowable/workflow/leanOut/EquipmentReturnApprovalModal.vue'
|
import SecondMaintenanceApprovalModal
|
from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue'
|
import ThirdMaintenanceApprovalModal from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue'
|
import OutBoundOrderHandle from '@views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue'
|
import EquipmentSealUpApprovalModal from '@views/flowable/workflow/sealUp/EquipmentSealUpApprovalModal.vue'
|
import InboundOrderHandle from '@views/flowable/workflow/inboundOrder/InboundOrderHandle.vue'
|
import EquipmentTransferApprovalModal from '@views/flowable/workflow/transfer/EquipmentTransferApprovalModal.vue'
|
import EquipmentScrapApprovalModal from '@views/flowable/workflow/scrap/EquipmentScrapApprovalModal.vue'
|
import SparePartApplyHandle from '@views/flowable/workflow/sparePartApply/SparePartApplyHandle.vue'
|
import StandardizedProcessHandle from '@views/flowable/workflow/standardizedProcess/StandardizedProcessHandle.vue'
|
import GuideCardBatchHandle from '@views/flowable/workflow/guideCardBatch/GuideCardBatchHandle.vue'
|
import AssignEquipmentFileStreamHandle
|
from '@views/flowable/workflow/assignEquipmentFileStream/AssignEquipmentFileStreamHandle.vue'
|
import { getAction } from '@api/manage'
|
|
export default {
|
name: "TodoList",
|
mixins: [JeecgListMixin, mixinDevice],
|
components: {
|
lossBoundHandle,
|
stocktakingBoundHandle,
|
AssignFileStreamHandle,
|
DispatchFileHandle,
|
DispatchFileBachHandleStyle,
|
WeekMaintenanceBatchApprovalModal,
|
InspectionOrderBatchHandle,
|
JDictSelectTag,
|
WeekMaintenanceApprovalModal,
|
RepairOrderApprovalModal,
|
InspectionOrderHandle,
|
EquipmentLeanOutApprovalModal,
|
EquipmentReturnApprovalModal,
|
SecondMaintenanceApprovalModal,
|
ThirdMaintenanceApprovalModal,
|
OutBoundOrderHandle,
|
EquipmentSealUpApprovalModal,
|
InboundOrderHandle,
|
EquipmentTransferApprovalModal,
|
EquipmentScrapApprovalModal,
|
SparePartApplyHandle,
|
StandardizedProcessHandle,
|
GuideCardBatchHandle,
|
AssignEquipmentFileStreamHandle
|
},
|
props: {
|
// 添加默认分类属性
|
defaultCategories: {
|
type: Array,
|
default: () => []
|
}
|
},
|
data() {
|
return {
|
todoList: [],
|
url: {
|
list: '/assign/flow/toTaskBySelf',
|
isSameNode: '/assign/flow/isSameNode'
|
},
|
dictOptions: {},
|
selectShenpiData: {},
|
selectDispatchFileXqData: {},
|
selectInspectionOrderData: {},
|
selectWeekMaintenanceData: {},
|
selectSecondMaintenanceData: {},
|
selectThirdMaintenanceData: {},
|
selectBachData: {},
|
selectRepairOrderData: {},
|
selectOutBoundOrderData: {},
|
selectLossBoundOrderData: {},
|
selectStocktakingBoundOrderData: {},
|
selectInboundOrderData: {},
|
selectSparePartApplyData: {},
|
selectGuideCardData: {},
|
selectEquipmentAssignProductData: {},
|
selectEquipmentSealUpData: {},
|
//业务信息ID
|
dataId: undefined,
|
loading: false,
|
disableMixinCreated: true
|
};
|
},
|
|
computed: {
|
importExcelUrl: function () {
|
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
|
},
|
getTableColumnsTotalWidth() {
|
return this.columns.reduce((total, item) => total + item.width, 0)
|
}
|
},
|
|
methods: {
|
loadData(arg) {
|
|
this.todoList = []
|
|
if (!this.url.list) {
|
this.$message.error('请设置url.list属性!')
|
return
|
}
|
//加载数据 若传入参数1则加载第一页的内容
|
if (arg === 1) {
|
this.ipagination.current = 1
|
this.ipagination.page = 1
|
this.ipagination.pageSize = 50
|
}
|
this.queryParam.categoryList = this.defaultCategories;
|
// 封装查询条件
|
let formData = {
|
pageNo: arg,
|
pageSize: this.ipagination.pageSize,
|
categoryList: this.queryParam.categoryList
|
}
|
this.loading = true
|
getAction(this.url.list, formData).then((res) => {
|
if (res.success) {
|
// console.log(res)
|
//update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
this.todoList = res.result.records || res.result
|
if (res.result.total) {
|
this.ipagination.total = res.result.total
|
} else {
|
this.ipagination.total = 0
|
}
|
if (this.selectedRowKeys.length > 0) this.selectedRowKeys = this.selectionRows = []
|
//update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
} else {
|
this.$message.warning(res.message)
|
}
|
}).finally(() => {
|
this.loading = false
|
})
|
},
|
|
handelDetail(item, index) {
|
console.log('点击了详情')
|
console.log('item----->', item)
|
console.log('index----->', index)
|
let processType = this.splitAprocessType(item.category)
|
console.log('processType--->', processType)
|
switch (processType) {
|
case 'drApproval':
|
this.handDrDetial(item)
|
break
|
case 'ggApproval':
|
this.handDispatchFileDetial(item)
|
break
|
case 'ncFileSettingProcessApproval':
|
this.handStandardizedDetial(item)
|
break
|
case 'sbdjApproval':
|
this.handInspectionOrder(item)
|
break
|
case 'WEEK_MAINTENANCE':
|
this.handleWeekMaintenance(item)
|
break
|
case 'eam_repair':
|
this.handleRepairOrder(item)
|
break
|
case 'equipment_lean_out':
|
this.handleEquipmentLeanOut(item)
|
break
|
case 'equipment_return':
|
this.handleEquipmentReturn(item)
|
break
|
case 'second_maintenance':
|
this.handleSecondMaintenance(item)
|
break
|
case 'third_maintenance':
|
this.handleThirdMaintenance(item)
|
break
|
case 'toolOutStorageApproval':
|
this.handleToolOutStorageApproval(item)
|
break
|
case 'toolsStocktakingBoundApproval':
|
this.handleToolStocktakingApproval(item)
|
break
|
case 'toolsLossApproval':
|
this.handleToolLossApproval(item)
|
break
|
case 'equipment_seal_up':
|
this.handleEquipmentSealUp(item)
|
break
|
case 'equipment_unseal':
|
this.handleEquipmentUnSeal(item)
|
break
|
case 'toolInStorageApproval':
|
this.handleToolInStorage(item)
|
break
|
case 'equipment_transfer':
|
this.handleEquipmentTransfer(item)
|
break
|
case 'equipment_scrap':
|
this.handleEquipmentScrap(item)
|
break
|
case 'spare_part_apply':
|
this.handleSparePartApplyApproval(item)
|
break
|
case 'programConfirmApproval':
|
this.handleGuideCardApproval(item)
|
break
|
case 'equipmentAssignProductApproval':
|
this.handleEquipmentAssignProductApproval(item)
|
break
|
default:
|
alert('没找到该流程')
|
}
|
},
|
|
batchHandle() {
|
const categorySet = new Set(this.selectionRows.map(item => item.category))
|
const nameSet = new Set(this.selectionRows.map(item => item.name))
|
if (categorySet.size !== 1 || nameSet.size !== 1) {
|
this.$notification.info({
|
message: '消息',
|
description: '请选择同一流程分类下的同一当前节点'
|
})
|
return
|
}
|
|
if (categorySet.has('eam_repair')) {
|
this.$notification.info({
|
message: '消息',
|
description: '设备维修流程无法批量处理'
|
})
|
return
|
}
|
|
if (categorySet.has('sbdjApproval')) {
|
this.$refs.inspectionOrderBatchHandleRef.visible = true
|
this.$refs.inspectionOrderBatchHandleRef.title = this.selectionRows[0].name
|
this.$refs.inspectionOrderBatchHandleRef.getAllApproveData(this.selectionRows[0])
|
this.$refs.inspectionOrderBatchHandleRef.getBasicInformation(this.selectionRows[0])
|
} else if (categorySet.has('WEEK_MAINTENANCE')) {
|
this.$refs.weenMaintenanceBatchApprovalModalRef.handleDetail(this.selectionRows[0])
|
this.$refs.weenMaintenanceBatchApprovalModalRef.title = this.selectionRows[0].name
|
} else if (categorySet.has('ggApproval')) {
|
let ids = ''
|
for (let a = 0; a < this.selectedRowKeys.length; a++) {
|
ids += this.selectedRowKeys[a] + ','
|
}
|
getAction(this.url.isSameNode + '?taskIds=' + ids).then((res) => {
|
if (res.success) {
|
let taskDefKey = res.result
|
this.selectBachData.taskIds = ids
|
this.selectBachData.taskDefKey = taskDefKey
|
this.$refs.modalFormDispatchFileBatch.title = '批量处理'
|
this.$refs.modalFormDispatchFileBatch.edit(this.selectBachData)
|
this.$refs.modalFormDispatchFileBatch.disableSubmit = false
|
} else {
|
this.$notification.warning({
|
message: '消息',
|
description: res.message
|
})
|
}
|
})
|
}
|
},
|
|
splitAprocessType(title) {
|
let parts = title.split(':') // 注意冒号是全角字符,使用对应的字进行分割
|
let result = parts[0]
|
return result
|
},
|
//DNC-指派NC程序至设备
|
handDrDetial(item) {
|
this.selectShenpiData = item
|
this.$refs.modalFormApproval.clearTableSource()
|
this.$refs.modalFormApproval.getAllApproveData(item)
|
},
|
//DNC-NC程序签派
|
handDispatchFileDetial(item) {
|
console.log('item----->', item)
|
this.selectDispatchFileXqData = item
|
this.$refs.modalFormDispatchFileXq.clearTableSource()
|
this.$refs.modalFormDispatchFileXq.getAllApproveData(item)
|
},
|
//DNC-定型审批页面
|
handStandardizedDetial(item) {
|
this.selectDispatchFileXqData = item
|
this.$refs.StandardizedProcessHandle.clearTableSource()
|
this.$refs.StandardizedProcessHandle.getAllApproveData(item)
|
},
|
|
handInspectionOrder(record) {
|
console.log('record----->', record)
|
this.selectInspectionOrderData = Object.assign({}, record)
|
this.$refs.modalFormInspectionOrder.visible = true
|
this.$refs.modalFormInspectionOrder.title = record.name
|
this.$refs.modalFormInspectionOrder.getAllApproveData(record)
|
this.$refs.modalFormInspectionOrder.getBasicInformation(record)
|
},
|
|
handleWeekMaintenance(item) {
|
if (item && item.dataId) {
|
this.selectWeekMaintenanceData = Object.assign({}, item)
|
this.$refs.weekMaintenanceApprovalModal.handleDetail(item)
|
this.$refs.weekMaintenanceApprovalModal.title = item.name
|
this.$refs.weekMaintenanceApprovalModal.disableSubmit = false
|
}
|
},
|
|
/**
|
* 点击设备维修分类流程详情时触发
|
* @param record
|
*/
|
handleRepairOrder(record) {
|
this.selectRepairOrderData = Object.assign({}, record)
|
this.$refs.repairOrderApprovalModal.visible = true
|
this.$refs.repairOrderApprovalModal.title = record.name
|
this.$refs.repairOrderApprovalModal.getAllApproveData(record)
|
this.$refs.repairOrderApprovalModal.getBasicInformation(record)
|
},
|
handleEquipmentLeanOut(item) {
|
this.$refs.equipmentLeanOutApprovalModelRef.visible = true
|
this.$refs.equipmentLeanOutApprovalModelRef.title = item.name
|
this.$refs.equipmentLeanOutApprovalModelRef.handleDetail(item)
|
this.$refs.equipmentLeanOutApprovalModelRef.disableSubmit = false
|
},
|
handleEquipmentReturn(item) {
|
this.$refs.equipmentReturnApprovalModelRef.visible = true
|
this.$refs.equipmentReturnApprovalModelRef.title = item.name
|
this.$refs.equipmentReturnApprovalModelRef.handleDetail(item)
|
this.$refs.equipmentReturnApprovalModelRef.disableSubmit = false
|
},
|
handleSecondMaintenance(item) {
|
if (item && item.dataId) {
|
this.selectSecondMaintenanceData = Object.assign({}, item)
|
this.$refs.secondMaintenanceApprovalModal.handleDetail(item)
|
this.$refs.secondMaintenanceApprovalModal.title = item.name
|
this.$refs.secondMaintenanceApprovalModal.disableSubmit = false
|
}
|
},
|
handleThirdMaintenance(item) {
|
if (item && item.dataId) {
|
this.selectThirdMaintenanceData = Object.assign({}, item)
|
this.$refs.thirdMaintenanceApprovalModal.handleDetail(item)
|
this.$refs.thirdMaintenanceApprovalModal.title = item.name
|
this.$refs.thirdMaintenanceApprovalModal.disableSubmit = false
|
}
|
},
|
handleToolOutStorageApproval(item) {
|
if (item && item.dataId) {
|
this.selectOutBoundOrderData = Object.assign({}, item)
|
this.$refs.outBoundOrderHandle.auditVisible = true
|
this.$refs.outBoundOrderHandle.clearTableSource()
|
this.$refs.outBoundOrderHandle.getAllApproveData(item)
|
}
|
},
|
handleToolStocktakingApproval(item) {
|
if (item && item.dataId) {
|
this.selectStocktakingBoundOrderData = Object.assign({}, item)
|
this.$refs.stocktakingBoundHandle.auditVisible = true
|
this.$refs.stocktakingBoundHandle.clearTableSource()
|
this.$refs.stocktakingBoundHandle.getAllApproveData(item)
|
}
|
},
|
handleToolLossApproval(item) {
|
if (item && item.dataId) {
|
this.selectLossBoundOrderData = Object.assign({}, item)
|
this.$refs.lossBoundHandle.auditVisible = true
|
this.$refs.lossBoundHandle.clearTableSource()
|
this.$refs.lossBoundHandle.getAllApproveData(item)
|
}
|
},
|
|
handleEquipmentSealUp(item) {
|
this.$refs.equipmentSealUpApprovalModelRef.visible = true
|
this.$refs.equipmentSealUpApprovalModelRef.title = item.name
|
this.$refs.equipmentSealUpApprovalModelRef.handleDetail(item)
|
this.$refs.equipmentSealUpApprovalModelRef.disableSubmit = false
|
},
|
|
handleEquipmentUnSeal(item) {
|
this.$refs.equipmentSealUpApprovalModelRef.visible = true
|
this.$refs.equipmentSealUpApprovalModelRef.title = item.name
|
this.$refs.equipmentSealUpApprovalModelRef.handleDetail(item)
|
this.$refs.equipmentSealUpApprovalModelRef.disableSubmit = false
|
},
|
handleToolInStorage(item) {
|
if (item && item.dataId) {
|
this.selectInboundOrderData = Object.assign({}, item)
|
this.$refs.inboundOrderApprovalModal.auditVisible = true
|
this.$refs.inboundOrderApprovalModal.clearTableSource()
|
this.$refs.inboundOrderApprovalModal.getAllApproveData(item)
|
}
|
},
|
handleEquipmentTransfer(item) {
|
this.$refs.equipmentTransferApprovalModelRef.visible = true
|
this.$refs.equipmentTransferApprovalModelRef.title = item.name
|
this.$refs.equipmentTransferApprovalModelRef.handleDetail(item)
|
this.$refs.equipmentTransferApprovalModelRef.disableSubmit = false
|
},
|
handleEquipmentScrap(item) {
|
this.$refs.equipmentScrapApprovalModelRef.visible = true
|
this.$refs.equipmentScrapApprovalModelRef.title = item.name
|
this.$refs.equipmentScrapApprovalModelRef.handleDetail(item)
|
this.$refs.equipmentScrapApprovalModelRef.disableSubmit = false
|
},
|
handleSparePartApplyApproval(item) {
|
if (item && item.dataId) {
|
debugger
|
this.selectSparePartApplyData = Object.assign({}, item)
|
this.$refs.sparePartApplyModal.auditVisible = true
|
this.$refs.sparePartApplyModal.clearTableSource()
|
this.$refs.sparePartApplyModal.getAllApproveData(item)
|
}
|
},
|
//DNC-程序确认表流程
|
handleGuideCardApproval(item) {
|
console.log('item----->', item)
|
this.selectGuideCardData = item
|
this.$refs.guideCardBatchHandle.clearTableSource()
|
this.$refs.guideCardBatchHandle.getAllApproveData(item)
|
},
|
//DNC-设备结构树指派产品结构树
|
handleEquipmentAssignProductApproval(item) {
|
console.log('item----->', item)
|
this.selectEquipmentSealUpData = item
|
this.$refs.assignEquipmentFileStreamHandle.clearTableSource()
|
this.$refs.assignEquipmentFileStreamHandle.getAllApproveData(item)
|
}
|
}
|
};
|
</script>
|
<style scoped>
|
.todo-container {
|
width: 100%;
|
margin: 0;
|
box-sizing: border-box;
|
/* 新增:设置容器最大高度(可根据页面布局调整,如500px/80vh) */
|
max-height: 80vh;
|
/* 新增:垂直方向溢出时显示滚动条,水平方向溢出隐藏(避免布局错乱) */
|
overflow-y: auto;
|
overflow-x: hidden;
|
/* 可选:添加滚动条样式优化(适配Chrome/Safari,可选) */
|
&::-webkit-scrollbar {
|
width: 6px; /* 滚动条宽度 */
|
}
|
&::-webkit-scrollbar-thumb {
|
background-color: #e5e7eb; /* 滚动条滑块颜色 */
|
border-radius: 3px; /* 滚动条圆角 */
|
}
|
&::-webkit-scrollbar-track {
|
background-color: #f9fafb; /* 滚动条轨道颜色 */
|
}
|
}
|
|
.todo-item {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
padding: 15px 20px;
|
border-bottom: 1px solid #eee;
|
position: relative;
|
min-width: 300px;
|
box-sizing: border-box;
|
cursor: pointer;
|
}
|
.todo-title {
|
flex: 1;
|
margin-right: 15px;
|
}
|
.todo-info {
|
display: flex;
|
flex-direction: column;
|
align-items: flex-end;
|
min-width: 120px;
|
}
|
.todo-node {
|
margin-bottom: 5px;
|
white-space: nowrap;
|
}
|
.el-dropdown {
|
width: 100%;
|
}
|
.el-dropdown-menu {
|
min-width: 200px;
|
align-items: center;
|
}
|
</style>
|