This commit is contained in:
parent
b3bbed0d7d
commit
0be39d74a1
673
logs/JIAL-ss.log
673
logs/JIAL-ss.log
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -3,6 +3,7 @@ package com.JN.demo.zmquotation.controller;
|
||||||
import com.JN.common.R;
|
import com.JN.common.R;
|
||||||
import com.JN.demo.zmquotation.dto.MaterialDto;
|
import com.JN.demo.zmquotation.dto.MaterialDto;
|
||||||
import com.JN.demo.zmquotation.dto.RegionDto;
|
import com.JN.demo.zmquotation.dto.RegionDto;
|
||||||
|
import com.JN.demo.zmquotation.service.MaterialService;
|
||||||
import com.JN.demo.zmquotation.service.RegionService;
|
import com.JN.demo.zmquotation.service.RegionService;
|
||||||
import lombok.experimental.PackagePrivate;
|
import lombok.experimental.PackagePrivate;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
@ -29,6 +30,9 @@ public class ZMController {
|
||||||
@Autowired
|
@Autowired
|
||||||
RegionService regionService;
|
RegionService regionService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
MaterialService materialService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @title queryRegionList
|
* @title queryRegionList
|
||||||
* @description 查询地区列表信息
|
* @description 查询地区列表信息
|
||||||
|
@ -61,10 +65,9 @@ public class ZMController {
|
||||||
public R<List<MaterialDto>> queryMaterialList(@RequestParam("precMaterialName") String precMaterialName,
|
public R<List<MaterialDto>> queryMaterialList(@RequestParam("precMaterialName") String precMaterialName,
|
||||||
@RequestParam("vagueMaterialName") String vagueMaterialName,
|
@RequestParam("vagueMaterialName") String vagueMaterialName,
|
||||||
@RequestParam("vagueModel") String vagueModel) {
|
@RequestParam("vagueModel") String vagueModel) {
|
||||||
|
List<MaterialDto> materialList = materialService.queryMaterialListByParam(precMaterialName, vagueMaterialName, vagueModel);
|
||||||
|
|
||||||
|
return R.success(materialList);
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,19 +25,25 @@ public class MaterialDto implements Serializable {
|
||||||
|
|
||||||
private String standard; //标准
|
private String standard; //标准
|
||||||
|
|
||||||
private String core; //线芯
|
|
||||||
|
|
||||||
private String costPrice; //成本价
|
private String costPrice; //成本价
|
||||||
|
|
||||||
private String factoryPrice; //厂价
|
private String factoryPrice; //厂价
|
||||||
|
|
||||||
private String netVolume; //净量
|
private String netVolume; //净种量(物料重量)
|
||||||
|
|
||||||
private String inventory; //盘具
|
private String inventory; //盘具
|
||||||
|
|
||||||
private String weighInv; //盘重
|
private String weighInv; //盘重
|
||||||
|
|
||||||
|
private String matPrice; //材料价格(去掉铜铝后的价格)
|
||||||
|
|
||||||
|
private String totalCopperConsume; //铜导体总消耗
|
||||||
|
|
||||||
|
private String totalAluminumConsume; //铝导体总消耗
|
||||||
|
|
||||||
|
private String totalLHCost; //人工水电费合计
|
||||||
|
|
||||||
|
private String steamFee; //蒸汽费
|
||||||
|
|
||||||
|
private int quantity = 1; //数量默认为1
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.JN.demo.zmquotation.mapper;
|
||||||
|
|
||||||
|
import com.JN.demo.zmquotation.dto.MaterialDto;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName MaterialMapper
|
||||||
|
* @Description TODO
|
||||||
|
* @Author JIAL
|
||||||
|
* @Date 2024/2/21 8:16
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface MaterialMapper {
|
||||||
|
@Select("SELECT [cb_name] as material_name\n" +
|
||||||
|
" ,[cb_cj] as factory_price\n" +
|
||||||
|
" ,[cb_cbj] as cost_price\n" +
|
||||||
|
" ,[cb_zl] as net_volume\n" +
|
||||||
|
" ,[cb_gspj] as inventory\n" +
|
||||||
|
" ,[cbpj_zl] as weigh_inv\n" +
|
||||||
|
" ,[CB_bz] as standard\n" +
|
||||||
|
" ,[cb_xx] as model\n" +
|
||||||
|
" ,[cb_gg] as specification\n" +
|
||||||
|
" ,[cb_dy] as voltage\n" +
|
||||||
|
" ,[cb_cljg] as mat_price\n" +
|
||||||
|
" ,[tdtjg] as total_copper_consume\n" +
|
||||||
|
" ,[ldtjg] as total_aluminum_consume\n" +
|
||||||
|
" ,[rgsdf] as total_l_h_cost\n" +
|
||||||
|
" ,[cb_zqf]as steam_fee\n" +
|
||||||
|
" FROM [zm_erp2].[dbo].[view_cb_material]\n" +
|
||||||
|
" WHERE [cb_name] like '${precMaterialName}%' and [cb_name] like '%${vagueMaterialName}%' and [cb_gg] like '%${vagueModel}%'")
|
||||||
|
List<MaterialDto> queryMaterialListByParam(String precMaterialName, String vagueMaterialName, String vagueModel);
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.JN.demo.zmquotation.service;
|
||||||
|
|
||||||
|
import com.JN.demo.zmquotation.dto.MaterialDto;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName MaterialService
|
||||||
|
* @Description TODO
|
||||||
|
* @Author JIAL
|
||||||
|
* @Date 2024/2/21 8:15
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
public interface MaterialService {
|
||||||
|
|
||||||
|
List<MaterialDto> queryMaterialListByParam(String precMaterialName, String vagueMaterialName, String vagueModel);
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.JN.demo.zmquotation.service.impl;
|
||||||
|
|
||||||
|
import com.JN.demo.zmquotation.dto.MaterialDto;
|
||||||
|
import com.JN.demo.zmquotation.mapper.MaterialMapper;
|
||||||
|
import com.JN.demo.zmquotation.service.MaterialService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName MaterialServiceImpl
|
||||||
|
* @Description TODO
|
||||||
|
* @Author JIAL
|
||||||
|
* @Date 2024/2/21 8:15
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class MaterialServiceImpl implements MaterialService {
|
||||||
|
@Autowired
|
||||||
|
MaterialMapper materialMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @title queryMaterialListByParam
|
||||||
|
* @description 通过开头精确、模糊查询、型号三个参数来查询物料列表
|
||||||
|
* @author JIAL
|
||||||
|
* @param: precMaterialName
|
||||||
|
* @param: vagueMaterialName
|
||||||
|
* @param: vagueModel
|
||||||
|
* @updateTime 2024/2/21 8:23
|
||||||
|
* @return: java.util.List<com.JN.demo.zmquotation.dto.MaterialDto>
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<MaterialDto> queryMaterialListByParam(String precMaterialName, String vagueMaterialName, String vagueModel) {
|
||||||
|
return materialMapper.queryMaterialListByParam(precMaterialName, vagueMaterialName, vagueModel);
|
||||||
|
}
|
||||||
|
}
|
|
@ -86,16 +86,17 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.materialDialogTable .el-table__header-wrapper .el-table__header .el-checkbox {
|
||||||
|
display: none;
|
||||||
.el-table .el-table__cell {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-row {
|
.el-table .cell {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.el-col {
|
.el-col {
|
||||||
height: 42px;
|
height: 42px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -192,11 +192,6 @@
|
||||||
prop="standard"
|
prop="standard"
|
||||||
label="标准">
|
label="标准">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
|
||||||
width="180"
|
|
||||||
prop="core"
|
|
||||||
label="线芯">
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
width="180"
|
width="180"
|
||||||
prop="costPrice"
|
prop="costPrice"
|
||||||
|
@ -210,7 +205,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
width="180"
|
width="180"
|
||||||
prop="netVolume"
|
prop="netVolume"
|
||||||
label="净量">
|
label="净重量">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
width="180"
|
width="180"
|
||||||
|
@ -254,7 +249,7 @@
|
||||||
width="80"
|
width="80"
|
||||||
label="操作">
|
label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button @click="handleDeleteClick(scope.row)" style="color: red;" type="text">删除</el-button>
|
<el-button @click="handleDeleteClick(scope.$index)" style="color: red;" type="text">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -320,7 +315,7 @@
|
||||||
></el-pagination>
|
></el-pagination>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog class="materialDialogTable" :visible.sync="dialogMaterialVisible" width="1300px">
|
<el-dialog class="materialDialogTable" :visible.sync="dialogMaterialVisible" width="1200px">
|
||||||
<div slot="title" class="regionTable-title" style="margin: 0px">
|
<div slot="title" class="regionTable-title" style="margin: 0px">
|
||||||
<el-form>
|
<el-form>
|
||||||
<el-form-item >
|
<el-form-item >
|
||||||
|
@ -335,7 +330,7 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: flex; flex-direction: row;">
|
<div style="display: flex; flex-direction: row;">
|
||||||
<div style="width: 866px">
|
<div style="width: 766px">
|
||||||
<el-table
|
<el-table
|
||||||
:data="getCurrentMaterialData"
|
:data="getCurrentMaterialData"
|
||||||
ref="materialTable"
|
ref="materialTable"
|
||||||
|
@ -343,6 +338,8 @@
|
||||||
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
|
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
|
||||||
:cell-style="{'text-align': 'center', 'padding': '5px 0px'}"
|
:cell-style="{'text-align': 'center', 'padding': '5px 0px'}"
|
||||||
highlight-selection-row
|
highlight-selection-row
|
||||||
|
:row-key="row => row.materialName"
|
||||||
|
:reserve-selection="true"
|
||||||
border>
|
border>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
type="selection"
|
type="selection"
|
||||||
|
@ -378,11 +375,6 @@
|
||||||
prop="standard"
|
prop="standard"
|
||||||
label="标准">
|
label="标准">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
|
||||||
width="100"
|
|
||||||
prop="core"
|
|
||||||
label="线芯">
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
</el-table>
|
||||||
<div style="text-align: center; margin-top: 10px;">
|
<div style="text-align: center; margin-top: 10px;">
|
||||||
<el-pagination
|
<el-pagination
|
||||||
|
@ -478,25 +470,33 @@
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
dialogMaterialVisible: false,
|
dialogMaterialVisible: false,
|
||||||
materialTableData: [
|
materialTableData: [
|
||||||
{
|
{ materialName: 'Material 1', model: 'Model A', specification: 'Spec 1', voltage: '220V', standard: 'Standard 1' },
|
||||||
materialName: 'Material 1',
|
{ materialName: 'Material 2', model: 'Model B', specification: 'Spec 2', voltage: '110V', standard: 'Standard 2' },
|
||||||
model: 'Model A',
|
// ... (previous data)
|
||||||
specification: 'Spec 1',
|
|
||||||
voltage: '220V',
|
// Additional test data
|
||||||
standard: 'Standard 1',
|
{ materialName: 'Material 3', model: 'Model C', specification: 'Spec 3', voltage: '120V', standard: 'Standard 3' },
|
||||||
core: 'Core X'
|
{ materialName: 'Material 4', model: 'Model D', specification: 'Spec 4', voltage: '230V', standard: 'Standard 4' },
|
||||||
},
|
{ materialName: 'Material 5', model: 'Model E', specification: 'Spec 5', voltage: '240V', standard: 'Standard 5' },
|
||||||
{
|
{ materialName: 'Material 6', model: 'Model F', specification: 'Spec 6', voltage: '110V', standard: 'Standard 6' },
|
||||||
materialName: 'Material 2',
|
{ materialName: 'Material 7', model: 'Model G', specification: 'Spec 7', voltage: '220V', standard: 'Standard 7' },
|
||||||
model: 'Model B',
|
{ materialName: 'Material 8', model: 'Model H', specification: 'Spec 8', voltage: '120V', standard: 'Standard 8' },
|
||||||
specification: 'Spec 2',
|
{ materialName: 'Material 9', model: 'Model I', specification: 'Spec 9', voltage: '230V', standard: 'Standard 9' },
|
||||||
voltage: '110V',
|
{ materialName: 'Material 10', model: 'Model J', specification: 'Spec 10', voltage: '240V', standard: 'Standard 10' },
|
||||||
standard: 'Standard 2',
|
// ... (repeat similar structure for more data)
|
||||||
core: 'Core Y'
|
{ materialName: 'Material 11', model: 'Model K', specification: 'Spec 11', voltage: '120V', standard: 'Standard 11' },
|
||||||
},
|
{ materialName: 'Material 12', model: 'Model L', specification: 'Spec 12', voltage: '230V', standard: 'Standard 12' },
|
||||||
// Add more data as needed
|
{ materialName: 'Material 13', model: 'Model M', specification: 'Spec 13', voltage: '240V', standard: 'Standard 13' },
|
||||||
|
{ materialName: 'Material 14', model: 'Model N', specification: 'Spec 14', voltage: '110V', standard: 'Standard 14' },
|
||||||
|
{ materialName: 'Material 15', model: 'Model O', specification: 'Spec 15', voltage: '220V', standard: 'Standard 15' },
|
||||||
|
{ materialName: 'Material 16', model: 'Model P', specification: 'Spec 16', voltage: '120V', standard: 'Standard 16' },
|
||||||
|
{ materialName: 'Material 17', model: 'Model Q', specification: 'Spec 17', voltage: '230V', standard: 'Standard 17' },
|
||||||
|
{ materialName: 'Material 18', model: 'Model R', specification: 'Spec 18', voltage: '240V', standard: 'Standard 18' },
|
||||||
|
{ materialName: 'Material 19', model: 'Model S', specification: 'Spec 19', voltage: '110V', standard: 'Standard 19' },
|
||||||
|
{ materialName: 'Material 20', model: 'Model T', specification: 'Spec 20', voltage: '220V', standard: 'Standard 20' },
|
||||||
],
|
],
|
||||||
selectedMaterialItems: [], // 选中的数据
|
selectedMaterialItems: [], // 选中的数据
|
||||||
|
savedSelectedMaterials: [], // 保存选中的数据
|
||||||
precMaterialName: '',
|
precMaterialName: '',
|
||||||
vagueMaterialName: '',
|
vagueMaterialName: '',
|
||||||
vagueModel: '',
|
vagueModel: '',
|
||||||
|
@ -519,7 +519,9 @@
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.materialTable.setSelection(this.selectedMaterialItems);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async init () {
|
async init () {
|
||||||
|
@ -576,35 +578,42 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
handleRegionCurrentChange(val) {
|
handleRegionCurrentChange(val) {
|
||||||
this.currentPage = val;
|
this.currentPage = val;
|
||||||
},
|
},
|
||||||
|
|
||||||
handleMaterialCurrentChange(val) {
|
handleMaterialCurrentChange(val) {
|
||||||
this.currentPage = val;
|
this.currentPage = val;
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
addMaterial(){
|
addMaterial(){
|
||||||
this.dialogMaterialVisible = true;
|
this.dialogMaterialVisible = true;
|
||||||
},
|
},
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
// 当选择发生变化时更新选中数据
|
selection.forEach(item => {
|
||||||
this.selectedMaterialItems = selection;
|
// 判断是否已经存在于已选列表中,避免重复添加
|
||||||
|
if (!this.selectedMaterialItems.some(selectedItem => selectedItem.materialName === item.materialName)) {
|
||||||
|
this.selectedMaterialItems.push(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
removeSelectedItem(selectedItem) {
|
removeSelectedItem(selectedItem) {
|
||||||
// 移除选中的记录
|
// 判断当前数据是否被选择
|
||||||
const index = this.selectedMaterialItems.indexOf(selectedItem);
|
const isSelected = this.$refs.materialTable.selection.includes(selectedItem);
|
||||||
|
|
||||||
|
// 从已选列表中移除该项
|
||||||
|
const index = this.selectedMaterialItems.findIndex(item => item.materialName === selectedItem.materialName);
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
this.selectedMaterialItems.splice(index, 1);
|
this.selectedMaterialItems.splice(index, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 同步取消左侧表格中对应项的选择
|
// 如果当前数据被选择,则取消 el-table 中该项的选择状态
|
||||||
const tableIndex = this.materialTableData.indexOf(selectedItem);
|
if (isSelected) {
|
||||||
if (tableIndex !== -1) {
|
this.$refs.materialTable.toggleRowSelection(selectedItem, false);
|
||||||
this.$refs.materialTable.toggleRowSelection(this.materialTableData[tableIndex]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
addMaterialToTable() {
|
addMaterialToTable() {
|
||||||
|
@ -625,7 +634,7 @@
|
||||||
searchMaterial() {
|
searchMaterial() {
|
||||||
if(this.precMaterialName === '' && this.vagueMaterialName === '' && this.vagueModel === '') {
|
if(this.precMaterialName === '' && this.vagueMaterialName === '' && this.vagueModel === '') {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: '请输入你要查询的无聊条件',
|
message: '请输入你要查询的物料条件',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
});
|
});
|
||||||
}else {
|
}else {
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -86,16 +86,17 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.materialDialogTable .el-table__header-wrapper .el-table__header .el-checkbox {
|
||||||
|
display: none;
|
||||||
.el-table .el-table__cell {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-row {
|
.el-table .cell {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.el-col {
|
.el-col {
|
||||||
height: 42px;
|
height: 42px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,3 +5,11 @@ const queryRegionListByName = (params) => {
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const queryMaterialListByParam = (params) => {
|
||||||
|
return $axios({
|
||||||
|
url: '/zmquotation/materialList',
|
||||||
|
method: 'post',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
|
@ -192,11 +192,6 @@
|
||||||
prop="standard"
|
prop="standard"
|
||||||
label="标准">
|
label="标准">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
|
||||||
width="180"
|
|
||||||
prop="core"
|
|
||||||
label="线芯">
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
width="180"
|
width="180"
|
||||||
prop="costPrice"
|
prop="costPrice"
|
||||||
|
@ -210,7 +205,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
width="180"
|
width="180"
|
||||||
prop="netVolume"
|
prop="netVolume"
|
||||||
label="净量">
|
label="净重量">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
width="180"
|
width="180"
|
||||||
|
@ -254,7 +249,7 @@
|
||||||
width="80"
|
width="80"
|
||||||
label="操作">
|
label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button @click="handleDeleteClick(scope.row)" style="color: red;" type="text">删除</el-button>
|
<el-button @click="handleDeleteClick(scope.$index)" style="color: red;" type="text">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -320,29 +315,31 @@
|
||||||
></el-pagination>
|
></el-pagination>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog class="materialDialogTable" :visible.sync="dialogMaterialVisible" width="1300px">
|
<el-dialog class="materialDialogTable" :visible.sync="dialogMaterialVisible" width="1200px">
|
||||||
<div slot="title" class="regionTable-title" style="margin: 0px">
|
<div slot="title" class="regionTable-title" style="margin: 0px">
|
||||||
<el-form>
|
<el-form>
|
||||||
<el-form-item >
|
<el-form-item >
|
||||||
<el-input style="width: 200px; " v-model="regionName" placeholder="开头精确查询">
|
<el-input style="width: 200px; " v-model="precMaterialName" placeholder="开头物料名称精确查询">
|
||||||
</el-input>
|
</el-input>
|
||||||
<el-input style="width: 200px; " v-model="regionName" placeholder="模糊查询">
|
<el-input style="width: 200px; " v-model="vagueMaterialName" placeholder="物料名称模糊查询">
|
||||||
</el-input>
|
</el-input>
|
||||||
<el-input style="width: 200px; " v-model="regionName" placeholder="结尾精确查询">
|
<el-input style="width: 200px; " v-model="vagueModel" placeholder="型号模糊查询">
|
||||||
</el-input>
|
</el-input>
|
||||||
<el-button type="primary" size="small" @click="searchRegion">查询物料</el-button>
|
<el-button type="primary" size="small" @click="searchMaterial">查询物料</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: flex; flex-direction: row;">
|
<div style="display: flex; flex-direction: row;">
|
||||||
<div style="width: 866px">
|
<div style="width: 766px">
|
||||||
<el-table
|
<el-table
|
||||||
:data="materialTableData"
|
:data="getCurrentMaterialData"
|
||||||
ref="materialTable"
|
ref="materialTable"
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
|
:header-cell-style="{ background: '#eef1f6', color: '#606266', 'text-align': 'center', 'padding': '0px'}"
|
||||||
:cell-style="{'text-align': 'center', 'padding': '5px 0px'}"
|
:cell-style="{'text-align': 'center', 'padding': '5px 0px'}"
|
||||||
highlight-selection-row
|
highlight-selection-row
|
||||||
|
:row-key="row => row.materialName"
|
||||||
|
:reserve-selection="true"
|
||||||
border>
|
border>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
type="selection"
|
type="selection"
|
||||||
|
@ -378,12 +375,15 @@
|
||||||
prop="standard"
|
prop="standard"
|
||||||
label="标准">
|
label="标准">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
|
||||||
width="100"
|
|
||||||
prop="core"
|
|
||||||
label="线芯">
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<div style="text-align: center; margin-top: 10px;">
|
||||||
|
<el-pagination
|
||||||
|
@current-change="handleMaterialCurrentChange"
|
||||||
|
:current-page.sync="materialCurrentPage"
|
||||||
|
:page-size="pageSize"
|
||||||
|
:total="materialTableData.length"
|
||||||
|
></el-pagination>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="flex-grow: 1; padding-left: 20px;">
|
<div style="flex-grow: 1; padding-left: 20px;">
|
||||||
<div
|
<div
|
||||||
|
@ -396,6 +396,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="text-align: center; padding-top: 20px">
|
<div style="text-align: center; padding-top: 20px">
|
||||||
<el-button-group>
|
<el-button-group>
|
||||||
<el-button type="primary" size="small" style="margin-right: 80px" @click="addMaterialToTable">确认</el-button>
|
<el-button type="primary" size="small" style="margin-right: 80px" @click="addMaterialToTable">确认</el-button>
|
||||||
|
@ -465,28 +466,41 @@
|
||||||
dialogRegionVisible: false,
|
dialogRegionVisible: false,
|
||||||
regionName: '',
|
regionName: '',
|
||||||
regionCurrentPage: 1,
|
regionCurrentPage: 1,
|
||||||
|
materialCurrentPage: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
dialogMaterialVisible: false,
|
dialogMaterialVisible: false,
|
||||||
materialTableData: [
|
materialTableData: [
|
||||||
{
|
{ materialName: 'Material 1', model: 'Model A', specification: 'Spec 1', voltage: '220V', standard: 'Standard 1' },
|
||||||
materialName: 'Material 1',
|
{ materialName: 'Material 2', model: 'Model B', specification: 'Spec 2', voltage: '110V', standard: 'Standard 2' },
|
||||||
model: 'Model A',
|
// ... (previous data)
|
||||||
district: 'Spec 1',
|
|
||||||
voltage: '220V',
|
// Additional test data
|
||||||
standard: 'Standard 1',
|
{ materialName: 'Material 3', model: 'Model C', specification: 'Spec 3', voltage: '120V', standard: 'Standard 3' },
|
||||||
core: 'Core X'
|
{ materialName: 'Material 4', model: 'Model D', specification: 'Spec 4', voltage: '230V', standard: 'Standard 4' },
|
||||||
},
|
{ materialName: 'Material 5', model: 'Model E', specification: 'Spec 5', voltage: '240V', standard: 'Standard 5' },
|
||||||
{
|
{ materialName: 'Material 6', model: 'Model F', specification: 'Spec 6', voltage: '110V', standard: 'Standard 6' },
|
||||||
materialName: 'Material 2',
|
{ materialName: 'Material 7', model: 'Model G', specification: 'Spec 7', voltage: '220V', standard: 'Standard 7' },
|
||||||
model: 'Model B',
|
{ materialName: 'Material 8', model: 'Model H', specification: 'Spec 8', voltage: '120V', standard: 'Standard 8' },
|
||||||
district: 'Spec 2',
|
{ materialName: 'Material 9', model: 'Model I', specification: 'Spec 9', voltage: '230V', standard: 'Standard 9' },
|
||||||
voltage: '110V',
|
{ materialName: 'Material 10', model: 'Model J', specification: 'Spec 10', voltage: '240V', standard: 'Standard 10' },
|
||||||
standard: 'Standard 2',
|
// ... (repeat similar structure for more data)
|
||||||
core: 'Core Y'
|
{ materialName: 'Material 11', model: 'Model K', specification: 'Spec 11', voltage: '120V', standard: 'Standard 11' },
|
||||||
},
|
{ materialName: 'Material 12', model: 'Model L', specification: 'Spec 12', voltage: '230V', standard: 'Standard 12' },
|
||||||
// Add more data as needed
|
{ materialName: 'Material 13', model: 'Model M', specification: 'Spec 13', voltage: '240V', standard: 'Standard 13' },
|
||||||
|
{ materialName: 'Material 14', model: 'Model N', specification: 'Spec 14', voltage: '110V', standard: 'Standard 14' },
|
||||||
|
{ materialName: 'Material 15', model: 'Model O', specification: 'Spec 15', voltage: '220V', standard: 'Standard 15' },
|
||||||
|
{ materialName: 'Material 16', model: 'Model P', specification: 'Spec 16', voltage: '120V', standard: 'Standard 16' },
|
||||||
|
{ materialName: 'Material 17', model: 'Model Q', specification: 'Spec 17', voltage: '230V', standard: 'Standard 17' },
|
||||||
|
{ materialName: 'Material 18', model: 'Model R', specification: 'Spec 18', voltage: '240V', standard: 'Standard 18' },
|
||||||
|
{ materialName: 'Material 19', model: 'Model S', specification: 'Spec 19', voltage: '110V', standard: 'Standard 19' },
|
||||||
|
{ materialName: 'Material 20', model: 'Model T', specification: 'Spec 20', voltage: '220V', standard: 'Standard 20' },
|
||||||
],
|
],
|
||||||
selectedMaterialItems: [], // 选中的数据
|
selectedMaterialItems: [], // 选中的数据
|
||||||
|
savedSelectedMaterials: [], // 保存选中的数据
|
||||||
|
precMaterialName: '',
|
||||||
|
vagueMaterialName: '',
|
||||||
|
vagueModel: '',
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -496,14 +510,18 @@
|
||||||
return this.regionTableData.slice(start, end);
|
return this.regionTableData.slice(start, end);
|
||||||
},
|
},
|
||||||
getCurrentMaterialData() {
|
getCurrentMaterialData() {
|
||||||
|
const start = (this.materialCurrentPage - 1) * this.pageSize;
|
||||||
|
const end = start + this.pageSize;
|
||||||
|
return this.materialTableData.slice(start, end);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.materialTable.setSelection(this.selectedMaterialItems);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async init () {
|
async init () {
|
||||||
|
@ -560,31 +578,42 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
handleRegionCurrentChange(val) {
|
handleRegionCurrentChange(val) {
|
||||||
this.currentPage = val;
|
this.currentPage = val;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleMaterialCurrentChange(val) {
|
||||||
|
this.currentPage = val;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
addMaterial(){
|
addMaterial(){
|
||||||
this.dialogMaterialVisible = true;
|
this.dialogMaterialVisible = true;
|
||||||
},
|
},
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
// 当选择发生变化时更新选中数据
|
selection.forEach(item => {
|
||||||
this.selectedMaterialItems = selection;
|
// 判断是否已经存在于已选列表中,避免重复添加
|
||||||
|
if (!this.selectedMaterialItems.some(selectedItem => selectedItem.materialName === item.materialName)) {
|
||||||
|
this.selectedMaterialItems.push(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
removeSelectedItem(selectedItem) {
|
removeSelectedItem(selectedItem) {
|
||||||
// 移除选中的记录
|
// 判断当前数据是否被选择
|
||||||
const index = this.selectedMaterialItems.indexOf(selectedItem);
|
const isSelected = this.$refs.materialTable.selection.includes(selectedItem);
|
||||||
|
|
||||||
|
// 从已选列表中移除该项
|
||||||
|
const index = this.selectedMaterialItems.findIndex(item => item.materialName === selectedItem.materialName);
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
this.selectedMaterialItems.splice(index, 1);
|
this.selectedMaterialItems.splice(index, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 同步取消左侧表格中对应项的选择
|
// 如果当前数据被选择,则取消 el-table 中该项的选择状态
|
||||||
const tableIndex = this.materialTableData.indexOf(selectedItem);
|
if (isSelected) {
|
||||||
if (tableIndex !== -1) {
|
this.$refs.materialTable.toggleRowSelection(selectedItem, false);
|
||||||
this.$refs.materialTable.toggleRowSelection(this.materialTableData[tableIndex]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
addMaterialToTable() {
|
addMaterialToTable() {
|
||||||
|
@ -600,6 +629,29 @@
|
||||||
|
|
||||||
closeMaterialDialog() {
|
closeMaterialDialog() {
|
||||||
this.dialogMaterialVisible = false;
|
this.dialogMaterialVisible = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
searchMaterial() {
|
||||||
|
if(this.precMaterialName === '' && this.vagueMaterialName === '' && this.vagueModel === '') {
|
||||||
|
this.$message({
|
||||||
|
message: '请输入你要查询的物料条件',
|
||||||
|
type: 'warning'
|
||||||
|
});
|
||||||
|
}else {
|
||||||
|
const params = {
|
||||||
|
precMaterialName : this.precMaterialName,
|
||||||
|
vagueMaterialName : this.vagueMaterialName,
|
||||||
|
vagueModel : this.vagueModel
|
||||||
|
}
|
||||||
|
|
||||||
|
queryMaterialListByParam(params).then(res => {
|
||||||
|
this.materialTableData = res.data || []
|
||||||
|
this.materialCurrentPage = 1;
|
||||||
|
}).catch(err => {
|
||||||
|
this.$message.error('请求出错了:' + err)
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue