技术中心部分修改,添加库存系统

This commit is contained in:
hedekun
2018-11-16 09:08:57 +08:00
parent 666c65dd0f
commit 385816311b
49 changed files with 7923 additions and 7 deletions

View File

@@ -0,0 +1,133 @@
import request from '@/utils/request'
// 初始化项目
export function initProject() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_项目名称_查询数据'
}
})
}
// 机床查询
export function searchmachine(check, num) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_机床名称_查询数据',
param: '项目流水号_check=' + check + '=int&项目流水号=' + num
}
})
}
// 分组查询
export function searchTeam(machineNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_组件名称_查询数据',
param: '机床流水号=' + machineNumber
}
})
}
// 采购合同查询
export function searchContract() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_库存管理_采购合同查询'
}
})
}
// 采购合同明细查询
export function searchContractDetail(contractnumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '采购管理_采购合同明细_查询数据',
param: '采购合同流水号=' + contractnumber
}
})
}
// 直达件查询
export function searchDirectPart(pageCurrent, pageSize, project_check, project, machine_check, machine, group_check, group, contract) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_直达件_零件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group + '&合同流水号=' + contract,
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 人员查询 需要在部门确定之后修改
export function searchPeople() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '人事档案管理_人员_部门与人员_查询数据_根据部门编号',
param: '考核部门编号=' + 18
}
})
}
// 直达件增加
export function addDirectPart(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12, data13, data14) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_直达件_直达件增加',
param: '物料流水号=' + data1 + '&实际到货数量=' + data2 + '&货位流水号=' + data3 + '&采购合同明细流水号=' + data4 + '&入库人员流水号=' + data5 + '&领用者=' + data6 + '&出库数量=' + data7 + '&组件零件流水号=' + data8 + '&项目名称=' + data9 + '&机床名称=' + data10 + '&组件名称=' + data11 + '&物料名称=' + data12 + '&采购合同编号=' + data13 + '&备注=' + data14
}
})
}
// 直达件记录查询
export function searchDirectRec(contractnumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_直达件_直达件记录查询',
param: '采购合同明细流水号=' + contractnumber
}
})
}
// 直达件记录修改
export function editDirectRec(data1, data2, data3, data4) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_直达件_直达件记录修改',
param: '直达件流水号=' + data1 + '&到货数量=' + data2 + '&领用人员流水号=' + data3 + '&备注=' + data4
}
})
}
// 直达件记录删除
export function deleteDirectRec(data1) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_直达件_直达件记录删除',
param: '直达件流水号=' + data1
}
})
}

View File

@@ -0,0 +1,39 @@
import request from '@/utils/request'
// 交换件查询
export function searchExchangePart(pageCurrent, pageSize) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_交换件_交换件审批查询',
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 通过交换件
export function approvalExchangepart(data1, data2, data3, data4, data5, data6) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_交换件_交换件审批通过',
param: '交换单流水号=' + data1 + '&交换件物料流水号=' + data2 + '&交换件组件零件流水号=' + data3 + '&交换件采购合同明细流水号=' + data4 + '&货位流水号=' + data5 + '&交换数量=' + data6
}
})
}
// 拒绝交换件
export function disappExchangepart(data1, data2) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_交换件_交换件审批拒绝',
param: '交换单流水号=' + data1 + '&不通过原因=' + data2
}
})
}

View File

@@ -0,0 +1,110 @@
import request from '@/utils/request'
// 初始化项目
export function initProject() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_项目名称_查询数据'
}
})
}
// 机床查询
export function searchmachine(check, num) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_机床名称_查询数据',
param: '项目流水号_check=' + check + '=int&项目流水号=' + num
}
})
}
// 分组查询
export function searchTeam(machineNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_组件名称_查询数据',
param: '机床流水号=' + machineNumber
}
})
}
// 外购件、标准件查询
export function searchPurchasePart(pageCurrent, pageSize, project_check, project, machine_check, machine, group_check, group) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_外购件出库_零件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group,
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 领料单查询
export function searchList(listNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '车间装配管理_领料单_领料单查询',
param: '领料单编号=' + listNumber
}
})
}
// 交换件查询
export function searchExchangePart(pageCurrent, pageSize) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_交换件_交换件查询',
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 增加交换件
export function addExchangepart(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_交换件_交换件增加',
param: '交换单编号=' + data1 + '&交换件组件零件流水号=' + data2 + '&交换件物料流水号=' + data3 + '&交换件采购合同明细流水号=' + data4 + '&被交换件组件零件流水号=' + data5 + '&交换件名称=' + data6 + '&被交换件名称=' + data7 + '&货位流水号=' + data8 + '&交换数量=' + data9 + '&申请人=' + data10 + '&备注=' + data11
}
})
}
// 删除交换单
export function dropExchangeList(PickingListNumberx, data) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_交换件_交换件删除',
param: '交换单流水号=' + PickingListNumberx + '&交换件组件零件流水号=' + data
}
})
}
// 删除交换单
export function editExchangeList(data1, data2, data3, data4) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_交换件_交换单修改',
param: '交换单流水号=' + data1 + '&交换单编号=' + data2 + '&交换数量=' + data3 + '&备注=' + data4
}
})
}

View File

@@ -0,0 +1,35 @@
import request from '@/utils/request'
// 采购合同查询
export function searchContract() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_库存管理_采购合同查询'
}
})
}
// 仓库查询
export function searchInventory() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_货位主文件_仓库查询'
}
})
}
// 入库记录查询
export function searchInbound(data1, data2, data3) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_入库记录_查询',
param: '采购合同流水号=' + data1 + '&到货时间=' + data2 + '&仓库流水号=' + data3
}
})
}

View File

@@ -0,0 +1,48 @@
import request from '@/utils/request'
// 查询零件入库情况
export function searchTable(partnumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'MES_机加工MES_库存管理_入库模块_零件基础信息查询_根据零件图号',
param: '零件图号=' + partnumber + '=string'
}
})
}
// 仓库查询
export function getinventory() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_货位主文件_仓库查询'
}
})
}
// 货位查询
export function getlocate(housenumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_货位主文件_查询数据',
param: '仓库流水号=' + housenumber + '=int'
}
})
}
// 修改入库数量
export function insertOne(num0, num1, people, num4, num5, num6, num7) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: 'MES_机加工MES_库存管理_入库模块_增加入库信息_修改入库数量',
param: '工艺计划流水号=' + num0 + '=int&入库数量=' + num1 + '=int&收件人员编号=' + people + '=int&送件人员编号=1001' + '&漆塑=' + num4 + '&仓库流水号=' + num5 + '&货位流水号=' + num6 + '&备注=' + num7
}
})
}

View File

@@ -0,0 +1,174 @@
import request from '@/utils/request'
// 初始化项目
export function initProject() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_项目名称_查询数据'
}
})
}
// 机床查询
export function searchmachine(check, num) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_机床名称_查询数据',
param: '项目流水号_check=' + check + '=int&项目流水号=' + num
}
})
}
// 分组查询
export function searchTeam(machineNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_组件名称_查询数据',
param: '机床流水号=' + machineNumber
}
})
}
// 外购件查询
export function searchPurchasePart(pageCurrent, pageSize, project_check, project, machine_check, machine, group_check, group) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'dbo.库存管理_库存盘点_外购件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group,
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 外购件入库记录查询
export function searchPurchasePartIn(contractdetail) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_库存盘点_外购件入库记录',
param: '采购合同明细流水号=' + contractdetail
}
})
}
// 外购件出库记录查询
export function searchPurchasePartOut(teampart) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_库存盘点_外购件出库记录',
param: '组件零件流水号=' + teampart
}
})
}
// 标准件查询
export function searchStandardPart(pageCurrent, pageSize, project_check, project, machine_check, machine, group_check, group) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'dbo.库存管理_库存盘点_标准件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group,
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 标准件入库记录查询
export function searchStandardPartIn(data1) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_库存盘点_标准件入库记录',
param: '采购合同明细流水号=' + data1
}
})
}
// 标准件出库记录查询
export function searchStandardPartOut(data1) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_库存盘点_标准件出库记录',
param: '组件零件流水号=' + data1
}
})
}
// 标准件安全库存修改
export function safeAmount(data1, data2) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_库存盘点_标准件安全库存修改',
param: '组件零件流水号=' + data1 + '&安全库存量=' + data2
}
})
}
// 基本件查询
export function searchBasicPart(pageCurrent, pageSize, project_check, project, machine_check, machine, group_check, group) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'dbo.库存管理_库存盘点_基本件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group,
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 基本件入库记录查询
export function searchBasicPartIn(craftNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'dbo.库存管理_库存盘点_基本件入库记录',
param: '工艺计划流水号=' + craftNumber
}
})
}
// 基本件出库记录查询
export function searchBasicPartOut(craftNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'dbo.库存管理_库存盘点_基本件出库记录',
param: '工艺计划流水号=' + craftNumber
}
})
}
// 通用件查询
export function searchGeneralPart(pageCurrent, pageSize, project_check, project, machine_check, machine, group_check, group) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_库存盘点_通用件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group,
Pagination: pageCurrent + '&' + pageSize
}
})
}

View File

@@ -0,0 +1,109 @@
import request from '@/utils/request'
// 查询仓库
export function initWarehouse() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_货位仓库_仓库_查询数据'
}
})
}
// 增加仓库
export function addWarehouse(num0, num1, num2, num3, num4) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_货位仓库_仓库_增加数据',
param: '仓库编号=' + num0 + '&仓库名称=' + num1 + '&仓库描述=' + num2 + '&地址=' + num3 + '&联系人=' + num4 + '&备注=' + num4
}
})
}
// 修改仓库
export function alterWarehouse(num, num0, num1, num2, num3, num4, num5) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_货位仓库_仓库_修改数据',
param: '仓库流水号=' + num + '&仓库编号=' + num0 + '&仓库名称=' + num1 + '&仓库描述=' + num2 + '&地址=' + num3 + '&联系人=' + num4 + '&备注=' + num5
}
})
}
// 删除仓库
export function deleteWarehouse(num) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_货位仓库_仓库_删除数据',
param: '仓库流水号=' + num
}
})
}
// 查询货位
export function searchLocate(num) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_货位主文件_查询数据',
param: '仓库流水号=' + num
}
})
}
// 增加货位
export function addLocate(num0, num1, num2, num3, num4) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_货位主文件_增加数据',
param: '货位名称=' + num0 + '&工作中心=' + num1 + '&仓库流水号=' + num2 + '&永久=' + num3 + '&不可用量=' + num4
}
})
}
// 修改货位
export function alterLocate(num, num0, num1, num2, num3, num4) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_货位主文件_修改数据',
param: '货位流水号=' + num + '货位名称=' + num0 + '&工作中心=' + num1 + '&仓库流水号=' + num2 + '&永久=' + num3 + '&不可用量=' + num4
}
})
}
// 删除货位
export function deleteLocate(num) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_货位主文件_删除数据',
param: '货位流水号=' + num
}
})
}
// 人员查询 需要在部门确定之后修改
export function searchPeople() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '人事档案管理_人员_部门与人员_查询数据_根据部门编号',
param: '考核部门编号=' + 18
}
})
}

View File

@@ -0,0 +1,84 @@
import request from '@/utils/request'
// 初始化项目
export function initProject() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_项目名称_查询数据'
}
})
}
// 机床查询
export function searchmachine(check, num) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_机床名称_查询数据',
param: '项目流水号_check=' + check + '&项目流水号=' + num
}
})
}
// 分组查询
export function searchTeam(machineNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_组件名称_查询数据',
param: '机床流水号=' + machineNumber
}
})
}
// 初始化物料
export function searchPart() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_离线外购件_出库查询'
}
})
}
// 人员查询 需要在部门确定之后修改
export function searchPeople() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '人事档案管理_人员_部门与人员_查询数据_根据部门编号',
param: '考核部门编号=' + 18
}
})
}
// 离线件出库
export function outlinePartOut(data1, data2, data3, data4, data5, data6, data7, data8, data9, data10) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_离线采购件_零件出库',
param: '离线合同明细流水号=' + data1 + '&领用者=' + data2 + '&出库数量=' + data3 + '&货位流水号=' + data4 + '&备注=' + data5 + '&项目流水号=' + data6 + '&机床流水号=' + data7 + '&组件流水号=' + data8 + '&物料流水号=' + data9 + '&出库人员流水号=' + data10
}
})
}
// 查询出库记录
export function outRecord(data1) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_离线外购件出库_出库记录',
param: '离线合同明细流水号=' + data1
}
})
}

View File

@@ -0,0 +1,62 @@
import request from '@/utils/request'
// 领料单查询
export function searchList(listNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '车间装配管理_领料单_领料单查询',
param: '领料单编号=' + listNumber
}
})
}
// 领料单明细查询
export function searchListDetail(listNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '车间装配管理_领料单_领料单明细查询',
param: '领料单流水号=' + listNumber
}
})
}
// 外购件零件出库
export function PurchasePart(data1, data2, data3, data4, data5) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_外购件出库_修改数据',
param: '组件零件流水号=' + data1 + '&领用者=' + data2 + '&出库数量=' + data3 + '&货位流水号=' + data4 + '&备注=' + data5
}
})
}
// 基本件零件出库
export function BasicPart(data1, data2, data3, data4) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: 'MES_机加工MES_库存管理_出库模块_出库零件信息_零件出库',
param: '工艺计划流水号=' + data1 + '&本次出库数量=' + data2 + '&收件信息ID=' + data3 + '&出库备注=' + data4
}
})
}
// 车间采购件零件出库
export function WorkShopPart(data1, data2, data3, data4, data5) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_车间采购出库_修改数据',
param: '采购合同明细流水号=' + data1 + '&领用者=' + data2 + '&出库数量=' + data3 + '&货位流水号=' + data4 + '&备注=' + data5
}
})
}

View File

@@ -0,0 +1,161 @@
import request from '@/utils/request'
// 初始化项目
export function initProject() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_项目名称_查询数据'
}
})
}
// 机床查询
export function searchmachine(check, num) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_机床名称_查询数据',
param: '项目流水号_check=' + check + '=int&项目流水号=' + num
}
})
}
// 分组查询
export function searchTeam(machineNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_组件名称_查询数据',
param: '机床流水号=' + machineNumber
}
})
}
// 外购件、标准件查询
export function searchPurchasePart(pageCurrent, pageSize, project_check, project, machine_check, machine, group_check, group) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_外购件出库_零件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group,
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 基本件、通用件查询
export function searchBasicPart(pageCurrent, pageSize, project_check, project, machine_check, machine, group_check, group) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_基本件出库_零件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group,
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 车间采购件查询
export function searchHoursePart(pageCurrent, pageSize, project_check, project, machine_check, machine, group_check, group) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_车间采购出库_零件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group,
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 领料单查询
export function searchList(pageCurrent, pageSize, listNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '车间装配管理_领料单_领料单查询',
param: '领料单编号=' + listNumber,
Pagination: pageCurrent + '&' + pageSize
}
})
}
// 领料单明细查询
export function searchListDetail(listNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '车间装配管理_领料单_领料单明细查询',
param: '领料单流水号=' + listNumber
}
})
}
// 创建领料单
export function addList(peopleNumber) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '车间装配管理_领料单_领料单增加',
param: '领料人流水号=' + peopleNumber
}
})
}
// 删除领料单
export function dropList(PickingListNumberx) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '车间装配管理_领料单_领料单删除',
param: '领料单流水号=' + PickingListNumberx
}
})
}
// 删除领料单
export function dropListDetail(DetailNumberx) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '车间装配管理_领料单_领料单明细删除',
param: '领料单明细流水号=' + DetailNumberx
}
})
}
// 增加领料单明细
export function addListDetail(PickingListNumberx, projectnumber, machinenumber, teamNumber, project, machine, team, materialName, materialNumber, materialType, outNumber, partType, Note, data1, data2, data3, data4, data5) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '车间装配管理_领料单_领料单明细增加',
param: '领料单流水号=' + PickingListNumberx + '&项目流水号=' + projectnumber + '&机床流水号=' + machinenumber + '&组件流水号=' + teamNumber + '&项目名称=' + project + '&机床名称=' + machine + '&组件名称=' + team + '&物料名称=' + materialName + '&物料型号=' + materialNumber + '&物料规格=' + materialType + '&出库数量=' + outNumber + '&零件类型=' + partType + '&备注=' + Note + '&工艺计划流水号=' + data1 + '&收件信息ID=' + data2 + '&组件零件流水号=' + data3 + '&采购合同明细流水号=' + data4 + '&货位流水号=' + data5
}
})
}
// 修改领料单明细
export function editListDetail(data1, data2, data3) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '车间装配管理_领料单_领料单明细修改',
param: '领料单明细流水号=' + data1 + '&出库数量=' + data2 + '&备注=' + data3
}
})
}

View File

@@ -0,0 +1,24 @@
import request from '@/utils/request'
// 替换单查询
export function searchSubstitutedCard() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_替换件_替换单查询'
}
})
}
// 替换件到货
export function SubstitutedCome(data1, data2, data3) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_替换件_替换件到货',
param: '替换单流水号=' + data1 + '&物料与货位对照流水号=' + data2 + '&替换数量=' + data3
}
})
}

View File

@@ -0,0 +1,108 @@
import request from '@/utils/request'
// 初始化项目
export function initProject() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_项目名称_查询数据'
}
})
}
// 机床查询
export function searchmachine(check, num) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_机床名称_查询数据',
param: '项目流水号_check=' + check + '=int&项目流水号=' + num
}
})
}
// 分组查询
export function searchTeam(machineNumber) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: 'PDM_组件名称_查询数据',
param: '机床流水号=' + machineNumber
}
})
}
// 外购件、标准件查询
export function searchPurchasePart(project_check, project, machine_check, machine, group_check, group) {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_外购件出库_零件查询',
param: '项目流水号_check=' + project_check + '&项目流水号=' + project + '&机床流水号_check=' + machine_check + '&机床流水号=' + machine + '&组件流水号_check=' + group_check + '&组件流水号=' + group
}
})
}
// 被替换件查询
export function searchSubstituted() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_替换件_被替换件查询'
}
})
}
// 替换单查询
export function searchSubstitutedCard() {
return request({
url: '',
method: 'post',
data: {
type: '1',
name: '库存管理_替换件_替换单查询'
}
})
}
// 替换单修改
export function editSubstitutedCard(data1, data2, data3, data4) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_替换件_替换单修改',
param: '替换单流水号=' + data1 + '&替换单编号=' + data2 + '&替换数量=' + data3 + '&备注=' + data4
}
})
}
// 替换单删除
export function deleteSubstitutedCard(data1) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_替换件_替换单删除',
param: '替换单流水号=' + data1
}
})
}
// 增加替换件
export function addSubstitutepart(data1, data2, data3, data4, data5, data6, data7, data8) {
return request({
url: '',
method: 'post',
data: {
type: '2',
name: '库存管理_替换件_零件替换',
param: '离线合同明细流水号=' + data1 + '&替换件组件零件流水号=' + data2 + '&替换单编号=' + data3 + '&替换件名称=' + data4 + '&被替换件名称=' + data5 + '&申请人=' + data6 + '&替换数量=' + data7 + '&备注=' + data8
}
})
}

View File

@@ -1 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M1008.37 984.192c.493 2.2.762 4.483.762 6.831a30.92 30.92 0 0 1-5.604 17.79c-5.512 8.668-15.196 14.425-26.23 14.425-2.893 0-5.69-.405-8.347-1.144H55.049a31.083 31.083 0 0 1-8.348 1.144c-11.034 0-20.717-5.757-26.23-14.426a30.916 30.916 0 0 1-5.603-17.789c0-2.348.269-4.631.763-6.83v-671.77c0-17.16 13.91-31.07 31.07-31.07s31.071 13.91 31.071 31.07v647.53h868.456V62.902H328.816c-17.16 0-31.07-13.91-31.07-31.07s13.91-31.07 31.07-31.07h649.245c17.16 0 31.07 13.91 31.07 31.07 0 2.348-.268 4.632-.762 6.83v945.53zM201.077 312.554h638.19v57.948h-638.19v-57.948zm0 157.236h638.19v57.948h-638.19V469.79zm638.19 358.636h-638.19v-57.948h638.19v57.948zm-638.19-210.442h638.19v57.947h-638.19v-57.947zm65.525-444.212h-76.438v76.438c0 17.16-13.91 31.07-31.07 31.07s-31.071-13.91-31.071-31.07v-76.438H51.586c-17.16 0-31.07-13.91-31.07-31.07s13.91-31.072 31.07-31.072h76.438V35.193c0-17.16 13.91-31.071 31.07-31.071s31.071 13.91 31.071 31.07v76.438h76.438c17.16 0 31.07 13.911 31.07 31.071 0 17.16-13.91 31.071-31.07 31.071z"/></svg>
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M1008.37 984.192c.493 2.2.762 4.483.762 6.831a30.92 30.92 0 0 1-5.604 17.79c-5.512 8.668-15.196 14.425-26.23 14.425a31.1 31.1 0 0 1-8.347-1.144H55.049a31.083 31.083 0 0 1-8.348 1.144c-11.034 0-20.717-5.757-26.23-14.426a30.916 30.916 0 0 1-5.603-17.789c0-2.348.269-4.631.763-6.83v-671.77c0-17.16 13.91-31.07 31.07-31.07s31.071 13.91 31.071 31.07v647.53h868.456V62.902H328.816c-17.16 0-31.07-13.91-31.07-31.07s13.91-31.07 31.07-31.07h649.245c17.16 0 31.07 13.91 31.07 31.07 0 2.348-.268 4.632-.762 6.83v945.53zM201.077 312.554h638.19v57.948h-638.19v-57.948zm0 157.236h638.19v57.948h-638.19V469.79zm638.19 358.636h-638.19v-57.948h638.19v57.948zm-638.19-210.442h638.19v57.947h-638.19v-57.947zm65.525-444.212h-76.438v76.438c0 17.16-13.91 31.07-31.07 31.07s-31.071-13.91-31.071-31.07v-76.438H51.586c-17.16 0-31.07-13.91-31.07-31.07s13.91-31.072 31.07-31.072h76.438V35.193c0-17.16 13.91-31.071 31.07-31.071s31.071 13.91 31.071 31.07v76.438h76.438c17.16 0 31.07 13.911 31.07 31.071 0 17.16-13.91 31.071-31.07 31.071z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M247.836 934.116a28.444 28.444 0 1 1-40.561-39.88l59.818-60.87a28.444 28.444 0 1 1 40.562 39.907l-59.819 60.871zm-142.392 5.518a28.444 28.444 0 0 1-40.22-40.22L202.097 762.51a28.444 28.444 0 1 1 40.22 40.22L105.444 939.635zm.17-127.431a28.444 28.444 0 0 1-40.562-39.908l79.73-81.095a28.444 28.444 0 1 1 40.59 39.822l-79.758 81.124zm689.55-146.887c12.971 129.024-32.71 223.46-136.05 277.532-61.894 32.37-115.427 29.696-163.64 5.092-9.586-4.893-24.462-14.052-22.926-13.512-24.946-8.476-29.241-30.492-22.585-53.39 3.072-10.695 8.277-21.76 17.237-38.286l2.56-4.779 1.564-2.816c-5.29.768-11.207 1.735-18.033 2.93-51.371 8.932-61.668 9.785-81.067-.341-68.437-35.783-162.987-130.162-175.104-159.574-7.936-19.171-10.724-41.557-9.927-67.697.483-15.36 2.048-30.55 4.835-50.233l1.792-12.118c-3.953 2.447-8.248 5.405-13.738 9.444-1.622 1.195-11.094 8.22-13.824 10.183-5.69 4.125-10.155 7.111-14.507 9.586-19.883 11.378-40.135 13.568-53.788-8.96-34.873-57.572-36.466-90.823-18.233-168.021 28.131-119.154 123.648-174.109 276.508-164.41C440.206 157.27 528.953 105.33 622.393 80.584c95.516-25.287 196.636-30.322 303.16-15.19a28.473 28.473 0 0 1 24.69 23.524c45.085 234.553-6.599 427.805-155.079 576.399zM636.956 135.595c-87.011 23.04-170.467 72.903-250.481 150.101l-9.302 8.96-12.885-1.08C229.461 282.083 156.7 321.848 135.111 413.411c-12.658 53.532-14.108 75.52.768 106.097l10.638-7.879a275.627 275.627 0 0 1 18.034-12.288c29.668-18.318 56.49-22.898 78.962-.426 10.752 10.752 11.15 18.944 9.159 38.115-.398 4.04-.996 8.505-1.906 14.791l-2.39 16.441a391.51 391.51 0 0 0-4.323 43.947c-.569 18.773 1.309 33.735 5.632 44.26 6.656 16.099 91.591 100.892 148.907 130.844 2.276 1.194 12.715.313 44.97-5.29 21.903-3.812 35.84-5.633 51.2-6.202 5.263-.199 10.411-.199 15.446 0 16.981.74 30.151 13 31.8 29.867.826 8.05-.852 15.275-4.18 23.751-3.442 8.818-5.177 12.117-18.12 35.783l-2.474 4.551a276.28 276.28 0 0 0-9.785 19.513c6.002 3.47 11.719 6.884 13.91 7.965 32.71 16.725 66.957 18.403 111.388-4.836 84.821-44.373 119.267-120.206 104.39-233.984l-1.877-14.222 10.383-9.984C883.2 502.244 933.945 331.634 897.906 119.154c-91.876-10.81-178.802-5.32-260.95 16.44zM668.444 512a156.444 156.444 0 1 1 0-312.889 156.444 156.444 0 0 1 0 312.889zm0-56.889a99.556 99.556 0 1 0 0-199.111 99.556 99.556 0 0 0 0 199.111z"/></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M451.1 624.2l240.3-240.3c9-9 23.7-9 32.7 0s9 23.7 0 32.7L468.6 672c-4.8 4.8-11.2 7.1-17.5 6.7-6.3.3-12.7-1.9-17.5-6.7L281 519.4c-9-9-9-23.7 0-32.7s23.7-9 32.7 0l137.4 137.5zM881.8 117H766.2c-12.8 0-23.1-10.3-23.1-23.1s10.3-23.1 23.1-23.1h138.6c12.8 0 23.1 10.3 23.1 23.1v831.9c0 12.8-10.3 23.1-23.1 23.1H119.2c-12.8 0-23.1-10.3-23.1-23.1v-832c0-12.8 10.3-23.1 23.1-23.1h138.6c12.8 0 23.1 10.3 23.1 23.1s-10.3 23.2-23 23.2H142.3v785.7h739.5V117zM396.5 70.7h231.1c12.8 0 23.1 10.3 23.1 23.1S640.4 117 627.6 117H396.5c-12.8 0-23.1-10.3-23.1-23.1s10.4-23.2 23.1-23.2z"/></svg>

After

Width:  |  Height:  |  Size: 704 B

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M789.76 647.68V169.6h64v478.08z"/><path d="M854.4 233.6H323.2v-64h531.2zm-32.64 574.08l-120.32-208h240.64l-120.32 208zm-588.16-432v478.08h-64V375.68z"/><path d="M170.24 789.76h531.2v64h-531.2zm32-573.44l120.32 208H81.92l120.32-208z"/></svg>

After

Width:  |  Height:  |  Size: 372 B

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M896 651.636a34.91 34.91 0 0 0 34.91-34.909v-477.09a46.545 46.545 0 0 0-46.546-46.546H744.727V46.545A46.545 46.545 0 0 0 698.182 0H325.818a46.545 46.545 0 0 0-46.545 46.545v46.546H139.636a46.545 46.545 0 0 0-46.545 46.545v837.819A46.545 46.545 0 0 0 139.636 1024h744.728a46.545 46.545 0 0 0 46.545-46.545V826.182a34.91 34.91 0 0 0-69.818 0v128H162.909V162.909h116.364v46.546A46.545 46.545 0 0 0 325.818 256h372.364a46.545 46.545 0 0 0 46.545-46.545v-46.546h116.364v453.818A34.91 34.91 0 0 0 896 651.637zM674.91 186.182H349.09V69.818h325.82zM302.544 802.909a34.91 34.91 0 0 0 34.91 34.91h349.09a34.91 34.91 0 0 0 0-69.819h-349.09a34.91 34.91 0 0 0-34.91 34.91zM512 325.82a34.91 34.91 0 0 0-34.91 34.908v221.091l-72.145-72.145a34.91 34.91 0 0 0-49.338 49.338l139.637 139.636a23.273 23.273 0 0 0 32.814 0l139.637-139.636a34.91 34.91 0 1 0-49.339-49.338l-71.447 72.145v-221.09A34.91 34.91 0 0 0 512 325.817z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M365.694 365.688h292.551v46.223h-292.55zm-73.137 219.413h438.826v46.223H292.557z"/><path d="M870.198 1023.927c-28.085 0-54.049-14.481-67.726-37.74a47.54 47.54 0 0 0-82.499 0 78.477 78.477 0 0 1-67.798 37.74h-31.157c-28.085 0-54.122-14.481-67.799-37.74a47.54 47.54 0 0 0-82.499 0 78.55 78.55 0 0 1-67.725 37.74h-31.157c-28.085 0-54.049-14.481-67.799-37.74a47.54 47.54 0 0 0-82.426 0 78.55 78.55 0 0 1-67.798 37.74 81.329 81.329 0 0 1-80.671-81.914V243.987C73.144 109.414 180.876 0 313.182 0h397.576c132.379 0 240.038 109.414 240.038 243.987v698.099c0 45.126-36.13 81.84-80.598 81.84zM761.223 910.783c35.106 0 66.774 18.284 84.84 48.929a27.792 27.792 0 0 0 24.135 12.653 30.06 30.06 0 0 0 29.84-30.28V243.988c0-106.05-84.913-192.352-189.28-192.352H313.182c-104.368-.073-189.28 86.23-189.28 192.279v698.099c0 16.675 13.384 30.279 29.84 30.279a27.792 27.792 0 0 0 24.208-12.726c18.065-30.572 49.734-48.856 84.84-48.856 35.033 0 66.701 18.284 84.693 48.929a27.792 27.792 0 0 0 24.282 12.653h31.157a27.792 27.792 0 0 0 24.281-12.726c17.992-30.572 49.734-48.856 84.767-48.856 35.106 0 66.774 18.284 84.84 48.929a27.792 27.792 0 0 0 24.135 12.653h31.23a27.792 27.792 0 0 0 24.281-12.653c17.992-30.718 49.734-49.002 84.767-49.002z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M742.133 876.533c9.6 9.6 24.8 9.6 33.6 0 4.8-4.8 7.2-11.2 7.2-16.8s-2.4-12-7.2-16.8l-79.2-79.2h230.4c13.6 0 24-10.4 24-24s-10.4-24-24-24h-229.6l79.2-79.2c9.6-9.6 9.6-24.8 0-33.6-9.6-9.6-24.8-9.6-33.6 0l-120 120c-9.6 9.6-9.6 24.8 0 33.6l119.2 120z"/><path d="M70.933 407.733v-56.8c5.6-13.6 16.8-18.4 28.8-24 132-60 264-120 396-180.8 9.6-4.8 18.4-5.6 28.8-.8 136.8 61.6 272.8 124 409.6 186.4 11.2 5.6 16.8 14.4 17.6 26.4v40.8c0 16.8-9.6 25.6-26.4 25.6h-30.4v150.4h-84.8v-36.8h-596.8v340c-12.8 0-25.6.8-37.6 0-13.6-.8-25.6-7.2-34.4-17.6-9.6-12-12.8-25.6-12.8-40.8v-396.8c-8.8 0-16.8-.8-24.8 0-15.2 3.2-26.4-1.6-32.8-15.2zm212.8 17.6h62.4c6.4 0 9.6-2.4 9.6-9.6v-39.2c0-6.4-3.2-8.8-9.6-8.8h-124c-6.4 0-9.6 2.4-8.8 8.8v38.4c0 8 3.2 10.4 10.4 10.4h60zm453.6 0h62.4c7.2 0 10.4-2.4 10.4-9.6v-38.4c0-7.2-3.2-9.6-9.6-9.6h-123.2c-7.2 0-9.6 3.2-9.6 10.4v36c0 8 3.2 11.2 11.2 11.2h58.4zm-225.6 0h60.8c6.4 0 9.6-2.4 9.6-9.6v-39.2c0-6.4-2.4-8.8-8.8-8.8h-124c-7.2 0-9.6 3.2-9.6 9.6v37.6c0 7.2 2.4 10.4 10.4 10.4h61.6z"/><path d="M274.933 598.133h264c15.2 0 27.2 12 27.2 27.2s-12 27.2-27.2 27.2h-264c-15.2 0-27.2-12-27.2-27.2s12-27.2 27.2-27.2zm0 86.4h264c15.2 0 27.2 12 27.2 27.2s-12 27.2-27.2 27.2h-264c-15.2 0-27.2-12-27.2-27.2 0-14.4 12-27.2 27.2-27.2zm0 87.2h264c15.2 0 27.2 12 27.2 27.2s-12 27.2-27.2 27.2h-264c-15.2 0-27.2-12-27.2-27.2s12-27.2 27.2-27.2z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M854.205 114.355h-667.96a51.978 51.978 0 0 0-52.198 52.199v666.03a51.978 51.978 0 0 0 52.198 52.198h667.96a51.978 51.978 0 0 0 52.199-52.198v-666.03c.968-29-23.199-52.199-52.199-52.199zm-1.74 233.969v432.599c0 28.273-22.62 51.835-51.835 51.835H239.846c-28.272 0-51.834-22.62-51.834-51.835V220.145c0-28.273 22.62-51.835 51.834-51.835h561.72c28.273 0 51.836 22.62 51.836 51.835-.937 0-.937 128.179-.937 128.179zm-574.388-8.556c0 25.134 20.301 45.435 45.435 45.435s45.435-20.3 45.435-45.435c0-25.134-20.3-45.435-45.435-45.435s-45.435 20.301-45.435 45.435zm0 170.988c0 25.134 20.301 45.435 45.435 45.435s45.435-20.301 45.435-45.435-20.3-45.435-45.435-45.435-45.435 20.306-45.435 45.435zm0 166.267c0 25.134 20.301 45.435 45.435 45.435s45.435-20.301 45.435-45.435c0-25.134-20.3-45.435-45.435-45.435s-45.435 20.3-45.435 45.435zM751.74 316.564H458.844c-12.564 0-23.199 11.613-23.199 25.334 0 13.722 10.635 25.334 23.2 25.334h292.899c12.564 0 23.199-11.612 23.199-25.334 0-13.721-10.635-25.334-23.204-25.334zm0 169.938H458.844c-12.564 0-23.199 11.613-23.199 25.334s10.635 25.334 23.2 25.334h292.899c12.564 0 22.231-11.612 22.231-25.334s-9.667-24.279-22.236-25.334zm0 166.185H458.844c-12.564 0-22.23 11.613-22.23 25.334 0 13.722 10.633 24.274 22.23 24.274h292.9c12.564 0 22.231-11.612 22.231-25.334 0-12.667-9.667-24.274-22.236-24.274z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M956.93 404.022v490.984h-50.464V424.278L510.858 264.18 115.251 424.278v470.728H64.786V404.022l446.072-184.88 446.072 184.88z"/><path d="M202.23 851.77h610.884v41.914H202.231v-41.915zM202.23 738.875h610.884v41.915H202.231v-41.915zM202.23 625.98h610.884v41.915H202.231V625.98zM202.23 513.086h610.884V555H202.231v-41.914z"/></svg>

After

Width:  |  Height:  |  Size: 459 B

View File

@@ -1 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M339.647 484.9c-9.394 0-18.789-5.78-23.125-15.175l-25.293-56.367c-5.78-13.008 0-27.461 13.008-33.242 13.008-5.781 27.461 0 33.242 13.008l25.293 56.366c5.781 13.008 0 27.461-13.008 33.243-2.89 1.445-6.504 2.167-10.117 2.167zm88.164 0c-3.613 0-7.227-.722-10.117-2.167-13.008-5.782-18.79-20.235-13.008-33.243l25.293-56.367c5.781-13.007 20.234-18.788 33.242-13.007 13.008 5.781 18.789 20.234 13.008 33.242l-25.293 56.367c-4.336 9.394-13.73 15.175-23.125 15.175z"/><path d="M491.404 497.908H265.936c-13.73 0-25.292-11.562-25.292-25.293s11.562-25.292 25.292-25.292h225.468c13.73 0 25.293 11.562 25.293 25.292s-11.562 25.293-25.293 25.293zm0 109.844H265.936c-13.73 0-25.292-11.563-25.292-25.293s11.562-25.293 25.292-25.293h225.468c13.73 0 25.293 11.562 25.293 25.293s-11.562 25.293-25.293 25.293z"/><path d="M378.67 700.974c-13.73 0-25.292-11.563-25.292-25.293V473.338c0-13.73 11.562-25.293 25.292-25.293s25.293 11.563 25.293 25.293v202.343c0 13.73-11.562 25.293-25.293 25.293zM732.771 826.716a28.183 28.183 0 1 0 56.367 0 28.183 28.183 0 1 0-56.367 0zM844.0590000000001 826.716a28.183 28.183 0 1 0 56.367 0 28.183 28.183 0 1 0-56.367 0zM847.673 713.259a28.183 28.183 0 1 0 56.367 0 28.183 28.183 0 1 0-56.367 0zM776.853 500.076H622.205c-13.73 0-25.293-11.562-25.293-25.293s11.562-25.293 25.293-25.293h154.648c13.73 0 25.292 11.563 25.292 25.293s-10.84 25.293-25.292 25.293zM726.267 608.474H622.205c-13.73 0-25.293-11.562-25.293-25.293s11.562-25.293 25.293-25.293h104.062c13.73 0 25.293 11.563 25.293 25.293s-10.84 25.293-25.293 25.293z"/><path d="M667.01 853.454H207.401c-45.528 0-83.106-37.578-83.106-83.105V253.65c0-45.527 37.578-83.105 83.106-83.105h41.19c11.563 0 22.403 7.95 24.571 19.512 4.336 17.344 19.512 29.629 37.578 29.629s33.242-12.285 37.578-29.63c2.89-11.562 13.008-19.51 24.57-19.51h86.719c11.562 0 22.402 7.948 24.57 19.51 4.336 17.345 19.511 29.63 37.578 29.63s33.242-12.285 37.578-29.63c2.89-11.562 13.008-19.51 24.57-19.51h79.492c11.562 0 22.402 7.948 24.57 19.51 4.336 17.345 19.512 29.63 37.578 29.63s33.242-12.285 37.578-29.63c2.89-11.562 13.008-19.51 24.57-19.51h31.074c45.528 0 83.106 37.577 83.106 83.104v356.991c0 13.73-11.563 25.293-25.293 25.293s-25.293-11.562-25.293-25.293v-356.99c0-18.067-14.453-32.52-32.52-32.52h-13.73c-14.453 29.629-44.805 49.863-79.492 49.863s-65.039-19.512-79.492-49.863H601.97c-14.453 29.629-44.804 49.863-79.492 49.863s-65.038-19.512-79.491-49.863h-51.309c-14.453 29.629-44.804 49.863-79.492 49.863s-65.039-19.512-79.492-49.863h-23.847c-18.066 0-32.52 14.453-32.52 32.52v516.697c0 18.066 14.454 32.519 32.52 32.519h459.607c13.73 0 25.293 11.562 25.293 25.293s-13.007 25.293-26.738 25.293z"/></svg>
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M339.647 484.9c-9.394 0-18.789-5.78-23.125-15.175l-25.293-56.367c-5.78-13.008 0-27.461 13.008-33.242 13.008-5.781 27.461 0 33.242 13.008l25.293 56.366c5.781 13.008 0 27.461-13.008 33.243-2.89 1.445-6.504 2.167-10.117 2.167zm88.164 0c-3.613 0-7.227-.722-10.117-2.167-13.008-5.782-18.79-20.235-13.008-33.243l25.293-56.367c5.781-13.007 20.234-18.788 33.242-13.007 13.008 5.781 18.789 20.234 13.008 33.242l-25.293 56.367c-4.336 9.394-13.73 15.175-23.125 15.175z"/><path d="M491.404 497.908H265.936c-13.73 0-25.292-11.562-25.292-25.293s11.562-25.292 25.292-25.292h225.468c13.73 0 25.293 11.562 25.293 25.292s-11.562 25.293-25.293 25.293zm0 109.844H265.936c-13.73 0-25.292-11.563-25.292-25.293s11.562-25.293 25.292-25.293h225.468c13.73 0 25.293 11.562 25.293 25.293s-11.562 25.293-25.293 25.293z"/><path d="M378.67 700.974c-13.73 0-25.292-11.563-25.292-25.293V473.338c0-13.73 11.562-25.293 25.292-25.293s25.293 11.563 25.293 25.293v202.343c0 13.73-11.562 25.293-25.293 25.293zm354.101 125.742a28.183 28.183 0 1 0 56.367 0 28.183 28.183 0 1 0-56.367 0zm111.288 0a28.183 28.183 0 1 0 56.367 0 28.183 28.183 0 1 0-56.367 0zm3.614-113.457a28.183 28.183 0 1 0 56.367 0 28.183 28.183 0 1 0-56.367 0zm-70.82-213.183H622.205c-13.73 0-25.293-11.562-25.293-25.293s11.562-25.293 25.293-25.293h154.648c13.73 0 25.292 11.563 25.292 25.293s-10.84 25.293-25.292 25.293zm-50.586 108.398H622.205c-13.73 0-25.293-11.562-25.293-25.293s11.562-25.293 25.293-25.293h104.062c13.73 0 25.293 11.563 25.293 25.293s-10.84 25.293-25.293 25.293z"/><path d="M667.01 853.454H207.401c-45.528 0-83.106-37.578-83.106-83.105V253.65c0-45.527 37.578-83.105 83.106-83.105h41.19c11.563 0 22.403 7.95 24.571 19.512 4.336 17.344 19.512 29.629 37.578 29.629s33.242-12.285 37.578-29.63c2.89-11.562 13.008-19.51 24.57-19.51h86.719c11.562 0 22.402 7.948 24.57 19.51 4.336 17.345 19.511 29.63 37.578 29.63s33.242-12.285 37.578-29.63c2.89-11.562 13.008-19.51 24.57-19.51h79.492c11.562 0 22.402 7.948 24.57 19.51 4.336 17.345 19.512 29.63 37.578 29.63s33.242-12.285 37.578-29.63c2.89-11.562 13.008-19.51 24.57-19.51h31.074c45.528 0 83.106 37.577 83.106 83.104v356.991c0 13.73-11.563 25.293-25.293 25.293s-25.293-11.562-25.293-25.293v-356.99c0-18.067-14.453-32.52-32.52-32.52h-13.73c-14.453 29.629-44.805 49.863-79.492 49.863s-65.039-19.512-79.492-49.863H601.97c-14.453 29.629-44.804 49.863-79.492 49.863s-65.038-19.512-79.491-49.863h-51.309c-14.453 29.629-44.804 49.863-79.492 49.863s-65.039-19.512-79.492-49.863h-23.847c-18.066 0-32.52 14.453-32.52 32.52v516.697c0 18.066 14.454 32.519 32.52 32.519h459.607c13.73 0 25.293 11.562 25.293 25.293s-13.007 25.293-26.738 25.293z"/></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M255.435 63.177v639.437H63.6c0 254.53 125.33 255.78 127.89 255.78h575.564c191.775 0 191.775-127.891 191.775-127.891V63.177H255.435zM703.05 894.448l-508.125.124c-15.614-1.998-52.705-29.85-64.01-128.014H703.05v127.89zm191.835-63.945c0 .624 0 63.945-127.89 63.945V702.614H319.38V127.121h575.504v703.382z"/><path d="M383.326 255.012H830.94v63.944H383.326v-63.944zM383.326 382.9H830.94v63.946H383.326v-63.945zM383.326 510.791H830.94v63.934H383.326V510.79z"/></svg>
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M255.435 63.177v639.437H63.6c0 254.53 125.33 255.78 127.89 255.78h575.564c191.775 0 191.775-127.891 191.775-127.891V63.177H255.435zM703.05 894.448l-508.125.124c-15.614-1.998-52.705-29.85-64.01-128.014H703.05v127.89zm191.835-63.945c0 .624 0 63.945-127.89 63.945V702.614H319.38V127.121h575.504v703.382z"/><path d="M383.326 255.012H830.94v63.944H383.326v-63.944zm0 127.888H830.94v63.946H383.326v-63.945zm0 127.891H830.94v63.934H383.326V510.79z"/></svg>

Before

Width:  |  Height:  |  Size: 591 B

After

Width:  |  Height:  |  Size: 581 B

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M958.6 488.1L817.9 348.7c-12-11.9-31.2-11.8-43.1.2-11.9 12-11.8 31.3.2 43.1l89.2 88.4h-492c-16.8 0-30.5 13.6-30.5 30.5 0 16.8 13.6 30.5 30.5 30.5h491.1L775.5 630c-11.9 12-11.8 31.3.2 43.1 6 5.9 13.7 8.8 21.5 8.8 7.8 0 15.7-3 21.6-9l139.5-140.7c1-1 2.6-3 3.5-4.1 8.8-12.3 7.6-29.3-3.2-40z"/><path d="M813.2 748c-73.4 93.3-183.5 146.8-302 146.8-211.7 0-384-172.3-384-384s172.3-384 384-384c118.5 0 228.6 53.5 302 146.8 10.4 13.2 29.6 15.5 42.8 5.1 13.2-10.4 15.5-29.6 5.1-42.8-85-108.1-212.6-170.1-349.9-170.1-245.4 0-445 199.6-445 445s199.6 445 445 445c137.4 0 264.9-62 349.9-170.1 10.4-13.2 8.1-32.4-5.1-42.8-13.3-10.4-32.4-8.1-42.8 5.1z"/></svg>

After

