<template>
|
<GlobalWindow
|
title="选择工序"
|
width="80%"
|
:visible.sync="visible"
|
>
|
<div style="margin-bottom:10px">
|
<el-form ref="searchForm" :model="searchForm" label-width="85px" inline >
|
<el-form-item label="工序名称:" prop="name" >
|
<el-input v-model="searchForm.name" placeholder="请输入工序名称"></el-input>
|
</el-form-item>
|
<el-form-item label="工序编码:" prop="code">
|
<el-input v-model="searchForm.code" placeholder="请输入工序编码"></el-input>
|
</el-form-item>
|
<div style="display: inline;">
|
<el-button type="primary" @click="search">搜索</el-button>
|
<el-button @click="reset">重置</el-button>
|
</div>
|
</el-form>
|
</div>
|
<el-table
|
v-loading="isSearch"
|
:data="productes"
|
stripe
|
border
|
@selection-change="handleSelectionProductes"
|
>
|
<el-table-column type="selection" fixed="left" width="55"></el-table-column>
|
<el-table-column prop="name" label="工序名称" min-width="100px"></el-table-column>
|
<el-table-column prop="code" label="工序编码" fixed="left" min-width="100px"></el-table-column>
|
<!-- <el-table-column prop="sortNum" label="加工顺序" min-width="100px"></el-table-column> -->
|
<el-table-column label="加工顺序" prop="sortnum" min-width="100px"></el-table-column>
|
<el-table-column label="工序类型" min-width="100px">
|
<template slot-scope="{row}">
|
{{ row.level == 1 ? '委外' : '自有' }}
|
</template>
|
</el-table-column>
|
<el-table-column label="负责人" min-width="100px">
|
<template slot-scope="{row}">
|
{{ row.umodel.realname + '-' + row.umodel.mobile }}
|
</template>
|
</el-table-column>
|
<el-table-column label="设备收集层次" min-width="100px">
|
<template slot-scope="{row}">
|
{{ row.level == 0 ? '设备' : '设备组' }}
|
</template>
|
</el-table-column>
|
<el-table-column label="创建时间" prop="createTime" min-width="140px">
|
</el-table-column>
|
</el-table>
|
<el-pagination
|
style="margin-top:10px"
|
:current-page="pagination.pageIndex"
|
:page-size="pagination.pageSize"
|
layout="total, prev, pager, next, jumper"
|
:total="pagination.total"
|
@current-change="handlePageChange"
|
background
|
></el-pagination>
|
<div slot="footer" class="window__header">
|
<div style="width:200px; text-align: center; margin: 0 auto; padding-top:10px">
|
<el-button type="primary" @click="determine">提交</el-button>
|
<el-button @click="cancel">取消</el-button>
|
</div>
|
</div>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import BaseOpera from '@/components/base/BaseOpera'
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import { fetchList as procedurePage } from '@/api/ext/proceduresExt'
|
export default {
|
name: 'SelectProcedure',
|
extends: BaseOpera,
|
components: { GlobalWindow },
|
data () {
|
return {
|
form: {
|
ids: null,
|
departId: null
|
},
|
isSearch: false,
|
productes: [],
|
pagination: {
|
pageIndex: 1,
|
pageSize: 10,
|
total: 0
|
},
|
// 筛选条件
|
searchForm: {
|
name: null,
|
code: null
|
},
|
|
// 已选工序(index : array)
|
selectedProcedures: {},
|
}
|
},
|
mounted() {
|
// console.log('加载完成');
|
},
|
methods: {
|
open (title, target) {
|
// console.log(target)
|
this.title = title
|
this.visible = true
|
|
if (target) {
|
this.selectedProcedures = {}
|
this.searchForm.code = null
|
this.searchForm.name = null
|
this.pagination = {
|
pageIndex: 1,
|
pageSize: 10,
|
total: 0
|
}
|
this.$nextTick(() => {
|
for (const key in this.form) {
|
this.form[key] = target[key]
|
}
|
})
|
this.form = JSON.parse(JSON.stringify(target))
|
// console.log('赋值结束', this.form)
|
this.search()
|
}
|
},
|
determine () {
|
let lastSelect = []
|
for (const key in this.selectedProcedures) {
|
lastSelect = lastSelect.concat(this.selectedProcedures[key])
|
}
|
this.$emit('selectData', {
|
selectedProcedures: lastSelect
|
})
|
this.visible = false
|
},
|
reset () {
|
this.selectedProcedures = {}
|
this.$refs.searchForm.resetFields()
|
this.search()
|
},
|
/**
|
* 搜索物料
|
*/
|
search () {
|
// console.log('搜索')
|
this.handlePageChange(1)
|
},
|
// 选择物料(多选)
|
handleSelectionProductes (selectedRows) {
|
this.selectedProcedures[this.pagination.pageIndex] = selectedRows
|
},
|
cancel () {
|
this.visible = false
|
},
|
handlePageChange (page) {
|
const {departId, ids} = this.form
|
// console.log(this.form, this.form.departId)
|
this.pagination.pageIndex = page
|
this.isSearch = true
|
procedurePage({
|
capacity: this.pagination.pageSize,
|
model: {
|
name: this.searchForm.name,
|
orgId: departId,
|
code: this.searchForm.code,
|
niIds: ids
|
},
|
page: this.pagination.pageIndex,
|
sorts: null
|
})
|
.then(res => {
|
this.productes = res.records
|
this.pagination.pageIndex = res.page
|
this.pagination.total = res.total
|
this.pagination.pageSize = res.capacity
|
})
|
.catch(err => {
|
this.$tip.error(err)
|
// console.log(err)
|
})
|
.finally(() => {
|
this.isSearch = false
|
})
|
},
|
// 判断是否被被选中
|
isSelectRow (row) {
|
if (this.selectedProcedures[this.pagination.pageIndex]) {
|
return this.selectedProcedures[this.pagination.pageIndex].includes(row)
|
}
|
return false
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
::v-deep .el-dialog {
|
// height: calc(100% - 190px);
|
|
margin-top: 0 !important;
|
top: 10%;
|
bottom: 10%;
|
height: 80%;
|
min-height: 600px;
|
}
|
::v-deep .el-dialog__footer {
|
padding: 0px;
|
}
|
::v-deep .el-dialog__body {
|
padding: 10px 20px;
|
height: calc(100% - 114px);
|
}
|
|
.main-materail {
|
display: flex;
|
justify-content: space-between;
|
height: 100%;
|
.left {
|
width: calc(20% - 20px);
|
height: calc(100% - 20px);
|
border: #EEEEEE solid 1px;
|
padding: 10px;
|
font-size: 18px;
|
}
|
.right {
|
width: calc(80% - 20px);
|
height: calc(100% - 20px);
|
padding: 0, 20px;
|
section {
|
display: inline-block;
|
margin-left: 16px;
|
margin-bottom: 18px;
|
}
|
}
|
}
|
</style>
|