yn_digital_gadgets_web/src/views/planMange/monthlyPlan/config.js

127 lines
3.8 KiB
JavaScript

import { reactive } from 'vue'
import dayjs from 'dayjs'
// 静态选项(可后续替换为接口下拉)
const stationOptions = [
{ label: '昆明运检站', value: 1 },
{ label: '大理运检站', value: 2 },
]
const majorOptions = [
{ label: '输电专业', value: 1 },
{ label: '变电专业', value: 2 },
]
const businessTypeOptions = [
{ label: '日常巡视', value: 1 },
{ label: '缺陷处理', value: 2 },
]
const riskLevelOptions = [
{ label: '低风险', value: 1 },
{ label: '中风险', value: 2 },
{ label: '高风险', value: 3 },
]
// 月计划列表搜索表单配置
export const buildFormColumns = () => [
{
type: 'month',
prop: 'month',
placeholder: '请选择月份',
},
{
type: 'select',
prop: 'stationId',
placeholder: '请选择运检站',
options: stationOptions,
},
{
type: 'input',
prop: 'keyword',
placeholder: '请输入关键字',
},
{
type: 'select',
prop: 'majorId',
placeholder: '请选择专业',
options: majorOptions,
},
{
type: 'select',
prop: 'businessTypeId',
placeholder: '请选择业务类型',
options: businessTypeOptions,
},
{
type: 'select',
prop: 'riskLevel',
placeholder: '请选择风险等级',
options: riskLevelOptions,
},
]
// 月计划列表表格列
export const tableColumns = [
{ prop: 'inspectionStationName', label: '运检站', fixed: true },
{ prop: 'planMajorId', label: '专业', fixed: true },
{ prop: 'businessTypeId', label: '业务类型', fixed: true },
{ prop: 'projectName', label: '项目名称', fixed: true },
{ prop: 'workContent', label: '工作任务' },
{ prop: 'riskLevel', label: '风险等级' },
{ prop: 'planCategoryId', label: '类别' },
{ prop: 'workAmount', label: '工作量', width: '180', slot: 'workAmount' },
{ prop: 'towerBaseNumber', label: '基塔数' },
{ prop: 'plannedStartTime', label: '计划开始时间', width: '140' },
{ prop: 'plannedEndTime', label: '计划结束时间', width: '140' },
{
prop: 'planPersonnel',
label: '计划投入管理人员数量',
formatter: (row) => {
return row.personneltList?.length || 0
},
},
{ prop: 'planCarNum', label: '计划投入管理人员车辆数' },
{ prop: 'planSkilledWorkerNum', label: '计划投入熟练工人员数量' },
{
prop: 'planSkilledWorkerDay',
label: '计划投入熟练工人员工日',
// 使用dayjs 根据开始时间和结束时间计算出工日 * 计划投入熟练工人员工日
formatter: (row) => {
return (
(dayjs(row.plannedEndTime).diff(dayjs(row.plannedStartTime), 'day') + 1) *
row.planSkilledWorkerDay
)
},
},
{ prop: 'planAuxiliaryWorkerNum', label: '计划投入辅助工人员数量' },
{
prop: 'planAuxiliaryWorkerDay',
label: '计划投入辅助工人员工日',
// 使用dayjs 根据开始时间和结束时间计算出工日 * 计划投入熟练工人员工日
formatter: (row) => {
return (
(dayjs(row.plannedEndTime).diff(dayjs(row.plannedStartTime), 'day') + 1) *
row.planAuxiliaryWorkerDay
)
},
},
{ prop: 'planSubCarNum', label: '计划投入分包车辆数' },
{ prop: 'actualWorkingDay', label: '实际工作天数' },
]
export const dialogConfig = reactive({
outerVisible: false,
outerTitle: '新增计划',
outerWidth: '70%', // 根据图片缩小宽度更美观
minHeight: '70vh',
maxHeight: '90vh',
})
export default {
tableColumns,
dialogConfig,
buildFormColumns,
}