领料退料
This commit is contained in:
parent
304038a788
commit
31253243f0
|
|
@ -0,0 +1,304 @@
|
|||
<template>
|
||||
<div class="app-container" id="">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
|
||||
<el-form-item label="关键字" prop="keyWord">
|
||||
<el-input
|
||||
v-model="queryParams.keyWord"
|
||||
placeholder="请输入关键字"
|
||||
clearable
|
||||
:maxlength="20"
|
||||
style="width: 240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 日期范围 -->
|
||||
<el-form-item label="退料日期" prop="timeRange">
|
||||
<el-date-picker
|
||||
v-model="queryParams.timeRange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
clearable
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
/>
|
||||
</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="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出数据</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
<el-table v-loading="loading" :data="tableList" :span-method="objectSpanMethod">
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template scope="scope">
|
||||
<span v-if="scope.$index == 0">合计:</span>
|
||||
<span v-else>{{ (queryParams.pageNum - 1) * 10 + scope.$index }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工器具名称" align="center" prop="constructionType" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="退料数量" align="center" prop="storeNum" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<!-- 当 manageType 为 '编码' 时,使用可点击的 span -->
|
||||
<span class="clickText" v-if="scope.row.manageType == '编码'" @click="openRecords(scope.row)">
|
||||
{{ scope.row.storeNum }}
|
||||
</span>
|
||||
<!-- 否则,直接显示数字 -->
|
||||
<span v-else>
|
||||
{{ scope.row.storeNum }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="退料日期" align="center" prop="leaseTime" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="退料班组" align="center" prop="leasePer" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="退料工程" align="center" prop="leasePro" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="退料人" align="center" prop="leasePeo" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="操作人" align="center" prop="out" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="退料单号" align="center" prop="code" :show-overflow-tooltip="true" />
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
:page-sizes="[5, 10, 15, 20, 30]"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 在库编码设备弹窗-->
|
||||
<el-dialog :title="title" :visible.sync="openRecord" width="1200px" append-to-body>
|
||||
<el-form :model="dialogQuery" ref="dialogQuery" size="small" :inline="true" label-width="80px">
|
||||
<el-form-item label="关键字" prop="keyWord">
|
||||
<el-input
|
||||
v-model="dialogQuery.keyWord"
|
||||
placeholder="请输入关键字"
|
||||
clearable
|
||||
:maxlength="30"
|
||||
style="width: 240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleDialogQuery">查询</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button icon="el-icon-download" size="mini" @click="handleDialogStoreExport">导出</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-table v-loading="loading" :data="dialogList">
|
||||
<el-table-column
|
||||
label="序号"
|
||||
align="center"
|
||||
width="80"
|
||||
type="index"
|
||||
:index="indexContinuation(dialogQuery.pageNum, dialogQuery.pageSize)"
|
||||
></el-table-column>
|
||||
<el-table-column label="机具名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="入库数量" align="center" prop="storeNum" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="原值(元)" align="center" prop="buyPrice" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="设备编码" align="center" prop="maCode" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="库管员" align="center" prop="maKeeper" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="操作人" align="center" prop="inputUser" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="入库时间" align="center" prop="inputTime" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="入库方式" align="center" prop="inputType" :show-overflow-tooltip="true" />
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="dialogTotal > 0"
|
||||
:total="dialogTotal"
|
||||
:page.sync="dialogQuery.pageNum"
|
||||
:limit.sync="dialogQuery.pageSize"
|
||||
@pagination="getStoreCodeList"
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getRetainedEquipmentListApi,
|
||||
getRetainedEquipmentListNoPageApi,
|
||||
getStorageInfoListApi
|
||||
} from '@/api/stquery/stquery'
|
||||
export default {
|
||||
name: '',
|
||||
dicts: [],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 弹出层标题
|
||||
title: '查看',
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 主表格数据
|
||||
tableList: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
keyWord: null,
|
||||
timeRange: null
|
||||
},
|
||||
|
||||
//在库弹窗
|
||||
openRecord: false,
|
||||
dialogList: [], //在库编码设备列表
|
||||
dialogQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
keyWord: undefined
|
||||
},
|
||||
dialogTotal: 0,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 获取列表
|
||||
async getList() {
|
||||
this.loading = true
|
||||
const params = {
|
||||
keyWord: this.queryParams.keyWord,
|
||||
typeName: this.queryParams.typeName,
|
||||
typeModelName: this.queryParams.typeModelName,
|
||||
pageSize: this.queryParams.pageSize,
|
||||
pageNum: this.queryParams.pageNum
|
||||
}
|
||||
const res = await getRetainedEquipmentListApi(params)
|
||||
if (res.data.rows.length > 0) {
|
||||
this.tableList = res.data.rows
|
||||
} else {
|
||||
this.tableList = []
|
||||
}
|
||||
this.total = res.data.total
|
||||
console.log(this.tableList)
|
||||
let param = {
|
||||
keyWord: this.queryParams.keyWord,
|
||||
typeName: this.queryParams.typeName,
|
||||
typeModelName: this.queryParams.typeModelName
|
||||
}
|
||||
const response = await getRetainedEquipmentListNoPageApi(param)
|
||||
let obj = {
|
||||
// storeNum manageType usNum repairNum inputNum repairInputNum allNum
|
||||
storeNum: response.data.storeNum || 0,
|
||||
usNum: response.data.usNum || 0,
|
||||
repairNum: response.data.repairNum || 0,
|
||||
inputNum: response.data.inputNum || 0,
|
||||
repairInputNum: response.data.repairInputNum || 0,
|
||||
pendingScrapNum: response.data.pendingScrapNum || 0,
|
||||
scrapNum: response.data.scrapNum || 0,
|
||||
allNum: response.data.allNum || 0,
|
||||
totalPrice: response.data.totalPrice || 0,
|
||||
fiveReplacementRate: response.data.fiveReplacementRate || 0,
|
||||
tenReplacementRate: response.data.tenReplacementRate || 0,
|
||||
tenPlusReplacementRate: response.data.tenPlusReplacementRate || 0,
|
||||
manageType: response.data.manageType || ''
|
||||
}
|
||||
this.tableList.unshift(obj)
|
||||
console.log(this.tableList)
|
||||
this.loading = false
|
||||
},
|
||||
indexContinuationForTable(num, size) {
|
||||
let number = (num - 1) * size
|
||||
console.log(number)
|
||||
if (number == 0) {
|
||||
return '合计'
|
||||
} else {
|
||||
return number
|
||||
}
|
||||
},
|
||||
// 合并单元格 rowIndex=行数 columnIndex=列数
|
||||
// 这里是合并table的除表头外的第一行的第二列 + 除表头外的第二行的第二列
|
||||
// 注意列数和行数从 0 开始
|
||||
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
||||
if (rowIndex === 0 && columnIndex == 0) {
|
||||
let rowspan = 1
|
||||
let colspan = 7
|
||||
return { rowspan, colspan }
|
||||
}
|
||||
// 解决偏移的重要代码
|
||||
// 重点在 else if 判断必须加因为合并单元格数据会出现偏移、
|
||||
// 否则如果是 第二行 的 第二列 那么隐藏原有第二行 的 第二列的数据使他隐藏
|
||||
else if (rowIndex === 0 && columnIndex < 7) {
|
||||
return {
|
||||
rowspan: 0,
|
||||
colspan: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download(
|
||||
'material/complex_query/exportRetainedEquipmentList',
|
||||
{
|
||||
...this.queryParams
|
||||
},
|
||||
`综合查询_保有设备总量_${new Date().getTime()}.xlsx`
|
||||
)
|
||||
},
|
||||
//查看在库编码数据
|
||||
openRecords(row) {
|
||||
this.openRecord = true
|
||||
this.dialogQuery.keyWord = ''
|
||||
this.dialogQuery.typeId = row.typeId
|
||||
this.getStoreCodeList()
|
||||
},
|
||||
/** 查询在库编码列表 */
|
||||
getStoreCodeList() {
|
||||
getStorageInfoListApi(this.dialogQuery).then(response => {
|
||||
this.dialogList = response.data.rows
|
||||
this.dialogTotal = response.data.total
|
||||
})
|
||||
},
|
||||
/** 搜索在库按钮操作 */
|
||||
handleDialogQuery() {
|
||||
this.dialogQuery.pageNum = 1
|
||||
this.getStoreCodeList()
|
||||
},
|
||||
handleDialogStoreExport() {
|
||||
this.download(
|
||||
'material/complex_query/exportStorageInfoList',
|
||||
{ ...this.dialogQuery },
|
||||
`综合查询_在库设备_${new Date().getTime()}.xlsx`
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep.el-table .fixed-width .el-button--mini {
|
||||
width: 60px !important;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.clickText {
|
||||
color: #02a7f0;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -97,6 +97,22 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="标准配置" prop="standardConfig">
|
||||
<treeselect
|
||||
v-model="maForm.standardConfig"
|
||||
:options="standardConfigList"
|
||||
:normalizer="normalizer"
|
||||
:show-count="true"
|
||||
style="width: 240px"
|
||||
:disable-branch-nodes="true"
|
||||
noChildrenText="没有数据了"
|
||||
noOptionsText="没有数据"
|
||||
noResultsText="没有搜索结果"
|
||||
placeholder="请选择标准配置"
|
||||
@select="standardConfigChange"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="类型规格" prop="deviceType">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="15">
|
||||
|
|
@ -228,6 +244,11 @@
|
|||
"
|
||||
></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="管理模式" prop="manageType" align="center">
|
||||
<template v-slot="{ row }">
|
||||
<span>{{ row.manageType == '0' ? '编码管理' : '数量管理' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark" align="center" label-width="500px">
|
||||
<template v-slot="scope">
|
||||
|
|
@ -268,6 +289,7 @@ import {
|
|||
getApplyInfo,
|
||||
getAgreement
|
||||
} from '@/api/lease/apply'
|
||||
import { getListsByConfigId, getStandardConfigList } from '@/api/business/index'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import { uploadPurchaseFile, getPurchaseFileList } from '@/api/purchase/goodsAccept'
|
||||
import { downloadFile, downloadFileData } from '@/utils/download'
|
||||
|
|
@ -349,8 +371,10 @@ export default {
|
|||
purchaser: '',
|
||||
remark: '',
|
||||
purchaseNumber: '',
|
||||
standardConfig: undefined,
|
||||
bmFileInfos: []
|
||||
},
|
||||
standardConfigList: [],
|
||||
// 表单参数
|
||||
form: {},
|
||||
defaultProps: {
|
||||
|
|
@ -466,12 +490,12 @@ export default {
|
|||
mounted() {
|
||||
this.projectInfoList() //单位工程下拉选
|
||||
this.equipmentType() //机具类型下拉选
|
||||
this.getStandardConfigListApi() //标准配置下拉选
|
||||
if (this.isEdit) {
|
||||
console.log('isEdit', this.isEdit)
|
||||
this.taskId = this.editTaskId
|
||||
this.id = this.editId
|
||||
this.getTaskInfo()
|
||||
this.equipmentType()
|
||||
}
|
||||
// this.projectInfoList();
|
||||
// this.equipmentType();
|
||||
|
|
@ -588,7 +612,8 @@ export default {
|
|||
specificationType: node.typeName,
|
||||
unitName: node.unitName,
|
||||
unitValue: node.unitValue,
|
||||
maxSortPriority: node.maxSortPriority
|
||||
maxSortPriority: node.maxSortPriority,
|
||||
manageType: node.manageType,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -634,9 +659,6 @@ export default {
|
|||
type: 'warning'
|
||||
})
|
||||
this.tempDeviceType = this.tempDeviceType.filter(id => id !== lastSelected)
|
||||
} else if (typeData.storageNum <= 0) {
|
||||
this.$message.error('所选物资规格类型暂时无库存,无法申请!')
|
||||
this.tempDeviceType = this.tempDeviceType.filter(id => id !== lastSelected)
|
||||
} else {
|
||||
// 将新项添加到数组开头,实现倒序
|
||||
this.equipmentList.unshift({
|
||||
|
|
@ -666,7 +688,7 @@ export default {
|
|||
this.maForm.projectId = response.data.leaseApplyInfo.leaseProjectId
|
||||
this.unitId = this.treeParentsById(this.uniteList, this.maForm.unitId)
|
||||
this.projectId = this.treeParentsById(this.projectList, this.maForm.projectId)
|
||||
this.equipmentList = response.data.leaseApplyDetailsList
|
||||
this.equipmentList = response.data.leaseApplyDetailsList || []
|
||||
// 如果 bmFileInfos有值
|
||||
if (this.maForm.bmFileInfos.length > 0) {
|
||||
this.isFileFbs = true
|
||||
|
|
@ -706,6 +728,42 @@ export default {
|
|||
this.single = selection.length != 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
// 获取标准配置
|
||||
async getStandardConfigListApi() {
|
||||
try {
|
||||
const res = await getStandardConfigList()
|
||||
console.log('🚀 ~ getStandardConfigList ~ res:', res)
|
||||
this.standardConfigList = res.data
|
||||
} catch (error) {
|
||||
console.log('🚀 ~ error:', error)
|
||||
}
|
||||
},
|
||||
async standardConfigChange(val) {
|
||||
console.log('🚀 ~ standardConfigChange ~ val:', val)
|
||||
const loading = this.$loading()
|
||||
try {
|
||||
const params = {
|
||||
configId: val.id
|
||||
}
|
||||
const res = await getListsByConfigId(params)
|
||||
console.log('🚀 ~ standardConfigChange ~ res:', res)
|
||||
|
||||
// this.equipmentList.unshift(...res.data)
|
||||
res.data.forEach(newItem => {
|
||||
const existingItem = this.equipmentList.find(item => item.typeId === newItem.typeId)
|
||||
if (existingItem) {
|
||||
existingItem.preNum += newItem.preNum
|
||||
} else {
|
||||
this.equipmentList.unshift(newItem)
|
||||
}
|
||||
})
|
||||
|
||||
loading.close()
|
||||
} catch (error) {
|
||||
console.log('🚀 ~ error:', error)
|
||||
loading.close()
|
||||
}
|
||||
},
|
||||
/** 保存按钮操作 */
|
||||
handleSave() {
|
||||
// console.log(this.equipmentList)
|
||||
|
|
|
|||
|
|
@ -443,6 +443,7 @@ export default {
|
|||
this.typeList = response.data.rows;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
this.typeList = [{ id: 1}]
|
||||
});
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
|
|
|
|||
|
|
@ -0,0 +1,305 @@
|
|||
<template>
|
||||
<div class="app-container" id="">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
|
||||
<el-form-item label="关键字" prop="keyWord">
|
||||
<el-input
|
||||
v-model="queryParams.keyWord"
|
||||
placeholder="请输入关键字"
|
||||
clearable
|
||||
:maxlength="20"
|
||||
style="width: 240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 日期范围 -->
|
||||
<el-form-item label="领料日期" prop="timeRange">
|
||||
<el-date-picker
|
||||
v-model="queryParams.timeRange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
clearable
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd"
|
||||
/>
|
||||
</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="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出数据</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
<el-table v-loading="loading" :data="tableList" :span-method="objectSpanMethod">
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template scope="scope">
|
||||
<span v-if="scope.$index == 0">合计:</span>
|
||||
<span v-else>{{ (queryParams.pageNum - 1) * 10 + scope.$index }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工器具名称" align="center" prop="constructionType" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="领料数量" align="center" prop="leaseNum" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="出库数量" align="center" prop="storeNum" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<!-- 当 manageType 为 '编码' 时,使用可点击的 span -->
|
||||
<span class="clickText" v-if="scope.row.manageType == '编码'" @click="openRecords(scope.row)">
|
||||
{{ scope.row.storeNum }}
|
||||
</span>
|
||||
<!-- 否则,直接显示数字 -->
|
||||
<span v-else>
|
||||
{{ scope.row.storeNum }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="待出库数量" align="center" prop="usNum" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="领料日期" align="center" prop="leaseTime" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="领料班组" align="center" prop="leasePer" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="领料工程" align="center" prop="leasePro" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="领料人" align="center" prop="leasePeo" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="出库人" align="center" prop="out" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="领料单号" align="center" prop="code" :show-overflow-tooltip="true" />
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
:page-sizes="[5, 10, 15, 20, 30]"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 在库编码设备弹窗-->
|
||||
<el-dialog :title="title" :visible.sync="openRecord" width="1200px" append-to-body>
|
||||
<el-form :model="dialogQuery" ref="dialogQuery" size="small" :inline="true" label-width="80px">
|
||||
<el-form-item label="关键字" prop="keyWord">
|
||||
<el-input
|
||||
v-model="dialogQuery.keyWord"
|
||||
placeholder="请输入关键字"
|
||||
clearable
|
||||
:maxlength="30"
|
||||
style="width: 240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleDialogQuery">查询</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button icon="el-icon-download" size="mini" @click="handleDialogStoreExport">导出</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-table v-loading="loading" :data="dialogList">
|
||||
<el-table-column
|
||||
label="序号"
|
||||
align="center"
|
||||
width="80"
|
||||
type="index"
|
||||
:index="indexContinuation(dialogQuery.pageNum, dialogQuery.pageSize)"
|
||||
></el-table-column>
|
||||
<el-table-column label="机具名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="入库数量" align="center" prop="storeNum" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="原值(元)" align="center" prop="buyPrice" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="设备编码" align="center" prop="maCode" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="库管员" align="center" prop="maKeeper" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="操作人" align="center" prop="inputUser" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="入库时间" align="center" prop="inputTime" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="入库方式" align="center" prop="inputType" :show-overflow-tooltip="true" />
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="dialogTotal > 0"
|
||||
:total="dialogTotal"
|
||||
:page.sync="dialogQuery.pageNum"
|
||||
:limit.sync="dialogQuery.pageSize"
|
||||
@pagination="getStoreCodeList"
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getRetainedEquipmentListApi,
|
||||
getRetainedEquipmentListNoPageApi,
|
||||
getStorageInfoListApi
|
||||
} from '@/api/stquery/stquery'
|
||||
export default {
|
||||
name: '',
|
||||
dicts: [],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 弹出层标题
|
||||
title: '查看',
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 主表格数据
|
||||
tableList: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
keyWord: null,
|
||||
timeRange: null
|
||||
},
|
||||
|
||||
//在库弹窗
|
||||
openRecord: false,
|
||||
dialogList: [], //在库编码设备列表
|
||||
dialogQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
keyWord: undefined
|
||||
},
|
||||
dialogTotal: 0,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 获取列表
|
||||
async getList() {
|
||||
this.loading = true
|
||||
const params = {
|
||||
keyWord: this.queryParams.keyWord,
|
||||
typeName: this.queryParams.typeName,
|
||||
typeModelName: this.queryParams.typeModelName,
|
||||
pageSize: this.queryParams.pageSize,
|
||||
pageNum: this.queryParams.pageNum
|
||||
}
|
||||
const res = await getRetainedEquipmentListApi(params)
|
||||
if (res.data.rows.length > 0) {
|
||||
this.tableList = res.data.rows
|
||||
} else {
|
||||
this.tableList = []
|
||||
}
|
||||
this.total = res.data.total
|
||||
console.log(this.tableList)
|
||||
let param = {
|
||||
keyWord: this.queryParams.keyWord,
|
||||
typeName: this.queryParams.typeName,
|
||||
typeModelName: this.queryParams.typeModelName
|
||||
}
|
||||
const response = await getRetainedEquipmentListNoPageApi(param)
|
||||
let obj = {
|
||||
// storeNum manageType usNum repairNum inputNum repairInputNum allNum
|
||||
storeNum: response.data.storeNum || 0,
|
||||
usNum: response.data.usNum || 0,
|
||||
repairNum: response.data.repairNum || 0,
|
||||
inputNum: response.data.inputNum || 0,
|
||||
repairInputNum: response.data.repairInputNum || 0,
|
||||
pendingScrapNum: response.data.pendingScrapNum || 0,
|
||||
scrapNum: response.data.scrapNum || 0,
|
||||
allNum: response.data.allNum || 0,
|
||||
totalPrice: response.data.totalPrice || 0,
|
||||
fiveReplacementRate: response.data.fiveReplacementRate || 0,
|
||||
tenReplacementRate: response.data.tenReplacementRate || 0,
|
||||
tenPlusReplacementRate: response.data.tenPlusReplacementRate || 0,
|
||||
manageType: response.data.manageType || ''
|
||||
}
|
||||
this.tableList.unshift(obj)
|
||||
console.log(this.tableList)
|
||||
this.loading = false
|
||||
},
|
||||
indexContinuationForTable(num, size) {
|
||||
let number = (num - 1) * size
|
||||
console.log(number)
|
||||
if (number == 0) {
|
||||
return '合计'
|
||||
} else {
|
||||
return number
|
||||
}
|
||||
},
|
||||
// 合并单元格 rowIndex=行数 columnIndex=列数
|
||||
// 这里是合并table的除表头外的第一行的第二列 + 除表头外的第二行的第二列
|
||||
// 注意列数和行数从 0 开始
|
||||
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
||||
if (rowIndex === 0 && columnIndex == 0) {
|
||||
let rowspan = 1
|
||||
let colspan = 7
|
||||
return { rowspan, colspan }
|
||||
}
|
||||
// 解决偏移的重要代码
|
||||
// 重点在 else if 判断必须加因为合并单元格数据会出现偏移、
|
||||
// 否则如果是 第二行 的 第二列 那么隐藏原有第二行 的 第二列的数据使他隐藏
|
||||
else if (rowIndex === 0 && columnIndex < 7) {
|
||||
return {
|
||||
rowspan: 0,
|
||||
colspan: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download(
|
||||
'material/complex_query/exportRetainedEquipmentList',
|
||||
{
|
||||
...this.queryParams
|
||||
},
|
||||
`综合查询_保有设备总量_${new Date().getTime()}.xlsx`
|
||||
)
|
||||
},
|
||||
//查看在库编码数据
|
||||
openRecords(row) {
|
||||
this.openRecord = true
|
||||
this.dialogQuery.keyWord = ''
|
||||
this.dialogQuery.typeId = row.typeId
|
||||
this.getStoreCodeList()
|
||||
},
|
||||
/** 查询在库编码列表 */
|
||||
getStoreCodeList() {
|
||||
getStorageInfoListApi(this.dialogQuery).then(response => {
|
||||
this.dialogList = response.data.rows
|
||||
this.dialogTotal = response.data.total
|
||||
})
|
||||
},
|
||||
/** 搜索在库按钮操作 */
|
||||
handleDialogQuery() {
|
||||
this.dialogQuery.pageNum = 1
|
||||
this.getStoreCodeList()
|
||||
},
|
||||
handleDialogStoreExport() {
|
||||
this.download(
|
||||
'material/complex_query/exportStorageInfoList',
|
||||
{ ...this.dialogQuery },
|
||||
`综合查询_在库设备_${new Date().getTime()}.xlsx`
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep.el-table .fixed-width .el-button--mini {
|
||||
width: 60px !important;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.clickText {
|
||||
color: #02a7f0;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
<template>
|
||||
<div>
|
||||
<!-- 编码出库 -->
|
||||
<el-dialog title="编码出库" :visible.sync="openCode" width="1200px" append-to-body>
|
||||
<span style="margin-left: 32px">待出库数量:{{ outNum }}</span>
|
||||
|
||||
<el-form :model="outQuery" ref="outQuery" size="small" :inline="true" label-width="100px">
|
||||
<el-form-item label="设备编码" prop="maCode">
|
||||
<el-input v-model="outQuery.maCode" maxlength="20" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleOutQuery">查询</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetOutQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" size="mini" @click="saveCodeOut">出库</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-table ref="multipleTable" :data="outCodeList" height="500" @select="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="序号" align="center" width="80" type="index"></el-table-column>
|
||||
<el-table-column label="类型名称" align="center" prop="materialName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="规格型号" align="center" prop="materialModel" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="设备编码" align="center" prop="maCode" :show-overflow-tooltip="true" />
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="outTotal > 0"
|
||||
:total="outTotal"
|
||||
:page.sync="outQuery.pageNum"
|
||||
:limit.sync="outQuery.pageSize"
|
||||
@pagination="getCodeList"
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getDetailsByTypeId } from '@/api/lease/out'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
openCode: false,
|
||||
rowData: {},
|
||||
outNum: 0,
|
||||
parentIdTemp: undefined,
|
||||
outQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
maCode: '',
|
||||
typeId: '',
|
||||
maStatus: 1
|
||||
},
|
||||
outTotal: 0,
|
||||
outCodeList: [],
|
||||
selectedCodeList: []
|
||||
}
|
||||
},
|
||||
created() {},
|
||||
methods: {
|
||||
handleOpenCode(row) {
|
||||
console.log('🚀 ~ handleOpenCode ~ row:', row)
|
||||
this.rowData = row
|
||||
this.openCode = true
|
||||
this.parentIdTemp = row.parentId
|
||||
this.outNum = row.outNum
|
||||
this.outQuery.typeId = row.typeId
|
||||
this.outQuery.maCode = ''
|
||||
this.handleOutQuery()
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
console.log('🚀 ~ handleSelectionChange ~ val:', val)
|
||||
this.selectedCodeList = val
|
||||
},
|
||||
handleOutQuery() {
|
||||
this.outQuery.pageNum = 1
|
||||
this.getCodeList()
|
||||
},
|
||||
|
||||
resetOutQuery() {
|
||||
this.outQuery.maCode = ''
|
||||
this.handleOutQuery()
|
||||
},
|
||||
getCodeList() {
|
||||
getDetailsByTypeId(this.outQuery).then(res => {
|
||||
this.outCodeList = res.rows
|
||||
this.outCodeList = [
|
||||
{
|
||||
id: 1,
|
||||
materialName: '设备名称',
|
||||
materialModel: '规格型号',
|
||||
maCode: '设备编码'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
materialName: '设备名称',
|
||||
materialModel: '规格型号',
|
||||
maCode: '设备编码'
|
||||
}
|
||||
]
|
||||
if (res.total) {
|
||||
this.outTotal = res.total
|
||||
}
|
||||
if (this.rowData.outCodeList && this.rowData.outCodeList.length > 0) {
|
||||
this.$nextTick(() => {
|
||||
this.outCodeList.forEach(row => {
|
||||
const isSelected = this.rowData.outCodeList.some(item => item.id === row.id)
|
||||
if (isSelected) {
|
||||
this.$refs.multipleTable.toggleRowSelection(row, true)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
saveCodeOut() {
|
||||
console.log('Selected codes:', this.outCodeList)
|
||||
this.$emit('selectOutCode', this.selectedCodeList)
|
||||
this.openCode = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,712 +0,0 @@
|
|||
<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"
|
||||
disabled
|
||||
>
|
||||
<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"
|
||||
disabled
|
||||
>
|
||||
<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"
|
||||
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="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">
|
||||
<template slot-scope="scope">
|
||||
<div
|
||||
v-if="scope.row.unitName != null && scope.row.unitName != ''"
|
||||
@click="codeBind(scope.row)"
|
||||
style="color: #02a7f0; cursor: pointer"
|
||||
>
|
||||
{{ scope.row.unitName }}
|
||||
</div>
|
||||
<el-input-number
|
||||
v-else
|
||||
v-model="scope.row.preNum"
|
||||
controls-position="right"
|
||||
style="width: 100%"
|
||||
></el-input-number>
|
||||
</template>
|
||||
<!-- <template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-if="scope.row.unitName != null && scope.row.unitName != ''"
|
||||
v-model="scope.row.preNum"
|
||||
controls-position="right"
|
||||
style="width: 100%"
|
||||
></el-input-number>
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<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>
|
||||
|
||||
<!-- 绑定弹框-->
|
||||
<el-dialog
|
||||
width="70%"
|
||||
append-to-body
|
||||
title="编码绑定"
|
||||
:visible.sync="bindCodeVisible"
|
||||
@close="closeCancel"
|
||||
>
|
||||
<el-form
|
||||
size="small"
|
||||
:inline="true"
|
||||
ref="queryFormBindRef"
|
||||
:model="queryBindForm"
|
||||
:rules="queryBindFormRules"
|
||||
>
|
||||
<el-form-item label="前缀" prop="codePrefix">
|
||||
<el-input
|
||||
clearable
|
||||
maxlength="20"
|
||||
placeholder="请输入前缀"
|
||||
v-model="queryBindForm.codePrefix"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="后缀范围" prop="codeSuffixStart">
|
||||
<el-input
|
||||
clearable
|
||||
placeholder="开始数值"
|
||||
v-model="queryBindForm.codeSuffixStart"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item prop="codeSuffixEnd">
|
||||
<el-input
|
||||
clearable
|
||||
placeholder="结束数值"
|
||||
v-model="queryBindForm.codeSuffixEnd"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="编码" prop="code">
|
||||
<el-input
|
||||
clearable
|
||||
maxlength="20"
|
||||
placeholder="请输入编码"
|
||||
v-model="queryBindForm.code"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="mini" @click="handleAdd"
|
||||
>填充</el-button
|
||||
>
|
||||
<el-button type="primary" size="mini" @click="handleCodeBinding"
|
||||
>绑定</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table border max-height="600px" :data="codeTableList">
|
||||
<el-table-column align="center" label="序号" type="index" />
|
||||
<el-table-column align="center" label="设备名称" prop="materialName" />
|
||||
<el-table-column align="center" label="规格型号" prop="materialModel" />
|
||||
<el-table-column align="center" label="设备编码">
|
||||
<template slot-scope="{ row }">
|
||||
<el-input clearable v-model="row.maCode" placeholder="请填写编码" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="状态"> </el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
icon="el-icon-remove"
|
||||
@click="handleRemove(scope.$index)"
|
||||
>
|
||||
移除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-dialog>
|
||||
</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,
|
||||
bindCodeVisible: false, // 绑定弹框
|
||||
// 总条数
|
||||
total: 0,
|
||||
//物资厂家
|
||||
supplierList: [],
|
||||
//机具类型
|
||||
equipmentTypeList: [],
|
||||
//绑定的数据
|
||||
codeTableList: [],
|
||||
// 角色表格数据
|
||||
equipmentList: [{ unitName: 4 }, { unitName: null }],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
rowData: {},
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
equipmentId: undefined,
|
||||
productionTime: "",
|
||||
},
|
||||
maForm: {
|
||||
taxRate: 13,
|
||||
arrivalTime: "",
|
||||
purchaser: "",
|
||||
remark: "",
|
||||
purchaseNumber: "",
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
defaultProps: {
|
||||
children: "children",
|
||||
label: "label",
|
||||
},
|
||||
// 编码绑定表单数据源
|
||||
queryBindForm: {
|
||||
typeId: "", // 物资typeId
|
||||
typeName: "", // 规格型号
|
||||
codePrefix: "", // 编码前缀
|
||||
maTypeName: "", // 物资名称
|
||||
codeSuffixEnd: "", // 后缀结束
|
||||
codeSuffixStart: "", // 后缀开始
|
||||
code: "", //编码
|
||||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
// deviceType: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请选择类型规格',
|
||||
// trigger: 'blur',
|
||||
// },
|
||||
// ],
|
||||
deviceType: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择规格型号",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
},
|
||||
// 编码校验规则
|
||||
queryBindFormRules: {
|
||||
codePrefix: [
|
||||
{ required: true, message: "请输入前缀", trigger: "blur" },
|
||||
],
|
||||
codeSuffixStart: [
|
||||
{
|
||||
required: true,
|
||||
trigger: "blur",
|
||||
message: "请输入前缀",
|
||||
},
|
||||
{
|
||||
pattern: /^[1-9][0-9]*$/,
|
||||
message: "请输入大于0且不能以0开头的正整数",
|
||||
},
|
||||
],
|
||||
codeSuffixEnd: [
|
||||
{
|
||||
required: true,
|
||||
trigger: "blur",
|
||||
message: "请输入后缀",
|
||||
},
|
||||
|
||||
{
|
||||
pattern: /^[1-9][0-9]*$/,
|
||||
message: "请输入大于0且不能以0开头的正整数",
|
||||
},
|
||||
],
|
||||
},
|
||||
deviceTypeTreeProps: {
|
||||
children: "children",
|
||||
label: "typeName",
|
||||
// multiple: false,
|
||||
value: "typeId",
|
||||
multiple: true,
|
||||
},
|
||||
deviceType: [],
|
||||
propsKey: 1000,
|
||||
waitBindNum: 0, // 待绑定数量
|
||||
// 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: {
|
||||
//取消弹窗
|
||||
closeCancel() {
|
||||
this.bindCodeVisible = false;
|
||||
this.resetForm("queryFormBindRef");
|
||||
},
|
||||
codeBind(row) {
|
||||
this.bindCodeVisible = true;
|
||||
this.waitBindNum = row.unitName;
|
||||
},
|
||||
handleAdd() {
|
||||
if (this.queryBindForm.code != "") {
|
||||
console.log("this.queryBindForm.code", this.queryBindForm.code);
|
||||
} else {
|
||||
// 1. 校验表单
|
||||
this.$refs.queryFormBindRef.validate((valid) => {
|
||||
if (valid) {
|
||||
// 1.1 判断结束值是否大于开始值
|
||||
const {
|
||||
typeName,
|
||||
codePrefix,
|
||||
maTypeName,
|
||||
codeSuffixEnd,
|
||||
codeSuffixStart,
|
||||
} = this.queryBindForm;
|
||||
if (parseInt(codeSuffixEnd) < parseInt(codeSuffixStart)) {
|
||||
this.$modal.msgError("结束值不可小于开始值");
|
||||
return;
|
||||
}
|
||||
// 1.2 判断可编码数量
|
||||
let waitCodeNum = this.waitBindNum; // 待编码数量
|
||||
// 可编码数量 如相减大于代编码数量 则取待编码数量 如小于待编码数量 则取相减后值
|
||||
let passCodeNUm =
|
||||
codeSuffixEnd - codeSuffixStart > waitCodeNum
|
||||
? waitCodeNum
|
||||
: codeSuffixEnd - codeSuffixStart;
|
||||
|
||||
this.codeTableList = [];
|
||||
// 1.3 循环生成编码
|
||||
for (let i = 0; i < passCodeNUm; i++) {
|
||||
const codeItem = {
|
||||
typeName,
|
||||
maTypeName,
|
||||
outFacCode: "",
|
||||
productDate: "",
|
||||
maCode: `${codePrefix}${parseInt(codeSuffixStart) + i}`,
|
||||
};
|
||||
this.codeTableList.push(codeItem);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
handleCodeBinding() {},
|
||||
/** 物资厂家-下拉选 */
|
||||
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 = [];
|
||||
}
|
||||
},
|
||||
//获取任务详情--- 编辑回显数据
|
||||
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("请先添加机具类型");
|
||||
}
|
||||
},
|
||||
|
||||
//树结构数据获取父
|
||||
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>
|
||||
|
|
@ -0,0 +1,746 @@
|
|||
<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.lease_task_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="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
>导出
|
||||
</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="createTime" width="160" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="申请人" align="center" prop="createBy" width="100" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="领料班组" align="center" prop="departName" width="100" :show-overflow-tooltip="true"/>
|
||||
<!-- <el-table-column label="实施单位" align="center" prop="impUnitName" width="120px" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="合同主体" align="center" prop="contractPart" width="120px" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="租赁单位" align="center" prop="leaseUnit" width="150px" :show-overflow-tooltip="true"/> -->
|
||||
<el-table-column label="租赁工程" align="center" prop="leaseProject" width="150px" :show-overflow-tooltip="true"/>
|
||||
<!-- <el-table-column label="领料物资类型" align="center" prop="maTypeNames" width="110px" :show-overflow-tooltip="true"/> -->
|
||||
<!-- <el-table-column label="协议号" align="center" prop="agreementCode" width="140" :show-overflow-tooltip="true"/> -->
|
||||
<!-- <el-table-column label="租赁申请单号" align="center" prop="code" width="140px" :show-overflow-tooltip="true"></el-table-column> -->
|
||||
<el-table-column label="领料工器具类型" align="center" prop="leaseType" width="140px" :show-overflow-tooltip="true"></el-table-column>
|
||||
<el-table-column label="领料人" align="center" prop="leasePerson" :show-overflow-tooltip="true"/>
|
||||
<!-- <el-table-column label="领料人电话" align="center" prop="phone" width="120px" :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.lease_task_status" :value="scope.row.taskStatus"/>
|
||||
</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" fixed="right">
|
||||
<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 != 4" v-hasPermi="['purchase:info:edit']"
|
||||
>出库</el-button>
|
||||
<el-button size="mini" type="warning"
|
||||
v-if="scope.row.taskStatus != 1" @click="handleLld(scope.row)"
|
||||
>领料单</el-button>
|
||||
<el-button size="mini" type="warning"
|
||||
@click="handlePrint(scope.row)" v-if="scope.row.taskStatus == 4"
|
||||
>出库检验单</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"
|
||||
/>
|
||||
|
||||
<!-- 出库检验单弹窗 -->
|
||||
<el-dialog :title="title" :visible.sync="openPrint" width="1090px" append-to-body>
|
||||
<div style="height: 600px; overflow-y: scroll;padding: 0 20px">
|
||||
<!-- <vue-easy-print tableShow ref="remarksPrintRefCheck" class="print" :printable="'checkId'"> -->
|
||||
<div id="checkId">
|
||||
<div class="title" style="text-align: center; font-weight: 600; font-size: 16px">
|
||||
施工机具设备出库检验记录表
|
||||
</div>
|
||||
<div class="info" style="margin-top: 10px; display: flex; align-items: center;">
|
||||
<div class="item"
|
||||
style="width: 60%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
||||
<span>领用工程:</span>
|
||||
{{ checkDataInfo.leaseProject }}
|
||||
</div>
|
||||
<div class="item" style="width: 40%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
||||
<span>使用单位:</span>
|
||||
{{ checkDataInfo.leaseUnit }}
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="printTableData" class="table" style="margin-top: 20px;width: 100%;" border>
|
||||
<el-table-column label="机具名称" align="center" prop="typeName"/>
|
||||
<el-table-column label="规格型号" align="center" prop="typeModelName" />
|
||||
<el-table-column label="单位" align="center" prop="unit" width="40px"/>
|
||||
<el-table-column label="数量" align="center" prop="num" width="40px"/>
|
||||
<el-table-column label="设备编码" align="center" prop="maCode"/>
|
||||
<el-table-column label="额定载荷KN" align="center" prop="ratedLoad" width="80px"/>
|
||||
<el-table-column label="试验载荷KN" align="center" prop="testLoad" width="80px"/>
|
||||
<el-table-column label="持荷时间min" align="center" prop="holdingTime" width="80px"/>
|
||||
<el-table-column label="试验日期" align="center" prop="testTime" width="120px"/>
|
||||
<el-table-column label="下次试验日期" align="center" prop="nextTestTime" width="120px"/>
|
||||
<el-table-column label="检验结论" align="center" prop="checkResult" />
|
||||
<el-table-column label="备注" align="center" prop="remark"/>
|
||||
</el-table>
|
||||
|
||||
<div class="fillIn" style="margin-top: 20px;display: flex;align-items: center;justify-content: right;">
|
||||
<div class="item" style="width: 30%; align-items: center;position: relative;">
|
||||
<div>
|
||||
<span>检验单位:</span>
|
||||
</div>
|
||||
<div>
|
||||
<canvas id="canvas" width="165" height="165" style="position: absolute; top: 50%; left: 90%; transform: translate(-100%, -50%); z-index: 9999;"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </vue-easy-print> -->
|
||||
</div>
|
||||
|
||||
<div slot="footer" class="dialog-footer" style="text-align: center">
|
||||
<el-button type="primary" @click="handleExportCheck">导出</el-button>
|
||||
<el-button type="primary" @click="printCheck">打 印</el-button>
|
||||
<el-button @click="closeDialogAndRefresh">关 闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 领料单弹窗 -->
|
||||
<el-dialog :visible.sync="open" width="800px" :title="title" append-to-body>
|
||||
<div style="height: 500px; overflow-y: scroll; padding: 0 20px">
|
||||
<!-- <vue-easy-print tableShow ref="remarksPrintRef" > -->
|
||||
<div id="checkIdTwo">
|
||||
<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: 60%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
||||
<span>领料单位:</span>
|
||||
{{ leaseApplyData.leaseUnit }}
|
||||
</div>
|
||||
<div class="item" style="width: 40%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
||||
<span>工程名称:</span>
|
||||
{{ leaseApplyData.leaseProject }}
|
||||
</div>
|
||||
<div class="item" style="width: 40%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
||||
<span>发料单位:</span>
|
||||
{{ leaseApplyData.sendUnit }}
|
||||
</div>
|
||||
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
||||
<span>时间:</span>
|
||||
<span v-if="leaseApplyData.createTime">{{ leaseApplyData.createTime.split(" ")[0] }}</span>
|
||||
</div>
|
||||
<div class="item" style="width: 30%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
||||
<span>编号:</span>
|
||||
{{ leaseApplyData.code }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-table :data="leaseApplyDetails" class="table" border style="width: 100%;">
|
||||
<el-table-column label="序号" align="center" type="index" width="60px"/>
|
||||
<el-table-column label="类型名称" align="center" prop="typeName" />
|
||||
<el-table-column label="规格型号" align="center" prop="typeName" />
|
||||
<el-table-column label="计量单位" align="center" prop="unitName" />
|
||||
<el-table-column label="预领数量" align="center" prop="preNum" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="出库方式" align="center" prop="manageType">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.manageType == 0" style="color: blue;" @click="codeInfo(scope.row)">编码出库</span>
|
||||
<span v-if="scope.row.manageType == 1">数量出库</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<div class="fillIn" style="margin-top: 30px;display: flex;justify-content: space-between;">
|
||||
<div class="item" style="width: 24%;display: flex;align-items: center;flex-wrap: wrap;">
|
||||
<div style="width: 30%;">审核:</div>
|
||||
<div style="width: 70%;display: flex;align-items: center;flex-wrap: wrap;" v-if="leaseApplyData.directAuditSignUrl">
|
||||
<div style="width: 80%;margin-left: 20px;">
|
||||
<img :src="leaseApplyData.directAuditSignUrl" style="width: 40px;height: 100px;transform: rotate(-90deg);max-width: 100%;" alt="">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <img :src="leaseApplyData.directAuditSignUrl" style="width: 40px;height: 100px;transform: rotate(-90deg);max-width: 100%;" alt=""> -->
|
||||
</div>
|
||||
<div class="item" style="width: 24%;display: flex;align-items: center;flex-wrap: wrap;">
|
||||
<span>领料:</span>
|
||||
</div>
|
||||
<div class="item" style="width: 24%;display: flex;align-items: center;flex-wrap: wrap;">
|
||||
<span>制单:</span>
|
||||
</div>
|
||||
<div class="item" style="width: 28%;display: flex;align-items: center;">
|
||||
<div style="width: 25%;">库管:</div>
|
||||
<div style="width: 75%;display: flex;align-items: center;flex-wrap: wrap;">
|
||||
<img src="../../../../../assets/signTemp.png" style="width: 45%;height: 30px;" alt="">
|
||||
<img src="../../../../../assets/signTemp.png" style="width: 45%;height: 30px;" alt="">
|
||||
<img src="../../../../../assets/signTemp.png" style="width: 45%;height: 30px;" alt="">
|
||||
<img src="../../../../../assets/signTemp.png" style="width: 45%;height: 30px;" alt="">
|
||||
</div>
|
||||
</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="open = false">关 闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 编码管理查看弹窗 -->
|
||||
<el-dialog :title="titleView" :visible.sync="showView" width="800px" append-to-body>
|
||||
<div style="overflow-y: scroll">
|
||||
<vue-easy-print tableShow ref="remarksPrintRefView" class="print">
|
||||
<div class="title" style="text-align: center; font-weight: 600; font-size: 16px; margin-bottom:20px">
|
||||
领料单编号明细
|
||||
</div>
|
||||
<el-table :data="getListViewInfo" style="padding: 1px;">
|
||||
<el-table-column align="center" label="序号" type="index" width="55" />
|
||||
<el-table-column label="类型名称" align="center" prop="materialName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="规格型号" align="center" prop="typeName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="设备编码" align="center" prop="maCode" :show-overflow-tooltip="true"/>
|
||||
</el-table>
|
||||
</vue-easy-print>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer" style="text-align: center">
|
||||
<el-button type="primary" @click="printView">打 印</el-button>
|
||||
<el-button @click="showView = false">关 闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getListLeaseApply,
|
||||
getPurchaseCheckInfo,
|
||||
getAcceptanceForm,
|
||||
purchaseCheckInfoRemove,
|
||||
queryStatusDataApi,
|
||||
getApplyInfo,
|
||||
applyRemove,
|
||||
applySend,
|
||||
applySendAll,
|
||||
getCheckInfo
|
||||
} from "@/api/lease/apply";
|
||||
|
||||
import vueEasyPrint from "vue-easy-print";
|
||||
import printJS from 'print-js';
|
||||
|
||||
export default {
|
||||
name: "Home",
|
||||
dicts: ["lease_task_status", "ma_type_manage_type"],
|
||||
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, //申请时间
|
||||
keyWord: "",
|
||||
taskStatus: null, //申请时间
|
||||
},
|
||||
form: {
|
||||
remark: "",
|
||||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
remark: [
|
||||
{ required: true, message: "通知内容不能为空", trigger: "blur" },
|
||||
],
|
||||
},
|
||||
openPrint: false,
|
||||
open: false,
|
||||
printData: {},
|
||||
printTableData: [],
|
||||
checkDataInfo: {},
|
||||
// 供应商
|
||||
supplierStr: "",
|
||||
|
||||
//领料单
|
||||
leaseApplyDetails: [],
|
||||
// 领料任务详情数据
|
||||
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.id);
|
||||
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) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getList() {
|
||||
this.loading = true;
|
||||
const params = {
|
||||
keyWord: this.queryParams.keyWord,
|
||||
taskStatus: this.queryParams.taskStatus,
|
||||
startTime: this.queryParams.time && this.queryParams.time[0],
|
||||
endTime: this.queryParams.time && this.queryParams.time[1],
|
||||
pageSize: this.queryParams.pageSize,
|
||||
pageNum: this.queryParams.pageNum,
|
||||
statusList: this.queryParams.taskStatus ? [this.queryParams.taskStatus]:[1,2,3,4]
|
||||
};
|
||||
getListLeaseApply(params).then((response) => {
|
||||
this.typeList = response.data.rows;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
this.typeList = [{ id: 1}]
|
||||
});
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
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");
|
||||
},
|
||||
|
||||
//获取验收单数据
|
||||
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(",");
|
||||
});
|
||||
},
|
||||
//查看验收单
|
||||
async handlePrint(row) {
|
||||
const res = await getCheckInfo({id:row.id});
|
||||
this.idTemp = row.id;
|
||||
this.checkDataInfo = res.data.leaseApplyInfo;
|
||||
|
||||
this.printTableData = res.data.leaseOutVoList;
|
||||
setTimeout(() => {
|
||||
this.chapter('机具检验专用章', '安徽送边电工程有限公司机具(物流)分公司')
|
||||
}, 500);
|
||||
this.openPrint = true;
|
||||
this.title = "出库检验单";
|
||||
},
|
||||
|
||||
/** 导出按钮操作 */
|
||||
handleExportCheck() {
|
||||
this.download(
|
||||
"/material/lease_apply_info/exportInfo",
|
||||
{ id:this.idTemp },
|
||||
`出库检验单_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
},
|
||||
|
||||
//打开领料单
|
||||
async handleLld(row) {
|
||||
this.title = "领料单";
|
||||
this.open = true;
|
||||
var ids = row.id;
|
||||
const res = await getApplyInfo(ids);
|
||||
this.leaseApplyDetails = res.data.leaseApplyDetailsList;
|
||||
this.leaseApplyData = res.data.leaseApplyInfo;
|
||||
},
|
||||
|
||||
//出库检验单打印
|
||||
printCheck() {
|
||||
printJS({
|
||||
printable: 'checkId',
|
||||
type: 'html',
|
||||
targetStyles: ['*'],
|
||||
maxWidth:'1400'
|
||||
// 其他配置选项
|
||||
});
|
||||
},
|
||||
|
||||
// 关闭弹窗并刷新页面
|
||||
closeDialogAndRefresh() {
|
||||
this.openPrint = false;
|
||||
},
|
||||
|
||||
codeInfo(row) {
|
||||
this.showView = true;
|
||||
this.titleView = "查看";
|
||||
this.getListViewInfo = row.maCodeVoList;
|
||||
},
|
||||
|
||||
//打印
|
||||
printView() {
|
||||
this.$refs.remarksPrintRefView.print();
|
||||
},
|
||||
|
||||
//打印
|
||||
print() {
|
||||
// this.$refs.remarksPrintRef.print();
|
||||
printJS({
|
||||
printable: 'checkIdTwo',
|
||||
type: 'html',
|
||||
targetStyles: ['*'],
|
||||
maxWidth:'1400'
|
||||
// 其他配置选项
|
||||
});
|
||||
},
|
||||
|
||||
/** 删除按钮操作 */
|
||||
handleDeletePurchase(row) {
|
||||
// console.log(row)
|
||||
let ids = [];
|
||||
ids.push(row.id);
|
||||
console.log("ids", ids);
|
||||
this.$modal
|
||||
.confirm("是否确认删除所选择的数据项?")
|
||||
.then(function () {
|
||||
return applyRemove(ids);
|
||||
})
|
||||
.then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
const params = {
|
||||
keyWord: this.queryParams.keyWord,
|
||||
taskStatus: this.queryParams.taskStatus,
|
||||
startTime: this.queryParams.time && this.queryParams.time[0],
|
||||
endTime: this.queryParams.time && this.queryParams.time[1],
|
||||
pageSize: this.queryParams.pageSize,
|
||||
pageNum: this.queryParams.pageNum,
|
||||
statusList: this.queryParams.taskStatus ? [this.queryParams.taskStatus]:[1,2,3,4]
|
||||
};
|
||||
this.download(
|
||||
"/material/lease_apply_info/export",
|
||||
{ ...params },
|
||||
`领料申请_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
},
|
||||
|
||||
//发布按钮
|
||||
handleSend(row) {
|
||||
const param = { id: row.id, taskId: row.taskId };
|
||||
this.$modal
|
||||
.confirm("是否确认发布所选择的数据项?")
|
||||
.then(function () {
|
||||
return applySend(param);
|
||||
})
|
||||
.then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("发布成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
|
||||
handleSendAll() {
|
||||
if (this.ids.length == 0) {
|
||||
this.$alert("请至少勾选一个领料申请", "提示", {
|
||||
type: "warning",
|
||||
confirmButtonText: "确定",
|
||||
});
|
||||
return;
|
||||
} else {
|
||||
applySendAll(this.sendTemp).then((response) => {
|
||||
if (response.code == 200) {
|
||||
this.$modal.msgSuccess("发布成功");
|
||||
}
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
chapter(text, companyName) {
|
||||
let canvas = document.getElementById("canvas");
|
||||
let context = canvas.getContext("2d");
|
||||
canvas.width = canvas.width;
|
||||
context.height = canvas.height;
|
||||
// // 清除画布内容
|
||||
// context.clearRect(0, 0, canvas.width, canvas.height);
|
||||
//let text = "XXX专用章";
|
||||
//let companyName = "XXX科技股份有限公司";
|
||||
|
||||
// 绘制印章边框
|
||||
let width = canvas.width / 2;
|
||||
let height = canvas.height / 2;
|
||||
context.lineWidth = 3;
|
||||
context.strokeStyle = "#f00";
|
||||
context.beginPath();
|
||||
context.arc(width, height, 80, 0, Math.PI * 2); //宽、高、半径
|
||||
context.stroke();
|
||||
|
||||
//画五角星
|
||||
this.create5star(context, width, height, 20, "#f00", 0);
|
||||
|
||||
// 绘制印章名称
|
||||
context.font = "100 13px 宋体";
|
||||
context.textBaseline = "middle"; //设置文本的垂直对齐方式
|
||||
context.textAlign = "center"; //设置文本的水平对对齐方式
|
||||
context.lineWidth = 0.7;
|
||||
context.strokeStyle = "#ff2323";
|
||||
context.strokeText(text, width, height + 50);
|
||||
|
||||
// 绘制印章单位
|
||||
context.translate(width, height); // 平移到此位置,
|
||||
context.font = "100 13px 宋体";
|
||||
let count = companyName.length; // 字数
|
||||
let angle = (4 * Math.PI) / (3 * (count - 1)); // 字间角度
|
||||
let chars = companyName.split("");
|
||||
let c;
|
||||
for (let i = 0; i < count; i++) {
|
||||
c = chars[i]; // 需要绘制的字符
|
||||
if (i == 0) {
|
||||
context.rotate((5 * Math.PI) / 6);
|
||||
} else {
|
||||
context.rotate(angle);
|
||||
}
|
||||
|
||||
context.save();
|
||||
context.translate(65, 0); // 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离
|
||||
context.rotate(Math.PI / 2); // 旋转90度,让字平行于x轴
|
||||
context.strokeStyle = "#ff2323"; // 设置印章单位字体颜色为较浅的红色
|
||||
context.strokeText(c, 0, 0); // 此点为字的中心点
|
||||
context.restore();
|
||||
}
|
||||
},
|
||||
|
||||
//绘制五角星
|
||||
create5star(context, sx, sy, radius, color, rotato) {
|
||||
context.save();
|
||||
context.fillStyle = color;
|
||||
context.translate(sx, sy); //移动坐标原点
|
||||
context.rotate(Math.PI + rotato); //旋转
|
||||
context.beginPath(); //创建路径
|
||||
// let x = Math.sin(0);
|
||||
// let y = Math.cos(0);
|
||||
let dig = (Math.PI / 5) * 4;
|
||||
for (let i = 0; i < 5; i++) {
|
||||
//画五角星的五条边
|
||||
let x = Math.sin(i * dig);
|
||||
let y = Math.cos(i * dig);
|
||||
context.lineTo(x * radius, y * radius);
|
||||
}
|
||||
context.closePath();
|
||||
context.stroke();
|
||||
context.fill();
|
||||
context.restore();
|
||||
}
|
||||
},
|
||||
|
||||
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;
|
||||
// }
|
||||
|
||||
.image-type {
|
||||
/* 旋转图片 */
|
||||
transform: rotate(-90deg);
|
||||
/* 确保旋转后的图片不会超出容器 */
|
||||
max-width: 100%;
|
||||
/* 保持图片的宽高比 */
|
||||
width: 40px;
|
||||
height: 100px;
|
||||
}
|
||||
.sign-type{
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -1,650 +0,0 @@
|
|||
<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.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="createTime"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="申请人"
|
||||
width="150"
|
||||
align="center"
|
||||
prop="createBy"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="实施单位"
|
||||
align="center"
|
||||
prop="impUnitName"
|
||||
width="150px"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="合同主体"
|
||||
align="center"
|
||||
prop="contractPart"
|
||||
width="150px"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="租赁单位"
|
||||
align="center"
|
||||
prop="leaseUnit"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="租赁工程"
|
||||
align="center"
|
||||
prop="leaseProject"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<!-- <el-table-column
|
||||
label="领料物资类型"
|
||||
align="center"
|
||||
prop="leaseType"
|
||||
width="110px"
|
||||
:show-overflow-tooltip="true"
|
||||
/> -->
|
||||
<el-table-column
|
||||
label="协议号"
|
||||
align="center"
|
||||
prop="agreementCode"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="租赁申请单号"
|
||||
align="center"
|
||||
prop="code"
|
||||
width="110px"
|
||||
:show-overflow-tooltip="true"
|
||||
>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="领料人"
|
||||
align="center"
|
||||
prop="leasePerson"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
|
||||
<!-- <el-table-column
|
||||
label="领料人电话"
|
||||
align="center"
|
||||
prop="phone"
|
||||
width="120px"
|
||||
:show-overflow-tooltip="true"
|
||||
/> -->
|
||||
|
||||
<el-table-column
|
||||
label="操作时间"
|
||||
align="center"
|
||||
width="160"
|
||||
prop="updateTime"
|
||||
: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'"
|
||||
>出库</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="warning"
|
||||
@click="handlePrint(scope.row)"
|
||||
>领料单</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, //申请时间
|
||||
taskStatus: "",
|
||||
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],
|
||||
taskStatus: this.queryParams.taskStatus,
|
||||
// statusList:[this.queryParams.taskStatus],
|
||||
pageSize: this.queryParams.pageSize,
|
||||
pageNum: this.queryParams.pageNum,
|
||||
};
|
||||
getListLeaseApply(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, 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>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -3,44 +3,35 @@
|
|||
<el-form
|
||||
:model="maForm"
|
||||
ref="maForm"
|
||||
size="small"
|
||||
:rules="rules"
|
||||
size="small"
|
||||
:inline="true"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="租赁单位" prop="unitId">
|
||||
<el-select
|
||||
v-model="maForm.unitId"
|
||||
placeholder="租赁单位"
|
||||
clearable
|
||||
<el-cascader
|
||||
v-model="unitId"
|
||||
:show-all-levels="false"
|
||||
:options="uniteList"
|
||||
:props="selectTreeProps"
|
||||
filterable
|
||||
style="width: 240px"
|
||||
clearable
|
||||
collapse-tags
|
||||
disabled
|
||||
>
|
||||
<el-option
|
||||
v-for="item in uniteList"
|
||||
:key="item.unitId"
|
||||
:label="item.unitName"
|
||||
:value="item.unitId"
|
||||
/>
|
||||
</el-select>
|
||||
placeholder="请选择租赁单位"
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="租赁工程" prop="projectId">
|
||||
<el-select
|
||||
v-model="maForm.projectId"
|
||||
placeholder="租赁工程"
|
||||
clearable
|
||||
<el-cascader
|
||||
v-model="projectId"
|
||||
:show-all-levels="false"
|
||||
:options="projectList"
|
||||
:props="selectTreeProps"
|
||||
filterable
|
||||
style="width: 240px"
|
||||
clearable
|
||||
collapse-tags
|
||||
disabled
|
||||
>
|
||||
<el-option
|
||||
v-for="item in projectList"
|
||||
:key="item.proId"
|
||||
:label="item.proName"
|
||||
:value="item.proId"
|
||||
/>
|
||||
</el-select>
|
||||
placeholder="请选择租赁工程"
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="领料人" prop="leasePerson">
|
||||
<el-input
|
||||
|
|
@ -66,6 +57,7 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
|
|
@ -102,7 +94,7 @@
|
|||
<el-table-column
|
||||
label="当前库存"
|
||||
align="center"
|
||||
prop="purchaseNum"
|
||||
prop="storageNum"
|
||||
:show-overflow-tooltip="true"
|
||||
>
|
||||
</el-table-column>
|
||||
|
|
@ -112,22 +104,10 @@
|
|||
prop="preNum"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="已领数量"
|
||||
align="center"
|
||||
prop="purchasePrice"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="管理模式"
|
||||
align="center"
|
||||
prop="purchasePrice"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="出库数量"
|
||||
align="center"
|
||||
prop="purchasePrice"
|
||||
prop="alNum"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
|
|
@ -146,6 +126,7 @@ import {
|
|||
uploadPurchaseFile,
|
||||
getPurchaseFileList,
|
||||
} from "@/api/purchase/goodsAccept";
|
||||
import { getApplyInfo, getListProject, getListUnite } from "@/api/lease/apply";
|
||||
import { getToken } from "@/utils/auth";
|
||||
export default {
|
||||
name: "QueryTools",
|
||||
|
|
@ -175,44 +156,91 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
fixCodeList: ["否", "是"],
|
||||
//任务ID
|
||||
taskId: "",
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
//任务数据
|
||||
taskInfo: {},
|
||||
//租赁单位
|
||||
uniteList: [],
|
||||
//租赁工程
|
||||
projectList: [],
|
||||
// 表格数据
|
||||
equipmentList: [],
|
||||
unitId: null,
|
||||
projectId: null,
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
rowData: {},
|
||||
maForm: {},
|
||||
maForm: {
|
||||
unitId: undefined,
|
||||
projectId: undefined,
|
||||
},
|
||||
selectTreeProps: {
|
||||
children: "children",
|
||||
label: "name",
|
||||
// multiple: false,
|
||||
value: "id",
|
||||
// multiple: true,
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
mounted() {
|
||||
this.taskId = this.queryTaskId;
|
||||
this.id = this.queryId;
|
||||
this.projectInfoList();
|
||||
this.getTaskInfo();
|
||||
},
|
||||
methods: {
|
||||
/** 租赁单位和工程-下拉选 */
|
||||
projectInfoList() {
|
||||
getListUnite({ id: null }).then((response) => {
|
||||
this.uniteList = response.data;
|
||||
});
|
||||
getListProject({ id: null }).then((response) => {
|
||||
this.projectList = response.data;
|
||||
});
|
||||
},
|
||||
//获取任务详情-列表数据
|
||||
getTaskInfo() {
|
||||
this.loading = true;
|
||||
getApplyInfo({ taskId: this.taskId, id: this.id }).then((response) => {
|
||||
this.taskInfo = response.data;
|
||||
this.equipmentList = response.data.purchaseCheckDetailsList;
|
||||
getApplyInfo(this.id).then((response) => {
|
||||
this.maForm = response.data.leaseApplyInfo;
|
||||
this.maForm.unitId = response.data.leaseApplyInfo.leaseUnitId;
|
||||
this.maForm.projectId = response.data.leaseApplyInfo.leaseProjectId;
|
||||
this.unitId = this.treeParentsById(this.uniteList, this.maForm.unitId);
|
||||
this.projectId = this.treeParentsById(
|
||||
this.projectList,
|
||||
this.maForm.projectId
|
||||
);
|
||||
this.equipmentList = response.data.leaseApplyDetailsList;
|
||||
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
|
||||
//单位,工程树结构数据获取父
|
||||
treeParentsById(list, id) {
|
||||
for (let i in list) {
|
||||
if (list[i].id == id) {
|
||||
//查询到就返回该数组对象的value
|
||||
return [list[i].id];
|
||||
}
|
||||
if (list[i].children) {
|
||||
let node = this.treeParentsById(list[i].children, id);
|
||||
if (node !== undefined) {
|
||||
//查询到把父节把父节点加到数组前面
|
||||
node.unshift(list[i].id);
|
||||
return node;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download(
|
||||
"/material/purchase_check_info/exportDetails",
|
||||
{ taskId: this.taskId },
|
||||
`新购到货详情_${new Date().getTime()}.xlsx`
|
||||
"/material/lease_apply_info/exportDetails",
|
||||
{ id: this.id },
|
||||
`领料申请详情_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
},
|
||||
},
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue