Commit 841daf1d authored by jingnan's avatar jingnan 👀

批量签审_ 配套出库确认代码暂存

parent 125cf765
<template>
<div class="matchConfirmLeft" 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.reqNo"
clearable
type="input"
placeholder="请输入"
/>
</el-form-item>
<el-form-item label="AO号">
<el-input
v-model="form.reqBill"
clearable
type="input"
placeholder="请输入"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm()">查询</el-button>
<el-button @click="resetForm()">重置</el-button>
</el-form-item>
</el-form>
<!-- 分类展示 -->
<el-collapse
v-model="collapse.active"
v-loading="loading"
accordion
@change="collapseChange"
>
<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 v-for="(item, subIndex) in request.lists">
<li
v-if="item.pbo"
:key="item.id"
class="blue"
:class="{active: subIndex === active,'active-background':item.activeBackground}"
:style="{ color: item.pbo.hasLostItem?'blue':'red' }"
@click="checkClick(item)"
>
<el-checkbox
v-model="item.checked"
style="margin-right: 6px;"
@click.native="stopDefault($event)"
@change="v => checkboxChange(v, index, subIndex,item)"
/>
<i class="el-icon-document" />
{{ item.pbo.ao.sorties }} ,{{ item.pbo.ao.serialNumber || '暂无' }},
{{ item.pbo && item.pbo.commitName }},
{{
item.pbo && item.pbo.commitTime.split(' ')[0]
}}
</li>
</template>
</ul>
<span v-else class="empty">暂无数据</span>
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
export default {
name: 'MatchConfirmLeft',
components: {
},
data() {
return {
loading: false,
// 搜索表单
form: {
reqNo: '',
reqBill: '',
ao: '',
resCode: '',
modelNo: ''
},
// 手风琴默认高亮
active: '',
// 手风琴组件
collapse: {
active: ['1']
},
// 申请列表
requests: [
{ name: '配套出库', lists: [
{
'processTask': null,
'pbo': {
'dxClassname': 'com.tf.mes.vo.storage.OutStorageRequestVo',
'id': 214793230327000,
'createTime': '2021-10-22 00:47:10',
'modifyTime': null,
'creatorId': null,
'creator': null,
'modifierId': null,
'modifier': null,
'subTypeName': 'RequestOutStorageMatch',
'subTypeDisplayName': null,
'operator': null,
'contextId': null,
'dxContextId': null,
'dxContextIdType': null,
'dxContext': null,
'sandboxId': null,
'lifecycleTemplateId': null,
'state': 'Outside',
'sourceInventoryRequestProductUnitLink': null,
'remark': null,
'scheduleRequestLinks': null,
'reqNo': 'AO-CAS-CA-31-D2303001-0200',
'seqNo': null,
'billTypeCode': null,
'billType': null,
'sourceInventoryRequestUsageLink': null,
'targetInventoryRequestUsageLink': null,
'dynamicAttrs': null,
'needTime': null,
'reqStatusCode': null,
'isRejectCode': null,
'isReject': null,
'ao': {
'dxClassname': 'com.tf.mes.vo.gy.DxProcessPlanVo',
'id': null,
'createTime': null,
'modifyTime': null,
'creatorId': null,
'creator': null,
'modifierId': null,
'modifier': null,
'subTypeName': null,
'subTypeDisplayName': null,
'operator': null,
'contextId': null,
'dxContextId': null,
'dxContextIdType': null,
'dxContext': null,
'sandboxId': null,
'lifecycleTemplateId': null,
'state': null,
'masterId': null,
'master': null,
'versionId': null,
'version': null,
'versionKey': null,
'latest': null,
'iterationId': null,
'note': null,
'predecessorId': null,
'originId': null,
'origin': null,
'predecessor': null,
'displayVersion': 'null.null',
'checkOuted': null,
'lockerId': null,
'locker': null,
'lockNote': null,
'lockDate': null,
'sourceDxProcessUsageLink': null,
'targetDxProcessUsageLink': null,
'description': null,
'longDescription': null,
'views': null,
'objFileLinks': null,
'dxProcessExecutorRoutes': null,
'dxProcessExecutorRoutes1': null,
'dxProcessExecutorRoutes2': null,
'sourceDxProcessPartLink': null,
'serialNumber': 'AO-CAS-CA-31-D2303001-0200',
'dynamicAttrs': null,
'targetDxPartProcessPlanLink': null,
'gaceVersion': null,
'versionChangeDesc': null,
'keyOperation': null,
'firstCheckFlag': null,
'workHour': null,
'carryCount': null,
'undoneCount': null,
'completeCount': null,
'fitRatesCount': null,
'notFitRatesCount': null,
'fitRates': null,
'countWorkHour': null,
'planeType': null,
'sorties': '1003',
'serialNo': null,
'stateDisplayName': null,
'materName': null,
'materNo': null,
'executorVoList': null,
'dxProcessOperationVos': null,
'parenId': null,
'dxProcessPlanVos': null,
'wrProductionVo': null,
'sandboxPlanWrVo': null,
'joExecutePlanVo': null,
'sandboxPlanExecPlanVo': null,
'workDescription': null,
'businessNo': null,
'needTime': null,
'prepareDescription': null,
'itemFitRates': 0,
'itemState': 0,
'changeBasis': null,
'dictSeq': null,
'isRenew': null,
'dxProcessPlanChanges': null,
'ppId': null,
'problemStatus': null,
'receiveTime': null,
'jdName': null,
'shName': null,
'zsName': null,
'pzName': null,
'scheduledEnd': null,
'scheduledStart': null,
'requestVo': null,
'progress': null,
'startCount': null,
'zuofei': null,
'isRunning': null,
'number': null,
'name': null,
'dxViewId': null
},
'reqBill': null,
'aoNumber': null,
'reqDept': null,
'reqStatus': null,
'aoId': null,
'aoIdType': null,
'reqDeptId': null,
'reqDeptIdType': null,
'aircraftType': null,
'receiveUser': null,
'phone': null,
'deliveryTime': null,
'gaceVer': null,
'receiveAddress': null,
'stateDisplayName': null,
'orProduction': null,
'orProductionId': null,
'orProductionIdType': null,
'dxProductArea': null,
'dxProductAreaId': null,
'dxProductAreaIdType': null,
'keyID': null,
'dxProductWorkCenter': null,
'materialType': null,
'materialTypeId': null,
'materialTypeIdType': null,
'dxProductWorkCenterId': null,
'dxProductWorkCenterIdType': null,
'scheduledStart': null,
'scheduledEnd': null,
'dxProcessPlanPositionId': null,
'fitRates': null,
'withdrawal': null,
'hasItem': null,
'hasLostItem': true,
'outFitRates': null,
'componentsFitRates': null,
'standardComponentFitRates': null,
'isOk': null,
'commitName': '齐鑫思',
'commitTime': '2021-12-25 12:05:21',
'taskId': 'e0ddc711-6537-11ec-9f21-0cda411d949c',
'note': null,
'isOpen': null,
'typeName': null,
'objFileLinks': null
}
}] }
]
}
},
mounted() {
// this.init()
},
methods: {
// 加载左侧申请表
init() {
this.loading = true
Promise.all([
// 配套出库
this.match()
]).then(result => {
const [match] = result
this.requests.find(item => item.name === '配套出库').lists = match
}).catch(error => error).finally(() => {
this.loading = false
})
},
// 配套出库
match() {
const params = {
'searchQueryCondition': {
'indices': [
'RequestOutStorageMatch'
],
'pageFrom': 1,
'pageSize': 999,
'searchItems': {
'items': [
{
'fieldName': 'state',
'operator': 'EQ',
'value': 'Outside'
},
{
'fieldName': 'subTypeName',
'operator': 'EQ',
'value': 'RequestOutStorageMatch'
}
],
'operator': 'AND'
},
'openProps': [
{
'pageFrom': 1,
'pageSize': 1,
'name': 'ao',
'openProps': [
{
'pageFrom': 1,
'pageSize': 1,
'name': 'master',
'searchItems': {
'items': [
{
'fieldName': 'number',
'operator': 'LIKE',
'value': this.form.ao
},
{
'fieldName': 'sorties',
'operator': 'LIKE',
'value': this.form.sorties
}
],
'operator': 'OR'
},
'parentFilter': true
}
],
'parentFilter': true
}
],
'sortItem': [
{
'fieldName': 'modifyTime',
'sortOrder': 'desc'
}
]
},
'taskSearchVO': {
'assignee': localStorage.getItem('userId')
}
}
return new Promise((resolve, reject) => {
this.HttpRequest(
'/DxWorkflowTask/outStorageTaskList/match/confirm',
params,
'post'
).then(res => {
resolve(res.items.content.map(item => {
return {
...item,
checked: false
}
}))
}).catch(err => console.log(err)).finally(() => {})
})
},
// 提交表单
submitForm() {
this.init()
},
// 重置表单
resetForm() {
this.form = {
reqNo: '',
reqBill: '',
ao: ''
}
this.init()
},
// 手风琴切换
collapseChange(active) {
// 三期出库
active === '4' && this.$emit('type2:init', 'RequestOutStorageExpire')
// 召回出库
active === '5' && this.$emit('type2:init', 'RequestOutStorageRecall')
},
// 切换复选框
checkboxChange(v, index, subIndex, item) {
this.$set(item, 'activeBackground', v)
this.requests[index].lists[subIndex].checked = v
const checkList = this.requests.find(item => item.name === '配套出库').lists.filter(item => item.checked)
this.$emit('checkbox:change', checkList)
},
checkClick(item) {
this.$set(item, 'activeBackground', true)
item.checked = !item.checked
const checkList = this.requests.find(item => item.name === '配套出库').lists.filter(item => item.checked)
this.$emit('checkbox:change', checkList)
},
// 阻止事件冒泡
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="matchConfirmRight">
<dee-as-com
ref="outStorageMatch"
table-height="auto"
:lay-config="{ typeName: 'OutStorageMatch', layKey: 'batchSign_OutStorageMatch'}"
@selectionChange="selectionChange"
/>
<dee-as-com
ref="outStorageMatchItem"
:lay-config="{ typeName: 'OutStorageMatchItem', layKey: 'batchSign_OutStorageMatchItem'}"
table-height="auto"
@selectionChange="selectionChange_item"
/>
<dee-as-com
ref="jobResponseOutStorageMatch"
table-height="auto"
:lay-config="{ typeName: 'JobResponseOutStorageMatch', layKey: 'batchSign_JobResOutStorageMatch'}"
@selectionChange="selectionChange_jobRes"
/>
</div>
</template>
<script>
export default {
name: 'MatchConfirmRight',
components: {},
props: {
selectData: {
type: Object,
default: () => {}
}
},
data() {
return {
selectionRows: [],
selectionItemRows: [],
selectionJobResRows: []
}
},
computed: {},
watch: {},
created() {},
mounted() {
},
// 组件方法
methods: {
selectionChange(val) {
this.selectionRows = val
},
selectionChange_item(val) {
this.selectionItemRows = val
},
selectionChange_jobRes(val) {
this.selectionJobResRows = val
},
init() {
this.$refs.outStorageMatch.$refs.asCom.getData()
}
}
}
</script>
<style lang='scss'>
.matchConfirmRight{
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: 2023-12-18 16:34:39
* @Description:批量签审_ 配套出库确认
-->
<template>
<div class="outStorageMatchConfirm">
<dee-fold-pane
:min-percent="18"
:default-percent="18"
split="vertical"
class="detail-pane"
>
<template slot="paneL">
<Left
ref="left"
@checkbox:change="checkboxChange"
/>
</template>
<template slot="paneR">
<Right
v-show="subTypeName === '1'"
ref="right"
@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: 'OutStorageMatchConfirm',
components: { Left, Right },
props: {
selectData: {
type: Object,
default: () => {}
}
},
data() {
return {
subTypeName: ''
}
},
computed: {},
watch: {},
created() {},
mounted() {
},
// 组件方法
methods: {
checkboxChange(checkList) {
this.subTypeName = '1'
this.$refs.right.init(checkList)
}
}
}
</script>
<style lang='scss'>
.outStorageMatchConfirm{
width: 100%;
height: 100%;
box-sizing: border-box;
padding:0 4px;
}
</style>
<!--
* @Author: gjn
* @Date: 2023-12-18 16:34:39
* @Description:批量签审_ 生产准备工确认
-->
<template>
<div class="proPreparatWorkerConfirm">
<dee-as-com
ref="applyTable"
class="list-table"
:basic-data=" { selectData,selectionRows }"
:lay-config="{ typeName: 'ProdTask', layKey: 'batchSign_workerConfirm'}"
@selectionChange="selectionChange"
/>
</div>
</template>
<script>
export default {
name: 'ProPreparatWorkerConfirm',
components: {},
props: {
selectData: {
type: Object,
default: () => {}
}
},
data() {
return {
selectionRows: []
}
},
computed: {},
watch: {},
created() {},
mounted() {
},
// 组件方法
methods: {
selectionChange(val) {
this.selectionRows = val
}
}
}
</script>
<style lang='scss'>
.proPreparatWorkerConfirm{
width: 100%;
height: 100%;
box-sizing: border-box;
padding:0 4px;
}
</style>
......@@ -32,7 +32,8 @@ export default {
WorkHourConfirm: () => import('./workHourConfirm'), // 工时确认
StationMasteConfirm: () => import('./stationMasteConfirm'), // 站位长确认
PlannerConfirm: () => import('./plannerConfirm'), // 计划员确认
WorkHourExamine: () => import('./workHourExamine') // 工时审核
OutStorageMatchConfirm: () => import('./outStorageMatchConfirm'), // 配套出库确认
ProPreparateWorkerConfirm: () => import('./proPreparatWorkerConfirm') // 生产准备工确认
},
props: {
selectData: {
......
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