|
|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<el-dialog
|
|
|
- title="选择产品"
|
|
|
+ title="选择成品"
|
|
|
:visible.sync="equipmentdialog"
|
|
|
:before-close="handleClose"
|
|
|
:close-on-click-modal="false"
|
|
|
@@ -10,42 +10,44 @@
|
|
|
>
|
|
|
<div>
|
|
|
<el-row>
|
|
|
- <el-col :span="24" class="topsearch">
|
|
|
- <el-form >
|
|
|
- <el-row>
|
|
|
- <el-col :span="6">
|
|
|
- <el-input
|
|
|
- v-model="code"
|
|
|
- placeholder="请输入产品编码"
|
|
|
- size="small"
|
|
|
- ></el-input>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6" style="margin-left:10px">
|
|
|
- <el-button type="primary" size="small" @click="reload">搜索</el-button>
|
|
|
- <el-button size="small" @click="reset">重置</el-button>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- </el-col>
|
|
|
+ <el-col :span="24" class="topsearch">
|
|
|
+ <el-form>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-input
|
|
|
+ v-model="code"
|
|
|
+ placeholder="请输入产品编码"
|
|
|
+ size="small"
|
|
|
+ ></el-input>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" style="margin-left: 10px">
|
|
|
+ <el-button type="primary" size="small" @click="reload"
|
|
|
+ >搜索</el-button
|
|
|
+ >
|
|
|
+ <el-button size="small" @click="reset">重置</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
<el-col :span="6" class="tree_col">
|
|
|
<AssetTree
|
|
|
@handleNodeClick="handleNodeClick"
|
|
|
- id="9"
|
|
|
+ id="3"
|
|
|
:paramsType="'type'"
|
|
|
ref="treeList"
|
|
|
/>
|
|
|
</el-col>
|
|
|
- <el-col :span="18" class="table_col">
|
|
|
- <ele-pro-table
|
|
|
- ref="equiTable"
|
|
|
- :columns="columns"
|
|
|
- :datasource="datasource"
|
|
|
- :selection.sync="selection"
|
|
|
- cache-key="systemRoleTable"
|
|
|
- row-key="id"
|
|
|
- @done="setSelect"
|
|
|
- >
|
|
|
- </ele-pro-table>
|
|
|
+ <el-col :span="18" class="table_col">
|
|
|
+ <ele-pro-table
|
|
|
+ ref="equiTable"
|
|
|
+ :columns="columns"
|
|
|
+ :datasource="datasource"
|
|
|
+ :selection.sync="selection"
|
|
|
+ cache-key="systemRoleTable"
|
|
|
+ row-key="id"
|
|
|
+ @done="setSelect"
|
|
|
+ >
|
|
|
+ </ele-pro-table>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</div>
|
|
|
@@ -59,149 +61,145 @@
|
|
|
<script>
|
|
|
import AssetTree from '@/components/AssetTree';
|
|
|
import { getList } from '@/api/classifyManage/itemInformation';
|
|
|
-export default {
|
|
|
- components: {
|
|
|
- AssetTree
|
|
|
- },
|
|
|
- props: {
|
|
|
- selectList:Array,
|
|
|
- },
|
|
|
- data () {
|
|
|
- return {
|
|
|
- equipmentdialog: false,
|
|
|
- columns: [
|
|
|
- {
|
|
|
- width: 45,
|
|
|
- type: 'selection',
|
|
|
- columnKey: 'selection',
|
|
|
- align: 'center',
|
|
|
- reserveSelection: true
|
|
|
- },
|
|
|
- {
|
|
|
- columnKey: 'index',
|
|
|
- label: '序号',
|
|
|
- type: 'index',
|
|
|
- width: 55,
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'code',
|
|
|
- label: '物品编码',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 110,
|
|
|
- slot: 'code'
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'name',
|
|
|
- label: '物品名称',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 110
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'brandNum',
|
|
|
- label: '牌号',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 110
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'modelType',
|
|
|
- label: '型号',
|
|
|
- align: 'center',
|
|
|
- showOverflowTooltip: true,
|
|
|
- minWidth: 110
|
|
|
- }
|
|
|
- ],
|
|
|
- tableList:[],
|
|
|
- categoryLevelId:null,
|
|
|
- code:null,
|
|
|
- selection:[]
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- watch: {
|
|
|
-
|
|
|
- },
|
|
|
- methods: {
|
|
|
- async datasource ({ page, limit }) {
|
|
|
- const params = {
|
|
|
- code:this.code,
|
|
|
- pageNum: page,
|
|
|
- size: limit,
|
|
|
- categoryLevelId: this.categoryLevelId
|
|
|
- }
|
|
|
- const data = await getList(params)
|
|
|
- this.tableList = data.list
|
|
|
- return data
|
|
|
- },
|
|
|
- open(){
|
|
|
- this.equipmentdialog = true
|
|
|
- this.setSelect()
|
|
|
- },
|
|
|
- handleNodeClick (data) {
|
|
|
- this.categoryLevelId = data.id;
|
|
|
- this.reload();
|
|
|
- },
|
|
|
- reload () {
|
|
|
- this.$refs.equiTable.reload();
|
|
|
- },
|
|
|
- handleClose () {
|
|
|
- this.equipmentdialog = false
|
|
|
- this.$refs.equiTable.clearSelection()
|
|
|
+ export default {
|
|
|
+ components: {
|
|
|
+ AssetTree
|
|
|
+ },
|
|
|
+ props: {
|
|
|
+ selectList: Array
|
|
|
+ },
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ equipmentdialog: false,
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ width: 45,
|
|
|
+ type: 'selection',
|
|
|
+ columnKey: 'selection',
|
|
|
+ align: 'center',
|
|
|
+ reserveSelection: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ columnKey: 'index',
|
|
|
+ label: '序号',
|
|
|
+ type: 'index',
|
|
|
+ width: 55,
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'code',
|
|
|
+ label: '物品编码',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 110,
|
|
|
+ slot: 'code'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'name',
|
|
|
+ label: '物品名称',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 110
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'brandNum',
|
|
|
+ label: '牌号',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 110
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'modelType',
|
|
|
+ label: '型号',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 110
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ tableList: [],
|
|
|
+ categoryLevelId: null,
|
|
|
+ code: null,
|
|
|
+ selection: []
|
|
|
+ };
|
|
|
},
|
|
|
- reset(){
|
|
|
- this.code = null
|
|
|
- this.reload()
|
|
|
- },
|
|
|
- // 设置选中
|
|
|
- setSelect(){
|
|
|
- this.$nextTick(() => {
|
|
|
- this.tableList.forEach(row => {
|
|
|
- this.selectList.forEach(selected => {
|
|
|
- if (selected.productCode === row.code) {
|
|
|
- this.$refs.equiTable.toggleRowSelection(row, true)
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
- })
|
|
|
- },
|
|
|
- // 选择
|
|
|
- selected(){
|
|
|
- this.$emit('choose',this.selection)
|
|
|
- this.handleClose()
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
- }
|
|
|
-}
|
|
|
+ watch: {},
|
|
|
+ methods: {
|
|
|
+ async datasource ({ page, limit }) {
|
|
|
+ const params = {
|
|
|
+ code: this.code,
|
|
|
+ pageNum: page,
|
|
|
+ size: limit,
|
|
|
+ categoryLevelId: this.categoryLevelId
|
|
|
+ };
|
|
|
+ const data = await getList(params);
|
|
|
+ this.tableList = data.list;
|
|
|
+ return data;
|
|
|
+ },
|
|
|
+ open () {
|
|
|
+ this.equipmentdialog = true;
|
|
|
+ this.setSelect();
|
|
|
+ },
|
|
|
+ handleNodeClick (data) {
|
|
|
+ this.categoryLevelId = data.id;
|
|
|
+ this.reload();
|
|
|
+ },
|
|
|
+ reload () {
|
|
|
+ this.$refs.equiTable.reload();
|
|
|
+ },
|
|
|
+ handleClose () {
|
|
|
+ this.equipmentdialog = false;
|
|
|
+ this.$refs.equiTable.clearSelection();
|
|
|
+ },
|
|
|
+ reset () {
|
|
|
+ this.code = null;
|
|
|
+ this.reload();
|
|
|
+ },
|
|
|
+ // 设置选中
|
|
|
+ setSelect () {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.tableList.forEach((row) => {
|
|
|
+ this.selectList.forEach((selected) => {
|
|
|
+ if (selected.productCode === row.code) {
|
|
|
+ this.$refs.equiTable.toggleRowSelection(row, true);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 选择
|
|
|
+ selected () {
|
|
|
+ this.$emit('choose', this.selection);
|
|
|
+ this.handleClose();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-.tree_col {
|
|
|
- border: 1px solid #eee;
|
|
|
- padding: 10px 0;
|
|
|
- box-sizing: border-box;
|
|
|
- height: 500px;
|
|
|
- overflow: auto;
|
|
|
-}
|
|
|
-.table_col {
|
|
|
- padding-left: 10px;
|
|
|
- ::v-deep .el-table th.el-table__cell {
|
|
|
- background: #f2f2f2;
|
|
|
+ .tree_col {
|
|
|
+ border: 1px solid #eee;
|
|
|
+ padding: 10px 0;
|
|
|
+ box-sizing: border-box;
|
|
|
+ height: 500px;
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
+ .table_col {
|
|
|
+ padding-left: 10px;
|
|
|
+ ::v-deep .el-table th.el-table__cell {
|
|
|
+ background: #f2f2f2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .pagination {
|
|
|
+ text-align: right;
|
|
|
+ padding: 10px 0;
|
|
|
+ }
|
|
|
+ .btns {
|
|
|
+ text-align: center;
|
|
|
+ padding: 10px 0;
|
|
|
+ }
|
|
|
+ .topsearch {
|
|
|
+ margin-bottom: 15px;
|
|
|
}
|
|
|
-}
|
|
|
-.pagination {
|
|
|
- text-align: right;
|
|
|
- padding: 10px 0;
|
|
|
-}
|
|
|
-.btns {
|
|
|
- text-align: center;
|
|
|
- padding: 10px 0;
|
|
|
-}
|
|
|
-.topsearch{
|
|
|
- margin-bottom:15px;
|
|
|
-}
|
|
|
</style>
|