问题修改

This commit is contained in:
z 2025-07-03 18:39:15 +08:00
parent 0d9eba2cee
commit cb48e3d994
20 changed files with 345 additions and 46 deletions

View File

@ -1,5 +1,8 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo;
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplandetail.vo.MaterialPlanDetailRespVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.MaterialPlanDetailDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -84,5 +87,7 @@ public class MaterialPlanRespVO {
@Schema(description = "制单日期", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("制单日期")
private LocalDateTime matPlanDate;
@Schema(description = "需求计划明细")
private List<MaterialPlanBoomDO> detailList;
}

View File

@ -102,7 +102,7 @@ public class ProcessDesignRespVO {
@Schema(description = "延期原因", example = "28809")
private String delayReason;
@Schema(description = "毛坯最新进度")
private BigDecimal progressBlank;
private String progressBlank;
@Schema(description = "2D结束日期")
private LocalDateTime twoDimDate;
@ -112,7 +112,7 @@ public class ProcessDesignRespVO {
private String twoDimOwnerName;
@Schema(description = "2D最新进度")
private BigDecimal progress2d;
private String progress2d;
@Schema(description = "3D结束日期")
private LocalDateTime threeDimDate;
@ -122,7 +122,7 @@ public class ProcessDesignRespVO {
private String threeDimOwnerName;
@Schema(description = "3D最新进度")
private BigDecimal progress3d;
private String progress3d;
@Schema(description = "子项目名称")
private String projectSubName;

View File

@ -109,5 +109,7 @@ public class TaskDispatchDetailTotalVO {
@Schema(description = "派工类型 生产任务|装配任务 PRODUCTION|ASSEMBLE")
private String dispatchTypes;
@Schema(description = "报工状态")
private Integer reportStatus;
}

View File

@ -62,5 +62,7 @@ public class TaskDispatchSaveReqVO {
@Schema(description = "操作意见")
private String activeOpinion;
@Schema(description = "报工状态")
private Integer reportStatus;
}

View File

@ -1,5 +1,7 @@
package com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
@ -111,4 +113,6 @@ public class MaterialPlanDO extends BaseDO {
* 制单日期
*/
private Date matPlanDate;
@TableField(exist = false)
private List<MaterialPlanBoomDO> detailList;
}

View File

@ -60,6 +60,7 @@ public class ProcessDesignDO extends BaseDO {
private Date delayTime;
private String delayReason;
@TableField("is_over_process")
private Integer isOverProcess;
/**
* 子项目id
@ -113,7 +114,7 @@ public class ProcessDesignDO extends BaseDO {
private String blankOwnerName;
@TableField(exist = false)
private BigDecimal progressBlank;
private String progressBlank;
@TableField(exist = false)
private LocalDateTime twoDimDate;
@ -123,7 +124,7 @@ public class ProcessDesignDO extends BaseDO {
private String twoDimOwnerName;
@TableField(exist = false)
private BigDecimal progress2d;
private String progress2d;
@TableField(exist = false)
private LocalDateTime threeDimDate;
@ -133,7 +134,7 @@ public class ProcessDesignDO extends BaseDO {
private String threeDimOwnerName;
@TableField(exist = false)
private BigDecimal progress3d;
private String progress3d;
@TableField(exist = false)
private boolean isOver;
@TableField(exist = false)

View File

@ -227,4 +227,5 @@ public class TaskDispatchDetailDO extends BaseDO {
private BigDecimal matWeight;
@TableField(exist = false)
private String nickname;
private Integer reportStatus;
}

View File

@ -36,7 +36,7 @@ public interface ProcessDesignMapper extends BaseMapperX<ProcessDesignDO> {
.select("b.blank_date as blankDate","b.start_blank_date as startBlankDate", "b.two_dim_date as twoDimDate","b.start_two_dim_date as startTwoDimDate", "b.three_dim_date as threeDimDate", "b.start_three_dim_date as startThreeDimDate")
.select("u3.nickname as blankOwnerName", "u4.nickname as twoDimOwnerName", "u5.nickname as threeDimOwnerName")
.select("c.name as projectSubName", "b.project_sub_code as projectSubCode")
.select("z.progress,z.blueprint_link as blueprintLink ")
.select("z.progress,z.blueprint_link as blueprintLink")
.leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessDesignDO::getPlanId)
.leftJoin("project_plan_sub b on b.project_plan_id = t.plan_id and b.project_sub_id = t.project_sub_id")
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, ProcessDesignDO::getProjectSubId)

View File

@ -1,5 +1,6 @@
package com.chanko.yunxi.mes.module.heli.service.bgmasterline;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.pgmaster.PgMasterDO;
@ -86,6 +87,19 @@ public class BgMasterLineServiceImpl implements BgMasterLineService {
wrapper.eq(TaskDispatchDetailDO::getId,pgMasterLineDO.getDispatchDetailId());
wrapper.set(TaskDispatchDetailDO::getTestYn,"Y");
taskDispatchDetailMapper.update(wrapper);
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(pgMasterLineDO.getDispatchDetailId());
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId());
wrapper1.eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort()+1);
wrapper1.eq(TaskDispatchDetailDO::getDeleted, 0);
TaskDispatchDetailDO nextTaskDispatchDetailDO = taskDispatchDetailMapper.selectOne(wrapper1);
if (ObjectUtil.isNotEmpty(nextTaskDispatchDetailDO)){
taskDispatchDetailDO.setReportStatus(1);
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
}
}
}else{
//不相等时只更新当前报工状态
pgMasterLineDO.setActive("END");

View File

@ -337,7 +337,18 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
@Override
public PageResult<MaterialPlanDO> getBeiKuPage(MaterialPlanPageReqVO pageReqVO) {
return materialPlanMapper.getBeiKuPage(pageReqVO);
PageResult<MaterialPlanDO> beiKuPage = materialPlanMapper.getBeiKuPage(pageReqVO);
List<MaterialPlanDO> list = beiKuPage.getList();
list.forEach(item ->
{
LambdaQueryWrapper<MaterialPlanBoomDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(MaterialPlanBoomDO::getProjectMaterialPlanId, item.getId());
queryWrapper.eq(MaterialPlanBoomDO::getDeleted,0);
item.setDetailList(materialPlanBoomMapper.selectList(queryWrapper));
}
);
beiKuPage.setList( list);
return beiKuPage;
}
@Override

View File

@ -1,5 +1,7 @@
package com.chanko.yunxi.mes.module.heli.service.pgmaster;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.TaskDispatchDetailPageReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bgmasterline.BgMasterLineDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
@ -10,6 +12,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.zjpgmaster.ZjPgMasterLine
import com.chanko.yunxi.mes.module.heli.dal.mysql.bgmasterline.BgMasterLineMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.pgmaster.PgMasterLineMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper;
import com.chanko.yunxi.mes.module.heli.enums.TaskDispatchTypeEnum;
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
import org.springframework.stereotype.Service;
@ -54,6 +57,8 @@ public class PgMasterServiceImpl implements PgMasterService {
@Resource
private SerialNumberService serialNumberService;
@Resource
private TaskDispatchDetailMapper taskDispatchDetailMapper;
@ -173,6 +178,18 @@ public class PgMasterServiceImpl implements PgMasterService {
PgMasterLineDO pgMasterLineDO = pgMasterLineMapper.selectById(id);
pgMasterLineDO.setDispatchStatus(3);
int a = pgMasterLineMapper.updateById(pgMasterLineDO);
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(pgMasterLineDO.getDispatchDetailId());
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId());
wrapper1.eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort()+1);
wrapper1.eq(TaskDispatchDetailDO::getDeleted, 0);
TaskDispatchDetailDO nextTaskDispatchDetailDO = taskDispatchDetailMapper.selectOne(wrapper1);
if (ObjectUtil.isNotEmpty(nextTaskDispatchDetailDO)){
taskDispatchDetailDO.setReportStatus(1);
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
}
}
// 返回
return a;
}

View File

@ -271,18 +271,52 @@ public class ProcessDesignServiceImpl implements ProcessDesignService {
if(ProcessDesignTypeEnum.BLUEPRINT_WORKBLANK.name().equals(processDesign.getProcessDesignType())){
processDesignDO.setBlankDate(processDesign.getBlankDate())
.setStartBlankDate(processDesign.getStartBlankDate())
.setBlankOwnerName(processDesign.getBlankOwnerName())
.setProgressBlank(processDesign.getProgress());
.setBlankOwnerName(processDesign.getBlankOwnerName());
LambdaQueryWrapper<ProcessDesignProgressDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesign.getId());
wrapper.eq(ProcessDesignProgressDO::getDeleted,0);
if (processDesignProgressMapper.selectCount(wrapper)==0){
processDesignDO.setProgressBlank("未开始");
}else{
if (ObjectUtil.isEmpty(processDesign.getIsOverProcess())){
processDesignDO.setProgressBlank("进行中");
}else {
processDesignDO.setProgressBlank("已完成");
}
}
}else if(ProcessDesignTypeEnum.BLUEPRINT_3D.name().equals(processDesign.getProcessDesignType())){
processDesignDO.setThreeDimDate(processDesign.getThreeDimDate())
.setStartThreeDimDate(processDesign.getStartThreeDimDate())
.setThreeDimOwnerName(processDesign.getThreeDimOwnerName())
.setProgress3d(processDesign.getProgress());
.setThreeDimOwnerName(processDesign.getThreeDimOwnerName());
LambdaQueryWrapper<ProcessDesignProgressDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesign.getId());
wrapper.eq(ProcessDesignProgressDO::getDeleted,0);
Long l = processDesignProgressMapper.selectCount(wrapper);
if (l==0){
processDesignDO.setProgress3d("未开始");
}else{
if (ObjectUtil.isEmpty(processDesign.getIsOverProcess())){
processDesignDO.setProgress3d("进行中");
}else{
processDesignDO.setProgress3d("已完成");
}
}
}else if(ProcessDesignTypeEnum.BLUEPRINT_2D.name().equals(processDesign.getProcessDesignType())){
processDesignDO.setTwoDimDate(processDesign.getTwoDimDate())
.setStartTwoDimDate(processDesign.getStartTwoDimDate())
.setTwoDimOwnerName(processDesign.getTwoDimOwnerName())
.setProgress2d(processDesign.getProgress());
.setTwoDimOwnerName(processDesign.getTwoDimOwnerName());
LambdaQueryWrapper<ProcessDesignProgressDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessDesignProgressDO::getProcessDesignId, processDesign.getId());
wrapper.eq(ProcessDesignProgressDO::getDeleted,0);
if (processDesignProgressMapper.selectCount(wrapper)==0){
processDesignDO.setProgress2d("未开始");
}else{
if (ObjectUtil.isEmpty(processDesign.getIsOverProcess())){
processDesignDO.setProgress2d("进行中");
}else{
processDesignDO.setProgress2d("已完成");
}
}
}
});
}

View File

@ -217,7 +217,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
taskDispatchDetailDO.setBeforeAmount(taskDispatchDetailDO.getAmount());
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.SUBMITTED.getCode());
}
if (taskDispatchDetailDO.getSort()==1){
taskDispatchDetailDO.setReportStatus(1);
}
});
}
@ -785,6 +789,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
ownerDO.setId(taskDispatchDetailOwnerDO.getId());
ownerDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.COMPLETED.getCode());
taskDispatchDetailMapper.updateByOwner(ownerDO,null);
}
}
//子项目装配是否完成
@ -891,6 +896,18 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
// planMapper.updateById(planDO);
// }
// }
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO.getTestYn())){
if ("1".equals(taskDispatchDetailDO.getTestYn())&&"PRODUCTION".equals(taskDispatchDO.getDispatchType())){
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TaskDispatchDetailDO::getDispatchId, taskDispatchDetailDO.getDispatchId());
wrapper.eq(TaskDispatchDetailDO::getSort, taskDispatchDetailDO.getSort()+1);
wrapper.eq(TaskDispatchDetailDO::getDeleted, 0);
TaskDispatchDetailDO nextTaskDispatchDetailDO = taskDispatchDetailMapper.selectOne(wrapper);
if (ObjectUtil.isNotEmpty(nextTaskDispatchDetailDO)){
taskDispatchDetailDO.setReportStatus(1);
}
}
}
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
break;
}

View File

@ -97,9 +97,9 @@
<el-button link type="primary" @click="operation('queren', scope.row.id)" v-if="scope.row.isPurYard==1">
确认
</el-button>
<el-button link type="primary" @click="operation('bucong', scope.row.id)" v-if="scope.row.isPurYard==1">
库存补充
</el-button>
<!-- <el-button link type="primary" @click="operation('bucong', scope.row.id)" v-if="scope.row.isPurYard==1">-->
<!-- 库存补充-->
<!-- </el-button>-->
<el-button link type="primary" @click="operation('caigou', scope.row.id)" v-if="scope.row.isPurYard==1">
采购
</el-button>

View File

@ -87,11 +87,11 @@
<el-table-column fixed label="项目名称" align="center" prop="projectName" min-width="180" />
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" min-width="180" />
<el-table-column label="毛坯负责人" align="center" prop="blankOwnerName" width="120"/>
<el-table-column label="毛坯最新进度" align="center" prop="progressBlank" min-width="140" >
<template #default="scope">
{{!scope.row.progressBlank ? '' : (parseFloat(scope.row.progressBlank) + '%')}}
</template>
</el-table-column>
<el-table-column label="毛坯最新进度" align="center" prop="progressBlank" min-width="140" />
<!-- <template #default="scope">-->
<!-- {{!scope.row.progressBlank ? '' : (parseFloat(scope.row.progressBlank) + '%')}}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="毛坯计划截止日期" align="center" prop="blankDate" :formatter="dateFormatter2" min-width="180"/>
<el-table-column label="毛坯是否延期" align="center" prop="blankDeferred" min-width="140">
<template #default="scope">
@ -100,11 +100,11 @@
</template>
</el-table-column>
<el-table-column label="3D负责人" align="center" prop="threeDimOwnerName" min-width="120"/>
<el-table-column label="3D最新进度" align="center" prop="progress3d" min-width="140" >
<template #default="scope">
{{!scope.row.progress3d ? '' : (parseFloat(scope.row.progress3d) + '%')}}
</template>
</el-table-column>
<el-table-column label="3D最新进度" align="center" prop="progress3d" min-width="140" />
<!-- <template #default="scope">-->
<!-- {{!scope.row.progress3d ? '' : (parseFloat(scope.row.progress3d) + '%')}}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="3D计划截止日期" align="center" prop="threeDimDate" :formatter="dateFormatter2" width="180"/>
<el-table-column label="3D是否延期" align="center" prop="3dDeferred" min-width="140">
<template #default="scope">
@ -113,11 +113,11 @@
</template>
</el-table-column>
<el-table-column label="2D负责人" align="center" prop="twoDimOwnerName" min-width="120"/>
<el-table-column label="2D最新进度" align="center" prop="progress2d" min-width="140" >
<template #default="scope">
{{!scope.row.progress2d ? '' : (parseFloat(scope.row.progress2d) + '%')}}
</template>
</el-table-column>
<el-table-column label="2D最新进度" align="center" prop="progress2d" min-width="140"/> >
<!-- <template #default="scope">-->
<!-- {{!scope.row.progress2d ? '' : (parseFloat(scope.row.progress2d) + '%')}}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="2D计划截止日期" align="center" prop="twoDimDate" :formatter="dateFormatter2" min-width="180"/>
<el-table-column label="2D是否延期" align="center" prop="2dDeferred" min-width="140">
<template #default="scope">

View File

@ -122,7 +122,7 @@ label="单据日期" align="center" prop="createTime" :formatter="dateFormatter"
<dict-tag :type="DICT_TYPE.HELI_PURCHASE_ORDER_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="right" fixed="right" min-width="220">
<el-table-column label="操作" align="right" fixed="right" min-width="250">
<template #header>
<span style="margin-right: 30%">操作</span>
</template>

View File

@ -29,8 +29,9 @@
<el-card class="hl-card">
<!-- 列表 -->
<ContentWrap>
<el-table ref="multipleTable" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"
class="hl-table" @selection-change="handleSelectionChange" @row-click="clickRow" selection :row-key="getRowKeys">
<el-table ref="multipleTable" v-loading="loading" :data="list" :stripe="true"
class="hl-table" @selection-change="handleSelectionChange" @row-click="clickRow" selection :row-key="getRowKeys" @cell-mouse-enter="handleMouseEnter"
@cell-mouse-leave="handleMouseLeave">
<el-table-column type="selection" width="40" />
<el-table-column label="物料需求计划单号" align="center" prop="projectMaterialPlanNo" width="200" />
<el-table-column label="单据日期" align="center" prop="matPlanDate" :formatter="dateFormatter" min-width="120px">
@ -51,6 +52,31 @@
<!-- <el-table-column label="备注" align="center" prop="description" />-->
</el-table>
<!-- 物料明细提示框 -->
<el-tooltip
ref="materialTooltip"
:disabled="!activeRow || !activeRow.materialItems || activeRow.materialItems.length === 0"
:content="materialTooltipContent"
placement="top-start"
effect="light"
popper-class="material-detail-tooltip"
:virtual-ref="tooltipRef"
virtual-triggering
:offset="10"
:visible="tooltipVisible"
>
<template #content>
<div v-if="activeRow && activeRow.materialItems">
<div v-for="(item, index) in activeRow.materialItems" :key="index" class="material-item">
<span class="material-name">{{ item.matName }}</span>
<span class="material-quantity">{{ item.boomAmount }}</span>
</div>
</div>
</template>
</el-tooltip>
<!-- 分页 -->
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
@pagination="getList" />
@ -77,7 +103,19 @@ const { t } = useI18n() // 国际化
const router = useRouter()
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const activeRow = ref(null) //
const tooltipRef = ref({
getBoundingClientRect: () => ({
width: 0,
height: 0,
top: 0,
bottom: 0,
left: 0,
right: 0
}),
contextElement: null
})
const tooltipVisible = ref(false)
const loading = ref(true) //
const list = ref([]) //
const total = ref(0) //
@ -91,18 +129,62 @@ const queryParams = reactive({
})
const queryFormRef = ref() //
const materialTooltipRef = ref(null) // 对应模板中的 <MaterialTooltip ref="materialTooltip" />
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await materialPlanApi.getBeiKuPage(queryParams)
list.value = data.list
// list.value = data.list
console.log(data.list)
list.value = data.list.map(item => ({
...item,
//
materialItems: item.detailList || []
}));
total.value = data.total
} finally {
loading.value = false
}
}
const materialTooltipContent = computed(() => {
const { materialItems } = activeRow.value || {}
if (!materialItems) return ''
return materialItems.map(item => `${item.matName} x ${item.boomAmount}`).join('\n')
})
//
const handleMouseEnter=(row, column, cell, event)=> {
activeRow.value = row
//
const rect = cell.getBoundingClientRect()
tooltipVisible.value = true
//
tooltipRef.value = {
getBoundingClientRect: () => ({
width: 0,
height: 0,
top: rect.top,
bottom: rect.bottom,
left: rect.left,
right: rect.right
}),
contextElement: cell
}
//
nextTick(() => {
if (materialTooltipRef.value) {
materialTooltipRef.value.updatePopper()
}
})
}
//
const handleMouseLeave=()=> {
tooltipVisible.value = false
activeRow.value = null;
}
/** 搜索按钮操作 */
const handleQuery = () => {
@ -160,3 +242,83 @@ const open = async () => {
}
defineExpose({ open }) // open
</script>
<style scoped>
/* 隐藏的触发元素 */
.hidden-trigger {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
pointer-events: none;
}
</style>
<style>
/* 物料明细提示框样式 */
.material-detail-tooltip {
max-width: 300px !important;
padding: 12px !important;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
border: 1px solid #ebeef5;
}
.material-detail-tooltip .material-item {
display: flex;
justify-content: space-between;
padding: 6px 0;
border-bottom: 1px dashed #eee;
font-size: 13px;
}
.material-detail-tooltip .material-item:last-child {
border-bottom: none;
}
.material-detail-tooltip .material-name {
flex: 3;
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
}
.material-detail-tooltip .material-quantity {
flex: 1;
text-align: right;
color: #f56c6c;
font-weight: bold;
}
.material-detail-tooltip {
/* 增加整体宽度 */
min-width: 280px; /* 最小宽度 */
max-width: 400px; /* 最大宽度 */
width: auto !important; /* 宽度自适应 */
}
.material-detail-tooltip .material-item {
display: flex;
justify-content: space-between;
padding: 6px 0;
border-bottom: 1px dashed #eee;
font-size: 13px;
/* 增加内容区域宽度 */
width: 100%; /* 占满整个容器 */
}
/* 物料名称部分 */
.material-detail-tooltip .material-name {
flex: 1; /* 占据剩余空间 */
min-width: 150px; /* 最小宽度 */
margin-right: 15px; /* 增加右侧间距 */
word-break: break-word; /* 允许单词换行 */
}
/* 物料数量部分 */
.material-detail-tooltip .material-quantity {
flex-shrink: 0; /* 防止被压缩 */
width: 60px; /* 固定宽度 */
text-align: right; /* 右对齐 */
}
</style>

View File

@ -6,7 +6,7 @@ import CustomNavbar from "./components/CustomNavbar.vue";
import CategoryPanel from "./components/CategoryPanel.vue";
import footRight from "./components/footRight.vue";
import PageSkeleton from "./components/PageSkeleton.vue";
import { getHomeCategoryAPI, getUnreadMessage } from "@/services/home";
import {countReview, getHomeCategoryAPI, getUnreadMessage} from "@/services/home";
//
const categoryList = ref([
{
@ -107,10 +107,18 @@ const getHomeCategory = async () => {
});
}
const unReadCount = await getUnreadMessage();
const count = await countReview();
//
const cgdsp = categoryList.value.find(
(e) => e.path === "cgdsp"
);
const msgItem = categoryList.value.find(
(e) => e.path === "messageNotification"
);
if (cgdsp){
cgdsp.unReadCount = count;
cgdsp.auth=true
}
if (msgItem) {
msgItem.unReadCount = unReadCount;
msgItem.auth=true

View File

@ -279,7 +279,9 @@ const handleScan = () => {
>预计生产日期{{ item.startTime }} {{ item.endTime }}</view
>
</view>
<view class="statusText">{{ statusText }}</view>
<!-- <view class="statusText">{{ statusText }}</view>-->
<view :class="item.procedureStatus == 1 && item.reportStatus == 1 &&props.orderState == '0,1'? 'statusText1' : 'statusText'">{{ statusText }}</view>
</view>
<!-- 底部提示文字 -->
<view
@ -389,6 +391,18 @@ const handleScan = () => {
color: #fff;
}
.statusText1 {
position: absolute;
right: 30rpx;
top: 100rpx;
border-radius: 10rpx;
font-size: 24rpx;
padding: 10rpx 30rpx;
border-radius: 10rpx;
font-size: 24rpx;
background: linear-gradient(149deg, #4CAF50 4%, #388E3C 98%);
color: #fff;
}
&:last-child {
padding-bottom: 40rpx;
}

View File

@ -24,3 +24,10 @@ export const getUnreadMessage = () => {
url: '/heli/bdgzsomthing/unreadMessage',
})
}
export const countReview = () => {
return http<CategoryItem[]>({
method: 'GET',
url: '/heli/purchase-order-make/countReview',
})
}