Commit 316f229e authored by xioln's avatar xioln

库房流程提交

parent 5185ca3a
......@@ -40,23 +40,6 @@ export default {
// 初始化数据
},
methods: {
ddd(bindForm, currentComponent) {
if (bindForm.experimentAmount > bindForm.reqAmount) {
this.$utils.showMessageWarning('试验数量不能大于入库数量(' + bindForm.reqAmount + ')')
// throw ('试验数量不能大于入库数量(' + bindForm.reqAmount + ')')
}
var obj = {}
for (var key in bindForm) {
if (['reportNo', 'isDestroy', 'purchaseUnit', 'isPass', 'experimentAmount', 'objFileLinks'].includes(key)) {
obj[key] = bindForm[key]
}
}
console.log('bindForm', bindForm)
console.log('currentComponent', currentComponent)
obj.operator = 'MODIFY'
obj.subTypeName = 'JobResponseInExperment'
return obj
}
}
}
......
......@@ -9,7 +9,6 @@
<edit-purchase v-if="purchaseVis" :basic-data="basicData" />
<dee-as-com
v-else
ref="itemTable"
style="border:none;"
:lay-config="cmpOptions"
:basic-data="basicData"
......@@ -43,7 +42,6 @@ export default {
deep: true,
handler(val) {
if (val && val.subTypeName) {
console.log('v7765675al', val)
switch (val.subTypeName) {
case 'InStorageRecall':
this.cmpOptions = {
......@@ -70,8 +68,13 @@ export default {
},
created() {
// 初始化数据
this.$bus.$on('refreshPurchaseData', this.handleCustomEvent)
},
methods: {
handleCustomEvent() {
this.$emit('cancel')
this.$parent.$parent.$parent.$parent.getData()
}
}
}
</script>
......
......@@ -6,9 +6,9 @@
*/
<template>
<div class="jobResponseInTest-process">
<div v-if="!allDisabled" class="sub-title" style="padding-bottom: 12px;">
<!-- <div v-if="!allDisabled" class="sub-title" style="padding-bottom: 12px;">
物料检验详情
</div>
</div> -->
<equipmen-check-no v-if="type==='AirEquipment'" ref="AirEquipment" :basic-data="basicData" :job-response-in-test-data="data" />
<outSource-check-no v-if="type==='OutSource'" ref="OutSource" :basic-data="basicData" :job-response-in-test-data="data" />
<material-check-no v-if="type==='Material'" ref="Material" :basic-data="basicData" :job-response-in-test-data="data" />
......
......@@ -251,6 +251,11 @@ export default {
// },
// deep: true
// },
'form.airModel': {
handler: function(v) {
this.changeSorties()
}
}
},
created() {
// 初始化数据
......@@ -448,18 +453,20 @@ export default {
name: 'el-select',
placeholder: '请输入机型',
options: []
},
change: (v) => {
console.log('v', v)
this.changeSorties()
}
// handler: {
// change: (v) => this.changeSorties()
// }
},
{
title: '架次',
key: 'sorties',
component: {
clearable: true,
name: 'el-input',
placeholder: '请输入架次'
name: 'el-select',
placeholder: '请输入架次',
options: []
}
},
// { title: '采购数量/重量', key: 'purchaseAmount', component: { name: 'el-input-number', placeholder: '请输入采购数量/重量' }},
......@@ -765,19 +772,20 @@ export default {
name: 'el-select',
placeholder: '请输入机型',
options: []
},
change: (v) => {
console.log('v', v)
this.changeSorties()
}
// handler: {
// change: (v) => this.changeSorties()
// }
},
{
title: '架次',
key: 'sorties',
component: {
clearable: true,
name: 'el-input',
disabled: childrenAddOrEdit,
placeholder: '请输入架次'
name: 'el-select',
placeholder: '请输入架次',
options: []
}
},
{
......@@ -1144,19 +1152,22 @@ export default {
name: 'el-select',
placeholder: '请输入机型',
options: []
},
handler: {
change: (v) => {
console.log('v', v)
this.changeSorties()
}
}
// handler: {
// change: (v) => this.changeSorties()
// }
},
{
title: '架次',
key: 'sorties',
component: {
clearable: true,
name: 'el-input',
disabled: childrenAddOrEdit,
placeholder: '请输入架次'
name: 'el-select',
placeholder: '请输入架次',
options: []
}
},
{
......@@ -1649,6 +1660,7 @@ export default {
},
// 根据机型带出架次
changeSorties() {
console.log('13123123',)
const params = {
searchItems: {
'operator': 'AND',
......
......@@ -20,8 +20,11 @@
ref="treeTable"
:data="tableData"
:columns="columns"
:pagination="pagination"
:options="optionsTree"
:empty-content="emptyContent"
@pagination-size-change="changePageSize"
@pagination-current-change="changePageNum"
>
<div slot="header" class="table-title-wrap">
<dee-tools :tools="tools" mode="normal" />
......@@ -29,7 +32,7 @@
</dee-up-table>
<span style="position: absolute;top: calc(100% - 70px);left: calc(50% - 70px);}">
<el-button type="primary" class="searchBtn" @click="submit">确认</el-button>
<el-button type="primary" class="searchBtn" @click="back">取消</el-button>
<el-button type="primary" class="searchBtn" @click="cancel">取消</el-button>
</span>
<storage-details ref="storageDetailsCreatOrEdit" :basic-data="detailsPropData" @addTableData="addTableData" />
<import-file ref="importFile" :param="importParam" />
......@@ -159,6 +162,12 @@ export default {
}
}
],
pagination: {
currentPage: 1,
pageSize: 20,
total: 0,
pageSizes: [10, 20, 50, 100]
},
rules: {
billType: [
{
......@@ -268,7 +277,7 @@ export default {
icon: '/icons/toleft.png',
handler: {
click: () => {
that.back()
that.cancel()
}
}
}
......@@ -481,12 +490,7 @@ export default {
this.form.operator = 'ADD'
},
methods: {
back() {
// this.$store.dispatch('tagsView/delView', this.$route)
// this.$router.replace({
// path: '/page/86a5fa19-e245-4732-aff6-c48b18e2b5c7',
// query: { title: '采购入库', menuRootAppId: '1626781924331' }
// })
cancel() {
this.$emit('cancel')
this.$bus.$emit('refreshPurchaseData')
},
......@@ -619,8 +623,8 @@ export default {
searchInStorageRequestItem() {
const param = {
'rootCondition': {
'pageFrom': 1,
'pageSize': 10,
'pageFrom': this.pagination.currentPage,
'pageSize': this.pagination.pageSize,
'searchItems': {
'children': [
{
......@@ -723,6 +727,7 @@ export default {
item.component.disabled = true
})
}
this.pagination.total = data.length
this.treeTableNoArrange(data)
this.num = 1
......@@ -809,7 +814,7 @@ export default {
}
post('/InventoryRequest/batch/recursionAdd', param).then(res => {
this.$utils.showMessageSuccess('保存成功')
this.back()
this.cancel()
}).catch((err) => {
console.log(err)
})
......@@ -824,6 +829,15 @@ export default {
}
})
this.tableData = tableData
},
changePageSize(pageSize) {
this.pagination.pageSize = pageSize
this.pagination.currentPage = 1
this.searchInStorageRequestItem()
},
changePageNum(pageNum) {
this.pagination.currentPage = pageNum
this.searchInStorageRequestItem()
}
}
}
......
......@@ -6,17 +6,31 @@
*/
<template>
<div class="purchasingwarehousing-process">
<dee-as-com :lay-config="{ typeName: 'InStoragePurchase', layKey: 'flowView' }" :basic-data="{id:basicData.inventoryReqId}" />
<div class="form-row-title">查看明细</div>
<dee-up-table v-if="basicData.id" ref="treeTable" :data="tableData" :columns="columns" :options="optionsTree" />
<dee-as-com
:lay-config="{ typeName: 'InStoragePurchase', layKey: 'flowView_view' }"
:basic-data="{ id: basicData.inventoryReqId }"
/>
<div class="sub-title">
查看明细
</div>
<dee-up-table
v-if="basicData.id"
ref="treeTable"
:pagination="pagination"
:data="tableData"
:columns="columns"
:options="optionsTree"
@pagination-size-change="changePageSize"
@pagination-current-change="changePageNum"
/>
</div>
</template>
<script>
import { post } from '@/utils/http'
export default {
componentName: '验收入库申请流程详情',
name: 'PurchasingWarehousingProcess', // name写在组件的最前方,自定义组件为必填
// componentName: '验收入库申请流程详情只读',
name: 'PurchasingWarehousingProcessView', // name写在组件的最前方,自定义组件为必填
components: {}, // name写在组件的最前方,自定义组件为必填
props: {
basicData: {
......@@ -105,7 +119,13 @@ export default {
rowKey: 'id',
'tree-props': { children: 'children' }
},
timerId: null
timerId: null,
pagination: {
currentPage: 1,
pageSize: 20,
total: 0,
pageSizes: [10, 20, 50, 100]
}
}
},
computed: {},
......@@ -113,33 +133,31 @@ export default {
},
created() {
// 初始化数据
this.$bus.$on('refreshPurchaseData', this.handleCustomEvent)
},
mounted() {
if (this.basicData.subTypeName === 'InStoragePurchase') {
this.$nextTick(() => {
if (this.basicData.inStorageRequestItems[0]) {
this.searchInStorageRequestItem(this.basicData.inStorageRequestItems[0].inventoryReqId, 'inventoryReq.id')
}
})
} else {
this.searchInStorageRequestItem(this.basicData.id, 'id')
}
this.$nextTick(() => {
this.searchInStorageRequestItem()
})
},
methods: {
handleCustomEvent() {
this.searchInStorageRequestItem()
},
// 编辑采购入库明细查询InStorageRequestItem/search
searchInStorageRequestItem(id, fieldName) {
searchInStorageRequestItem() {
const param = {
'rootCondition': {
'pageFrom': 1,
'pageSize': 10,
'pageFrom': this.pagination.currentPage,
'pageSize': this.pagination.pageSize,
'searchItems': {
'children': [
{
'items': [
{
'fieldName': fieldName,
'fieldName': 'id',
'operator': 'EQ',
'value': id
'value': this.basicData.id
},
{
'fieldName': 'parentId',
......@@ -196,6 +214,7 @@ export default {
post('InStorageRequestItem/treeSearch', param).then(res => {
const data = res.items
this.treeTableNoArrange(data)
this.pagination.total = data.length
}).catch((err) => {
console.log(err)
})
......@@ -210,6 +229,15 @@ export default {
}
})
this.tableData = tableData
},
changePageSize(pageSize) {
this.pagination.pageSize = pageSize
this.pagination.currentPage = 1
this.searchInStorageRequestItem()
},
changePageNum(pageNum) {
this.pagination.currentPage = pageNum
this.searchInStorageRequestItem()
}
}
}
......
/**
* @Description:
* @author xioln
* @date 2023-09-19
* @FilePath: applications/dee-mes/src/privateComponents/components/PurchasingWarehousingProcess_view/component/editDrawer.vue
*/
<template>
<div class="className">
<dee-drawer
width="70%"
:title="title"
:dialog-visible="visibile"
@handleClose="onClose"
>
<dee-as-com
v-if="config"
:lay-config="config"
:basic-data="rowData"
/>
</dee-drawer>
</div>
</template>
<script>
export default {
name: 'EditDrawer', // name写在组件的最前方,自定义组件为必填
components: { },
props: {
basicData: {
type: Object,
default: () => null
}
},
data() {
return {
title: '编辑',
visibile: false,
config: null,
rowData: null
}
},
computed: {},
created() {
// 初始化数据
},
methods: {
onShow(row, config) {
this.config = config
this.rowData = row
this.visibile = true
},
onClose() {
this.visibile = false
}
}
}
</script>
<style lang='scss'>
</style>
......@@ -6,18 +6,34 @@
*/
<template>
<div class="purchasingwarehousing-process">
<dee-as-com :lay-config="{ typeName: 'InStoragePurchase', layKey: 'flowView_view' }" :basic-data="{id:basicData.inventoryReqId}" />
<div class="form-row-title">查看明细</div>
<dee-up-table v-if="basicData.id" ref="treeTable" :data="tableData" :columns="columns" :options="optionsTree" />
<dee-as-com
:lay-config="{ typeName: 'InStoragePurchase', layKey: 'flowView_view' }"
:basic-data="{ id: basicData.inventoryReqId }"
/>
<div class="sub-title">
查看明细
</div>
<dee-up-table
v-if="basicData.id"
ref="treeTable"
:pagination="pagination"
:data="tableData"
:columns="columns"
:options="optionsTree"
@pagination-size-change="changePageSize"
@pagination-current-change="changePageNum"
/>
<EditDrawer ref="editDrawer" :basic-data="basicData" />
</div>
</template>
<script>
import { post } from '@/utils/http'
import EditDrawer from './component/editDrawer.vue'
export default {
// componentName: '验收入库申请流程详情',
name: 'PurchasingWarehousingProcessView', // name写在组件的最前方,自定义组件为必填
components: {}, // name写在组件的最前方,自定义组件为必填
components: { EditDrawer }, // name写在组件的最前方,自定义组件为必填
props: {
basicData: {
type: Object,
......@@ -29,6 +45,34 @@ export default {
tableData: [],
columns: [
{ title: '序号', key: 'parentIndex', align: 'center', headerAlign: 'center' },
{ title: '操作', key: 'operate', align: 'center', component: {
show: true,
name: 'EditTableRow',
props: {
btns: [
{
operation: '理化编辑',
handleClick: (row, index) => {
this.$refs.editDrawer.onShow(row, { typeName: 'InStorageRequestItem', layKey: '1c4983a2-6f51-49e4-95ee-2f5506b8e217' })
},
icon: '/icons/b-inspection.png',
showFun: (row) => {
return row.subTypeName === 'InStoragePurchaseItem' && row.state === 'Check_Result_Maintain'
}
},
{
operation: '检验编辑',
handleClick: (row, index) => {
this.$refs.editDrawer.onShow(row, { typeName: 'InStorageRequestItem', layKey: '8341c909-b6b9-444f-b57f-d312c52fd783' })
},
icon: '/icons/b-inspection.png',
showFun: (row) => {
return row.subTypeName === 'InStoragePurchaseItem' && row.state === 'Material_Check'
}
}
]
}
}},
{ title: '单据编号', key: 'inventoryReq.reqNo', width: '120', align: 'center', headerAlign: 'center' },
{ title: '所属设备', key: 'subEquipment', headerAlign: 'center', align: 'center' },
{
......@@ -105,7 +149,13 @@ export default {
rowKey: 'id',
'tree-props': { children: 'children' }
},
timerId: null
timerId: null,
pagination: {
currentPage: 1,
pageSize: 20,
total: 0,
pageSizes: [10, 20, 50, 100]
}
}
},
computed: {},
......@@ -115,31 +165,25 @@ export default {
// 初始化数据
},
mounted() {
if (this.basicData.subTypeName === 'InStoragePurchase') {
this.$nextTick(() => {
if (this.basicData.inStorageRequestItems[0]) {
this.searchInStorageRequestItem(this.basicData.inStorageRequestItems[0].inventoryReqId, 'inventoryReq.id')
}
})
} else {
this.searchInStorageRequestItem(this.basicData.id, 'id')
}
this.$nextTick(() => {
this.searchInStorageRequestItem()
})
},
methods: {
// 编辑采购入库明细查询InStorageRequestItem/search
searchInStorageRequestItem(id, fieldName) {
searchInStorageRequestItem() {
const param = {
'rootCondition': {
'pageFrom': 1,
'pageSize': 10,
'pageFrom': this.pagination.currentPage,
'pageSize': this.pagination.pageSize,
'searchItems': {
'children': [
{
'items': [
{
'fieldName': fieldName,
'fieldName': 'id',
'operator': 'EQ',
'value': id
'value': this.basicData.id
},
{
'fieldName': 'parentId',
......@@ -182,7 +226,8 @@ export default {
},
{ 'name': 'extDxSipplier' },
{ 'name': 'storageZone' },
{ 'name': 'inventoryReq' }
{ 'name': 'inventoryReq' },
{ 'name': 'inventoryJobResponses' }
],
'sortItem': [
{
......@@ -196,6 +241,7 @@ export default {
post('InStorageRequestItem/treeSearch', param).then(res => {
const data = res.items
this.treeTableNoArrange(data)
this.pagination.total = data.length
}).catch((err) => {
console.log(err)
})
......@@ -210,6 +256,15 @@ export default {
}
})
this.tableData = tableData
},
changePageSize(pageSize) {
this.pagination.pageSize = pageSize
this.pagination.currentPage = 1
this.searchInStorageRequestItem()
},
changePageNum(pageNum) {
this.pagination.currentPage = pageNum
this.searchInStorageRequestItem()
}
}
}
......
<template>
<div class="purchasingwarehousing-view">
<dee-up-table
v-if="basicData.id"
ref="treeTable"
:pagination="pagination"
:data="tableData"
:columns="columns"
:options="optionsTree"
@pagination-size-change="changePageSize"
@pagination-current-change="changePageNum"
/>
</div>
</template>
<script>
import { post } from '@/utils/http'
export default {
// componentName: '验收入库申请流程详情只读',
name: 'PurchasingWarehousingView', // name写在组件的最前方,自定义组件为必填
components: {}, // name写在组件的最前方,自定义组件为必填
props: {
basicData: {
type: Object,
default: () => null
}
},
data() {
return {
tableData: [],
columns: [
{ title: '序号', key: 'parentIndex', align: 'center', headerAlign: 'center' },
{ title: '单据编号', key: 'inventoryReq.reqNo', width: '120', align: 'center', headerAlign: 'center' },
{ title: '所属设备', key: 'subEquipment', headerAlign: 'center', align: 'center' },
{
title: '物料类型', key: 'typeName', align: 'center', headerAlign: 'center', formatter: (row, column, cellValue, index) => {
const value = row.extMaterial ? row.extMaterial.resType2.typeName : row.materialTypeName
return value
}
},
{
title: '编码', key: 'typeCode', align: 'center', headerAlign: 'center', width: '100', formatter: (row, column, cellValue, index) => {
const value = row.resCode ? row.resCode : row.extMaterial ? row.extMaterial.resCode : ''
return value
}
},
{ title: '机型', key: 'airModel', align: 'center', headerAlign: 'center' },
{ title: '架次', key: 'sorties', align: 'center', headerAlign: 'center' },
{
title: '计量单位', key: 'unitName', align: 'center', headerAlign: 'center', formatter: (row, column, cellValue, index) => {
const value = row.reqUnit ? row.reqUnit : row.extMaterial ? row.extMaterial.extUnit.unitName : ''
return value
}
},
{ title: '入库数量', key: 'reqAmount', align: 'center', headerAlign: 'center' },
{
title: '供应商', key: 'supplierFullName', align: 'center', headerAlign: 'center', formatter: (row, column, cellValue, index) => {
const value = row.extDxSipplier ? row.extDxSipplier.supplierFullName : row.supplier
return value
}
},
// { title: '是否合格供应商', key: 'extDxSipplier.isValid', headerAlign: 'center' },
{ title: '制造商', key: 'manufacturer', align: 'center', headerAlign: 'center' },
{
title: '到货日期', key: 'arrivalDate', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.arrivalDate && row.arrivalDate.split(' ')[0]
}
},
{
title: '生产日期', key: 'producedTime', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.producedTime && row.producedTime.split(' ')[0]
}
},
{
title: '随产品资料', key: 'withProductMaterial', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return Array.isArray(row.withProductMaterial) ? row.withProductMaterial.join(';') : row.withProductMaterial
}
},
{
title: '紧急程度', key: 'urgency', align: 'center', headerAlign: 'center', formatter: (row, column, cellValue, index) => {
return row.urgency ? '紧急' : '正常'
}
},
{ title: '入库单价', key: 'stockUnitPrice', align: 'center', headerAlign: 'center' },
{ title: '入库金额', key: 'stockPrice', align: 'center', headerAlign: 'center' },
{ title: '含税单价', key: 'taxUnitPrice', align: 'center', headerAlign: 'center' },
{ title: '含税金额', key: 'taxPrice', align: 'center', headerAlign: 'center' },
{ title: '税率', key: 'taxRate', align: 'center', headerAlign: 'center' },
{ title: '报检人', key: 'applyUserName', align: 'center', headerAlign: 'center' },
{
title: '接受仓库', key: 'extname', align: 'center', headerAlign: 'center', formatter: (row, column, cellValue, index) => {
const value = row.storageZone ? row.storageZone.extname : row.storageZoneName
return value
}
},
{ title: '合同号', key: 'contractNo', align: 'center', headerAlign: 'center' },
{ title: '备注', key: 'remark', align: 'center', headerAlign: 'center' },
{ title: '状态', key: 'state', align: 'center', headerAlign: 'center' },
{
title: '创建时间', key: 'createTime', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.createTime && row.createTime.split(' ')[0]
}
}
],
optionsTree: {
rowKey: 'id',
'tree-props': { children: 'children' }
},
timerId: null,
pagination: {
currentPage: 1,
pageSize: 20,
total: 0,
pageSizes: [10, 20, 50, 100]
}
}
},
computed: {},
watch: {
},
created() {
// 初始化数据
},
mounted() {
this.$nextTick(() => {
console.log('basicData', this.basicData)
if (this.basicData) { this.searchInStorageRequestItem() }
})
},
methods: {
handleCustomEvent() {
this.searchInStorageRequestItem()
},
// 编辑采购入库明细查询InStorageRequestItem/search
searchInStorageRequestItem() {
const param = {
'rootCondition': {
'pageFrom': this.pagination.currentPage,
'pageSize': this.pagination.pageSize,
'searchItems': {
'children': [
{
'items': [
{
'fieldName': 'inventoryReqId',
'operator': 'EQ',
'value': this.basicData.id
},
{
'fieldName': 'parentId',
'operator': 'ISNULL'
}
],
'operator': 'AND'
}
],
'items': [
]
},
'openProps': [{ 'name': 'extMaterial', 'openProps': [{ 'name': 'resType2' }, { 'name': 'extUnit' }] }, { 'name': 'extDxSipplier' }, { 'name': 'storageZone' }, { 'name': 'inventoryReq' }],
'sortItem': [
{
'fieldName': 'modifyTime',
'sortOrder': 'desc'
}
]
},
'childCondition': {
'pageFrom': 1,
'pageSize': 9999,
'searchItems': {
'children': [
],
'items': [
]
},
'openProps': [
{
'name': 'extMaterial',
'openProps': [
{ 'name': 'resType2' },
{ 'name': 'extUnit' }
]
},
{ 'name': 'extDxSipplier' },
{ 'name': 'storageZone' },
{ 'name': 'inventoryReq' }
],
'sortItem': [
{
'fieldName': 'modifyTime',
'sortOrder': 'desc'
}
]
}
}
post('InStorageRequestItem/treeSearch', param).then(res => {
const data = res.items
this.treeTableNoArrange(data)
this.pagination.total = data.length
}).catch((err) => {
console.log(err)
})
},
treeTableNoArrange(tableData) {
tableData.forEach((item, i) => {
item.parentIndex = i + 1
if (item.children) {
item.children.forEach((child, j) => {
child.parentIndex = item.parentIndex + '.' + (j + 1)
})
}
})
this.tableData = tableData
},
changePageSize(pageSize) {
this.pagination.pageSize = pageSize
this.pagination.currentPage = 1
this.searchInStorageRequestItem()
},
changePageNum(pageNum) {
this.pagination.currentPage = pageNum
this.searchInStorageRequestItem()
}
}
}
</script>
<style lang='scss'>
.purchasingwarehousing-process {
.form-row-title {
padding-left: 10px;
line-height: 32px;
font-size: 14px;
font-weight: 700;
color: #3590BE;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment