<template>
|
<div style="padding: 10px">
|
<el-card style="margin-bottom: 10px">
|
<el-form :inline="true" :model="queryParams" ref="queryForm" class="mb8">
|
<el-form-item label="物料代码" prop="HNumber">
|
<el-input v-model="queryParams.HNumber" placeholder="请输入物料代码" style="width: 160px" />
|
</el-form-item>
|
<el-form-item label="物料名称" prop="HName">
|
<el-input v-model="queryParams.HName" placeholder="请输入物料名称" style="width: 160px" />
|
</el-form-item>
|
<el-form-item label="组织名称" prop="HOrgID">
|
<el-select v-model="queryParams.HOrgID" placeholder="请选择组织" style="width: 160px">
|
<el-option v-for="(item, index) in organizationOptions" :key="index" :label="item.Name"
|
:value="item.ID.toString()" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="项目号" prop="HProject">
|
<el-select v-model="queryParams.HProject" placeholder="请选择项目号" style="width: 160px">
|
<el-option v-for="item in projectOptions" :key="item.HName" :label="item.HName" :value="item.HName" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="重新同步">
|
<el-input v-model="queryParams.HNumber2" placeholder="请输入物料代码" style="width: 160px" />
|
<el-button type="primary" size="mini" @click="handleResCnz" style="margin-left: 10px">重新同步</el-button>
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button size="mini" @click="resetQuery">重置</el-button>
|
</el-form-item>
|
</el-form>
|
<el-form :model="queryParams" ref="filterForm">
|
<el-collapse v-model="activeCollapse" class="filter-collapse">
|
<el-collapse-item title="更多" name="more">
|
<el-form-item label="规格型号" prop="HModel">
|
<el-input v-model="queryParams.HModel" placeholder="请输入规格型号" style="width: 160px" />
|
</el-form-item>
|
<el-card class="box-card" style="margin-top: 20px">
|
<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.ColName" placeholder="请选择" style="width: 100%">
|
<!-- <el-option value="" label=""></el-option> -->
|
<el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title"
|
:value="item.field"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="padding: 0 10px">
|
<el-select v-model="queryParams.Comparator" placeholder="请选择" style="width: 100%">
|
<!-- <el-option value="0" label=""></el-option> -->
|
<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>
|
<el-form-item label-width="0">
|
<el-row>
|
<el-col :span="7">
|
<el-select v-model="queryParams.ColName1" placeholder="请选择" style="width: 100%">
|
<!-- <el-option value="0" label=""></el-option> -->
|
<el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title"
|
:value="item.field"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="padding: 0 10px">
|
<el-select v-model="queryParams.Comparator1" placeholder="请选择" style="width: 100%">
|
<!-- <el-option value="0" label=""></el-option> -->
|
<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-form-item label-width="0">
|
<el-row>
|
<el-col :span="7">
|
<el-select v-model="queryParams.ColName2" placeholder="请选择" style="width: 100%">
|
<!-- <el-option value="0" label=""></el-option> -->
|
<el-option v-for="(item, index) in visibleColumns" :key="index" :label="item.title"
|
:value="item.field"></el-option>
|
</el-select>
|
</el-col>
|
<el-col :span="6" style="padding: 0 10px">
|
<el-select v-model="queryParams.Comparator2" placeholder="请选择" style="width: 100%">
|
<!-- <el-option value="0" label=""></el-option> -->
|
<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.ColContent2" placeholder="请输入" clearable
|
@keyup.enter.native="handleQuery" />
|
</el-col>
|
</el-row>
|
</el-form-item>
|
</div>
|
</el-card>
|
</el-collapse-item>
|
</el-collapse>
|
</el-form>
|
<div style="
|
text-align: center;
|
font-size: 15px;
|
font-weight: bold;
|
color: #fc9393;
|
margin: 20px 0;
|
">
|
{{ currentFilterScheme }}
|
</div>
|
</el-card>
|
<el-row :gutter="10" class="mb8">
|
<el-col :span="1.5">
|
<el-button type="primary" plain size="mini" @click="handleImport">导入</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" plain size="mini" @click="handleExport">导出</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" size="mini" @click="handleNumAdd">流水号新增</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" size="mini" @click="handleAdd">新增</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" :disabled="single" @click="handleCopy">复制</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" :disabled="single" @click="handleEdit">编辑</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="danger" size="mini" :disabled="single" @click="handleDelete">删除</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" :disabled="single" @click="handleAudit(0)">审核</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" :disabled="single" @click="handleAudit(1)">反审核</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" :disabled="single" @click="handleStop(0)">禁用</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" :disabled="single" @click="handleStop(1)">反禁用</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" @click="handleColumnSetting">列设置</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" @click="handleButtonSetting">按钮设置</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" size="mini" @click="handleSaveScheme">保存方案</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" size="mini" @click="handleReadScheme">读取方案</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" @click="handleRefresh">刷新</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button size="mini" @click="handleExit">退出</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" size="mini" @click="handleCorrect">批改</el-button>
|
</el-col>
|
<el-col :span="1.5">
|
<el-button type="primary" size="mini" @click="handleCorrect2">批改(方案2)</el-button>
|
</el-col>
|
</el-row>
|
|
<el-row :gutter="10" style="margin-top: 10px">
|
<el-col :span="6">
|
<el-card style="height: 600px; overflow: hidden; display: flex; flex-direction: column">
|
<div slot="header">
|
<span>物料分类</span>
|
</div>
|
<div style="flex: 1; overflow: auto; margin-bottom: 10px">
|
<el-tree :data="treeData" :props="treeProps" node-key="id" default-expand-all :expand-on-click-node="false"
|
@node-click="handleTreeNodeClick" :highlight-current="true" class="custom-tree">
|
<span class="custom-tree-node" slot-scope="{ node, data }">
|
<span>{{ node.label }}</span>
|
</span>
|
</el-tree>
|
</div>
|
<div style="height: 200px; border: 1px solid #ebeef5; border-radius: 4px">
|
<el-carousel :autoplay="false" indicator-position="none" height="200px" ref="carousel">
|
<el-carousel-item v-for="(item, index) in fileList" :key="index">
|
<div v-if="item.type === 'image'" class="carousel-item">
|
<img :src="item.url" :alt="item.name" style="width: 100%; height: 100%; object-fit: contain"
|
@click="previewImg(item.url)" />
|
</div>
|
<div v-else-if="item.type === 'pdf'" class="carousel-item">
|
<embed :src="item.url" type="application/pdf" style="width: 100%; height: 100%" />
|
</div>
|
<div v-else class="carousel-item">
|
<h1 style="
|
text-align: center;
|
line-height: 180px;
|
color: red;
|
font-weight: bolder;
|
">
|
暂未上传文件
|
</h1>
|
</div>
|
</el-carousel-item>
|
</el-carousel>
|
</div>
|
</el-card>
|
</el-col>
|
|
<el-col :span="18">
|
<div class="tableBox" v-loading="loading">
|
<el-table :data="tableData" ref="tableData" height="600" @selection-change="handleSelectionChange" border
|
@row-click="handleRowClick" @row-dblclick="handleDblclick" :row-style="rowStyle" v-if="tableShow">
|
<el-table-column type="selection" width="55" align="center" fixed="left" />
|
<el-table-column prop="hmainid" label="单据ID" v-if="false" />
|
<el-table-column v-for="(item, index) in btList" :key="index" :align="item.align" :prop="item.field"
|
:label="item.title" :width="item.width" v-if="!item.hide" :sortable="item.sort" show-overflow-tooltip
|
:fixed="item.fixed">
|
<template slot-scope="{ row, column }">
|
<div :style="item.style">
|
<el-button type="text" @click="handleMaterialCodeClick(row)" v-if="column.property === '物料代码'">{{
|
row[column.property] }}</el-button>
|
<span v-else-if="
|
(column.property || '').includes('时间') ||
|
(column.property || '').includes('日期')
|
">
|
{{ formatDate(row[column.property]) }}
|
</span>
|
<span v-else>{{ row[column.property] }}</span>
|
</div>
|
</template>
|
</el-table-column>
|
</el-table>
|
<pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes"
|
@pagination="handleQuery" />
|
</div>
|
</el-col>
|
</el-row>
|
|
<el-dialog :visible.sync="previewVisible" width="80%" top="5vh" :before-close="handlePreviewClose">
|
<img :src="previewImage" style="width: 100%" />
|
</el-dialog>
|
|
<el-dialog title="隐藏列设置" :visible.sync="openColumnSetting" width="816px" append-to-body>
|
<RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="columnSettingClose"
|
v-if="columnSettingShow" />
|
</el-dialog>
|
|
<el-dialog :title="editTitle" :visible.sync="openEdit" width="95%" top="2vh" append-to-body
|
class="material-edit-dialog" :before-close="closeEdit">
|
<MaterialEdit v-if="editShow" :hID="currentEditId" :OperationType="OperationType"
|
:HMaterTypeID="currentMaterTypeID" @close="handleEditClose" />
|
</el-dialog>
|
|
<MaterialCorrection :visible.sync="openCorrect" @close="closeCorrect" />
|
|
<el-dialog title="批改(方案2)" :visible.sync="openCorrect2" width="1480px" append-to-body :before-close="closeCorrect2">
|
<div style="text-align: center; padding: 50px">
|
<h2>物料批改功能(方案2)</h2>
|
<p>物料批改功能(方案2)待后续开发</p>
|
<el-button type="primary" @click="closeCorrect2">关闭</el-button>
|
</div>
|
</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" size="mini" @click="handleImportSubmit">导入数据</el-button>
|
<el-button type="primary" size="mini" @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" size="mini">文件上传</el-button>
|
</el-upload>
|
</div>
|
<el-table :data="uploadData" v-loading="uploadTableLoading" 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="操作" align="center">
|
<template slot-scope="scope">
|
<el-button size="mini" type="text" icon="el-icon-delete"
|
@click="uploadDataDelete(scope.$index)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import axios from "axios";
|
import RowSettings from "@/views/component/rowSettings";
|
import MaterialEdit from "@/views/gyMaterial/edit";
|
import MaterialCorrection from "@/views/gyMaterial/GyMaterialCorrection";
|
|
export default {
|
name: "GyMaterial",
|
components: { RowSettings, MaterialEdit, MaterialCorrection },
|
props: {
|
openPage: { type: String },
|
},
|
data() {
|
return {
|
activeCollapse: [],
|
|
HModName: "Gy_Material",
|
HModuleName: "物料列表维护",
|
HClassTag: "ForFilteringSchemes",
|
treeData: [],
|
treeProps: {
|
children: "children",
|
label: "title",
|
},
|
currentMaterTypeID: 0,
|
|
fileList: [
|
{
|
type: "empty",
|
url: "",
|
name: "暂无文件",
|
},
|
],
|
|
// 编辑相关
|
editShow: false,
|
openEdit: false,
|
OperationType: null,
|
editTitle: "编辑物料",
|
currentEditId: 0,
|
|
// 批改相关
|
openCorrect: false,
|
openCorrect2: false,
|
|
// 列设置
|
columnSettingShow: false,
|
openColumnSetting: false,
|
|
// 图片预览
|
previewVisible: false,
|
previewImage: "",
|
|
// 表格显示
|
tableShow: true,
|
loading: true,
|
|
queryParams: {
|
HNumber: null,
|
HName: null,
|
HNumber2: null,
|
HModel: null,
|
HOrgID: null,
|
HProject: null,
|
ColName: "",
|
ColName1: "",
|
ColName2: "",
|
Comparator: "",
|
Comparator1: "",
|
Comparator2: "",
|
ColContent: "",
|
ColContent1: "",
|
ColContent2: "",
|
},
|
organizationOptions: JSON.parse(sessionStorage["organizationList"]),
|
projectOptions: [],
|
currentFilterScheme: "",
|
HInterID_Choose: 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: "",
|
selectedRow: null,
|
selRowList: [],
|
ids: [],
|
single: true,
|
multiple: true,
|
tyResList: [],
|
btList: [],
|
btResList: [],
|
tableData: [],
|
pageSizes: [50, 100, 500, 5000, 50000],
|
page: 1,
|
pageSize: 50,
|
total: 0,
|
upload: {
|
open: false,
|
title: "导入",
|
isUploading: false,
|
updateSupport: 0,
|
url: "http://47.96.97.237/API/Gy_Material/Gy_Material_Excel",
|
},
|
uploadData: [],
|
uploadTableLoading: false,
|
|
baseURL: process.env.VUE_APP_BASE_API,
|
user: "admin",
|
};
|
},
|
computed: {
|
visibleColumns() {
|
return this.btList.filter((item) => !item.hide && item.field);
|
},
|
},
|
created() {
|
this.user = sessionStorage["HUserName"];
|
this.queryParams.HOrgID = sessionStorage["OrganizationID"];
|
},
|
mounted() {
|
this.fetchData();
|
},
|
methods: {
|
fetchData() {
|
this.getOrganizations();
|
this.getTreeData();
|
this.getProjectOptions();
|
this.handleQuery();
|
//this.getDefaultFilterScheme();
|
},
|
|
getOrganizations() {
|
axios
|
.get(this.baseURL + "/Web/GetOrganizations")
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.organizationOptions = response.data.data;
|
// if (this.organizationOptions.length > 0) {
|
// this.queryParams.HOrgID = this.organizationOptions[0].ID;
|
// }
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
getTreeData() {
|
axios
|
.get(this.baseURL + "/Gy_MaterType/Gy_MaterTypeTreeListByLevel", {
|
params: {
|
HOrgID: this.queryParams.HOrgID,
|
},
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.treeData = JSON.parse(response.data.data);
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
getProjectOptions() {
|
axios
|
.get(this.baseURL + "/Gy_Material/Get_HProject", {
|
params: {
|
HOrgID: this.queryParams.HOrgID,
|
},
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.projectOptions = response.data.data;
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
getList() {
|
this.tableShow = false;
|
this.loading = true;
|
|
let orgName = this.organizationOptions.find((e) => e.ID == this.queryParams.HOrgID)
|
?.Name;
|
axios
|
.get(this.baseURL + "/Gy_Material/page", {
|
params: {
|
sWhere: this.sWhere,
|
user: this.user,
|
page: this.page,
|
size: this.pageSize,
|
Organization: orgName || "",
|
},
|
})
|
.then((response) => {
|
let data1 = response.data;
|
if (data1.code == 1) {
|
this.tyResList = data1.data;
|
this.btResList = data1.data;
|
this.total = data1.count;
|
this.setDefaultColumns();
|
this.tableData = data1.data;
|
this.tableShow = true;
|
this.loading = false;
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
this.loading = false;
|
});
|
},
|
|
setDefaultColumns() {
|
this.btList = [
|
{ type: "checkbox", fixed: "left" },
|
{ field: "hmainid", title: "单据ID", hide: true },
|
{ field: "物料代码", title: "物料代码", align: "center", width: 120 },
|
{ field: "物料名称", title: "物料名称", align: "center", width: 120 },
|
{ field: "规格型号", title: "规格型号", align: "center", width: 120 },
|
{ field: "物料属性", title: "物料属性", align: "center", width: 100 },
|
{ field: "组织名称", title: "组织名称", align: "center", width: 120 },
|
{ field: "项目号", title: "项目号", align: "center", width: 100 },
|
{ field: "禁用标记", title: "禁用标记", align: "center", width: 100 },
|
{ field: "审核人", title: "审核人", align: "center", width: 100 },
|
{ field: "创建人", title: "创建人", align: "center", width: 100 },
|
{ field: "创建时间", title: "创建时间", align: "center", width: 150 },
|
];
|
},
|
|
handleTreeNodeClick(data) {
|
this.currentMaterTypeID = data.id;
|
|
if (data.id == "100") {
|
this.sWhere = " and HMaterTypeID= 0";
|
} else if (data.id == "0") {
|
this.sWhere = "";
|
} else {
|
this.sWhere = " and HMaterTypeID='" + data.id + "' ";
|
}
|
this.handleQuery();
|
},
|
|
async handleQuery() {
|
this.sWhere = "";
|
|
this.processFilterConditions();
|
|
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.HModel) {
|
this.sWhere += " and 规格型号 like '%" + this.queryParams.HModel + "%'";
|
}
|
if (this.queryParams.HProject) {
|
this.sWhere += " and 项目号 like '%" + this.queryParams.HProject + "%'";
|
}
|
|
this.getList();
|
},
|
|
processFilterConditions() {
|
const conditions = [
|
{
|
colName: this.queryParams.ColName,
|
comparator: this.queryParams.Comparator,
|
content: this.queryParams.ColContent,
|
},
|
{
|
colName: this.queryParams.ColName1,
|
comparator: this.queryParams.Comparator1,
|
content: this.queryParams.ColContent1,
|
},
|
{
|
colName: this.queryParams.ColName2,
|
comparator: this.queryParams.Comparator2,
|
content: this.queryParams.ColContent2,
|
},
|
];
|
|
conditions.forEach((condition) => {
|
if (
|
condition.colName &&
|
condition.colName !== "0" &&
|
condition.comparator &&
|
condition.comparator !== "0"
|
) {
|
let com = "";
|
switch (condition.comparator) {
|
case "7":
|
com = "like'%" + condition.content + "%'";
|
break;
|
case "8":
|
com = "like'%" + condition.content + "'";
|
break;
|
case "9":
|
com = "like'" + condition.content + "%'";
|
break;
|
case "10":
|
com = "not like'%" + condition.content + "%'";
|
break;
|
default:
|
com = "" + condition.comparator + "'" + condition.content + "'";
|
break;
|
}
|
this.sWhere += " and " + condition.colName + " " + com;
|
}
|
});
|
},
|
|
resetQuery() {
|
this.sWhere = "";
|
this.queryParams = {
|
HNumber: null,
|
HName: null,
|
HNumber2: null,
|
HModel: null,
|
HOrgID: sessionStorage["OrganizationID"],
|
HProject: null,
|
ColName: "0",
|
ColName1: "0",
|
ColName2: "0",
|
Comparator: "0",
|
Comparator1: "0",
|
Comparator2: "0",
|
ColContent: "",
|
ColContent1: "",
|
ColContent2: "",
|
};
|
this.handleQuery();
|
},
|
|
handleResCnz() {
|
if (!this.queryParams.HNumber2) {
|
this.$modal.msgWarning("请输入物料代码");
|
return;
|
}
|
|
axios
|
.get(this.baseURL + "/Gy_Material/Gy_MaterialViewApi", {
|
params: {
|
Number: this.queryParams.HNumber2,
|
Type: "WL",
|
},
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.$modal.msgSuccess(response.data.Message);
|
this.handleQuery();
|
} else {
|
this.$modal.msgError(response.data.Message);
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
handleImport() {
|
this.uploadData = [];
|
this.upload.isUploading = false;
|
this.upload.title = "导入";
|
this.upload.open = true;
|
},
|
|
handleExport() {
|
axios
|
.get(this.baseURL + "/LMES/getReportByModRightNameCheck", {
|
params: {
|
ModRightNameCheck: "Gy_Material_ExportExcel",
|
user: this.user,
|
},
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
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");
|
this.$XLSX.writeFile(wb, `Gy_Material_${new Date().getTime()}.xlsx`);
|
} else {
|
this.$modal.msgError("当前模块没有导出权限!");
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
handleNumAdd() {
|
if (
|
(this.currentMaterTypeID == 0 || this.currentMaterTypeID == null) &&
|
!this.judgeSkipTouchMaterType()
|
) {
|
this.$modal.msgWarning("请选择具体物料分类!");
|
return;
|
}
|
this.OperationType = 4;
|
this.currentEditId = 0;
|
this.editTitle = "流水号新增物料";
|
this.openEdit = true;
|
this.editShow = true;
|
},
|
|
handleAdd() {
|
this.OperationType = 1;
|
this.currentEditId = 0;
|
this.editTitle = "新增物料";
|
this.openEdit = true;
|
this.editShow = true;
|
},
|
|
handleCopy() {
|
if (this.single) {
|
this.$modal.msgWarning("请选择一条数据");
|
return;
|
}
|
this.OperationType = 2;
|
this.currentEditId = this.selectedRow.HItemID;
|
this.editTitle = "复制物料";
|
this.openEdit = true;
|
this.editShow = true;
|
},
|
|
handleEdit() {
|
if (this.single) {
|
this.$modal.msgWarning("请选择一条数据");
|
return;
|
}
|
this.OperationType = 3;
|
this.currentEditId = this.selectedRow.HItemID;
|
this.editTitle = "编辑物料";
|
this.openEdit = true;
|
this.editShow = true;
|
},
|
|
handleDelete() {
|
if (this.single) {
|
this.$modal.msgWarning("请选择一条数据");
|
return;
|
}
|
|
if (this.selectedRow.审核人 !== null && this.selectedRow.审核人 !== "") {
|
this.$modal.msgError("已被审核的物料不能被删除!");
|
return;
|
}
|
|
this.$modal
|
.confirm("确认要删除吗,删除后不能恢复")
|
.then(() => {
|
axios
|
.get(this.baseURL + "/Gy_Material/Delete", {
|
params: {
|
HItemID: this.selectedRow.HItemID,
|
user: this.user,
|
},
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.handleQuery();
|
this.$modal.msgSuccess("删除成功");
|
} else {
|
this.$modal.msgError(
|
"错误:" + response.data.code + response.data.Message
|
);
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
})
|
.catch(() => { });
|
},
|
|
handleAudit(isAudit) {
|
if (this.single) {
|
this.$modal.msgWarning("请选择一条数据");
|
return;
|
}
|
|
axios
|
.get(this.baseURL + "/Gy_Material/AuditGy_Material", {
|
params: {
|
HInterID: this.selectedRow.HItemID,
|
IsAudit: isAudit,
|
CurUserName: this.user,
|
},
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.handleQuery();
|
this.$modal.msgSuccess(response.data.Message);
|
} else {
|
this.$modal.msgError(response.data.Message);
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
handleStop(isStop) {
|
if (this.single) {
|
this.$modal.msgWarning("请选择一条数据");
|
return;
|
}
|
axios
|
.get(this.baseURL + "/Gy_Material/StopGy_Material", {
|
params: {
|
HInterID: this.selectedRow.HItemID,
|
IsStop: isStop,
|
CurUserName: this.user,
|
},
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.handleQuery();
|
this.$modal.msgSuccess(response.data.Message);
|
} else {
|
this.$modal.msgError(response.data.Message);
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
handleColumnSetting() {
|
this.columnSettingShow = true;
|
this.openColumnSetting = true;
|
},
|
|
handleButtonSetting() {
|
this.$modal.msgInfo("按钮设置功能");
|
},
|
|
handleSaveScheme() {
|
this.$modal.msgInfo("保存方案功能");
|
},
|
|
handleReadScheme() {
|
this.$modal.msgInfo("读取方案功能");
|
},
|
|
handleRefresh() {
|
// 刷新时清除表格选择并重置相关状态,保证复制/编辑/删除/审核等按钮被禁用
|
if (this.$refs.tableData && this.$refs.tableData.clearSelection) {
|
this.$refs.tableData.clearSelection();
|
}
|
this.selectedRow = null;
|
this.ids = [];
|
this.single = true;
|
this.multiple = true;
|
this.handleQuery();
|
},
|
|
handleExit() {
|
this.$router.go(-1);
|
},
|
|
handleCorrect() {
|
this.openCorrect = true;
|
},
|
|
handleCorrect2() {
|
this.openCorrect2 = true;
|
},
|
|
// 物料代码点击
|
handleMaterialCodeClick(row) {
|
this.selectedRow = row;
|
this.OperationType = 3;
|
this.currentEditId = row.HItemID;
|
this.editTitle = "编辑物料";
|
this.openEdit = true;
|
this.editShow = true;
|
},
|
|
handleRowClick(row, column, event) {
|
if (this.openPage) {
|
if (this.openPage == 'Gy_BarCodeBill') {
|
this.$emit('deptEmit', this.selRowList, 3)
|
}else{
|
this.$emit("deptEmit", row, 3);
|
}
|
}
|
if (this.checkIsIframe()) {
|
// 将当前选中的数据暴露到window中
|
window.selectedRow = row;
|
}
|
this.$refs.tableData.toggleRowSelection(row);
|
this.selectedRow = row;
|
this.getFileList(row.物料代码);
|
},
|
|
getFileList(HMaterNumber) {
|
if (!HMaterNumber) return;
|
|
axios
|
.get(this.baseURL + "/Cj_StationOutBill/Filelist", {
|
params: { HBillNo: HMaterNumber },
|
})
|
.then((response) => {
|
if (response.data.count == 1) {
|
this.fileList = [];
|
const data = response.data.data;
|
|
if (data.length === 0) {
|
this.fileList.push({
|
type: "empty",
|
url: "",
|
name: "暂无文件",
|
});
|
} else {
|
data.forEach((item) => {
|
if (item.HFileType === ".jpeg" || item.HFileType === ".jpg") {
|
this.fileList.push({
|
type: "image",
|
url: `../../..${item.HFilePath}`,
|
name: item.HFileName,
|
});
|
} else if (item.HFileType === ".pdf") {
|
this.fileList.push({
|
type: "pdf",
|
url: `../../..${item.HFilePath}`,
|
name: item.HFileName,
|
});
|
}
|
});
|
}
|
}
|
})
|
.catch((error) => {
|
this.$modal.msgError("获取文件列表失败!");
|
});
|
},
|
|
// 图片预览
|
previewImg(url) {
|
this.previewImage = url;
|
this.previewVisible = true;
|
},
|
|
handlePreviewClose() {
|
this.previewVisible = false;
|
this.previewImage = "";
|
},
|
|
// 行样式
|
rowStyle({ row, rowIndex }) {
|
if (this.ids.includes(row.hmainid)) {
|
return {};
|
// background: "#ecf5ff"
|
}
|
},
|
|
// 双击行
|
handleDblclick(row, column, cell, event) {
|
if (this.openPage) {
|
if (this.openPage == 'Gy_BarCodeBill') {
|
let list = []
|
list.push(row)
|
this.$emit("deptEmitDb", list, 3)
|
} else {
|
this.$emit("deptEmitDb", row, 3);
|
}
|
}
|
if (this.checkIsIframe()) {
|
// IFrame 双击 返回当前双击的数据
|
window.parent.iFrameMaterialCallback(row);
|
return;
|
}
|
this.handleMaterialCodeClick(row);
|
},
|
|
handleSelectionChange(selection) {
|
this.ids = selection.map((item) => item.hmainid);
|
this.selRowList = selection
|
this.single = selection.length != 1;
|
this.multiple = !selection.length;
|
if (!this.single) {
|
this.selectedRow = selection[0];
|
}
|
if (this.openPage == 'Gy_BarCodeBill') {
|
this.$emit('deptEmit', this.selRowList, 3)
|
}
|
},
|
// 编辑关闭回调
|
handleEditClose() {
|
this.openEdit = false;
|
this.editShow = false;
|
this.handleQuery();
|
},
|
// 关闭编辑
|
closeEdit() {
|
this.openEdit = false;
|
this.editShow = false;
|
},
|
|
// 关闭批改
|
closeCorrect() {
|
this.openCorrect = false;
|
},
|
|
// 关闭批改方案2
|
closeCorrect2() {
|
this.openCorrect2 = false;
|
},
|
|
// 列设置关闭
|
columnSettingClose(val) {
|
this.columnSettingShow = false;
|
this.openColumnSetting = val;
|
this.handleQuery();
|
},
|
|
// 导入相关方法
|
handleFileUploadProgress(event, file, fileList) {
|
this.upload.isUploading = true;
|
this.uploadTableLoading = true;
|
},
|
|
handleFileSuccess(response, file, fileList) {
|
this.upload.isUploading = true;
|
this.$refs.upload.clearFiles();
|
if (response.code == 1) {
|
this.uploadData = response.data;
|
this.uploadTableLoading = false;
|
} else {
|
this.$alert(
|
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
|
response.Message +
|
"</div>",
|
"导入结果",
|
{ dangerouslyUseHTMLString: true }
|
);
|
}
|
},
|
|
handleImportSubmit() {
|
if (this.uploadData.length === 0) {
|
this.$modal.msgWarning("请先上传文件");
|
return;
|
}
|
|
var sMainSub = JSON.stringify(this.uploadData) + "&和" + this.user;
|
axios({
|
method: "post",
|
url: this.baseURL + "/Gy_Material/Gy_Material_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.handleQuery();
|
})
|
.catch((error) => {
|
this.$modal.msgError("接口请求失败!");
|
});
|
},
|
|
uploadDataDelete(index) {
|
this.uploadData.splice(index, 1);
|
},
|
|
formatDate(dateString) {
|
if (!dateString) return "";
|
const date = new Date(dateString);
|
return date.toLocaleString("zh-CN");
|
},
|
|
judgeSkipTouchMaterType() {
|
if (
|
this.treeData.length > 0 &&
|
this.treeData[0].children &&
|
this.treeData[0].children.length == 1 &&
|
this.treeData[0].children[0].children.length == 0
|
) {
|
return true;
|
} else {
|
return false;
|
}
|
},
|
|
getDefaultFilterScheme() {
|
this.currentFilterScheme = "当前过滤方案:默认方案";
|
},
|
checkIsIframe() {
|
if (window.self == window.top) {
|
return false;
|
}
|
return true;
|
},
|
},
|
};
|
</script>
|
|
<style scoped>
|
.searchText {
|
text-align: center;
|
margin-bottom: 30px;
|
}
|
|
.searchImg {
|
height: 60px;
|
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 24 24"><path fill="%23a0a0a0" d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>') no-repeat center;
|
margin-top: 10px;
|
}
|
|
.custom-tree-node {
|
flex: 1;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
font-size: 14px;
|
padding-right: 8px;
|
}
|
|
.custom-tree {
|
height: 100%;
|
overflow-y: auto;
|
}
|
|
.carousel-item {
|
width: 100%;
|
height: 100%;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
}
|
|
.materialBox .el-date-editor.el-input {
|
width: 100%;
|
}
|
|
.el-tree-node.is-current>.el-tree-node__content {
|
background-color: #aef0f7;
|
}
|
|
.box-card {
|
margin-top: 20px;
|
}
|
|
.filter-collapse {
|
margin-top: 10px;
|
}
|
</style>
|