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

View File

@ -42,7 +42,7 @@
<div class="detail-section"> <div class="detail-section">
<div class="section-header"> <div class="section-header">
<el-col :span="4"> <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>
<el-col :span="20" style="display: flex; justify-content: flex-end"> <el-col :span="20" style="display: flex; justify-content: flex-end">
<el-button type="primary" size="small" :disabled="!canEdit" @click="onHandleAddItem"> <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-input style="width: 200px" disabled v-model="queryParams.proCounty"/>
</el-form-item> </el-form-item>
<el-form-item label="使用日期" prop="useTime"> <el-form-item label="使用到期日期" prop="useTimeRange">
<el-date-picker <el-date-picker
:disabled="!routerParams.isEdit" :disabled="!routerParams.isEdit"
v-model="queryParams.useTime" v-model="queryParams.useTimeRange"
type="date" type="daterange"
format="yyyy-MM-dd" range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="选择日期" style="width: 225px"
style="width: 200px"
@change="useTimeChange"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-card> </el-card>
@ -65,7 +67,7 @@
<el-card> <el-card>
<el-row :gutter="10" class="mb8" justify="end"> <el-row :gutter="10" class="mb8" justify="end">
<el-col :span="4"> <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>
<el-col v-if="!routerParams.isView" :span="20" style="display: flex; justify-content: flex-end"> <el-col v-if="!routerParams.isView" :span="20" style="display: flex; justify-content: flex-end">
<el-button type="primary" @click="handleDialog">添加</el-button> <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="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="storageNum" :show-overflow-tooltip="true"/>
<el-table-column label="申请数量" align="center" prop="num" :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"> <template slot-scope="scope">
<el-date-picker <el-date-picker
:disabled="!routerParams.isEdit" :disabled="!routerParams.isEdit"
v-model="scope.row.useTime" v-model="scope.row.useTimeRange"
type="date" type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
style="width: 100%" style="width: 100%"
placeholder="选择日期"
> >
</el-date-picker> </el-date-picker>
</template> </template>
@ -156,6 +161,23 @@
</el-select> </el-select>
</el-form-item> </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-form-item label="装备分类" prop="categoryPath">-->
<!-- <el-cascader--> <!-- <el-cascader-->
<!-- v-model="addQuery.categoryPath"--> <!-- v-model="addQuery.categoryPath"-->
@ -260,6 +282,7 @@ export default {
name: 'AddEditApply', name: 'AddEditApply',
data() { data() {
return { return {
useTimeRange: [], //
routerParams: {}, routerParams: {},
isLoading: false, isLoading: false,
showSearch: true, showSearch: true,
@ -314,6 +337,7 @@ export default {
proCounty: [{ required: true, message: '请选择项目所在区/县', trigger: 'change' }], proCounty: [{ required: true, message: '请选择项目所在区/县', trigger: 'change' }],
proLocation: [{ required: true, message: '请输入详细地址', trigger: 'blur' }], proLocation: [{ required: true, message: '请输入详细地址', trigger: 'blur' }],
useUnit: [{ required: true, message: '请输入需求单位', trigger: 'blur' }], useUnit: [{ required: true, message: '请输入需求单位', trigger: 'blur' }],
useTimeRange: [{ required: true, message: '请选择使用到期日期', trigger: 'change' }],
}, },
@ -329,6 +353,7 @@ export default {
typeModelName: '', // typeModelName: '', //
devCode: '', // devCode: '', //
devType: '', // 1=2= devType: '', // 1=2=
manageType: '',
categoryPath: '', // categoryPath: '', //
toolCategoryPath: '', // toolCategoryPath: '', //
pageNum: 1, // pageNum: 1, //
@ -340,7 +365,8 @@ export default {
devCode: '', devCode: '',
categoryEquipment: '', // ID categoryEquipment: '', // ID
toolTypeId: '', // ID toolTypeId: '', // ID
devType: '' // 1=2= devType: '' ,// 1=2=
manageType:''
}, },
addTotal: 0, // addTotal: 0, //
addList: [], // addList: [], //
@ -371,6 +397,17 @@ export default {
this.getEquipmentTree() // this.getEquipmentTree() //
this.getToolTree() // this.getToolTree() //
}, },
watch: {
//
'queryParams.useTimeRange'(newVal) {
if (newVal && newVal.length === 2 && this.tableList.length > 0) {
this.tableList.forEach(item => {
item.useTimeRange = [...newVal]; //
});
}
}
},
methods: { methods: {
// 使 // 使
async getUseProjectList() { async getUseProjectList() {
@ -422,30 +459,47 @@ export default {
// //
async getList(emit = {}) { async getList(emit = {}) {
// emitid
if (emit.id) { if (emit.id) {
this.queryParams.id = emit.id this.queryParams.id = emit.id;
this.$route.query.id = this.queryParams.id this.$route.query.id = this.queryParams.id;
} }
this.isLoading = true
this.isLoading = true;
try { try {
const params = { ...this.queryParams } const params = { ...this.queryParams };
const res = await getApplyDetailsApi(params) const res = await getApplyDetailsApi(params); //
this.tableList = res.data.devDetailsList || []
if (this.queryParams.id) { //
// this.tableList = (res.data.devDetailsList || []).map(item => ({
Object.assign(this.queryParams, res.data.devInfo || {}) ...item,
// useTimeDateElement UI // useStartTime/useEndTime Date el-date-picker
if (this.queryParams.useTime) { useTimeRange: item.useStartTime && item.useEndTime
this.queryParams.useTime = new Date(this.queryParams.useTime); ? [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) { } catch (error) {
this.tableList = [] this.tableList = [];
this.total = 0 this.total = 0;
this.$message.error('获取申请详情失败') this.$message.error('获取申请详情失败');
console.error('getList error:', error);
} finally { } finally {
this.isLoading = false this.isLoading = false;
} }
}, },
@ -558,7 +612,8 @@ export default {
devCode: queryParams.devCode, devCode: queryParams.devCode,
categoryEquipment, categoryEquipment,
toolTypeId, toolTypeId,
devType // devType devType, // devType
manageType: queryParams.manageType // manageType
}; };
// //
@ -624,7 +679,7 @@ export default {
manageType: item.manageType, manageType: item.manageType,
devCode: item.devCode, devCode: item.devCode,
storageNum: item.storageNum, 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 // 使 useTime: this.queryParams.useTime ? new Date(this.queryParams.useTime) : null // 使
}) })
}) })
@ -663,26 +718,30 @@ export default {
// //
saveAdd() { saveAdd() {
if (!this.ids.length) { if (!this.ids.length) {
this.$message({ this.$message.error('请勾选要添加的数据')
type: 'error',
message: '请勾选要添加的数据'
})
return return
} }
// const itemsToAdd = this.addList.filter(item => this.ids.includes(item.id))
const invalidItem = this.addTempList.find(item => item.manageType === 1 && (item.num === 0 || !item.num)); const invalidItem = itemsToAdd.find(item => item.manageType === 1 && (item.num === 0 || !item.num))
if (invalidItem) { if (invalidItem) {
this.$message.error('请为数量管理的设备填写申请数量。'); this.$message.error('请为数量管理的设备填写申请数量。')
return; return
} }
this.addTempList.forEach(item => { // useTimeRange Date
this.tableList.push(item) // devType itemsToAdd.forEach(item => {
this.tableList.push({
...item,
//
useTimeRange: this.queryParams.useTime
? [new Date(this.queryParams.useTime), new Date(this.queryParams.useTime)]
: []
})
}) })
// //
this.ids = [] this.ids = []
this.addTempList = []
if (this.$refs.addTable) { if (this.$refs.addTable) {
this.$refs.addTable.clearSelection() this.$refs.addTable.clearSelection()
} }
@ -692,67 +751,94 @@ export default {
// /devType // /devType
// //
async submit() { async submit() {
this.$refs.queryForm.validate(async(valid) => { this.$refs.queryForm.validate(async (valid) => {
if (valid) { if (!valid) return;
this.$confirm('是否确定提交申请?', '提示', {
confirmButtonText: '确定', this.$confirm('是否确定提交申请?', '提示', {
cancelButtonText: '取消', confirmButtonText: '确定',
type: 'warning' cancelButtonText: '取消',
}).then(async() => { type: 'warning'
this.isLoading = true }).then(async () => {
try { this.isLoading = true;
// try {
if (!this.routerParams.id) { // --- ---
this.queryParams.type = 2 const safeFormatDate = (dateInput) => {
this.queryParams.leaseType = 0 // 1. null undefined
const tempTableList = this.tableList.map(item => ({ if (!dateInput) {
...item, console.warn('尝试格式化一个空的日期值');
category: null return ''; // '1970-01-01'
}))
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' })
}
} }
} catch (error) { // 2. Date
console.log('🚀 ~ error:', error) let date;
} finally { if (dateInput instanceof Date) {
this.isLoading = false 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>
<!-- 表单按钮 --> <!-- 表单按钮 -->
<el-form-item style="float: right"> <el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button> <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="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="storageNum" :show-overflow-tooltip="true" />
<el-table-column label="申请数量" align="center" prop="num" :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-table>
</el-card> </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="storageNum" :show-overflow-tooltip="true"/>
<el-table-column label="申请数量" align="center" prop="num" :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="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" <el-table-column label="出库数量" v-if="routerParams.isView" align="center" prop="outNum"
:show-overflow-tooltip="true" :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="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="useNum" :show-overflow-tooltip="true"/>
<el-table-column label="退库数量" align="center" prop="num" :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"> <el-table-column label="是否维修" align="center" prop="isRepair" width="160px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.isRepair == '0'" type="warning"></el-tag> <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-input style="width: 200px" disabled v-model="queryParams.proCounty"/>
</el-form-item> </el-form-item>
<el-form-item label="使用日期" prop="useTime"> <!-- <el-form-item label="退库日期" prop="useTime">-->
<el-date-picker <!-- <el-date-picker-->
v-model="queryParams.useTime" <!-- v-model="queryParams.useTime"-->
:disabled="!routerParams.isEdit" <!-- :disabled="!routerParams.isEdit"-->
style="width: 200px" <!-- style="width: 200px"-->
type="date" <!-- type="date"-->
format="yyyy-MM-dd" <!-- format="yyyy-MM-dd"-->
value-format="yyyy-MM-dd" <!-- value-format="yyyy-MM-dd"-->
placeholder="选择日期" <!-- placeholder="选择日期"-->
@change="useTimeChange" <!-- @change="useTimeChange"-->
> <!-- >-->
</el-date-picker> <!-- </el-date-picker>-->
</el-form-item> <!-- </el-form-item>-->
</el-form> </el-form>
</el-card> </el-card>
@ -74,7 +74,7 @@
<el-card> <el-card>
<el-row :gutter="10" class="mb8" justify="end"> <el-row :gutter="10" class="mb8" justify="end">
<el-col :span="4"> <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>
<el-col v-if="!routerParams.isView" :span="20" style="display: flex; justify-content: flex-end"> <el-col v-if="!routerParams.isView" :span="20" style="display: flex; justify-content: flex-end">
<el-button type="primary" @click="submit">确定申请</el-button> <el-button type="primary" @click="submit">确定申请</el-button>
@ -125,7 +125,7 @@
/> />
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<el-date-picker <el-date-picker
:disabled="!routerParams.isEdit" :disabled="!routerParams.isEdit"

View File

@ -1,6 +1,6 @@
<template> <template>
<el-dialog <el-dialog
title="选择编码工具" title="添加申请"
:visible.sync="visible" :visible.sync="visible"
width="70%" width="70%"
@close="handleClose" @close="handleClose"
@ -39,6 +39,23 @@
</el-select> </el-select>
</el-form-item> </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;--> <!-- &lt;!&ndash; 装备分类级联选择器最多六级 &ndash;&gt;-->
<!-- <el-form-item label="装备分类" v-if="queryParams.devType === '1'">--> <!-- <el-form-item label="装备分类" v-if="queryParams.devType === '1'">-->
<!-- <el-cascader--> <!-- <el-cascader-->
@ -156,7 +173,8 @@ export default {
toolCategoryPath: [], // toolCategoryPath: [], //
categoryEquipment: '', // ID categoryEquipment: '', // ID
toolTypeId: '', // ID toolTypeId: '', // ID
devType: '' // 1=2= devType: '', // 1=2=
manageType:''
}, },
externalSelectedRows: [], externalSelectedRows: [],
@ -332,7 +350,8 @@ export default {
code: this.queryParams.code, code: this.queryParams.code,
categoryEquipment: this.queryParams.categoryEquipment, categoryEquipment: this.queryParams.categoryEquipment,
toolTypeId: this.queryParams.toolTypeId, toolTypeId: this.queryParams.toolTypeId,
devType: this.queryParams.devType // devType: this.queryParams.devType, //
manageType: this.queryParams.manageType
} }
const res = await getToBeRepairList(queryParams) const res = await getToBeRepairList(queryParams)
const rows = res.data || [] const rows = res.data || []
@ -396,7 +415,8 @@ export default {
toolCategoryPath: [], toolCategoryPath: [],
categoryEquipment: '', categoryEquipment: '',
toolTypeId: '', toolTypeId: '',
devType: '' // devType: '', //
manageType: ''
} }
this.getList() this.getList()
}, },

View File

@ -4,7 +4,7 @@
<el-card> <el-card>
<el-row class="mb8" :gutter="10" justify="end"> <el-row class="mb8" :gutter="10" justify="end">
<el-col :span="4"> <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>
<el-col v-if="!routerParams.isView" :span="20" style="display: flex; justify-content: flex-end"> <el-col v-if="!routerParams.isView" :span="20" style="display: flex; justify-content: flex-end">
<el-button type="primary" @click="handleNumDialog">添加</el-button> <el-button type="primary" @click="handleNumDialog">添加</el-button>

View File

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

View File

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