Commit cd0fcb26 authored by jingnan's avatar jingnan 👀

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

parents 2b729934 d4d9bd7f
......@@ -102,6 +102,8 @@ export default {
return '待办任务'
} else if (obj.id === 'myMessage') {
return '我的消息'
} else if (obj.id === 'myTaskReceive' || obj.id === 'myCheckTaskReceive' || obj.id === 'myAirTaskReceive') {
return obj.path.title
}
}
},
......
......@@ -4,7 +4,7 @@
<sidebar class="sidebar-container" />
<div v-if="showNav" :class="{'fixed-header':fixedHeader}">
<navbar />
<div class="tag-box">
<div v-if="showTag" class="tag-box">
<tags-view />
</div>
</div>
......@@ -37,7 +37,8 @@ export default {
},
data: function() {
return {
noSidePage: []
noSidePage: [],
showTag: false
}
},
computed: {
......@@ -61,6 +62,7 @@ export default {
},
watch: {
'$route'(route) {
this.showTag = this.$route.query.showTag !== 'false'
// if (this.noSidePage.length && this.noSidePage.includes(route.name)) {
// this.handleClickOutside()
// } else {
......
export default {
props: {},
layoutConfigData: [
{
title: '高级组件配置',
data: [
{
key: 'linkageAttr',
title: '架次联动属性',
component: {
defaultValue: 'aircraftType',
name: 'el-input',
placeholder: '机型Key'
}
}
]
}
],
data() {
return {
}
},
created() {
},
computed: {
},
methods: {
}
}
......@@ -17,10 +17,14 @@
</div>
</template>
<script>
import config from './config'
import _get from 'lodash.get'
export default {
componentName: '供外出库架次',
name: 'GetSortiesSelect', // name写在组件的最前方,自定义组件为必填
name: 'GetOffrtSortiesSelect', // name写在组件的最前方,自定义组件为必填
components: {},
mixins: [config],
props: {
itemObj: {
type: Object,
......@@ -43,31 +47,25 @@ export default {
return {
options: [],
selVal: '',
disabledVal: false
disabledVal: false,
linkageValue: null
}
},
computed: {},
watch: {
'form.aircraftType': {
form: {
immediate: true,
deep: true,
handler(val, oldVal) {
if (val !== oldVal) {
const params = {
searchItems: {
items: [{ 'fieldName': 'aircraftTypeId', operator: 'EQ', value: val.split('+')[0] }],
operator: 'AND'
}
handler(val) {
if (val) {
if (!this.itemObj.linkageAttr) {
return
}
const _val = _get(this.form, this.itemObj.linkageAttr)
if (_val !== this.linkageValue) {
this.linkageValue = _val
this.getData(_val)
}
this.$api.searchApi('AircraftSorties', params).then(res => {
this.options = res.items.content.map(row => {
return {
value: row.id + '+' + row.defName,
label: row.defName
}
})
})
}
}
},
......@@ -94,6 +92,22 @@ export default {
// 初始化数据
},
methods: {
getData(val) {
const params = {
searchItems: {
items: [{ 'fieldName': 'aircraftTypeId', operator: 'EQ', value: val.split('+')[0] }],
operator: 'AND'
}
}
this.$api.searchApi('AircraftSorties', params).then(res => {
this.options = res.items.content.map(row => {
return {
value: row.id + '+' + row.defName,
label: row.defName
}
})
})
},
changeVal() {
this.$emit('input', this.selVal)
}
......
......@@ -76,6 +76,34 @@
</el-col>
</el-row>
<div v-else class="process-page-not">暂无数据</div>
<dl class="right-side">
<el-popover
v-model="visible"
placement="right"
width="230"
trigger="click"
popper-class="fuzzy-search-popper"
>
<div class="body">
<el-input v-model="aoName" size="mini" placeholder="AO号/名称" />
<footer>
<el-button size="mini" type="text" class="last-anchor" name="" @click="getTaskAcceptance()">查询</el-button>
</footer>
</div>
<dd slot="reference">
<i class="el-icon-search" />
<p>模糊搜索</p>
</dd>
</el-popover>
<dd @click="$parent.isShow = false">
<i class="icon iconfont el-icon-collection" />
<p>视图切换</p>
</dd>
<!-- <dd @click="$refs.TimeToSee.open()">
<span class="iconfont icon-view-mode" />
<p>工时查看</p>
</dd> -->
</dl>
</div>
</div>
</template>
......@@ -83,7 +111,6 @@
<script>
// import Dialog from './dialog'
// import TimeToSee from '@/views/mes/programExecutionManagement/assemblyPerform/components/TimeToSee/index'
// import $ from 'jquery'
import { post } from '@/utils/http'
export default {
name: 'TaskReceiveCard',
......@@ -139,6 +166,7 @@ export default {
},
data() {
return {
visible: false,
joExecutePlanStateData: [],
colorObj: {
1: '#6BA8E6',
......@@ -174,10 +202,6 @@ export default {
created() {
this.getJoExecutePlanState()
},
// mounted() {
// this.getTaskAcceptance()
// },
methods: {
routerAssemblyExecution(item) {
// if (!item.isOK) {
......@@ -227,12 +251,12 @@ export default {
{
'fieldName': 'extProcessPlan.serialNumber',
'operator': 'LIKE',
'value': ''
'value': this.aoName || ''
},
{
'fieldName': 'extProcessPlan.name',
'operator': 'LIKE',
'value': ''
'value': this.aoName || ''
}
],
'operator': 'OR'
......@@ -264,63 +288,59 @@ export default {
},
'searchItem': {
'fieldName': 'joExecuteOpPlan.status',
'operator': 'IN',
'value': [
'Yes',
'UnderTest'
]
'operator': this.$route.query.title === '装配任务' ? 'IN' : 'EQ',
'value': this.$route.query.title === '装配任务' ? ['Yes', 'UnderTest'] : this.$route.query.title === '检验任务' ? 'Yes' : 'UnderTest'
},
'operator': 'NEQ'
'operator': this.$route.query.title === '装配任务' ? 'NEQ' : 'EQ'
}
that.processLoading = true
post('/JoExecutePlan/getTaskAcceptance', param)
.then((res) => {
if (res && res.items) {
const operator = []
const inspector = []
console.log(res.items)
if (res.items) {
res.items.forEach(item => {
if (item.prodTask) {
item.operatPerson = []
item.inspectPerson = []
item.prodTask.forEach(element => {
if (element.subTypeName === 'CheckOut') {
inspector.push(element.extProcessSkillUser.dxUserInfo.name)
item.inspectPerson.push(element.extProcessSkillUser.dxUserInfo.name)
} else if (element.subTypeName === 'FitOut') {
operator.push(element.extProcessSkillUser.dxUserInfo.name)
item.operatPerson.push(element.extProcessSkillUser.dxUserInfo.name)
}
})
}
})
}
console.log(operator, inspector)
that.processData = res.items.map((p) => {
return {
id: p.id,
status: p.planState,
code: p.extProcessPlan.serialNumber,
sortie: p.extProcessPlan.sorties,
// percent:
// p.isOkOpPlan && p.allOpPlan ? p.isOkOpPlan / p.allOpPlan : 0,
operator: operator.join(' '),
percent:
p.isOkOpPlan && p.allOpPlan ? p.isOkOpPlan / p.allOpPlan : 0,
operator: p.operatPerson.join(' '),
priorCompletion: p.preIsAccomplish,
start: p.scheduledStart,
end: p.scheduledEnd,
inspector: inspector.join(' '),
task: p.extProcessPlan.materName,
inspector: p.inspectPerson.join(' '),
task: p.extProcessPlan.name,
gaceVersion: p.extProcessPlan.gaceVersion,
ready: p.extProcessPlan.fitRates,
// outStatus: p.outStatus,
// step: p.isOkOpPlan,
// countStep: p.allOpPlan,
outStatus: p.outStatus,
step: p.isOkOpPlan,
countStep: p.allOpPlan,
firstCheckFlag: p.extProcessPlan.firstCheckFlag,
// // 不合格产品
// isQualified: p.isQualified,
isExit: p.isExit
// isOK: p.isOK,
isQualified: p.isQualified,
isExit: p.isExit,
isOK: p.planVer === p.extProcessPlan.gaceVersion,
// // 例外放行
// isException: p.isException
isException: p.isException
}
})
this.visible = false
} else {
this.$message({
showClose: true,
......@@ -627,7 +647,7 @@ export default {
.right-side {
position: fixed;
right: 0px;
bottom: 0px;
bottom: 20px;
background-color: #fff;
text-align: center;
line-height: 29px;
......@@ -637,6 +657,9 @@ export default {
// overflow: auto;
// right: 6px;
// }
dd {
margin-inline-start:0;
}
dd.el-popover__reference {
padding: 10px;
font-size: 14px;
......
<!--
* @Author: ljm
* @Date: 2021-04-15
* @LastEditTime:
* @Description: 任务接收
* @FilePath: applications/dee-mes/src/viewsapplications/dee-mes/src/views/mes/programExecutionManagement/taskReceive/components/taskReceiveTable/index
-->
<template>
<section class="taskReceiveTable">
<div class="header">
......@@ -17,12 +10,12 @@
placeholder="请选择"
:loading="modelLoading"
clearable
@change="getAddRecursion"
@change="changeModel"
>
<el-option
v-for="item in modelData"
:key="item.id"
:label="item.resName"
:label="item.defName"
:value="item.id"
/>
</el-select>
......@@ -35,11 +28,12 @@
clearable
placeholder="请选择"
:loading="sortiesLoading"
@change="changeSorties"
>
<el-option
v-for="item in sortiesData"
:key="item.id"
:label="item.serialNo"
:label="item.defName"
:value="item.id"
/>
</el-select>
......@@ -79,9 +73,11 @@ export default {
data() {
return {
model: null,
modelName: null,
modelLoading: false,
modelData: [],
sorties: null,
sortiesName: null,
sortiesLoading: false,
sortiesData: [],
aoName: null
......@@ -92,20 +88,21 @@ export default {
this.getAddModel(true)
},
methods: {
changeModel() {
const model = this.modelData.find(r => r.id === this.model)
this.$set(this, 'modelName', model && model.defName || '')
this.getAddRecursion()
},
changeSorties() {
const sorties = this.sortiesData.find(r => r.id === this.sorties)
this.$set(this, 'sortiesName', sorties && sorties.defName || '')
this.getTableData()
},
/**
* 获取新增机型
*/
getAddModel(status) {
const param = {
indices: ['DxProcessProduct'],
sortItem: [
{
fieldName: 'modifyTime',
sortOrder: 'desc'
}
]
}
this.HttpRequest('/DxProcessProduct/find/recursion', param, 'post')
this.$api.searchApi('AircraftType', {})
.then((res) => {
this.modelData = []
if (res.items && res.items.content) {
......@@ -113,6 +110,7 @@ export default {
this.$nextTick(() => {
if (this.modelData.length) {
this.model = this.modelData[0].id
this.modelName = this.modelData[0].defName
this.getAddRecursion(status)
}
})
......@@ -141,61 +139,32 @@ export default {
this.sorties = null
}
const param = {
indices: ['DxProcessMaterialLot'],
openProps: [
{
name: 'dxProcessMaterial',
searchItems: {
items: [
{
fieldName: 'id',
operator: 'EQ',
value: this.model
}
],
operator: 'AND'
},
parentFilter: true
}
],
searchItems: {
items: [
{
fieldName: 'dxProcessPlanIdType',
operator: 'EQ',
value: 'DxProcessPlan'
}
],
items: [{ 'fieldName': 'aircraftTypeId', operator: 'EQ', value: this.model }],
operator: 'AND'
},
sortItem: [
{
fieldName: 'modifyTime',
sortOrder: 'desc'
}
]
}
}
this.HttpRequest('/DxProcessMaterialLot/find/recursion', param, 'post')
.then((res) => {
this.sortiesData = []
if (res) {
this.sortiesData = res && res.items && res.items.content
this.$nextTick(() => {
if (this.sortiesData.length) {
this.sorties = this.sortiesData[0].id
if (status) {
this.getTableData()
}
this.$api.searchApi('AircraftSorties', param).then((res) => {
this.sortiesData = []
if (res) {
this.sortiesData = res && res.items && res.items.content
this.$nextTick(() => {
if (this.sortiesData.length) {
this.sorties = this.sortiesData[0].id
this.sortiesName = this.sortiesData[0].defName
if (status) {
this.getTableData()
}
})
} else {
this.$message({
showClose: true,
message: res.message,
type: 'error'
})
}
})
}
})
} else {
this.$message({
showClose: true,
message: res.message,
type: 'error'
})
}
})
.catch((err) => console.error(err))
.finally(() => {
this.$nextTick(() => {
......
......@@ -5,17 +5,10 @@
v-loading="loading"
:data="tableData"
border
height="100%"
height="95%"
size="mini"
>
<el-table-column type="index" width="60" align="center" label="序号" />
<el-table-column
prop="dxProcessPlanAssemblyUnitNo"
label="装配单元"
min-width="120"
align="center"
show-overflow-tooltip
/>
<el-table-column
prop="serialNumber"
label="AO号"
......@@ -48,7 +41,6 @@
show-overflow-tooltip
>
<template slot-scope="scope">
<span style="color:red">{{ scope.row.operating.main }}</span>
<span>{{ scope.row.operating.vice }}</span>
</template>
</el-table-column>
......@@ -63,7 +55,7 @@
show-overflow-tooltip
/>
</el-table>
<!-- <el-pagination
<el-pagination
:current-page="tablePagination.currentPage"
:page-sizes="tablePagination.pageSizes"
:page-size="tablePagination.pageSize"
......@@ -71,10 +63,11 @@
:total="tablePagination.total"
@size-change="setPage"
@current-change="setPage($event, true)"
/> -->
/>
</section>
</template>
<script>
import { post } from '@/utils/http'
export default {
components: {},
data() {
......@@ -90,13 +83,6 @@ export default {
},
// 所有可动态配置的表格列
tableColums1: [
// {
// title: 'AO号',
// show: true,
// key: 'serialNumber',
// sortable: true,
// width: '120'
// },
{
title: 'AO名称',
show: true,
......@@ -161,51 +147,16 @@ export default {
}
},
created() {
Promise.all([this.getJoExecutePlanState(), this.getTableData()])
// this.getJoExecutePlanState()
},
mounted() {
// this.getTableData()
this.getJoExecutePlanState()
},
methods: {
/**
* 获取作业计划状态
*/
getJoExecutePlanState() {
const that = this
var param = {
pageFrom: 1,
pageSize: 100000,
searchItems: {
items: [
{ fieldName: 'dictState', operator: 'EQ', value: 'ENABLE' },
{
fieldName: 'dictCode',
operator: 'EQ',
value: 'JoExecutePlanState'
}
]
},
sortItem: [{ fieldName: 'dictSeq', sortOrder: 'asc' }]
}
this.HttpRequest('DictData/search', param, 'post')
.then((res) => {
if (res) {
if (res.items && res.items.content.length) {
that.joExecutePlanStateData = res.items.content
} else {
that.joExecutePlanStateData = []
}
} else {
this.$message({
showClose: true,
message: res.message,
type: 'error'
})
}
})
.catch((err) => console.error(err))
.finally(() => {})
this.$utils.getDicListByCode('PlanState').then(res => {
this.joExecutePlanStateData = res
})
},
/**
* 页码触发
......@@ -222,87 +173,112 @@ export default {
getTableData() {
const that = this
var param = {
indices: ['DxProcessPlan'],
pageFrom: that.tablePagination.currentPage,
pageSize: that.tablePagination.pageSize,
searchItems: {
items: [
{
fieldName: 'id',
operator: 'EQ',
value: localStorage.getItem('userId')
},
'searchItems': {
'children': [
{
fieldName: 'serialId',
operator: 'LIKE',
value: this.$parent.sorties
},
{
fieldName: 'aoName',
operator: 'LIKE',
value: this.$parent.aoName
'items': [
{
'fieldName': 'prodTask.extProcessSkillUser.dxUserInfoId',
'operator': 'EQ',
'value': 1626781927440
},
{
'fieldName': 'extProcessPlan.sorties',
'operator': 'EQ',
'value': this.$parent.sortiesName
},
{
'fieldName': 'extProcessPlan.planeType',
'operator': 'EQ',
'value': this.$parent.modelName
}
],
'operator': 'AND'
},
{
fieldName: 'isView',
operator: 'LIKE',
value: 'Y'
'items': [
{
'fieldName': 'extProcessPlan.serialNumber',
'operator': 'LIKE',
'value': this.$parent.aoName || ''
},
{
'fieldName': 'extProcessPlan.name',
'operator': 'LIKE',
'value': this.$parent.aoName || ''
}
],
'operator': 'OR'
}
],
operator: 'AND'
'items': [],
'operator': 'AND'
},
sortItem: [
'openProps': [
{
fieldName: 'modifyTime',
sortOrder: 'desc'
'name': 'extProcessPlan'
},
{
'name': 'prodTask',
'openProps': [
{
'name': 'extProcessSkillUser'
}
]
}
]
],
'sortItem': [
{
'fieldName': 'modifyTime',
'sortOrder': 'desc'
}
],
'toValidateKeys': ''
}
that.processLoading = true
this.HttpRequest('/JoExecutePlan/getTaskAcceptance', param, 'post')
post('/JoExecutePlan/getTaskAcceptanceToDo', param)
.then((res) => {
if (res && res.items) {
that.tableData = res.items.map((p) => {
var vice = (p.operating &&
p.operating.filter(t => t.userName !== p.masterOprName)
.map((q) => {
return q.userName
})
.join(',')) ||
''
if (res && res.items && res.items.content) {
that.tableData = res.items.content.map((p) => {
return {
id: p.id,
dxProcessPlanAssemblyUnitNo: p.dxProcessPlanAssemblyUnitNo,
serialNumber: p.ao.serialNumber,
materName: p.ao.materName,
// dxProcessPlanAssemblyUnitNo: p.wrProduction,
serialNumber: p.extProcessPlan.serialNumber,
materName: p.extProcessPlan.name,
isOK: p.isOK,
gaceVersion: p.ao.gaceVersion,
gaceVersion: p.extProcessPlan.gaceVersion,
scheduledStart: p.scheduledStart,
scheduledEnd: p.scheduledEnd,
allWorkHour: p.ao.countWorkHour,
allWorkHour: p.extProcessPlan.workHour,
operating: {
main: p.masterOprName || '',
vice: p.masterOprName && vice ? ', ' + vice : vice
vice: (p.prodTask &&
p.prodTask.filter(t => t.subTypeName === 'FitOut')
.map((q) => {
return q.extProcessSkillUser.dxUserInfo.name
})
.join(' '))
},
operatorUser:
(p.examines &&
p.examines
(p.prodTask &&
p.prodTask.filter(t => t.subTypeName === 'CheckOut')
.map((q) => {
return q.userName
return q.extProcessSkillUser.dxUserInfo.name
})
.join(',')) ||
'',
.join(' ')),
planStateCode:
(p.planStateCode &&
(p.planState &&
that.joExecutePlanStateData.filter(
(q) => q.dictKey === p.planStateCode
)[0].dictValue) ||
(q) => q.value === p.planState
)[0].label) ||
'',
percentage: (p.isOkOpPlan && p.allOpPlan
? Math.round((p.isOkOpPlan / p.allOpPlan) * 1000) / 10 : 0) +
'%'
}
})
that.tablePagination.total = res.items.total
that.tablePagination.total = res.items.totalElements
} else {
this.$message({
showClose: true,
......
<template>
<section class="taskReceive">
<!-- <IpadHeader /> -->
<TaskReceiveCard v-if="isShow" />
<TaskReceiveTable v-else />
</section>
</template>
<script>
// import IpadHeader from '../ipadHeader'
import TaskReceiveCard from './components/taskReceiveCard/index'
import TaskReceiveTable from './components/taskReceiveTable/index'
export default {
name: 'TaskReceive',
components: {
// IpadHeader,
TaskReceiveCard,
TaskReceiveTable
},
......
<template>
<div v-if="show&&module.total>0" class="my-custom-module" @click="goModule(module)">
<div v-if="show" class="my-custom-module" @click="goModule(module)">
<div class="custom-module-title">{{ module.name }}</div>
<div class="custom-module-content">
<div class="custom-module-content-item">
......@@ -78,10 +78,10 @@ export default {
async goModule(module) {
this.$router.push({
path: module.originRoute,
// meta: { disnav: false },
query: {
title: module.name,
showMenu: module.showMenu
showMenu: module.showMenu,
showTag: 'false'
}
})
this.$store.dispatch('menu/activeModel', {
......
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