生产进度
This commit is contained in:
parent
f132d277f6
commit
d57ac2413e
@ -11,16 +11,18 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref, onMounted, toRefs, computed } from 'vue'
|
||||
import * as UserApi from '@/api/system/user'
|
||||
import { number } from 'vue-types'
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: [Number, String],
|
||||
required: true // 如果是必需的属性,可以设置为true
|
||||
}
|
||||
},
|
||||
pageSize:number
|
||||
})
|
||||
const userParams = {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
pageSize: props.pageSize?props.pageSize:10,
|
||||
status: 0, // 根据实际情况调整参数
|
||||
username: undefined,
|
||||
nickname: undefined,
|
||||
|
@ -61,7 +61,9 @@
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
/> -->
|
||||
<UserSelect v-model="queryParams.owner" @update:newValue="handleSelectedUser1" class="!w-265px"/>
|
||||
<el-select class="!w-240px" v-model="queryParams.owner" filterable placeholder="请选择任务责任人" >
|
||||
<el-option v-for="item in userList" :key="item.id" :label="item.username + ' ' + item.nickname" :value="item.id" />
|
||||
</el-select>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
@ -83,50 +85,555 @@
|
||||
|
||||
<!-- 列表 -->
|
||||
<ContentWrap>
|
||||
|
||||
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" border class="hl-table" :row-class-name="tableRowClassName">
|
||||
<el-table-column type="index" min-width="60" fixed label="序号" align="center" />
|
||||
|
||||
|
||||
|
||||
<el-table-column label="项目编号" align="center" prop="projectCode" width="240px" />
|
||||
<el-table-column label="项目名称" align="center" prop="projectName" width="240px"/>
|
||||
<el-table-column label="报工类型" align="center" prop="planType" width="160px">
|
||||
<template #default="scope">
|
||||
{{scope.row.type=='ASSEMBLE'?"装配任务派工单":"生产任务派工单"}}
|
||||
</template>
|
||||
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
||||
<el-tab-pane label="加工件" name="first">{{ }}</el-tab-pane>
|
||||
<el-tab-pane label="标准件" name="second">{{ }}</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-table style="height: 500px;" v-loading="loading" :data="list" :show-overflow-tooltip="true" border class="hl-table" :row-class-name="tableRowClassName" :cell-class-name="cellClassName">
|
||||
<el-table-column type="index" min-width="60" label="序号" align="center" />
|
||||
<el-table-column label="零件名称" align="center" prop="materialName" min-width="180"/>
|
||||
<el-table-column label="材质" prop="compositionName" min-width="180"/>
|
||||
<el-table-column label="规格型号" prop="spec" min-width="180"/>
|
||||
<el-table-column label="数量" prop="amount" min-width="145"/>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="下料" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '下料'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span class="left">{{ item.sort }}</span>
|
||||
<span class="right">
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkStatus.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行 -->
|
||||
<div class="second-row">
|
||||
<span class="left">{{ item.reportTime }}</span>
|
||||
<span class="right">
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="电焊" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '电焊'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="编程" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '编程'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="开粗" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '开粗'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="铣床" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '铣床'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="车床" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '车床'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="热处理" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '热处理'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="磨床" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '磨床'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="数控1" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '数控1'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="数控2" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '数控2'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="火花" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '火花'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="线切割" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '线切割'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="刻字" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '刻字'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="网格" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '网格'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="深孔钻" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '深孔钻'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="钻孔" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
<div v-if="item.procedureName === '钻孔'" class="custom-cell">
|
||||
<!-- 第一行 -->
|
||||
<div class="first-row">
|
||||
<span >
|
||||
<span v-if="!item.reportTime">{{ item.sort }}</span> <!-- 仅当 reportTime 为空时显示 sort -->
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 第二行(仅当 reportTime 有值时显示) -->
|
||||
<div v-if="item.reportTime" class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!--标准件-->
|
||||
<!--加工件-->
|
||||
|
||||
<el-table-column v-if="activeIndex == 'second'" label="物料需求计划" align="center" prop="planBoomExists" min-width="180">
|
||||
<template #default="{ row }">
|
||||
{{ row.planBoomExists ?(row.planBoomExists== 1?'✔':''):''}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="生产计划号" align="center" prop="taskNo" width="240px"/>
|
||||
<el-table-column label="生产状态" align="center" prop="planType" >
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.HELI_PLANTYPE" :value="scope.row.planType" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="子项目名称" align="center" prop="projectSubName" />
|
||||
<el-table-column label="零件名称" align="center" prop="materialName" />
|
||||
<el-table-column label="工序名称" align="center" prop="procdureName" />
|
||||
<el-table-column label="任务负责人" align="center" prop="owner" >
|
||||
<template #default="scope">
|
||||
{{ userList.find((user) => user.id === scope.row.owner)?.nickname }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="预计结束日期" align="center" prop="endTime">
|
||||
<template #default="scope">
|
||||
{{ formatDateT(scope.row.endTime)}}
|
||||
</template>
|
||||
<el-table-column v-if="activeIndex == 'second'" label="去库存" prop="purYard" min-width="180">
|
||||
<template #default="{ row }">
|
||||
{{ row.purYard ?(row.purYard== 1?'✔':''):''}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'second'" label="采购单" prop="makeStatus" min-width="180">
|
||||
<template #default="{ row }">
|
||||
{{ row.makeStatus ?(row.makeStatus== 1?'送审':(row.makeStatus == 2 ? '已审批':'')):''}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'second'" label="采购订单" prop="orderNoExists" min-width="180">
|
||||
<template #default="{ row }">
|
||||
{{ row.orderNoExists ?(row.orderNoExists== 1?'✔':(row.orderNoExists == 0 ? '':'')):''}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="activeIndex == 'second'" label="收货状态" align="center" prop="receivingStatus" min-width="180">
|
||||
<template #default="{ row }">
|
||||
{{ row.receivingStatus ?(row.receivingStatus== 1?'未收货':(row.receivingStatus == 2 ? '收货中':(row.receivingStatus == 3 ? '已收货':''))):''}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="总预计工时" align="center" prop="workTime" />
|
||||
<el-table-column label="总派工数量" align="center" prop="amount" />
|
||||
<el-table-column label="总报工工时" align="center" prop="bgWorkTime" />
|
||||
<el-table-column label="总报工数量" align="center" prop="bgAmount" />
|
||||
<el-table-column label="完成标志" align="center" prop="wgType">
|
||||
|
||||
<template #default="scope">
|
||||
<dict-tag :type="DICT_TYPE.HELI_PG_PLANTYPE" :value="1" v-if="scope.row.wgType==2"/>
|
||||
<dict-tag :type="DICT_TYPE.HELI_PG_PLANTYPE" :value="0" v-else/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<Pagination
|
||||
@ -148,7 +655,8 @@ import * as processbomApi from '@/api/heli/processbom'
|
||||
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, getDictLabel } from '@/utils/dict'
|
||||
import UserSelect from '@/views/heli/hlvuestyle/userSelect.vue'
|
||||
import * as UserApi from '@/api/system/user'
|
||||
|
||||
import type { TabsPaneContext } from 'element-plus'
|
||||
import { get } from 'sortablejs'
|
||||
defineOptions({ name: 'Shenhe' })
|
||||
const userList = ref<UserApi.UserVO[]>([]) // 用户列表
|
||||
const message = useMessage() // 消息弹窗
|
||||
@ -172,6 +680,7 @@ const exportLoading = ref(false) // 导出的加载中
|
||||
|
||||
const handleSelectedUser1 = (newValue: any) => {
|
||||
queryParams.owner = newValue?.id
|
||||
console.log(queryParams.owner)
|
||||
}
|
||||
const formatDateT = (timestamp) => {
|
||||
const date = new Date(timestamp);
|
||||
@ -180,20 +689,48 @@ const formatDateT = (timestamp) => {
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
return `${year}-${month}-${day}`; // 返回 YYYY-MM-DD 格式
|
||||
}
|
||||
|
||||
const activeName = ref('first')
|
||||
const activeIndex = ref('first')
|
||||
/**切换tab */
|
||||
const handleClick = async(tab: TabsPaneContext, event: Event) => {
|
||||
var tabIndex = tab.props.name;
|
||||
activeIndex.value = tabIndex;
|
||||
await getList(tabIndex);
|
||||
}
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
// const data = await processbomApi.getPlanBb(queryParams)
|
||||
const data = await processbomApi.planBZJPage(queryParams)
|
||||
|
||||
if( activeIndex.value == 'first'){
|
||||
const data = await processbomApi.getPlanBb(queryParams)
|
||||
console.log(data)
|
||||
list.value = data.list
|
||||
|
||||
total.value = data.total
|
||||
}else{
|
||||
const data = await processbomApi.planBZJPage(queryParams)
|
||||
list.value = data.list
|
||||
|
||||
total.value = data.total
|
||||
}
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
const formatLongToDate = (longTimestamp) => {
|
||||
if(!longTimestamp){
|
||||
return '';
|
||||
}
|
||||
const date = new Date(longTimestamp);
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
return `${year}-${month}-${day}`;
|
||||
}
|
||||
|
||||
const tableRowClassName = ({ row }) => {
|
||||
var endTime = new Date(row.endTime);
|
||||
|
||||
@ -209,6 +746,23 @@ const tableRowClassName = ({ row }) => {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
const cellClassName = ({ row,column }) => {
|
||||
if(row.taskDispatchDetailDOList){
|
||||
for(var i = 0 ;i < row.taskDispatchDetailDOList.length ; i++){
|
||||
var item = row.taskDispatchDetailDOList[i];
|
||||
|
||||
if (item.procedureName == column.label && item.flag === 1) {
|
||||
return 'green-cell'
|
||||
};
|
||||
if (item.procedureName == column.label && item.flag === 2) return 'yellow-cell';
|
||||
if (item.procedureName == column.label && item.flag === 3) return 'red-cell';
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.pageNo = 1
|
||||
@ -246,6 +800,7 @@ const handleExport = async () => {
|
||||
onMounted(async () => {
|
||||
loading.value = true
|
||||
await getList()
|
||||
|
||||
userList.value = await UserApi.getSimpleUserList()
|
||||
})
|
||||
</script>
|
||||
@ -254,5 +809,33 @@ onMounted(async () => {
|
||||
.warning-row {
|
||||
background-color: #D3D3D3 !important;
|
||||
}
|
||||
|
||||
.green-cell {
|
||||
background-color: #e6f7e6 !important;
|
||||
}
|
||||
.yellow-cell {
|
||||
background-color: #fffbe6 !important;
|
||||
}
|
||||
.red-cell {
|
||||
background-color: #fff1f0 !important;
|
||||
}
|
||||
.custom-cell {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.first-row, .second-row {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
width: 100%;
|
||||
margin-bottom: 4px; /* 增加行间距 */
|
||||
}
|
||||
|
||||
.status-icon {
|
||||
width: 35px; /* 增大图片宽度 */
|
||||
height: 35px; /* 增大图片高度 */
|
||||
margin-left: 8px;
|
||||
vertical-align: middle;
|
||||
object-fit: contain; /* 确保图片比例不变形 */
|
||||
}
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue
Block a user