Width:  |  Height:  |  Size: 777 B

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1172 1024" xmlns="http://www.w3.org/2000/svg" width="228.906" height="200"><defs><style/></defs><path d="M1044.686 501.16c20.913 0 37.927 17.014 37.927 37.926v365.467c0 20.914-17.014 37.926-37.927 37.926h-503.38c-20.913 0-37.927-17.014-37.927-37.926V539.086c0-20.913 17.014-37.926 37.927-37.926h503.38m0-44.82h-503.38c-45.7 0-82.748 37.047-82.748 82.746v365.467c0 45.7 37.047 82.747 82.748 82.747h503.38c45.7 0 82.747-37.047 82.747-82.747V539.086c0-45.7-37.047-82.747-82.747-82.747z"/><path d="M900.964 810.354c0 1.502-1.19 3.632-3.567 6.384-24.41 28.292-54.642 42.436-90.693 42.436-37.554 0-67.598-13.708-90.13-41.122-21.03-25.537-31.545-57.458-31.545-95.763 0-38.305 10.702-70.349 32.108-96.138 22.781-27.79 52.886-41.686 90.317-41.686 37.93 0 67.284 12.834 88.065 38.493 2 2.628 3.004 4.82 3.004 6.572 0 2.13-3.318 8.42-9.952 18.87-6.636 10.454-10.641 15.68-12.017 15.68-1.629 0-5.445-3.066-11.454-9.2-7.388-7.51-14.336-13.145-20.843-16.9-10.768-6.132-22.658-9.2-35.677-9.2-24.786 0-44.064 9.454-57.833 28.354-12.269 16.9-18.401 38.182-18.401 63.842 0 25.663 6.07 47.13 18.214 64.404 13.769 19.405 32.983 29.106 57.646 29.106 12.266 0 24.096-3.067 35.488-9.2 7.51-4.005 15.144-9.7 22.908-17.087 6.507-6.133 10.075-9.2 10.704-9.2.75 0 4.882 4.975 12.393 14.927 7.51 9.95 11.265 15.428 11.265 16.428zM827.417 163.38v270.549h44.877v-270.55c0-45.757-37.093-82.85-82.85-82.85h-82.128v44.876h82.128c20.939 0 37.973 17.036 37.973 37.975zm-391.27 741.175v-6.257H127.671c-20.939 0-37.973-17.035-37.973-37.973V163.38c0-20.939 17.034-37.975 37.973-37.975H209.8V80.528h-82.128c-45.757 0-82.85 37.094-82.85 82.852v696.943c0 45.758 37.094 82.85 82.85 82.85h315.823a104.628 104.628 0 0 1-7.347-38.618z"/><path d="M458.042 206.127l157.34 157.34-31.693 31.693-125.647-125.647L332.395 395.16 300.7 363.467zM207.799 754.745h228.032v44.821H207.799z"/><path d="M437.188 524.36c4.113-29.21 20.26-54.611 43.265-70.99V231.071H435.63V524.36h1.557z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -1 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M391.81 95.36h217.462c5.718 0 10.355-5.102 10.355-11.396v-8.546c0-6.294-4.637-11.396-10.355-11.396H391.809c-5.72 0-10.356 5.102-10.356 11.396v8.546c0 6.294 4.637 11.396 10.356 11.396zM305.649 389.747H695.43c5.718 0 10.355-5.103 10.355-11.396v-8.547c0-6.293-4.637-11.395-10.355-11.395H305.65c-5.72 0-10.356 5.102-10.356 11.395v8.547c0 6.293 4.637 11.396 10.356 11.396z"/><path d="M860.413 595.755v-493.17c0-20.977-15.43-37.986-34.464-37.986H704.582c-10.744 1.199-15.274 14.72-15.274 14.72l-38.393 69.362s-2.835 4.306-4.257 5.184c-1.22.756-4.739.95-4.739.95H357.808s-2.675-.34-3.662-.95c-.724-.448-2.59-2.174-2.59-2.174l-40.059-72.372s-4.53-13.521-15.273-14.72H175.202c-19.034 0-34.464 17.008-34.464 37.986V857.02c0 20.979 15.43 37.985 34.464 37.985h382.28l-.006-.006c38.684 39.76 92.76 64.47 152.617 64.47 117.593 0 212.924-95.329 212.924-212.922 0-58.917-23.934-112.242-62.604-150.792zm-6.102-5.836c-.22-.2-.433-.407-.653-.608.22.2.435.406.653.608zm-3.346-3.016c-.288-.255-.574-.513-.863-.767.29.254.575.512.863.767zM175.202 863.667c-3.326 0-6.032-2.983-6.032-6.647V102.585c0-3.665 2.706-6.647 6.032-6.647H287.39l39.894 72.074 2.424 4.38 3.566 3.3c3.911 3.619 6.049 4.941 6.952 5.5 1.478.915 5.973 3.696 14.329 4.755l1.62.206h286.456l.71-.04c10.194-.563 15.498-3.847 17.225-4.917 3.195-1.975 7.598-5.362 13.358-14.106l.669-1.018.594-1.072 38.225-69.063h112.534c3.324 0 6.031 2.982 6.031 6.647v469.372c-34.53-24.154-76.55-38.334-121.886-38.334-1.44 0-2.874.026-4.307.056v-7.185c0-6.293-4.637-11.395-10.355-11.395H305.65c-5.72 0-10.356 5.102-10.356 11.395v8.547c0 6.295 4.637 11.396 10.356 11.396h331.538c1.386-.505 2.781-.995 4.18-1.472-60.281 20.547-108.39 67.375-130.688 126.825H305.65c-5.72 0-10.356 5.102-10.356 11.396v8.547c0 6.295 4.637 11.396 10.356 11.396h195.958a213.632 213.632 0 0 0-4.436 43.42c0 43.28 12.924 83.534 35.107 117.14l-.012-.019H175.202zm672.103-279.923c-.266-.224-.53-.45-.797-.673.267.223.531.45.797.673zm-3.757-3.097c-.221-.178-.441-.357-.661-.533.22.176.44.355.66.533zm-3.813-3l-.493-.38c.164.127.33.253.493.38zm-3.866-2.903l-.264-.192.264.192zm-134.011-40.947l-.913.034.913-.034zm-4.626.225l-1.03.064c.344-.021.686-.045 1.03-.064zm-4.772.333c-.173.015-.345.032-.518.046.174-.014.346-.032.518-.046zm-12.397 1.387c-.395.055-.79.106-1.184.164.394-.057.79-.109 1.184-.164zm-4.376.663zm-4.624.801c-.569.105-1.134.216-1.702.325.568-.109 1.134-.22 1.702-.325zm-4.663.914c-.523.108-1.042.228-1.562.34.52-.113 1.04-.232 1.562-.34zm-6.89 1.566c-.655.158-1.31.313-1.962.478.652-.166 1.308-.32 1.961-.478zm-4.458 1.135c-.728.194-1.455.388-2.178.59.723-.202 1.45-.395 2.178-.59zm-4.582 1.275zm-4.567 1.384c-.799.252-1.595.514-2.39.776.796-.262 1.591-.524 2.39-.776zM509.358 675.416l-.145.41.145-.41zm-3.728 11.553c-.027.093-.057.187-.083.28l.083-.28zm-.928 3.302zm-1.13 4.293c-.156.627-.308 1.258-.46 1.887.154-.63.303-1.26.46-1.887zm50.433 196.782c.01.011.022.021.03.032l-.03-.032zm-18.924-23.52c.01.012.019.025.027.038l-.027-.038zm2.925 4.108c.009.012.018.023.025.035l-.025-.035zm3.018 4.034l.028.037c-.009-.013-.02-.024-.028-.037zm3.106 3.956l.037.046c-.011-.017-.024-.031-.037-.046zm3.202 3.884l.037.044c-.011-.015-.025-.029-.037-.044zm3.292 3.808l.036.04-.036-.04zm288.32-12.217c-34.417 34.416-80.178 53.371-128.85 53.371-48.674 0-94.435-18.955-128.852-53.371-34.418-34.418-53.373-80.18-53.373-128.852 0-48.674 18.955-94.434 53.373-128.852s80.178-53.372 128.851-53.372 94.434 18.954 128.852 53.372 53.372 80.18 53.372 128.852-18.954 94.433-53.372 128.852z"/><path d="M801.835 756.008c8.477 0 15.35-6.872 15.35-15.35s-6.873-15.349-15.35-15.349H742.09l65.67-85.421c5.167-6.721 3.907-16.358-2.814-21.525-6.72-5.168-16.358-3.907-21.524 2.814l-72.494 94.297-72.496-94.297c-5.167-6.72-14.802-7.982-21.524-2.814-6.72 5.167-7.98 14.804-2.813 21.525l65.671 85.421h-59.744c-8.477 0-15.35 6.873-15.35 15.35s6.873 15.35 15.35 15.35h75.557v33.44h-71.92c-8.477 0-15.35 6.873-15.35 15.35s6.873 15.35 15.35 15.35h71.92v57.341c0 8.477 6.872 15.35 15.35 15.35s15.349-6.873 15.349-15.35v-57.342h71.919c8.477 0 15.35-6.872 15.35-15.35s-6.873-15.349-15.35-15.349h-71.92v-33.44h75.557z"/></svg>
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M391.81 95.36h217.462c5.718 0 10.355-5.102 10.355-11.396v-8.546c0-6.294-4.637-11.396-10.355-11.396H391.809c-5.72 0-10.356 5.102-10.356 11.396v8.546c0 6.294 4.637 11.396 10.356 11.396zm-86.161 294.387H695.43c5.718 0 10.355-5.103 10.355-11.396v-8.547c0-6.293-4.637-11.395-10.355-11.395H305.65c-5.72 0-10.356 5.102-10.356 11.395v8.547c0 6.293 4.637 11.396 10.356 11.396z"/><path d="M860.413 595.755v-493.17c0-20.977-15.43-37.986-34.464-37.986H704.582c-10.744 1.199-15.274 14.72-15.274 14.72l-38.393 69.362s-2.835 4.306-4.257 5.184c-1.22.756-4.739.95-4.739.95H357.808s-2.675-.34-3.662-.95c-.724-.448-2.59-2.174-2.59-2.174l-40.059-72.372s-4.53-13.521-15.273-14.72H175.202c-19.034 0-34.464 17.008-34.464 37.986V857.02c0 20.979 15.43 37.985 34.464 37.985h382.28l-.006-.006c38.684 39.76 92.76 64.47 152.617 64.47 117.593 0 212.924-95.329 212.924-212.922 0-58.917-23.934-112.242-62.604-150.792zm-6.102-5.836c-.22-.2-.433-.407-.653-.608.22.2.435.406.653.608zm-3.346-3.016c-.288-.255-.574-.513-.863-.767.29.254.575.512.863.767zM175.202 863.667c-3.326 0-6.032-2.983-6.032-6.647V102.585c0-3.665 2.706-6.647 6.032-6.647H287.39l39.894 72.074 2.424 4.38 3.566 3.3c3.911 3.619 6.049 4.941 6.952 5.5 1.478.915 5.973 3.696 14.329 4.755l1.62.206h286.456l.71-.04c10.194-.563 15.498-3.847 17.225-4.917 3.195-1.975 7.598-5.362 13.358-14.106l.669-1.018.594-1.072 38.225-69.063h112.534c3.324 0 6.031 2.982 6.031 6.647v469.372c-34.53-24.154-76.55-38.334-121.886-38.334-1.44 0-2.874.026-4.307.056v-7.185c0-6.293-4.637-11.395-10.355-11.395H305.65c-5.72 0-10.356 5.102-10.356 11.395v8.547c0 6.295 4.637 11.396 10.356 11.396h331.538c1.386-.505 2.781-.995 4.18-1.472-60.281 20.547-108.39 67.375-130.688 126.825H305.65c-5.72 0-10.356 5.102-10.356 11.396v8.547c0 6.295 4.637 11.396 10.356 11.396h195.958a213.632 213.632 0 0 0-4.436 43.42c0 43.28 12.924 83.534 35.107 117.14l-.012-.019H175.202zm672.103-279.923c-.266-.224-.53-.45-.797-.673.267.223.531.45.797.673zm-3.757-3.097c-.221-.178-.441-.357-.661-.533.22.176.44.355.66.533zm-3.813-3l-.493-.38c.164.127.33.253.493.38zm-3.866-2.903l-.264-.192.264.192zm-134.011-40.947l-.913.034.913-.034zm-4.626.225l-1.03.064c.344-.021.686-.045 1.03-.064zm-4.772.333c-.173.015-.345.032-.518.046.174-.014.346-.032.518-.046zm-12.397 1.387c-.395.055-.79.106-1.184.164.394-.057.79-.109 1.184-.164zm-4.376.663zm-4.624.801c-.569.105-1.134.216-1.702.325.568-.109 1.134-.22 1.702-.325zm-4.663.914c-.523.108-1.042.228-1.562.34.52-.113 1.04-.232 1.562-.34zm-6.89 1.566c-.655.158-1.31.313-1.962.478.652-.166 1.308-.32 1.961-.478zm-4.458 1.135c-.728.194-1.455.388-2.178.59.723-.202 1.45-.395 2.178-.59zm-4.582 1.275zm-4.567 1.384c-.799.252-1.595.514-2.39.776.796-.262 1.591-.524 2.39-.776zM509.358 675.416l-.145.41.145-.41zm-3.728 11.553c-.027.093-.057.187-.083.28l.083-.28zm-.928 3.302zm-1.13 4.293c-.156.627-.308 1.258-.46 1.887.154-.63.303-1.26.46-1.887zm50.433 196.782c.01.011.022.021.03.032l-.03-.032zm-18.924-23.52c.01.012.019.025.027.038l-.027-.038zm2.925 4.108c.009.012.018.023.025.035l-.025-.035zm3.018 4.034l.028.037c-.009-.013-.02-.024-.028-.037zm3.106 3.956l.037.046c-.011-.017-.024-.031-.037-.046zm3.202 3.884l.037.044c-.011-.015-.025-.029-.037-.044zm3.292 3.808l.036.04-.036-.04zm288.32-12.217c-34.417 34.416-80.178 53.371-128.85 53.371-48.674 0-94.435-18.955-128.852-53.371-34.418-34.418-53.373-80.18-53.373-128.852 0-48.674 18.955-94.434 53.373-128.852s80.178-53.372 128.851-53.372 94.434 18.954 128.852 53.372 53.372 80.18 53.372 128.852-18.954 94.433-53.372 128.852z"/><path d="M801.835 756.008c8.477 0 15.35-6.872 15.35-15.35s-6.873-15.349-15.35-15.349H742.09l65.67-85.421c5.167-6.721 3.907-16.358-2.814-21.525-6.72-5.168-16.358-3.907-21.524 2.814l-72.494 94.297-72.496-94.297c-5.167-6.72-14.802-7.982-21.524-2.814-6.72 5.167-7.98 14.804-2.813 21.525l65.671 85.421h-59.744c-8.477 0-15.35 6.873-15.35 15.35s6.873 15.35 15.35 15.35h75.557v33.44h-71.92c-8.477 0-15.35 6.873-15.35 15.35s6.873 15.35 15.35 15.35h71.92v57.341c0 8.477 6.872 15.35 15.35 15.35s15.349-6.873 15.349-15.35v-57.342h71.919c8.477 0 15.35-6.872 15.35-15.35s-6.873-15.349-15.35-15.349h-71.92v-33.44h75.557z"/></svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M85.333 85.547A85.525 85.525 0 0 1 170.667 0h682.666c47.147 0 85.334 38.272 85.334 85.547V1024l-160.64-106.667L642.9 1024 513.088 917.333 380.629 1024 242.005 917.333 85.333 1024V85.547zm85.334 63.765V879.36l92.672-79.659 117.29 91.691 132.459-91.69 129.813 91.69 113.792-91.69 96.64 79.658V149.333a64 64 0 0 0-63.914-64H234.58a63.85 63.85 0 0 0-63.914 63.979zM256 256c0-23.573 19.136-42.667 42.773-42.667h426.454C748.843 213.333 768 232.277 768 256c0 23.573-19.136 42.667-42.773 42.667H298.773A42.624 42.624 0 0 1 256 256zm0 192c0-23.573 19.136-42.667 42.773-42.667h426.454C748.843 405.333 768 424.277 768 448c0 23.573-19.136 42.667-42.773 42.667H298.773A42.624 42.624 0 0 1 256 448zm0 192c0-23.573 19.136-42.667 42.773-42.667h426.454C748.843 597.333 768 616.277 768 640c0 23.573-19.136 42.667-42.773 42.667H298.773A42.624 42.624 0 0 1 256 640z"/></svg>

After

Width:  |  Height:  |  Size: 986 B

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M70.345 1023.2C31.975 1023.2 0 992.026 0 952.857V217.43L123.104 31.176C136.694 11.19 158.276 0 182.258 0h657.086c23.182 0 45.565 11.99 58.355 31.176L1023.2 218.23v735.425c0 38.37-31.176 70.345-70.345 70.345H70.345v-.8zm-3.197-67.946h889.704V286.976H67.148v668.278zM176.662 67.947L63.95 220.627h895.3L849.737 67.148l-673.074.8zM473.23 779.39c-11.191 0-20.783-3.997-28.777-10.392-2.398-1.599-2.398-2.398-3.198-3.997v-.799L271.788 613.92c-7.195-6.395-11.991-15.987-11.991-25.58s4.796-19.185 11.99-25.58c7.195-6.395 17.587-10.392 27.979-10.392s20.784 3.997 27.978 10.392l145.486 129.5L718.64 410.878c7.993-7.194 18.385-10.392 28.777-10.392s19.984 3.997 27.179 10.392 11.99 15.988 11.99 25.58-4.796 19.185-11.99 25.58l-269.39 303.763c-.8.8-1.598 2.398-3.197 3.997-7.195 6.395-17.586 10.391-27.179 10.391h-1.599v-.799z"/></svg>

After

Width:  |  Height:  |  Size: 953 B

View File

@@ -0,0 +1 @@
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><defs><style/></defs><path d="M1021.747 239.514c0 1.536-.717 3.072-2.253 4.608v2.252L909.722 356.147c-6.144 3.072-10.65 4.506-13.722 4.506-3.072 0-7.578-1.434-13.722-4.608-9.113-9.114-9.113-18.33 0-27.443l79.975-77.722h-742.81c-50.278 0-93.286 17.92-129.126 53.658-35.84 35.84-53.76 78.848-53.76 129.126v18.33c0 12.288-6.144 18.33-18.33 18.33S0 464.383 0 452.095v-18.227c0-60.928 21.3-112.743 64-155.443 42.7-42.599 94.515-64 155.443-64h742.81l-79.975-77.722c-9.113-9.114-9.113-18.33 0-27.443 9.114-9.114 18.33-9.114 27.444 0l109.67 109.67c1.536 3.072 2.253 5.427 2.253 6.861 1.638 4.608 1.638 9.216.102 13.722zm-34.304 249.139c0-12.186 6.144-18.33 18.33-18.33 12.083.103 18.227 6.144 18.227 18.33v18.33c0 60.927-21.3 112.844-64 155.443-42.7 42.598-94.515 64-155.443 64H61.747l79.975 77.721c9.113 9.114 9.113 18.33 0 27.443-6.144 3.072-10.65 4.506-13.722 4.506-3.072 0-7.578-1.434-13.722-4.608L4.608 721.818c-1.536-3.072-2.355-5.325-2.355-6.861-1.536-4.608-1.536-9.114 0-13.722 0-1.433.819-3.072 2.253-4.608v-2.253l109.772-109.67c9.114-9.114 18.33-9.114 27.444 0 9.113 9.114 9.113 18.33 0 27.443L61.747 689.87h742.81c50.278 0 93.286-17.92 129.126-53.76 35.84-35.738 53.76-78.848 53.76-129.127v-18.33z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -8,6 +8,7 @@ const getters = {
visitedViews: state => state.tagsView.visitedViews,
cachedViews: state => state.tagsView.cachedViews,
permission_routers: state => state.permission.routers,
addRouters: state => state.permission.addRouters
addRouters: state => state.permission.addRouters,
id: state => state.user.id
}
export default getters

View File

@@ -3,6 +3,9 @@ import axios from 'axios'
// import store from '../store'
// import { getToken } from '@/utils/auth'
export const wsuri = `ws://192.168.1.128:61101//WebMoudule//websocket`
export const name = `OP8888`
// 创建axios实例
export const upload = `http://123.56.95.229:8411/submit/uploadFile.ashx`
export const download = `http://123.56.95.229:8411/submit/downloadFile.ashx`
@@ -26,7 +29,7 @@ const service = axios.create({
// }
// )
// // response 拦截器
// response 拦截器
// service.interceptors.response.use(
// response => {
// /**

View File

@@ -0,0 +1,460 @@
<template>
<div class="app-container">
<el-card>
<span>项目名称:</span>
<el-select v-model="ProjectValue" filterable clearable size="small" placeholder="请选择项目名称" style="width: 200px;margin-right:10px" @change="searchMachine()">
<el-option
v-for="item in Project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="MachineValue" filterable clearable size="small" placeholder="机床图号" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="GroupNumValue" filterable clearable size="small" placeholder="组号" style="width: 200px">
<el-option
v-for="item in GroupNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>采购合同:</span>
<el-select v-model="ContractValue" filterable clearable size="small" placeholder="采购合同" style="width: 200px">
<el-option
v-for="item in Contract"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="total = 0;pageSize = 10;pageList = 1;searchPartinfo()">查询</el-button><br>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableDataPurchase"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="采购合同编号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.数量 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="addDirect(scope.row)">直达</el-button>
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 0 0px" @click="searchDirect(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"/>
</div>
</el-card>
<el-card>
<el-table
v-loading="listLoading1"
:data="directRecord"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="采购合同" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="到货数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.到货数量 }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-edit" style="margin: 0 0 0 0px" @click="changeDirect(scope.row)">编辑</el-button>
<el-button size="small" type="danger" icon="el-icon-delete" style="margin: 0 0 0 0px" @click="dropListinfor(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<!--新增直达件对话框-->
<el-dialog :visible.sync="dialogFormVisible" title="新增直达件" center width="380px">
<el-form ref="form" :model="form" :rules="rules" label-position="left">
<el-form-item label="到货数量" prop="ContractNumberValue" label-width="100px" size="small">
<el-input v-model="form.DirectNumber" size="small" placeholder="到货数量" style="width: 200px"/>
</el-form-item>
<el-form-item label="领用者" prop="TotalContractAmount" label-width="100px">
<el-select v-model="PeopleValue" filterable clearable size="small" placeholder="领用者" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in People"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.DirectNote" size="small" placeholder="请输入备注" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button type="primary" @click="addDirectPartm()"> </el-button>
</div>
</el-dialog>
<!--编辑直达件对话框-->
<el-dialog :visible.sync="dialogFormVisible1" title="编辑直达件" center width="380px">
<el-form ref="form" :model="form" :rules="rules" label-position="left">
<el-form-item label="到货数量" prop="ContractNumberValue" label-width="100px" size="small">
<el-input v-model="form.DirectNumber" size="small" placeholder="到货数量" style="width: 200px"/>
</el-form-item>
<el-form-item label="领用者" prop="TotalContractAmount" label-width="100px">
<el-select v-model="PeopleValue" filterable clearable size="small" placeholder="领用者" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in People"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.DirectNote" size="small" placeholder="请输入备注" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button type="primary" @click="editDirectPartm()"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { initProject, searchmachine, searchTeam, searchDirectPart, searchPeople, searchContract, addDirectPart, searchDirectRec, editDirectRec, deleteDirectRec } from '@/api/Inventory/DirectPart'
import { mapGetters } from 'vuex'
export default {
data() {
return {
ProjectValue: '',
Project: [],
ProjectValue_check: 1,
MachineValue: '',
Machine: [],
MachineValue_check: 1,
GroupNumValue: '',
GroupNumValue_check: 1,
GroupNum: [],
tableDataPurchase: [],
form: {
DirectNumber: '',
getPeople: '',
DirectNote: ''
},
PeopleValue: '',
People: [],
Contract: [],
ContractValue: '',
ContractValue_check: 1,
dialogFormVisible: false,
dialogFormVisible1: false,
rules: { // 表单验证规则
DirectNumber: [{ required: true, message: '请输入直达件数量', trigger: 'blur' }],
getPeople: [{ required: true, message: '请选择领用人', trigger: 'blur' }],
DirectNote: [{ required: true, message: '请输入直达件备注', trigger: 'change' }]
},
materialNum: '',
purchaseContractNumber: '',
locate: '',
PeopleNumber: '', // 入库人员流水号
directRecord: [],
teamPart: '',
listLoading: '',
listLoading1: '',
PageCurrent: 1,
PageSize: 10,
total: null,
projectName: '',
machineName: '',
teamName: '',
materialName: '',
contractNumber: '',
directPartNumber: ''
}
},
computed: {
...mapGetters([
'id'
])
},
created() {
this.searchPeopleData()
this.searchContractData()
this.getpeopleid()
this.fetchData()
},
methods: {
fetchData() {
this.getSelect(initProject, ['项目名称', '项目流水号'], 'Project') // 项目名称
},
// 获取人员编号
getpeopleid() {
this.PeopleNumber = this.id
},
searchMachine() { // 查询机床
if (this.ProjectValue === '') {
this.ProjectValue_check = 0
}
searchmachine(this.ProjectValue_check, this.ProjectValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Machine.push({
label: response.data[i].机床图号,
value: response.data[i].机床流水号
})
}
})
},
searchGroupList() { // 查询组号
searchTeam(this.MachineValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.GroupNum.push({
label: response.data[i].组件名称,
value: response.data[i].组件流水号
})
}
})
},
searchPeopleData() { // 查询人员
searchPeople().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.People.push({
label: response.data[i].姓名,
value: response.data[i].考勤编号
})
}
})
},
searchContractData() { // 查询合同
searchContract().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Contract.push({
label: response.data[i].采购合同编号,
value: response.data[i].采购合同流水号
})
}
})
},
searchPartinfo() {
this.tableDataPurchase = []
if (this.ProjectValue === '') {
this.ProjectValue_check = 0
}
if (this.MachineValue === '') {
this.MachineValue_check = 0
}
if (this.GroupNumValue === '') {
this.GroupNumValue_check = 0
}
if (this.ContractValue === '') {
this.ContractValue_check = 0
}
this.listLoading = true
searchDirectPart(this.PageCurrent, this.PageSize, this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue, this.ContractValue_check, this.ContractValue).then(response => {
this.tableDataPurchase = response.data.rows
this.total = response.data.total
this.listLoading = false
})
},
// 查询采购合同明细
// searchContractDetailinfo() {
// searchContractDetail(this.ContractValue).then(response => {
// this.tableDataPurchase = response.data
// })
// },
// 查询直达件记录
searchDirect(row) {
this.purchaseContractNumber = row.采购合同明细流水号
this.listLoading = true
searchDirectRec(this.purchaseContractNumber).then(response => {
this.directRecord = response.data
this.listLoading = false
})
},
// 打开直达件表单
addDirect(row) {
this.PeopleValue = ''
this.form = []
console.log(row)
this.dialogFormVisible = true
this.materialNum = row.物料流水号
this.purchaseContractNumber = row.采购合同明细流水号
this.teamPart = row.组件零件流水号
this.projectName = row.项目名称
this.machineName = row.机床名称
this.teamName = row.组件名称
this.materialName = row.物料名称
this.contractNumber = row.采购合同编号
},
// 打开直达件编辑表单
changeDirect(row) {
console.log(row)
this.dialogFormVisible1 = true
this.directPartNumber = row.直达件流水号
this.form.DirectNumber = row.到货数量
this.PeopleValue = row.领用人员流水号
this.form.DirectNote = row.备注
},
// 修改直达件
editDirectPartm() {
editDirectRec(this.directPartNumber, this.form.DirectNumber, this.PeopleValue, this.form.DirectNote).then(response => {
if (response.data[0].result === '1') {
this.$notify({
title: '成功',
message: '信息修改成功',
type: 'success'
})
this.dialogFormVisible = false
this.searchDirect()
} else {
this.$message.error('信息修改失败')
}
})
searchDirectRec(this.purchaseContractNumber).then(response => {
this.directRecord = response.data
this.listLoading = false
})
this.dialogFormVisible1 = false
},
// 重置表单
callOff() {
this.form.DirectNumber = ''
this.form.getPeople = ''
this.form.DirectNote = ''
this.dialogFormVisible = false
this.dialogFormVisible1 = false
},
handleSizeChange(val) {
this.PageCurrent = 1
this.PageSize = val
this.searchPartinfo()
},
handleCurrentChange(val) {
this.PageCurrent = val
this.searchPartinfo()
},
// 增加直达件
addDirectPartm() {
console.log(this.materialNum, this.form.DirectNumber, this.locate, this.purchaseContractNumber, this.PeopleNumber, this.PeopleValue, this.form.DirectNumber, this.teamPart, this.form.DirectNote)
addDirectPart(this.materialNum, this.form.DirectNumber, this.locate, this.purchaseContractNumber, this.PeopleNumber, this.PeopleValue, this.form.DirectNumber, this.teamPart, this.projectName, this.machineName, this.teamName, this.materialName, this.contractNumber, this.form.DirectNote).then(response => {
if (response.data[0].result === '1') {
this.$notify({
title: '成功',
message: '信息添加成功',
type: 'success'
})
this.dialogFormVisible = false
this.searchDirect()
} else {
this.$message.error('信息添加失败')
}
})
this.dialogFormVisible = false
},
// 删除领料单
dropListinfor(row) {
this.directPartNumber = row.直达件流水号
this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteDirectRec(this.directPartNumber).then(response => {
if (response.data[0].result === '1') {
this.$message.success('删除成功')
searchDirectRec(this.purchaseContractNumber).then(response => {
this.directRecord = response.data
})
} else {
this.$message.error('删除失败')
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,186 @@
<template>
<div class="app-container">
<el-card>
<el-table v-loading="" :data="tableData1" border style="width: 100%;height: 100%;" height="300px" size="mini">
<el-table-column label="交换单编号" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.交换单编号 }}
</template>
</el-table-column>
<el-table-column label="交换件名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.交换件名称 }}
</template>
</el-table-column>
<el-table-column label="被交换件名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.被交换件名称 }}
</template>
</el-table-column>
<el-table-column label="交换数量" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.交换数量 }}
</template>
</el-table-column>
<el-table-column label="申请人" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="申请时间" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.申请时间 }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column label="审核" align="center" min-width="200">
<template slot-scope="scope">
<el-button type="primary" size="mini" icon="el-icon-check" @click="yesApproval(scope.row)">通过</el-button>
<el-button type="danger" size="mini" icon="el-icon-close" @click="noApproval(scope.row)">不通过</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="pageCurrent1"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize1"
:total="total1"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"/>
</div>
</el-card>
</div>
</template>
<script>
import { searchExchangePart, approvalExchangepart, disappExchangepart } from '@/api/Inventory/ExchangeApproval'
import { mapGetters } from 'vuex'
export default {
name: '', // 财务审核
data() {
return {
tableData1: [],
pageSize1: 10,
pageCurrent1: 1,
total1: 0,
tableData2: [],
pageSize2: 10,
pageCurrent2: 1,
total2: 0,
gridData: []
}
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'name',
'id' // 人员编号
])
},
created() {
this.fetchData()
},
methods: {
fetchData() {
this.searchTable1()
},
searchTable1() {
searchExchangePart(this.pageCurrent1, this.pageSize1).then(response => {
this.tableData1 = response.data.rows
this.total1 = response.data.total
console.log(response)
})
},
handleSizeChange1(val) {
this.pageSize1 = val
this.pageCurrent1 = 1
this.searchTable1()
},
handleCurrentChange1(val) {
this.pageCurrent1 = val
this.searchTable1()
},
handleSizeChange2(val) {
this.pageSize2 = val
this.pageCurrent2 = 1
this.searchTable2()
},
handleCurrentChange2(val) {
this.pageCurrent2 = val
this.searchTable2()
},
// searchTable02(row) { // 查看详情(请款信息包含的合同)
// searchRequsetFundDetail(row.离线合同请款流水号).then(response => {
// this.gridData = response.data
// })
// },
yesApproval(row) { // 通过审核
this.$confirm('确定审核通过?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
approvalExchangepart(row.交换单流水号, row.交换件物料流水号, row.交换件组件零件流水号, row.交换件采购合同明细流水号, row.货位流水号, row.交换数量).then(response => {
if (response.data[0].result === '1') {
this.$message.success('执行成功')
this.searchTable1()
} else { this.$message.error('执行失败') }
})
}).catch(() => {
this.$message({
type: 'info',
message: '取消操作'
})
})
},
noApproval(row) { // 不通过审核
this.$prompt('请输入不通过原因', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消'
}).then(({ value }) => {
disappExchangepart(row.交换单流水号, value).then(response => {
if (response.data[0].result === '1') {
this.$message.success('执行成功')
this.searchTable1()
} else { this.$message.error('执行失败') }
})
}).catch(() => {
this.$message({
type: 'info',
message: '取消操作'
})
})
}
}
}
</script>
<style scoped>
.el-card{
margin-bottom: 15px;
}
.el-select{
width:200px
}
.el-input{
width:200px
}
span{
margin: 10px 0 10px 10px;
}
.searchForm .el-form-item{
margin-bottom: 5px;
}
.el-tag{
margin: 0
}
</style>

View File

