This commit is contained in:
itcast 2025-11-25 19:07:50 +08:00
parent 77da66a42e
commit 3b2a5b2218
12 changed files with 422 additions and 145 deletions

View File

@ -2,25 +2,46 @@
<el-dialog
title="添加装备/工具"
:visible.sync="visible"
width="80%"
width="1400px"
@close="onClose"
>
<!-- 搜索条件 -->
<el-form ref="queryForm" size="small" label-width="auto" :model="queryParams">
<el-row :gutter="20">
<el-col :span="5">
<el-form-item label="名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入名称" />
<el-form ref="queryForm" label-width="70px" inline :model="queryParams">
<el-form-item label="名称" prop="typeName">
<el-input v-model="queryParams.typeName" placeholder="请输入名称" clearable style="width: 202px"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="规格型号" prop="typeModelName">
<el-input v-model="queryParams.typeModelName" maxlength="20" placeholder="请输入规格型号" clearable style="width: 202px"/>
</el-form-item>
<el-form-item label="设备编码" prop="devCode">
<el-input v-model="queryParams.devCode" maxlength="20" placeholder="请输入编码" clearable style="width: 202px"/>
</el-form-item>
<el-form-item label="分类" prop="devType">
<el-select v-model="queryParams.devType" placeholder="请选择分类" clearable>
<el-select v-model="queryParams.devType" placeholder="请选择分类" clearable style="width: 202px">
<el-option label="装备" value="1" />
<el-option label="工具" value="2" />
</el-select>
</el-form-item>
</el-col>
<!-- 新增动态显示的管理模式下拉框 -->
<el-form-item
v-if="queryParams.devType === '2'"
label="管理模式"
prop="manageType"
>
<el-select
v-model="queryParams.manageType"
placeholder="请选择管理模式"
clearable
style="width: 202px"
>
<el-option label="编码设备" value="0"/>
<el-option label="数量设备" value="1"/>
</el-select>
</el-form-item>
<!-- &lt;!&ndash; 新增装备分类下拉框 &ndash;&gt;-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="装备类目" prop="equipmentCategory">-->
@ -51,11 +72,10 @@
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="13" style="text-align: right;">
<el-form-item style="margin-left: 100px">
<el-button type="primary" size="small" @click="onHandleQuery">查询</el-button>
<el-button size="small" @click="onHandleReset">重置</el-button>
</el-col>
</el-row>
</el-form-item>
</el-form>
<!-- 在修装备/工具列表 -->
@ -71,8 +91,14 @@
>
<el-table-column type="selection" width="50" />
<el-table-column align="center" type="index" label="序号" width="100" />
<el-table-column align="center" prop="devType" label="分类" min-width="70" />
<el-table-column align="center" prop="typeName" label="类目" min-width="80" />
<el-table-column align="center" prop="devType" label="分类" min-width="70" >
<template slot-scope="scope">
<span v-if="scope.row.devType==1">{{ '装备' }}</span>
<span v-if="scope.row.devType==2">{{ '工具' }}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="groupName" label="类目" min-width="80" />
<el-table-column align="center" prop="typeName" label="名称" min-width="80" />
<el-table-column align="center" prop="typeModelName" label="规格型号" min-width="100" />
<el-table-column align="center" prop="manageMode" label="管理模式" min-width="80" />
<el-table-column align="center" prop="devCode" label="设备编码" min-width="100" />
@ -127,7 +153,11 @@ export default {
visible: false,
queryParams: {
name: '',
typeName:'',
devType: '',
manageType: '',
typeModelName: '',
devCode: '',
equipmentCategory: [], //
toolCategory: [], //
equipmentCategoryId: '', // ID
@ -200,7 +230,12 @@ export default {
...this.queryParams,
// ID
equipmentCategory: this.queryParams.equipmentCategoryId,
toolCategory: this.queryParams.toolCategoryId
toolCategory: this.queryParams.toolCategoryId,
manageType: this.queryParams.manageType,
//
typeModelName: this.queryParams.typeModelName,
devCode: this.queryParams.devCode,
typeName: this.queryParams.typeName,
}
const res = await getScrapItemListAPI(query)
this.itemList = (res.rows || []).map(item => ({
@ -221,7 +256,9 @@ export default {
onHandleReset() {
this.queryParams = {
name: '',
typeName: '',
devType: '',
manageType: '',
equipmentCategory: [],
toolCategory: [],
equipmentCategoryId: '',

View File

@ -42,7 +42,7 @@
<div class="detail-section">
<div class="section-header">
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">退役申请列表</span>
<span style="font-size: 20px; font-weight: 800">退役申请设备</span>
</el-col>
<el-col :span="20" style="display: flex; justify-content: flex-end">
<el-button type="primary" size="small" :disabled="!canEdit" @click="onHandleAddItem">

View File

@ -44,20 +44,22 @@
<el-input style="width: 200px" disabled v-model="queryParams.proCounty"/>
</el-form-item>
<el-form-item label="使用日期" prop="useTime">
<el-form-item label="使用到期日期" prop="useTimeRange">
<el-date-picker
:disabled="!routerParams.isEdit"
v-model="queryParams.useTime"
type="date"
format="yyyy-MM-dd"
v-model="queryParams.useTimeRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
placeholder="选择日期"
style="width: 200px"
@change="useTimeChange"
style="width: 225px"
>
</el-date-picker>
</el-form-item>
</el-form>
</el-card>
@ -65,7 +67,7 @@
<el-card>
<el-row :gutter="10" class="mb8" justify="end">
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">自用申请列表</span>
<span style="font-size: 20px; font-weight: 800">自用申请设备</span>
</el-col>
<el-col v-if="!routerParams.isView" :span="20" style="display: flex; justify-content: flex-end">
<el-button type="primary" @click="handleDialog">添加</el-button>
@ -106,15 +108,18 @@
<el-table-column label="设备编码" align="center" prop="devCode" :show-overflow-tooltip="true" width="140px"/>
<el-table-column label="当前库存" align="center" prop="storageNum" :show-overflow-tooltip="true"/>
<el-table-column label="申请数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="使用到期日期" align="center" prop="useTime" width="160px">
<el-table-column label="使用到期日期" align="center" width="250px">
<template slot-scope="scope">
<el-date-picker
:disabled="!routerParams.isEdit"
v-model="scope.row.useTime"
type="date"
v-model="scope.row.useTimeRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
style="width: 100%"
placeholder="选择日期"
>
</el-date-picker>
</template>
@ -156,6 +161,23 @@
</el-select>
</el-form-item>
<!-- 新增动态显示的管理模式下拉框 -->
<el-form-item
v-if="addQuery.devType === '2'"
label="管理模式"
prop="manageType"
>
<el-select
v-model="addQuery.manageType"
placeholder="请选择管理模式"
clearable
>
<el-option label="编码设备" value="0"/>
<el-option label="数量设备" value="1"/>
</el-select>
</el-form-item>
<!-- <el-form-item label="装备分类" prop="categoryPath">-->
<!-- <el-cascader-->
<!-- v-model="addQuery.categoryPath"-->
@ -260,6 +282,7 @@ export default {
name: 'AddEditApply',
data() {
return {
useTimeRange: [], //
routerParams: {},
isLoading: false,
showSearch: true,
@ -314,6 +337,7 @@ export default {
proCounty: [{ required: true, message: '请选择项目所在区/县', trigger: 'change' }],
proLocation: [{ required: true, message: '请输入详细地址', trigger: 'blur' }],
useUnit: [{ required: true, message: '请输入需求单位', trigger: 'blur' }],
useTimeRange: [{ required: true, message: '请选择使用到期日期', trigger: 'change' }],
},
@ -329,6 +353,7 @@ export default {
typeModelName: '', //
devCode: '', //
devType: '', // 1=2=
manageType: '',
categoryPath: '', //
toolCategoryPath: '', //
pageNum: 1, //
@ -340,7 +365,8 @@ export default {
devCode: '',
categoryEquipment: '', // ID
toolTypeId: '', // ID
devType: '' // 1=2=
devType: '' ,// 1=2=
manageType:''
},
addTotal: 0, //
addList: [], //
@ -371,6 +397,17 @@ export default {
this.getEquipmentTree() //
this.getToolTree() //
},
watch: {
//
'queryParams.useTimeRange'(newVal) {
if (newVal && newVal.length === 2 && this.tableList.length > 0) {
this.tableList.forEach(item => {
item.useTimeRange = [...newVal]; //
});
}
}
},
methods: {
// 使
async getUseProjectList() {
@ -422,30 +459,47 @@ export default {
//
async getList(emit = {}) {
// emitid
if (emit.id) {
this.queryParams.id = emit.id
this.$route.query.id = this.queryParams.id
this.queryParams.id = emit.id;
this.$route.query.id = this.queryParams.id;
}
this.isLoading = true
this.isLoading = true;
try {
const params = { ...this.queryParams }
const res = await getApplyDetailsApi(params)
this.tableList = res.data.devDetailsList || []
if (this.queryParams.id) {
//
Object.assign(this.queryParams, res.data.devInfo || {})
// useTimeDateElement UI
if (this.queryParams.useTime) {
this.queryParams.useTime = new Date(this.queryParams.useTime);
const params = { ...this.queryParams };
const res = await getApplyDetailsApi(params); //
//
this.tableList = (res.data.devDetailsList || []).map(item => ({
...item,
// useStartTime/useEndTime Date el-date-picker
useTimeRange: item.useStartTime && item.useEndTime
? [new Date(item.useStartTime), new Date(item.useEndTime)]
: [] //
}));
// /
if (this.queryParams.id && res.data.devInfo) {
Object.assign(this.queryParams, res.data.devInfo);
//
if (res.data.devInfo.useStartTime && res.data.devInfo.useEndTime) {
this.queryParams.useTimeRange = [
new Date(res.data.devInfo.useStartTime),
new Date(res.data.devInfo.useEndTime)
];
}
}
this.total = res.data.total || 0
this.total = res.data.total || 0;
} catch (error) {
this.tableList = []
this.total = 0
this.$message.error('获取申请详情失败')
this.tableList = [];
this.total = 0;
this.$message.error('获取申请详情失败');
console.error('getList error:', error);
} finally {
this.isLoading = false
this.isLoading = false;
}
},
@ -558,7 +612,8 @@ export default {
devCode: queryParams.devCode,
categoryEquipment,
toolTypeId,
devType // devType
devType, // devType
manageType: queryParams.manageType // manageType
};
//
@ -624,7 +679,7 @@ export default {
manageType: item.manageType,
devCode: item.devCode,
storageNum: item.storageNum,
num: item.manageType == 0 ? 1 : item.num, // 1
num: item.manageType == 0 ? 1 : item.storageNum, // 1
useTime: this.queryParams.useTime ? new Date(this.queryParams.useTime) : null // 使
})
})
@ -663,26 +718,30 @@ export default {
//
saveAdd() {
if (!this.ids.length) {
this.$message({
type: 'error',
message: '请勾选要添加的数据'
})
this.$message.error('请勾选要添加的数据')
return
}
//
const invalidItem = this.addTempList.find(item => item.manageType === 1 && (item.num === 0 || !item.num));
const itemsToAdd = this.addList.filter(item => this.ids.includes(item.id))
const invalidItem = itemsToAdd.find(item => item.manageType === 1 && (item.num === 0 || !item.num))
if (invalidItem) {
this.$message.error('请为数量管理的设备填写申请数量。');
return;
this.$message.error('请为数量管理的设备填写申请数量。')
return
}
this.addTempList.forEach(item => {
this.tableList.push(item) // devType
// useTimeRange Date
itemsToAdd.forEach(item => {
this.tableList.push({
...item,
//
useTimeRange: this.queryParams.useTime
? [new Date(this.queryParams.useTime), new Date(this.queryParams.useTime)]
: []
})
})
//
this.ids = []
this.addTempList = []
if (this.$refs.addTable) {
this.$refs.addTable.clearSelection()
}
@ -692,67 +751,94 @@ export default {
// /devType
//
async submit() {
this.$refs.queryForm.validate(async(valid) => {
if (valid) {
this.$confirm('是否确定提交申请?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async() => {
this.isLoading = true
try {
//
if (!this.routerParams.id) {
this.queryParams.type = 2
this.queryParams.leaseType = 0
const tempTableList = this.tableList.map(item => ({
...item,
category: null
}))
const params = {
devInfo: this.queryParams,
devDetailsList: tempTableList
}
const res = await addApplyApi(params)
if (res.code == 200) {
this.$message({
type: 'success',
message: '添加成功!'
})
this.$router.go(-1)
// this.$tab.closeOpenPage({ path: '/business/applyList' })
}
} else if (this.routerParams.id) {
//
this.queryParams.type = 2
this.queryParams.leaseType = 0
const tempTableList = this.tableList.map(item => ({
...item,
category: null
}))
const params = {
devInfo: this.queryParams,
devDetailsList: tempTableList
}
const res = await editApplyApi(params)
if (res.code == 200) {
this.$message({
type: 'success',
message: '修改成功!'
})
this.$router.go(-1)
// this.$tab.closeOpenPage({ path: '/business/applyList' })
}
this.$refs.queryForm.validate(async (valid) => {
if (!valid) return;
this.$confirm('是否确定提交申请?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
this.isLoading = true;
try {
// --- ---
const safeFormatDate = (dateInput) => {
// 1. null undefined
if (!dateInput) {
console.warn('尝试格式化一个空的日期值');
return ''; // '1970-01-01'
}
} catch (error) {
console.log('🚀 ~ error:', error)
} finally {
this.isLoading = false
// 2. Date
let date;
if (dateInput instanceof Date) {
date = dateInput;
} else {
// Date
date = new Date(dateInput);
}
// 3. Date
if (isNaN(date.getTime())) {
console.error('无效的日期值:', dateInput);
return ''; //
}
// 4.
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
return `${year}-${month}-${day}`;
};
// --- ---
// 1.
const devInfo = { ...this.queryParams };
if (devInfo.useTimeRange && devInfo.useTimeRange.length === 2) {
// 使
devInfo.useStartTime = safeFormatDate(devInfo.useTimeRange[0]);
devInfo.useEndTime = safeFormatDate(devInfo.useTimeRange[1]);
}
})
}
})
delete devInfo.useTimeRange;
// 2.
const tempTableList = this.tableList.map(item => ({
...item,
category: null,
// 使
useStartTime: safeFormatDate(item.useTimeRange[0]),
useEndTime: safeFormatDate(item.useTimeRange[1]),
useTimeRange: undefined,
useTime: undefined
}));
const params = {
devInfo,
devDetailsList: tempTableList
};
// ... ...
let res;
if (!this.routerParams.id) {
res = await addApplyApi(params);
} else {
res = await editApplyApi(params);
}
if (res.code === 200) {
this.$message.success(res.message || '操作成功!');
this.$router.go(-1);
} else {
this.$message.error(res.message || '操作失败!');
}
} catch (error) {
this.$message.error('提交申请异常,请稍后重试');
console.error('submit error:', error);
} finally {
this.isLoading = false;
}
});
});
},
//

View File

@ -48,6 +48,8 @@
/>
</el-form-item>
<!-- 表单按钮 -->
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>

View File

@ -75,7 +75,16 @@
<el-table-column label="设备编码" align="center" prop="devCode" :show-overflow-tooltip="true" width="140px"/>
<el-table-column label="当前库存" align="center" prop="storageNum" :show-overflow-tooltip="true" />
<el-table-column label="申请数量" align="center" prop="num" :show-overflow-tooltip="true" />
<el-table-column label="使用到期日期" align="center" prop="useTime" width="160px"/>
<el-table-column label="使用到期日期" align="center" width="250px" :show-overflow-tooltip="true">
<template slot-scope="scope">
<!-- 处理日期为 null/undefined 的情况显示占位符有值则拼接为 "开始日期 至 结束日期" 格式 -->
{{
scope.row.useStartTime && scope.row.useEndTime
? `${scope.row.useStartTime}${scope.row.useEndTime}`
: '暂无时间段'
}}
</template>
</el-table-column>
</el-table>
</el-card>

View File

@ -160,7 +160,18 @@
<el-table-column label="当前库存" align="center" prop="storageNum" :show-overflow-tooltip="true"/>
<el-table-column label="申请数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="已出库数量" align="center" prop="realNum" :show-overflow-tooltip="true"/>
<el-table-column label="使用到期日期" align="center" prop="useTime" width="160px"/>
<el-table-column label="使用到期日期" align="center" width="250px" :show-overflow-tooltip="true">
<template slot-scope="scope">
<!-- 处理日期为 null/undefined 的情况显示占位符有值则拼接为 "开始日期 至 结束日期" 格式 -->
{{
scope.row.useStartTime && scope.row.useEndTime
? `${scope.row.useStartTime}${scope.row.useEndTime}`
: '暂无时间段'
}}
</template>
</el-table-column>
<el-table-column label="出库数量" v-if="routerParams.isView" align="center" prop="outNum"
:show-overflow-tooltip="true"
>

View File

@ -79,7 +79,7 @@
<el-table-column label="设备编码" align="center" prop="devCode" :show-overflow-tooltip="true" width="140px"/>
<el-table-column label="当前自用" align="center" prop="useNum" :show-overflow-tooltip="true"/>
<el-table-column label="退库数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="使用到期日期" align="center" prop="useTime" width="160px"/>
<el-table-column label="退库日期" align="center" prop="useTime" width="160px"/>
<el-table-column label="是否维修" align="center" prop="isRepair" width="160px">
<template slot-scope="scope">
<el-tag v-if="scope.row.isRepair == '0'" type="warning"></el-tag>

View File

@ -54,19 +54,19 @@
<el-input style="width: 200px" disabled v-model="queryParams.proCounty"/>
</el-form-item>
<el-form-item label="使用日期" prop="useTime">
<el-date-picker
v-model="queryParams.useTime"
:disabled="!routerParams.isEdit"
style="width: 200px"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择日期"
@change="useTimeChange"
>
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="退库日期" prop="useTime">-->
<!-- <el-date-picker-->
<!-- v-model="queryParams.useTime"-->
<!-- :disabled="!routerParams.isEdit"-->
<!-- style="width: 200px"-->
<!-- type="date"-->
<!-- format="yyyy-MM-dd"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择日期"-->
<!-- @change="useTimeChange"-->
<!-- >-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
</el-form>
</el-card>
@ -74,7 +74,7 @@
<el-card>
<el-row :gutter="10" class="mb8" justify="end">
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">退库申请列表</span>
<span style="font-size: 20px; font-weight: 800">退库申请设备</span>
</el-col>
<el-col v-if="!routerParams.isView" :span="20" style="display: flex; justify-content: flex-end">
<el-button type="primary" @click="submit">确定申请</el-button>
@ -125,7 +125,7 @@
/>
</template>
</el-table-column>
<el-table-column label="使用到期日期" align="center" prop="useTime" width="160px">
<el-table-column label="退库日期" align="center" prop="useTime" width="160px">
<template slot-scope="scope">
<el-date-picker
:disabled="!routerParams.isEdit"

View File

@ -1,6 +1,6 @@
<template>
<el-dialog
title="选择编码工具"
title="添加申请"
:visible.sync="visible"
width="70%"
@close="handleClose"
@ -39,6 +39,23 @@
</el-select>
</el-form-item>
<!-- 新增动态显示的管理模式下拉框 -->
<el-form-item
v-if="queryParams.devType === '2'"
label="管理模式"
prop="manageType"
>
<el-select
v-model="queryParams.manageType"
placeholder="请选择管理模式"
clearable
>
<el-option label="编码设备" value="0"/>
<el-option label="数量设备" value="1"/>
</el-select>
</el-form-item>
<!-- &lt;!&ndash; 装备分类级联选择器最多六级 &ndash;&gt;-->
<!-- <el-form-item label="装备分类" v-if="queryParams.devType === '1'">-->
<!-- <el-cascader-->
@ -156,7 +173,8 @@ export default {
toolCategoryPath: [], //
categoryEquipment: '', // ID
toolTypeId: '', // ID
devType: '' // 1=2=
devType: '', // 1=2=
manageType:''
},
externalSelectedRows: [],
@ -332,7 +350,8 @@ export default {
code: this.queryParams.code,
categoryEquipment: this.queryParams.categoryEquipment,
toolTypeId: this.queryParams.toolTypeId,
devType: this.queryParams.devType //
devType: this.queryParams.devType, //
manageType: this.queryParams.manageType
}
const res = await getToBeRepairList(queryParams)
const rows = res.data || []
@ -396,7 +415,8 @@ export default {
toolCategoryPath: [],
categoryEquipment: '',
toolTypeId: '',
devType: '' //
devType: '', //
manageType: ''
}
this.getList()
},

View File

@ -4,7 +4,7 @@
<el-card>
<el-row class="mb8" :gutter="10" justify="end">
<el-col :span="4">
<span style="font-size: 20px; font-weight: 800">维修申请列表</span>
<span style="font-size: 20px; font-weight: 800">维修申请设备</span>
</el-col>
<el-col v-if="!routerParams.isView" :span="20" style="display: flex; justify-content: flex-end">
<el-button type="primary" @click="handleNumDialog">添加</el-button>

View File

@ -54,7 +54,7 @@
<el-table
v-loading="isLoading"
:data="tableList"
:data="formattedTableList"
highlight-current-row
border
stripe
@ -77,6 +77,15 @@
align="center"
>
</el-table-column>
<!-- 手动添加状态列 -->
<el-table-column label="任务状态" align="center">
<template slot-scope="scope">
<el-tag :type="getStatusType(scope.row.status)">
{{ getStatusLabel(scope.row.status) }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="{ row }">
<el-button size="mini" type="text" icon="el-icon-zoom-in" @click="handleView(row)">查看</el-button>
@ -126,13 +135,21 @@ export default {
{ label: '全部通过', value: '全部通过' },
{ label: '全部驳回', value: '全部驳回' },
],
statusTextMap: {
'1': '待审核',
'4': '审核中',
'5': '驳回待处理',
'2': '全部通过',
'3': '全部驳回',
},
total: 0, //
//
tableColumns: [
{ label: '维修单号', prop: 'code' },
{ label: '维修装备数', prop: 'equipmentNum' },
{ label: '维修工具数', prop: 'toolNum' },
{ label: '任务状态', prop: 'status' },
// { label: '', prop: 'status' },
{ label: '申请人', prop: 'createUser' },
{ label: '申请时间', prop: 'createTime' },
],
@ -143,7 +160,47 @@ export default {
created() {
this.getList()
},
computed: {
//
formattedTableList() {
// 使 map
return this.tableList.map(item => {
//
return {
...item, // item
// status
status: this.statusTextMap[item.status] || '未知状态'
};
});
}
},
methods: {
//
getStatusLabel(status) {
const statusMap = {
'待审核': '待审核',
'审核中': '审核中',
'驳回待处理': '驳回待处理',
'全部通过': '已通过',
'全部驳回': '已驳回',
};
return statusMap[status] || '未知状态';
},
// el-tag (color)
getStatusType(status) {
const typeMap = {
'待审核': 'warning', //
'审核中': 'warning', //
'驳回待处理': 'danger', //
'全部通过': 'success', // 绿
'全部驳回': 'danger', //
};
return typeMap[status] || 'info'; //
},
//
handleQuery() {
this.queryParams.pageNum = 1

View File

@ -51,7 +51,7 @@
<el-table
v-loading="isLoading"
:data="tableList"
:data="formattedTableList"
highlight-current-row
border
stripe
@ -74,6 +74,14 @@
align="center"
>
</el-table-column>
<!-- 手动添加状态列 -->
<el-table-column label="任务状态" align="center">
<template slot-scope="scope">
<el-tag :type="getStatusType(scope.row.status)">
{{ getStatusLabel(scope.row.status) }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="{ row }">
<el-button size="mini" type="text" icon="el-icon-zoom-in" @click="handleView(row)">查看</el-button>
@ -120,13 +128,21 @@ export default {
{ label: '全部通过', value: '全部通过' },
{ label: '全部驳回', value: '全部驳回' },
],
statusTextMap: {
'1': '待审核',
'4': '审核中',
'5': '驳回待处理',
'2': '全部通过',
'3': '全部驳回',
},
total: 0, //
//
tableColumns: [
{ label: '维修单号', prop: 'code' },
{ label: '维修装备数', prop: 'equipmentNum' },
{ label: '维修工具数', prop: 'toolNum' },
{ label: '任务状态', prop: 'status' },
//{ label: '', prop: 'status' },
{ label: '申请人', prop: 'createUser' },
{ label: '申请时间', prop: 'createTime' },
],
@ -137,7 +153,46 @@ export default {
created() {
this.getList()
},
computed: {
//
formattedTableList() {
// 使 map
return this.tableList.map(item => {
//
return {
...item, // item
// status
status: this.statusTextMap[item.status] || '未知状态'
};
});
}
},
methods: {
//
getStatusLabel(status) {
const statusMap = {
'待审核': '待审核',
'审核中': '审核中',
'驳回待处理': '驳回待处理',
'全部通过': '已通过',
'全部驳回': '已驳回',
};
return statusMap[status] || '未知状态';
},
// el-tag (color)
getStatusType(status) {
const typeMap = {
'待审核': 'warning', //
'审核中': 'warning', //
'驳回待处理': 'danger', //
'全部通过': 'success', // 绿
'全部驳回': 'danger', //
};
return typeMap[status] || 'info'; //
},
//
handleQuery() {
this.queryParams.pageNum = 1