bonus-ui/src/views/material/repair/inventoryScrap/component/homeApply.vue

381 lines
10 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item>
<el-date-picker
v-model="queryParams.time"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 240px"
>
</el-date-picker>
</el-form-item>
<el-form-item prop="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item prop="taskStatus">
<el-select
v-model="queryParams.taskStatus"
placeholder="请选择状态"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.inventory_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索
</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置
</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增报废
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
@click="batchPass"
icon="el-icon-check"
size="mini"
:disabled="multiple"
>通过</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
@click="batchReject"
icon="el-icon-close"
size="mini"
:disabled="multiple"
>驳回</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="typeList" row-key="id" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" align="center" :selectable="selectable"/>
<el-table-column width="60" align="center" label="序号" type="index" >
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="报废单号" align="center" prop="scrapCode" width="160" :show-overflow-tooltip="true"/>
<el-table-column label="物资类型" align="center" prop="type" :show-overflow-tooltip="true"/>
<el-table-column label="提交人" align="center" prop="createName" :show-overflow-tooltip="true"/>
<el-table-column label="提交时间" align="center" prop="createTime" :show-overflow-tooltip="true"/>
<el-table-column label="状态" align="center" prop="taskStatus" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope">
<dict-tag :options="dict.type.inventory_status" :value="scope.row.taskStatus"/>
</template>
</el-table-column>
<el-table-column label="操作" align="center" >
<template slot-scope="scope">
<el-button size="mini" style="margin-bottom: 10px" type="normal"
@click="handleView(scope.row)"
>查看</el-button>
<el-button size="mini" style="margin-bottom: 10px" type="primary"
@click="handleUpdate(scope.row)" v-if="scope.row.taskStatus != 1" v-hasPermi="['purchase:info:edit']"
>编辑</el-button>
<el-button size="mini" type="danger"
@click="handleDeletePurchase(scope.row)" v-if="scope.row.taskStatus != 1" v-hasPermi="['purchase:info:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {
applyRemove,
} from "@/api/lease/apply";
import { getInventoryList,inventoryPass } from '@/api/repair/scrapLedgerReview';
import vueEasyPrint from "vue-easy-print";
import printJS from 'print-js';
export default {
name: "Home",
dicts: ["inventory_status", ],
components: { vueEasyPrint },
data() {
return {
// 遮罩层
loading: true,
loadingTwo: true,
updateTime: "",
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
showPeople: false,
peopleOpen: false,
// 总条数
total: 0,
totalTwo: 0,
//搜索下拉数据
typesList: [],
modelList: [],
// 字典表格数据
typeList: [],
getListPeople: [],
configUserList: [],
phoneNumbers: [],
userList: [],
// 弹出层标题
title: "",
// 日期范围
dateRange: [],
statusDataRange: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
time: null, //申请时间
keyWord: "",
taskStatus: null, //申请时间
},
form: {
remark: "",
},
open: false,
checkDataInfo: {},
// 供应商
supplierStr: "",
// 领料任务详情数据
leaseApplyData: {},
sendTemp: [],
// 编码管理查看弹窗
showView: false,
titleView: "",
getListViewInfo: [],
};
},
created() {
// this.getStatusList();
this.getList();
// this.getTypeList()
},
methods: {
// getTypeList() {
// getTypeList({ level: '3' }).then((response) => {
// this.typesList = response.data
// })
// getTypeList({ level: '4' }).then((response) => {
// this.modelList = response.data
// })
// },
// 多选框选中数据
handleSelectionChange(selection) {
this.sendTemp = [];
this.ids = selection.map((item) => item.taskId);
// selection.forEach((item) => {
// this.sendTemp.push({ id: item.id, taskId: item.taskId });
// });
this.single = selection.length != 1;
this.multiple = !selection.length;
},
//是否可用勾选框
selectable(row) {
if (row.taskStatus != 1 && row.taskStatus!= 2) {
return true;
} else {
return false;
}
},
getList() {
this.loading = true;
const params = {
keyWord: this.queryParams.keyWord,
startTime: this.queryParams.time && this.queryParams.time[0],
endTime: this.queryParams.time && this.queryParams.time[1],
pageSize: this.queryParams.pageSize,
pageNum: this.queryParams.pageNum,
taskStatus: this.queryParams.taskStatus,
};
getInventoryList(params).then((response) => {
this.typeList = response.data.rows;
this.total = response.data.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.time = [];
this.resetForm("queryForm");
this.queryParams.keyWord = "";
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
this.$emit("addTools");
},
/** 查看按钮操作 */
handleView(row) {
this.$emit("queryTools", row.taskId);
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$emit("editTools", row.taskId, row.id);
},
// 表单重置
reset() {
this.form = {
taskId: "",
remark: "",
};
this.resetForm("form");
},
// 关闭弹窗并刷新页面
closeDialogAndRefresh() {
this.openPrint = false;
},
codeInfo(row) {
this.showView = true;
this.titleView = "查看";
this.getListViewInfo = row.maCodeVoList;
},
/** 删除按钮操作 */
handleDeletePurchase(row) {
console.log('🚀 ~ handleDeletePurchase ~ row:', row)
this.$modal
.confirm("是否确认删除所选择的数据项")
.then(function () {
return applyRemove({ taskId: row.taskId })
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
//通过
batchPass() {
if (this.ids.length == 0) {
this.$alert("未勾选数据", "提示", {
type: "warning",
confirmButtonText: "确定",
});
return;
}
inventoryPass({taskIdList:this.ids,status:1}).then((response) => {
this.$modal.msgSuccess("通过成功");
this.ids = [];
this.getList();
this.$refs.multipleTable.clearSelection();
});
},
//驳回
batchReject(){
if (this.ids.length == 0) {
this.$alert("未勾选数据", "提示", {
type: "warning",
confirmButtonText: "确定",
});
return;
}
inventoryPass({taskIdList:this.ids,status:2}).then((response) => {
this.$modal.msgSuccess("驳回成功");
this.ids = [];
this.getList();
this.$refs.multipleTable.clearSelection();
});
}
},
};
</script>
<style lang="scss" scoped>
// ::v-deep.el-table .fixed-width .el-button--mini {
// width: 70px !important;
// margin-bottom: 10px;
// }
.image-type {
/* 旋转图片 */
transform: rotate(-90deg);
/* 确保旋转后的图片不会超出容器 */
max-width: 100%;
/* 保持图片的宽高比 */
width: 40px;
height: 100px;
}
.sign-type{
width: 100px;
height: 40px;
}
</style>