插活
This commit is contained in:
parent
181dc83d4e
commit
88529941bf
@ -1,5 +1,8 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.plansub.vo;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansubdetail.PlanSubDetailDO;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@ -82,5 +85,6 @@ public class PlanSubPageReqVO extends PageParam {
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
private String projectCode;
|
||||
private String projectSubName;
|
||||
}
|
||||
@ -69,11 +69,13 @@ public class PlanSubDetailPageReqVO extends PageParam {
|
||||
private String queryDate;
|
||||
|
||||
@Schema(description = "项目编码", example = "26785")
|
||||
private Long projectCode;
|
||||
private String projectCode;
|
||||
@Schema(description = "子项目名称" ,example = "s")
|
||||
private String projectSubName;
|
||||
|
||||
private String customerBrief;
|
||||
private String projectName;
|
||||
private String planNo;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -219,4 +219,8 @@ public class PlanSubDO extends BaseDO {
|
||||
private boolean hasSaveIn3DDetail;
|
||||
@TableField(exist = false)
|
||||
private boolean hasSaveIn2DDetail;
|
||||
@TableField(exist = false)
|
||||
private String projectCode;
|
||||
@TableField(exist = false)
|
||||
private String planNo;
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.plansub;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.smallbun.screw.core.util.StringUtils;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
@ -11,6 +12,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.customer.CustomerDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.equip.EquipDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansubdetail.PlanSubDetailDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO;
|
||||
@ -43,6 +45,29 @@ public interface PlanSubMapper extends BaseMapperX<PlanSubDO> {
|
||||
query.eq(reqVO.getProjectPlanId() != null, PlanSubDO::getProjectPlanId, reqVO.getProjectPlanId());
|
||||
return selectPage(reqVO, query);
|
||||
}
|
||||
|
||||
default PageResult<PlanSubDO> getPlanList(PlanSubPageReqVO reqVO) {
|
||||
MPJLambdaWrapper<PlanSubDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(PlanSubDO.class)
|
||||
.select("c.name as projectSubName")
|
||||
.select("b.project_name_sim as projectNameSim")
|
||||
.select("b.code as projectCode" )
|
||||
.select("a.brief as customerName")
|
||||
.select("p.plan_no as planNo")
|
||||
.leftJoin(PlanDO.class, "p", PlanDO::getId, PlanSubDO::getProjectPlanId)
|
||||
.leftJoin(ProjectOrderDO.class, "b", ProjectOrderDO::getId, PlanSubDO::getProjectId)
|
||||
.leftJoin(CustomerDO.class,"a",CustomerDO::getId,ProjectOrderDO::getCustomerId)
|
||||
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, PlanSubDO::getProjectSubId)
|
||||
.eq(ProjectOrderDO::getDeliveryStatus,1)
|
||||
.disableSubLogicDel()
|
||||
.orderByAsc(PlanSubDO::getId)
|
||||
;
|
||||
query.like(ObjectUtil.isNotEmpty(reqVO.getProjectCode()), PlanDO::getCode, reqVO.getProjectCode())
|
||||
.like(ObjectUtil.isNotEmpty(reqVO.getProjectSubName()), PlanSubDetailDO::getName, reqVO.getProjectSubName());
|
||||
return selectPage(reqVO, query);
|
||||
}
|
||||
|
||||
|
||||
default PlanSubDO selectById(Long id) {
|
||||
MPJLambdaWrapper<PlanSubDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(PlanSubDO.class)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -27,6 +27,8 @@
|
||||
v-model="queryParams.beginTime"
|
||||
value-format="YYYY-MM-DD"
|
||||
type="date"
|
||||
clearable
|
||||
@change="changeBeginDate()"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
class="!w-280px"
|
||||
@ -65,7 +67,7 @@
|
||||
<el-button @click="handleQuery" type="primary"
|
||||
><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
|
||||
>
|
||||
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
||||
<!-- <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> -->
|
||||
<el-button @click="saveForm" type="warning">保存</el-button>
|
||||
<el-button @click="addForm" type="success">新增</el-button>
|
||||
</el-form-item>
|
||||
@ -82,13 +84,18 @@
|
||||
border
|
||||
>
|
||||
<el-table-column fixed label="序号" type="index" width="70" align="center" />
|
||||
<el-table-column fixed label="项目编码" align="center" prop="code" min-width="120" />
|
||||
<el-table-column fixed label="子项目名称" align="center" prop="name" min-width="250" />
|
||||
<el-table-column min-width="200px" align="center">
|
||||
<el-table-column fixed label="项目编码" align="center" prop="code" min-width="130" />
|
||||
<el-table-column fixed label="子项目名称" align="center" prop="name" min-width="180" />
|
||||
<el-table-column min-width="110px" align="center">
|
||||
<template #header>设计类型</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.subType`" class="mb-0px!">
|
||||
<el-select class="!w-265px" v-model="row.subType" clearable filterable :disabled="row.userFlag == false">
|
||||
<el-select
|
||||
v-model="row.subType"
|
||||
clearable
|
||||
filterable
|
||||
:disabled="row.userFlag == false"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_CH_PROCESS_TYPE)"
|
||||
:key="dict.value"
|
||||
@ -120,12 +127,11 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="200px" align="center">
|
||||
<el-table-column min-width="180px" align="center">
|
||||
<template #header>开始日期</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.startTwoDimDate`" class="mb-0px!">
|
||||
<el-date-picker
|
||||
class="!w-265px"
|
||||
v-model="row.startTwoDimDate"
|
||||
type="date"
|
||||
@change="change1(row, 0)"
|
||||
@ -137,12 +143,11 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="200px" align="center">
|
||||
<el-table-column min-width="180px" align="center">
|
||||
<template #header>结束日期</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.twoDimDate`" class="mb-0px!">
|
||||
<el-date-picker
|
||||
class="!w-265px"
|
||||
v-model="row.twoDimDate"
|
||||
type="date"
|
||||
@change="change1(row, 1)"
|
||||
@ -154,9 +159,9 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="设计天数" align="center" prop="designNum" min-width="120" />
|
||||
<el-table-column label="时间段顺序" align="center" prop="seqNo" min-width="120" />
|
||||
<el-table-column label="是否新增" align="center" prop="seqNo" min-width="120">
|
||||
<el-table-column label="设计天数" align="center" prop="designNum" min-width="100" />
|
||||
<el-table-column label="时间段顺序" align="center" prop="seqNo" min-width="110" />
|
||||
<el-table-column label="是否新增" align="center" prop="seqNo" min-width="100">
|
||||
<template #default="scope">
|
||||
{{ scope.row.isAdd == 1 ? '是' : '否' }}
|
||||
</template>
|
||||
@ -181,23 +186,82 @@
|
||||
|
||||
<!----插活弹框-->
|
||||
<!-- 插活弹窗 -->
|
||||
<el-dialog v-model="dialogVisible" width="80%" :close-on-click-modal="false">
|
||||
<div class="dialog-content">
|
||||
<!-- 第一排:当前日期信息 -->
|
||||
<!-- 第二排:状态标题 -->
|
||||
<div class="status-title">
|
||||
<el-dialog v-model="dialogVisible" width="100%" :close-on-click-modal="false">
|
||||
<div class="dialog-content" style="display: flex; gap: 20px">
|
||||
<!-- 左侧插活前列表 -->
|
||||
<div style="flex: 1">
|
||||
<div class="status-title" style="margin-bottom: 15px">
|
||||
<h3>{{
|
||||
dialogTitle +
|
||||
'(当前:' +
|
||||
'当前子项目' +
|
||||
currentRow.name +
|
||||
':' +
|
||||
formatDate(currentRow?.startTwoDimDate, 'YYYY-MM-DD') +
|
||||
'至' +
|
||||
formatDate(currentRow?.twoDimDate, 'YYYY-MM-DD') +
|
||||
')'
|
||||
formatDate(currentRow?.twoDimDate, 'YYYY-MM-DD')
|
||||
}}</h3>
|
||||
<h3>{{ '插活前' }}</h3>
|
||||
</div>
|
||||
|
||||
<!-- 表格 -->
|
||||
<el-table
|
||||
v-loading="loading2"
|
||||
:data="beforeList"
|
||||
:show-overflow-tooltip="true"
|
||||
class="hl-table"
|
||||
border
|
||||
max-height="400"
|
||||
>
|
||||
<el-table-column fixed label="子项目名称" align="center" prop="name" min-width="120px" />
|
||||
|
||||
<el-table-column min-width="50px" align="center">
|
||||
<template #header>设计类型</template>
|
||||
<template #default="{ row }">
|
||||
<span>{{ getDictLabel(DICT_TYPE.HELI_CH_PROCESS_TYPE, row.subType) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column min-width="55px" align="center">
|
||||
<template #header>负责人</template>
|
||||
<template #default="{ row }">
|
||||
<span>{{ getUserNickname(row.twoDimOwner) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column min-width="60px" align="center">
|
||||
<template #header>开始日期</template>
|
||||
<template #default="{ row }">
|
||||
<span>{{ formatDate(row.startTwoDimDate, 'YYYY-MM-DD') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column min-width="60px" align="center">
|
||||
<template #header>结束日期</template>
|
||||
<template #default="{ row }">
|
||||
<span>{{ formatDate(row.twoDimDate, 'YYYY-MM-DD') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="设计天数" align="center" prop="designNum" min-width="50px" />
|
||||
<el-table-column label="时间段顺序" align="center" prop="seqNo" min-width="60px" />
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<!-- 右侧插活后列表 -->
|
||||
<div style="flex: 1">
|
||||
<div class="status-title" style="margin-bottom: 15px">
|
||||
<h3>{{
|
||||
'当前子项目' +
|
||||
currentRow.name +
|
||||
':' +
|
||||
formatDate(currentRow?.startTwoDimDate, 'YYYY-MM-DD') +
|
||||
'至' +
|
||||
formatDate(currentRow?.twoDimDate, 'YYYY-MM-DD')
|
||||
}}</h3>
|
||||
|
||||
<h3>{{ '插活后' }}</h3>
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<el-table
|
||||
v-if="dialogTitle == '插活后'"
|
||||
v-loading="loading2"
|
||||
:data="insertList"
|
||||
:show-overflow-tooltip="true"
|
||||
@ -205,76 +269,41 @@
|
||||
border
|
||||
max-height="400"
|
||||
>
|
||||
<el-table-column fixed label="序号" type="index" width="70" align="center" />
|
||||
<el-table-column fixed label="项目编码" align="center" prop="code" min-width="120" />
|
||||
<el-table-column fixed label="子项目名称" align="center" prop="name" min-width="250" />
|
||||
<el-table-column min-width="200px" align="center">
|
||||
<el-table-column fixed label="子项目名称" align="center" prop="name" min-width="120px" />
|
||||
|
||||
<el-table-column min-width="50px" align="center">
|
||||
<template #header>设计类型</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.subType`" class="mb-0px!">
|
||||
<el-select class="!w-265px" v-model="row.subType" clearable filterable disabled>
|
||||
<el-option
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_CH_PROCESS_TYPE)"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<template #default="{ row }">
|
||||
<span>{{ getDictLabel(DICT_TYPE.HELI_CH_PROCESS_TYPE, row.subType) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="200px" align="center">
|
||||
|
||||
<el-table-column min-width="55px" align="center">
|
||||
<template #header>负责人</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.twoDimOwner`" class="mb-0px!">
|
||||
<el-select class="!w-265px" v-model="row.twoDimOwner" clearable filterable disabled>
|
||||
<el-option
|
||||
v-for="dict in userInit"
|
||||
:key="dict.id"
|
||||
:label="dict.username + ' ' + dict.nickname"
|
||||
:value="dict.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<template #default="{ row }">
|
||||
<span>{{ getUserNickname(row.twoDimOwner) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="200px" align="center">
|
||||
|
||||
<el-table-column min-width="60px" align="center">
|
||||
<template #header>开始日期</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.startTwoDimDate`" class="mb-0px!">
|
||||
<el-date-picker
|
||||
class="!w-265px"
|
||||
v-model="row.startTwoDimDate"
|
||||
type="date"
|
||||
@change="change1(row, 0)"
|
||||
value-format="x"
|
||||
placeholder="开始日期"
|
||||
disabled
|
||||
:disabled-date="disabledFutureDates"
|
||||
/>
|
||||
</el-form-item>
|
||||
<template #default="{ row }">
|
||||
<span>{{ formatDate(row.startTwoDimDate, 'YYYY-MM-DD') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="200px" align="center">
|
||||
|
||||
<el-table-column min-width="60px" align="center">
|
||||
<template #header>结束日期</template>
|
||||
<template #default="{ row, $index }">
|
||||
<el-form-item :prop="`${$index}.twoDimDate`" class="mb-0px!">
|
||||
<el-date-picker
|
||||
class="!w-265px"
|
||||
v-model="row.twoDimDate"
|
||||
type="date"
|
||||
@change="change1(row, 1)"
|
||||
value-format="x"
|
||||
placeholder="结束日期"
|
||||
disabled
|
||||
:disabled-date="disabledFutureDates"
|
||||
/>
|
||||
</el-form-item>
|
||||
<template #default="{ row }">
|
||||
<span>{{ formatDate(row.twoDimDate, 'YYYY-MM-DD') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="设计天数" align="center" prop="designNum" min-width="120" />
|
||||
|
||||
<el-table-column label="设计天数" align="center" prop="designNum" min-width="50px" />
|
||||
<el-table-column label="时间段顺序" align="center" prop="seqNo" min-width="60px" />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
@ -304,13 +333,12 @@
|
||||
:data="addList"
|
||||
v-loading="loading3"
|
||||
highlight-current-row
|
||||
ref="multipleTableRef" @select="handlerSelect"
|
||||
|
||||
ref="multipleTableRef"
|
||||
@select="handlerSelect"
|
||||
@selection-change="handleSelectionChange"
|
||||
@row-click="rowClickHandle"
|
||||
:row-key="row => row.id"
|
||||
:row-key="(row) => row.id"
|
||||
>
|
||||
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column type="index" label="序号" width="70" align="center" />
|
||||
<el-table-column prop="projectName" label="项目名称" min-width="180" />
|
||||
@ -328,13 +356,12 @@
|
||||
/>
|
||||
<!-- 底部按钮 -->
|
||||
<template #footer>
|
||||
<div class="dialog-footer" style="margin-left: 20%;">
|
||||
<div class="dialog-footer" style="margin-left: 45%">
|
||||
<el-button @click="handleAddCancel">取消</el-button>
|
||||
<el-button type="primary" @click="handleAddConfirm">确认</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
</template>
|
||||
|
||||
|
||||
@ -370,6 +397,23 @@ const queryParams = reactive({
|
||||
name: undefined
|
||||
})
|
||||
const queryFormRef = ref()
|
||||
const changeBeginDate = () => {
|
||||
if (!queryParams.beginTime) {
|
||||
queryParams.startTime = undefined
|
||||
}
|
||||
}
|
||||
// 获取字典标签
|
||||
const getDictLabel = (dictType, value) => {
|
||||
const options = getStrDictOptions(dictType)
|
||||
const option = options.find((item) => item.value === value)
|
||||
return option ? option.label : value
|
||||
}
|
||||
|
||||
// 根据用户ID获取昵称
|
||||
const getUserNickname = (userId) => {
|
||||
const user = userInit.value.find((item) => item.id === userId)
|
||||
return user ? user.nickname : ''
|
||||
}
|
||||
|
||||
//弹框新增逻辑:
|
||||
const addDialogVisible = ref(false)
|
||||
@ -400,11 +444,11 @@ const rowClickHandle = (row) => {
|
||||
// multipleTableRef.value.toggleRowSelection(row, true);
|
||||
// }
|
||||
if (selectData && selectData.length == 1) {
|
||||
const [item] = selectData;
|
||||
const shouldSelect = item !== row;
|
||||
multipleTableRef.value.toggleRowSelection(row, shouldSelect);
|
||||
const [item] = selectData
|
||||
const shouldSelect = item !== row
|
||||
multipleTableRef.value.toggleRowSelection(row, shouldSelect)
|
||||
} else {
|
||||
multipleTableRef.value.toggleRowSelection(row, true);
|
||||
multipleTableRef.value.toggleRowSelection(row, true)
|
||||
}
|
||||
}
|
||||
// 当用户手动勾选数据行的 Checkbox 时触发的事件
|
||||
@ -416,7 +460,7 @@ const handlerSelect = (selection, row) => {
|
||||
}
|
||||
// 当选择项发生变化时会触发该事件
|
||||
const handleSelectionChange = (val) => {
|
||||
console.log('表格的选中 可以获得当前选中的数据',val);
|
||||
console.log('表格的选中 可以获得当前选中的数据', val)
|
||||
selectedAddRow.value = val
|
||||
}
|
||||
// 新增按钮方法
|
||||
@ -436,19 +480,19 @@ const resetAddForm = () => {
|
||||
// 获取可选项目列表
|
||||
const getAddList = async () => {
|
||||
try {
|
||||
loading3.value = true;
|
||||
loading3.value = true
|
||||
const params = {
|
||||
projectCode: addQueryParams.projectCode,
|
||||
projectSubName: addQueryParams.projectSubName
|
||||
}
|
||||
const res = await PlansubdetailApi.pageAddList(params)
|
||||
console.log(res)
|
||||
addList.value = res.list;
|
||||
addtotal.value = res.total;
|
||||
addList.value = res.list
|
||||
addtotal.value = res.total
|
||||
} catch (error) {
|
||||
message.error('获取项目列表失败:' + error.message)
|
||||
} finally {
|
||||
loading3.value = false;
|
||||
loading3.value = false
|
||||
}
|
||||
}
|
||||
|
||||
@ -473,9 +517,9 @@ const handleAddCancel = () => {
|
||||
// 确认新增
|
||||
const handleAddConfirm = () => {
|
||||
for (var i = 0; i < list.value.length; i++) {
|
||||
var item = list.value[i];
|
||||
var item = list.value[i]
|
||||
if (!item.id) {
|
||||
message.warning('列表中存在未保存数据,请确认!');
|
||||
message.warning('列表中存在未保存数据,请确认!')
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -483,16 +527,16 @@ const handleAddConfirm = () => {
|
||||
message.warning('请先选择要添加的项目')
|
||||
return
|
||||
}
|
||||
selectedAddRow.value[0].twoDimDate = null;
|
||||
selectedAddRow.value[0].startTwoDimDate = null;
|
||||
selectedAddRow.value[0].twoDimOwner = null;
|
||||
selectedAddRow.value[0].subType = null;
|
||||
selectedAddRow.value[0].designNum = null;
|
||||
selectedAddRow.value[0].seqNo = null;
|
||||
selectedAddRow.value[0].isAdd = 1;
|
||||
selectedAddRow.value[0].flag = 1;
|
||||
selectedAddRow.value[0].userFlag = true;
|
||||
selectedAddRow.value[0].id = null;
|
||||
selectedAddRow.value[0].twoDimDate = null
|
||||
selectedAddRow.value[0].startTwoDimDate = null
|
||||
selectedAddRow.value[0].twoDimOwner = null
|
||||
selectedAddRow.value[0].subType = null
|
||||
selectedAddRow.value[0].designNum = null
|
||||
selectedAddRow.value[0].seqNo = null
|
||||
selectedAddRow.value[0].isAdd = 1
|
||||
selectedAddRow.value[0].flag = 1
|
||||
selectedAddRow.value[0].userFlag = true
|
||||
selectedAddRow.value[0].id = null
|
||||
list.value.push(selectedAddRow.value[0])
|
||||
addDialogVisible.value = false
|
||||
message.success('项目添加成功')
|
||||
@ -522,9 +566,21 @@ const saveForm = async () => {
|
||||
}
|
||||
if (!item.id) {
|
||||
console.log(item)
|
||||
var type = ("BLUEPRINT_WORKBLANK" == (item.subType))?"毛坯":("BLUEPRINT_2D" == (item.subType))?"2D":("BLUEPRINT_3D" == (item.subType))?'3D':'新增数据';
|
||||
var type =
|
||||
'BLUEPRINT_WORKBLANK' == item.subType
|
||||
? '毛坯'
|
||||
: 'BLUEPRINT_2D' == item.subType
|
||||
? '2D'
|
||||
: 'BLUEPRINT_3D' == item.subType
|
||||
? '3D'
|
||||
: '新增数据'
|
||||
|
||||
message.error('该子项目'+item.name+(type == '新增数据'?'新增数据':'设计类型:'+type)+' ,没有保存请确认!')
|
||||
message.error(
|
||||
'该子项目' +
|
||||
item.name +
|
||||
(type == '新增数据' ? '新增数据' : '设计类型:' + type) +
|
||||
' ,没有保存请确认!'
|
||||
)
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -569,13 +625,14 @@ const dialogVisible = ref(false)
|
||||
const dialogTitle = ref('插活前')
|
||||
const currentRow = ref(null)
|
||||
const insertList = ref([])
|
||||
|
||||
const beforeList = ref([])
|
||||
const modification = async (row) => {
|
||||
var data = row as unknown as PlansubdetailApi.PlanSubDetailVO
|
||||
const res = await PlansubdetailApi.modificationPlanSubDetail(data)
|
||||
if (res.list) {
|
||||
//弹框
|
||||
currentRow.value = row
|
||||
beforeList.value = res.list
|
||||
insertList.value = res.list
|
||||
dialogVisible.value = true
|
||||
dialogTitle.value = '插活前'
|
||||
@ -587,6 +644,33 @@ const modification = async (row) => {
|
||||
// 新增行方法
|
||||
const addItemRow = (row) => {
|
||||
if (row.id) {
|
||||
for (var i = 0; i < list.value.length; i++) {
|
||||
var item = list.value[i]
|
||||
if (item.isOverProcess) {
|
||||
item.isOverProcess = 1
|
||||
} else {
|
||||
item.isOverProcess = 0
|
||||
}
|
||||
if (!item.id) {
|
||||
console.log(item)
|
||||
var type =
|
||||
'BLUEPRINT_WORKBLANK' == item.subType
|
||||
? '毛坯'
|
||||
: 'BLUEPRINT_2D' == item.subType
|
||||
? '2D'
|
||||
: 'BLUEPRINT_3D' == item.subType
|
||||
? '3D'
|
||||
: '新增数据'
|
||||
|
||||
message.error(
|
||||
'该子项目' +
|
||||
item.name +
|
||||
(type == '新增数据' ? '新增数据' : '设计类型:' + type) +
|
||||
' ,没有保存请确认!'
|
||||
)
|
||||
return
|
||||
}
|
||||
}
|
||||
// 创建新行数据,复制当前行的所有属性
|
||||
const newRow = {
|
||||
...row,
|
||||
@ -601,22 +685,12 @@ const addItemRow = (row) => {
|
||||
userFlag: true
|
||||
}
|
||||
|
||||
// 获取当前行在列表中的索引
|
||||
const currentIndex = list.value.findIndex((item) => item === row)
|
||||
|
||||
// 在当前行后面插入新行
|
||||
if (currentIndex !== -1) {
|
||||
list.value.splice(currentIndex + 1, 0, newRow)
|
||||
} else {
|
||||
// 如果找不到当前行,添加到末尾
|
||||
list.value.push(newRow)
|
||||
}
|
||||
list.value.unshift(newRow)
|
||||
|
||||
//message.success('新增行成功')
|
||||
} else {
|
||||
message.error('该数据未保存,请确认')
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const getSearchRlTs = async (row, startDateTime: string, endDateTime: string) => {
|
||||
@ -758,7 +832,7 @@ const change1 = async (row: any, type: number) => {
|
||||
}
|
||||
|
||||
const time = type === 0 ? new Date(row.startTwoDimDate) : new Date(row.twoDimDate)
|
||||
if (!time || isNaN(time.getTime())) return
|
||||
if (!time || isNaN(time.getTime()) || formatDate(time, 'YYYY-MM-DD') == '1970-01-01') return
|
||||
|
||||
const data = await PlansubdetailApi.getSearchRlTsS(formatDate(time, 'YYYY-MM-DD'))
|
||||
|
||||
@ -780,7 +854,7 @@ const change1 = async (row: any, type: number) => {
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
if (queryParams.twoDimOwner == null) {
|
||||
if (!queryParams.twoDimOwner) {
|
||||
// 使用 setTimeout 避免渲染过程中直接调用 message.error
|
||||
setTimeout(() => {
|
||||
message.error('负责人为空,请确认')
|
||||
@ -803,7 +877,7 @@ const resetQuery = () => {
|
||||
code: undefined,
|
||||
name: undefined
|
||||
})
|
||||
getList()
|
||||
// getList()
|
||||
}
|
||||
|
||||
/** 初始化 **/
|
||||
@ -811,7 +885,7 @@ onMounted(async () => {
|
||||
try {
|
||||
// 取消注释并正确初始化
|
||||
userInit.value = await UserApi.getDeptName('设计部')
|
||||
await getList()
|
||||
// await getList()
|
||||
} catch (error) {
|
||||
console.error('初始化失败:', error)
|
||||
setTimeout(() => {
|
||||
@ -833,8 +907,9 @@ onMounted(async () => {
|
||||
}
|
||||
|
||||
.status-title {
|
||||
margin-top: -7%;
|
||||
margin-bottom: 20px;
|
||||
text-align: center;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.status-title h3 {
|
||||
|
||||
@ -643,7 +643,8 @@
|
||||
row.id,
|
||||
'startBlankDate',
|
||||
'blankDate',
|
||||
'blankNum'
|
||||
'blankNum',
|
||||
'start'
|
||||
)
|
||||
"
|
||||
/>
|
||||
@ -672,7 +673,8 @@
|
||||
row.id,
|
||||
'startBlankDate',
|
||||
'blankDate',
|
||||
'blankNum'
|
||||
'blankNum',
|
||||
'end'
|
||||
)
|
||||
"
|
||||
/>
|
||||
@ -731,7 +733,8 @@
|
||||
row.id,
|
||||
'startThreeDimDate',
|
||||
'threeDimDate',
|
||||
'threeDimNum'
|
||||
'threeDimNum',
|
||||
'start'
|
||||
)
|
||||
"
|
||||
/>
|
||||
@ -760,7 +763,8 @@
|
||||
row.id,
|
||||
'startThreeDimDate',
|
||||
'threeDimDate',
|
||||
'threeDimNum'
|
||||
'threeDimNum',
|
||||
'end'
|
||||
)
|
||||
"
|
||||
/>
|
||||
@ -818,7 +822,8 @@
|
||||
row.id,
|
||||
'startTwoDimDate',
|
||||
'twoDimDate',
|
||||
'twoDimNum'
|
||||
'twoDimNum',
|
||||
'start'
|
||||
)
|
||||
"
|
||||
/>
|
||||
@ -847,7 +852,8 @@
|
||||
row.id,
|
||||
'startTwoDimDate',
|
||||
'twoDimDate',
|
||||
'twoDimNum'
|
||||
'twoDimNum',
|
||||
'end'
|
||||
)
|
||||
"
|
||||
/>
|
||||
@ -1445,7 +1451,8 @@ const handleDateChange = async (
|
||||
id,
|
||||
startField,
|
||||
endField,
|
||||
dataNumField
|
||||
dataNumField,
|
||||
type
|
||||
) => {
|
||||
var nowDa = new Date()
|
||||
var nowDataStr = nowDa.toLocaleDateString('en-CA')
|
||||
@ -1512,8 +1519,12 @@ const handleDateChange = async (
|
||||
//用户选择完成后要取数据库中检索是否存在时间冲突,存在弹出插活框
|
||||
if (startBlankDate > blankDate) {
|
||||
message.error('开始时间必须早于结束时间,否则无法计算设计天数,请检查')
|
||||
rowData[startField] = null
|
||||
if (type == 'end') {
|
||||
rowData[endField] = null
|
||||
} else {
|
||||
rowData[startField] = null
|
||||
}
|
||||
|
||||
rowData[dataNumField] = null
|
||||
return
|
||||
}
|
||||
@ -2396,11 +2407,11 @@ const submitForm = async () => {
|
||||
// }
|
||||
// //subData.id = subData.projectSubId
|
||||
// })
|
||||
reload()
|
||||
message.success(t('common.updateSuccess'))
|
||||
// 发送操作成功的事件
|
||||
// emit('success')
|
||||
} finally {
|
||||
reload()
|
||||
formLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user