<template>
|
<div class="home-container">
|
<div style="height: 100%">
|
<el-row class="homeCard">
|
<div class="basic-line">
|
<span>领取时间:</span>
|
<el-date-picker
|
value-format="YYYY-MM-DD"
|
v-model="claimReturnRecordsState.timeValue"
|
type="daterange"
|
range-separator="To"
|
start-placeholder="开始时间"
|
end-placeholder="结束时间"
|
/>
|
</div>
|
<!-- <div class="basic-line">-->
|
<!-- <span>领取人:</span>-->
|
<!-- <el-input class="input-box2" v-model="claimReturnRecordsState.listQuery.searchParams.materialName" placeholder="领取人" clearable> </el-input>-->
|
<!-- </div>-->
|
<div>
|
<el-button size="large" type="primary" class="ml10" v-throttle @click="initClaimReturnData">
|
<el-icon>
|
<ele-Search />
|
</el-icon>
|
查询
|
</el-button>
|
</div>
|
</el-row>
|
<div class="homeCard">
|
<div class="main-card">
|
<el-table element-loading-text="Loading..." v-loading="claimReturnRecordsState.tableLoading" :data="claimReturnRecordsState.claimReturnData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
|
<el-table-column type="index" label="序号" width="60" />
|
<el-table-column prop="createTime" label="物资领取时间" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="receiveUname" label="领取人" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="materialName" label="物资" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="receiveCount" label="领取数量" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="revertCount" label="已归还数量" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="statusName" label="归还情况" show-overflow-tooltip>
|
<template #default="scope">
|
<el-tag :type="scope.row.status === 0 ? 'danger' : scope.row.status === 1 ? 'warning' : scope.row.status === 2 ? 'success' : ''">
|
<span>
|
{{ scope.row.statusName }}
|
</span>
|
</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" width="250" align="center">
|
<template #default="scope">
|
<el-button size="small" text type="success" @click="onOpenReturnGoodsDialog('归还', scope.row)">归还</el-button>
|
<el-button size="small" text type="primary" @click="onOpenReturnGoodsDialog('查看物资', scope.row)">查看物资</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<br />
|
<el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="claimReturnRecordsState.listQuery.pageIndex" background v-model:page-size="claimReturnRecordsState.listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="claimReturnRecordsState.total" class="page-position"> </el-pagination>
|
</div>
|
</div>
|
</div>
|
<return-and-watch ref="returnAndWatchRef" @refreshReturnData="initClaimReturnData"></return-and-watch>
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
import {onMounted, reactive, watch, ref} from "vue";
|
import {
|
claimReturnDataType,
|
ClaimReturnRecordsType,
|
materialType
|
} from "/@/views/facilityManagement/claimReturnRecords/index";
|
import {claimReturnRecordsApi} from "/@/api/facilityManagement/claimReturnRecords";
|
import {ElMessage} from "element-plus";
|
import ReturnAndWatch from "/@/views/facilityManagement/claimReturnRecords/components/returnAndWatch.vue";
|
|
const returnAndWatchRef = ref();
|
|
const claimReturnRecordsState = reactive<ClaimReturnRecordsType>({
|
tableLoading: true,
|
total: 0,
|
timeValue: [],
|
claimReturnData: [],
|
listQuery: {
|
pageSize: 10,
|
pageIndex: 1,
|
searchParams: {
|
materialName: null,
|
receiveUname: null,
|
endTime: null,
|
startTime: null,
|
}
|
},
|
});
|
|
watch(() => claimReturnRecordsState.timeValue, (newVal, oldVal) => {
|
claimReturnRecordsState.listQuery.searchParams.startTime = newVal?.[0] || null;
|
claimReturnRecordsState.listQuery.searchParams.endTime = newVal?.[1] || null;
|
})
|
|
const initClaimReturnData = async () => {
|
claimReturnRecordsState.tableLoading = true;
|
let res = await claimReturnRecordsApi().getClaimReturnRecords(claimReturnRecordsState.listQuery);
|
if(res.data.code === '200') {
|
claimReturnRecordsState.claimReturnData = res.data.data;
|
claimReturnRecordsState.total = res.data.total;
|
}else {
|
ElMessage({
|
type:'warning',
|
message: res.data.msg
|
});
|
}
|
claimReturnRecordsState.tableLoading = false;
|
};
|
|
const onOpenReturnGoodsDialog = (title: string, value: claimReturnDataType) => {
|
returnAndWatchRef.value.openReturnAndWatchDialog(title, value)
|
}
|
|
const onHandleSizeChange = (val: number) => {
|
claimReturnRecordsState.listQuery.pageSize = val;
|
initClaimReturnData();
|
};
|
|
const onHandleCurrentChange = (val: number) => {
|
claimReturnRecordsState.listQuery.pageIndex = val;
|
initClaimReturnData();
|
};
|
|
onMounted(() => {
|
initClaimReturnData()
|
})
|
</script>
|
|
<style scoped lang="scss">
|
$homeNavLengh: 8;
|
.home-container {
|
height: calc(100vh - 144px);
|
box-sizing: border-box;
|
overflow: hidden;
|
.homeCard {
|
width: 100%;
|
padding: 20px;
|
box-sizing: border-box;
|
background: #fff;
|
border-radius: 4px;
|
|
.main-card {
|
width: 100%;
|
height: 100%;
|
.cardTop {
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
margin-bottom: 20px;
|
.mainCardBtn {
|
margin: 0;
|
}
|
}
|
.pageBtn {
|
height: 60px;
|
display: flex;
|
align-items: center;
|
justify-content: right;
|
|
.demo-pagination-block + .demo-pagination-block {
|
margin-top: 10px;
|
}
|
.demo-pagination-block .demonstration {
|
margin-bottom: 16px;
|
}
|
}
|
}
|
&:last-of-type {
|
height: calc(100% - 100px);
|
}
|
}
|
.el-row {
|
display: flex;
|
align-items: center;
|
margin-bottom: 20px;
|
&:last-child {
|
margin-bottom: 0;
|
}
|
.grid-content {
|
align-items: center;
|
min-height: 36px;
|
}
|
|
.topInfo {
|
display: flex;
|
align-items: center;
|
font-size: 16px;
|
font-weight: bold;
|
|
& > div {
|
white-space: nowrap;
|
margin-right: 20px;
|
}
|
}
|
}
|
}
|
.stepItem {
|
width: 100%;
|
display: flex;
|
align-items: flex-start;
|
margin-bottom: 30px;
|
margin-left: 30px;
|
padding-bottom: 30px;
|
border-left: 2px solid #ccc;
|
&:first-of-type {
|
margin-top: 30px;
|
}
|
&:last-of-type {
|
margin-bottom: 0;
|
border-left: none;
|
}
|
.stepNum {
|
width: 30px;
|
height: 30px;
|
border-radius: 15px;
|
box-sizing: border-box;
|
color: #333;
|
border: 1px solid #999;
|
line-height: 28px;
|
text-align: center;
|
margin-right: 10px;
|
margin-left: -16px;
|
margin-top: -30px;
|
}
|
.stepCard {
|
width: 100%;
|
margin-top: -30px;
|
|
.box-card {
|
width: 100%;
|
&:deep(.el-card__header) {
|
padding: 10px 15px;
|
}
|
.card-header {
|
width: 100%;
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
& > div:first-of-type {
|
margin-right: 80px;
|
font-size: 18px;
|
font-weight: bold;
|
}
|
}
|
}
|
}
|
&:hover .card-header {
|
color: #0098f5;
|
}
|
&:hover .stepNum {
|
border: 2px solid #0098f5;
|
color: #0098f5;
|
}
|
}
|
</style>
|