update:仿真策划审批修改,新增待办提示组件

This commit is contained in:
2026-02-03 16:51:53 +08:00
parent 2a714238fd
commit 0e7f162604
3 changed files with 328 additions and 5 deletions

View File

@@ -0,0 +1,308 @@
<template>
<div class="info-page">
<div class="page-title">{{ pageValue.reminder }}</div>
<div class="page-content">
<div class="content-item" v-for="item_1 in pageValue.content" :key="item_1.index">
<div class="iteminner">{{ item_1.header }}</div>
<div
:class="
item_1.type === 2
? item_1.type === 3
? 'iteminner red pl30'
: 'iteminner red'
: item_1.type === 3
? 'iteminner pl30'
: 'iteminner'
"
v-for="item_2 in item_1.inner"
:key="item_2"
>
<span
class="file-word"
@click="downLoadFileFun(item_2)"
v-if="item_2.includes('《') && item_2.includes('》')"
>{{ item_2 }}</span
>
<span class="nomal-word" v-else>{{ item_2 }}</span>
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { ElMessage } from 'element-plus';
import { ref, watch } from 'vue';
const props = defineProps({
data: {
type: Object,
default: () => {},
},
});
const showPage = ref(false);
// 机器人 动画 有限元 工业设计 公差
// 1正常 2标红 3缩进
const demandTypeInfo = ref<any>({
机器人: {
name: '机器人仿真',
reminder: '机器人仿真登记提醒:',
content: [
{
index: 1,
header: '(1)、',
inner: ['若不清楚本待办需求如何填写,请看', '《填写指导书》', ''],
type: 1,
},
{
index: 2,
header: '(2)、',
inner: ['必须使用最新的', '《机器人动作说明书模板》', '填写后作为附件上传;'],
type: 1,
},
{
index: 3,
header: '(3)、',
inner: ['请参考填写指导书,不规范填写或附件上传资料不规范将驳回'],
type: 2,
},
],
},
有限元: {
name: '有限元仿真',
reminder: '',
content: [],
},
动画: {
name: '动画',
reminder: '动画仿真登记提醒:',
content: [
{
index: 1,
header: '(1)、',
inner: ['若不清楚本待办需求如何填写,请看', '《填写指导书》', ';'],
type: 1,
},
{
index: 2,
header: '(2)、',
inner: ['待办类型制作时长说明(需求时间参考):'],
type: 1,
},
{
index: 3,
header: '',
inner: ['工艺动画、所有产品线标准时长24H'],
type: 3,
},
{
index: 4,
header: '',
inner: ['工位动画、RF COA LS产品线标准时长16H'],
type: 3,
},
{
index: 5,
header: '',
inner: ['工位动画、除RF COA LS产品线外标准时长4H'],
type: 3,
},
{
index: 6,
header: '',
inner: ['整机动画、RF COA LS SST产品线标准时长104H'],
type: 3,
},
{
index: 7,
header: '',
inner: ['整机动画、除RF COA LS SST产品线外标准时长50H'],
type: 3,
},
{
index: 8,
header: '',
inner: ['外观渲染、SST产品线标准时长40H'],
type: 3,
},
{
index: 9,
header: '',
inner: ['外观渲染、除SST产品线外标准时长8H'],
type: 3,
},
{
index: 10,
header: '',
inner: ['MG动画、所有产品线标准时长104H'],
type: 3,
},
{
index: 11,
header: '',
inner: ['厂房立库动画动画、所有产品线标准时长104H'],
type: 3,
},
{
index: 12,
header: '(3)、',
inner: ['将参考资料、3D同步上传至附件。'],
type: 1,
},
{
index: 13,
header: '(4)、',
inner: ['必须将', '《动画制作交接资料点检表》', '填写后作为附件上传'],
type: 1,
},
],
},
工业设计: {
name: '工业设计',
reminder: '外观设计登记提醒:',
content: [
{
index: 1,
header: '(1)、',
inner: ['若不清楚本待办需求如何填写,请看', '《填写指导书》', ''],
type: 1,
},
{
index: 2,
header: '(2)、',
inner: ['待办类型说明:'],
type: 1,
},
{
index: 3,
header: '',
inner: [
' 渲染在不改变三维模型结构的情况下模拟产品真实材质通过调整光线、色彩、角度等参数重新渲染达到自己期望的效果图2天只保留需渲染的3D即可多余零件请清除',
],
type: 1,
},
{
index: 4,
header: '',
inner: [
' 渲染+贴标在满足渲染效果图的基础上对其表面做元素贴图设计logo的位置尺寸约束、vI元素设计3天',
],
type: 1,
},
{
index: 5,
header: '',
inner: [
' 工业设计通过解读设备的功能结构结合美学、CMF颜色、材质、工艺及人机工程学设计产品外观结合多种工具绘制模型并渲染效果图14天',
],
type: 1,
},
{
index: 6,
header: '(3)、',
inner: ['需要做工业设计则填写', '《工业设计填写要求模板》', '后作为附件上传;'],
type: 1,
},
{
index: 7,
header: '(4)、',
inner: ['将参考资料、3D同步上传至附件。'],
type: 1,
},
],
},
公差: {
name: '公差',
reminder: '',
content: [],
},
});
const pageValue = ref<any>({
name: '',
reminder: '',
content: [],
});
const getPageValue = (str: string) => {
showPage.value = false;
console.log(str, 'strstrstrstr');
if (str) {
showPage.value = true;
for (const key in demandTypeInfo.value) {
console.log(key, 'key');
if (str.includes(key)) {
pageValue.value = demandTypeInfo.value[key];
}
}
} else {
showPage.value = false;
}
};
// 根据文件名称下载文件
const downLoadFileFun = (name: any) => {
console.log(name, 'name');
ElMessage.success('文件下载中请稍后!');
};
watch(
props.data,
(newVal) => {
const info: any = newVal;
console.log(info, 'infoinfoinfo');
console.log(newVal, 'newVal');
getPageValue(info?.name);
},
{
immediate: true,
deep: true,
}
);
</script>
<style lang="scss" scoped>
.info-page {
width: 100%;
.page-title {
width: 100%;
height: 30px;
display: flex;
align-items: center;
justify-content: flex-start;
}
.page-content {
width: 100%;
.content-item {
width: 100%;
display: flex;
flex-wrap: wrap;
padding: 5px 0;
.iteminner {
.file-word {
cursor: pointer;
color: var(--el-color-primary);
padding: 0 5px;
}
}
}
}
.red {
color: var(--el-color-danger);
}
.pl30 {
// padding-left: 30px;
text-indent: 30px;
}
}
</style>