@@ -0,0 +1,481 @@
<template>
<div class="app-container">
<el-card>
<span>项目名称:</span>
<el-select v-model="ProjectValue" filterable clearable size="small" placeholder="请选择项目名称" style="width: 200px;margin-right:10px" @change="searchMachine()">
<el-option
v-for="item in Project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="MachineValue" filterable clearable size="small" placeholder="机床图号" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="GroupNumValue" filterable clearable size="small" placeholder="组号" style="width: 200px">
<el-option
v-for="item in GroupNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="total = 0;pageSize = 10;pageList = 1;searchPartinfo()">查询</el-button><br>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableDataPurchase"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="零件数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.货位存量 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.类型名称 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">交换</el-button>
<el-button size="small" type="primary" icon="el-icon-sort-down" style="margin: 0 0 0 0px" @click="selected(scope.row)">被交换</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"/>
</div>
<el-card>
<el-row>
<el-col :span="11">
<div>
<el-table
:data="tableData1"
border
style="width: 100%;"
height="100"
>
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col :span="2">
<div style="margin: 10px 15px">
<el-button size="small" type="primary" icon="el-icon-edit" @click="total = 0;pageSize = 10;pageList = 1;exchange()" >交换</el-button>
</div>
</el-col>
<el-col :span="11">
<div>
<el-table
:data="tableData2"
border
style="width: 100%;"
height="100">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
</el-table>
</div>
</el-col>
</el-row>
<!--新增交换件对话框-->
<el-dialog :title="title" :visible.sync="dialogFormVisible" center width="380px">
<el-form ref="form" :model="form" :rules="rules" label-position="left">
<el-form-item label="交换单编号" prop="ContractNumberValue" label-width="100px" size="small">
<el-input v-model="form.ExchangeNumber" size="small" placeholder="请输入零件交换单编号" style="width: 200px"/>
</el-form-item>
<el-form-item label="交换数量" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.ExchangeNumberx" size="small" placeholder="请输入交换数量" style="width: 200px"/>
</el-form-item>
<el-form-item label="备注" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.ExchangeNote" size="small" placeholder="请输入备注" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button v-show="title==='交换'" type="primary" @click="addListDetailinfor('form')"> </el-button>
<el-button v-show="title==='编辑'" type="primary" @click="submitEdit('form')">确定</el-button>
</div>
</el-dialog>
</el-card>
<el-card>
<el-table
v-loading="listLoading1"
:data="tableDataExchange"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="交换单编号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.交换单编号 }}
</template>
</el-table-column>
<el-table-column label="交换件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.交换件名称 }}
</template>
</el-table-column>
<el-table-column label="被交换件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.被交换件名称 }}
</template>
</el-table-column>
<el-table-column label="交换数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.交换数量 }}
</template>
</el-table-column>
<el-table-column label="申请人" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="申请时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.申请时间 }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column label="审批状态" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.审批状态 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="180">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 0 0px" @click="handleEdit(scope.row)">编辑</el-button>
<el-button size="small" type="danger" icon="el-icon-delete" style="margin: 0 0 0 0px" @click="dropListinfor(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent1"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total1"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"/>
</div>
</div>
</template>
<script>
import { initProject, searchmachine, searchTeam, searchPurchasePart, addExchangepart, searchExchangePart, dropExchangeList, editExchangeList } from '@/api/Inventory/ExchangePart'
import { mapGetters } from 'vuex'
export default {
data() {
return {
ProjectValue: ' ',
Project: [],
ProjectValue_check: 1,
MachineValue: ' ',
Machine: [],
MachineValue_check: 1,
GroupNumValue: ' ',
GroupNumValue_check: 1,
GroupNum: [],
tableDataBasic: [],
tableDataPurchase: [],
tableDataExchange: [],
tableData1: [],
tableData2: [],
tableDataPicking: [], // 领料单明细表格
listNumber: '',
pickingListNumber: null, // 领料单编号
pickingListNumberx: '', // 领料单流水号
picikingPeople: '', // 领料人流水号
partProjectNumber: '', // 项目流水号
partProjectName: '', // 项目名称
partMachineNumber: '', // 机床流水号
partMachineName: '', // 机床名称
partGroupNumber: '', // 分组流水号
partGroupName: '', // 分组名称
OutNumber: '', // 出库数量
outNote: '', // 出库备注
dialogFormVisible: false,
arr: [],
form: {
ExchangeNumber: '', // 交换件编号
ExchangeNumberx: '', // 交换件数量
ExchangeNote: '' // 交换件备注
},
rules: { // 表单验证规则
ExchangeNumber: [{ required: true, message: '请输入交换件编号', trigger: 'blur' }],
ExchangeNumberx: [{ required: true, message: '请输入交换件数量', trigger: 'blur' }],
ExchangeNote: [{ required: true, message: '请输入交换件备注', trigger: 'change' }]
},
PageCurrent: 1,
PageSize: 10,
total: null,
PageCurrent1: 1,
PageSize1: 10,
total1: null,
listLoading: '',
listLoading1: '',
exchangeListNumber: '',
eTeamPartNumber: '',
title: ''
}
},
computed: {
...mapGetters([
'id'
])
},
created() {
this.fetchData()
this.getpeopleid()
this.getExchangeTable()
},
methods: {
fetchData() {
this.getSelect(initProject, ['项目名称', '项目流水号'], 'Project') // 项目名称
},
// 获取人员编号
getpeopleid() {
this.picikingPeople = this.id
console.log(this.picikingPeople)
},
searchMachine() { // 查询机床
if (this.ProjectValue === '') {
this.ProjectValue_check = 0
}
searchmachine(this.ProjectValue_check, this.ProjectValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Machine.push({
label: response.data[i].机床图号,
value: response.data[i].机床流水号
})
}
})
},
searchGroupList() { // 查询组号
searchTeam(this.MachineValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.GroupNum.push({
label: response.data[i].组件名称,
value: response.data[i].组件流水号
})
}
})
},
searchPartinfo() {
this.tableDataPurchase = []
this.tableDataBasic = []
if (this.ProjectValue === ' ') {
this.ProjectValue_check = 0
}
if (this.MachineValue === ' ') {
this.MachineValue_check = 0
}
if (this.GroupNumValue === ' ') {
this.GroupNumValue_check = 0
}
this.listLoading = true
searchPurchasePart(this.PageCurrent, this.PageSize, this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue).then(response => {
this.tableDataPurchase = response.data.rows
console.log(this.tableDataPurchase)
this.total = response.data.total
})
this.listLoading = false
},
handleSizeChange(val) {
this.PageCurrent = 1
this.PageSize = val
this.searchPartinfo()
},
handleCurrentChange(val) {
this.PageCurrent = val
this.searchPartinfo()
},
// 查询交换件
getExchangeTable() {
this.listLoading1 = true
searchExchangePart(this.PageCurrent1, this.PageSize1).then(response => {
this.tableDataExchange = response.data.rows
this.total1 = response.data.total
this.listLoading1 = false
})
},
// 选择领料单
chooseListinfor(row) {
this.pickingListNumberx = row.领料单流水号
console.log(this.pickingListNumberx)
this.searchListDetailt()
},
// 增加交换件
addListDetailinfor() {
addExchangepart(this.form.ExchangeNumber, this.tableData1[0].组件零件流水号, this.tableData1[0].物料流水号, this.tableData1[0].采购合同明细流水号, this.tableData2[0].组件零件流水号, this.tableData1[0].物料名称, this.tableData2[0].物料名称, this.tableData2[0].货位流水号, this.form.ExchangeNumberx, this.picikingPeople, this.form.ExchangeNote).then(response => {
if (response.data[0].result === '1') {
this.$message.success('增加成功')
} else { this.$message.error('增加失败') }
})
this.dialogFormVisible = false
this.getExchangeTable()
},
// 打开交换表单
exchange() {
this.title = '交换'
this.dialogFormVisible = true
},
// 重置表单
callOff() {
this.form.ExchangeNumber = ''
this.form.ExchangeNumberx = ''
this.form.ExchangeNote = ''
this.dialogFormVisible = false
},
// 选中零件交换
selecting(row) {
const arr = new Array(row)
this.tableData1 = arr
console.log(this.tableData1)
},
// 选中被零件交换
selected(row) {
const arr = new Array(row)
this.tableData2 = arr
},
// 删除领料单
dropListinfor(row) {
this.exchangeListNumber = row.交换单流水号
this.eTeamPartNumber = row.交换件组件零件流水号
this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
dropExchangeList(this.exchangeListNumber, this.eTeamPartNumber).then(response => {
if (response.data[0].result === '1') {
this.$message.success('删除成功')
this.getExchangeTable().then(response => {
})
} else {
this.$message.error('删除失败')
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
handleEdit(row) {
this.exchangeListNumber = row.交换单流水号
this.form.ExchangeNumber = row.交换单编号
this.form.ExchangeNumberx = row.交换数量
this.form.ExchangeNote = row.备注
this.title = '编辑'
this.dialogFormVisible = true
},
submitEdit() {
this.editTable(editExchangeList, [this.exchangeListNumber, this.form.ExchangeNumber, this.form.ExchangeNumberx, this.form.ExchangeNote], 'form', function() { this.getExchangeTable(); this.dialogFormVisible = false })
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,142 @@
<template>
<div class="app-container">
<el-card>
<span>采购合同编号:</span>
<el-select v-model="ContractValue" filterable clearable size="small" placeholder="采购合同" style="width: 200px">
<el-option
v-for="item in Contract"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span class="demonstration">入库日期</span>
<el-date-picker
v-model="InboundDate"
type="date"
size="small"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"/>
<span>仓库:</span>
<el-select v-model="InventoryValue" filterable clearable size="small" placeholder="仓库" style="width: 200px">
<el-option
v-for="item in Inventory"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="searchPartinfo()">查询</el-button><br>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableData"
border
style="width: 100%;"
height="400">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="存货编码" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="存货名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="规格型号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.实际到货数量 }}
</template>
</el-table-column>
<el-table-column label="本币单价" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.单价 }}
</template>
</el-table-column>
<el-table-column label="本币单价" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.单价 * scope.row.实际到货数量 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">选入</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { searchContract, searchInventory, searchInbound } from '@/api/Inventory/InboundCard'
import { mapGetters } from 'vuex'
export default {
data() {
return {
Contract: [],
ContractValue: '',
Inventory: [],
InventoryValue: '',
InboundDate: '',
listLoading: '',
tableData: []
}
},
computed: {
...mapGetters([
'id'
])
},
created() {
this.searchContractData()
this.searchInventoryData()
},
methods: {
searchContractData() { // 查询合同
searchContract().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Contract.push({
label: response.data[i].采购合同编号,
value: response.data[i].采购合同流水号
})
}
})
},
searchInventoryData() { // 查询仓库
searchInventory().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Inventory.push({
label: response.data[i].仓库名称,
value: response.data[i].仓库流水号
})
}
})
},
searchPartinfo() {
this.tableData = []
this.listLoading = true
searchInbound(this.ContractValue, this.InboundDate, this.InventoryValue).then(response => {
this.tableData = response.data
this.total = response.data.total
this.listLoading = false
})
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,259 @@
<template>
<div class="app-container">
<el-card>
<span style="margin: 5px">零件图号</span>
<el-input v-model="partNumber" clearable size="small" style="width:200px" />
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="getscantable()">查询</el-button>
<el-button size="small" type="danger" icon="el-icon-remove-outline" style="margin: 0 0 0 10px" @click="Empty()">清空</el-button>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableData"
border
style="width: 100%;height: 650px" >
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床图号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.机床图号 }}
</template>
</el-table-column>
<el-table-column label="零件图号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.零件图号 }}
</template>
</el-table-column>
<el-table-column label="计划数量" align="center" min-width="100">
<template slot-scope="scope" align="center">
<el-input v-model="tableData[scope.$index].plannumber" readonly size="small"/>
</template>
</el-table-column>
<el-table-column label="入库数量" align="center" min-width="100">
<template slot-scope="scope">
<el-input v-model="tableData[scope.$index].innumber" clearable size="small"/>
</template>
</el-table-column>
<el-table-column label="仓库" align="center" min-width="100">
<template slot-scope="scope">
<el-select v-model="inventoryNumber" filterable clearable size="small" placeholder="仓库名称" @change="Getlocate">
<el-option
v-for="item in inventoryName"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="货位" align="center" min-width="120">
<template slot-scope="scope">
<el-select v-model="locateNumber" filterable clearable size="small" placeholder="货位名称">
<el-option
v-for="item in locateName"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<template slot-scope="scope" align="center">
<el-input v-model="tableData[scope.$index].note" clearable size="small"/>
</template>
</el-table-column>
<el-table-column label="操作" min-width="150">
<template slot-scope="scope">
<el-button type="primary" size="mini" class="el-icon-success" @click="Innumber">入库</el-button>
<el-button
size="mini"
type="danger"
class="el-icon-delete"
@click="handleDelete(scope.$index, scope.row)">移除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { searchTable, insertOne, getinventory, getlocate } from '@/api/Inventory/Inboundscanning'
import { mapGetters } from 'vuex'
import { wsuri, name } from '@/utils/request'
import print from '@/vendor/print'
export default {
data() {
return {
ace: 0,
a: '',
tableData: [],
partNumber: '',
listLoading: false,
craftplannumber: '',
radio2: 3,
PeopleNumber: '',
inventoryName: [], // 仓库名称下拉框
inventoryNumber: '',
locateName: [], // 货位名称下拉框
locateNumber: ''
}
},
computed: {
...mapGetters([
'id'
])
},
created() {
this.initWebpack()
this.getpeopleid()
this.Getinvent()
},
methods: {
handleDelete(index, row) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.tableData.splice(index, 1)
this.$message({
message: '已被成功移除',
type: 'success'
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
// 获取人员编号
getpeopleid() {
this.PeopleNumber = this.id
},
aaa() {
print('#print')
},
initWebpack() { // 初始化websocket
this.websock = new WebSocket(wsuri)// 这里面的this都指向vue
this.websock.onopen = this.websocketopen
this.websock.onmessage = this.websocketonmessage
this.websock.onclose = this.websocketclose
this.websock.onerror = this.websocketerror
},
websocketopen() { // 打开
console.log('WebSocket连接成功')
this.websock.send('{<' + name + '>}')
},
websocketonmessage(msg) { // 数据接收
this.partNumber = msg.data.split('|')[3]
this.getscantable()
},
websocketclose() { // 关闭
console.log('WebSocket关闭')
},
websocketerror() { // 失败
console.log('WebSocket连接失败')
},
// 扫描查询
getscantable() {
if (this.partNumber === '') {
this.$message.error('请输入零件号')
} else {
this.listLoading = true
searchTable(this.partNumber).then(response => {
if (response.data.length === 0) {
this.listLoading = false
this.$message.warning('无此零件')
} else {
for (let i = 0; i < this.tableData.length; i++) {
if (response.data[0].工艺计划流水号 === this.tableData[i].工艺计划流水号) {
this.ace = this.ace + 1
}
}
if (this.ace === 0) {
this.tableData.push({
plannumber: response.data[0].剩余数量,
innumber: response.data[0].入库数量,
capture: '',
note: '',
工艺计划流水号: response.data[0].工艺计划流水号,
项目名称: response.data[0].项目名称,
机床图号: response.data[0].机床图号,
零件图号: response.data[0].零件图号
})
} else {
this.$message.error('此件已在列表中')
}
}
}).then(() => {
this.listLoading = false
this.ace = 0
})
}
},
// 修改入库
Innumber() {
this.$confirm('此操作将不可逆转,且如果入库数量大于计划数量,则全部入库,是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
for (let i = 0; i < this.tableData.length; i++) {
if (this.tableData[i].innumber > this.tableData[i].plannumber) {
this.tableData[i].innumber = this.tableData[i].plannumber
}
insertOne(this.tableData[i].工艺计划流水号, this.tableData[i].innumber, this.PeopleNumber, this.tableData[i].capture, this.inventoryNumber, this.locateNumber, this.tableData[i].note).then(response => {
this.$message({
type: 'success',
message: '零件入库成功!'
})
}).then(() => {
this.Empty()
})
}
}).catch(() => {
this.$message({
type: 'info',
message: '已取消入库'
})
})
},
// 清空
Empty() {
this.tableData = []
},
// 仓库查询
Getinvent() {
this.getSelect(getinventory, ['仓库名称', '仓库流水号'], 'inventoryName')
},
// 根据项目获取机床
Getlocate() {
this.locateName = []
this.locateNumber = ''
if (this.inventoryNumber) {
this.getSelect(getlocate, ['货位名称', '货位流水号'], 'locateName', this.inventoryNumber)
}
}
}
}
</script>
<style scoped>
.el-card {
margin-bottom: 15px;
}
</style>

View File

@@ -0,0 +1,970 @@
<template>
<div class="app-container">
<el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
<el-tab-pane label="基本件" name="first"><el-card>
<span>项目名称:</span>
<el-select v-model="ProjectValue" filterable clearable size="small" placeholder="请选择项目名称" style="width: 200px;margin-right:10px" @change="searchMachine()">
<el-option
v-for="item in Project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="MachineValue" filterable clearable size="small" placeholder="机床图号" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="GroupNumValue" filterable clearable size="small" placeholder="组号" style="width: 200px">
<el-option
v-for="item in GroupNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="searchBasciPartinfo()">基本件查询</el-button><br>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableDataBasic"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="零件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.零件名称 }}
</template>
</el-table-column>
<el-table-column label="零件数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.可出库数量 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.零件类型名称 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="searchBasicPartRecord(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"/>
</div>
</el-card>
<el-card>
<el-table
v-loading="listLoading1"
:data="BasicPartIn"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="入库数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.入库数量 }}
</template>
</el-table-column>
<el-table-column label="入库人员" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.入库人员 }}
</template>
</el-table-column>
<el-table-column label="入库时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.入库时间 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<el-table
v-loading="listLoading2"
:data="BasicPartOut"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="出库数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库数量 }}
</template>
</el-table-column>
<el-table-column label="出库时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库时间 }}
</template>
</el-table-column>
<el-table-column label="领用者" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.领用人编号 }}
</template>
</el-table-column>
<el-table-column label="出库备注" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库备注 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</el-tab-pane>
<el-tab-pane label="通用件" name="second">
<el-card>
<span>项目名称:</span>
<el-select v-model="ProjectValue" filterable clearable size="small" placeholder="请选择项目名称" style="width: 200px;margin-right:10px" @change="searchMachine()">
<el-option
v-for="item in Project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="MachineValue" filterable clearable size="small" placeholder="机床图号" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="GroupNumValue" filterable clearable size="small" placeholder="组号" style="width: 200px">
<el-option
v-for="item in GroupNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="total1 = 0;pageSize1 = 10;pageList1 = 1;searchGeneralPartinfo()">通用件查询</el-button><br>
</el-card>
<el-card>
<el-table
v-loading="listLoading3"
:data="tableDataGeneral"
:row-style="tableRowClassName2"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="零件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.零件名称 }}
</template>
</el-table-column>
<el-table-column label="零件数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.可出库数量 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.零件类型名称 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="searchGeneralPartRecord(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent1"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total1"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"/>
</div>
</el-card>
<el-card>
<el-table
v-loading="listLoading4"
:data="PurchasePartIn"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="实际到货数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.实际到货数量 }}
</template>
</el-table-column>
<el-table-column label="入库人员" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.入库人员 }}
</template>
</el-table-column>
<el-table-column label="到货时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.到货时间 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<el-table
v-loading="listLoading5"
:data="PurchasePartOut"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="出库数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库数量 }}
</template>
</el-table-column>
<el-table-column label="出库时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库时间 }}
</template>
</el-table-column>
<el-table-column label="领用者" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.领用者 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</el-tab-pane>
<el-tab-pane label="外购件" name="third"><el-card>
<span>项目名称:</span>
<el-select v-model="ProjectValue" filterable clearable size="small" placeholder="请选择项目名称" style="width: 200px;margin-right:10px" @change="searchMachine()">
<el-option
v-for="item in Project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="MachineValue" filterable clearable size="small" placeholder="机床图号" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="GroupNumValue" filterable clearable size="small" placeholder="组号" style="width: 200px">
<el-option
v-for="item in GroupNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="total2 = 0;pageSize2 = 10;pageList2 = 1;searchPurchasePartinfo()">外购件查询</el-button><br>
</el-card>
<el-card>
<el-table
v-loading="listLoading6"
:data="tableDataPurchase"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="零件数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.入库累计数量 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.类型名称 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="searchPurchasePartRecord(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent2"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total2"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange2"
@current-change="handleCurrentChange2"/>
</div>
</el-card>
<el-card>
<el-table
v-loading="listLoading7"
:data="PurchasePartIn"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="实际到货数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.实际到货数量 }}
</template>
</el-table-column>
<el-table-column label="入库人员" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.入库人员 }}
</template>
</el-table-column>
<el-table-column label="到货时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.到货时间 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<el-table
v-loading="listLoading8"
:data="PurchasePartOut"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="出库数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库数量 }}
</template>
</el-table-column>
<el-table-column label="出库时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库时间 }}
</template>
</el-table-column>
<el-table-column label="领用者" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.领用者 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</el-tab-pane>
<el-tab-pane label="标准件" name="fourth">
<el-card>
<span>项目名称:</span>
<el-select v-model="ProjectValue" filterable clearable size="small" placeholder="请选择项目名称" style="width: 200px;margin-right:10px" @change="searchMachine()">
<el-option
v-for="item in Project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="MachineValue" filterable clearable size="small" placeholder="机床图号" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="GroupNumValue" filterable clearable size="small" placeholder="组号" style="width: 200px">
<el-option
v-for="item in GroupNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="total3 = 0;pageSize3 = 10;pageList3 = 1;searchStandardPartinfo()">标准件查询</el-button><br>
</el-card>
<el-card>
<el-table
v-loading="listLoading9"
:data="tableDataStandard"
:row-style="tableRowClassName1"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="库存数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.库存数量 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.类型名称 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200px">
<template slot-scope="scope" align="center">
<el-button size="mini" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="standardselecting(scope.row)" >选择</el-button>
<el-button size="mini" type="primary" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="changesafeAmount(scope.row)">修改</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent3"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total3"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange3"
@current-change="handleCurrentChange3"/>
</div>
</el-card>
<!--安全库存量对话框-->
<el-dialog :visible.sync="dialogFormVisible2" title="安全库存量修改" center width="380px">
<el-form ref="form" :model="Project" :rules="rules" label-position="left">
<el-form-item label="安全库存量" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.safeNumber" size="small" placeholder="请输入安全库存量" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button type="primary" @click="edeitsafeAmount()"> </el-button>
</div>
</el-dialog>
<el-card>
<el-table
v-loading="listLoading10"
:data="StandardPartIn"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="实际到货数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.实际到货数量 }}
</template>
</el-table-column>
<el-table-column label="入库人员" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.入库人员 }}
</template>
</el-table-column>
<el-table-column label="到货时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.到货时间 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<el-table
v-loading="listLoading11"
:data="StandardPartOut"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="出库数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库数量 }}
</template>
</el-table-column>
<el-table-column label="出库时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库时间 }}
</template>
</el-table-column>
<el-table-column label="领用者" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.领用者 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="warning" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="selecting(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { initProject, searchmachine, searchTeam, searchPurchasePart, searchBasicPart, searchStandardPart, searchGeneralPart, searchPurchasePartIn, searchPurchasePartOut, searchBasicPartIn, searchBasicPartOut, safeAmount, searchStandardPartIn, searchStandardPartOut } from '@/api/Inventory/InventoryCheck'
export default {
data() {
return {
activeName: 'first',
tableDataBasic: [], // 基本件
BasicPartOut: [], // 基本件出库记录
BasicPartIn: [], // 基本件入库记录,
craftNumber: '',
tableDataGeneral: [], // 通用件
tableDataPurchase: [], // 外购件
PurchasePartOut: [], // 外购件出库记录
PurchasePartIn: [], // 外购件入库记录
tableDataStandard: [], // 标准件
ProjectValue: ' ',
Project: [],
ProjectValue_check: 1,
MachineValue: ' ',
Machine: [],
MachineValue_check: 1,
GroupNumValue: ' ',
GroupNumValue_check: 1,
GroupNum: [],
ContractDetailValue: '',
TeamPartNumber: '',
form: {
safeNumber: ''
},
rules: { // 表单验证规则
safeNumber: [{ required: true, message: '请输入安全库存量', trigger: 'blur' }]
},
dialogFormVisible2: false,
StandardPartOut: [],
StandardPartIn: [],
GeneralPartIn: [],
GeneralPartOut: [],
listLoading: '',
listLoading1: '',
listLoading2: '',
listLoading3: '',
listLoading4: '',
listLoading5: '',
listLoading6: '',
listLoading7: '',
listLoading8: '',
listLoading9: '',
listLoading10: '',
listLoading11: '',
PageCurrent: 1,
PageSize: 10,
total: null,
PageCurrent1: 1,
PageSize1: 10,
total1: null,
PageCurrent2: 1,
PageSize2: 10,
total2: null,
PageCurrent3: 1,
PageSize3: 10,
total3: null
}
},
created() {
this.fetchData()
},
methods: {
handleClick(tab, event) {
},
fetchData() {
this.getSelect(initProject, ['项目名称', '项目流水号'], 'Project') // 项目名称
},
searchMachine() { // 查询机床
if (this.ProjectValue === ' ') {
this.ProjectValue_check = 0
}
searchmachine(this.ProjectValue_check, this.ProjectValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Machine.push({
label: response.data[i].机床图号,
value: response.data[i].机床流水号
})
}
})
},
searchGroupList() { // 查询组号
searchTeam(this.MachineValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.GroupNum.push({
label: response.data[i].组件名称,
value: response.data[i].组件流水号
})
}
})
},
// 查询外购件
searchPurchasePartinfo() {
this.listLoading6 = true
this.tableDataPurchase = []
if (this.ProjectValue === ' ') {
this.ProjectValue_check = 0
}
if (this.MachineValue === ' ') {
this.MachineValue_check = 0
}
if (this.GroupNumValue === ' ') {
this.GroupNumValue_check = 0
}
searchPurchasePart(this.PageCurrent2, this.PageSize2, this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue).then(response => {
this.tableDataPurchase = response.data.rows
this.total2 = response.data.total
this.listLoading6 = false
})
this.projectValue = ' '
this.MachineValue = ' '
this.GroupNumValue = ' '
},
// 查询外购件记录
searchPurchasePartRecord(row) {
this.listLoading7 = true
this.listLoading8 = true
this.ContractDetailValue = row.采购合同明细流水号
this.TeamPartNumber = row.组件零件流水号
searchPurchasePartIn(this.ContractDetailValue).then(response => {
this.PurchasePartIn = response.data
this.listLoading7 = false
})
searchPurchasePartOut(this.TeamPartNumber).then(response => {
this.PurchasePartOut = response.data
this.listLoading8 = false
})
},
// 查询标准件
searchStandardPartinfo() {
this.listLoading9 = true
this.tableDataStandard = []
if (this.ProjectValue === ' ') {
this.ProjectValue_check = 0
}
if (this.MachineValue === ' ') {
this.MachineValue_check = 0
}
if (this.GroupNumValue === ' ') {
this.GroupNumValue_check = 0
}
searchStandardPart(this.PageCurrent3, this.PageSize3, this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue).then(response => {
this.tableDataStandard = response.data.rows
this.total3 = response.data.total
this.listLoading9 = false
console.log(this.tableDataPurchase)
})
this.projectValue = ' '
this.MachineValue = ' '
this.GroupNumValue = ' '
},
standardselecting(row) {
this.contractDeatilNumber = row.采购合同明细流水号
this.steamPartNumber = row.组件零件流水号
this.getStandardPartIn()
this.getStandardPartOut()
},
// 查询标准件入库记录
getStandardPartIn() {
this.listLoading10 = true
searchStandardPartIn(this.contractDeatilNumber).then(response => {
this.StandardPartIn = response.data
this.listLoading10 = false
})
},
// 查询标准件出库记录
getStandardPartOut() {
this.listLoading11 = true
searchStandardPartOut(this.steamPartNumber).then(response => {
this.StandardPartOut = response.data
this.listLoading11 = false
})
},
// 查询通用件
searchGeneralPartinfo() {
this.listLoading3 = true
this.tableDataGeneral = []
if (this.ProjectValue === ' ') {
this.ProjectValue_check = 0
}
if (this.MachineValue === ' ') {
this.MachineValue_check = 0
}
if (this.GroupNumValue === ' ') {
this.GroupNumValue_check = 0
}
searchGeneralPart(this.PageCurrent1, this.PageSize1, this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue).then(response => {
this.tableDataGeneral = response.data.rows
this.total1 = response.data.total
this.listLoading3 = false
})
this.projectValue = ' '
this.MachineValue = ' '
this.GroupNumValue = ' '
},
// 查询基本件
searchBasciPartinfo() {
this.listLoading = true
this.tableDataBasic = []
if (this.ProjectValue === ' ') {
this.ProjectValue_check = 0
}
if (this.MachineValue === ' ') {
this.MachineValue_check = 0
}
if (this.GroupNumValue === ' ') {
this.GroupNumValue_check = 0
}
searchBasicPart(this.PageCurrent, this.PageSize, this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue).then(response => {
this.tableDataBasic = response.data.rows
this.listLoading = false
this.total = response.data.total
})
this.projectValue = ' '
this.MachineValue = ' '
this.GroupNumValue = ' '
},
// 查询基本件记录
searchBasicPartRecord(row) {
this.craftNumber = row.工艺计划流水号
this.listLoading1 = true
this.listLoading2 = true
searchBasicPartIn(this.craftNumber).then(response => {
this.listLoading1 = false
this.BasicPartIn = response.data
})
searchBasicPartOut(this.craftNumber).then(response => {
this.listLoading2 = false
this.BasicPartOut = response.data
})
},
// 查询通用件记录
searchGeneralPartRecord(row) {
this.listLoading4 = true
this.listLoading5 = true
this.craftNumber = row.工艺计划流水号
searchBasicPartIn(this.craftNumber).then(response => {
this.GeneralPartIn = response.data
this.listLoading4 = false
})
searchBasicPartOut(this.craftNumber).then(response => {
this.GeneralPartOut = response.data
this.listLoading5 = false
})
},
changesafeAmount(row) {
this.dialogFormVisible2 = true
this.teamPartNumber = row.组件零件流水号
},
// 修改安全库存量
edeitsafeAmount() {
safeAmount(this.teamPartNumber, this.form.safeNumber).then(response => {
this.dialogFormVisible2 = false
if (response.data[0].result === '1') {
this.$message.success('添加成功')
} else {
this.$message.error('添加失败')
}
this.form = {}
})
},
// 重置表单
callOff(formName) {
this.form = {}
this.dialogFormVisible2 = false
this.$refs[formName].resetFields()
},
tableRowClassName1({ row }) {
if (row.安全库存量 > row.库存数量) {
return 'background: #ff6666'
} else {
return ''
}
},
tableRowClassName2({ row }) {
const a = 0
if (a >= row.可出库数量) {
return 'background: #ff6666'
} else {
return ''
}
},
handleSizeChange(val) {
this.PageCurrent = 1
this.PageSize = val
this.searchPartinfo()
},
handleCurrentChange(val) {
this.PageCurrent = val
this.searchPartinfo()
},
handleSizeChange1(val) {
this.PageCurrent1 = 1
this.PageSize1 = val
this.searchPartinfo()
},
handleCurrentChange1(val) {
this.PageCurrent1 = val
this.searchPartinfo()
},
handleSizeChange2(val) {
this.PageCurrent2 = 1
this.PageSize2 = val
this.searchPartinfo()
},
handleCurrentChange2(val) {
this.PageCurrent2 = val
this.searchPartinfo()
},
handleSizeChange3(val) {
this.PageCurrent3 = 1
this.PageSize3 = val
this.searchPartinfo()
},
handleCurrentChange3(val) {
this.PageCurrent3 = val
this.searchPartinfo()
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,550 @@
<template>
<div class="app-container">
<el-card>
<el-button size="small" type="primary" icon="el-icon-circle-plus-outline" style="margin: 0 0 0 10px" @click="ADD()">增加</el-button>
</el-card>
<el-card>
<el-table
:data="tableData"
border
style="width: 100%;max-height: 400px"
height="400"
@row-click="getWarehouse">
<el-table-column label="仓库编号" align="center" width="200">
<template slot-scope="scope">
{{ scope.row.仓库编号 }}
</template>
</el-table-column>
<el-table-column label="仓库名称" align="center" width="180">
<template slot-scope="scope">
{{ scope.row.仓库名称 }}
</template>
</el-table-column>
<el-table-column label="仓库描述" align="center" width="110">
<template slot-scope="scope">
{{ scope.row.仓库描述 }}
</template>
</el-table-column>
<el-table-column label="地址" align="center">
<template slot-scope="scope">
{{ scope.row.地址 }}
</template>
</el-table-column>
<el-table-column label="联系人" align="center">
<template slot-scope="scope">
{{ scope.row.联系人 }}
</template>
</el-table-column>
<el-table-column label="备注" width="180" align="center">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column prop="budget" label="领用人" width="100" align="center">
<template slot-scope="scope">
{{ scope.row.领用人 }}
</template>
</el-table-column>
<el-table-column label="操作" min-width="100" align="center" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
icon="el-icon-edit"
type="primary"
@click="handleEdit(scope.row)">修改</el-button>
</template>
</el-table-column>
<el-table-column label="操作" min-width="100" align="center" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
type="danger"
icon="el-icon-delete"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<el-card>
<el-button size="small" type="primary" icon="el-icon-circle-plus-outline" style="margin: 0 0 0 10px" @click="ADDLocate()">增加</el-button>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableData2"
border
style="width: 100%;max-height: 400px"
height="400">
<el-table-column label="货位名称" align="center" width="200">
<template slot-scope="scope">
{{ scope.row.货位名称 }}
</template>
</el-table-column>
<el-table-column label="工作中心" align="center" width="180">
<template slot-scope="scope">
{{ scope.row.工作中心 }}
</template>
</el-table-column>
<el-table-column label="永久" align="center" width="110">
<template slot-scope="scope">
{{ scope.row.永久 }}
</template>
</el-table-column>
<el-table-column label="不可用量" align="center">
<template slot-scope="scope">
{{ scope.row.不可用量 }}
</template>
</el-table-column>
<el-table-column label="仓库名称" align="center">
<template slot-scope="scope">
{{ scope.row.仓库名称 }}
</template>
</el-table-column>
<el-table-column label="操作" min-width="100" align="center" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
icon="el-icon-edit"
type="primary"
@click="handleLocateEdit(scope.row)">修改</el-button>
<el-button
size="mini"
type="danger"
icon="el-icon-delete"
@click="locateDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<!--仓库表单-->
<el-dialog :visible.sync="dialogFormVisible" title="增加仓库" center style="min-height: 300px" width="400px">
<el-form ref="form" :model="form" :rules="rules" label-position="left" label-width="110px" class="demo-ruleForm">
<el-row>
<el-col :span="12">
<el-form-item label="仓库编号" prop="WarehouseNumber">
<el-input
v-model="form.WarehouseNumber"
size="small"
style="width:200px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="仓库名称" prop="WarehouseName">
<el-input
v-model="form.WarehouseName"
size="small"
style="width:200px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="仓库描述" prop="WarehouseDescription">
<el-input
v-model="form.WarehouseDescription"
size="small"
style="width:200px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="地址" prop="Address">
<el-input
v-model="form.Address"
size="small"
style="width:200px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="领用者" prop="TotalContractAmount" label-width="100px">
<el-select v-model="PeopleValue" filterable clearable size="small" placeholder="领用者" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in People"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="备注" prop="Note">
<el-input
v-model="form.Note"
size="small"
style="width:200px"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button type="primary" @click="submit('form')">确定</el-button>
</div>
</el-dialog>
<!--货位表单-->
<el-dialog :visible.sync="dialogFormVisible2" title="货位" center style="min-height: 300px" width="400px">
<el-form ref="form2" :model="form2" :rules="rules2" label-position="left" label-width="110px" class="demo-ruleForm">
<el-row>
<el-col :span="12">
<el-form-item label="货位名称" prop="货位名称">
<el-input
v-model="form2.货位名称"
size="small"
style="width:200px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="工作中心" prop="工作中心">
<el-input
v-model="form2.工作中心"
size="small"
style="width:200px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="永久" prop="永久">
<el-input
v-model="form2.永久"
size="small"
style="width:200px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="不可用量" prop="不可用量">
<el-input
v-model="form2.不可用量"
size="small"
style="width:200px"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callLocateOff('form2')">取消</el-button>
<el-button type="primary" @click="Locatesubmit('form2')">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { initWarehouse, addWarehouse, alterWarehouse, deleteWarehouse, searchLocate, addLocate, alterLocate, deleteLocate, searchPeople } from '@/api/Inventory/InventoryManagement'
export default {
data() {
return {
tableData: [],
tableData2: [],
wareHouse: '',
dialogFormVisible: false, // 仓库表单
temp: '',
form: {
WarehouseNumber: '', // 仓库编号
WarehouseName: '', // 仓库名称
WarehouseDescription: '', // 仓库描述
Address: '', // 地址
Note: '' // 备注
},
rules: { // 表单验证规则
WarehouseNumber: [{ required: true, message: '请输入仓库编号', trigger: 'change' }],
WarehouseName: [{ required: true, message: '请输入仓库名称', trigger: 'blur' }],
WarehouseDescription: [{ required: true, message: '请输入仓库描述', trigger: 'blur' }],
Address: [{ required: true, message: '请输入地址', trigger: 'blur' }],
Note: [{ required: true, message: '请输入备注', trigger: 'blur' }]
},
dialogFormVisible2: false, // 货位表单
form2: {
货位名称: '',
工作中心: '',
永久: '',
不可用量: ''
},
rules2: { // 表单验证规则
货位名称: [{ required: true, message: '请输入货位名称', trigger: 'change' }],
工作中心: [{ required: true, message: '请输入工作中心', trigger: 'blur' }],
永久: [{ required: true, message: '请输入永久', trigger: 'blur' }],
不可用量: [{ required: true, message: '请输入不可用量', trigger: 'blur' }]
},
HouseNumber: '',
LocateNumber: '',
listLoading: '',
PeopleValue: '',
People: []
}
},
created() {
this.getTable()
this.searchPeopleData()
},
methods: {
// 查询仓库
getTable() {
this.tableData = []
this.listLoading = true
initWarehouse().then(response => {
this.listLoading = false
console.log(response)
for (let i = 0; i < response.data.length; i++) {
this.tableData.push({
仓库流水号: response.data[i].仓库流水号,
仓库编号: response.data[i].仓库编号,
仓库名称: response.data[i].仓库名称,
仓库描述: response.data[i].仓库描述,
地址: response.data[i].地址,
联系人: response.data[i].联系人,
备注: response.data[i].备注
})
}
})
},
getWarehouse(row) {
this.wareHouse = row.仓库流水号
this.getLocate()
},
searchPeopleData() { // 查询人员
searchPeople().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.People.push({
label: response.data[i].姓名,
value: response.data[i].考勤编号
})
}
})
},
getLocate() {
this.tableData2 = []
searchLocate(this.wareHouse).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.tableData2.push({
货位流水号: response.data[i].货位流水号,
货位名称: response.data[i].货位名称,
工作中心: response.data[i].工作中心,
永久: response.data[i].永久,
不可用量: response.data[i].不可用量,
仓库名称: response.data[i].仓库名称
})
}
})
},
// 点击增加仓库
ADD() {
if (this.$refs['form'] !== undefined) {
this.$refs['form'].resetFields()
}
this.dialogFormVisible = true
this.temp = 1
},
// 提交添加或者修改仓库
submit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
if (this.temp === 1) {
this.addTableData()
this.form.WarehouseNumber = ''
this.form.WarehouseName = ''
this.form.WarehouseDescription = ''
this.form.Address = ''
this.form.Contactpeople = ''
this.form.Note = ''
this.temp = null
} else if (this.temp === 2) {
this.chaEdit()
this.temp = null
}
}
})
},
// 执行增加仓库
addTableData() {
addWarehouse(this.form.WarehouseNumber, this.form.WarehouseName, this.form.WarehouseDescription, this.form.Address, this.PeopleValue, this.form.Note).then(response => {
this.dialogFormVisible = false
if (response.data[0].result === '1') {
this.$message.success('添加成功')
this.form.WarehouseNumber = ''
this.form.WarehouseName = ''
this.form.WarehouseDescription = ''
this.form.Address = ''
this.form.Contactpeople = ''
this.form.Note = ''
} else {
this.$message.error('添加失败')
}
this.getTable()
})
},
// 编辑
handleEdit(row) {
this.temp = 2
this.dialogFormVisible = true
this.form.WarehouseNumber = row.仓库编号
this.form.WarehouseName = row.仓库名称
this.form.WarehouseDescription = row.仓库描述
this.form.Address = row.地址
this.form.Contactpeople = row.联系人
this.form.Note = row.备注
this.HouseNumber = row.仓库流水号
},
// 执行修改
chaEdit() {
alterWarehouse(this.HouseNumber, this.form.WarehouseNumber, this.form.WarehouseName, this.form.WarehouseDescription, this.form.Address, this.form.Contactpeople, this.form.Note).then(response => {
this.dialogFormVisible = false
if (response.data[0].result === '1') {
this.$message.success('信息更新成功')
this.form.WarehouseNumber = ''
this.form.WarehouseName = ''
this.form.WarehouseDescription = ''
this.form.Address = ''
this.form.Contactpeople = ''
this.form.Note = ''
this.getTable()
} else {
this.$message.error('信息更新失败')
}
})
},
// 删除仓库
handleDelete(row) {
this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteWarehouse(row.仓库流水号).then(response => {
if (response.data[0].result === '1') {
this.getTable()
this.$message.success('删除成功')
} else {
this.$message.error('删除失败')
}
})
})
},
// 重置表单
callOff(formName) {
console.log(1515)
this.form = {}
this.form2.ContractNumberValue = ''
this.form2.EntryName = ''
this.form2.TotalContractAmount = ''
this.form.PaymentPhaseValue = 1
this.dialogFormVisible = false
this.$refs[formName].resetFields()
},
// 点击增加货位
ADDLocate() {
if (this.$refs['form2'] !== undefined) {
this.$refs['form2'].resetFields()
}
this.dialogFormVisible2 = true
this.temp = 1
},
// 提交添加或者修改货位
Locatesubmit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
if (this.temp === 1) {
this.addLocateTable()
this.form2.货位名称 = ''
this.form2.工作中心 = ''
this.form2.仓库流水号 = ''
this.form2.永久 = ''
this.form2.不可用量 = ''
this.temp = null
} else if (this.temp === 2) {
this.LocateEdit()
this.temp = null
}
}
})
},
// 执行增加货位
addLocateTable() {
addLocate(this.form2.货位名称, this.form2.工作中心, this.wareHouse, this.form2.永久, this.form2.不可用量).then(response => {
this.dialogFormVisible2 = false
if (response.data[0].result === '1') {
this.$message.success('添加成功')
this.form.货位名称 = ''
this.form.工作中心 = ''
this.form.仓库流水号 = ''
this.form.永久 = ''
this.form.不可用量 = ''
} else {
this.$message.error('添加失败')
}
this.getLocate()
})
},
// 编辑货位
handleLocateEdit(row) {
this.temp = 2
this.form2.货位名称 = row.货位名称
this.form2.工作中心 = row.工作中心
this.form2.仓库流水号 = row.仓库流水号
this.form2.永久 = row.永久
this.form2.不可用量 = row.不可用量
this.LocateNumber = row.货位流水号
this.dialogFormVisible2 = true
},
// 执行修改货位
LocateEdit() {
alterLocate(this.LocateNumber, this.form2.货位名称, this.form2.工作中心, this.form2.仓库流水号, this.form2.永久, this.form2.不可用量).then(response => {
this.dialogFormVisible2 = false
if (response.data[0].result === '1') {
this.$message.success('信息更新成功')
this.form.货位名称 = ''
this.form.工作中心 = ''
this.form.仓库流水号 = ''
this.form.永久 = ''
this.form.不可用量 = ''
this.getLocate()
} else {
this.$message.error('信息更新失败')
}
})
},
// 删除货位
locateDelete(row) {
this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteLocate(row.货位流水号).then(response => {
if (response.data[0].result === '1') {
this.getLocate()
this.$message.success('删除成功')
} else {
this.$message.error('删除失败')
}
})
})
},
// 重置表单
callLocateOff(formName) {
this.form2 = {}
this.form2.货位名称 = ''
this.form2.工作中心 = ''
this.form2.仓库流水号 = ''
this.form.永久 = ''
this.form.不可用量 = ''
this.dialogFormVisible2 = false
this.$refs[formName].resetFields()
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,296 @@
<template>
<div class="app-container">
<el-card>
<el-table
v-loading="listLoading"
:data="tableDataBasic"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="离线合同编号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.离线合同编号 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="可出库数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.货位存量 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="物料规格" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-sort-up" style="margin: 0 0 0 0px" @click="parOut(scope.row)">出库</el-button>
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 0 0px" @click="searchoutRecord(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<!--零件出库对话框-->
<el-dialog :visible.sync="dialogFormVisible" title="零件出库" center width="380px">
<el-form ref="form" :model="Project" :rules="rules" label-position="left">
<el-form-item label="项目" prop="TotalContractAmount" label-width="100px">
<el-select v-model="form.ProjectValue" filterable clearable size="small" placeholder="项目" style="width: 200px;margin-right:10px" @change="searchMachine()">
<el-option
v-for="item in Project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="机床" prop="TotalContractAmount" label-width="100px">
<el-select v-model="MachineValue" filterable clearable size="small" placeholder="机床" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="分组" prop="TotalContractAmount" label-width="100px">
<el-select v-model="GroupNumValue" filterable clearable size="small" placeholder="分组" style="width: 200px;margin-right:10px">
<el-option
v-for="item in GroupNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="出库数量" prop="ContractNumberValue" label-width="100px" size="small">
<el-input v-model="form.DirectNumber" size="small" placeholder="出库数量" style="width: 200px"/>
</el-form-item>
<el-form-item label="领用者" prop="TotalContractAmount" label-width="100px">
<el-select v-model="PeopleValue" filterable clearable size="small" placeholder="领用者" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in People"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.DirectNote" size="small" placeholder="请输入备注" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button type="primary" @click="addDirectPartm()"> </el-button>
</div>
</el-dialog>
<el-card>
<el-table
v-loading="listLoading1"
:data="tableDataOut"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="出库数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库数量 }}
</template>
</el-table-column>
<el-table-column label="出库时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.出库时间 }}
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { initProject, searchmachine, searchTeam, searchPart, searchPeople, outlinePartOut, outRecord } from '@/api/Inventory/OfflinePartOut'
import { mapGetters } from 'vuex'
export default {
data() {
return {
Project: [],
ProjectValue_check: 1,
MachineValue: ' ',
Machine: [],
MachineValue_check: 1,
GroupNumValue: ' ',
GroupNumValue_check: 1,
GroupNum: [],
tableDataBasic: [],
People: [],
PeopleValue: '',
dialogFormVisible: false,
form: {
ProjectValue: '',
DirectNumber: '',
DirectNote: ''
},
rules: { // 表单验证规则
ProjectValue: [{ required: true, message: '请选择项目', trigger: 'blur' }],
DirectNumber: [{ required: true, message: '请输入直达件数量', trigger: 'blur' }],
DirectNote: [{ required: true, message: '请输入直达件备注', trigger: 'change' }]
},
contractNumber: '',
locateNumber: '',
materialNumber: '',
PeopleNumber: '',
tableDataOut: [],
listLoading: '',
listLoading1: ''
}
},
computed: {
...mapGetters([
'id'
])
},
created() {
this.searchPurchasePartinfo()
this.fetchData()
this.searchPeopleData()
this.getpeopleid()
},
methods: {
fetchData() {
this.getSelect(initProject, ['项目名称', '项目流水号'], 'Project') // 项目名称
},
// 获取人员编号
getpeopleid() {
this.PeopleNumber = this.id
},
searchMachine() { // 查询机床
console.log(1351)
if (this.ProjectValue === '') {
this.ProjectValue_check = 0
}
searchmachine(this.ProjectValue_check, this.form.ProjectValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Machine.push({
label: response.data[i].机床图号,
value: response.data[i].机床流水号
})
}
})
},
searchGroupList() { // 查询组号
searchTeam(this.MachineValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.GroupNum.push({
label: response.data[i].组件名称,
value: response.data[i].组件流水号
})
}
})
},
// 离线件查询
searchPurchasePartinfo() {
this.listLoading = true
this.tableDataBasic = []
searchPart().then(response => {
this.tableDataBasic = response.data
this.listLoading = false
})
},
// 离线记录查询
searchoutRecord(row) {
this.contractNumber = row.离线合同明细流水号
this.listLoading1 = true
outRecord(this.contractNumber).then(response => {
this.tableDataOut = response.data
this.listLoading1 = false
})
},
// 打开表单
parOut(row) {
this.form = []
this.MachineValue = ''
this.GroupNumValue = ''
this.dialogFormVisible = true
this.contractNumber = row.离线合同明细流水号
this.locateNumber = row.货位流水号
this.materialNumber = row.物料流水号
this.searchoutRecord()
},
// 重置表单
callOff() {
this.form.DirectNumber = ''
this.form.DirectNumberx = ''
this.form.DirectNote = ''
this.dialogFormVisible = false
},
searchPeopleData() { // 查询人员
searchPeople().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.People.push({
label: response.data[i].姓名,
value: response.data[i].考勤编号
})
}
})
},
// 离线外购件出库
addDirectPartm() {
console.log(this.contractNumber, this.PeopleValue, this.form.DirectNumber, this.locateNumber, this.form.DirectNote, this.form.ProjectValue, this.MachineValue, this.GroupNumValue, this.materialNumber, this.PeopleNumber)
outlinePartOut(this.contractNumber, this.PeopleValue, this.form.DirectNumber, this.locateNumber, this.form.DirectNote, this.form.ProjectValue, this.MachineValue, this.GroupNumValue, this.materialNumber, this.PeopleNumber).then(response => {
if (response.data[0].result === '1') {
this.$notify({
title: '成功',
message: '信息添加成功',
type: 'success'
})
this.dialogFormVisible = false
this.searchDirect()
} else {
this.$message.error('信息添加失败')
}
})
this.dialogFormVisible = false
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,197 @@
<template>
<div class="app-container">
<el-card>
<span style="margin: 5px">领料单编号</span>
<el-input v-model="pickingListNumber" clearable size="small" style="width:200px" />
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="searchListinfor()">查询</el-button>
<el-table
v-loading="listLoading"
:data="tableData1"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="领料单编号" align="center" min-width="200">
<template slot-scope="scope">
{{ scope.row.领料单编号 }}
</template>
</el-table-column>
<el-table-column label="领料时间" align="center" min-width="200">
<template slot-scope="scope">
{{ scope.row.领料时间 }}
</template>
</el-table-column>
<el-table-column label="领料人" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="200px">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 0 10px" @click="chooseListinfor(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
<el-table
v-loading="listLoading1"
:data="tableDataPicking"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="领用数量" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.出库数量 }}
</template>
</el-table-column>
<el-table-column label="货位" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.货位流水号 }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.类型名称 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="80">
<template slot-scope="scope">
<el-button size="small" type="primary" icon="el-icon-back" style="margin: 0 0 0 0px" @click="partOut(scope.row)">出库</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { searchList, searchListDetail, PurchasePart, BasicPart, WorkShopPart } from '@/api/Inventory/PartOut'
import { mapGetters } from 'vuex'
export default {
data() {
return {
ProjectValue: ' ',
Project: [],
ProjectValue_check: 1,
MachineValue: ' ',
Machine: [],
MachineValue_check: 1,
GroupNumValue: ' ',
GroupNumValue_check: 1,
GroupNum: [],
tableDataBasic: [],
tableDataPurchase: [],
tableData1: [],
tableDataPicking: [], // 领料单明细表格
listNumber: '',
pickingListNumber: null, // 领料单编号
pickingListNumberx: '', // 领料单流水号
picikingPeople: '', // 领料人流水号
partProjectNumber: '', // 项目流水号
partProjectName: '', // 项目名称
partMachineNumber: '', // 机床流水号
partMachineName: '', // 机床名称
partGroupNumber: '', // 分组流水号
partGroupName: '', // 分组名称
OutNumber: '', // 出库数量
outNote: '', // 出库备注
getpicikingPeople: '', // 领料人
listLoading: '',
listLoading1: ''
}
},
computed: {
...mapGetters([
'id'
])
},
created() {
this.getpeopleid()
},
methods: {
// 获取人员编号
getpeopleid() {
this.picikingPeople = this.id
console.log(this.picikingPeople)
},
// 查询领料单
searchListinfor() {
this.listLoading = true
searchList(this.pickingListNumber).then(response => {
this.tableData1 = response.data
this.listLoading = false
})
},
// 查询领料单明细
searchListDetailt() {
this.listLoading1 = true
searchListDetail(this.pickingListNumberx).then(response => {
this.tableDataPicking = response.data
this.listLoading1 = false
})
},
// 选择领料单
chooseListinfor(row) {
this.pickingListNumberx = row.领料单流水号
this.getpicikingPeople = row.领料人流水号
console.log(this.pickingListNumberx)
this.searchListDetailt()
},
// 出库
partOut(row) {
console.log(row)
if (row.采购合同明细流水号 !== null) {
WorkShopPart(row.采购合同明细流水号, this.getpicikingPeople, row.出库数量, row.货位流水号, row.备注).then(response => {
if (response.data[0].result === '1') {
this.$message.success('出库成功')
} else { this.$message.error('出库失败') }
})
} else if (row.零件类型 === 1 || row.零件类型 === 2) {
PurchasePart(row.组件零件流水号, this.getpicikingPeople, row.出库数量, row.货位流水号, row.备注).then(response => {
if (response.data[0].result === '1') {
this.$message.success('出库成功')
} else { this.$message.error('出库失败') }
})
} else {
BasicPart(row.工艺计划流水号, row.出库数量, row.收件信息ID, row.备注).then(response => {
if (response.data[0].result === '1') {
this.$message.success('出库成功')
} else { this.$message.error('增加失败') }
})
}
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,875 @@
<template>
<div class="app-container">
<el-card>
<span style="margin: 5px">领料单编号</span>
<el-input v-model="pickingListNumber" clearable size="small" style="width:200px" />
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="searchListinfor()">查询</el-button>
<el-button size="small" type="primary" icon="el-icon-plus" style="margin: 0 0 0 10px" @click="addListinfor()">创建</el-button>
<el-button size="small" type="primary" icon="el-icon-plus" style="margin: 0 0 0 10px" @click="downLoadCjn()">导出</el-button>
<el-table
v-loading="listLoading2"
:data="tableData1"
border
style="width: 100%;"
height="200"
@row-click = "searchListDetailt()">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="领料单编号" align="center" min-width="200">
<template slot-scope="scope">
{{ scope.row.领料单编号 }}
</template>
</el-table-column>
<el-table-column label="领料时间" align="center" min-width="200">
<template slot-scope="scope">
{{ scope.row.领料时间 }}
</template>
</el-table-column>
<el-table-column label="领料人" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="200px">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 0 10px" @click="chooseListinfor(scope.row)">选择</el-button>
<el-button size="small" type="danger" icon="el-icon-delete" style="margin: 0 0 0 10px" @click="dropListinfor(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent2"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total2"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange2"
@current-change="handleCurrentChange2"/>
</div>
<el-table
v-loading="listLoading3"
:data="tableDataPicking"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="物料名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="物料型号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="物料规格" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
<el-table-column label="项目名称" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="领用数量" align="center" min-width="50">
<template slot-scope="scope">
{{ scope.row.出库数量 }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="130">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="200">
<template slot-scope="scope">
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 10px 10px" @click="editListDetailx(scope.row)">编辑</el-button>
<el-button size="small" type="danger" icon="el-icon-delete" style="margin: 0 0 10px 10px" @click="dropListdetail(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<el-card>
<span>项目名称:</span>
<el-select v-model="ProjectValue" filterable clearable size="small" placeholder="请选择项目名称" style="width: 200px;margin-right:10px" @change="searchMachine()">
<el-option
v-for="item in Project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="MachineValue" filterable clearable size="small" placeholder="机床图号" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="GroupNumValue" filterable clearable size="small" placeholder="组号" style="width: 200px">
<el-option
v-for="item in GroupNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="searchPartinfo()">查询</el-button><br>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableDataBasic"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="零件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.零件名称 }}
</template>
</el-table-column>
<el-table-column label="库存数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.可出库数量 }}
</template>
</el-table-column>
<el-table-column label="零件图号" align="center" min-width="80">
<template slot-scope="scope" align="center">
{{ scope.row.零件图号 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="80">
<template slot-scope="scope" align="center">
{{ scope.row.零件类型名称 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="80">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 0 10px" @click="addBasicListDetailinfor(scope.row)">领料</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"/>
</div>
<el-table
v-loading="listLoading1"
:data="tableDataPurchase"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="物料规格" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
<el-table-column label="物料型号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="零件数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.货位存量 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.类型名称 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="80">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 0 10px" @click="addListDetailinfor(scope.row)">领料</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrent1"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="total1"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"/>
</div>
<el-table
v-loading="listLoadingx"
:data="tableDataHouse"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="物料规格" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
<el-table-column label="物料型号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床图号 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组号 }}
</template>
</el-table-column>
<el-table-column label="零件数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.货位存量 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.零件类型 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="80">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 0 10px" @click="addWorkshopDetailinfor(scope.row)">领料</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="PageCurrentx"
:page-sizes="[10, 20, 30, 40]"
:page-size="10"
:total="totalx"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChangex"
@current-change="handleCurrentChangex"/>
</div>
</el-card>
<!--基本件领料对话框-->
<el-dialog :visible.sync="dialogFormVisible1" title="基本件通用件领料" center width="380px">
<el-form ref="form" :model="form" :rules="rules" label-position="left">
<el-form-item label="出库数量" prop="ContractNumberValue" label-width="100px" size="small">
<el-input v-model="form.OutNumber" size="small" placeholder="出库数量" style="width: 200px"/>
</el-form-item>
<el-form-item label="出库备注" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.outNote" size="small" placeholder="请输入备注" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button type="primary" @click="addBasicListDetail()"> </el-button>
</div>
</el-dialog>
<!--外购件领料对话框-->
<el-dialog :visible.sync="dialogFormVisible" title="外购件标准件领料" center width="380px">
<el-form ref="form" :model="form" :rules="rules" label-position="left">
<el-form-item label="出库数量" prop="ContractNumberValue" label-width="100px" size="small">
<el-input v-model="form.OutNumber" size="small" placeholder="出库数量" style="width: 200px"/>
</el-form-item>
<el-form-item label="出库备注" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.outNote" size="small" placeholder="请输入备注" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button type="primary" @click="execaddListDetail()"> </el-button>
</div>
</el-dialog>
<!--车间采购件领料对话框-->
<el-dialog :visible.sync="dialogFormVisibleWork" title="车间采购件领料" center width="380px">
<el-form ref="form" :model="form" :rules="rules" label-position="left">
<el-form-item label="出库数量" prop="ContractNumberValue" label-width="100px" size="small">
<el-input v-model="form.OutNumber" size="small" placeholder="出库数量" style="width: 200px"/>
</el-form-item>
<el-form-item label="出库备注" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.outNote" size="small" placeholder="请输入备注" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button type="primary" @click="addWorkshopListDetail()"> </el-button>
</div>
</el-dialog>
<!--编辑领料明细对话框-->
<el-dialog :visible.sync="dialogFormVisible2" title="领料单明细" center width="380px">
<el-form ref="form2" :model="form2" :rules="rules" label-position="left">
<el-form-item label="出库数量" prop="ContractNumberValue" label-width="100px" size="small">
<el-input v-model="form2.OutNumber" size="small" placeholder="出库数量" style="width: 200px"/>
</el-form-item>
<el-form-item label="出库备注" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form2.outNote" size="small" placeholder="请输入备注" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form2')">取消</el-button>
<el-button type="primary" @click="submitChannge()"> </el-button>
</div>
</el-dialog>
<!--领料单-->
<!--<el-card v-show="card">-->
<!--<table cellspacing="0px" align="center" id="cjn" width="100%" style="">-->
<!--<tbody id="1">-->
<!--<tr>-->
<!--<td colspan="4" style="text-align: left;font-size: 30px;font-weight: bold">GAOJING</td>-->
<!--<td colspan="24" style="text-align:center;font-size: 30px;font-weight: bold">领料单</td>-->
<!--</tr>-->
<!--<tr class="tbodyHead">-->
<!--<td colspan="2">领料单号:</td>-->
<!--<td colspan="6">{{任务单号}}</td>-->
<!--<td colspan="4">领料日期:</td>-->
<!--<td colspan="4">{{任务下达日期}}</td>-->
<!--<td colspan="3">领料人:</td>-->
<!--<td colspan="9">{{外协厂家}}</td>-->
<!--</tr>-->
<!--<tr id="tableHead">-->
<!--<td style="width: 2%">序号</td>-->
<!--<td colspan="5">物料型号</td>-->
<!--<td colspan="2" style="width: 4%">物料名称</td>-->
<!--<td colspan="2" style="width: 4%">物料规格</td>-->
<!--<td colspan="9" width="30%">数量</td>-->
<!--<td colspan="1">项目名称</td>-->
<!--<td>机床名称</td>-->
<!--<td>组件名称</td>-->
<!--<td>备注</td>-->
<!--</tr>-->
<!--</tbody>-->
<!--</table>-->
<!--</el-card>-->
</div>
</template>
<script>
import { initProject, searchmachine, searchTeam, searchPurchasePart, searchBasicPart, searchList, addList, dropList, addListDetail, searchListDetail, dropListDetail, editListDetail, searchHoursePart } from '@/api/Inventory/PickingList'
import { mapGetters } from 'vuex'
// import { getExplorer, method5, Cleanup } from '@/vendor/exportExcel'
export default {
data() {
return {
ProjectValue: ' ',
Project: [],
ProjectValue_check: 1,
MachineValue: ' ',
Machine: [],
MachineValue_check: 1,
GroupNumValue: ' ',
GroupNumValue_check: 1,
GroupNum: [],
tableDataBasic: [],
tableDataPurchase: [],
tableData1: [],
tableDataPicking: [], // 领料单明细表格
listNumber: '',
pickingListNumber: null, // 领料单编号
pickingListNumberx: '', // 领料单流水号
picikingPeople: '', // 领料人流水号
partProjectNumber: '', // 项目流水号
partProjectName: '', // 项目名称
partMachineNumber: '', // 机床流水号
partMachineName: '', // 机床名称
partGroupNumber: '', // 分组流水号
partGroupName: '', // 分组名称
form: {
OutNumber: '', // 出库数量
outNote: '' // 出库备注
},
rules: { // 表单验证规则
OutNumber: [{ required: true, message: '请输入出库数量', trigger: 'blur' }],
outNote: [{ required: true, message: '请输入出库备注', trigger: 'blur' }]
},
form2: {
OutNumber: '', // 出库数量
outNote: '' // 出库备注
},
rules2: { // 表单验证规则
OutNumber: [{ required: true, message: '请输入出库数量', trigger: 'blur' }],
outNote: [{ required: true, message: '请输入出库备注', trigger: 'blur' }]
},
partType: '', // 零件类型
craftplannumber: '', // 工艺计划流水号
receive: '', // 收件信息ID
teamPart: '', // 组件零件流水号
locatenumber: '', // 货位流水号
listLoading: false,
listLoading1: false,
listLoading2: false,
listLoading3: false,
PageCurrent: 1,
PageSize: 10,
total: null,
PageCurrent1: 1,
PageSize1: 10,
total1: null,
PageCurrent2: 1,
PageSize2: 10,
total2: null,
PageCurrent3: 1,
PageSize3: 10,
total3: null,
PageCurrentx: 1,
PageSizex: 10,
totalx: null,
materialName: '',
materialNumber: '',
materialType: '',
dialogFormVisible: false,
dialogFormVisible1: false,
dialogFormVisible2: false,
card: true,
pickingListDetail: '',
tableDataHouse: [],
listLoadingx: '',
purchaseDetailNum: '',
dialogFormVisibleWork: false
}
},
computed: {
...mapGetters([
'id'
])
},
created() {
this.fetchData()
this.getpeopleid()
},
methods: {
fetchData() {
this.getSelect(initProject, ['项目名称', '项目流水号'], 'Project') // 项目名称
},
// 获取人员编号
getpeopleid() {
this.picikingPeople = this.id
console.log(this.picikingPeople)
},
searchMachine() { // 查询机床
if (this.ProjectValue === ' ') {
this.ProjectValue_check = 0
}
searchmachine(this.ProjectValue_check, this.ProjectValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Machine.push({
label: response.data[i].机床图号,
value: response.data[i].机床流水号
})
}
})
},
searchGroupList() { // 查询组号
searchTeam(this.MachineValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.GroupNum.push({
label: response.data[i].组件名称,
value: response.data[i].组件流水号
})
}
})
},
searchPartinfo() {
this.tableDataPurchase = []
this.tableDataBasic = []
if (this.ProjectValue === ' ') {
this.ProjectValue_check = 0
}
if (this.MachineValue === ' ') {
this.MachineValue_check = 0
}
if (this.GroupNumValue === ' ') {
this.GroupNumValue_check = 0
}
this.listLoading = true
this.listLoading1 = true
this.listLoadingx = true
searchPurchasePart(this.PageCurrent, this.PageSize, this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue).then(response => {
console.log(response)
this.tableDataPurchase = response.data.rows
this.listLoading = false
this.total1 = response.data.total
})
searchBasicPart(this.PageCurrent1, this.PageSize1, this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue).then(response => {
this.tableDataBasic = response.data.rows
this.listLoading1 = false
this.total = response.data.total
console.log(response)
})
searchHoursePart(this.PageCurrentx, this.PageSizex, this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue).then(response => {
this.tableDataHouse = response.data.rows
this.listLoadingx = false
this.totalx = response.data.total
console.log(response)
})
},
handleSizeChange(val) {
this.PageCurrent = 1
this.PageSize = val
this.searchPartinfo()
},
handleCurrentChange(val) {
this.PageCurrent = val
this.searchPartinfo()
},
handleSizeChange1(val) {
this.PageCurrent1 = 1
this.PageSize1 = val
this.searchPartinfo()
},
handleCurrentChange1(val) {
this.PageCurrent1 = val
this.searchPartinfo()
},
handleSizeChangex(val) {
this.PageCurrentx = 1
this.PageSizex = val
this.searchPartinfo()
},
handleCurrentChangex(val) {
this.PageCurrentx = val
this.searchPartinfo()
},
// 查询领料单
searchListinfor() {
this.listLoading2 = true
searchList(this.PageCurrent2, this.PageSize2, this.pickingListNumber).then(response => {
this.tableData1 = response.data.rows
this.listLoading2 = false
this.total2 = response.data.total
})
},
handleSizeChange2(val) {
this.PageCurrent2 = 1
this.PageSize2 = val
this.searchListinfor()
},
handleCurrentChange2(val) {
this.PageCurrent2 = val
this.searchListinfor()
},
// 查询领料单明细
searchListDetailt() {
this.listLoading3 = true
searchListDetail(this.pickingListNumberx).then(response => {
console.log(response)
this.tableDataPicking = response.data
this.listLoading3 = false
})
},
// 增加领料单
addListinfor() {
addList(this.picikingPeople).then(response => {
if (response.data[0].result === '1') {
this.$message.success('增加成功')
this.searchListinfor()
} else {
this.$message.error('增加失败')
}
})
},
// 删除领料单
dropListinfor(row) {
this.pickingListNumberx = row.领料单流水号
this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
dropList(this.pickingListNumberx).then(response => {
if (response.data[0].result === '1') {
this.$message.success('删除成功')
this.searchListinfor()
} else {
this.$message.error('删除失败')
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
// 删除领料单明细
dropListdetail(row) {
this.pickingListDetail = row.领料单明细流水号
this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
dropListDetail(this.pickingListDetail).then(response => {
if (response.data[0].result === '1') {
this.$message.success('删除成功')
this.searchListDetailt()
} else {
this.$message.error('删除失败')
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
// 选择领料单
chooseListinfor(row) {
this.pickingListNumberx = row.领料单流水号
},
// 增加基本件领料单明细
addBasicListDetailinfor(row) {
this.form = []
this.partProjectNumber = row.项目流水号
this.partProjectName = row.项目名称
this.partMachineNumber = row.机床流水号
this.partMachineName = row.机床名称
this.partGroupNumber = row.组件流水号
this.partGroupName = row.组件名称
this.partType = row.零件类型
this.craftplannumber = row.工艺计划流水号
this.receive = row.收件信息id
this.teamPart = row.组件零件流水号
this.locatenumber = row.货位流水号
this.materialName = row.零件名称
this.materialNumber = row.零件图号
this.dialogFormVisible1 = true
this.materialName = row.零件名称
this.materialType = row.零件类型名称
this.materialNumber = row.零件图号
console.log(this.receive, 41645)
},
addBasicListDetail() {
if (this.pickingListNumberx === '') {
this.$message.error('请选择领料单')
} if (this.form.OutNumber === '') {
this.$message.error('请输入领用数量')
}
addListDetail(this.pickingListNumberx, this.partProjectNumber, this.partMachineNumber, this.partGroupNumber, this.partProjectName, this.partMachineName, this.partGroupName, this.materialName, this.materialType, this.materialNumber, this.form.OutNumber, this.partType, this.form.outNote, this.craftplannumber, this.receive, this.teamPart, this.locatenumber).then(response => {
if (response.data[0].result === '1') {
this.$message.success('增加成功')
} else {
this.$message.error('增加失败')
}
})
this.dialogFormVisible1 = false
this.searchListinfor()
},
// 增加外购件领料单明细
addListDetailinfor(row) {
this.form = []
this.partProjectNumber = row.项目流水号
this.partProjectName = row.项目名称
this.partMachineNumber = row.机床流水号
this.partMachineName = row.机床名称
this.partGroupNumber = row.组件流水号
this.partGroupName = row.组件名称
this.partType = row.零件类型代码
this.craftplannumber = row.工艺计划流水号
this.receive = row.收件信息ID
this.teamPart = row.组件零件流水号
this.locatenumber = row.货位流水号
this.materialName = row.物料名称
this.materialNumber = row.物料型号
this.materialType = row.物料规格
this.dialogFormVisible = true
this.purchaseDetailNum = row.采购合同明细流水号
},
execaddListDetail() {
if (this.pickingListNumberx === '') {
this.$message.error('请选择领料单')
} else if (this.OutNumber === '') {
this.$message.error('请输入领用数量')
} else {
addListDetail(this.pickingListNumberx, this.partProjectNumber, this.partMachineNumber, this.partGroupNumber, this.partProjectName, this.partMachineName, this.partGroupName, this.materialName, this.materialType, this.materialNumber, this.form.OutNumber, this.partType, this.form.outNote, this.craftplannumber, this.receive, this.teamPart, this.locatenumber).then(response => {
if (response.data[0].result === '1') {
this.$message.success('增加成功')
} else {
this.$message.error('增加失败')
}
})
}
this.dialogFormVisible = false
this.searchListinfor()
},
// 增加车间采购领料单明细
addWorkshopDetailinfor(row) {
this.form = []
this.partProjectNumber = row.项目流水号
this.partProjectName = row.项目名称
this.partMachineNumber = row.机床流水号
this.partMachineName = row.机床名称
this.partGroupNumber = row.组件流水号
this.partGroupName = row.组件名称
this.partType = row.零件类型
this.receive = row.收件信息ID
this.locatenumber = row.货位流水号
this.materialName = row.物料名称
this.materialNumber = row.物料型号
this.materialType = row.物料规格
this.dialogFormVisibleWork = true
this.purchaseDetailNum = row.采购合同明细流水号
},
addWorkshopListDetail() {
if (this.pickingListNumberx === '') {
this.$message.error('请选择领料单')
} else if (this.OutNumber === '') {
this.$message.error('请输入领用数量')
} else {
addListDetail(this.pickingListNumberx, this.partProjectNumber, this.partMachineNumber, this.partGroupNumber, this.partProjectName, this.partMachineName, this.partGroupName, this.materialName, this.materialType, this.materialNumber, this.form.OutNumber, this.partType, this.form.outNote, this.craftplannumber, this.receive, this.teamPart, this.purchaseDetailNum, this.locatenumber).then(response => {
if (response.data[0].result === '1') {
this.$message.success('增加成功')
} else {
this.$message.error('增加失败')
}
})
}
this.dialogFormVisibleWork = false
this.searchListinfor()
},
// 修改领料单明细
editListDetailx(row) {
this.dialogFormVisible2 = true
this.pickingListDetail = row.领料单明细流水号
},
submitChannge() {
editListDetail(this.pickingListDetail, this.form2.OutNumber, this.form2.outNote).then(response => {
if (response.data[0].result === '1') {
this.$message.success('修改成功')
} else {
this.$message.error('修改失败')
}
})
this.dialogFormVisible2 = false
this.searchListDetailt()
},
// 重置表单
callOff() {
this.form.DirectNumber = ''
this.form.DirectNote = ''
this.dialogFormVisible = false
this.dialogFormVisible1 = false
this.dialogFormVisible2 = false
this.dialogFormVisibleWork = false
this.form2.OutNumber = ''
this.form2.outNote = ''
},
// 导出状态
handleDownload() {
searchListDetail(this.pickingListNumberx).then(response => {
return response.data
}).then(data => {
const a = data
require.ensure([], () => {
const { export_json_to_excel } = require('@/vendor/Export2Excel')
const tHeader = ['物料名称', '物料型号', '物料规格', '项目名称', '机床名称', '组件名称', '领用数量', '备注']
const filterVal = ['物料名称', '物料型号', '物料规格', '项目名称', '机床名称', '组件名称', '领用数量', '备注']
const list = a
const data = this.formatJson(filterVal, list)
export_json_to_excel(tHeader, data, '领料单')
})
})
},
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => v[j]))
}
// downLoadCjn(tableid) {
// if (this.List3.length === 0) {
// this.$message.warning('暂无数据')
// } else {
// getExplorer()
// method5(tableid)
// Cleanup()
// }
// }
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,103 @@
<template>
<div class="app-container">
<el-card>
<span style="margin: 5px">替换单编号</span>
<el-input v-model="substituteNumber" clearable size="small" style="width:200px" />
<span style="margin: 5px">零件图号</span>
<el-input v-model="partNumber" clearable size="small" style="width:200px" />
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="getSubstitutedCard()">查询</el-button>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableDataExchange"
border
style="width: 100%;"
height="450">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="替换单编号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.替换单编号 }}
</template>
</el-table-column>
<el-table-column label="替换件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.替换件名称 }}
</template>
</el-table-column>
<el-table-column label="被替换件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.被替换件名称 }}
</template>
</el-table-column>
<el-table-column label="替换数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.替换数量 }}
</template>
</el-table-column>
<el-table-column label="申请时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.申请时间 }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-back" style="margin: 0 0 0 0px" @click="substitutePart(scope.row)">替换件到货</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { searchSubstitutedCard, SubstitutedCome } from '@/api/Inventory/SubPartCome'
export default {
data() {
return {
tableDataExchange: [],
substituteNumber: '',
partNumber: '',
listLoading: '',
subList: '',
locateNumber: '',
subNumber: ''
}
},
methods: {
// 替换单查询
getSubstitutedCard() {
this.listloading = true
searchSubstitutedCard().then(response => {
this.tableDataExchange = response.data
this.listloading = false
})
},
// 替换件到货
substitutePart(row) {
this.subList = row.替换单流水号
this.locateNumber = row.物料与货位对照流水号
this.subNumber = row.替换数量
SubstitutedCome(this.subList, this.locateNumber, this.subNumber).then(response => {
if (response.data[0].result === '1') {
this.$message.success('到货替换成功')
} else { this.$message.error('到货替换失败') }
})
this.getSubstitutedCard()
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,488 @@
<template>
<div class="app-container">
<el-card>
<span>项目名称:</span>
<el-select v-model="ProjectValue" filterable clearable size="small" placeholder="请选择项目名称" style="width: 200px;margin-right:10px" @change="searchMachine()">
<el-option
v-for="item in Project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="MachineValue" filterable clearable size="small" placeholder="机床图号" style="width: 200px;margin-right:10px" @change="searchGroupList()">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="GroupNumValue" filterable clearable size="small" placeholder="组号" style="width: 200px">
<el-option
v-for="item in GroupNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="total = 0;pageSize = 10;pageList = 1;searchPartinfo()">查询</el-button><br>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableDataPurchase"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="零件数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.货位存量 }}
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.类型名称 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-sort-down" style="margin: 0 0 0 0px" @click="selecting(scope.row)">替换</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<el-card>
<el-row>
<el-col :span="11">
<div>
<el-table
v-loading="listLoading"
:data="tableData1"
border
style="width: 100%;"
height="100"
>
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.机床名称 }}
</template>
</el-table-column>
<el-table-column label="组件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件名称 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col :span="2">
<div style="margin: 0px 15px">
<el-button size="small" type="warning" icon="el-icon-edit" @click="addSub()" >替换件</el-button>
</div>
<div style="margin: 10px 15px">
<el-button size="small" type="primary" icon="el-icon-edit" @click="exchange()" >替换</el-button>
</div>
</el-col>
<el-col :span="11">
<div>
<el-table
:data="tableData2"
border
style="width: 100%;"
height="100">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="物料型号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.数量 }}
</template>
</el-table-column>
<el-table-column label="物料规格" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
</el-table>
</div>
</el-col>
</el-row>
<!--新增替换件对话框-->
<el-dialog :title="title" :visible.sync="dialogFormVisible" center width="380px">
<el-form ref="form" :model="form" :rules="rules" label-position="left">
<el-form-item label="替换单编号" prop="ContractNumberValue" label-width="100px" size="small">
<el-input v-model="form.ExchangeNumber" size="small" placeholder="请输入零件替换单编号" style="width: 200px"/>
</el-form-item>
<el-form-item label="替换数量" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.ExchangeNumberx" size="small" placeholder="请输入替换数量" style="width: 200px"/>
</el-form-item>
<el-form-item label="备注" prop="TotalContractAmount" label-width="100px">
<el-input v-model="form.ExchangeNote" size="small" placeholder="请输入备注" style="width: 200px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button v-show="title==='替换'" type="primary" @click="addListDetailinfor('form')"> </el-button>
<el-button v-show="title==='编辑'" type="primary" @click="submitEdit('form')">确定</el-button>
</div>
</el-dialog>
<!--选择替换件-->
<el-dialog :visible.sync="dialogFormVisible2" title="新增替换件" center width="600px">
<el-form :rules="rules" label-position="left">
<el-form-item label="物料名称" prop="ContractNumberValue" label-width="150px" size="small">
<el-input v-model="form.ExchangeNumber" size="small" placeholder="物料名称" style="width: 200px"/>
<el-button type="primary" @click="getSubstituted()">查询</el-button>
</el-form-item>
<el-table
:data="tableDataSub"
border
style="width: 100%;"
height="100">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="物料名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="物料型号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.数量 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-sort-down" style="margin: 0 0 0 0px" @click="selected(scope.row)">选择</el-button>
</template>
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="callOff('form')">取消</el-button>
<el-button type="primary" @click="chooseSub()"> </el-button>
</div>
</el-dialog>
</el-card>
<el-card>
<el-table
v-loading="listLoading1"
:data="tableDataExchange"
border
style="width: 100%;"
height="200">
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="替换单编号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.替换单编号 }}
</template>
</el-table-column>
<el-table-column label="替换件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.替换件名称 }}
</template>
</el-table-column>
<el-table-column label="被替换件名称" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.被替换件名称 }}
</template>
</el-table-column>
<el-table-column label="替换数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.替换数量 }}
</template>
</el-table-column>
<el-table-column label="申请人" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="申请时间" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.申请时间 }}
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="120">
<template slot-scope="scope" align="center">
<el-button size="small" type="primary" icon="el-icon-edit" style="margin: 0 0 0 0px" @click="handleEdit(scope.row)">编辑</el-button>
<el-button size="small" type="danger" icon="el-icon-delete" style="margin: 0 0 0 0px" @click="dropListinfor(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { initProject, searchmachine, searchTeam, searchPurchasePart, searchSubstituted, addSubstitutepart, searchSubstitutedCard, deleteSubstitutedCard, editSubstitutedCard } from '@/api/Inventory/SubstitutePart'
import { mapGetters } from 'vuex'
export default {
data() {
return {
ProjectValue: ' ',
Project: [],
ProjectValue_check: 1,
MachineValue: ' ',
Machine: [],
MachineValue_check: 1,
GroupNumValue: ' ',
GroupNumValue_check: 1,
GroupNum: [],
tableDataPurchase: [],
tableDataExchange: [],
tableData1: [],
tableData2: [],
listNumber: '',
picikingPeople: '', // 领料人流水号
partProjectNumber: '', // 项目流水号
partProjectName: '', // 项目名称
partMachineNumber: '', // 机床流水号
partMachineName: '', // 机床名称
partGroupNumber: '', // 分组流水号
partGroupName: '', // 分组名称
OutNumber: '', // 出库数量
outNote: '', // 出库备注
dialogFormVisible: false,
dialogFormVisible2: false,
arr: [],
tableDataSub: [],
form: {
ExchangeNumber: '', // 交换件编号
ExchangeNumberx: '', // 交换件数量
ExchangeNote: '' // 交换件备注
},
rules: { // 表单验证规则
ExchangeNumber: [{ required: true, message: '请输入交换件编号', trigger: 'blur' }],
ExchangeNumberx: [{ required: true, message: '请输入交换件数量', trigger: 'blur' }],
ExchangeNote: [{ required: true, message: '请输入交换件备注', trigger: 'change' }]
},
listLoading: '',
listLoading1: '',
substituteListNumber: '',
title: ''
}
},
computed: {
...mapGetters([
'id'
])
},
created() {
this.fetchData()
this.getSubstitutedCard()
this.getpeopleid()
},
methods: {
fetchData() {
this.getSelect(initProject, ['项目名称', '项目流水号'], 'Project') // 项目名称
},
// 获取人员编号
getpeopleid() {
this.picikingPeople = this.id
console.log(this.picikingPeople)
},
searchMachine() { // 查询机床
if (this.ProjectValue === '') {
this.ProjectValue_check = 0
}
searchmachine(this.ProjectValue_check, this.ProjectValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Machine.push({
label: response.data[i].机床图号,
value: response.data[i].机床流水号
})
}
})
},
searchGroupList() { // 查询组号
searchTeam(this.MachineValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.GroupNum.push({
label: response.data[i].组件名称,
value: response.data[i].组件流水号
})
}
})
},
// 被替换件查询
searchPartinfo() {
this.tableDataPurchase = []
if (this.ProjectValue === ' ') {
this.ProjectValue_check = 0
}
if (this.MachineValue === ' ') {
this.MachineValue_check = 0
}
if (this.GroupNumValue === ' ') {
this.GroupNumValue_check = 0
}
this.listLoading = true
searchPurchasePart(this.ProjectValue_check, this.ProjectValue, this.MachineValue_check, this.MachineValue, this.GroupNumValue_check, this.GroupNumValue).then(response => {
this.tableDataPurchase = response.data
console.log(this.tableDataPurchase)
this.listLoading = false
})
},
// 重置表单
callOff() {
this.dialogFormVisible = false
this.dialogFormVisible2 = false
},
addSub() {
this.dialogFormVisible2 = true
},
// 被替换件查询
getSubstituted() {
searchSubstituted().then(response => {
this.tableDataSub = response.data
})
},
// 替换单查询
getSubstitutedCard() {
this.listLoading1 = true
searchSubstitutedCard().then(response => {
this.tableDataExchange = response.data
this.listLoading1 = false
})
},
// 选中零件交换
selecting(row) {
const arr = new Array(row)
this.tableData1 = arr
console.log(this.tableData1)
},
// 选中被零件交换
selected(row) {
const arr = new Array(row)
this.tableData2 = arr
},
// 确认选择零件
chooseSub() {
this.dialogFormVisible2 = false
},
// 增加交换件
addListDetailinfor() {
addSubstitutepart(this.tableData2[0].离线合同明细流水号, this.tableData1[0].组件零件流水号, this.form.ExchangeNumber, this.tableData1[0].物料名称, this.tableData2[0].物料名称, this.picikingPeople, this.form.ExchangeNumberx, this.form.ExchangeNote).then(response => {
if (response.data[0].result === '1') {
this.$message.success('增加成功')
} else { this.$message.error('增加失败') }
})
this.dialogFormVisible = false
this.getSubstitutedCard()
},
// 打开替换表单
exchange() {
this.form = []
this.dialogFormVisible = true
this.title = '替换'
},
// 删除替换单
dropListinfor(row) {
this.substituteListNumber = row.替换单流水号
this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteSubstitutedCard(this.substituteListNumber).then(response => {
if (response.data[0].result === '1') {
this.$message.success('删除成功')
this.getSubstitutedCard().then(response => {
})
} else {
this.$message.error('删除失败')
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
handleEdit(row) {
this.substituteListNumber = row.替换单流水号
this.form.ExchangeNumber = row.替换单编号
this.form.ExchangeNumberx = row.替换数量
this.form.ExchangeNote = row.备注
this.title = '编辑'
this.dialogFormVisible = true
},
submitEdit() {
this.editTable(editSubstitutedCard, [this.substituteListNumber, this.form.ExchangeNumber, this.form.ExchangeNumberx, this.form.ExchangeNote], 'form', function() { this.getSubstitutedCard(); this.dialogFormVisible = false })
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,259 @@
<template>
<div class="app-container">
<el-card>
<span style="margin: 5px">零件图号</span>
<el-input v-model="partNumber" clearable size="small" style="width:200px" />
<el-button size="small" type="success" icon="el-icon-search" style="margin: 0 0 0 10px" @click="getscantable()">查询</el-button>
<el-button size="small" type="danger" icon="el-icon-remove-outline" style="margin: 0 0 0 10px" @click="Empty()">清空</el-button>
</el-card>
<el-card>
<el-table
v-loading="listLoading"
:data="tableData"
border
style="width: 100%;height: 650px" >
<el-table-column
label="序号"
align="center"
type="index"
width="50"/>
<el-table-column label="项目名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床图号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.机床图号 }}
</template>
</el-table-column>
<el-table-column label="零件图号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.零件图号 }}
</template>
</el-table-column>
<el-table-column label="计划数量" align="center" min-width="100">
<template slot-scope="scope" align="center">
<el-input v-model="tableData[scope.$index].plannumber" readonly size="small"/>
</template>
</el-table-column>
<el-table-column label="入库数量" align="center" min-width="100">
<template slot-scope="scope">
<el-input v-model="tableData[scope.$index].innumber" clearable size="small"/>
</template>
</el-table-column>
<el-table-column label="仓库" align="center" min-width="100">
<template slot-scope="scope">
<el-select v-model="inventoryNumber" filterable clearable size="small" placeholder="仓库名称" @change="Getlocate">
<el-option
v-for="item in inventoryName"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="货位" align="center" min-width="120">
<template slot-scope="scope">
<el-select v-model="locateNumber" filterable clearable size="small" placeholder="货位名称">
<el-option
v-for="item in locateName"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<template slot-scope="scope" align="center">
<el-input v-model="tableData[scope.$index].note" clearable size="small"/>
</template>
</el-table-column>
<el-table-column label="操作" min-width="150">
<template slot-scope="scope">
<el-button type="primary" size="mini" class="el-icon-success" @click="Innumber">入库</el-button>
<el-button
size="mini"
type="danger"
class="el-icon-delete"
@click="handleDelete(scope.$index, scope.row)">移除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { searchTable, insertOne, getinventory, getlocate } from '@/api/Inventory/Inboundscanning'
import { mapGetters } from 'vuex'
import { wsuri, name } from '@/utils/request'
import print from '@/vendor/print'
export default {
data() {
return {
ace: 0,
a: '',
tableData: [],
partNumber: '',
listLoading: false,
craftplannumber: '',
radio2: 3,
PeopleNumber: '',
inventoryName: [], // 仓库名称下拉框
inventoryNumber: '',
locateName: [], // 货位名称下拉框
locateNumber: ''
}
},
computed: {
...mapGetters([
'id'
])
},
created() {
this.initWebpack()
this.getpeopleid()
this.Getinvent()
},
methods: {
handleDelete(index, row) {
this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.tableData.splice(index, 1)
this.$message({
message: '已被成功移除',
type: 'success'
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
// 获取人员编号
getpeopleid() {
this.PeopleNumber = this.id
},
aaa() {
print('#print')
},
initWebpack() { // 初始化websocket
this.websock = new WebSocket(wsuri)// 这里面的this都指向vue
this.websock.onopen = this.websocketopen
this.websock.onmessage = this.websocketonmessage
this.websock.onclose = this.websocketclose
this.websock.onerror = this.websocketerror
},
websocketopen() { // 打开
console.log('WebSocket连接成功')
this.websock.send('{<' + name + '>}')
},
websocketonmessage(msg) { // 数据接收
this.partNumber = msg.data.split('|')[3]
this.getscantable()
},
websocketclose() { // 关闭
console.log('WebSocket关闭')
},
websocketerror() { // 失败
console.log('WebSocket连接失败')
},
// 扫描查询
getscantable() {
if (this.partNumber === '') {
this.$message.error('请输入零件号')
} else {
this.listLoading = true
searchTable(this.partNumber).then(response => {
if (response.data.length === 0) {
this.listLoading = false
this.$message.warning('无此零件')
} else {
for (let i = 0; i < this.tableData.length; i++) {
if (response.data[0].工艺计划流水号 === this.tableData[i].工艺计划流水号) {
this.ace = this.ace + 1
}
}
if (this.ace === 0) {
this.tableData.push({
plannumber: response.data[0].剩余数量,
innumber: response.data[0].入库数量,
capture: '',
note: '',
工艺计划流水号: response.data[0].工艺计划流水号,
项目名称: response.data[0].项目名称,
机床图号: response.data[0].机床图号,
零件图号: response.data[0].零件图号
})
} else {
this.$message.error('此件已在列表中')
}
}
}).then(() => {
this.listLoading = false
this.ace = 0
})
}
},
// 修改入库
Innumber() {
this.$confirm('此操作将不可逆转,且如果入库数量大于计划数量,则全部入库,是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
for (let i = 0; i < this.tableData.length; i++) {
if (this.tableData[i].innumber > this.tableData[i].plannumber) {
this.tableData[i].innumber = this.tableData[i].plannumber
}
insertOne(this.tableData[i].工艺计划流水号, this.tableData[i].innumber, this.PeopleNumber, this.tableData[i].capture, this.inventoryNumber, this.locateNumber, this.tableData[i].note).then(response => {
this.$message({
type: 'success',
message: '零件入库成功!'
})
}).then(() => {
this.Empty()
})
}
}).catch(() => {
this.$message({
type: 'info',
message: '已取消入库'
})
})
},
// 清空
Empty() {
this.tableData = []
},
// 仓库查询
Getinvent() {
this.getSelect(getinventory, ['仓库名称', '仓库流水号'], 'inventoryName')
},
// 根据项目获取机床
Getlocate() {
this.locateName = []
this.locateNumber = ''
if (this.inventoryNumber) {
this.getSelect(getlocate, ['货位名称'], 'locateName', this.inventoryNumber)
}
}
}
}
</script>
<style scoped>
.el-card {
margin-bottom: 15px;
}
</style>

View File

@@ -0,0 +1,230 @@
<template>
<div class="app-container">
<el-card>
<span>合同号:</span>
<el-select v-model="contractNumValue" placeholder="合同号" size="small" filterable clearable>
<el-option
v-for="item in contractNum"
:key="item.value"
:label="item.label"
:value="item.value">
<div style="float: left">{{ item.label }}</div>
<div style="float: right; color: #8492a6; font-size: 13px">{{ item.name }}</div>
</el-option>
</el-select>
<span>供应商:</span>
<el-input v-model="supplierName" placeholder="供应商" size="small" clearable/>
<el-button
type="success"
size="small"
icon="el-icon-search"
style="margin-left:10px"
@click="total1=0;pageCurrent1=1;pageSize1=10;searchTable1()">查询</el-button>
</el-card>
<el-card>
<el-table
v-loading=""
:data="tableData1"
border
highlight-current-row
style="width: 100%;max-height: 250px;"
height="250px"
size="mini"
@row-click="searchTable2">
<el-table-column label="采购合同编号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="采购合同名称" align="center" min-width="120">
<template slot-scope="scope">
{{ scope.row.采购合同名称 }}
</template>
</el-table-column>
<el-table-column label="规定到货时间" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.规定到货时间.split(' ')[0] }}
</template>
</el-table-column>
<el-table-column label="供应商" align="center" min-width="250">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column label="采购员" align="center" min-width="70">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="到货情况" align="center" min-width="70">
<template slot-scope="scope">
<el-tag v-if="judge[scope.$index]===1" type="success" size="small">全部到货</el-tag>
<el-tag v-if="judge[scope.$index]===2" type="warning" size="small">即将拖期</el-tag>
<el-tag v-if="judge[scope.$index]===3" type="danger" size="small">已拖期</el-tag>
<el-tag v-if="judge[scope.$index]===4" type="primary" size="small">进度正常</el-tag>
</template>
</el-table-column>
<el-table-column label="到货进度" align="center" min-width="150">
<template slot-scope="scope">
<el-progress
:text-inside="true"
:stroke-width="18"
:percentage="100*(parseInt(scope.row.合同物料到货总数)/parseInt(scope.row.合同物料采购总数)).toFixed(4)"
status="success"/>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="pageCurrent1"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize1"
:total="total1"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"/>
</div>
<el-table v-loading="" :data="tableData2" stripe border style="width: 100%;max-height: 300px;margin-top: 10px" height="300px" size="mini">
<el-table-column label="采购合同编号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="物料规格" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
<el-table-column label="物料型号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="采购总数量" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.数量 }}
</template>
</el-table-column>
<el-table-column label="已到货数量" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.总到货数量 }}
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import { initArrivalStateContact, searchArrivalState, searchArrivalNum } from '@/api/PurchasingCenter/ArrivalStateSearch'
import { mapGetters } from 'vuex'
export default {
name: '', // 项目总价查询
data() {
return {
check1: 0,
check2: 0,
contractNumValue: '',
contractNum: [],
supplierName: '',
tableData1: [],
pageSize1: 10,
pageCurrent1: 1,
total1: 0,
tableData2: [],
now: '',
arrival: [],
judge: []
}
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'name',
'id' // 人员编号
])
},
created() {
this.fetchData()
},
methods: {
fetchData() {
initArrivalStateContact().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.contractNum.push({
label: response.data[i].采购合同编号,
name: response.data[i].采购合同名称,
value: response.data[i].采购合同流水号
})
}
})
},
searchTable1() {
this.arrival = [] // 规定到货时间数组
this.now = new Date()
this.contractNumValue ? this.check1 = 1 : this.check1 = 0
this.supplierName ? this.check2 = 1 : this.check2 = 0
searchArrivalState(this.pageCurrent1, this.pageSize1, this.check1, this.contractNumValue, this.check2, this.supplierName).then(response => {
for (let i = 0; i < response.data.rows.length; i++) {
this.arrival.push(new Date(response.data.rows[i].规定到货时间))
if (parseInt(response.data.rows[i].合同物料到货总数) === parseInt(response.data.rows[i].合同物料采购总数)) {
this.judge[i] = 1
} else if (parseInt(response.data.rows[i].合同物料到货总数) !== parseInt(response.data.rows[i].合同物料采购总数) && (this.now - this.arrival[i]) > 0 && (this.now - this.arrival[i]) < 86400000) {
this.judge[i] = 2
} else if (parseInt(response.data.rows[i].合同物料到货总数) !== parseInt(response.data.rows[i].合同物料采购总数) && (this.now - this.arrival[i]) > 86400000) {
this.judge[i] = 3
} else if (parseInt(response.data.rows[i].合同物料到货总数) !== parseInt(response.data.rows[i].合同物料采购总数) && (this.now - this.arrival[i]) < 0) {
this.judge[i] = 4
}
}
this.tableData1 = response.data.rows
this.total1 = response.data.total
})
},
handleSizeChange1(val) {
this.pageSize1 = val
this.pageCurrent1 = 1
this.searchTable1()
},
handleCurrentChange1(val) {
this.pageCurrent1 = val
this.searchTable1()
},
searchTable2(row) {
searchArrivalNum(row.采购合同流水号).then(response => {
this.tableData2 = response.data
})
}
}
}
</script>
<style scoped>
.el-card{
margin-bottom: 15px;
}
.el-select{
width:200px
}
.el-input{
width:200px
}
span{
margin: 10px 0 10px 10px;
}
.searchForm .el-form-item{
margin-bottom: 5px;
}
.el-tag{
margin: 0
}
</style>

View File

@@ -0,0 +1,670 @@
<template>
<div class="app-container">
<el-card>
<span>开始时间:</span>
<el-date-picker
v-model="startDate"
size="small"
type="date"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"/>
<span>结束时间:</span>
<el-date-picker
v-model="endDate"
size="small"
type="date"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"/>
<span>合同号:</span>
<el-input v-model="contractNum" placeholder="合同号" size="small" style="width:180px" clearable/>
<span>采购员:</span>
<el-input
v-model="buyerName"
placeholder="采购员"
size="small"
readonly
clearable
style="width:100px"
@dblclick.native="initBuyer();dialogVisible2=true;submitDisable=true"/>
<span>供应商:</span>
<el-input
v-model="supplierName"
placeholder="供应商"
size="small"
readonly
clearable
style="width:180px"
@dblclick.native="dialogVisible1=true;submitDisable=true"
@clear="emptySupplierDetail"/>
<el-button
type="success"
size="small"
icon="el-icon-search"
style="margin-left:10px"
@click="total1=0;pageCurrent1=1;pageSize1=10;searchTable1()">查询</el-button>
</el-card>
<el-card>
<el-table v-loading="loading1" :data="tableData1" size="mini" border style="width: 100%;">
<el-table-column label="采购合同编号" min-width="150" align="center">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="采购合同名称" min-width="150" align="center">
<template slot-scope="scope">
{{ scope.row.采购合同名称 }}
</template>
</el-table-column>
<el-table-column label="规定到货时间" width="100" align="center">
<template slot-scope="scope">
{{ scope.row.规定到货时间 }}
</template>
</el-table-column>
<el-table-column label="供应商" min-width="200" align="center">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column label="总金额" width="80" align="center">
<template slot-scope="scope">
{{ scope.row.总金额 }}
</template>
</el-table-column>
<el-table-column label="付款方式" width="80" align="center">
<template slot-scope="scope">
{{ scope.row.付款方式内容 }}
</template>
</el-table-column>
<el-table-column label="欠款金额" min-width="100" align="center">
<template slot-scope="scope">
{{ scope.row.欠款金额 }}
</template>
</el-table-column>
<el-table-column label="采购员" width="70" align="center">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="本次请款金额" min-width="100" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.本次应请款" size="mini" style="width:70px"/>
</template>
</el-table-column>
<el-table-column label="请款付款情况" width="810" align="center">
<template slot-scope="scope">
<el-table v-show="tableData11[scope.$index].length!==0" :data="tableData11[scope.$index]" size="mini" border style="width: 100%;">
<el-table-column label="次数" min-width="60" align="center" type="index"/>
<el-table-column label="请款金额" width="70" align="center">
<template slot-scope="scope">
{{ scope.row.请款金额 }}
</template>
</el-table-column>
<el-table-column label="请款时间" width="90" align="center">
<template slot-scope="scope">
{{ scope.row.请款时间 }}
</template>
</el-table-column>
<el-table-column label="审核情况内容" width="80" align="center">
<template slot-scope="scope">
{{ scope.row.审核情况内容 }}
</template>
</el-table-column>
<el-table-column label="未通过审核原因" width="80" align="center">
<template slot-scope="scope">
{{ scope.row.未通过审核原因 }}
</template>
</el-table-column>
<el-table-column label="审批情况内容" width="80" align="center">
<template slot-scope="scope">
{{ scope.row.审批情况内容 }}
</template>
</el-table-column>
<el-table-column label="未通过审批原因" width="80" align="center">
<template slot-scope="scope">
{{ scope.row.未通过审批原因 }}
</template>
</el-table-column>
<el-table-column label="付款情况" width="80" align="center">
<template slot-scope="scope">
{{ scope.row.付款情况内容 }}
</template>
</el-table-column>
<el-table-column label="未付款原因" width="80" align="center">
<template slot-scope="scope">
{{ scope.row.未付款原因 }}
</template>
</el-table-column>
<el-table-column width="100" align="center">
<template slot-scope="scope">
<el-button
type="danger"
size="mini"
icon=""
@click="cancelRequestFund(scope.row)">取消请款</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column label="请款" min-width="80" align="center" fixed="right">
<template slot-scope="scope">
<el-button
type="primary"
size="mini"
icon=""
@click="requestFund(scope.row)">请款</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="pageCurrent1"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize1"
:total="total1"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"/>
</div>
</el-card>
<el-card>
<span>请款开始时间:</span>
<el-date-picker
v-model="startRequestDate"
size="small"
type="date"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"/>
<span>请款结束时间:</span>
<el-date-picker
v-model="endRequestDate"
size="small"
type="date"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"/>
<el-button
type="success"
size="small"
icon="el-icon-search"
style="margin-left:10px"
@click="searchRequestTable">查询</el-button>
<el-button
type="warning"
size="small"
icon="el-icon-download"
style="margin-left:10px"
>导出Excel</el-button>
</el-card>
<el-card>
<el-table v-loading="loading2" :data="tableData2" size="mini" border style="width: 100%;min-height:300px" height="300px">
<el-table-column label="采购合同编号" min-width="150" align="center">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="采购合同名称" min-width="150" align="center">
<template slot-scope="scope">
{{ scope.row.采购合同名称 }}
</template>
</el-table-column>
<el-table-column label="规定到货时间" width="100" align="center">
<template slot-scope="scope">
{{ scope.row.规定到货时间 }}
</template>
</el-table-column>
<el-table-column label="实际到货时间" width="100" align="center">
<template slot-scope="scope">
{{ scope.row.实际到货时间 }}
</template>
</el-table-column>
<el-table-column label="供应商" min-width="150" align="center">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column label="总金额" min-width="80" align="center">
<template slot-scope="scope">
{{ scope.row.总金额 }}
</template>
</el-table-column>
<el-table-column label="付款方式" min-width="80" align="center">
<template slot-scope="scope">
{{ scope.row.付款方式内容 }}
</template>
</el-table-column>
<el-table-column label="欠款金额" min-width="80" align="center">
<template slot-scope="scope">
{{ scope.row.欠款金额 }}
</template>
</el-table-column>
<el-table-column label="采购员" width="70" align="center">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="请款金额" min-width="80" align="center">
<template slot-scope="scope">
{{ scope.row.请款金额 }}
</template>
</el-table-column>
<el-table-column label="请款时间" width="100" align="center">
<template slot-scope="scope">
{{ scope.row.请款时间 }}
</template>
</el-table-column>
</el-table>
</el-card>
<el-dialog :visible.sync="dialogVisible1" title="供应商选择" center style="min-height: 300px">
<el-form ref="form1" :model="form1" label-position="left" label-width="90px" class="searchForm">
<el-row>
<el-col :span="12">
<el-form-item label="供应商名称">
<el-input v-model="supplierName" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业性质">
<el-input v-model="enterpriseNature" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="货期">
<el-input v-model="goodTime" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="注册资本">
<el-input v-model="registeredCapital" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="税号">
<el-input v-model="taxNum" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电子邮箱">
<el-input v-model="EMail" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="地址">
<el-input v-model="address" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="账号">
<el-input v-model="account" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="开户行">
<el-input v-model="openingBank" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电话号码">
<el-input v-model="phone" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="传真">
<el-input v-model="fax" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-button
type="success"
size="small"
icon="el-icon-search"
@click="searchSupplier">查询</el-button>
<el-button
:disabled="submitDisable"
type="primary"
size="small"
icon="el-icon-check"
@click="submitSelectSupplier">确定</el-button>
<el-button
type="danger"
size="small"
icon="el-icon-delete"
@click="emptySupplierDetail">清空</el-button>
</el-col>
</el-row>
<el-table :data="tableData01" size="mini" style="width: 97%;max-height: 300px;margin-top:15px" height="200px" border @row-click="showSupplierDetail">
<el-table-column align="center" label="供应商名称" width="200">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column align="center" label="企业性质">
<template slot-scope="scope">
{{ scope.row.企业性质 }}
</template>
</el-table-column>
<el-table-column align="center" label="创立日期">
<template slot-scope="scope">
{{ scope.row.创立日期 }}
</template>
</el-table-column>
<el-table-column align="center" label="注册资本">
<template slot-scope="scope">
{{ scope.row.注册资本 }}
</template>
</el-table-column>
</el-table>
</el-form>
</el-dialog>
<el-dialog :visible.sync="dialogVisible2" title="采购员选择" center style="min-height: 300px;" width="40%">
<el-table
:data="tableData02"
size="small"
border
style="width: 100%;min-height:300px"
height="300px"
highlight-current-row
@row-click="clickBuyer">
<el-table-column label="考勤编号" align="center">
<template slot-scope="scope">
{{ scope.row.考勤编号 }}
</template>
</el-table-column>
<el-table-column label="姓名" align="center">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="性别" align="center">
<template slot-scope="scope">
{{ scope.row.性别 }}
</template>
</el-table-column>
<el-table-column label="工作岗位" align="center">
<template slot-scope="scope">
{{ scope.row.岗位名称 }}
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button :disabled="submitDisable" type="primary" size="small" icon="el-icon-check" @click="submitSelectBuyer">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { searchSupplier, searchTable1, requestFund, searchCondition, cancelRequestFund, searchRequestTable, initBuyer } from '@/api/PurchasingCenter/BuyerRequestFund'
import { mapGetters } from 'vuex'
export default {
data() {
return {
tableData02: [],
dialogVisible2: false,
loading2: false,
tableData2: [],
tableData11: [],
total1: 0,
pageCurrent1: 1,
pageSize1: 10,
startDate: '',
endDate: '',
contractNum: '',
buyerName: '',
dialogVisible1: false,
submitDisable: true,
form1: {},
supplierValue: '',
supplierName: '',
enterpriseNature: '',
createDate: '',
registeredCapital: '',
taxNum: '',
EMail: '',
address: '',
account: '',
openingBank: '',
phone: '',
fax: '',
goodTime: '',
supplierCheck1: 0,
supplierCheck2: 0,
supplierCheck3: 0,
supplierCheck4: 0,
supplierCheck5: 0,
supplierCheck6: 0,
supplierCheck7: 0,
supplierCheck8: 0,
supplierCheck9: 0,
supplierCheck10: 0,
supplierCheck11: 0,
supplierCheck12: 0,
tableData01: [],
loading1: false,
tableData1: [],
check1: 0,
check2: 0,
check3: 0,
check4: 0,
startRequestDate: '',
endRequestDate: '',
checkRequest: 0
}
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'name',
'id'
])
},
methods: {
submitSelectBuyer() { // 确定
this.dialogVisible2 = false
},
clickBuyer(row) { // 点击采购员表某一行
this.submitDisable = false
this.buyerName = row.姓名
},
initBuyer() { // 初始化采购人员
initBuyer().then(response => {
this.tableData02 = response.data
})
},
searchSupplier() { // 查询创立日期和注册资本大于符合条件的数据
this.supplierName ? this.supplierCheck1 = 1 : (this.supplierCheck1 = 0, this.supplierName = '')
this.enterpriseNature ? this.supplierCheck2 = 1 : (this.supplierCheck2 = 0, this.enterpriseNature = '')
this.createDate ? this.supplierCheck3 = 1 : (this.supplierCheck3 = 0, this.createDate = '')
this.registeredCapital ? this.supplierCheck4 = 1 : (this.supplierCheck4 = 0, this.registeredCapital = '')
this.taxNum ? this.supplierCheck5 = 1 : (this.supplierCheck5 = 0, this.taxNum = '')
this.EMail ? this.supplierCheck6 = 1 : (this.supplierCheck6 = 0, this.EMail = '')
this.address ? this.supplierCheck7 = 1 : (this.supplierCheck7 = 0, this.address = '')
this.account ? this.supplierCheck8 = 1 : (this.supplierCheck8 = 0, this.account = '')
this.openingBank ? this.supplierCheck9 = 1 : (this.supplierCheck9 = 0, this.openingBank = '')
this.phone ? this.supplierCheck10 = 1 : (this.supplierCheck10 = 0, this.phone = '')
this.fax ? this.supplierCheck11 = 1 : (this.supplierCheck11 = 0, this.fax = '')
this.goodTime ? this.supplierCheck12 = 1 : (this.supplierCheck12 = 0, this.goodTime = '')
searchSupplier(this.supplierCheck1, this.supplierName, this.supplierCheck2, this.enterpriseNature, this.supplierCheck3, this.createDate, this.supplierCheck4, this.registeredCapital, this.supplierCheck5, this.taxNum, this.supplierCheck6, this.EMail, this.supplierCheck7, this.address, this.supplierCheck8, this.account, this.supplierCheck9, this.openingBank, this.supplierCheck10, this.phone, this.supplierCheck11, this.fax, this.supplierCheck12, this.goodTime).then(response => {
this.tableData01 = response.data
})
},
submitSelectSupplier() { // 确定选择供应商
this.dialogVisible1 = false
},
emptySupplierDetail() { // 清空
this.submitDisable = true
this.supplierValue = ''
this.supplierName = ''
this.enterpriseNature = ''
this.createDate = ''
this.registeredCapital = ''
this.taxNum = ''
this.EMail = ''
this.address = ''
this.account = ''
this.openingBank = ''
this.phone = ''
this.fax = ''
this.goodTime = ''
},
showSupplierDetail(row) { // 点击供应商表某一行
this.submitDisable = false
this.supplierValue = row.供应商流水号
this.supplierName = row.供应商名称
this.enterpriseNature = row.企业性质
this.createDate = row.创立日期
this.registeredCapital = row.注册资本
this.taxNum = row.税号
this.EMail = row.电子信箱
this.address = row.地址
this.account = row.帐号
this.openingBank = row.开户行
this.phone = row.电话号码
this.fax = row.传真
this.goodTime = row.货期
},
searchTable1() {
this.loading1 = true
this.tableData1 = []
this.startDate && this.endDate ? this.check1 = 1 : this.check1 = 0
this.contractNum ? this.check2 = 1 : this.check2 = 0
this.buyerName ? this.check3 = 1 : this.check3 = 0
this.supplierName ? this.check4 = 1 : this.check4 = 0
searchTable1(this.pageCurrent1, this.pageSize1, this.check1, this.startDate, this.endDate, this.check2, this.contractNum, this.check3, this.buyerName, this.check4, this.supplierName).then(response => {
for (let j = 0; j < response.data.rows.length; j++) {
if (response.data.rows[j].规定到货时间 !== null) {
response.data.rows[j].规定到货时间 = response.data.rows[j].规定到货时间.substring(0, response.data.rows[j].规定到货时间.indexOf(' '))
}
if (response.data.rows[j].实际到货时间 !== null) {
response.data.rows[j].实际到货时间 = response.data.rows[j].实际到货时间.substring(0, response.data.rows[j].实际到货时间.indexOf(' '))
}
this.tableData11[j] = []
searchCondition(response.data.rows[j].采购合同流水号).then(response0 => {
this.tableData1 = response.data.rows
this.total1 = response.data.total
for (let i = 0; i < response0.data.length; i++) {
if (response0.data[i].请款时间 !== null) {
response0.data[i].请款时间 = response0.data[i].请款时间.substring(0, response0.data[i].请款时间.indexOf(' '))
}
this.tableData11[j].push(response0.data[i])
}
})
}
}).then(() => {
this.loading1 = false
})
},
handleSizeChange1(val) {
this.pageCurrent1 = 1
this.pageSize1 = val
this.searchTable1()
},
handleCurrentChange1(val) {
this.pageCurrent1 = val
this.searchTable1()
},
requestFund(row) { // 请款
const day1 = new Date()
const day2 = day1.getFullYear() + '-' + (day1.getMonth() + 1) + '-' + day1.getDate()
requestFund(row.采购合同流水号, row.本次应请款, day2, this.id).then(response => {
if (response.data[0].result === '1') {
this.$message.success('请款成功')
this.searchTable1()
this.startRequestDate = ''
this.endRequestDate = ''
this.tableData2 = []
} else { this.$message.error('请款失败') }
})
},
cancelRequestFund(row) { // 取消请款
this.$confirm('确认取消请款吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
if (parseInt(row.采购科请款流水号) !== 1) {
cancelRequestFund(row.采购科请款流水号).then(response => {
if (response.data[0].result === '1') {
this.$message.success('操作成功')
this.searchTable1()
this.startRequestDate = ''
this.endRequestDate = ''
this.tableData2 = []
} else { this.$message.error('操作失败') }
})
} else {
this.$message.error('财务已经付款')
}
}).catch(() => {
this.$message({
type: 'info',
message: '已取消操作'
})
})
},
searchRequestTable() { // 查询请款表
this.loading2 = true
if (this.startRequestDate === '' || this.startRequestDate === null || this.endRequestDate === '' || this.endRequestDate === null) {
this.checkRequest = 0
} else { this.checkRequest = 1 }
searchRequestTable(this.checkRequest, this.startRequestDate, this.endRequestDate).then(response => {
for (let j = 0; j < response.data.length; j++) {
if (response.data[j].规定到货时间 !== null) {
response.data[j].规定到货时间 = response.data[j].规定到货时间.substring(0, response.data[j].规定到货时间.indexOf(' '))
}
if (response.data[j].实际到货时间 !== null) {
response.data[j].实际到货时间 = response.data[j].实际到货时间.substring(0, response.data[j].实际到货时间.indexOf(' '))
}
if (response.data[j].请款时间 !== null) {
response.data[j].请款时间 = response.data[j].请款时间.substring(0, response.data[j].请款时间.indexOf(' '))
}
}
this.tableData2 = response.data
this.loading2 = false
})
}
}
}
</script>
<style scoped>
.el-card{
margin-bottom: 15px;
}
.el-date-editor{
width:150px!important;
}
.el-select{
width:200px
}
.el-input{
width:200px
}
span{
margin: 10px 0 10px 10px;
}
.searchForm .el-form-item{
margin-bottom: 5px;
}
</style>

View File

@@ -0,0 +1,636 @@
<template>
<div class="app-container">
<el-row :gutter="20">
<el-col :span="12">
<el-card>
<el-row>
<span>时间段:</span>
<el-date-picker
v-model="startEndDate"
style="width:250px"
size="small"
type="daterange"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"/>
<span>合同号:</span>
<el-select v-model="contractNumValue" placeholder="合同号" size="small" filterable clearable>
<el-option
v-for="item in contractNum"
:key="item.value"
:label="item.label"
:value="item.value">
<div style="float: left">{{ item.label }}</div>
<div style="float: right; color: #8492a6; font-size: 13px">{{ item.name }}</div>
</el-option>
</el-select>
<span>采购员:</span>
<el-select v-model="personValue" placeholder="采购员" size="small" style="width: 100px">
<el-option
v-for="item in person"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-row>
<el-row>
<span>供应商:</span>
<el-input v-model="supplierName" placeholder="供应商" size="small" clearable style="width:180px"/>
<el-button
type="success"
size="small"
icon="el-icon-search"
style="margin-left:10px"
@click="total1=0;pageCurrent1=1;pageSize1=10;searchTable1()">查询新合同</el-button>
<span>变更原因:</span>
<el-input v-model="changeReason" placeholder="变更原因" size="small" clearable style="width:200px"/>
<el-button
type="primary"
size="small"
icon="el-icon-edit-outline"
style="margin-left:10px"
@click="contractChange">合同变更</el-button>
</el-row>
<el-table
v-loading="loading1"
:data="tableData1"
size="mini"
border
style="width: 100%;max-height: 250px;"
height="250px"
highlight-current-row
@row-click="searchTable2">
<el-table-column label="采购合同号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="采购合同名称" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.采购合同名称 }}
</template>
</el-table-column>
<el-table-column label="供应商" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column label="规定到货时间" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.规定到货时间.split(' ')[0] }}
</template>
</el-table-column>
<el-table-column label="采购员" align="center" min-width="70">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="总金额" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.总金额 }}
</template>
</el-table-column>
<el-table-column label="付款方式" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.付款方式内容 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" min-width="100" fixed="right">
<template slot-scope="scope">
<el-button type="danger" size="mini" icon="el-icon-delete" @click="deleteContract(scope.row)">作废</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin: 10px 0 10px 0;">
<el-pagination
:current-page="pageCurrent1"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize1"
:total="total1"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"/>
</div>
<el-card>
<table id="01" cellspacing="0px" align="center" border width="100%" style="">
<tr style="height: 40px">
<td colspan="1" align="center" style="font-weight: bold">GAOJING</td>
<td colspan="3" align="center" style="font-weight: bold">产品销售合同</td>
</tr>
<tr style="height: 40px">
<td colspan="1" align="center">需方</td>
<td colspan="1" align="center">江苏高精机电装备有限公司</td>
<td colspan="1" align="center">合同编号</td>
<td colspan="1" align="center">{{ contract01 }}</td>
</tr>
<tr style="height: 40px">
<td colspan="1" align="center">供方</td>
<td colspan="1" align="center">{{ supplier01 }}</td>
<td colspan="1" align="center">签订地点</td>
<td colspan="1" align="center">江苏盐城</td>
</tr>
</table>
<div> 产品名称型号数量单价品牌</div>
<table id="02" cellspacing="0px" align="center" border width="100%" style="">
<tbody id="04">
<tr id="tableHead01" style="height: 40px">
<td colspan="1" align="center">物料名称</td>
<td colspan="1" align="center">物料规格</td>
<td colspan="1" align="center">物料型号</td>
<td colspan="1" align="center">发货天数</td>
<td colspan="1" align="center">数量</td>
<td colspan="1" align="center">单价</td>
<td colspan="1" align="center">总价</td>
</tr>
</tbody>
<tfoot>
<tr style="height: 40px">
<td colspan="6">运费</td>
<td colspan="1" align="center">{{ freight01 }}</td>
</tr>
<tr style="height: 40px">
<td colspan="6">总价: (人民币){{ RMB01 }}(含0.17增值税) </td>
<td colspan="1" align="center">{{ TotalAmount01 }}</td>
</tr>
</tfoot>
</table>
<div id="textarea01"/>
</el-card>
</el-card>
</el-col>
<el-col :span="12">
<el-card>
<el-row>
<span>时间段:</span>
<el-date-picker
v-model="startEndDate3"
style="width:250px"
size="small"
type="daterange"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"/>
<span>合同号:</span>
<el-select v-model="contractNumValue3" placeholder="合同号" size="small" filterable clearable>
<el-option
v-for="item in contractNum3"
:key="item.value"
:label="item.label"
:value="item.value">
<div style="float: left">{{ item.label }}</div>
<div style="float: right; color: #8492a6; font-size: 13px">{{ item.name }}</div>
</el-option>
</el-select>
<span>采购员:</span>
<el-select v-model="personValue3" placeholder="采购员" size="small" style="width: 100px">
<el-option
v-for="item in person"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-row>
<el-row>
<span>供应商:</span>
<el-input v-model="supplierName3" placeholder="供应商" size="small" clearable style="width:180px"/>
<el-button
type="success"
size="small"
icon="el-icon-search"
style="margin-left:10px"
@click="total3=0;pageCurrent3=1;pageSize3=10;searchTable3()">查询旧合同</el-button>
</el-row>
<el-table
v-loading="loading3"
:data="tableData3"
size="mini"
border
style="width: 100%;max-height: 250px;"
height="250px"
highlight-current-row
@row-click="searchTable4">
<el-table-column label="采购合同号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="采购合同名称" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.采购合同名称 }}
</template>
</el-table-column>
<el-table-column label="供应商" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column label="规定到货时间" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.规定到货时间 }}
</template>
</el-table-column>
<el-table-column label="采购员" align="center" min-width="70">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="总金额" align="center" min-width="70">
<template slot-scope="scope">
{{ scope.row.总金额 }}
</template>
</el-table-column>
<el-table-column label="付款方式" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.付款方式内容 }}
</template>
</el-table-column>
<el-table-column label="更改标记" align="center" min-width="70">
<template slot-scope="scope">
{{ scope.row.更改标记 }}
</template>
</el-table-column>
<el-table-column label="合同变更原因" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.合同变更原因 }}
</template>
</el-table-column>
</el-table>
<div class="block" style="margin: 10px 0 10px 0;">
<el-pagination
:current-page="pageCurrent3"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize3"
:total="total3"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange3"
@current-change="handleCurrentChange3"/>
</div>
<el-card>
<table id="11" cellspacing="0px" align="center" border width="100%" style="">
<tr style="height: 40px">
<td colspan="1" align="center" style="font-weight: bold">GAOJING</td>
<td colspan="3" align="center" style="font-weight: bold">产品销售合同</td>
</tr>
<tr style="height: 40px">
<td colspan="1" align="center">需方</td>
<td colspan="1" align="center">江苏高精机电装备有限公司</td>
<td colspan="1" align="center">合同编号</td>
<td colspan="1" align="center">{{ contract02 }}</td>
</tr>
<tr style="height: 40px">
<td colspan="1" align="center">供方</td>
<td colspan="1" align="center">{{ supplier02 }}</td>
<td colspan="1" align="center">签订地点</td>
<td colspan="1" align="center">江苏盐城</td>
</tr>
</table>
<div> 产品名称型号数量单价品牌</div>
<table id="12" cellspacing="0px" align="center" border width="100%" style="">
<tbody id="14">
<tr id="tableHead02" style="height: 40px">
<td colspan="1" align="center">物料名称</td>
<td colspan="1" align="center">物料规格</td>
<td colspan="1" align="center">物料型号</td>
<td colspan="1" align="center">发货天数</td>
<td colspan="1" align="center">数量</td>
<td colspan="1" align="center">单价</td>
<td colspan="1" align="center">总价</td>
</tr>
</tbody>
<tfoot>
<tr style="height: 40px">
<td colspan="6">运费</td>
<td colspan="1" align="center">{{ freight02 }}</td>
</tr>
<tr style="height: 40px">
<td colspan="6">总价: (人民币){{ RMB02 }}(含0.17增值税) </td>
<td colspan="1" align="center">{{ TotalAmount02 }}</td>
</tr>
</tfoot>
</table>
<div id="textarea02"/>
</el-card>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
import { initContract, initBuyer, searchTable1, searchTable2, contractChange,
searchChangeContract, initChangeContract, searchTable4, initPayMethod, deleteContract } from '@/api/PurchasingCenter/ContractChange'
export default {
data() {
return {
returns01: [],
contract01: '',
supplier01: '',
freight01: '',
RMB01: '',
TotalAmount01: '',
textarea01: '',
returns02: [],
contract02: '',
supplier02: '',
freight02: '',
RMB02: '',
TotalAmount02: '',
textarea02: '',
check1: 0,
check2: 0,
check3: 0,
check4: 0,
startEndDate: '',
contractNumValue: '',
contractNum: [],
personValue: '',
person: [],
supplierName: '',
supplierValue: '',
total1: 0,
pageCurrent1: 1,
pageSize1: 10,
tableData1: [],
loading1: false,
tableData01: [],
tableData02: [],
submitDisable: true,
dialogVisible2: false,
changeReason: '',
contractValue: '', // 显示表2和变更合同用的变量
tableData3: [],
loading3: false,
total3: 0,
pageCurrent3: 1,
pageSize3: 10,
check31: 0,
check32: 0,
check33: 0,
check34: 0,
check35: 0,
check36: 0,
startEndDate3: '',
contractNumValue3: '',
supplierName3: '',
project3: '',
personValue3: '',
contractNum3: [],
payMethod: [],
payMethodValue: ''
}
},
created() {
this.fetchData()
},
methods: {
fetchData() {
this.contractNum = []
initContract().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.contractNum.push({
label: response.data[i].采购合同编号,
name: response.data[i].采购合同名称,
value: response.data[i].采购合同流水号
})
}
})
this.contractNum3 = []
initChangeContract().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.contractNum3.push({
label: response.data[i].采购合同编号,
name: response.data[i].采购合同名称,
value: response.data[i].采购合同流水号
})
}
})
this.payMethod = []
initPayMethod().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.payMethod.push({
label: response.data[i].付款方式内容,
value: response.data[i].付款方式流水号
})
}
})
this.person = []
initBuyer().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.person.push({
text: response.data[i].姓名,
label: response.data[i].姓名,
value: response.data[i].人员编号
})
}
})
},
searchTable1() {
this.textarea01 = ''
this.loading1 = true
if (this.startEndDate === '' || this.startEndDate === null || this.startEndDate[0] === '' || this.startEndDate[1] === '') {
this.check1 = 0
this.startEndDate = ''
} else { this.check1 = 1 }
this.contractNumValue ? this.check2 = 1 : this.check2 = 0
this.personValue ? this.check3 = 1 : this.check3 = 0
this.supplierName ? this.check4 = 1 : this.check4 = 0
searchTable1(this.pageCurrent1, this.pageSize1, this.check1, this.startEndDate[0], this.startEndDate[1], this.check2, this.contractNumValue, this.check3, this.personValue, this.check4, this.supplierName).then(response => {
this.loading1 = false
this.tableData1 = response.data.rows
this.total1 = response.data.total
})
},
handleSizeChange1(val) {
this.pageCurrent1 = 1
this.pageSize1 = val
this.searchTable1()
},
handleCurrentChange1(val) {
this.pageCurrent1 = val
this.searchTable1()
},
searchTable2(row) {
this.supplier01 = row.供应商名称
this.contract01 = row.采购合同编号
this.freight01 = parseFloat(row.总金额) - parseFloat(row.总金额_小计)
this.RMB01 = row.总金额_文本
this.TotalAmount01 = row.总金额
this.textarea01 = row.合同文本
document.getElementById('textarea01').innerText = this.textarea01
this.contractValue = parseInt(row.采购合同流水号)
searchTable2(this.contractValue).then(response => {
this.returns01 = response.data
const children = document.getElementsByClassName('tableData01')
const parent = document.getElementById('04')
if (children.length !== 0) {
for (let i = children.length - 1; i >= 0; i--) {
parent.removeChild(children[i])
}
}
const tr = []
for (let i = 0; i < this.returns01.length; i++) {
tr[i] = document.createElement('tr')
tr[i].setAttribute('class', 'tableData01')
tr[i].innerHTML = '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' +
'<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>'
document.getElementById('tableHead01').after(tr[i])
}
for (let j = 0; j < this.returns01.length; j++) {
document.getElementsByClassName('tableData01')[j].children[0].innerHTML = response.data[j].物料名称
document.getElementsByClassName('tableData01')[j].children[1].innerHTML = response.data[j].物料规格
document.getElementsByClassName('tableData01')[j].children[2].innerHTML = response.data[j].物料型号
document.getElementsByClassName('tableData01')[j].children[3].innerHTML = response.data[j].发货天数
document.getElementsByClassName('tableData01')[j].children[4].innerHTML = response.data[j].数量
document.getElementsByClassName('tableData01')[j].children[5].innerHTML = response.data[j].单价
document.getElementsByClassName('tableData01')[j].children[6].innerHTML = response.data[j].金额
}
})
},
contractChange() {
if (this.contractValue) {
contractChange(this.contractValue, this.changeReason).then(response => {
this.contractValue = ''
this.changeReason = ''
if (response.data[0].result === '1') {
this.$message.success('变更成功')
this.searchTable1()
this.contractNumValue = ''
this.contractNumValue3 = ''
this.fetchData()
} else { this.$message.error('变更失败') }
})
} else {
this.$message.error('请先选择合同')
}
},
searchTable3() {
this.textarea02 = ''
this.loading3 = true
if (this.startEndDate3 === '' || this.startEndDate3 === null || this.startEndDate3[0] === '' || this.startEndDate3[1] === '') {
this.check31 = 0
this.startEndDate3 = ''
} else { this.check31 = 1 }
this.contractNumValue3 ? this.check32 = 1 : this.check32 = 0
this.personValue3 ? this.check33 = 1 : this.check33 = 0
this.supplierName3 ? this.check34 = 1 : this.check34 = 0
this.project3 ? this.check35 = 1 : this.check35 = 0
this.payMethodValue ? this.check36 = 1 : this.check36 = 0
searchChangeContract(this.pageCurrent3, this.pageSize3, this.check31, this.startEndDate3[0], this.startEndDate3[1], this.check32, this.contractNumValue3, this.check33, this.personValue3, this.check34, this.supplierName3, this.check35, this.project3, this.check36, this.payMethodValue).then(response => {
this.loading3 = false
console.log(response.data)
for (let j = 0; j < response.data.rows.length; j++) {
if (response.data.rows[j].预到货时间 !== null) {
response.data.rows[j].预到货时间 = response.data.rows[j].预到货时间.substring(0, response.data.rows[j].预到货时间.indexOf(' '))
}
if (response.data.rows[j].规定到货时间 !== null) {
response.data.rows[j].规定到货时间 = response.data.rows[j].规定到货时间.substring(0, response.data.rows[j].规定到货时间.indexOf(' '))
}
if (response.data.rows[j].实际到货时间 !== null) {
response.data.rows[j].实际到货时间 = response.data.rows[j].实际到货时间.substring(0, response.data.rows[j].实际到货时间.indexOf(' '))
}
}
this.tableData3 = response.data.rows
this.total3 = response.data.total
})
},
handleSizeChange3(val) {
this.pageCurrent3 = 1
this.pageSize3 = val
this.searchTable3()
},
handleCurrentChange3(val) {
this.pageCurrent3 = val
this.searchTable3()
},
searchTable4(row) {
this.supplier02 = row.供应商名称
this.contract02 = row.采购合同编号
this.freight02 = parseFloat(row.运费)
this.RMB02 = row.总金额_文本
this.TotalAmount02 = row.总金额
this.textarea02 = row.合同文本
document.getElementById('textarea02').innerText = this.textarea02
this.contractValue = parseInt(row.采购合同变更流水号)
searchTable4(this.contractValue).then(response => {
this.returns02 = response.data
const children = document.getElementsByClassName('tableData02')
const parent = document.getElementById('14')
if (children.length !== 0) {
for (let i = children.length - 1; i >= 0; i--) {
parent.removeChild(children[i])
}
}
const tr = []
for (let i = 0; i < this.returns02.length; i++) {
tr[i] = document.createElement('tr')
tr[i].setAttribute('class', 'tableData02')
tr[i].innerHTML = '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' +
'<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>'
document.getElementById('tableHead02').after(tr[i])
}
for (let j = 0; j < this.returns02.length; j++) {
document.getElementsByClassName('tableData02')[j].children[0].innerHTML = response.data[j].物料名称
document.getElementsByClassName('tableData02')[j].children[1].innerHTML = response.data[j].物料规格
document.getElementsByClassName('tableData02')[j].children[2].innerHTML = response.data[j].物料型号
document.getElementsByClassName('tableData02')[j].children[3].innerHTML = response.data[j].发货天数
document.getElementsByClassName('tableData02')[j].children[4].innerHTML = response.data[j].数量
document.getElementsByClassName('tableData02')[j].children[5].innerHTML = response.data[j].单价
document.getElementsByClassName('tableData02')[j].children[6].innerHTML = response.data[j].金额
}
})
},
deleteContract(row) { // 合同作废
this.$confirm('确定作废该合同?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteContract(row.采购合同流水号).then(response => {
if (response.data[0].result === '1') {
this.$message.success('作废成功')
this.searchTable1()
this.contractNumValue = ''
this.contractNumValue3 = ''
this.fetchData()
} else { this.$message.error('作废失败') }
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消操作'
})
})
}
}
}
</script>
<style scoped>
.el-card{
margin-bottom: 15px;
}
.el-date-editor{
width:200px
}
.el-select{
width:200px
}
.el-input{
width:200px
}
span{
margin: 10px 0 10px 10px;
}
.searchForm .el-form-item{
margin-bottom: 5px;
}
.el-row{
margin-bottom: 10px;
}
</style>

View File

@@ -27,6 +27,15 @@
</div>
</el-card>
<specification-data ref="specificationData" :groups-names="groupsNames" :machine-names="machineNames" :project-name="projectName" @machineChange="machineChange"/>
<el-upload
class="upload-demo"
drag
action="http://localhost:8410/submit/uploadImg.ashx?InvoiceNum=1"
multiple>
<i class="el-icon-upload"/>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过500kb</div>
</el-upload>
</div>
</template>

View File

@@ -272,7 +272,8 @@ export default {
this.total = res.total
})
} else {
const type = this.groupName.indexOf('WG') ? 1 : 2
const type = this.groupName.indexOf('WG') > -1 ? 2 : 1
console.log(type)
this.loadingWB = true
purchasePartsData(this.groupValue, type, this.pageCurrentWB, this.pageSizeWB).then(response => {
this.loadingWB = false