Commit ae4593be authored by jingnan's avatar jingnan 👀

Merge branch 'dev' of http://94.191.100.41/tfmom/tf-mom-web into dev

parents 7a81afb5 06ea74d7
...@@ -37,7 +37,6 @@ export default { ...@@ -37,7 +37,6 @@ export default {
.forEach(l => { .forEach(l => {
if (l.isCritical) { if (l.isCritical) {
l.isCritical = false l.isCritical = false
this.gantt.updateLink(l.id)
this.modifyLink(l, 'MODIFY') this.modifyLink(l, 'MODIFY')
} }
}) })
...@@ -46,7 +45,6 @@ export default { ...@@ -46,7 +45,6 @@ export default {
.forEach(l => { .forEach(l => {
if (!l.isCritical) { if (!l.isCritical) {
l.isCritical = true l.isCritical = true
this.gantt.updateLink(l.id)
this.modifyLink(l, 'MODIFY') this.modifyLink(l, 'MODIFY')
} }
}) })
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
import config from './config' import config from './config'
import data from './data' import data from './data'
import CsvExportor from 'csv-exportor' import CsvExportor from 'csv-exportor'
import moment from 'moment'
export default { export default {
name: 'TfMomWebStep', name: 'TfMomWebStep',
mixins: [config, data], mixins: [config, data],
...@@ -259,25 +260,27 @@ export default { ...@@ -259,25 +260,27 @@ export default {
links: [] links: []
} }
val.forEach((item, index) => { val.forEach((item, index) => {
const link = item.extProcessExecutorRoutes && item.extProcessExecutorRoutes[0] const links = item.extProcessExecutorRoutes
params.data.push({ params.data.push({
index: index + 1, index: index + 1,
text: item.serialNumber, text: item.serialNumber,
id: item.id, id: item.id,
parenId: link && link.prevNodeId || '', parenId: '',
start_date: '2007-1-1', start_date: '2007-1-1',
type: 'task', type: 'task',
duration: item.workHour ? Number(item.workHour / 8) : 0 duration: item.workHour ? Number(item.workHour / 8) : 0
}) })
if (link) { if (links) {
params.links.push({ links.forEach(link => {
cid: link.id, params.links.push({
tid: link.currNodeId, cid: link.id,
source: link.prevNodeId, tid: link.currNodeId,
target: link.currNodeId, source: link.prevNodeId,
type: '0', target: link.currNodeId,
isCritical: link.isCritical type: '0',
isCritical: link.isCritical
})
}) })
} }
}) })
...@@ -325,6 +328,30 @@ export default { ...@@ -325,6 +328,30 @@ export default {
const header = ['节点', '站位号', '工期(天)', '前置'] const header = ['节点', '站位号', '工期(天)', '前置']
CsvExportor.downloadCsv(tableData, { header }, '站位路线.csv') CsvExportor.downloadCsv(tableData, { header }, '站位路线.csv')
}, },
calcCosthours(links, tasks) {
links.forEach(link => {
const cosLinks = links.filter(l => Number(l.target) === Number(link.target))
if (cosLinks.length === 1) {
return true
}
const peerTask = cosLinks.map(l => {
const task = tasks.find(t => t.id === Number(l.source))
return {
linkId: l.id,
end_date: task && task.end_date
}
}).sort((a, b) => a.end_date - b.end_date)
const lastDay = moment(peerTask[0].end_date)
peerTask.forEach(l => {
let costHours = lastDay.diff(moment(l.end_date), 'day')
costHours = Number(costHours) * 8
const link = links.find(r => r.id === l.linkId)
if (link) {
link.costHours = costHours
}
})
})
},
save() { save() {
if (this.loading) { if (this.loading) {
return return
...@@ -335,6 +362,7 @@ export default { ...@@ -335,6 +362,7 @@ export default {
links.forEach(l => { links.forEach(l => {
l.isCritical = this.gantt.isCriticalLink(l) l.isCritical = this.gantt.isCriticalLink(l)
}) })
this.calcCosthours(links, tasks)
const params = this.ganttData.map(item => { const params = this.ganttData.map(item => {
const routes = item.extProcessExecutorRoutes ? item.extProcessExecutorRoutes.map(r => { const routes = item.extProcessExecutorRoutes ? item.extProcessExecutorRoutes.map(r => {
return { return {
...@@ -343,8 +371,8 @@ export default { ...@@ -343,8 +371,8 @@ export default {
} }
}) : [] }) : []
const task = tasks.find(r => r.id === item.id) const task = tasks.find(r => r.id === item.id)
const link = links.find(r => Number(r.target) === item.id) const _links = links.filter(r => Number(r.target) === item.id)
if (link) { _links.forEach(link => {
routes.push({ routes.push({
operator: 'ADD', operator: 'ADD',
subTypeName: 'ExtProcessExecutorRoute', subTypeName: 'ExtProcessExecutorRoute',
...@@ -352,9 +380,10 @@ export default { ...@@ -352,9 +380,10 @@ export default {
currNodeIdType: 'ExtPosition', currNodeIdType: 'ExtPosition',
currNodeId: Number(link.target), currNodeId: Number(link.target),
prevNodeId: Number(link.source), prevNodeId: Number(link.source),
costHours: link.costHours,
isCritical: link.isCritical isCritical: link.isCritical
}) })
} })
return { return {
id: item.id, id: item.id,
......
...@@ -102,8 +102,12 @@ export default { ...@@ -102,8 +102,12 @@ export default {
return (Number(workHour || 0) * 3 * 60) || 0.01 return (Number(workHour || 0) * 3 * 60) || 0.01
}, },
addLink(item) { addLink(item) {
const link = item.extProcessExecutorRoutes && item.extProcessExecutorRoutes[0] const links = item.extProcessExecutorRoutes
link && this.params.links.push(this.toLink(link)) if (links) {
links.forEach(link => {
this.params.links.push(this.toLink(link))
})
}
}, },
toLink(l) { toLink(l) {
return { return {
......
...@@ -93,8 +93,12 @@ export default { ...@@ -93,8 +93,12 @@ export default {
return (Number(workHour || 0) * 3 * 60) || 0.01 return (Number(workHour || 0) * 3 * 60) || 0.01
}, },
addLink(item) { addLink(item) {
const link = item.extProcessExecutorRoutes && item.extProcessExecutorRoutes[0] const links = item.extProcessExecutorRoutes
link && this.params.links.push(this.toLink(link)) if (links) {
links.forEach(link => {
this.params.links.push(this.toLink(link))
})
}
}, },
toLink(l) { toLink(l) {
return { return {
......
<template> <template>
<div> <div>
<DeeAsCom <DeeAsCom
v-if="basicData"
ref="list"
:basic-data="basicData"
:lay-config="{
typeName: 'OutStorageExpire',
layKey: 'flowTable'
}"
@tb-printCode="tbPrintCode"
/>
<!-- <DeeAsCom
v-if="basicData" v-if="basicData"
ref="list" ref="list"
:basic-data="basicData" :basic-data="basicData"
...@@ -9,7 +19,7 @@ ...@@ -9,7 +19,7 @@
layKey: 'OutStorageExpireFlow' layKey: 'OutStorageExpireFlow'
}" }"
@tb-printCode="tbPrintCode" @tb-printCode="tbPrintCode"
/> /> -->
<PrintTag ref="print" :config="printConfig" /> <PrintTag ref="print" :config="printConfig" />
</div> </div>
</template> </template>
...@@ -32,13 +42,25 @@ export default { ...@@ -32,13 +42,25 @@ export default {
printConfig: { printConfig: {
visible: false, visible: false,
width: 300, width: 300,
prints: [] prints: [],
dic: []
} }
} }
}, },
mounted() { mounted() {
this.$utils.getDicListByCode('ObjStatus').then(res => {
this.dic = res
})
// defaultQueryParams = [{
// items: [{
// 'fieldName': 'id',
// 'operator': 'EQ',
// 'value': obtainedParams.basicData.id
// }],
// operator: 'AND'
// }]
}, },
methods: { methods: {
...@@ -50,24 +72,30 @@ export default { ...@@ -50,24 +72,30 @@ export default {
this.printConfig = Object.assign({}, this.printConfig, { this.printConfig = Object.assign({}, this.printConfig, {
visible: true visible: true
}) })
const state = this.dic.find(item => item.value === row.state)
this.printConfig.prints.push({ this.printConfig.prints.push({
text: row.id, text: row.id,
propertys: [ propertys: [
{ label: '编码', value: row.extMaterial.resCode }, { label: '状态', value: state ? state.label : row.state },
{ label: '名称', value: row.extMaterial.resName }, { label: '申请单编号', value: row.reqNo },
{ label: '型号/牌号/件号', value: row.extMaterial.modelNo }, { label: '申请依据', value: row.reqBill },
{ label: '规格', value: row.extMaterial.spec }, { label: '申请部门', value: row.reqDept },
{ label: '批号', value: row.lotNo }, { label: '创建人', value: row.creator.userName },
{ label: '系列号/序列号', value: row.serialNo }, { label: '创建时间', value: row.createTime }
{ label: '机型', value: row.airModel }, // { label: '名称', value: row.extMaterial.resName },
{ label: '验收单号', value: row.purchaseOrderNo }, // { label: '型号/牌号/件号', value: row.extMaterial.modelNo },
{ label: '保证保管期', value: '' }, // { label: '规格', value: row.extMaterial.spec },
{ label: '出库数量', value: row.reqAmount }, // { label: '批号', value: row.lotNo },
{ label: '贮存期', value: '' }, // { label: '系列号/序列号', value: row.serialNo },
{ label: '库位号', value: '' }, // { label: '机型', value: row.airModel },
{ label: '计量单位', value: row.extMaterial.extUnit.unitName }, // { label: '验收单号', value: row.purchaseOrderNo },
{ label: 'AO号', value: '' }, // { label: '保证保管期', value: '' },
{ label: '备注', value: row.remark || '' } // { label: '出库数量', value: row.reqAmount },
// { label: '贮存期', value: '' },
// { label: '库位号', value: '' },
// { label: '计量单位', value: row.extMaterial.extUnit.unitName },
// { label: 'AO号', value: '' },
// { label: '备注', value: row.remark || '' }
] ]
}) })
}) })
......
...@@ -311,7 +311,7 @@ export default { ...@@ -311,7 +311,7 @@ export default {
if (!this.header) return if (!this.header) return
this.$set(this.form, 'supplier', this.header.supplierFullName.label || '') this.$set(this.form, 'supplier', this.header.supplierFullName.label || '')
this.$set(this.form, 'arrivalDate', this.header.arrivalDate) this.$set(this.form, 'arrivalDate', this.header.arrivalDate)
const childrenAddOrEdit = this.operateType === 'ADD' || (this.operateType === 'MODIFY' && !this.form.isRoot) const childrenAddOrEdit = this.header.materialTypeName.label === '外购成品' && (this.operateType === 'ADD' || (this.operateType === 'MODIFY' && !this.form.isRoot))
switch (this.header.billType) { switch (this.header.billType) {
case '器材': case '器材':
case 'Material': case 'Material':
......
...@@ -548,6 +548,7 @@ export default { ...@@ -548,6 +548,7 @@ export default {
if (targetItem) { if (targetItem) {
targetItem.component.options = res.items.content.map(row => ({ value: row.id, label: row.typeName })) targetItem.component.options = res.items.content.map(row => ({ value: row.id, label: row.typeName }))
} }
this.form.materialTypeId = ''
}).catch((err) => { }).catch((err) => {
console.log(err) console.log(err)
}) })
......
...@@ -43,9 +43,8 @@ export default { ...@@ -43,9 +43,8 @@ export default {
.assembly-plan-maintenance-page{ .assembly-plan-maintenance-page{
margin: 4px; margin: 4px;
margin-top: 0px; margin-top: 0px;
padding: 8px; height: calc(100% - 4px);
height: calc(100% - 20px); width: calc(100% - 8px);
width: calc(100% - 24px);
background-color: #fff; background-color: #fff;
} }
</style> </style>
<template> <template>
<div> <div class="assembly-plan-maintenance-search-model">
search <div class="search-box box">
<div class="title">
<i class="search-icon" /><span>搜索</span>
</div>
<div class="row">
<label>机型:</label>
<el-select size="mini" />
</div>
<div class="row">
<label>场次:</label>
<el-select size="mini" />
</div>
<div class="row">
<label>状态:</label>
<el-select size="mini" />
</div>
<div class="row">
<el-button size="mini" type="primary">查询</el-button>
</div>
</div>
<div class="sorties-box box">
sorties
</div>
<div class="station-box box">
station
</div>
</div> </div>
</template> </template>
...@@ -24,6 +49,47 @@ export default { ...@@ -24,6 +49,47 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss">
.assembly-plan-maintenance-search-model{
height: 100%;
padding: 4px;
box-sizing: border-box;
display: flex;
flex-flow: column;
justify-content: space-around;
.search-box{
.title{
margin-left: 10px;
text-align: left;
margin-top: 10px;
}
.search-icon{
display: inline-block;
width: 21px;
height: 21px;
background: url(/icons/r-access.png) no-repeat;
background-size: contain;
vertical-align: middle;
}
label{
margin-right: 6px;
display: inline-block;
}
.el-select{
width: calc(100% - 60px);
}
.row{
line-height: 40px;
height: 40px;
text-align: center;
}
font-size:14px;
}
.box {
margin: 4px;
border: 1px solid #d8d8d8;
border-radius:8px ;
padding: 4px;;
}
}
</style> </style>
...@@ -114,20 +114,19 @@ export default { ...@@ -114,20 +114,19 @@ export default {
'<br><b>问题状态:</b> ' + task.problemStatus '<br><b>问题状态:</b> ' + task.problemStatus
return html return html
} else { } else {
const row = that.tooltipData[task.tooltipId]
html = html =
'<b>操作者:</b> ' + // '<b>操作者:</b> ' +
(row && row.creator && row.creator.userName // (row && row.creator && row.creator.userName
? row.creator.userName // ? row.creator.userName
: '') + // : '') +
'<br><b>检验员:</b> ' + // '<br><b>检验员:</b> ' +
(row && row.testor && row.testor.userName // (row && row.testor && row.testor.userName
? row.testor.userName // ? row.testor.userName
: '') + // : '') +
'<br><b>实际开始:</b> ' + // '<br><b>实际开始:</b> ' +
(row && row.actualStart ? row.actualStart : '') + // (row && row.actualStart ? row.actualStart : '') +
'<br><b>实际完成:</b> ' + // '<br><b>实际完成:</b> ' +
(row && row.actualEnd ? row.actualEnd : '') + // (row && row.actualEnd ? row.actualEnd : '') +
'<br><b>站位/装配单元:</b> ' + '<br><b>站位/装配单元:</b> ' +
task.text + task.text +
'<br><b>工期:</b> ' + '<br><b>工期:</b> ' +
...@@ -259,7 +258,7 @@ export default { ...@@ -259,7 +258,7 @@ export default {
'</div>' '</div>'
) )
} else { } else {
const state = that.planStateOptions.find(r => r.value === task.status) const state = that.stateOptions.find(r => r.value === task.status)
return ( return (
"<div class='ao color " + "<div class='ao color " +
task.status + task.status +
...@@ -400,9 +399,11 @@ export default { ...@@ -400,9 +399,11 @@ export default {
} }
data.forEach(p => { data.forEach(p => {
this.addwrProduction(p, params) this.addwrProduction(p, params)
this.addLink(p, params)
if (p.aoPlans) { if (p.aoPlans) {
p.aoPlans.forEach(t => { p.aoPlans.forEach(t => {
this.addAO(p, t, params) this.addAO(p, t, params)
this.addLink(t, params)
}) })
} }
}) })
...@@ -462,6 +463,24 @@ export default { ...@@ -462,6 +463,24 @@ export default {
60 60
} }
}, },
addLink(item, params) {
const links = item.extProcessExecutorRoutes
if (links) {
links.forEach(link => {
params.links.push(this.toLink(link))
})
}
},
toLink(l) {
return {
cid: l.id,
tid: l.currNodeId,
source: l.prevNodeId,
target: l.currNodeId,
type: '0',
isCritical: l.isCritical
}
},
addAO(m, p, params) { addAO(m, p, params) {
if (p.joExecutePlan && p.joExecutePlan[0]) { if (p.joExecutePlan && p.joExecutePlan[0]) {
params.data.push(this.toAO(m, p)) params.data.push(this.toAO(m, p))
......
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