Commit 70458417 authored by jingnan's avatar jingnan 👀

配套出库申请批量前身界面开发及配套审核及确认左侧界面增加字段

parent 97fb88f3
<template>
<div class="outStorageMatchApplyLeft" style="padding-right: 15px; height: 100%; overflow: scroll;">
<!-- 搜索 -->
<el-form
ref="form"
:model="form"
size="small"
label-width="68px"
>
<el-form-item label="架次">
<el-input
v-model="form.sorties"
clearable
type="input"
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="AO号">
<el-input
v-model="form.serialNumber"
clearable
type="input"
placeholder="请输入"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="searchForm()">查询</el-button>
<el-button @click="resetForm()">重置</el-button>
</el-form-item>
</el-form>
<!-- 分类展示 -->
<el-collapse
v-model="collapse.active"
v-loading="loading"
accordion
>
<el-collapse-item
v-for="(request, index) in requests"
:key="index"
:name="(index + 1).toString()"
>
<template slot="title">
<section class="collapse-title">| {{ request.name }}{{ request.lists.length }}</section>
</template>
<ul v-if="request.lists.length">
<template>
<li
v-for="(item, subIndex) in request.lists"
:key="item.id"
class="blue"
:class="{active: subIndex === active,'active-background':item.activeBackground}"
@click="currentAoClick(item,subIndex)"
>
<i class="el-icon-document" />
{{ item.sorties }} ,{{ item.serialNumber || '暂无' }},
{{ item.plannerName }},
{{ item.startTime }}
</li>
</template>
</ul>
<span v-else class="empty">暂无数据</span>
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import { post } from '@/utils/http'
export default {
name: 'OutStorageMatchApplyLeft',
components: {
},
props: {
selectData: {
type: Object,
default: () => {}
}
},
data() {
return {
loading: false,
// 搜索表单
form: {
reqNo: '',
reqBill: '',
ao: '',
resCode: '',
modelNo: ''
},
// 手风琴默认高亮
active: 0,
// 手风琴组件
collapse: {
active: ['1']
},
// 申请列表
requests: [
{ name: '配套出库', lists: [] }
]
}
},
mounted() {
this.init()
this.$bus.$on('reloadModuleList', (hasFlag) => {
this.$nextTick(() => {
this.init()
})
})
},
methods: {
// 加载左侧申请表
init() {
const params = {
'pageFrom': 1,
'pageSize': 9999,
'searchItems': {
'children': [],
'items': [
{
'fieldName': 'serialNumber',
'operator': 'LIKE',
'value': this.form.serialNumber || ''
},
{
'fieldName': 'sorties',
'operator': 'LIKE',
'value': this.form.sorties || ''
}
],
'operator': 'AND'
},
'openProps': [
{
'name': 'joExecutePlan'
}
],
'sortItem': [
{
'fieldName': 'modifyTime',
'sortOrder': 'desc'
}
]
}
this.loading = true
// return new Promise((resolve, reject) => {
post(`OutStorageRequest/search/matchStorageExpireToAo?taskDefinitionKey=${this.selectData.taskKey}`, params).then(res => {
const data = res.items.content.map(item => {
return {
...item,
plannerName: item.joExecutePlan && item.joExecutePlan[0] && item.joExecutePlan[0].planner && item.joExecutePlan[0].planner.name
}
})
this.requests.find(item => item.name === '配套出库').lists = data
this.currentAoClick(data[0], 0)
}).catch(err => console.log(err)).finally(() => {
this.loading = false
})
},
searchForm() {
this.init()
},
// 重置表单
resetForm() {
this.form = {}
this.init()
},
currentAoClick(item, subIndex) {
this.active = subIndex
this.$emit('currentAo:click', item)
},
// 阻止事件冒泡
stopDefault(e) {
e.stopPropagation()
}
}
}
</script>
<style lang="scss" scoped>
ul {
margin: -10px 0;
padding: 5px 0 0 0;
li {
margin-top: 5px;
padding: 0 5px 0 8px;
height: 25px;
line-height: 25px;
list-style: none;
cursor: pointer;
font-size: 14px;
color: #606266;
opacity: .85;
white-space: nowrap;
&.black{
color: black;
}
&.active-background{background-color: #67C23A;}
&.blue { color: blue; }
&.red { color: red; }
i { font-size: 14px; }
&:hover, &.active {
opacity: 1;
font-weight: 500;
background-color: #edf0f5;
}
}
}
.empty { margin-left: 10px; color: #666; }
.el-date-editor { width: 100%; }
.collapse-title { font-size: 14px; color: #666; }
.is-active .collapse-title { font-size: 15px; font-weight: 600; color: #222; }
</style>
<template>
<div class="outStorageMatchApplyRight">
<dee-as-com
ref="outStorageMatch"
table-height="auto"
:basic-data=" { selectData,selectionRows }"
:lay-config="{ typeName: 'OutStorageMatch', layKey: 'batchSign_0utStorageMatchApply'}"
@selectionChange="selectionChange"
/>
<dee-as-com
ref="outStorageMatchItem"
:lay-config="{ typeName: 'OutStorageMatchItem', layKey: 'batchSign_outStorageMatchApply_top'}"
table-height="auto"
@selectionChange="selectionChange_item"
/>
<dee-as-com
ref="jobResponseOutStorageMatch"
table-height="auto"
:lay-config="{ typeName: 'JobResponseOutStorageMatch', layKey: 'batchSign_JobResOutStorageMatch_Examine'}"
@selectionChange="selectionChange_jobRes"
/>
</div>
</template>
<script>
export default {
name: 'OutStorageMatchApplyRight',
components: {},
props: {
selectData: {
type: Object,
default: () => {}
},
currentAo: {
type: Object,
default: () => {}
}
},
data() {
return {
selectionRows: [],
selectionItemRows: [],
selectionJobResRows: []
}
},
computed: {},
watch: {},
created() {},
mounted() {
this.$bus.$on('reloadModuleList', (hasFlag) => {
this.$nextTick(() => {
this.init()
})
})
},
// 组件方法
methods: {
selectionChange(val) {
this.selectionRows = val
const requestIds = val && val.map(item => item.id)
this.$refs.outStorageMatchItem.$refs.asCom.getData(requestIds)
},
selectionChange_item(val) {
this.selectionItemRows = val
const itemIds = val && val.map(item => item.id)
this.$refs.jobResponseOutStorageMatch.$refs.asCom.getData(itemIds)
},
selectionChange_jobRes(val) {
this.selectionJobResRows = val
},
init(currentAo) {
setTimeout(() => {
this.$refs.outStorageMatch && this.$refs.outStorageMatch.$refs.asCom.getData(currentAo && currentAo.id || 0)
}, 100)
}
}
}
</script>
<style lang='scss'>
.outStorageMatchApplyRight{
overflow: auto;
width: 100%;
height: 100%;
box-sizing: border-box;
padding-left: 8px;
.sub-title{
padding-top: 0px!important;
}
.dee-table{
.dee-tools {
margin: 2px 0!important;
}
.dee-table-config-bar{
margin: 2px 0!important;
}
.dee-table-pagination {
margin-top: 12px!important;
}
}
}
</style>
<!--
* @Author: gjn
* @Date: 2024-3-7 11:34:39
* @Description:批量签审_ 配套出库申请
-->
<template>
<div class="outStorageMatchApply">
<dee-fold-pane
:min-percent="18"
:default-percent="18"
split="vertical"
class="detail-pane"
>
<template slot="paneL">
<Left
ref="left"
:select-data="selectData"
@currentAo:click="currentAoClick"
/>
</template>
<template slot="paneR">
<Right
v-show="subTypeName === '1'"
ref="right"
:select-data="selectData"
:current-ao="currentAo"
@left:init="() => this.$refs.left.init()"
/>
<!-- empty -->
<section v-if="!subTypeName" style="padding-left: 15px;">
请先选择左侧请求单
</section>
</template>
</dee-fold-pane>
</div>
</template>
<script>
import Left from './components/left.vue'
import Right from './components/right.vue'
export default {
name: 'OutStorageMatchApply',
components: { Left, Right },
props: {
selectData: {
type: Object,
default: () => {}
}
},
data() {
return {
subTypeName: '',
currentAo: null
}
},
computed: {},
watch: {},
created() {},
mounted() {
},
// 组件方法
methods: {
currentAoClick(currentAo) {
this.subTypeName = '1'
this.currentAo = currentAo
this.$refs.right.init(currentAo)
}
}
}
</script>
<style lang='scss'>
.outStorageMatchApply{
width: 100%;
height: 100%;
box-sizing: border-box;
padding:0 4px;
}
</style>
......@@ -72,7 +72,8 @@
/>
<i class="el-icon-document" />
{{ item.sorties }} ,{{ item.serialNumber || '暂无' }},
{{ item.plannerName }}
{{ item.plannerName }},
{{ item.startTime }}
</li>
</template>
</ul>
......
......@@ -52,7 +52,8 @@
>
<i class="el-icon-document" />
{{ item.sorties }} ,{{ item.serialNumber || '暂无' }},
{{ item.plannerName }}
{{ item.plannerName }},
{{ item.startTime }}
</li>
</template>
</ul>
......
......@@ -72,7 +72,7 @@ export default {
<style lang='scss'>
.outStorageMatchExamine{
width: 100%;
height: 103%;
height: 100%;
box-sizing: border-box;
padding:0 4px;
......
......@@ -37,6 +37,7 @@ export default {
StationMasteConfirm: () => import('./stationMasteConfirm'), // 站位长确认
PlannerConfirm: () => import('./plannerConfirm'), // 计划员确认
WorkHourExamine: () => import('./workHourExamine'), // 工时审核
OutStorageMatchApply: () => import('./outStorageMatchApply'), // 配套出库申请
OutStorageMatchExamine: () => import('./outStorageMatchExamine'), // 配套出库审核
OutStorageMatchConfirm: () => import('./outStorageMatchConfirm'), // 配套出库确认
ProPreparateWorkerConfirm: () => import('./proPreparatWorkerConfirm'), // 生产准备工确认
......
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