<template>
|
<div style="padding: 10px; position: relative;">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="98px" class="searchBox">
|
<el-row>
|
<el-form-item label="容器编号" prop="HNumber" style="margin-left: 100px;">
|
<el-input v-model="queryParams.HNumber" placeholder="请输入容器编号" @keyup.enter.native="handleQuery" />
|
</el-form-item>
|
<el-form-item label="容器名称" prop="HName">
|
<el-input v-model="queryParams.HName" placeholder="请输入容器名称" @keyup.enter.native="handleQuery" />
|
</el-form-item>
|
<el-form-item label="组织">
|
<el-select v-model="queryParams.HUSEORGID" placeholder="请选择">
|
<el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label-width="78px">
|
<el-button type="primary" icon="el-icon-search" @click="handleQuery">
|
搜 索</el-button>
|
<el-button type="primary" icon="el-icon-refresh" @click="resetQuery">重 置</el-button>
|
</el-form-item>
|
</el-row>
|
<el-collapse v-model="activeSeach">
|
<el-collapse-item title="更多" name="1">
|
<el-card class="box-card">
|
<div slot="header" class="clearfix"><span>过滤</span></div>
|
<div>
|
<el-form-item label-width="0">
|
<el-row>
|
<el-col :span="7">
|
<el-select v-model="queryParams.ColName1" placeholder="请选择">
|
<span v-for="(item, index) in btList" :key="index">
|
<el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
|
</span>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="padding: 0 10px;">
|
<el-select v-model="queryParams.Comparator1" placeholder="请选择">
|
<el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
|
:value="item.value"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="11">
|
<el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
|
@keyup.enter.native="handleQuery" />
|
</el-col>
|
</el-row>
|
</el-form-item>
|
<el-row>
|
<el-form-item label-width="0">
|
<el-row>
|
<el-col :span="7">
|
<el-select v-model="queryParams.ColName2" placeholder="请选择">
|
<span v-for="(item, index) in btList" :key="index">
|
<el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
|
</span>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="padding: 0 10px;">
|
<el-select v-model="queryParams.Comparator2" placeholder="请选择">
|
<span v-for="(item, index) in btList" :key="index">
|
<el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
|
</span>
|
</el-select>
|
</el-col>
|
<el-col :span="11">
|
<el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable
|
@keyup.enter.native="handleQuery" />
|
</el-col>
|
</el-row>
|
</el-form-item>
|
</el-row>
|
<el-form-item label-width="0">
|
<el-row>
|
<el-col :span="7">
|
<el-select v-model="queryParams.ColName" placeholder="请选择">
|
<el-option v-for="(item, index) in btList" :key="index" :label="item.field"
|
:value="item.field"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="padding: 0 10px;">
|
<el-select v-model="queryParams.Comparator" placeholder="请选择">
|
<el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
|
:value="item.value"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="11">
|
<el-input v-model="queryParams.ColContent" placeholder="请输入" clearable
|
@keyup.enter.native="handleQuery" />
|
</el-col>
|
</el-row>
|
</el-form-item>
|
</div>
|
</el-card>
|
</el-collapse-item>
|
</el-collapse>
|
</el-form>
|
<el-row :gutter="10" class="mb8" style="margin-top: 10px;">
|
<!-- <el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-download" size="mini" @click="handleImport">导入</el-button>
|
</el-col> -->
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit(OperationType = 1)"
|
id="btn-Add">新增</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
|
@click="handleEdit(row = rowForm, OperationType = 3)">编辑</el-button>
|
</el-col>
|
<!-- <el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
|
@click="handleEdit(row = rowForm, copyType = 1)">复制</el-button>
|
</el-col> -->
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
|
</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
|
@click="set_CheckBill(0, form = rowForm)">审核</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
|
@click="set_CheckBill(1, form = rowForm)">返审核</el-button>
|
</el-col>
|
<!-- <el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
|
@click="set_De_Stop(0, form = rowForm)">禁用</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
|
@click="set_De_Stop(1, form = rowForm)">反禁用</el-button>
|
</el-col> -->
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-download" size="mini" @click="handleRowHide">隐藏列设置</el-button>
|
</el-col>
|
<!-- <el-col :span="1.5">
|
<el-button type="primary" icon="el-icon-download" size="mini" @click="handleBtnHide">按钮设置</el-button>
|
</el-col> -->
|
</el-row>
|
<div class="tableBox" v-loading="loading">
|
<el-row>
|
<el-col :span="4">
|
<el-tree :data="treeOptions" :props="defaultProps" :expand-on-click-node="false"
|
:filter-node-method="filterNode" ref="tree" node-key="id" default-expand-all highlight-current
|
@node-click="handleNodeClick" />
|
</el-col>
|
<el-col :span="20">
|
<el-table :data="tableData" ref="tableData" max-height="750" :summary-method="getSummaries"
|
@selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick"
|
:row-style="rowStyle" @cell-dblclick="handleDblclick" v-if="tableShow">
|
<template v-for="(item, index) in btList">
|
<el-table-column type="selection" width="55" align="center" :fixed="item.fixed"
|
v-if="item.type == 'checkbox'" :key="index" />
|
<el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width"
|
:key="item.sorderid" v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort"
|
show-overflow-tooltip :fixed="item.fixed">
|
<template slot-scope="{row, column }">
|
<el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
|
<div :style="item.style">
|
<span v-if="column.property.includes('日期')">{{ parseTime(row[column.property], '{y}-{m}-{d}')
|
}}</span>
|
<el-button type="text" @click="handleEdit(row, OperationType = 3)"
|
v-else-if="column.property == '模具编号'">{{
|
row.模具编号
|
}}</el-button>
|
<span v-else>{{ row[column.label] }}</span>
|
</div>
|
</template>
|
</el-table-column>
|
</template>
|
</el-table>
|
<pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes"
|
@pagination="getList" />
|
</el-col>
|
</el-row>
|
|
<el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
|
<RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
|
<!-- <BtnSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" /> -->
|
|
</el-dialog>
|
<!-- 编辑 -->
|
<el-dialog title="编辑容器主档资料" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox"
|
@close="close">
|
<edit :OperationType=OperationType :linterid=this.rowForm.hmainid :HSouceBillType=this.rowForm.HSourceBillType
|
:copyType="copyType" @editClose="editGyClose" v-if="editShow" />
|
</el-dialog>
|
<el-dialog :title="upload.title" :visible.sync="upload.open" width="1500px" append-to-body>
|
<div style="margin-top:-20px ;">
|
<el-button type="primary" @click="set_AddNew">导入数据</el-button>
|
<el-button type="primary" @click="upload.open = false">退 出</el-button>
|
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" style="display: inline-block; margin-left: 10px;"
|
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
|
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess">
|
<el-button type="primary">文件上传</el-button>
|
</el-upload>
|
</div>
|
<el-table :data="uploadData" v-loading="uploadTableLoading" :row-class-name="uploadDataIndex" border
|
height="550">
|
<el-table-column type="index" label="序号" width="55" align="center" />
|
<el-table-column label="组织代码" prop="组织代码" align="center" width="120" />
|
<el-table-column label="组织名称" prop="组织名称" align="center" width="120" />
|
<el-table-column label="生产资源名称" prop="生产资源名称" align="center" width="120" />
|
<el-table-column label="生产资源代码" prop="生产资源代码" align="center" width="120" />
|
<el-table-column label="部门代码" prop="部门代码" align="center" width="120" />
|
<el-table-column label="部门名称" prop="部门名称" align="center" width="120" />
|
<el-table-column label="负责人代码" prop="负责人代码" align="center" width="120" />
|
<el-table-column label="负责人" prop="负责人" align="center" width="120" />
|
<el-table-column label="工作中心代码" prop="工作中心代码" align="center" width="120" />
|
<el-table-column label="工作中心名称" prop="工作中心名称" align="center" width="120" />
|
<el-table-column label="单班工时" prop="单班工时" align="center" width="120" />
|
<el-table-column label="操作" align="center">
|
<template slot-scope="scope">
|
<el-button size="mini" type="text" icon="el-icon-delete"
|
@click="uploadDataDelete(scope.row)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<pagination v-show="uploadTotal > 0" :total="uploadTotal" :page.sync="uploadPage" :limit.sync="uploadPageSize"
|
:pageSizes="uploadPageSizes" @pagination="currentPage" />
|
</el-dialog>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import axios from 'axios'
|
import BtnSettings from '@/views/component/btnSettings'
|
import RowSettings from '@/views/component/rowSettings'
|
import Edit from '@/views/scMould/basicModeling/Gy_MouldFile.vue'
|
export default {
|
name: 'Gy_MouldFileList',
|
components: { RowSettings, Edit, BtnSettings },
|
props: {
|
openPage: { type: String, },
|
},
|
data() {
|
return {
|
HModName: 'Gy_MouldFileList',
|
treeSql: '',
|
HSupClsName: 0,
|
//树结构
|
treeOptions: undefined,
|
defaultProps: {
|
children: "children",
|
label: "title"
|
},
|
activeSeach: '',
|
editShow: false,
|
openEdit: false,
|
totalNameList: [],
|
tableShow: true,
|
openPrintList: false,
|
printListShow: false,
|
HBillType: '1205',
|
openBtnHide: false,
|
btnHideShow: false,
|
rowHideShow: false,
|
openRowHide: false,
|
copyType: 0,
|
comparatorList: [
|
{ label: '=', value: '=' },
|
{ label: '>=', value: '>=' },
|
{ label: '>', value: '>' },
|
{ label: '<=', value: '<=' },
|
{ label: '<', value: '<' },
|
{ label: '<>', value: '<>' },
|
{ label: '包含', value: '7' },
|
{ label: '左包含', value: '8' },
|
{ label: '右包含', value: '9' },
|
{ label: '不包含', value: '10' },
|
],
|
sWhere: '',
|
dialogTitle: '',
|
organizationList: JSON.parse(sessionStorage.getItem('organizationList')),//组织列表
|
OperationType: null,//保存类型(新增1修改3)
|
HInterID: null,
|
baseURL: process.env.VUE_APP_BASE_API,
|
lastSelectedRowIndex: null, // 用于记录上次点击的行索引
|
lastSelectedRow: null, // 上一次选中的行
|
selectedRow: null, // 当前选中的行
|
rowForm: {},
|
activeName: 'first',
|
|
// 弹出层标题
|
title: "",
|
// 是否显示弹出层
|
open: false,
|
// 查询参数
|
queryParams: {
|
HUSEORGID: sessionStorage["OrganizationID"] - 0,
|
HName: null,
|
HNumber: null,
|
HMouldTypeID: 0,
|
Comparator1: '',
|
Comparator2: '',
|
Comparator: '',
|
ColContent1: '',
|
ColContent2: '',
|
ColContent: '',
|
},
|
// 选中数组
|
ids: [],
|
// 非单个禁用
|
single: true,
|
// 非多个禁用
|
multiple: true,
|
// 遮罩层
|
loading: true,
|
tyResList: [],//列表(接口数据)
|
btList: [],//表头列表显示
|
btResList: [],
|
tableData: [],//列表(分页显示)
|
dataList: [],
|
titleData: ["sorderid", "hmainid", "HCurID", "HSSID", "HAreaID", "HPSStyleID"],//不需要显示的字段 可扩展
|
pageSizes: [50, 100, 500, 5000, 50000],
|
page: 1,
|
pageSize: 0,
|
total: 0,
|
// 表单参数
|
form: {},
|
// 表单校验
|
rules: {
|
HSupName: [
|
{ required: true, message: "客户不能为空", trigger: "blur" }
|
],
|
HDate: [
|
{ required: true, message: "日期不能为空", trigger: "blur" }
|
],
|
HExRate: [
|
{ required: true, message: "汇率不能为空", trigger: "blur" }
|
]
|
},
|
upload: {
|
// 是否显示弹出层
|
open: false,
|
// 弹出层标题
|
title: "",
|
// 是否禁用上传
|
isUploading: false,
|
// 是否更新已经存在的数据
|
updateSupport: 0,
|
// 设置上传的请求头部
|
// headers: { Authorization: "Bearer " + getToken() },
|
// 上传的地址
|
url: process.env.VUE_APP_BASE_API + "/Gy_Source/Gy_Source_Excel"
|
},
|
uploadData: [],
|
alluploadList: [],
|
uploadTableLoading: false,
|
uploadPageSizes: [50, 100, 500, 5000, 50000],
|
uploadPage: 1,
|
uploadPageSize: 50,
|
uploadTotal: 0,
|
};
|
},
|
created() {
|
this.getList()
|
this.getTreeselect()
|
},
|
methods: {
|
getSummaries(param) {
|
const { columns, data } = param;
|
const sums = [];
|
columns.forEach((column, index) => {
|
if (index === 0) {
|
sums[index] = '合计';
|
return;
|
}
|
const values = data.map(item => Number(item[column.property]));
|
if (this.totalNameList[index].totalRow) {
|
if (!values.every(value => isNaN(value))) {
|
sums[index] = values.reduce((prev, curr) => {
|
const value = Number(curr);
|
if (!isNaN(value)) {
|
return prev + curr;
|
} else {
|
return prev;
|
}
|
}, 0)
|
|
} else {
|
sums[index] = '';
|
}
|
}
|
}, 1000);
|
return sums;
|
},
|
|
handleBtnHide() {
|
this.btnHideShow = true
|
this.openBtnHide = true
|
},
|
handleRowHide() {
|
this.rowHideShow = true
|
this.openRowHide = true
|
},
|
rowSetClose(val) {
|
this.rowHideShow = false
|
this.tableShow = true
|
this.openRowHide = val
|
this.getList()
|
},
|
getTreeselect() {
|
axios.get(this.baseURL + '/Gy_Mould/TreeList', {
|
params: {
|
"sWhere": this.sWhere,
|
"user": sessionStorage["HUserName"],
|
},
|
}).then(response => {
|
let data1 = response.data
|
if (data1.count == 1) {
|
let data = JSON.parse(data1.data)
|
var liStr = '[';
|
//遍历生成主菜单
|
for (var i = 0; i < data.length; i++) {
|
// 判断是否存在子菜单
|
if (data[i].children != null && data[i].children.length > 0) {
|
liStr += '{"title": "' + data[i].id + "-" + data[i].title + '", "id": "' + data[i].id + '","spread":true, "children":[ ';
|
// 遍历获取子菜单
|
for (var k = 0; k < data[i].children.length; k++) {
|
liStr += this.getChildMenu(data[i].children[k], 0);
|
}
|
liStr = liStr.substring(0, liStr.length - 1);
|
liStr += ']},';
|
} else {
|
liStr += '{"title": "' + data[i].id + "-" + data[i].title + '", "id": "' + data[i].id + '"},';
|
}
|
};
|
liStr = liStr.substring(0, liStr.length - 1);
|
liStr += "]";
|
this.treeOptions = JSON.parse(liStr);
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
getChildMenu(subMenu, num) {
|
num++;
|
var subStr = '';
|
if (subMenu.children != null && subMenu.children.length > 0) {
|
subStr += '{"title": "' + subMenu.id + "-" + subMenu.title + '", "id": "' + subMenu.id + '", "children":[';
|
for (var j = 0; j < subMenu.children.length; j++) {
|
subStr += this.getChildMenu(subMenu.children[j], num);
|
if (j + 1 == subMenu.children.length) {
|
subStr = subStr.substring(0, subStr.length - 1);
|
}
|
}
|
subStr += ']},';
|
} else {
|
subStr += '{"title": "' + subMenu.id + "-" + subMenu.title + '", "id": "' + subMenu.id + '"},';
|
}
|
return subStr;
|
},
|
// 筛选节点
|
filterNode(value, data) {
|
if (!value) return true
|
return data.label.indexOf(value) !== -1
|
},
|
// 节点单击事件
|
handleNodeClick(data) {
|
if (data.id == "0") {
|
this.treeSql = "";
|
this.queryParams.HMouldTypeID = 0;
|
} else {
|
this.treeSql = " and HMouldTypeID = '" + data.id + "' ";
|
this.HSupClsName = data.title;
|
this.queryParams.HMouldTypeID = data.id;
|
}
|
this.handleQuery()
|
},
|
//列表数据
|
getList() {
|
this.pageSize = 50
|
this.tableShow = false
|
this.loading = true
|
if (this.pageSize == 0) {
|
this.pageSize = 50
|
}
|
this.sWhere += " and HUSEORGID = '" + this.queryParams.HUSEORGID + "'"
|
//生产资料列表
|
axios.get(this.baseURL + '/Gy_Mould/page', {
|
params: {
|
"sWhere": this.sWhere,
|
"ModRightNameSelect": this.HModName,
|
"user": sessionStorage["HUserName"],
|
"Organization": sessionStorage["Organization"],
|
"page": this.page,
|
"size": this.pageSize
|
},
|
}).then(response => {
|
this.tyResList = response.data.data//总数据
|
let data1 = response.data
|
let option = []
|
if (data1.code == 1) {
|
this.btResList = data1.list//生产资料接口表头数据
|
this.total = data1.count;
|
var data = [];//列字段数据
|
var col = [];
|
var totalArray = ["件数"];
|
//给空的数组赋值
|
for (var key in data1.list) {//循序遍历数组
|
data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//从每个对象中提取数据
|
}
|
//在列表左边添加勾选框
|
col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
|
for (var i = 0; i < data.length; i++) {//遍历data数组重的数据
|
if (this.titleData.indexOf(data[i].name) > -1) {//检查data【i】.name是否在数组中 //计算列
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
|
} else if (totalArray.indexOf(data[i].name) > -1 || (data[i].Type == "Decimal" || data[i].Type == "Int32")) { //计算列
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
|
}
|
else {
|
col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
|
}
|
}
|
option.cols = [col]
|
// option.cols = [[
|
// { type: 'checkbox', fixed: 'left', totalRowText: '合计行' }
|
// , { field: 'hmainid', title: 'hmainid', sort: true, hide: true }
|
// , { field: '日期', title: '日期', sort: true }
|
// , { field: '单据号', title: '单据号', sort: true, width: 120 }
|
// , { field: '条码编号', title: '条码编号', sort: true, width: 120 }
|
// , { field: '对应ERP物料编码', title: '物料编号', sort: true, width: 120 }
|
// , { field: '模具编号', title: '容器编号', sort: true, width: 120 }
|
// , { field: '模具名称', title: '容器名称', sort: true, width: 120 }
|
// , { field: '模具型号', title: '容器型号', sort: true, width: 120 }
|
// , { field: '模具品类', title: '容器品类', sort: true, width: 120 }
|
// , { field: '模具状态', title: '容器状态', sort: true, width: 120 }
|
// , { field: '模具可用状态', title: '模具可用状态', sort: true, width: 140 }
|
// , { field: '穴数', title: '穴数', sort: true, width: 120 }
|
// , { field: '对应ERP物料编码', title: '容器ERP物料', sort: true, width: 140 }
|
// , { field: '直径', title: '直径', sort: true, width: 120 }
|
// , { field: '辅助属性', title: '辅助属性', sort: true, width: 120 }
|
// , { field: '辅助属性2', title: '辅助属性2', sort: true, width: 120 }
|
// , { field: '图号', title: '图号', sort: true, width: 120 }
|
// , { field: '生产产品型号', title: '生产产品型号', sort: true, width: 120 }
|
// , { field: 'HUnitID', title: 'HUnitID', hide: true, sort: true, width: 120 }
|
// , { field: '计量单位代码', title: '计量单位代码', sort: true, width: 120 }
|
// , { field: '计量单位', title: '计量单位', sort: true, width: 120 }
|
// , { field: '出厂日期', title: '出厂日期', sort: true, width: 120 }
|
// , { field: '出厂编号', title: '出厂编号', sort: true, width: 120 }
|
// , { field: '使用部门代码', title: '使用部门代码', sort: true, width: 120 }
|
// , { field: '使用部门', title: '使用部门', sort: true, width: 120 }
|
// , { field: 'HSupID', title: 'HSupID', hide: true, sort: true, width: 120 }
|
// , { field: '供应商代码', title: '供应商代码', sort: true, width: 120 }
|
// , { field: '供应商', title: '供应商', sort: true, width: 120 }
|
// , { field: 'HWhID', title: 'HWhID', hide: true, sort: true, width: 120 }
|
// , { field: '默认仓库', title: '默认仓库', sort: true, width: 120 }
|
// , { field: 'HSPID', title: 'HSPID', hide: true, sort: true, width: 120 }
|
// , { field: '默认仓位', title: '默认仓位', sort: true, width: 120 }
|
// , { field: '版本', title: '版本', sort: true, width: 120 }
|
// , { field: '当前仓库', title: '当前仓库', sort: true, width: 120 }
|
// , { field: '当前仓位', title: '当前仓位', sort: true, width: 120 }
|
// , { field: '虚拟仓类型', title: '虚拟仓类型', sort: true, width: 120 }
|
// , { field: '虚拟仓', title: '虚拟仓', sort: true, width: 120 }
|
// , { field: '当前模具规格', title: '当前容器规格', sort: true, width: 140 }
|
// , { field: '初始模具规格', title: '初始容器规格', sort: true, width: 140 }
|
// , { field: '当前设计寿命', title: '当前设计寿命', sort: true, totalRow: true, width: 140 }
|
// , { field: '初始设计寿命', title: '初始设计寿命', sort: true, totalRow: true, width: 140 }
|
// , { field: '使用寿命', title: '使用寿命', sort: true, totalRow: true, width: 120 }
|
// , { field: '剩余寿命', title: '剩余寿命', sort: true, totalRow: true, width: 120 }
|
// , { field: '已生产数量', title: '已生产数量', sort: true, totalRow: true, width: 120 }
|
// , { field: '已生产重量', title: '已生产重量', sort: true, totalRow: true, width: 120 }
|
// , { field: '备注', title: '备注', sort: true, width: 120 }
|
// , { field: '关联数量', title: '关联数量', sort: true, totalRow: true, width: 120 }
|
// , { field: '制单人', title: '制单人', sort: true, width: 120 }
|
// , { field: '制单日期', title: '制单日期', sort: true, width: 120 }
|
// , { field: '审核人', title: '审核人', sort: true, width: 120 }
|
// , { field: '审核日期', title: '审核日期', sort: true, width: 120 }
|
// , { field: '修改人', title: '修改人', sort: true, width: 120 }
|
// , { field: '修改日期', title: '修改日期', sort: true, width: 120 }
|
// , { field: '关闭人', title: '关闭人', sort: true, width: 120 }
|
// , { field: '关闭日期', title: '关闭日期', sort: true, width: 120 }
|
// , { field: '作废人', title: '作废人', sort: true, width: 120 }
|
// , { field: '作废日期', title: '作废日期', sort: true, width: 120 }
|
// , { field: 'hbilltype', title: 'hbilltype', hide: true, sort: true, width: 120 }
|
// , { field: '单据类型', title: '单据类型', hide: true, sort: true, width: 120 }
|
// , { field: 'HMoudType', title: 'HMoudType', hide: true, sort: true, width: 120 }
|
// , { field: 'hsubid', title: 'hsubid', hide: true, sort: true, width: 120 }
|
// ]]
|
this.dataList = option
|
option.data = data1.data;
|
var result = data1.data;
|
option.data = result;
|
this.DisPlay_HideColumn(this.HModName, sessionStorage["HUserName"], option, this.dataList);
|
} else {
|
this.$modal.msgError(data1.Message);
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
DisPlay_HideColumn(HModName, user, option, dataOption) {
|
this.totalNameList = []
|
axios.get(this.baseURL + '/Xt_grdAlignment_WMES/grdAlignmentWMESList', {
|
params: {
|
"HModName": HModName,
|
"user": user,
|
},
|
}).then(res => {
|
let data1 = res.data
|
if (data1.data.length != 0) {
|
var dataCol = [];//数据库查询出的列数据
|
var newCols = [[]];//对应数据库列顺序col
|
newCols[0].push(option.cols[0][0]);//放入第一个checkbox
|
dataCol = data1.data[0].HGridString.split(',');
|
//列设置列数与页面列数是否一致
|
if (dataCol.length == option.cols[0].length - 1) {
|
//遍历寻找列设置对应列按顺序插入
|
for (var j = 0; j < option.cols[0].length - 1; j++) {
|
for (var i = 0; i < option.cols[0].length - 1; i++) {
|
var dataCols = dataCol[j].split('|');
|
//选择与datacols相应列进行修改
|
if (option.cols[0][i + 1]["field"] == dataCols[5]) {
|
//隐藏列
|
if (dataCols[1] == 1) {
|
option.cols[0][i + 1]["hide"] = true;
|
}
|
//设置列宽
|
if (dataCols[3] > 0) {
|
option.cols[0][i + 1]["width"] = dataCols[3];
|
}
|
//设置内容字体大小
|
if (data1.data[0].HFontSize != 0) {
|
option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
|
} else {
|
option.cols[0][i + 1]["style"] = "font-size:100%";
|
}
|
//显示列
|
if (dataCols[1] == 0 && this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1) {
|
option.cols[0][i + 1]["hide"] = false;
|
}
|
//统计列
|
if (dataCols[6] == 1) {
|
option.cols[0][i + 1]["totalRow"] = true;
|
} else {
|
option.cols[0][i + 1]["totalRow"] = false;
|
}
|
//字体所在位置(左 居中 右)
|
switch (dataCols[2]) {
|
case "L":
|
option.cols[0][i + 1]["align"] = "left";
|
break;
|
case "M":
|
option.cols[0][i + 1]["align"] = "center";
|
break;
|
case "R":
|
option.cols[0][i + 1]["align"] = "right";
|
break;
|
}
|
//设置表格title属性显示别名
|
if (dataCols[4] != null && dataCols[4] != "") {
|
option.cols[0][i + 1]["title"] = dataCols[4];
|
}
|
newCols[0].push(option.cols[0][i + 1]);
|
break;
|
}
|
}
|
}
|
//遍历循环后判断对应列数是否一致
|
if (dataCol.length == newCols[0].length - 1) {
|
option.cols = newCols;
|
//取消冻结列
|
for (var i = 1; i < option.cols[0].length - 1; i++) {
|
if (option.cols[0][i + 1]["fixed"] != null) {
|
option.cols[0][i + 1]["fixed"] = null;
|
}
|
else {
|
break;
|
}
|
}
|
//冻结列
|
if (data1.data[0].HFixCols != 0) {
|
for (var i = 0; i < data1.data[0].HFixCols; i++) {
|
if (dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1) {
|
data1.data[0].HFixCols += 1;
|
}
|
|
option.cols[0][i + 1]["fixed"] = "left";
|
}
|
}
|
//设置列排序
|
for (var i = 1; i < option.cols[0].length; i++) {
|
if (data1.data[0].HSortFlag == "是") {
|
option.cols[0][i]["sort"] = true;
|
}
|
else {
|
option.cols[0][i]["sort"] = false;
|
}
|
}
|
}
|
}
|
this.btList = option.cols[0]
|
this.btList.map(item => {
|
if (!item.hide) {
|
this.totalNameList.push(item)
|
}
|
})
|
if (data1.data[0].HPageSize == 0) {
|
this.pageSize = 50
|
} else {
|
this.pageSize = data1.data[0].HPageSize
|
}
|
this.tableData = option.data
|
this.tableShow = true
|
this.loading = false
|
} else {
|
this.btList = dataOption.cols[0]
|
this.btList.map(item => {
|
if (!item.hide) {
|
this.totalNameList.push(item)
|
}
|
})
|
this.tableData = dataOption.data
|
this.tableShow = true
|
this.loading = false
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
renderHeader(h, { column, $index }) {// 新建一个 span
|
let span = document.createElement(span)// 设置表头名称
|
span.innerText = column.label
|
//临时插入 document
|
document.body.appendChild(span)// 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
|
document.body.removeChild(span)
|
return h(span, column.label)
|
},
|
//点击行
|
handleRowClick(row, column, event) {
|
this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
|
this.selectedRow = row; // 记录当前选中的行
|
this.lastSelectedRowIndex = this.tableData.indexOf(row);
|
this.$refs.tableData.toggleRowSelection(row);
|
if (this.openPage) {
|
this.$emit('deptEmit', row, 8)
|
}
|
},
|
//选中行高亮样式
|
rowStyle({ row, rowIndex }) {
|
if (this.ids.includes(row.hmainid)) {
|
return { "background": "#ecf5ff" }
|
}
|
},
|
//双击行
|
handleDblclick(row, column, cell, event) {
|
this.OperationType = 3
|
if (this.openPage) {
|
this.$emit('deptEmitDb', row, 8)
|
}
|
else {
|
this.handleEdit();
|
}
|
},
|
// 多选框选中数据
|
handleSelectionChange(selection) {
|
// this.rowForm = {}
|
if (this.openPage) {
|
//列表单选
|
if (selection.length > 1) {
|
const del_row = selection.shift()
|
this.$refs.tableData.toggleRowSelection(del_row, false) //设置这一行取消选中
|
}
|
this.rowForm = {}
|
this.ids = selection.map(item => item.hmainid)
|
this.rowForm = selection[0]
|
} else {
|
this.ids = selection.map(item => item.hmainid)
|
this.single = selection.length != 1
|
this.multiple = !selection.length
|
if (!this.single) {
|
this.rowForm = selection[0]
|
}
|
}
|
},
|
/** 搜索按钮操作 */
|
handleQuery() {
|
this.sWhere = ''
|
if (this.treeSql) {
|
this.sWhere += this.treeSql
|
}
|
if (this.queryParams.ColName && this.queryParams.Comparator) {
|
var com = "";
|
switch (this.queryParams.Comparator) {
|
case "7":
|
com = "like'%" + this.queryParams.ColContent + "%'";
|
break;
|
case "8":
|
com = "like'%" + this.queryParams.ColContent + "'";
|
break;
|
case "9":
|
com = "like'" + this.queryParams.ColContent + "%'";
|
break;
|
case "10":
|
com = "not like'%" + this.queryParams.ColContent + "%'";
|
break;
|
default:
|
com = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
|
break;
|
}
|
this.sWhere += " and " + this.queryParams.ColName + " " + com;
|
}
|
if (this.queryParams.ColName1 && this.queryParams.Comparator1) {
|
var com1 = "";
|
switch (this.queryParams.Comparator1) {
|
case "7":
|
com1 = "like'%" + this.queryParams.ColContent1 + "%'";
|
break;
|
case "8":
|
com1 = "like'%" + this.queryParams.ColContent1 + "'";
|
break;
|
case "9":
|
com1 = "like'" + this.queryParams.ColContent1 + "%'";
|
break;
|
case "10":
|
com1 = "not like'%" + this.queryParams.ColContent1 + "%'";
|
break;
|
default:
|
com1 = "" + this.queryParams.Comparator1 + "'" + this.queryParams.ColContent1 + "'";
|
break;
|
}
|
this.sWhere += " and " + this.queryParams.ColName1 + " " + com1;
|
}
|
if (this.queryParams.ColName2 && this.queryParams.Comparator2) {
|
var com2 = "";
|
switch (this.queryParams.Comparator2) {
|
case "7":
|
com2 = "like'%" + this.queryParams.ColContent2 + "%'";
|
break;
|
case "8":
|
com2 = "like'%" + this.queryParams.ColContent2 + "'";
|
break;
|
case "9":
|
com2 = "like'" + this.queryParams.ColContent2 + "%'";
|
break;
|
case "10":
|
com2 = "not like'%" + this.queryParams.ColContent2 + "%'";
|
break;
|
default:
|
com2 = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
|
break;
|
}
|
this.sWhere += " and " + this.queryParams.ColName2 + " " + com2;
|
}
|
if (this.queryParams.HNumber) {
|
this.sWhere += " and 模具编号 like '%" + this.queryParams.HNumber + "%'";
|
}
|
if (this.queryParams.HName) {
|
this.sWhere += " and 模具名称 like '%" + this.queryParams.HName + "%'";
|
}
|
if (this.queryParams.HUSEORGID) {
|
this.sWhere += " and HUSEORGID = '" + this.queryParams.HUSEORGID + "'"
|
}
|
// this.sWhere += this.addSWhereByOpenType()
|
// this.sWhere += this.getOrgIDByUser()
|
this.getList()
|
|
},
|
// 判断是直接打开页面还是其它页面通过选择按钮打开,并显示相应数据
|
addSWhereByOpenType() {
|
//获取参数
|
var sWhere = "";
|
//this.openPage判断是否有值,有代表其它页面通过选择按钮打开
|
if (this.openPage) {
|
sWhere += " and 禁用标记 != 'Y' and ISNULL(审核人,'') != ''"
|
return sWhere;
|
}
|
return sWhere;
|
},
|
//根据用户获取用户关联组织的过滤条件
|
getOrgIDByUser() {
|
var res = "";
|
axios.get(this.baseURL + '/Xt_User/getOrgIDListByUser', {
|
params: {
|
HModName: this.HModName,
|
user: sessionStorage["HUserName"],
|
HOrgID: sessionStorage["OrganizationID"]
|
},
|
}).then(response => {
|
let result = response.data
|
if (result.count == 1) {
|
if (result.data[0].sWhere == "1") {
|
res = " and HUSEORGID = '" + sessionStorage["OrganizationID"] + "'";
|
} else {
|
res = result.data[0].sWhere;
|
}
|
}
|
}).catch(error => {
|
res = " and 1 = 0";
|
this.$modal.msgError("接口请求失败!");
|
});
|
return res;
|
},
|
/** 重置按钮操作 */
|
resetQuery() {
|
this.sWhere = ''
|
this.queryParams = {
|
HUSEORGID: sessionStorage["OrganizationID"] - 0,
|
HName: null,
|
HNumber: null,
|
HMouldTypeID: 0,
|
Comparator1: '',
|
Comparator2: '',
|
Comparator: '',
|
ColContent1: '',
|
ColContent2: '',
|
ColContent: '',
|
}
|
this.resetForm("queryForm")
|
this.getList()
|
},
|
|
//退出
|
close() {
|
this.tableShow = true
|
this.openEdit = false
|
this.editShow = false
|
this.getList()
|
},
|
//打开新增组件弹窗
|
handleAddEdit() {
|
this.rowForm.hmainid = 0
|
this.$nextTick(() => {
|
this.openEdit = true
|
this.editShow = true
|
})
|
|
},
|
//打开修改组件弹窗
|
handleEdit() {
|
this.$nextTick(() => {
|
this.openEdit = true
|
this.editShow = true
|
})
|
},
|
//关闭编辑页面
|
editGyClose(val) {
|
this.editShow = false
|
this.openEdit = false
|
this.multiple = true,
|
this.getList()
|
},
|
/** 删除按钮操作 */
|
handleDelete() {
|
this.$modal.confirm('确认要删除吗,删除后不能恢复').then(() => {
|
var ModRightNameDelete = 'Gy_MouldFile_Delete'
|
if (!this.rowForm.审核人) {
|
axios.get(this.baseURL + "/Gy_Mould_Edit/Delete_Json", {
|
params: { 'HItemID': this.rowForm.hmainid.toString(), "ModRightNameDelete": ModRightNameDelete, 'user': sessionStorage["HUserName"] }
|
}).then(response => {
|
if (response.data.count == 1) {
|
this.getList()
|
this.$modal.msgSuccess("删除成功")
|
} else {
|
this.$modal.msgError("错误:" + result.code + result.Message);
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
} else {
|
this.$modal.msgError("此条数据不是创建状态,无法删除!");
|
}
|
}).catch(() => { })
|
},
|
// 反审核/审核数据
|
set_CheckBill(num, form) {
|
var InterID = form.hmainid || form.HInterID
|
//逻辑审核方法
|
if (form.HBillStatus == 0 && num == 1) {
|
this.$modal.msgSuccess('单据已为未审核状态,无需反审核!');
|
} else {
|
axios.get(this.baseURL + "/Gy_Mould/AuditProcessReportList", {
|
params: { "HInterID": InterID, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
|
}).then(response => {
|
let result = response.data
|
if (result.code == 1) {
|
this.$modal.msgSuccess('操作成功');
|
this.getList();
|
}
|
else {
|
this.$modal.msgError("错误:" + result.code + result.Message,);
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
}
|
|
},
|
// 反禁用/禁用数据
|
set_De_Stop(num, form) {
|
var InterID = form.hmainid || form.HInterID
|
//逻辑审核方法
|
axios.get(this.baseURL + "/Gy_Source/StopGy_Source", {
|
params: { "HInterID": InterID, "IsStop": num, "CurUserName": sessionStorage["HUserName"] }
|
}).then(response => {
|
let result = response.data
|
if (result.code == 1) {
|
this.$modal.msgSuccess('操作成功');
|
this.getList();
|
}
|
else {
|
this.$modal.msgError("错误:" + result.code + result.Message,);
|
}
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
//导出
|
handleExport() {
|
const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 将数据转换为工作表
|
const wb = this.$XLSX.utils.book_new(); // 创建一个新的工作簿
|
this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 将工作表添加到工作簿中,并命名为"Sheet1"
|
this.$XLSX.writeFile(wb, `gySource_${new Date().getTime()}.xlsx`); // 导出文件
|
},
|
handleImport() {
|
this.uploadData = []
|
this.upload.isUploading = false
|
this.upload.title = "导入";
|
this.upload.open = true;
|
},
|
// 文件上传中处理
|
handleFileUploadProgress(event, file, fileList) {
|
this.upload.isUploading = true;
|
this.uploadTableLoading = true
|
},
|
// 文件上传成功处理
|
handleFileSuccess(response, file, fileList) {
|
// this.upload.open = false;
|
this.upload.isUploading = true;
|
this.$refs.upload.clearFiles();
|
if (response.code == 1) {
|
this.alluploadList = response.data
|
this.uploadData = this.getPage(this.uploadPage, this.alluploadList)
|
this.uploadTotal = this.alluploadList.length
|
this.uploadTableLoading = false
|
// this.set_AddNew(response.data)
|
} else {
|
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.Message + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
|
}
|
|
},
|
// 提交上传文件
|
submitFileForm() {
|
this.$refs.upload.submit();
|
},
|
set_AddNew() {
|
var num = [];
|
for (var i = 0; i < this.uploadData.length; i++) {
|
if (this.uploadData[i] != "") {
|
num.push(this.uploadData[i])
|
}
|
}
|
var sSubStr = JSON.stringify(num);
|
var sMainSub = sSubStr + '&和' + sessionStorage["HUserName"];
|
axios({
|
method: 'post',
|
url: this.baseURL + "/Gy_Source/Gy_Source_btnSave",
|
data: {
|
'sMainSub': sMainSub
|
},
|
}).then(res => {
|
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + res.data.Message + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
|
this.upload.open = false
|
this.getList()
|
}).catch(error => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
uploadDataIndex({ row, rowIndex }) {
|
row.index = rowIndex + 1;
|
},
|
uploadDataDelete(row) {
|
this.$modal.confirm('确认要删除吗,删除后不能恢复').then(() => {
|
const deleteList = [row.index]
|
const data = this.uploadData
|
this.uploadData = data.filter(item => {
|
return deleteList.indexOf(item.index) == -1
|
});
|
}).catch(() => { })
|
},
|
getPage(page, list) {
|
let sindex = (parseInt(page) - 1) * this.uploadPageSize
|
let eindex = parseInt(page) * this.uploadPageSize
|
let newList = list.slice(sindex, eindex)
|
return newList
|
},
|
currentPage(val) {
|
this.uploadPage = val.page
|
setTimeout(() => {
|
this.uploadData = this.getPage(this.uploadPage, this.alluploadList)
|
}, 100)
|
},
|
}
|
};
|
</script>
|
<style>
|
.xsckdBox .el-date-editor.el-input {
|
width: 100%;
|
}
|
</style>
|