View File

@@ -9,6 +9,7 @@
:confirm-closable="false"
:width="500"
:height="300"
@close="closeFun"
>
<template #default>
<el-form ref="formRef" :rules="rules" :model="form" label-width="120">
@@ -73,7 +74,7 @@ const props = withDefaults(defineProps<Props>(), {
modelValue: false,
moduleCode: 'TASK_POOL_APPROVAL',
});
const emits = defineEmits(['update:modelValue', 'confirm']);
const emits = defineEmits(['update:modelValue', 'confirm', 'close']);
const visible = computed({
get: () => props.modelValue,
set: (val) => emits('update:modelValue', val),
@@ -99,6 +100,7 @@ const rules = reactive<FormRules<RuleForm>>({
});
const onCancelFun = () => {
visible.value = false;
emits('close');
};
const onConfirmFun = async () => {
if (!formRef.value) {
@@ -111,6 +113,11 @@ const onConfirmFun = async () => {
});
};
const closeFun = () => {
visible.value = false;
emits('close');
};
watch(
() => props.modelValue,
(val) => {

View File

@@ -293,6 +293,7 @@
:isInitial="isEmptyPool"
:moduleCode="'SIMULATION_PLAN_APPROVAL'"
@confirm="onAddApproveConfirmFun"
@close="closeApproveFun"
/>
</template>
<script lang="ts" setup>
@@ -845,10 +846,10 @@ const onAddApproveConfirmFun = async (formData: any) => {
approveParam.value.updateList.length === 0 &&
deleteNodeList.length === 0
) {
dialogApproveUserVisible.value = false;
loadingInterface.value = false;
// dialogApproveUserVisible.value = false;
// loadingInterface.value = false;
ElMessage.success('请更改仿真策划内容后再进行审批');
ElMessage.warning('请更改仿真策划内容后再进行操作');
return;
}
@@ -870,14 +871,17 @@ const onAddApproveConfirmFun = async (formData: any) => {
ElMessage.success('操作成功');
loadingInterface.value = false;
emits('taskComplete', 'taskPlanPage');
closeFun();
} else {
dialogApproveUserVisible.value = false;
loadingInterface.value = false;
ElMessage.warning('操作失败');
closeFun();
}
} catch {
dialogApproveUserVisible.value = false;
loadingInterface.value = false;
closeFun();
}
};
@@ -1272,7 +1276,7 @@ const queryDesignVersionsFun = async () => {
projectPhaseVersionList.value = res.data;
if (res.data?.length) {
projectPhaseVersionList.value = [res.data[0]];
projectPhaseVersionList.value = [res.data.at(-1)];
currentProjectPhaseTaskTreeVersion.value = projectPhaseVersionList.value[0]?.currentVersion;
@@ -1284,6 +1288,10 @@ const queryDesignVersionsFun = async () => {
} catch {}
};
const closeApproveFun = () => {
loadingInterface.value = false;
};
onMounted(async () => {
queryPoolListFun();
});