领料出库

This commit is contained in:
jjLv 2024-11-12 15:05:17 +08:00
parent ac7f2bf296
commit 12acf2d76b
8 changed files with 2019 additions and 144 deletions

View File

@ -9,7 +9,7 @@ export function getListLeaseApply(query) {
})
}
// 领料申请到货-新增
// 领料申请-新增
export function addApplyInfo(data) {
return request({
url: '/material/lease_apply_info',
@ -18,6 +18,46 @@ export function addApplyInfo(data) {
})
}
// 领料申请-编辑
export function updateApplyInfo(data) {
return request({
url: '/material/lease_apply_info',
method: 'put',
data: data,
})
}
// 领料申请-详情信息
export function getApplyInfo(id) {
return request({
url: '/material/lease_apply_info/' + id,
method: 'get'
})
}
// 领料申请租赁单位下拉框
export function getListUnite(data) {
return request({
url: '/material/select/getUnitList',
method: 'post',
data: data,
})
}
// 领料申请租赁工程下拉框
export function getListProject(data) {
return request({
url: '/material/select/getProjectList',
method: 'post',
data: data,
})
}
//新购到货-二级列表详情
export function getPurchaseCheckInfo(query) {
return request({

View File

@ -9,35 +9,37 @@
:inline="true"
label-width="120px"
>
<el-form-item label="租赁单位" prop="arrivalTime">
<el-form-item label="租赁单位" prop="unitId">
<el-select
v-model="maForm.supplierId"
v-model="maForm.unitId"
placeholder="租赁单位"
clearable
filterable
style="width: 240px"
@change="uniteChange"
>
<el-option
v-for="item in supplierList"
:key="item.supplierId"
:label="item.supplier"
:value="item.supplierId"
v-for="item in uniteList"
:key="item.unitId"
:label="item.unitName"
:value="item.unitId"
/>
</el-select>
</el-form-item>
<el-form-item label="租赁工程" prop="supplierId">
<el-form-item label="租赁工程" prop="projectId">
<el-select
v-model="maForm.supplierId"
v-model="maForm.projectId"
placeholder="租赁工程"
clearable
filterable
style="width: 240px"
@change="projectChange"
>
<el-option
v-for="item in supplierList"
:key="item.supplierId"
:label="item.supplier"
:value="item.supplierId"
v-for="item in projectList"
:key="item.proId"
:label="item.proName"
:value="item.proId"
/>
</el-select>
</el-form-item>
@ -49,7 +51,6 @@
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
@input="taxRateChange"
/>
</el-form-item>
@ -61,14 +62,13 @@
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
@input="taxRateChange"
/>
</el-form-item>
<el-form-item label="类型规格" prop="deviceType">
<el-cascader
:key="propsKey"
v-model="maForm.deviceType"
v-model="deviceType"
:show-all-levels="false"
:options="equipmentTypeList"
:props="deviceTypeTreeProps"
@ -118,28 +118,31 @@
show-overflow-tooltip
/>
<el-table-column align="center" label="计量单位" prop="unitName" />
<el-table-column align="center" label="当前库存" prop="unitName" />
<el-table-column align="center" label="当前库存" prop="storageNum" />
<el-table-column label="预领数量" prop="purchaseNum" align="center">
<template v-slot="scope">
<el-input-number
v-model="scope.row.purchaseNum"
controls-position="right"
style="width: 100%"
:min="0"
:min="1"
></el-input-number>
</template>
</el-table-column>
<el-table-column align="center" label="出货数量" prop="unitName" />
<el-table-column label="备注" prop="purchaseTaxPrice" align="center">
<el-table-column
label="备注"
prop="remark"
align="center"
label-width="500px"
>
<template v-slot="scope">
<el-input-number
v-model="scope.row.purchaseTaxPrice"
<el-input
v-model="scope.row.remark"
controls-position="right"
style="width: 100%"
:min="0"
@change="purchaseTaxPriceChange(scope.row, scope.$index)"
></el-input-number>
></el-input>
</template>
</el-table-column>
@ -163,10 +166,13 @@
import {
getPurchaseCheckInfo,
equipmentTypeTree,
addApplyInfo,
updatePurchaseCheckInfo,
} from "@/api/purchase/goodsArrived";
import { getListFacturer } from "@/api/ma/supplier";
import {
getListProject,
getListUnite,
addApplyInfo,
updateApplyInfo,
} from "@/api/lease/apply";
import { getToken } from "@/utils/auth";
import {
uploadPurchaseFile,
@ -218,8 +224,10 @@ export default {
showSearch: true,
//
total: 0,
//
supplierList: [],
//
uniteList: [],
//
projectList: [],
//
equipmentTypeList: [],
//
@ -252,7 +260,8 @@ export default {
productionTime: "",
},
maForm: {
taxRate: 13,
unitId: undefined,
projectId: undefined,
arrivalTime: "",
purchaser: "",
remark: "",
@ -266,17 +275,31 @@ export default {
},
//
rules: {
// deviceType: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
deviceType: [
unitId: [
{
required: true,
message: "请选择规格型号",
message: "请选择租赁单位",
trigger: "blur",
},
],
projectId: [
{
required: true,
message: "请选择租赁工程",
trigger: "blur",
},
],
leasePerson: [
{
required: true,
message: "请输入领料人",
trigger: "blur",
},
],
phone: [
{
required: true,
message: "请输入联系电话",
trigger: "blur",
},
],
@ -313,44 +336,41 @@ export default {
console.log("isEdit", this.isEdit);
this.taskId = this.editTaskId;
this.id = this.editId;
this.getTaskInfo();
// this.getTaskInfo();
}
this.supplierInfoList();
this.projectInfoList();
this.equipmentType();
},
methods: {
//
taxRateChange(val) {
this.maForm.taxRate = val.replace(/[^\d.]/g, "");
this.equipmentList.forEach((item) => {
item.purchaseTaxPrice = item.purchasePrice * (1 + val / 100);
uniteChange(val) {
if (this.isEdit) {
getListProject({ unitId: val }).then((response) => {
if (response.data.length != 0) {
this.projectList = response.data;
} else {
this.projectList = [];
}
});
}
},
projectChange(val) {
if (this.isEdit) {
getListUnite({ projectId: val }).then((response) => {
if (response.data.length != 0) {
this.uniteList = response.data;
} else {
this.uniteList = [];
}
});
}
},
/** 租赁单位和工程-下拉选 */
projectInfoList() {
getListUnite({ id: null }).then((response) => {
this.uniteList = response.data;
});
},
//
purchaseTaxPriceChange(row, val) {
// this.equipmentList[val].purchasePrice = (row.purchaseTaxPrice/(1 + this.maForm.taxRate/100)).toFixed(2)
row.purchasePrice = (
row.purchaseTaxPrice /
(1 + this.maForm.taxRate / 100)
).toFixed(2);
},
//
purchasePriceChange(row, val) {
// this.equipmentList[val].purchaseTaxPrice = (row.purchasePrice*(1 + this.maForm.taxRate/100)).toFixed(2)
row.purchaseTaxPrice = (
row.purchasePrice *
(1 + this.maForm.taxRate / 100)
).toFixed(2);
},
/** 物资厂家-下拉选 */
supplierInfoList() {
let param = {
pageNum: 1,
pageSize: 100,
keyWord: undefined,
};
getListFacturer(param).then((response) => {
this.supplierList = response.rows;
getListProject({ id: null }).then((response) => {
this.projectList = response.data;
});
},
//
@ -410,7 +430,6 @@ export default {
obj.purchaseTaxPrice = 0;
obj.purchaseNum = 1;
obj.fixCode = "0";
obj.bmFileInfos = [];
tempList.push(obj);
break;
}
@ -437,12 +456,6 @@ export default {
this.equipmentList = [];
}
},
//
productionTimeChange(val) {
this.equipmentList.forEach((item) => {
item.productionTime = val;
});
},
//---
getTaskInfo() {
// this.loading = true;
@ -486,9 +499,9 @@ export default {
if (this.isEdit) {
console.log("编辑");
this.loading = true;
updatePurchaseCheckInfo({
purchaseCheckDetailsList: this.equipmentList,
purchaseCheckInfo: this.maForm,
updateApplyInfo({
leaseApplyDetailsList: this.equipmentList,
leaseApplyInfo: this.maForm,
}).then((response) => {
if (response.code == 200) {
this.$modal.msgSuccess("编辑成功");
@ -524,7 +537,7 @@ export default {
}
});
} else {
this.$modal.msgError("请先添加机具类型");
this.$modal.msgError("请先添加类型规格");
}
},
//
@ -673,6 +686,7 @@ export default {
.confirm("是否确认删除所选择的数据项?")
.then(() => {
this.deviceType.forEach((e, index) => {
console.log("e", e);
if (e[3] === row.typeId) {
this.deviceType.splice(index, 1);
this.propsKey++;

View File

@ -81,7 +81,7 @@
plain
icon="el-icon-plus"
size="mini"
@click="handleExport"
@click="handleSendAll"
>发布</el-button
>
</el-col>
@ -101,8 +101,14 @@
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="typeList" row-key="id" border>
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table
v-loading="loading"
:data="typeList"
row-key="id"
@selection-change="handleSelectionChange"
border
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column width="60" align="center" label="序号" type="index" />
<el-table-column
align="center"
@ -490,19 +496,12 @@ export default {
// })
// },
// /** */
// getStatusList(data) {
// let statusdataRes = queryStatusDataApi({
// // typeId:data.keeperData
// });
// this.statusDataRange = statusdataRes.data.map((item) => {
// return {
// label: item.dictLabel,
// value: item.dictValue,
// };
// });
// this.queryForm.statusDataRange = this.statusDataRange.value;
// },
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
getList() {
this.loading = true;
@ -562,35 +561,6 @@ export default {
};
this.resetForm("form");
},
// //
// handleSelectionChange(selection) {
// this.ids = selection.map((item) => item.taskId)
// this.single = selection.length != 1
// this.multiple = !selection.length
// },
/** 验收按钮 */
handleAccept(row) {
// let query = { taskId: row.taskId }
// this.$tab.closeOpenPage({
// path: '/store/newBuy/newDevicesAccept',
// query,
// })
this.$emit("acceptToolsApply", row.taskId);
},
//
handleCode(row) {
// let query = { taskId: row.taskId }
// this.$tab
// .closeOpenPage({
// path: '/store/newBuy/newDevicesCode',
// query,
// })
// .then(() => {
// this.$tab.refreshPage()
// })
this.$emit("codingTools", row.taskId);
},
//
getPrintTable(taskId) {
@ -639,16 +609,29 @@ export default {
/** 导出按钮操作 */
handleExport() {
this.download(
"/material/purchase_check_info/export",
"/material/lease_apply_info/export",
{ ...this.queryParams },
`新购到货_${new Date().getTime()}.xlsx`
`领料申请_${new Date().getTime()}.xlsx`
);
},
},
//
handleSend(row) {
console.log("发布");
//
handleSend(row) {
console.log("发布");
},
handleSendAll() {
if (this.ids.length == 0) {
this.$alert("请至少勾选一个领料申请", "提示", {
type: "warning",
confirmButtonText: "确定",
});
return;
} else {
const ids = this.ids.join(",");
console.log("发布");
}
},
},
watch: {

View File

@ -1,5 +1,72 @@
<template>
<div>
<el-form
:model="maForm"
ref="maForm"
size="small"
:rules="rules"
:inline="true"
label-width="120px"
>
<el-form-item label="租赁单位" prop="unitId">
<el-select
v-model="maForm.unitId"
placeholder="租赁单位"
clearable
filterable
style="width: 240px"
disabled
>
<el-option
v-for="item in uniteList"
:key="item.unitId"
:label="item.unitName"
:value="item.unitId"
/>
</el-select>
</el-form-item>
<el-form-item label="租赁工程" prop="projectId">
<el-select
v-model="maForm.projectId"
placeholder="租赁工程"
clearable
filterable
style="width: 240px"
disabled
>
<el-option
v-for="item in projectList"
:key="item.proId"
:label="item.proName"
:value="item.proId"
/>
</el-select>
</el-form-item>
<el-form-item label="领料人" prop="leasePerson">
<el-input
v-model="maForm.leasePerson"
placeholder="请输入领料人"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
disabled
/>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="maForm.phone"
placeholder="请输入联系电话"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
disabled
/>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
@ -68,6 +135,7 @@ import {
uploadPurchaseFile,
getPurchaseFileList,
} from "@/api/purchase/goodsAccept";
import { getApplyInfo } from "@/api/lease/apply";
import { getToken } from "@/utils/auth";
export default {
name: "QueryTools",
@ -109,6 +177,7 @@ export default {
//
open: false,
rowData: {},
maForm: {},
fileDataList: [
{ dictLabel: "合格证", fileType: "0", name: "", url: "" },
{ dictLabel: "型式试验报告", fileType: "1", name: "", url: "" },
@ -138,16 +207,14 @@ export default {
//-
getTaskInfo() {
this.loading = true;
getPurchaseCheckInfo({ taskId: this.taskId, id: this.id }).then(
(response) => {
this.taskInfo = response.data;
this.equipmentList = response.data.purchaseCheckDetailsList;
this.equipmentList.forEach((item) => {
item.fixCode = this.fixCodeList[Number(item.fixCode)];
});
this.loading = false;
}
);
getApplyInfo(this.id).then((response) => {
this.taskInfo = response.data;
this.equipmentList = response.data.purchaseCheckDetailsList;
this.equipmentList.forEach((item) => {
item.fixCode = this.fixCodeList[Number(item.fixCode)];
});
this.loading = false;
});
},
//
openFileDialog(row) {

View File

@ -0,0 +1,680 @@
<template>
<!-- 新增工机具 -->
<div>
<el-form
:model="maForm"
ref="maForm"
size="small"
:rules="rules"
:inline="true"
label-width="120px"
>
<el-form-item label="租赁单位" prop="arrivalTime">
<el-select
v-model="maForm.supplierId"
placeholder="租赁单位"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="item in supplierList"
:key="item.supplierId"
:label="item.supplier"
:value="item.supplierId"
/>
</el-select>
</el-form-item>
<el-form-item label="租赁工程" prop="supplierId">
<el-select
v-model="maForm.supplierId"
placeholder="租赁工程"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="item in supplierList"
:key="item.supplierId"
:label="item.supplier"
:value="item.supplierId"
/>
</el-select>
</el-form-item>
<el-form-item label="领料人" prop="leasePerson">
<el-input
v-model="maForm.leasePerson"
placeholder="请输入领料人"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
@input="taxRateChange"
/>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="maForm.phone"
placeholder="请输入联系电话"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
@input="taxRateChange"
/>
</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="handleSave"
>保存</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-if="isEdit">导出</el-button>
</el-col> -->
</el-row>
<el-table v-loading="loading" :data="equipmentList">
<el-table-column align="center" label="序号" type="index" width="55" />
<el-table-column
align="center"
label="类型名称"
prop="maTypeName"
show-overflow-tooltip
></el-table-column>
<el-table-column
align="center"
label="规格型号"
prop="typeName"
show-overflow-tooltip
/>
<el-table-column align="center" label="计量单位" prop="unitName" />
<el-table-column align="center" label="当前库存" prop="storageNum" />
<el-table-column label="预领数量" prop="purchaseNum" align="center">
</el-table-column>
<el-table-column align="center" label="已领数量" prop="unitName" />
<el-table-column align="center" label="管理模式" prop="unitName" />
<el-table-column align="center" label="出库数量" prop="unitName" />
<el-table-column label="备注" prop="remark" align="center">
<template v-slot="scope">
<el-input
v-model="scope.row.remark"
controls-position="right"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
<el-button
size="mini"
type="text"
icon="el-icon-delete"
style="color: red"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import {
getPurchaseCheckInfo,
equipmentTypeTree,
addApplyInfo,
updatePurchaseCheckInfo,
} from "@/api/purchase/goodsArrived";
import { getListFacturer } from "@/api/ma/supplier";
import { getToken } from "@/utils/auth";
import {
uploadPurchaseFile,
getPurchaseFileList,
} from "@/api/purchase/goodsAccept";
// import Treeselect from '@riophae/vue-treeselect'
// import '@riophae/vue-treeselect/dist/vue-treeselect.css'
// import HoldingpoleDialog from '@/components/HoldingpoleDialog/index.vue'
export default {
name: "AddTools",
dicts: ["purchase_task_status"],
// components: { Treeselect, HoldingpoleDialog },
props: {
isEdit: {
type: Boolean,
default: () => {
return false;
},
},
editTaskId: {
type: [String, Number],
default: () => {
return "";
},
},
editId: {
type: [String, Number],
default: () => {
return "";
},
},
},
data() {
return {
taskId: "",
// isEdit: false,
//
loading: false,
loadingTwo: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
supplierList: [],
//
equipmentTypeList: [],
//
equipmentList: [],
//
title: "",
//
open: false,
rowData: {},
fileDataList: [
{ dictLabel: "合格证", fileType: "0", name: "", url: "" },
{ dictLabel: "型式试验报告", fileType: "1", name: "", url: "" },
{ dictLabel: "出厂检测报告", fileType: "2", name: "", url: "" },
{ dictLabel: "第三方监测报告", fileType: "3", name: "", url: "" },
{ dictLabel: "其他报告", fileType: "4", name: "", url: "" },
],
//
dialogImageUrl: "",
dialogVisible: false,
//
upload: {
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/file/upload",
},
//
queryParams: {
equipmentId: undefined,
productionTime: "",
},
maForm: {
taxRate: 13,
arrivalTime: "",
purchaser: "",
remark: "",
purchaseNumber: "",
},
//
form: {},
defaultProps: {
children: "children",
label: "label",
},
//
rules: {
// deviceType: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
deviceType: [
{
required: true,
message: "请选择规格型号",
trigger: "blur",
},
],
// purchaser: [
// { required: true, message: "", trigger: "blur" }
// ]
},
deviceTypeTreeProps: {
children: "children",
label: "typeName",
// multiple: false,
value: "typeId",
multiple: true,
},
deviceType: [],
propsKey: 1000,
// taxRate:0,
};
},
computed: {
pickerOptions() {
return {
disabledDate(time) {
const currentDate = new Date();
currentDate.setHours(0, 0, 0, 0);
return time.getTime() < currentDate.getTime();
},
};
},
},
watch: {},
mounted() {
if (this.isEdit) {
console.log("isEdit", this.isEdit);
this.taskId = this.editTaskId;
this.id = this.editId;
this.getTaskInfo();
}
this.supplierInfoList();
this.equipmentType();
},
methods: {
//
taxRateChange(val) {
this.maForm.taxRate = val.replace(/[^\d.]/g, "");
this.equipmentList.forEach((item) => {
item.purchaseTaxPrice = item.purchasePrice * (1 + val / 100);
});
},
//
purchaseTaxPriceChange(row, val) {
// this.equipmentList[val].purchasePrice = (row.purchaseTaxPrice/(1 + this.maForm.taxRate/100)).toFixed(2)
row.purchasePrice = (
row.purchaseTaxPrice /
(1 + this.maForm.taxRate / 100)
).toFixed(2);
},
//
purchasePriceChange(row, val) {
// this.equipmentList[val].purchaseTaxPrice = (row.purchasePrice*(1 + this.maForm.taxRate/100)).toFixed(2)
row.purchaseTaxPrice = (
row.purchasePrice *
(1 + this.maForm.taxRate / 100)
).toFixed(2);
},
/** 物资厂家-下拉选 */
supplierInfoList() {
let param = {
pageNum: 1,
pageSize: 100,
keyWord: undefined,
};
getListFacturer(param).then((response) => {
this.supplierList = response.rows;
});
},
//
// changeSupplier(supplierId) {
// this.equipmentList.forEach((item) => {
// this.$set(item, 'supplierId', supplierId)
// })
// },
/** 机具类型 */
equipmentType() {
equipmentTypeTree().then((response) => {
this.equipmentTypeList = response.data;
this.equipmentTypeList.forEach((item, index) => {
if (item.children && item.children.length > 0) {
item.children.forEach((item2, index2) => {
if (item2.children && item2.children.length > 0) {
item2.children.forEach((item3) => {
if (item3.children && item3.children.length > 0) {
item3.children.forEach((item4) => {
item4.maTypeName = item3.typeName;
item4.specificationType = item4.typeName;
this.$set(item4, "purchaseTaxPrice", 0);
this.$set(item4, "purchasePrice", 0);
});
}
});
}
});
}
});
//
let selectList = [];
this.equipmentList.forEach((e) => {
selectList.push(
this.getParentsById(this.equipmentTypeList, e.typeId)
);
});
this.deviceType = selectList;
});
},
//
deviceTypeChange(val) {
const deviceTypeList = this.$refs.deviceTypeCascader.getCheckedNodes();
let tempList = [];
if (val.length > 0) {
const items = val.map((e) => {
return e[3];
});
for (let i of items) {
for (let z of deviceTypeList) {
if (z.data.typeId === i) {
const obj = JSON.parse(JSON.stringify(z.data));
// obj.supplierId = ''
obj.createTime = null;
obj.productionTime = "";
obj.purchaseTaxPrice = 0;
obj.purchaseTaxPrice = 0;
obj.purchaseNum = 1;
obj.fixCode = "0";
obj.bmFileInfos = [];
tempList.push(obj);
break;
}
}
}
const newDataListNew = [...this.equipmentList, ...tempList];
const map = new Map();
for (let item of newDataListNew) {
if (!map.has(item.typeId)) {
map.set(item.typeId, item);
}
}
const newArray = [...map.values()];
let newArray_array = [];
items.forEach((e) => {
newArray.forEach((j) => {
if (e == j.typeId) {
newArray_array.push(j);
}
});
});
this.equipmentList = newArray_array;
} else {
this.equipmentList = [];
}
},
//
productionTimeChange(val) {
this.equipmentList.forEach((item) => {
item.productionTime = val;
});
},
//---
getTaskInfo() {
// this.loading = true;
getPurchaseCheckInfo({
taskId: this.taskId,
id: this.id,
taskStatus: 1,
}).then((response) => {
this.maForm = response.data.purchaseCheckInfo;
this.maForm.id = response.data.purchaseCheckInfo.id;
this.maForm.taskId = response.data.purchaseCheckInfo.taskId;
this.maForm.arrivalTime = response.data.purchaseCheckInfo.arrivalTime;
this.maForm.supplierId = response.data.purchaseCheckInfo.supplierId;
this.maForm.remark = response.data.purchaseCheckInfo.remark;
this.maForm.taxRate = response.data.purchaseCheckInfo.taxRate;
// this.maForm.purchaseNumber = response.data.purchaseNumber
// this.maForm.productionTime = response.data.purchaseCheckInfo.productionTime
this.equipmentList = response.data.purchaseCheckDetailsList;
console.log(this.equipmentList);
// this.loading = false;
});
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.roleId);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
/** 保存按钮操作 */
handleSave() {
// console.log(this.equipmentList)
if (this.equipmentList.length > 0) {
this.$refs["maForm"].validate((valid) => {
if (valid) {
this.maForm.taskId = this.taskId;
// this.maForm.checkDetailsList = this.equipmentList
this.$modal
.confirm("是否确认保存当前页面")
.then(function () {})
.then(() => {
if (this.isEdit) {
console.log("编辑");
this.loading = true;
updatePurchaseCheckInfo({
purchaseCheckDetailsList: this.equipmentList,
purchaseCheckInfo: this.maForm,
}).then((response) => {
if (response.code == 200) {
this.$modal.msgSuccess("编辑成功");
// this.$tab.closeOpenPage({
// path: '/store/newBuy/newDevicesList',
// })
this.$emit("addToolsSuccess");
}
this.loading = false;
});
} else if (!this.isEdit) {
console.log("新增");
// console.log(this.equipmentList)
this.loading = true;
addApplyInfo({
leaseApplyDetailsList: this.equipmentList,
leaseApplyInfo: this.maForm,
}).then((response) => {
if (response.code == 200) {
this.$modal.msgSuccess("新增成功");
// this.$tab.closeOpenPage({
// path: '/store/newBuy/newDevicesList',
// })
this.$emit("addToolsSuccess");
}
this.loading = false;
});
}
})
.catch(() => {});
}
});
} else {
this.$modal.msgError("请先添加机具类型");
}
},
//
openFileDialog(row) {
this.rowData = row;
this.fileDataList = [
{ dictLabel: "合格证", fileType: "0", name: "", url: "" },
{ dictLabel: "型式试验报告", fileType: "1", name: "", url: "" },
{ dictLabel: "出厂检测报告", fileType: "2", name: "", url: "" },
{ dictLabel: "第三方监测报告", fileType: "3", name: "", url: "" },
{ dictLabel: "其他报告", fileType: "4", name: "", url: "" },
];
if (this.taskId == "") {
// console.log(this.rowData)
// console.log(this.rowData.bmFileInfos)
if (this.rowData.bmFileInfos.length > 0) {
this.rowData.bmFileInfos.forEach((item) => {
let index = this.fileDataList.findIndex(
(v) => v.fileType == item.fileType
);
this.fileDataList[index].name = item.name;
this.fileDataList[index].url = item.url;
});
}
} else {
this.getFileData();
}
this.open = true;
},
getFileData() {
let param = {
modelId: this.rowData.typeId,
taskType: 0,
taskId: this.rowData.taskId,
};
getPurchaseFileList(param)
.then((response) => {
if (response.rows.length > 0) {
response.rows.forEach((item) => {
let index = this.fileDataList.findIndex(
(v) => v.fileType == item.fileType
);
this.fileDataList[index].name = item.name;
this.fileDataList[index].url = item.url;
});
}
})
.catch(() => {});
},
beforeFileUpload(row) {
this.rowData.fileType = row.fileType;
},
//
handleFileSuccess(response, file, fileList) {
if (response.code == 200) {
if (this.taskId == "") {
//
// console.log(response)
// console.log(this.rowData)
// console.log(this.rowData.bmFileInfos)
let obj = {
taskId: this.taskId,
taskType: "0",
name: response.data.name,
url: response.data.url,
modelId: this.rowData.typeId,
fileType: this.rowData.fileType,
// "dictLabel": this.rowData.dictLabel,
};
//
let index = this.fileDataList.findIndex(
(v) => v.fileType == this.rowData.fileType
);
this.fileDataList[index].name = response.data.name;
this.fileDataList[index].url = response.data.url;
//-
if (this.rowData.bmFileInfos.length > 0) {
let index2 = this.rowData.bmFileInfos.findIndex(
(v) => v.fileType == this.rowData.fileType
);
if (index2 > -1) {
//-
this.rowData.bmFileInfos.splice(index2, 0, obj);
} else {
//-
this.rowData.bmFileInfos.push(obj);
}
} else {
this.rowData.bmFileInfos.push(obj);
}
} else {
//
let param = {
taskId: this.taskId,
taskType: "0",
name: response.data.name,
url: response.data.url,
modelId: this.rowData.typeId,
fileType: this.rowData.fileType,
// "dictLabel": this.rowData.dictLabel,
};
uploadPurchaseFile(param)
.then((response) => {
this.$modal.msgSuccess("上传成功");
this.getFileData();
})
.catch(() => {
this.$modal.msgError("上传失败");
});
}
}
},
//
picturePreview(file) {
this.dialogImageUrl = file.url;
const parts = file.name.split(".");
const extension = parts.pop();
if (extension === "doc" || extension === "docx" || extension === "pdf") {
const windowName = file.name;
window.open(file.url, windowName);
} else {
this.dialogVisible = true;
}
},
//
getParentsById(list, id) {
for (let i in list) {
if (list[i].typeId == id) {
//value
return [list[i].typeId];
}
if (list[i].children) {
let node = this.getParentsById(list[i].children, id);
if (node !== undefined) {
//
node.unshift(list[i].typeId);
return node;
}
}
}
},
/** 删除按钮操作 */
handleDelete(row) {
// console.log(row.id)
this.$modal
.confirm("是否确认删除所选择的数据项?")
.then(() => {
this.deviceType.forEach((e, index) => {
if (e[3] === row.typeId) {
this.deviceType.splice(index, 1);
this.propsKey++;
}
});
this.equipmentList.forEach((item, index) => {
if (item.id == row.id) {
this.equipmentList.splice(index, 1);
}
});
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"/material/purchase_check_info/exportDetails",
{ taskId: this.taskId },
`新购到货详情_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style lang="scss">
.popper-select {
.el-cascader-panel .el-scrollbar .el-checkbox {
display: none;
}
.el-cascader-panel .el-scrollbar:nth-child(4) .el-checkbox {
display: block !important;
}
}
</style>

View File

@ -0,0 +1,639 @@
<template>
<div>
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="日期">
<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 label="关键字" 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 label="状态" prop="typeId">
<el-select
v-model="queryParams.typeId"
placeholder="请选择状态"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.lease_out_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">
<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" />
<el-table-column width="60" align="center" label="序号" type="index" />
<el-table-column
align="center"
width="160"
label="申请时间"
prop="arrivalTime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="申请人"
width="150"
align="center"
prop="code"
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁单位"
align="center"
prop="purchaseMaTypeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁工程"
align="center"
prop="purchaseMaNumber"
:show-overflow-tooltip="true"
/>
<el-table-column
label="领料物资类型"
align="center"
prop="purchaseTaxPrice"
width="110px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="协议号"
align="center"
prop="purchasePrice"
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁申请单号"
align="center"
prop="taxRate"
width="110px"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
label="领料人"
align="center"
prop="supplier"
:show-overflow-tooltip="true"
/>
<el-table-column
label="领料人电话"
align="center"
prop="createBy"
width="120px"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作时间"
align="center"
width="160"
prop="createTime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
prop="status"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.lease_out_status"
:value="scope.row.status"
/>
</template>
</el-table-column>
<el-table-column
label="备注"
align="center"
width="100"
prop="remark"
:show-overflow-tooltip="true"
/>
<el-table-column label="操作" align="center" width="300">
<template slot-scope="scope">
<el-button
size="mini"
style="margin-bottom: 10px"
type="normal"
@click="handleView(scope.row)"
v-if="scope.row.status != '2'"
>查看</el-button
>
<el-button
size="mini"
style="margin-bottom: 10px"
type="primary"
@click="handleUpdate(scope.row)"
v-if="scope.row.status != '2'"
v-hasPermi="['purchase:info:edit']"
>出库</el-button
>
<el-button
size="mini"
type="warning"
@click="handlePrint(scope.row)"
v-if="scope.row.status == '2'"
>领料单</el-button
>
<el-button
size="mini"
type="warning"
@click="handlePrint(scope.row)"
v-if="scope.row.status == '2'"
>出库检验单</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"
/>
<!-- 验收单弹窗 -->
<el-dialog
:title="title"
:visible.sync="openPrint"
width="1100px"
append-to-body
>
<div style="height: 500px; overflow-y: scroll">
<vue-easy-print tableShow ref="remarksPrintRef" class="print">
<div
class="title"
style="text-align: center; font-weight: 600; font-size: 16px"
>
机具设备到货验收单
</div>
<div
class="info"
style="margin-top: 10px; display: flex; flex-wrap: wrap"
>
<div
class="item"
style="
width: 100%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
"
>
<span>单据编号</span>
</div>
<div
class="item"
style="
width: 50%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
"
>
<span>生产厂家供应商</span>
</div>
<div
class="item"
style="
width: 50%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
"
>
<span>到货日期</span>
</div>
</div>
<el-table
:data="printTableData"
class="table"
style="margin-top: 20px; width: 1000px; padding-bottom: 1px"
border
>
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="序号" align="center" type="index" row="2" />
<el-table-column
label="物资名称"
align="center"
prop="machineTypeName"
/>
<el-table-column
label="规格型号"
align="center"
prop="specificationType"
/>
<el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="配送信息" align="center">
<el-table-column
label="到货数量"
align="center"
prop="purchaseNum"
/>
<el-table-column
label="验收结论"
align="center"
prop="purchaseNum"
/>
<el-table-column label="质保质量" align="center">
<el-table-column
label="实收份数"
align="center"
prop="purchaseNum"
/>
<el-table-column
label="符合要求"
align="center"
prop="purchaseNum"
/>
</el-table-column>
</el-table-column>
<el-table-column label="备注" align="center" prop="unitName" />
<!-- <el-table-column-->
<!-- label="合格证及技术资料"-->
<!-- align="center"-->
<!-- prop=""-->
<!-- />-->
<!-- <el-table-column label="包装" align="center" prop="" />-->
</el-table>
<div
class="fillIn"
style="
margin-top: 20px;
display: flex;
justify-content: space-between;
"
>
<div class="item" style="width: 33%">
<div>
<span>供应科</span>
</div>
</div>
<div class="item" style="width: 33%">
<div>
<span>生产技术科</span>
</div>
</div>
<div class="item" style="width: 33%">
<div>
<span>库管班</span>
</div>
</div>
</div>
</vue-easy-print>
</div>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="print"> </el-button>
<el-button @click="openPrint = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getListLeaseApply,
getPurchaseCheckInfo,
getAcceptanceForm,
purchaseCheckInfoRemove,
queryStatusDataApi,
} from "@/api/lease/apply";
export default {
name: "Home",
dicts: ["lease_out_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: [],
//
chosenUserList: [],
userList: [],
//
title: "",
//
dateRange: [],
statusDataRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
time: null, //
name: undefined,
typeId: "",
keyWord: "",
},
form: {
remark: "",
},
//
rules: {
remark: [
{ required: true, message: "通知内容不能为空", trigger: "blur" },
],
},
openPrint: false,
printData: {},
printTableData: [],
//
supplierStr: "",
};
},
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
// })
// },
// /** */
// getStatusList(data) {
// let statusdataRes = queryStatusDataApi({
// // typeId:data.keeperData
// });
// this.statusDataRange = statusdataRes.data.map((item) => {
// return {
// label: item.dictLabel,
// value: item.dictValue,
// };
// });
// this.queryForm.statusDataRange = this.statusDataRange.value;
// },
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
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],
typeId: this.queryParams.typeId,
pageSize: this.queryParams.pageSize,
pageNum: this.queryParams.pageNum,
};
getListLeaseApply(this.addDateRange(params)).then((response) => {
this.typeList = response.rows;
this.total = response.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, row.id);
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$emit("editTools", row.taskId, row.id);
},
//----
getNowTime() {
var today = new Date();
var year = today.getFullYear(); //
var month = today.getMonth() + 1; //
var day = today.getDate(); //
return year + "-" + month + "-" + day;
},
//
reset() {
this.form = {
taskId: "",
remark: "",
};
this.resetForm("form");
},
// //
// handleSelectionChange(selection) {
// this.ids = selection.map((item) => item.taskId)
// this.single = selection.length != 1
// this.multiple = !selection.length
// },
/** 验收按钮 */
handleAccept(row) {
// let query = { taskId: row.taskId }
// this.$tab.closeOpenPage({
// path: '/store/newBuy/newDevicesAccept',
// query,
// })
this.$emit("acceptToolsApply", row.taskId);
},
//
handleCode(row) {
// let query = { taskId: row.taskId }
// this.$tab
// .closeOpenPage({
// path: '/store/newBuy/newDevicesCode',
// query,
// })
// .then(() => {
// this.$tab.refreshPage()
// })
this.$emit("codingTools", row.taskId);
},
//
getPrintTable(taskId) {
getAcceptanceForm({ taskId: taskId }).then((response) => {
this.printData = response.data;
this.printTableData = response.data.checkDetailsList;
let supplierList = [];
this.printTableData.forEach((e) => {
if (e.supplier) {
supplierList.push(e.supplier);
}
});
supplierList = [...new Set(supplierList)];
this.supplierStr = supplierList.join(",");
});
},
//
handlePrint(row) {
// this.query.taskId = row.taskId
// this.getPrintTable(row.taskId)
this.openPrint = true;
this.title = "机具设备到货验收单";
},
//
print() {
this.$refs.remarksPrintRef.print();
},
/** 删除按钮操作 */
handleDeletePurchase(row) {
// console.log(row)
this.$modal
.confirm("是否确认删除所选择的数据项?")
.then(function () {
return purchaseCheckInfoRemove(row.id);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"/material/purchase_check_info/export",
{ ...this.queryParams },
`新购到货_${new Date().getTime()}.xlsx`
);
},
},
//
handleSend(row) {
console.log("发布");
},
handleSendAll() {},
watch: {
$route: {
handler(to) {
if (to.query.keyWord) {
this.queryParams.keyWord = to.query.keyWord;
}
},
deep: true,
immediate: true,
},
},
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 70px !important;
margin-bottom: 10px;
}
</style>

View File

@ -0,0 +1,365 @@
<template>
<div>
<el-form
:model="maForm"
ref="maForm"
size="small"
:rules="rules"
:inline="true"
label-width="120px"
>
<el-form-item label="租赁单位" prop="unitId">
<el-select
v-model="maForm.unitId"
placeholder="租赁单位"
clearable
filterable
style="width: 240px"
disabled
>
<el-option
v-for="item in uniteList"
:key="item.unitId"
:label="item.unitName"
:value="item.unitId"
/>
</el-select>
</el-form-item>
<el-form-item label="租赁工程" prop="projectId">
<el-select
v-model="maForm.projectId"
placeholder="租赁工程"
clearable
filterable
style="width: 240px"
disabled
>
<el-option
v-for="item in projectList"
:key="item.proId"
:label="item.proName"
:value="item.proId"
/>
</el-select>
</el-form-item>
<el-form-item label="领料人" prop="leasePerson">
<el-input
v-model="maForm.leasePerson"
placeholder="请输入领料人"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
disabled
/>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="maForm.phone"
placeholder="请输入联系电话"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
disabled
/>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button
>
</el-col>
</el-row>
<el-table v-loading="loading" :data="equipmentList">
<el-table-column label="序号" align="center" type="index" />
<el-table-column
label="类型名称"
align="center"
prop="maTypeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="计量单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
label="当前库存"
align="center"
prop="purchaseNum"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
label="预领数量"
align="center"
prop="purchaseTaxPrice"
:show-overflow-tooltip="true"
/>
<el-table-column
label="出库数量"
align="center"
prop="purchasePrice"
:show-overflow-tooltip="true"
/>
<el-table-column
label="备注"
align="center"
prop="remark"
:show-overflow-tooltip="true"
/>
</el-table>
</div>
</template>
<script>
import { getPurchaseCheckInfo } from "@/api/purchase/goodsArrived";
import {
uploadPurchaseFile,
getPurchaseFileList,
} from "@/api/purchase/goodsAccept";
import { getToken } from "@/utils/auth";
export default {
name: "QueryTools",
dicts: ["purchase_task_status"],
components: {
// UploadImg,
},
props: {
isView: {
type: Boolean,
default: () => {
return false;
},
},
queryTaskId: {
type: [String, Number],
default: () => {
return "";
},
},
queryId: {
type: [String, Number],
default: () => {
return "";
},
},
},
data() {
return {
fixCodeList: ["否", "是"],
//ID
taskId: "",
//
loading: true,
//
taskInfo: {},
//
equipmentList: [],
//
open: false,
rowData: {},
maForm: {},
fileDataList: [
{ dictLabel: "合格证", fileType: "0", name: "", url: "" },
{ dictLabel: "型式试验报告", fileType: "1", name: "", url: "" },
{ dictLabel: "出厂检测报告", fileType: "2", name: "", url: "" },
{ dictLabel: "第三方监测报告", fileType: "3", name: "", url: "" },
{ dictLabel: "其他报告", fileType: "4", name: "", url: "" },
],
//
upload: {
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/file/upload",
},
//
dialogImageUrl: "",
dialogVisible: false,
};
},
computed: {},
mounted() {
this.taskId = this.queryTaskId;
this.id = this.queryId;
this.getTaskInfo();
},
methods: {
//-
getTaskInfo() {
this.loading = true;
getPurchaseCheckInfo({ taskId: this.taskId, id: this.id }).then(
(response) => {
this.taskInfo = response.data;
this.equipmentList = response.data.purchaseCheckDetailsList;
this.equipmentList.forEach((item) => {
item.fixCode = this.fixCodeList[Number(item.fixCode)];
});
this.loading = false;
}
);
},
//
openFileDialog(row) {
this.rowData = row;
this.fileDataList = [
{ dictLabel: "合格证", fileType: "0", name: "", url: "" },
{ dictLabel: "型式试验报告", fileType: "1", name: "", url: "" },
{ dictLabel: "出厂检测报告", fileType: "2", name: "", url: "" },
{ dictLabel: "第三方监测报告", fileType: "3", name: "", url: "" },
{ dictLabel: "其他报告", fileType: "4", name: "", url: "" },
];
this.getFileData();
this.open = true;
},
getFileData() {
let param = {
modelId: this.rowData.typeId,
taskType: 0,
taskId: this.rowData.taskId,
};
getPurchaseFileList(param)
.then((response) => {
if (response.rows.length > 0) {
response.rows.forEach((item) => {
let index = this.fileDataList.findIndex(
(v) => v.fileType == item.fileType
);
this.fileDataList[index].name = item.name;
this.fileDataList[index].url = item.url;
});
}
})
.catch(() => {});
},
beforeFileUpload(row) {
this.rowData.fileType = row.fileType;
},
//
handleFileSuccess(response, file, fileList) {
if (response.code == 200) {
if (this.taskId == "") {
//
// console.log(response)
// console.log(this.rowData)
// console.log(this.rowData.bmFileInfos)
let obj = {
taskId: this.taskId,
taskType: "0",
name: response.data.name,
url: response.data.url,
modelId: this.rowData.typeId,
fileType: this.rowData.fileType,
// "dictLabel": this.rowData.dictLabel,
};
//
let index = this.fileDataList.findIndex(
(v) => v.fileType == this.rowData.fileType
);
this.fileDataList[index].name = response.data.name;
this.fileDataList[index].url = response.data.url;
//-
if (this.rowData.bmFileInfos.length > 0) {
let index2 = this.rowData.bmFileInfos.findIndex(
(v) => v.fileType == this.rowData.fileType
);
if (index2 > -1) {
//-
this.rowData.bmFileInfos.splice(index2, 0, obj);
} else {
//-
this.rowData.bmFileInfos.push(obj);
}
} else {
this.rowData.bmFileInfos.push(obj);
}
} else {
//
let param = {
taskId: this.taskId,
taskType: "0",
name: response.data.name,
url: response.data.url,
modelId: this.rowData.typeId,
fileType: this.rowData.fileType,
// "dictLabel": this.rowData.dictLabel,
};
uploadPurchaseFile(param)
.then((response) => {
this.$modal.msgSuccess("上传成功");
this.getFileData();
})
.catch(() => {
this.$modal.msgError("上传失败");
});
}
}
},
//
picturePreview(file) {
this.dialogImageUrl = file.url;
const parts = file.name.split(".");
const extension = parts.pop();
if (extension === "doc" || extension === "docx" || extension === "pdf") {
const windowName = file.name;
window.open(file.url, windowName);
} else {
this.dialogVisible = true;
}
},
/** 导出按钮操作 */
handleExport() {
this.download(
"/material/purchase_check_info/exportDetails",
{ taskId: this.taskId },
`新购到货详情_${new Date().getTime()}.xlsx`
);
},
},
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
//css
::v-deep.disabled {
.el-upload--picture-card {
display: none;
}
}
.custom-textarea {
width: 300px;
height: 100px;
}
.accept-img {
color: #409eff;
.a-two {
margin-left: 20px;
}
}
.left-tip {
font-size: 16px;
letter-spacing: 1px;
}
</style>

View File

@ -0,0 +1,87 @@
<template>
<!-- 新购工机具管理 -->
<div class="app-container">
<PageHeaderApply
v-if="isShowComponent != 'Home'"
:pageContent="pageContent"
@goBack="goBack"
/>
<component
:is="isShowComponent"
:isEdit="isEdit"
:editTaskId="editTaskId"
:editId="editId"
:queryTaskId="queryTaskId"
:queryId="queryId"
:isView="isView"
:codingTaskId="codingTaskId"
@addTools="addTools"
@editTools="editTools"
@addToolsSuccess="addToolsSuccess"
@queryTools="queryTools"
/>
</div>
</template>
<script>
import PageHeaderApply from "@/components/pageHeaderApply";
import Home from "./component/homeOutBound.vue"; //
import AddTools from "./component/addToolsOutBound.vue"; //
import QueryTools from "./component/queryToolsOutBound.vue"; //
export default {
components: {
Home,
PageHeaderApply,
AddTools,
QueryTools,
},
data() {
return {
isShowComponent: "Home",
pageContent: "领料申请",
isEdit: false,
editTaskId: "",
editId: "",
queryId: "",
queryTaskId: "",
isView: false,
codingTaskId: "",
};
},
methods: {
/* 新增工机具 */
addTools() {
this.isEdit = false;
this.editTaskId = "";
this.queryTaskId = "";
this.pageContent = "领料申请";
this.isShowComponent = "AddTools";
},
/* 新增成功 */
addToolsSuccess() {
this.isShowComponent = "Home";
},
/* 编辑工机具 */
editTools(taskId, id) {
this.isEdit = true;
this.pageContent = "领料编辑";
this.editTaskId = taskId;
this.editId = id;
this.isShowComponent = "AddTools";
},
/* 查询工机具 */
queryTools(taskId, id) {
this.isView = true;
this.pageContent = "详情信息";
this.queryTaskId = taskId;
this.queryId = id;
this.isShowComponent = "QueryTools";
},
/* 返回按钮 */
goBack() {
this.isShowComponent = "Home";
},
},
};
</script>