You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1492 lines
51 KiB
1492 lines
51 KiB
4 years ago
|
<!--未知总成管理页-->
|
||
|
<template>
|
||
|
<div class="cr-body-content">
|
||
|
<flexbox class="content-header">
|
||
|
<el-form
|
||
|
:model="listQuery"
|
||
|
ref="queryForm"
|
||
|
v-show="showSearch"
|
||
|
:inline="true"
|
||
|
>
|
||
|
<el-form-item label="KNR" prop="KNR">
|
||
|
<el-input
|
||
|
v-model="listQuery.KNR"
|
||
|
placeholder="请输入KNR号"
|
||
|
clearable
|
||
|
size="small"
|
||
|
style="width: 240px"
|
||
|
@keyup.enter.native="handleQuery"
|
||
|
/>
|
||
|
</el-form-item>
|
||
|
<el-form-item label="底盘号" prop="VIN">
|
||
|
<el-input
|
||
|
v-model="listQuery.VIN"
|
||
|
placeholder="请输入底盘号"
|
||
|
clearable
|
||
|
size="small"
|
||
|
style="width: 240px"
|
||
|
@keyup.enter.native="handleQuery"
|
||
|
/>
|
||
|
</el-form-item>
|
||
|
|
||
|
<el-form-item label="车型代码" prop="VehicleModelCode">
|
||
|
<el-input
|
||
|
v-model="listQuery.VehicleModelCode"
|
||
|
placeholder="请输入车型代码"
|
||
|
clearable
|
||
|
size="small"
|
||
|
style="width: 240px"
|
||
|
@keyup.enter.native="handleQuery"
|
||
|
/>
|
||
|
</el-form-item>
|
||
|
|
||
|
<el-form-item label="版本" prop="Version">
|
||
|
<el-input
|
||
|
v-model="listQuery.Version"
|
||
|
placeholder="请输入版本"
|
||
|
clearable
|
||
|
size="small"
|
||
|
style="width: 240px"
|
||
|
@keyup.enter.native="handleQuery"
|
||
|
/>
|
||
|
</el-form-item>
|
||
|
|
||
|
<el-form-item label="上线日期">
|
||
|
<el-date-picker
|
||
|
v-model="OnlineTimeVale"
|
||
|
size="small"
|
||
|
style="width: 380px"
|
||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||
|
type="datetimerange"
|
||
|
range-separator="-"
|
||
|
start-placeholder="开始日期"
|
||
|
end-placeholder="结束日期"
|
||
|
></el-date-picker>
|
||
|
</el-form-item>
|
||
|
|
||
|
<el-form-item>
|
||
|
<el-button
|
||
|
class="filter-item"
|
||
|
size="mini"
|
||
|
type="primary"
|
||
|
icon="el-icon-plus"
|
||
|
@click="handleUpdate()"
|
||
|
>重新解析(批量操作)
|
||
|
</el-button>
|
||
|
</el-form-item>
|
||
|
|
||
|
<el-form-item>
|
||
|
<el-button
|
||
|
class="addAssy"
|
||
|
size="mini"
|
||
|
type="primary"
|
||
|
icon="el-icon-plus"
|
||
|
@click="handleCreate"
|
||
|
>添加总成
|
||
|
</el-button>
|
||
|
</el-form-item>
|
||
|
|
||
|
<el-form-item label="扫描点" prop="ScanPoint">
|
||
|
<el-input
|
||
|
v-model="listQuery.ScanPoint"
|
||
|
placeholder="请输入扫描点"
|
||
|
clearable
|
||
|
size="small"
|
||
|
style="width: 240px"
|
||
|
@keyup.enter.native="handleQuery"
|
||
|
/>
|
||
|
</el-form-item>
|
||
|
|
||
|
<el-form-item>
|
||
|
<el-button
|
||
|
type="primary"
|
||
|
icon="el-icon-search"
|
||
|
size="mini"
|
||
|
@click="handleFilter"
|
||
|
>搜索</el-button
|
||
|
>
|
||
|
<el-button
|
||
|
icon="el-icon-refresh"
|
||
|
size="mini"
|
||
|
@click="resetQuery('queryForm')"
|
||
|
>重置</el-button
|
||
|
>
|
||
|
<el-button
|
||
|
type="warning"
|
||
|
plain
|
||
|
icon="el-icon-download"
|
||
|
size="mini"
|
||
|
style="margin-left: 15px"
|
||
|
@click="handleDownload()"
|
||
|
>导出(Excel)
|
||
|
</el-button>
|
||
|
|
||
|
<el-button
|
||
|
class="filter-item"
|
||
|
plain
|
||
|
size="mini"
|
||
|
type="success"
|
||
|
icon="el-icon-check"
|
||
|
@click="handleUpdateAll()"
|
||
|
>重新解析(执行全部)
|
||
|
</el-button>
|
||
|
</el-form-item>
|
||
|
</el-form>
|
||
|
</flexbox>
|
||
|
<div class="l-table">
|
||
|
<!--表格渲染-->
|
||
|
<el-table
|
||
|
ref="multipleTable"
|
||
|
v-loading="listLoading"
|
||
|
element-loading-text="拼命加载中..."
|
||
|
element-loading-spinner="el-icon-loading"
|
||
|
class="cr-table"
|
||
|
:data="list"
|
||
|
:height="tableHeight"
|
||
|
:cell-style="cellStyle"
|
||
|
:header-cell-style="headerRowStyle"
|
||
|
size="small"
|
||
|
stripe
|
||
|
highlight-current-row
|
||
|
style="width: 100%"
|
||
|
@sort-change="sortChange"
|
||
|
@selection-change="handleSelectionChange"
|
||
|
@row-click="handleRowClick"
|
||
|
>
|
||
|
<el-table-column type="selection" width="44px"></el-table-column>
|
||
|
<el-table-column
|
||
|
label="底盘号"
|
||
|
prop="vin"
|
||
|
sortable
|
||
|
align="center"
|
||
|
fixed
|
||
|
width="180px"
|
||
|
>
|
||
|
<template slot-scope="scope">
|
||
|
<span class="link-type" @click="handleDrawerOpen(scope.row)">{{
|
||
|
scope.row.vin
|
||
|
}}</span>
|
||
|
</template>
|
||
|
</el-table-column>
|
||
|
<el-table-column
|
||
|
v-for="(item, index) in getDefaultField"
|
||
|
:key="index"
|
||
|
:prop="item.prop"
|
||
|
:label="item.label"
|
||
|
:min-width="item.width"
|
||
|
:formatter="fieldFormatter"
|
||
|
sortable
|
||
|
show-overflow-tooltip
|
||
|
:gutter="0"
|
||
|
>
|
||
|
<template slot="header" slot-scope="scope">
|
||
|
{{ scope.column.label }}
|
||
|
</template>
|
||
|
</el-table-column>
|
||
|
<!-- <el-table-column label="操作" align="center" width="128px">
|
||
|
<template slot-scope="{ row }">
|
||
|
<el-button
|
||
|
type="primary"
|
||
|
size="mini"
|
||
|
@click="handleUpdate(row)"
|
||
|
icon="el-icon-edit"
|
||
|
/>
|
||
|
</template>
|
||
|
</el-table-column> -->
|
||
|
</el-table>
|
||
|
</div>
|
||
|
|
||
|
<div class="table-footer">
|
||
|
<!-- 分页控件 style="margin-top: -25px;margin-bottom:-25px;float:right;"-->
|
||
|
<pagination
|
||
|
v-show="totalCount > 0"
|
||
|
:total="totalCount"
|
||
|
:page.sync="page"
|
||
|
:limit.sync="listQuery.MaxResultCount"
|
||
|
@pagination="getList"
|
||
|
/>
|
||
|
<!-- 抽屉控件 -->
|
||
|
<el-drawer
|
||
|
title="信息详细页"
|
||
|
size="75%"
|
||
|
direction="rtl"
|
||
|
:visible.sync="drawer"
|
||
|
:before-close="handleDrawerClose"
|
||
|
>
|
||
|
<div>
|
||
|
<Detail
|
||
|
v-bind:customerInfos="customerInfos"
|
||
|
style="margin-top: -35px"
|
||
|
></Detail>
|
||
|
</div>
|
||
|
</el-drawer>
|
||
|
|
||
|
<!--添加总成-->
|
||
|
<el-dialog
|
||
|
:visible.sync="dialogFormVisible"
|
||
|
:close-on-click-modal="false"
|
||
|
:title="formTitle"
|
||
|
append-to-body
|
||
|
width="1000px"
|
||
|
>
|
||
|
<div style="width:980px;height:600px">
|
||
|
<el-row>
|
||
|
<el-col :span="8">
|
||
|
<div style="border:1px;width:280px">
|
||
|
<el-row>
|
||
|
<div class="app">
|
||
|
<!-- handleCurrentChange -->
|
||
|
<el-table border style="margin:0px;width:280px;" height="260px" ref="asTable" :data="erpAssemblyCfgList" highlight-current-row @row-click="rowClickass" @select="selectAss">
|
||
|
<el-table-column type="selection" width="40px"></el-table-column>
|
||
|
<el-table-column prop="erpAssemblyCode" label="总成编号" align="center" width="178px"></el-table-column>
|
||
|
<!-- 添加删除按钮 -->
|
||
|
<el-table-column align="center" width="61px">
|
||
|
<!-- type="button" :render-header="renderHeader" -->
|
||
|
<!-- <template slot="header" slot-scope="scope">
|
||
|
<el-button @click="addzc(scope.$index,scope.row)" icon="el-icon-plus">
|
||
|
</el-button>
|
||
|
</template> -->
|
||
|
<template slot-scope="scope">
|
||
|
<el-button @click="delzc(scope.$index,scope.row)" icon="el-icon-minus" size="mini" align="left">
|
||
|
</el-button>
|
||
|
</template>
|
||
|
</el-table-column>
|
||
|
</el-table>
|
||
|
</div>
|
||
|
</el-row>
|
||
|
<el-row>
|
||
|
<div style="width:280px;border:1px" >
|
||
|
<el-divider content-position="center">添加Erp总成</el-divider>
|
||
|
<el-form style="border:1px" :label-position="labelPosition" label-width="100px" :model="assly" ref="assly" border>
|
||
|
<el-form-item label="Erp总成编码" style="height:40px;width:280px">
|
||
|
<el-input v-model="assly.erpAssemblyCode" clearable placeholder="请输入Erp总成编码"></el-input>
|
||
|
</el-form-item>
|
||
|
<el-form-item label="Erp总成名称" style="height:40px;width:280px">
|
||
|
<el-input v-model="assly.erpAssemblyName" clearable placeholder="请输入Erp总成名称"></el-input>
|
||
|
</el-form-item>
|
||
|
<el-form-item label="车型" style="height:40px;">
|
||
|
<!-- <el-input v-model="assly.carModel" clearable></el-input> -->
|
||
|
<el-select v-model="assly.carModel" clearable placeholder="请选择车型">
|
||
|
<el-option
|
||
|
v-for="item in vehicleModelList"
|
||
|
:key="item.id"
|
||
|
:label="item.dicItemName"
|
||
|
:value="item.dicItemCode"/>
|
||
|
</el-select>
|
||
|
</el-form-item>
|
||
|
<el-form-item>
|
||
|
<el-button type="primary" @click="submitAssyForm('assly')">添加</el-button>
|
||
|
</el-form-item>
|
||
|
</el-form>
|
||
|
</div>
|
||
|
</el-row>
|
||
|
</div>
|
||
|
</el-col>
|
||
|
<el-col :span="7">
|
||
|
<div style="border:1px;height:570px;width:270px">
|
||
|
<el-table :data="tempdetails" ref="leftTable" height="550" stripe border highlight-current-row @row-click="rowClickLeft" @select="selectLeft">
|
||
|
<el-table-column type="selection" width="40px"></el-table-column>
|
||
|
<el-table-column prop="partCode" label="结算件代码" width="150px" align="center"></el-table-column>
|
||
|
<el-table-column prop="partNum" label="数量" width="78px" align="center"></el-table-column>
|
||
|
</el-table>
|
||
|
</div>
|
||
|
</el-col>
|
||
|
<el-col :span="2">
|
||
|
<!-- 左右穿梭按钮 -->
|
||
|
<div align="center" style="height:570px;width:70px">
|
||
|
<el-row style="line-height: 300px;">
|
||
|
<el-button @click="btnleftclick()" icon="el-icon-caret-left"></el-button>
|
||
|
</el-row>
|
||
|
<el-row>
|
||
|
<el-button @click="btnrightclick()" icon="el-icon-caret-right"></el-button>
|
||
|
</el-row>
|
||
|
</div>
|
||
|
</el-col>
|
||
|
<el-col :span="7">
|
||
|
<div style="border:1px;height:570px;width:270px">
|
||
|
<el-table :data="data2" ref="rightTable" height="550" stripe border highlight-current-row @row-click="rowClickRight" @select="selectRight">
|
||
|
<el-table-column type="selection" width="40px"></el-table-column>
|
||
|
<el-table-column prop="partCode" label="结算件代码" width="150px" align="center"></el-table-column>
|
||
|
<el-table-column prop="partNum" label="数量" width="78px" align="center"></el-table-column>
|
||
|
</el-table>
|
||
|
</div>
|
||
|
</el-col>
|
||
|
<!-- <el-table-transfer
|
||
|
leftTitle="结算件"
|
||
|
rightTitle="未知总成"
|
||
|
:columns='columns'
|
||
|
:dataLeft="data1"
|
||
|
:dataRight="data2"
|
||
|
>
|
||
|
<template v-slot:default="{scope}">
|
||
|
<div>
|
||
|
{{scope.row[scope.col.value]}}
|
||
|
</div>
|
||
|
</template>
|
||
|
</el-table-transfer> -->
|
||
|
<!-- 可以使用插槽获取到列信息和行信息,从而进行数据的处理 -->
|
||
|
<!-- <el-col :span="17"></el-col> -->
|
||
|
</el-row>
|
||
|
|
||
|
<div slot="footer" class="dialog-footer" align="right" style="width:950px">
|
||
|
<el-button v-loading="formLoading" type="primary" @click="save">确认</el-button>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
</el-dialog>
|
||
|
|
||
|
<!-- 移动数量窗体 -->
|
||
|
<el-dialog
|
||
|
:visible.sync="dialogNumVisible"
|
||
|
:close-on-click-modal="false"
|
||
|
:title="numTitle"
|
||
|
append-to-body
|
||
|
width="570px"
|
||
|
>
|
||
|
<div>
|
||
|
<el-form :model="numFormData" ref="numFormData" label-width="100px" class="num-ruleForm">
|
||
|
<el-form-item
|
||
|
label="数量"
|
||
|
prop="num"
|
||
|
:rules="[
|
||
|
{ required: true, message: '数量不能为空且至少为1'},
|
||
|
]"
|
||
|
>
|
||
|
<el-input type="text" v-model="numFormData.num"></el-input>
|
||
|
</el-form-item>
|
||
|
</el-form>
|
||
|
</div>
|
||
|
<div slot="footer" class="dialog-footer">
|
||
|
<el-button v-loading="formLoading" type="primary" @click="saveNum()">确认</el-button>
|
||
|
<el-button type="text" @click="dialogNumVisible = false">取消</el-button>
|
||
|
</div>
|
||
|
</el-dialog>
|
||
|
</div>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import Pagination from "@/components/Pagination";
|
||
|
import permission from "@/directive/permission/index.js";
|
||
|
import CRMTableHead from "../../components/CRMTableHead";
|
||
|
import importExcel from "@/components/ImportExcel-vw";
|
||
|
import moment from "moment";
|
||
|
import Detail from "./detail.vue";
|
||
|
|
||
|
//组件计量单位
|
||
|
const bomUnit = [
|
||
|
{ key: 0, display_name: "PC" },
|
||
|
{ key: 1, display_name: "TON" },
|
||
|
{ key: 2, display_name: "Other" },
|
||
|
];
|
||
|
const projectTypeKeyValue = bomUnit.reduce((acc, cur) => {
|
||
|
acc[cur.key] = cur.display_name;
|
||
|
return acc;
|
||
|
}, {});
|
||
|
|
||
|
export default {
|
||
|
name: "UnknownAssembly",
|
||
|
components: { Pagination, CRMTableHead, importExcel, Detail},
|
||
|
directives: { permission },
|
||
|
filters: {
|
||
|
IsCustomerSignFilter(status) {
|
||
|
//翻译是否签字
|
||
|
const statusMap = {
|
||
|
true: "是",
|
||
|
false: "否",
|
||
|
};
|
||
|
return statusMap[status];
|
||
|
},
|
||
|
},
|
||
|
data() {
|
||
|
const validVersion = (rule, value, callback) => {
|
||
|
let numberReg = /^\d{6}$/;
|
||
|
if (!numberReg.test(value)) {
|
||
|
callback(new Error("只能为6位数字!"));
|
||
|
} else {
|
||
|
callback();
|
||
|
}
|
||
|
};
|
||
|
return {
|
||
|
crmType: "bomdatabase",
|
||
|
rules: {
|
||
|
erpAssemblyName: [
|
||
|
{ required: true, message: "必须输入!", trigger: "blur" },
|
||
|
],
|
||
|
},
|
||
|
valueSelect: "",
|
||
|
OnlineTimeVale: [],//上线时间
|
||
|
customerInfos: [],
|
||
|
dialogOptions: [],
|
||
|
versionValue: "",
|
||
|
asTemp:[],//总成编号点击缓存
|
||
|
rightRowTemp: [],//右侧移动点击缓存
|
||
|
leftRowTemp: [],//左侧移动点击缓存
|
||
|
selectioned:'',//单选中的值
|
||
|
carModels:[],//车型下拉框数据源
|
||
|
currentRow: "",
|
||
|
versionList: [], //版本列表
|
||
|
searchContent: "", // 输入内容
|
||
|
showExcelImport: false,
|
||
|
form: {},
|
||
|
drawer: false,
|
||
|
list: null,
|
||
|
totalCount: 0,
|
||
|
listLoading: true,
|
||
|
customerInfo: {
|
||
|
bomId: "",
|
||
|
},
|
||
|
// 高级搜索
|
||
|
filterObj: {
|
||
|
type: Object,
|
||
|
default: () => {
|
||
|
return {};
|
||
|
},
|
||
|
},
|
||
|
listQuery: {
|
||
|
SkipCount: 0,
|
||
|
MaxResultCount: 15,
|
||
|
OnlineTimeBegin: undefined,
|
||
|
OnlineTimeEnd: undefined,
|
||
|
KNR: undefined,
|
||
|
VIN: undefined,
|
||
|
ScanPoint: undefined,
|
||
|
},
|
||
|
listUnknownAssemblyQuery: {
|
||
|
billId:'',
|
||
|
//apply:"",
|
||
|
vin:'',
|
||
|
},
|
||
|
page: 1,
|
||
|
// 显示搜索条件
|
||
|
showSearch: true,
|
||
|
bomUnit,
|
||
|
multipleSelection: [],
|
||
|
drawer: false,
|
||
|
dialogFormVisible: false,
|
||
|
dialogNumVisible: false,
|
||
|
formTitle: "",
|
||
|
numTitle: "",
|
||
|
isEdit: false,
|
||
|
formLoading: false,
|
||
|
//dialogFormVisible: false,
|
||
|
tableHeight: document.documentElement.clientHeight - 220,
|
||
|
//columns: [
|
||
|
// {name: '结算件代码', value: 'partCode', width: '180px'},
|
||
|
// {name: '数量', value: 'partNum',},
|
||
|
// ],
|
||
|
// data1: [
|
||
|
// ],
|
||
|
|
||
|
numFormData:{
|
||
|
num: 1
|
||
|
},
|
||
|
zcCode:[],
|
||
|
/*最终提交缓存*/
|
||
|
tempAssCfgList: [
|
||
|
],
|
||
|
/*右侧数据源*/
|
||
|
data2: [],
|
||
|
/*中间数据源*/
|
||
|
tempdetails:[
|
||
|
//{
|
||
|
// partCode: "1",
|
||
|
// partNum: 0,
|
||
|
// isKey: true
|
||
|
//}
|
||
|
],
|
||
|
/*左侧总成数据源*/
|
||
|
erpAssemblyCfgList: [],
|
||
|
// {
|
||
|
// erpAssemblyCode: "string",
|
||
|
// erpAssemblyName: "string",
|
||
|
// isCover: true,
|
||
|
// carModel: "",
|
||
|
// previousVersionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||
|
// details: [
|
||
|
// {
|
||
|
// partCode: "string",
|
||
|
// partNum: 0,
|
||
|
// description: "string",
|
||
|
// isKey: true
|
||
|
// }
|
||
|
// ]
|
||
|
// }
|
||
|
labelPosition: 'left',
|
||
|
assly: {
|
||
|
erpAssemblyCode: '',
|
||
|
erpAssemblyName: '',
|
||
|
carModel: ''
|
||
|
},
|
||
|
vehicleModelQuery:{
|
||
|
dicTypeName:"派格车型",
|
||
|
},
|
||
|
vehicleModelList:[],//车型list
|
||
|
};
|
||
|
},
|
||
|
mounted() {
|
||
|
var self = this;
|
||
|
window.onresize = function () {
|
||
|
var offsetHei = document.documentElement.clientHeight;
|
||
|
self.tableHeight = offsetHei - 220;
|
||
|
};
|
||
|
},
|
||
|
created() {
|
||
|
this.getList();
|
||
|
},
|
||
|
computed: {
|
||
|
getDefaultField() {
|
||
|
var tempsTabs = [];
|
||
|
tempsTabs.push({
|
||
|
label: "大众顺序号",
|
||
|
prop: "hostSN",
|
||
|
width: 150,
|
||
|
});
|
||
|
tempsTabs.push({
|
||
|
label: "KNR",
|
||
|
prop: "knr",
|
||
|
width: 120,
|
||
|
});
|
||
|
tempsTabs.push({
|
||
|
label: "上线时间",
|
||
|
prop: "onlineTime",
|
||
|
width: 150,
|
||
|
});
|
||
|
tempsTabs.push({
|
||
|
label: "扫描点",
|
||
|
prop: "scanPoint",
|
||
|
width: 150,
|
||
|
});
|
||
|
tempsTabs.push({
|
||
|
label: "车型代码",
|
||
|
prop: "vehicleModelCode",
|
||
|
width: 120,
|
||
|
});
|
||
|
tempsTabs.push({
|
||
|
label: "车型名称",
|
||
|
prop: "vehicleModelName",
|
||
|
width: 150,
|
||
|
});
|
||
|
tempsTabs.push({
|
||
|
label: "版本",
|
||
|
prop: "version",
|
||
|
width: 150,
|
||
|
});
|
||
|
tempsTabs.push({ label: "客户零件数量", prop: "partNum", width: 135 });
|
||
|
tempsTabs.push({
|
||
|
label: "文件名",
|
||
|
prop: "fileName",
|
||
|
width: 180,
|
||
|
});
|
||
|
return tempsTabs;
|
||
|
},
|
||
|
},
|
||
|
methods: {
|
||
|
//抽屉
|
||
|
handleDrawerOpen(param) {
|
||
|
this.drawer = true;
|
||
|
var parentId = param.id; //主键id
|
||
|
this.customerInfos = [
|
||
|
{
|
||
|
ParentId: parentId,
|
||
|
},
|
||
|
];
|
||
|
},
|
||
|
handleDrawerClose(done) {
|
||
|
done();
|
||
|
},
|
||
|
handleUpdateAll() {
|
||
|
var params = {
|
||
|
isSelectAll: true,
|
||
|
unknownAssemblyIdList: [],
|
||
|
};
|
||
|
this.$confirm("是否要全部进行解析?", "提示", {
|
||
|
confirmButtonText: "确定",
|
||
|
cancelButtonText: "取消",
|
||
|
type: "warning",
|
||
|
})
|
||
|
.then(() => {
|
||
|
this.$axios
|
||
|
.posts("/api/newjit/unknown-assembly/to-parse", params)
|
||
|
.then((response) => {
|
||
|
if (response.status == true) {
|
||
|
this.$notify({
|
||
|
title: "成功",
|
||
|
message: "操作成功!",
|
||
|
type: "success",
|
||
|
duration: 2000,
|
||
|
});
|
||
|
this.getList();
|
||
|
} else {
|
||
|
this.$message({
|
||
|
type: "warning",
|
||
|
message: response.message,
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
})
|
||
|
.catch(() => {});
|
||
|
},
|
||
|
/** 重新计算总成 */
|
||
|
handleUpdate(row) {
|
||
|
if (this.multipleSelection.length == 0) {
|
||
|
this.$message({
|
||
|
message: "必须选择一行",
|
||
|
type: "warning",
|
||
|
});
|
||
|
return;
|
||
|
} else {
|
||
|
//批量操作
|
||
|
var params = {
|
||
|
isSelectAll: false,
|
||
|
unknownAssemblyIdList: [],
|
||
|
};
|
||
|
if (row) {
|
||
|
//单行
|
||
|
params.unknownAssemblyIdList.push(row.id);
|
||
|
} else {
|
||
|
//多选
|
||
|
this.multipleSelection.forEach((element) => {
|
||
|
let id = element.id;
|
||
|
params.unknownAssemblyIdList.push(id);
|
||
|
});
|
||
|
}
|
||
|
console.log("未知总成详表条件:" + JSON.stringify(params));
|
||
|
this.$axios
|
||
|
.posts("/api/newjit/unknown-assembly/to-parse", params)
|
||
|
.then((response) => {
|
||
|
if (response.status == true) {
|
||
|
this.$notify({
|
||
|
title: "成功",
|
||
|
message: "操作成功!",
|
||
|
type: "success",
|
||
|
duration: 2000,
|
||
|
});
|
||
|
this.getList();
|
||
|
} else {
|
||
|
this.$message({
|
||
|
type: "warning",
|
||
|
message: response.message,
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
fetchData(id) {
|
||
|
//循环动态
|
||
|
this.$axios
|
||
|
.gets("/api/newjit/unknown-assembly/" + id)
|
||
|
.then((response) => {
|
||
|
this.form = response.item;
|
||
|
});
|
||
|
},
|
||
|
/** 导出功能 */
|
||
|
handleDownload() {
|
||
|
this.listLoading = true;
|
||
|
this.$axios
|
||
|
.gets("/api/newjit/unknown-assembly/export", this.listQuery)
|
||
|
.then((res) => {
|
||
|
let filename = res;
|
||
|
this.$axios
|
||
|
.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename)
|
||
|
.then((response) => {
|
||
|
if (filename.indexOf("_") != -1) {
|
||
|
let downName =
|
||
|
filename.slice(0, filename.lastIndexOf("_")) +
|
||
|
filename.slice(filename.lastIndexOf("."));
|
||
|
downloadFile(response, downName);
|
||
|
this.$notify({
|
||
|
title: "成功",
|
||
|
message: "数据-导出成功!",
|
||
|
type: "success",
|
||
|
duration: 2000,
|
||
|
});
|
||
|
} else {
|
||
|
downloadFile(response, filename);
|
||
|
this.$notify({
|
||
|
title: "成功",
|
||
|
message: "数据-导出成功!",
|
||
|
type: "success",
|
||
|
duration: 2000,
|
||
|
});
|
||
|
}
|
||
|
this.listLoading = false;
|
||
|
});
|
||
|
});
|
||
|
},
|
||
|
/** 重置按钮操作 */
|
||
|
resetQuery(refName) {
|
||
|
this.OnlineTimeVale = [];
|
||
|
this.$refs[refName].resetFields();
|
||
|
this.handleQuery();
|
||
|
},
|
||
|
/** 搜索按钮操作 */
|
||
|
handleQuery() {
|
||
|
this.listQuery.SkipCount = 1;
|
||
|
this.getList();
|
||
|
},
|
||
|
selectValue(params) {
|
||
|
//版本下拉选择
|
||
|
this.versionValue = params.value;
|
||
|
this.getList();
|
||
|
},
|
||
|
selectOptionsChange(item) {
|
||
|
this.getList();
|
||
|
},
|
||
|
importExcelData() {
|
||
|
//关闭导入窗体时调用
|
||
|
this.showExcelImport = false;
|
||
|
//this.getList();
|
||
|
},
|
||
|
/* 主页面添加总成按钮事件 */
|
||
|
handleCreate() {
|
||
|
// this.$nextTick(() => {
|
||
|
// this.$refs["formCount"].resetFields();
|
||
|
// });
|
||
|
if (this.multipleSelection.length !== 1) {
|
||
|
this.$message({
|
||
|
message: "必须选择一行",
|
||
|
type: "warning",
|
||
|
});
|
||
|
return;
|
||
|
} else {
|
||
|
console.log(this.multipleSelection[0].id);
|
||
|
console.log(this.multipleSelection[0].vin);
|
||
|
this.formTitle = "添加总成";
|
||
|
this.isEdit = false;
|
||
|
this.form = {};
|
||
|
this.getUnknownAssemblyList();
|
||
|
this.getZcCode();
|
||
|
this.getvehicleModel();
|
||
|
this.dialogFormVisible = true;
|
||
|
}
|
||
|
},
|
||
|
/** 刷新列表 */
|
||
|
handleHandle(data) {
|
||
|
if (data.type !== "edit") {
|
||
|
this.getList();
|
||
|
}
|
||
|
},
|
||
|
/** 格式化字段 */
|
||
|
fieldFormatter(row, column) {
|
||
|
if (column.property === "billStatus") {
|
||
|
return { 0: "未生效", 2: "已生效", 3: "已发布" }[row[column.property]];
|
||
|
}
|
||
|
if (column.property == "onlineTime" || column.property == "receiveTime") {
|
||
|
var date = row[column.property];
|
||
|
if (date == undefined) {
|
||
|
return "";
|
||
|
}
|
||
|
return moment(date).format("YYYY-MM-DD HH:mm:ss");
|
||
|
}
|
||
|
return row[column.property] || "--";
|
||
|
},
|
||
|
roleFilter(type) {
|
||
|
return projectTypeKeyValue[type];
|
||
|
},
|
||
|
getList() {
|
||
|
this.listLoading = true;
|
||
|
this.listQuery.SkipCount = (this.page - 1) * 10;
|
||
|
if (this.OnlineTimeVale != []) {
|
||
|
this.listQuery.OnlineTimeBegin = this.OnlineTimeVale[0]//this.OnlineTimeVale
|
||
|
// ? this.OnlineTimeVale[0] || ""
|
||
|
// : "";
|
||
|
this.listQuery.OnlineTimeEnd = this.OnlineTimeVale[1]//this.OnlineTimeVale
|
||
|
// ? this.OnlineTimeVale[1] || ""
|
||
|
// : "";
|
||
|
}
|
||
|
this.$axios
|
||
|
.gets("/api/newjit/unknown-assembly/list", this.listQuery)
|
||
|
.then((response) => {
|
||
|
this.list = response.items;
|
||
|
setTimeout(() => {
|
||
|
//大数据量加载时
|
||
|
this.listLoading = false;
|
||
|
}, 500);
|
||
|
})
|
||
|
.catch(() => {
|
||
|
this.listLoading = false;
|
||
|
});
|
||
|
},
|
||
|
handleFilter() {
|
||
|
this.page = 1;
|
||
|
this.getList();
|
||
|
},
|
||
|
sortChange(data) {
|
||
|
const { prop, order } = data;
|
||
|
if (!prop || !order) {
|
||
|
this.handleFilter();
|
||
|
return;
|
||
|
}
|
||
|
this.listQuery.Sorting = prop + " " + order;
|
||
|
this.handleFilter();
|
||
|
},
|
||
|
handleSelectionChange(val) {
|
||
|
this.multipleSelection = val;
|
||
|
},
|
||
|
/** 通过回调控制style */
|
||
|
cellStyle({ row, column, rowIndex, columnIndex }) {
|
||
|
if (column.property === "qty") {
|
||
|
return { textAlign: "right" };
|
||
|
} else {
|
||
|
return { textAlign: "left" };
|
||
|
}
|
||
|
},
|
||
|
/** 通过回调控制表头style */
|
||
|
headerRowStyle({ row, column, rowIndex, columnIndex }) {
|
||
|
if (column.property === "qty") {
|
||
|
return { textAlign: "right", background: "#FAFAFA" };
|
||
|
} else {
|
||
|
return { textAlign: "left", background: "#FAFAFA" };
|
||
|
}
|
||
|
},
|
||
|
handleRowClick(row, column, event) {
|
||
|
this.$refs.multipleTable.clearSelection();
|
||
|
this.$refs.multipleTable.toggleRowSelection(row);
|
||
|
},
|
||
|
/* 获取车型数据源 */
|
||
|
getCarModel(){
|
||
|
this.$axios
|
||
|
.gets("/api/newjit/dic/list"+"?dicTypeName=车型")
|
||
|
.then((response) => {
|
||
|
console.log("this is response.items",response.item);
|
||
|
this.carModels = response.item;
|
||
|
setTimeout(() => {
|
||
|
//大数据量加载时
|
||
|
this.listLoading = false;
|
||
|
}, 500);
|
||
|
})
|
||
|
.catch(() => {
|
||
|
this.listLoading = false;
|
||
|
});
|
||
|
//console.log("this is carModels",this.carModels);
|
||
|
},
|
||
|
/* 加号按钮添加事件 */
|
||
|
addzc()
|
||
|
{
|
||
|
//todo 添加总成左侧的 加号按钮 待做
|
||
|
alert("1")
|
||
|
},
|
||
|
/* 减号按钮删除事件 */
|
||
|
delzc(index)
|
||
|
{
|
||
|
this.erpAssemblyCfgList.splice(index, 1);
|
||
|
console.log(this.erpAssemblyCfgList);
|
||
|
},
|
||
|
/* 添加总成最终提交的数据事件*/
|
||
|
save() {
|
||
|
//if(this.data2.length ===0){
|
||
|
var lastSubmit = {
|
||
|
billId:this.listUnknownAssemblyQuery.billId,
|
||
|
scanPoint: "M100",
|
||
|
erpAssemblyCfgList:[]
|
||
|
};
|
||
|
lastSubmit.erpAssemblyCfgList = this.tempAssCfgList;
|
||
|
|
||
|
// var lastSubmitt = [];
|
||
|
// console.log("flag")
|
||
|
// this.tempAssCfgList.forEach(element => {
|
||
|
// element.details.forEach(element1 => {
|
||
|
// lastSubmitt.push({
|
||
|
// erpAssemblyCode: element.erpAssemblyCode,
|
||
|
// erpAssemblyName: element.erpAssemblyName,
|
||
|
// isCover: false,
|
||
|
// previousVersionId:"f7d45dba-3164-4a91-b477-3c568c81e6a0",
|
||
|
// vehicleModel: element.vehicleModel,
|
||
|
// details:{
|
||
|
// partCode:element1.partCode,
|
||
|
// partNum:element1.partNum,
|
||
|
// description:element1.description,
|
||
|
// isKey: true,
|
||
|
// }
|
||
|
// })
|
||
|
// });
|
||
|
// });
|
||
|
// console.log("this is lastSubmitt:",lastSubmitt)
|
||
|
// var lastSubmit = [];
|
||
|
// lastSubmitt.forEach(element => {
|
||
|
// lastSubmit.push({
|
||
|
// billID:this.listUnknownAssemblyQuery.billId,
|
||
|
// scanPoint: "M100",
|
||
|
// erpAssemblyCfgList:[{
|
||
|
// erpAssemblyCode: element.erpAssemblyCode,
|
||
|
// erpAssemblyName: element.erpAssemblyName,
|
||
|
// isCover: false,
|
||
|
// previousVersionId: null,
|
||
|
// vehicleModel: element.vehicleModel,
|
||
|
// details:element.details
|
||
|
// }]
|
||
|
// })
|
||
|
// });
|
||
|
// console.log("this is lastSubmit:",lastSubmit)
|
||
|
|
||
|
this.$axios
|
||
|
.posts(
|
||
|
"/api/newjit/unknown-assembly/add-assembly",
|
||
|
lastSubmit
|
||
|
)
|
||
|
.then((response) => {
|
||
|
if(response.status === true){
|
||
|
this.$notify({
|
||
|
title: "成功",
|
||
|
message: "数据导入成功!",
|
||
|
type: "success",
|
||
|
duration: 2000,
|
||
|
});
|
||
|
}
|
||
|
})
|
||
|
.catch(() => {
|
||
|
//this.listLoading = false;
|
||
|
});
|
||
|
|
||
|
this.leftRowTemp = [];
|
||
|
this.rightRowTemp = [];
|
||
|
this.tempAssCfgList = [];
|
||
|
this.tempdetails = [];
|
||
|
this.erpAssemblyCfgList =[];
|
||
|
this.asTemp = [];
|
||
|
this.dialogFormVisible = false;
|
||
|
// }
|
||
|
// else{
|
||
|
// alert("未知零件未分配完,请确认!")
|
||
|
// }
|
||
|
},
|
||
|
/* 获取未知总成零件数据源 */
|
||
|
getUnknownAssemblyList(){
|
||
|
this.listUnknownAssemblyQuery.billId=this.multipleSelection[0].id;
|
||
|
//console.log(this.listUnknownAssemblyQuery);
|
||
|
this.$axios
|
||
|
.gets(
|
||
|
"/api/newjit/unknown-assembly/"+this.listUnknownAssemblyQuery.billId
|
||
|
).then((response) => {
|
||
|
this.data2 = response.item.unknownAssemblyParts;
|
||
|
setTimeout(() => {
|
||
|
//大数据量加载时
|
||
|
this.listLoading = false;
|
||
|
}, 500);
|
||
|
})
|
||
|
.catch(() => {
|
||
|
this.listLoading = false;
|
||
|
})
|
||
|
},
|
||
|
/* 获取总成零件数据源*/
|
||
|
getZcCode(){
|
||
|
this.zcCode = [];
|
||
|
this.listUnknownAssemblyQuery.vin=this.multipleSelection[0].vin;
|
||
|
//console.log(this.listUnknownAssemblyQuery.vin);
|
||
|
this.$axios
|
||
|
.gets(
|
||
|
"/api/newjit/unknown-assembly/get-erp-assembly-code"+"?vin="+this.listUnknownAssemblyQuery.vin
|
||
|
).then((response) => {
|
||
|
console.log(response.item);
|
||
|
if(response.item.length !== 0){
|
||
|
console.log("has no ASSCode");
|
||
|
}
|
||
|
else{
|
||
|
response.item.forEach((zccode) => {
|
||
|
this.erpAssemblyCfgList.push({
|
||
|
erpAssemblyCode: zccode,
|
||
|
erpAssemblyName: [],
|
||
|
isCover: false,
|
||
|
carModel: "",
|
||
|
previousVersionId: null,
|
||
|
details: [
|
||
|
{
|
||
|
partCode: "",
|
||
|
partNum: 0,
|
||
|
description: "",
|
||
|
isKey: false
|
||
|
}
|
||
|
]
|
||
|
})
|
||
|
});
|
||
|
}
|
||
|
setTimeout(() => {
|
||
|
//大数据量加载时
|
||
|
this.listLoading = false;
|
||
|
}, 500);
|
||
|
})
|
||
|
},
|
||
|
/* 添加总成提交方法 */
|
||
|
submitAssyForm(formName) {
|
||
|
this.$refs[formName].validate((valid) => {
|
||
|
if (valid) {
|
||
|
if(this.assly.erpAssemblyCode !== ""){
|
||
|
this.erpAssemblyCfgList.push({
|
||
|
erpAssemblyCode: this.assly.erpAssemblyCode,
|
||
|
erpAssemblyName: this.assly.erpAssemblyName,
|
||
|
carModel: this.assly.carModel,
|
||
|
isCover: false,
|
||
|
previousVersionId: null,
|
||
|
details: []
|
||
|
})
|
||
|
console.log(this.erpAssemblyCfgList);
|
||
|
this.assly.erpAssemblyCode = '';
|
||
|
this.assly.erpAssemblyName = '';
|
||
|
this.assly.carModel = '';
|
||
|
}
|
||
|
else{
|
||
|
alert("请先填写Erp总成信息!")
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
console.log('error submit!!');
|
||
|
return false;
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
btnleftclick(){
|
||
|
if(this.asTemp.length === 0){
|
||
|
alert("请先选择总成编号!")
|
||
|
}
|
||
|
else{
|
||
|
if(this.rightRowTemp.length === 0){
|
||
|
alert("请先选择需移动的零件")
|
||
|
}
|
||
|
else if(this.rightRowTemp.length !== 0 && parseInt(this.rightRowTemp[0].partNum) !== 1){
|
||
|
this.numFormData.num = parseInt(this.rightRowTemp[0].partNum);
|
||
|
this.dialogNumVisible = true;
|
||
|
this.numTitle = "输入移动结算件数量"
|
||
|
}
|
||
|
else{
|
||
|
console.log("R->F");
|
||
|
this.numFormData.num = 1;
|
||
|
if(this.numFormData.num <= this.rightRowTemp[0].partNum && this.numFormData.num > 0){
|
||
|
|
||
|
//数据插入最终缓存
|
||
|
if(this.tempAssCfgList.length !== 0){
|
||
|
console.log("second")
|
||
|
var rfMove = this.tempAssCfgList.filter(u=>u.erpAssemblyCode === this.asTemp[0].erpAssemblyCode);
|
||
|
if(rfMove.length !== 0){
|
||
|
var sameDetail = rfMove[0].details.filter(u=>u.partCode === this.rightRowTemp[0].partCode);
|
||
|
if(sameDetail.length !== 0){
|
||
|
sameDetail[0].partNum = parseInt(sameDetail[0].partNum) + parseInt(this.numFormData.num);
|
||
|
}
|
||
|
else{
|
||
|
rfMove[0].details.push({
|
||
|
description: this.rightRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.rightRowTemp[0].partCode,
|
||
|
partNum: this.numFormData.num,//移动框输入的数量
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
console.log("加进去了")
|
||
|
this.tempAssCfgList.push({
|
||
|
erpAssemblyCode: this.asTemp[0].erpAssemblyCode,
|
||
|
erpAssemblyName: this.asTemp[0].erpAssemblyName,
|
||
|
isCover: false,
|
||
|
previousVersionId: this.asTemp[0].previousVersionId,
|
||
|
vehicleModel: this.asTemp[0].carModel,
|
||
|
details:[{
|
||
|
description: this.rightRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.rightRowTemp[0].partCode,
|
||
|
partNum: this.numFormData.num,//移动框输入的数量
|
||
|
}]
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
console.log("first")
|
||
|
this.tempAssCfgList.push({
|
||
|
erpAssemblyCode: this.asTemp[0].erpAssemblyCode,
|
||
|
erpAssemblyName: this.asTemp[0].erpAssemblyName,
|
||
|
isCover: false,
|
||
|
previousVersionId: this.asTemp[0].previousVersionId,
|
||
|
details:[{
|
||
|
description: this.rightRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.rightRowTemp[0].partCode,
|
||
|
partNum: this.numFormData.num,//移动框输入的数量
|
||
|
}]
|
||
|
})
|
||
|
}
|
||
|
|
||
|
console.log("this is tempAssCfgList 最终数据",this.tempAssCfgList)
|
||
|
//数据插入中间数据源
|
||
|
var judge = this.tempdetails.filter(u=>u.partCode === this.rightRowTemp[0].partCode);
|
||
|
if(judge.length === 1){
|
||
|
var t = parseInt(judge[0].partNum) + parseInt(this.numFormData.num);
|
||
|
this.tempdetails.filter(u=>u.partCode === this.rightRowTemp[0].partCode)[0].partNum = t;
|
||
|
}
|
||
|
else{
|
||
|
this.tempdetails.push({
|
||
|
description: this.rightRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.rightRowTemp[0].partCode,
|
||
|
partNum: parseInt(this.numFormData.num),//移动框输入的数量
|
||
|
})
|
||
|
}
|
||
|
/* 右侧数据移动 */
|
||
|
var delid = this.data2.filter(u=>u.id === this.rightRowTemp[0].id)[0]
|
||
|
var n1 = parseInt(this.numFormData.num);
|
||
|
var n2 = parseInt(delid.partNum);
|
||
|
if(n1 === n2){
|
||
|
this.data2 = this.data2.filter(u=>u.id !== this.rightRowTemp[0].id);
|
||
|
this.rightRowTemp = [];
|
||
|
}
|
||
|
else{
|
||
|
this.data2.filter(u=>u.id === this.rightRowTemp[0].id)[0].partNum = delid.partNum - this.numFormData.num;
|
||
|
this.rightRowTemp[0].partNum = n2 - n1;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
btnrightclick(){
|
||
|
if(this.asTemp.length === 0){
|
||
|
alert("请先选择总成编号!")
|
||
|
}
|
||
|
else{
|
||
|
if(this.leftRowTemp.length === 0){
|
||
|
alert("请先选择需移动的零件")
|
||
|
}
|
||
|
else if(this.leftRowTemp.length !== 0 && parseInt(this.leftRowTemp[0].partNum) !== 1){
|
||
|
this.numFormData.num = parseInt(this.leftRowTempnpm[0].partNum);
|
||
|
this.dialogNumVisible = true;
|
||
|
this.numTitle = "输入移动结算件数量"
|
||
|
}
|
||
|
else{
|
||
|
console.log("F->R");
|
||
|
this.numFormData.num = 1;
|
||
|
if(this.numFormData.num <= this.leftRowTemp[0].partNum && this.numFormData.num > 0){
|
||
|
|
||
|
//数据插入最终缓存
|
||
|
console.log("移除或删除")
|
||
|
var frMove = this.tempAssCfgList.filter(u=>u.erpAssemblyCode === this.asTemp[0].erpAssemblyCode);
|
||
|
var samedetail = frMove[0].details.filter(u=>u.partCode === this.leftRowTemp[0].partCode);
|
||
|
if(samedetail.length !== 0){
|
||
|
if(parseInt(samedetail[0].partNum) === parseInt(this.numFormData.num)){
|
||
|
frMove[0].details = frMove[0].details.filter(u=>u.partCode !== this.leftRowTemp[0].partCode);
|
||
|
}
|
||
|
else{
|
||
|
samedetail[0].partNum = parseInt(samedetail[0].partNum) - parseInt(this.numFormData.num);
|
||
|
}
|
||
|
}
|
||
|
else if(samedetail.length !== 0){
|
||
|
alert("没有数据!");
|
||
|
}
|
||
|
|
||
|
console.log("this is tempAssCfgList 最终数据",this.tempAssCfgList)
|
||
|
|
||
|
//数据插入右侧数据源
|
||
|
var judge = this.data2.filter(u=>u.partCode === this.leftRowTemp[0].partCode);
|
||
|
if(judge.length === 1){
|
||
|
var t = parseInt(judge[0].partNum) + parseInt(this.numFormData.num);
|
||
|
this.data2.filter(u=>u.partCode === this.leftRowTemp[0].partCode)[0].partNum = t;
|
||
|
}
|
||
|
else{
|
||
|
this.data2.push({
|
||
|
description: this.leftRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.leftRowTemp[0].partCode,
|
||
|
partNum: parseInt(this.numFormData.num),//移动框输入的数量
|
||
|
})
|
||
|
}
|
||
|
/* 中间数据移动 */
|
||
|
var delid = this.tempdetails.filter(u=>u.partCode === this.leftRowTemp[0].partCode)[0]
|
||
|
var n1 = parseInt(this.numFormData.num);
|
||
|
var n2 = parseInt(delid.partNum);
|
||
|
if(n1 === n2){
|
||
|
this.tempdetails = this.tempdetails.filter(u=>u.partCode !== this.leftRowTemp[0].partCode);
|
||
|
this.leftRowTemp = [];
|
||
|
}
|
||
|
else{
|
||
|
this.tempdetails.filter(u=>u.partCode === this.leftRowTemp[0].partCode)[0].partNum = parseInt(delid.partNum) - parseInt(this.numFormData.num);
|
||
|
this.leftRowTemp[0].partNum = n2 - n1;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
/* 保存数量事件 */
|
||
|
saveNum(){
|
||
|
if(this.asTemp.length !== 0){
|
||
|
//判断中间选中移动还是右侧选中移动
|
||
|
/* 左侧移动到右侧 */
|
||
|
if(this.leftRowTemp.length !== 0){
|
||
|
console.log("F->R");
|
||
|
if(this.numFormData.num <= this.leftRowTemp[0].partNum && this.numFormData.num > 0){
|
||
|
|
||
|
//数据插入最终缓存
|
||
|
console.log("移除或删除")
|
||
|
var frMove = this.tempAssCfgList.filter(u=>u.erpAssemblyCode === this.asTemp[0].erpAssemblyCode);
|
||
|
var samedetail = frMove[0].details.filter(u=>u.partCode === this.leftRowTemp[0].partCode);
|
||
|
if(samedetail.length !== 0){
|
||
|
if(parseInt(samedetail[0].partNum) === parseInt(this.numFormData.num)){
|
||
|
frMove[0].details = frMove[0].details.filter(u=>u.partCode !== this.leftRowTemp[0].partCode);
|
||
|
}
|
||
|
else{
|
||
|
samedetail[0].partNum = parseInt(samedetail[0].partNum) - parseInt(this.numFormData.num);
|
||
|
}
|
||
|
}
|
||
|
else if(samedetail.length !== 0){
|
||
|
alert("没有数据!");
|
||
|
}
|
||
|
|
||
|
console.log("this is tempAssCfgList 最终数据",this.tempAssCfgList)
|
||
|
|
||
|
//数据插入右侧数据源
|
||
|
var judge = this.data2.filter(u=>u.partCode === this.leftRowTemp[0].partCode);
|
||
|
if(judge.length === 1){
|
||
|
var t = parseInt(judge[0].partNum) + parseInt(this.numFormData.num);
|
||
|
this.data2.filter(u=>u.partCode === this.leftRowTemp[0].partCode)[0].partNum = t;
|
||
|
}
|
||
|
else{
|
||
|
this.data2.push({
|
||
|
description: this.leftRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.leftRowTemp[0].partCode,
|
||
|
partNum: parseInt(this.numFormData.num),//移动框输入的数量
|
||
|
})
|
||
|
}
|
||
|
/* 中间数据移动 */
|
||
|
var delid = this.tempdetails.filter(u=>u.partCode === this.leftRowTemp[0].partCode)[0]
|
||
|
var n1 = parseInt(this.numFormData.num);
|
||
|
var n2 = parseInt(delid.partNum);
|
||
|
if(n1 === n2){
|
||
|
this.tempdetails = this.tempdetails.filter(u=>u.partCode !== this.leftRowTemp[0].partCode);
|
||
|
this.leftRowTemp = [];
|
||
|
}
|
||
|
else{
|
||
|
this.tempdetails.filter(u=>u.partCode === this.leftRowTemp[0].partCode)[0].partNum = parseInt(delid.partNum) - parseInt(this.numFormData.num);
|
||
|
this.leftRowTemp[0].partNum = n2 - n1;
|
||
|
}
|
||
|
}
|
||
|
else if(this.numFormData.num == 0){
|
||
|
alert("输入数字不能为0!");
|
||
|
}
|
||
|
else{
|
||
|
alert("输入不正确,请确认!");
|
||
|
}
|
||
|
}
|
||
|
/* 右侧移动到左侧 */
|
||
|
else if(this.rightRowTemp.length !== 0){
|
||
|
console.log("R->F");
|
||
|
if(this.numFormData.num <= this.rightRowTemp[0].partNum && this.numFormData.num > 0){
|
||
|
|
||
|
//数据插入最终缓存
|
||
|
if(this.tempAssCfgList.length !== 0){
|
||
|
console.log("second")
|
||
|
var rfMove = this.tempAssCfgList.filter(u=>u.erpAssemblyCode === this.asTemp[0].erpAssemblyCode);
|
||
|
if(rfMove.length !== 0){
|
||
|
var sameDetail = rfMove[0].details.filter(u=>u.partCode === this.rightRowTemp[0].partCode);
|
||
|
if(sameDetail.length !== 0){
|
||
|
sameDetail[0].partNum = parseInt(sameDetail[0].partNum) + parseInt(this.numFormData.num);
|
||
|
}
|
||
|
else{
|
||
|
rfMove[0].details.push({
|
||
|
description: this.rightRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.rightRowTemp[0].partCode,
|
||
|
partNum: this.numFormData.num,//移动框输入的数量
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
console.log("加进去了")
|
||
|
this.tempAssCfgList.push({
|
||
|
erpAssemblyCode: this.asTemp[0].erpAssemblyCode,
|
||
|
erpAssemblyName: this.asTemp[0].erpAssemblyName,
|
||
|
vehicleModel: this.asTemp[0].carModel,
|
||
|
isCover: false,
|
||
|
previousVersionId: this.asTemp[0].previousVersionId,
|
||
|
details:[{
|
||
|
description: this.rightRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.rightRowTemp[0].partCode,
|
||
|
partNum: this.numFormData.num,//移动框输入的数量
|
||
|
}]
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
console.log("first")
|
||
|
this.tempAssCfgList.push({
|
||
|
erpAssemblyCode: this.asTemp[0].erpAssemblyCode,
|
||
|
erpAssemblyName: this.asTemp[0].erpAssemblyName,
|
||
|
isCover: false,
|
||
|
previousVersionId: this.asTemp[0].previousVersionId,
|
||
|
vehicleModel: this.asTemp[0].carModel,
|
||
|
details:[{
|
||
|
description: this.rightRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.rightRowTemp[0].partCode,
|
||
|
partNum: this.numFormData.num,//移动框输入的数量
|
||
|
}]
|
||
|
})
|
||
|
}
|
||
|
|
||
|
console.log("this is tempAssCfgList 最终数据",this.tempAssCfgList)
|
||
|
//数据插入中间数据源
|
||
|
var judge = this.tempdetails.filter(u=>u.partCode === this.rightRowTemp[0].partCode);
|
||
|
if(judge.length === 1){
|
||
|
var t = parseInt(judge[0].partNum) + parseInt(this.numFormData.num);
|
||
|
this.tempdetails.filter(u=>u.partCode === this.rightRowTemp[0].partCode)[0].partNum = t;
|
||
|
}
|
||
|
else{
|
||
|
this.tempdetails.push({
|
||
|
description: this.rightRowTemp[0].description,
|
||
|
isKey: false,
|
||
|
partCode: this.rightRowTemp[0].partCode,
|
||
|
partNum: parseInt(this.numFormData.num),//移动框输入的数量
|
||
|
})
|
||
|
}
|
||
|
/* 右侧数据移动 */
|
||
|
var delid = this.data2.filter(u=>u.id === this.rightRowTemp[0].id)[0]
|
||
|
var n1 = parseInt(this.numFormData.num);
|
||
|
var n2 = parseInt(delid.partNum);
|
||
|
if(n1 === n2){
|
||
|
this.data2 = this.data2.filter(u=>u.id !== this.rightRowTemp[0].id);
|
||
|
this.rightRowTemp = [];
|
||
|
}
|
||
|
else{
|
||
|
this.data2.filter(u=>u.id === this.rightRowTemp[0].id)[0].partNum = delid.partNum - this.numFormData.num;
|
||
|
this.rightRowTemp[0].partNum = n2 - n1;
|
||
|
}
|
||
|
}
|
||
|
else if(this.numFormData.num == 0){
|
||
|
alert("输入数字不能为0!");
|
||
|
}
|
||
|
else{
|
||
|
alert("输入不正确,请确认!");
|
||
|
}
|
||
|
}
|
||
|
this.dialogNumVisible = false;
|
||
|
}
|
||
|
else{
|
||
|
alert("请先选择总成编号!")
|
||
|
}
|
||
|
this.dialogNumVisible = false;
|
||
|
},
|
||
|
/* 总成编号选中事件 */
|
||
|
rowClickass(row) {
|
||
|
this.asTemp=[];
|
||
|
this.tempdetails=[];
|
||
|
this.$refs.asTable.clearSelection();
|
||
|
this.$refs.asTable.toggleRowSelection(row);
|
||
|
this.asTemp.push(row);
|
||
|
|
||
|
if(this.asTemp[0].details.length !== 0){
|
||
|
//选中插入中间数据源
|
||
|
this.tempdetails.push({
|
||
|
isKey: false,
|
||
|
partCode: this.asTemp[0].details[0].partCode,
|
||
|
partNum: this.asTemp[0].details[0].partNum,
|
||
|
vehicleModel:this.asTemp[0].details[0].carModel,
|
||
|
})
|
||
|
}
|
||
|
//二次选中插入最终提交中的details
|
||
|
var judgeSec = this.tempAssCfgList.filter(u=>u.erpAssemblyCode === this.asTemp[0].erpAssemblyCode)
|
||
|
console.log("this is judgeSec:",judgeSec);
|
||
|
if(judgeSec.length !== 0){
|
||
|
console.log("this is judgeSec[0].details:",judgeSec[0].details);
|
||
|
judgeSec[0].details.forEach(element => {
|
||
|
this.tempdetails.push(element)
|
||
|
});
|
||
|
}
|
||
|
console.log("this is this.tempdetails",this.tempdetails);
|
||
|
console.log("this is asTemp",this.asTemp);
|
||
|
},
|
||
|
/* 总成编号复选框单选事件 */
|
||
|
selectAss(selection, row) {
|
||
|
this.asTemp=[]; //清空已选
|
||
|
this.tempdetails = [];
|
||
|
console.log('当用户手动勾选数据行的 Checkbox 时触发的事件', selection, row)
|
||
|
// 选择项大于1时
|
||
|
if (selection.length > 1) {
|
||
|
let del_row = selection.shift();
|
||
|
// console.log('把数组的第一个元素从其中删除后', selection);
|
||
|
this.$refs.asTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)
|
||
|
}
|
||
|
this.asTemp.push(selection[0])
|
||
|
console.log('当用户手动勾选数据行', this.asTemp)
|
||
|
|
||
|
if(this.asTemp[0].details.length !== 0){
|
||
|
//选中插入中间数据源
|
||
|
this.tempdetails.push({
|
||
|
isKey: false,
|
||
|
partCode: this.asTemp[0].details[0].partCode,
|
||
|
partNum: this.asTemp[0].details[0].partNum,
|
||
|
vehicleModel:this.asTemp[0].details[0].carModel,
|
||
|
})
|
||
|
}
|
||
|
|
||
|
//二次选中插入最终提交中的details
|
||
|
var judgeSec = this.tempAssCfgList.filter(u=>u.erpAssemblyCode === this.asTemp[0].erpAssemblyCode)
|
||
|
console.log("this is judgeSec:",judgeSec);
|
||
|
if(judgeSec.length !== 0){
|
||
|
console.log("this is judgeSec[0].details:",judgeSec[0].details);
|
||
|
judgeSec[0].details.forEach(element => {
|
||
|
this.tempdetails.push(element)
|
||
|
});
|
||
|
}
|
||
|
console.log("this is this.tempdetails",this.tempdetails);
|
||
|
console.log("this is asTemp",this.asTemp);
|
||
|
},
|
||
|
/* 右侧数据选中事件 */
|
||
|
rowClickRight(row) {
|
||
|
this.rightRowTemp = [];
|
||
|
this.$refs.rightTable.clearSelection();
|
||
|
this.$refs.rightTable.toggleRowSelection(row);
|
||
|
this.rightRowTemp.push(row);
|
||
|
},
|
||
|
/* 左侧数据选中事件 */
|
||
|
rowClickLeft(row) {
|
||
|
this.leftRowTemp = [];
|
||
|
this.$refs.leftTable.clearSelection();
|
||
|
this.$refs.leftTable.toggleRowSelection(row);
|
||
|
this.leftRowTemp.push(row);
|
||
|
},
|
||
|
/* 右侧复选框单选事件 */
|
||
|
selectRight(selection, row) {
|
||
|
this.rightRowTemp=[]; //清空已选
|
||
|
console.log('当用户手动勾选数据行的 Checkbox 时触发的事件', selection, row)
|
||
|
// 选择项大于1时
|
||
|
if (selection.length > 1) {
|
||
|
let del_row = selection.shift();
|
||
|
// console.log('把数组的第一个元素从其中删除后', selection);
|
||
|
this.$refs.rightTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)
|
||
|
}
|
||
|
this.rightRowTemp.push(selection[0])
|
||
|
console.log('当用户手动勾选数据行', this.rightRowTemp)
|
||
|
},
|
||
|
/* 左侧复选框单选事件 */
|
||
|
selectLeft(selection, row) {
|
||
|
this.leftRowTemp=[]; //清空已选
|
||
|
console.log('当用户手动勾选数据行的 Checkbox 时触发的事件', selection, row)
|
||
|
// 选择项大于1时
|
||
|
if (selection.length > 1) {
|
||
|
let del_row = selection.shift();
|
||
|
// console.log('把数组的第一个元素从其中删除后', selection);
|
||
|
this.$refs.rightTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)
|
||
|
}
|
||
|
this.leftRowTemp.push(selection[0])
|
||
|
console.log('当用户手动勾选数据行', this.leftRowTemp)
|
||
|
},
|
||
|
getvehicleModel()
|
||
|
{
|
||
|
this.$axios
|
||
|
.gets(
|
||
|
"/api/newjit/dic/list",this.vehicleModelQuery
|
||
|
)
|
||
|
.then((response) => {
|
||
|
//console.log(response);
|
||
|
this.vehicleModelList = response.item;
|
||
|
//console.log()
|
||
|
})
|
||
|
.catch(() => {
|
||
|
});
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss" scoped>
|
||
|
@import "../../../ux/styles/crmtable.scss";
|
||
|
</style>
|
||
|
|