生产进度

This commit is contained in:
Ledo 2025-07-21 00:12:16 +08:00
parent f132d277f6
commit d57ac2413e
2 changed files with 634 additions and 49 deletions

View File

@ -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,

View File

@ -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>