<template>
|
<div class="main">
|
<div class="main_header">
|
<div class="header_item">
|
<span class="header_label">项目名称:</span>
|
<el-select v-model="projectId" :size="size" clearable placeholder="请选择项目" @change="changeSearchProject">
|
<el-option
|
v-for="item in projectData"
|
:key="item.proId"
|
:label="item.proName"
|
:value="item.proId">
|
</el-option>
|
</el-select>
|
</div>
|
<div class="header_item">
|
<span class="header_label">管片块号:</span>
|
<el-select v-model="mouldTypeId" :size="size" clearable placeholder="请选择管片块号">
|
<el-option
|
v-for="item in mouldTypeData"
|
:key="item.blockNum"
|
:label="item.dictName"
|
:value="item.blockNum">
|
</el-option>
|
</el-select>
|
</div>
|
<div class="header_item">
|
<span class="header_label">模具编号:</span>
|
<el-input v-model="mouldNum" :size="size" clearable placeholder="请输入模具编号"></el-input>
|
</div>
|
<div class="header_item">
|
<span class="header_label">供应商:</span>
|
<el-select v-model="supplierId" :size="size" clearable placeholder="请选择供应商">
|
<el-option
|
v-for="item in supplierData"
|
:key="item.id"
|
:label="item.supplierName"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</div>
|
<div class="header_item">
|
<span class="header_label">使用状态:</span>
|
<el-select v-model="status" :size="size" clearable placeholder="请选择使用状态">
|
<el-option
|
v-for="item in mouldStatusData"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</div>
|
<div class="header_item">
|
<el-button icon="el-icon-search" @click="searchMouldList(true)">查询</el-button>
|
<el-button class="search_btn" icon="el-icon-plus" @click="propInsert()">新增</el-button>
|
</div>
|
</div>
|
<div class="main_content">
|
<el-table
|
v-loading="loading"
|
:data="mouldList"
|
height="100%" >
|
<el-table-column label="序号" width="55" align="center">
|
<template #default="scope">
|
<span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="proName" label="项目名称" align="center"></el-table-column>
|
<el-table-column prop="mouldCode" label="模具型号" align="center"></el-table-column>
|
<el-table-column prop="mouldNum" label="模具编号" align="center"></el-table-column>
|
<el-table-column prop="groutingHolesName" label="注浆孔" align="center"></el-table-column>
|
<el-table-column prop="mouldTypeName" label="管片块号" align="center"></el-table-column>
|
<el-table-column prop="mouldSizeName" label="尺寸" align="center"></el-table-column>
|
<el-table-column prop="mouldTurnName" label="转向" align="center"></el-table-column>
|
<el-table-column prop="supplierName" label="供应商" align="center"></el-table-column>
|
<el-table-column prop="maxCycleTime" label="最大循环次数" align="center"></el-table-column>
|
<el-table-column prop="currentCycleTime" label="累计循环次数" align="center"></el-table-column>
|
<el-table-column prop="warningValue" label="次数" align="center"></el-table-column>
|
<el-table-column prop="warningDay" label="天数" align="center"></el-table-column>
|
<el-table-column label="使用状态" align="center">
|
<template #default="{ row }">
|
<div>
|
{{mouldStatusData.find(item => item.value == row.status).label}}
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" align="center" width="350">
|
<template #default="{ row }">
|
<el-button class="table_btn" size="mini" v-if="showButton('update')" @click="propUpdate(row)">修改</el-button>
|
<el-button class="delete_btn" size="mini" v-if="showButton('delete')" @click="deleteInfo(row)">删除</el-button>
|
<el-button class="table_btn" size="mini" v-if="showButton('delete')" @click="propScanCode(row)">打印</el-button>
|
<!-- <el-button class="table_btn" size="mini" v-if="showButton('update')" @click="showScanCode(row)">模具二维码</el-button> -->
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
<div class="main_footer">
|
<el-pagination
|
background
|
@current-change="changePageNum"
|
@size-change="changePageSize"
|
:current-page="pageNum"
|
:page-sizes="[10, 20, 50, 100]"
|
:page-size="pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="total">
|
</el-pagination>
|
</div>
|
<!-- 新增模具 修改模具信息 -->
|
<el-dialog
|
class="prop_dialog"
|
:title="asyncTitle ? '新增模具' : '修改模具信息'"
|
:visible.sync="asyncMould"
|
width="35%">
|
<el-form ref="form" :model="formMould" :rules="rulesMould" label-width="auto" class="rule_form">
|
<el-form-item label="项目名称:" prop="proId">
|
<el-select v-model="formMould.proId" :size="size" clearable placeholder="请选择项目" @change="changeProject">
|
<el-option
|
v-for="item in projectData"
|
:key="item.proId"
|
:label="item.proName"
|
:value="item.proId">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="模具型号:" prop="mouldCode">
|
<el-input v-model="formMould.mouldCode" :size="size" clearable placeholder="请输入模具型号"></el-input>
|
</el-form-item>
|
<el-form-item label="模具编号:" prop="mouldMn">
|
<el-input v-model="formMould.mouldMn" clearable placeholder="请输入模具编号"></el-input>
|
</el-form-item>
|
<!-- <el-form-item label="模具MN号:" prop="mouldMn">
|
<el-input v-model="formMould.mouldMn" :size="size" clearable placeholder="请输入模具MN号"></el-input>
|
</el-form-item> -->
|
<el-form-item label="注浆孔:" prop="groutingHoles">
|
<el-select v-model="formMould.groutingHoles" :size="size" clearable placeholder="请选择注浆孔">
|
<el-option
|
v-for="item in groutingHolesData"
|
:key="item.groutingHoles"
|
:label="item.dictName"
|
:value="item.groutingHoles">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="管片块号:" prop="mouldType">
|
<el-select v-model="formMould.mouldType" :size="size" clearable placeholder="请选择管片块号">
|
<el-option
|
v-for="item in mouldTypeDatas"
|
:key="item.blockNum"
|
:label="item.dictName"
|
:value="item.blockNum">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="尺寸:" prop="mouldSize">
|
<el-select v-model="formMould.mouldSize" :size="size" clearable placeholder="请选择尺寸">
|
<el-option
|
v-for="item in mouldSizeData"
|
:key="item.sizes"
|
:label="item.dictName"
|
:value="item.sizes">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="转向:" prop="mouldTurn">
|
<el-select v-model="formMould.mouldTurn" :size="size" clearable placeholder="请选择转向">
|
<el-option
|
v-for="item in mouldTurnData"
|
:key="item.turn"
|
:label="item.dictName"
|
:value="item.turn">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<!-- <el-form-item label="模具状态:" prop="status">
|
<el-select v-model="formMould.status" :size="size" clearable placeholder="请选择模具状态">
|
<el-option
|
v-for="item in mouldStatusData"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item> -->
|
<el-form-item label="供应商:" prop="supplierId">
|
<el-select v-model="formMould.supplierId" :size="size" clearable placeholder="请选择供应商">
|
<el-option
|
v-for="item in supplierData"
|
:key="item.id"
|
:label="item.supplierName"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="模具检查预警值:" required>
|
<el-row :gutter="10" type="flex">
|
<el-col :span="12">
|
<el-form-item prop="warningValue">
|
<el-input placeholder="请输入次数" v-model="formMould.warningValue" clearable>
|
<template slot="append">次数</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item prop="warningDay">
|
<el-input placeholder="请输入天数" v-model="formMould.warningDay" clearable>
|
<template slot="append">天数</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form-item>
|
<el-form-item label="使用状态:" prop="status">
|
<el-select v-model="formMould.status" :size="size" clearable placeholder="请选择使用状态">
|
<el-option
|
v-for="item in mouldStatusData"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="最大循环次数:" prop="maxCycleTime">
|
<el-input v-model="formMould.maxCycleTime" :size="size" clearable placeholder="请输入最大循环次数"></el-input>
|
</el-form-item>
|
<el-form-item label="生产日期:" prop="productDate">
|
<el-date-picker
|
v-model="formMould.productDate"
|
type="date"
|
:size="size"
|
clearable
|
value-format="yyyy-MM-dd"
|
placeholder="请选择生产日期">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="进厂日期:" prop="comeFactoryTime">
|
<el-date-picker
|
v-model="formMould.comeFactoryTime"
|
type="date"
|
:size="size"
|
clearable
|
value-format="yyyy-MM-dd"
|
placeholder="请选择进厂日期">
|
</el-date-picker>
|
</el-form-item>
|
</el-form>
|
<div slot="footer">
|
<el-button @click="asyncMould = false">取 消</el-button>
|
<el-button class="submit_btn" @click="asyncTitle ? submitInsertForm() : submitUpdateForm()">提 交</el-button>
|
</div>
|
</el-dialog>
|
<div v-show="showAbtn">
|
<a id="segmentPrint" :href="`printpipe://3,${mouldIds}`"><p></p></a>
|
</div>
|
<el-dialog
|
class="prop_dialog scan_dialog"
|
title="模具二维码"
|
:visible.sync="asyncScanCode"
|
width="265px">
|
<div style="display: flex;justify-content: center;align-items: center;">
|
<img :src="`${baseUrl}/materials/steelPrint/test?num=${modeCode}&type=3&mouldId=${mouldIds}`" style="width:200px;height:200px">
|
</div>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import { buttonPinia } from "../../pinia/index";
|
import { changeSize, throttle } from '../../plugins/public';
|
export default {
|
data() {
|
return {
|
modeCode: '',
|
showAbtn:false,//是否展示a标签
|
asyncScanCode: false,
|
baseUrl: process.env.VUE_APP_BASE_URL,
|
projectId: '', // 项目
|
mouldIds:null,//模具id
|
projectData: [],
|
mouldTypeId: '', // 模具类型
|
mouldTypeData: [], // 块号
|
mouldNum: '', // 编码
|
supplierId: '', // 供应商
|
supplierData: [],
|
status: '', // 使用状态
|
size: changeSize(),
|
pageNum: 1,
|
pageSize: 10,
|
total: 1,
|
loading: true,
|
mouldList: [], //列表信息
|
asyncTitle: true, // true 新增模具 false 修改模具信息
|
asyncMould: false, // 弹窗
|
formMould: {}, // 表单信息
|
rulesMould: {
|
proId: [{
|
required: true,
|
message: '请选择项目',
|
trigger: ['blur', 'change']
|
}],
|
mouldCode: [{
|
required: true,
|
message: '请输入模具型号',
|
trigger: 'blur'
|
}],
|
mouldNum: [{
|
required: true,
|
message: '请输入模具编码',
|
trigger: 'blur'
|
}],
|
mouldMn: [{
|
required: true,
|
message: '请输入模具MN号',
|
trigger: 'blur'
|
}],
|
mouldType: [{
|
required: true,
|
message: '请选择模具类型',
|
trigger: ['blur', 'change']
|
}],
|
mouldSize: [{
|
required: true,
|
message: '请选择模具尺寸',
|
trigger: ['blur', 'change']
|
}],
|
mouldTurn: [{
|
required: true,
|
message: '请选择转向',
|
trigger: ['blur', 'change']
|
}],
|
supplierId: [{
|
required: true,
|
message: '请选择供应商',
|
trigger: ['blur', 'change']
|
}],
|
groutingHoles: [{
|
required: true,
|
message: '请选择注浆孔',
|
trigger: ['blur', 'change']
|
}],
|
status: [{
|
required: true,
|
message: '请选择模具状态',
|
trigger: ['blur', 'change']
|
}],
|
maxCycleTime: [{
|
required: true,
|
message: '请输入最大循环次数',
|
trigger: 'blur'
|
}],
|
productDate: [{
|
required: true,
|
message: '请选择生产日期',
|
trigger: ['blur', 'change']
|
}],
|
comeFactoryTime: [{
|
required: true,
|
message: '请选择进厂日期',
|
trigger: ['blur', 'change']
|
}],
|
warningValue: [{
|
required: true,
|
message: '请输入预警次数',
|
trigger: 'blur'
|
}],
|
warningDay: [{
|
required: true,
|
message: '请输入预警天数',
|
trigger: 'blur'
|
}]
|
}, // 表单校验规则
|
mouldTypeDatas: [], // 块号
|
mouldSizeData: [], // 尺寸
|
mouldTurnData: [], // 转向
|
groutingHolesData: [], // 注浆孔
|
mouldStatusData: [{
|
value: 1,
|
label: '上线'
|
},{
|
value: 2,
|
label: '闲置'
|
},{
|
value: 3,
|
label: '维修'
|
},{
|
value: 4,
|
label: '报废'
|
}],
|
}
|
},
|
mounted() {
|
const that = this;
|
// 根据窗口大小动态修改组件尺寸
|
window.onresize = () => {
|
that.size = changeSize();
|
}
|
that.getAllProjectData();
|
that.getAllSupplierData();
|
that.searchMouldList(true);
|
},
|
methods: {
|
// 获取全部项目信息
|
async getAllProjectData() {
|
const { data } = await this.$api.Engineer.searchProjects({
|
pageNum: 1,
|
pageSize: 1000000
|
});
|
this.projectData = data.list;
|
},
|
// 获取全部供应商信息
|
async getAllSupplierData() {
|
const { data } = await this.$api.Basics.GETALLSUPPLIERDATA();
|
this.supplierData = data;
|
},
|
// 查询模具信息
|
searchMouldList(bol) {
|
if(bol) {
|
this.pageNum = 1;
|
}
|
this.mouldList = [];
|
this.$api.Basics.SEARCHMOULDINFOLIST({
|
proId: this.projectId,
|
mouldType: this.mouldTypeId,
|
mouldNum: this.mouldNum,
|
supplierId: this.supplierId,
|
status: this.status,
|
pageNum: this.pageNum,
|
pageSize: this.pageSize
|
}).then((res) => {
|
if(res.success) {
|
this.total = res.data.total;
|
this.mouldList = res.data.list;
|
}
|
this.loading = false;
|
}).catch(() => {
|
this.loading = false;
|
})
|
},
|
// 打开添加信息
|
propInsert() {
|
this.asyncTitle = true;
|
this.asyncMould = true;
|
},
|
// 打开修改信息
|
propUpdate(row) {
|
this.asyncTitle = false;
|
this.asyncMould = true;
|
this.changeProject(row.proId);
|
this.$set(this.formMould, 'mouldId', row.mouldId);
|
this.$set(this.formMould, 'proId', row.proId);
|
this.$set(this.formMould, 'mouldNum', row.mouldNum);
|
this.$set(this.formMould, 'mouldCode', row.mouldCode);
|
this.$set(this.formMould, 'mouldMn', row.mouldMn);
|
this.$set(this.formMould, 'mouldType', row.mouldType);
|
this.$set(this.formMould, 'mouldSize', row.mouldSize);
|
this.$set(this.formMould, 'mouldTurn', row.mouldTurn);
|
this.$set(this.formMould, 'groutingHoles', row.groutingHoles);
|
this.$set(this.formMould, 'supplierId', row.supplierId);
|
this.$set(this.formMould, 'status', row.status);
|
this.$set(this.formMould, 'maxCycleTime', row.maxCycleTime);
|
this.$set(this.formMould, 'productDate', row.productDate);
|
this.$set(this.formMould, 'comeFactoryTime', row.comeFactoryTime);
|
this.$set(this.formMould, 'warningValue', row.warningValue);
|
this.$set(this.formMould, 'warningDay', row.warningDay);
|
},
|
// 打印模具信息
|
propScanCode(item) {
|
this.modeCode = item.mouldNum;
|
this.mouldIds = item.mouldId
|
this.$nextTick(()=>{
|
document.getElementById("segmentPrint").click();
|
})
|
},
|
//展示模具二维码
|
showScanCode(row){
|
this.asyncScanCode = true;
|
this.mouldIds = row.mouldId;
|
this.modeCode = row.mouldNum;
|
},
|
// 删除备品备件信息
|
deleteInfo(row) {
|
this.$confirm("该操作将删除该模具信息,是否继续删除?", "提示", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning"
|
})
|
.then(() => {
|
this.$api.Basics.DELETEMOULDINFO({mouldId: row.mouldId})
|
.then(res => {
|
if(res.success) {
|
this.searchMouldList(true);
|
this.$message.success("删除成功!");
|
} else {
|
this.$message.warning(res.statusMsg);
|
}
|
})
|
})
|
.catch(() => {
|
this.$message.warning("您已取消");
|
})
|
},
|
// 提交添加信息
|
submitInsertForm: throttle(function() {
|
this.$refs.form.validate((valid) => {
|
if(valid) {
|
const params = Object.assign({}, this.formMould);
|
this.$api.Basics.INSERTMOULDINFO(params).then((res) => {
|
if(res.success) {
|
this.asyncMould = false;
|
this.$message.success('添加成功!');
|
this.searchMouldList(true);
|
} else {
|
this.$message.warning(res.statusMsg);
|
}
|
})
|
}
|
})
|
}, 3000),
|
// 提交修改信息
|
submitUpdateForm: throttle(function() {
|
this.$refs.form.validate((valid) => {
|
if(valid) {
|
const params = Object.assign({}, this.formMould);
|
this.$api.Basics.UPDATEMOULDINFO(params).then((res) => {
|
if(res.success) {
|
this.asyncMould = false;
|
this.$message.success('修改成功!');
|
this.searchMouldList(true);
|
} else {
|
this.$message.warning(res.statusMsg);
|
}
|
})
|
}
|
})
|
}, 3000),
|
// 根据项目获取 块号 尺寸 转向 注浆孔
|
changeSearchProject(data) {
|
if(data) {
|
this.$api.Basics.getProjectSystemInfoData({
|
proId: data
|
}).then((res) => {
|
this.mouldTypeData = res.data.proBloks;
|
})
|
} else {
|
this.mouldTypeId = '';
|
this.mouldTypeData = [];
|
}
|
},
|
// 根据项目获取 块号 尺寸 转向 注浆孔
|
changeProject(data) {
|
if(data) {
|
this.$api.Basics.getProjectSystemInfoData({
|
proId: data
|
}).then((res) => {
|
this.mouldTypeDatas = res.data.proBloks;
|
this.mouldSizeData = res.data.proSizes;
|
this.mouldTurnData = res.data.proTurns;
|
this.groutingHolesData = res.data.proGroutings;
|
})
|
} else {
|
this.$set(this.formMould, 'mouldType', '');
|
this.$set(this.formMould, 'mouldSize', '');
|
this.$set(this.formMould, 'mouldTurn', '');
|
this.$set(this.formMould, 'groutingHoles', '');
|
this.mouldTypeDatas = [];
|
this.mouldSizeData = [];
|
this.mouldTurnData = [];
|
this.groutingHolesData = [];
|
}
|
},
|
// 切换页码
|
changePageNum(page) {
|
this.pageNum = page;
|
this.searchMouldList();
|
},
|
// 切换每页条数
|
changePageSize(size) {
|
this.pageSize = size;
|
this.searchMouldList();
|
},
|
// 判断按钮权限信息
|
showButton(str) {
|
const pinia = buttonPinia();
|
return pinia.$state.buttonInfo.includes(str);
|
},
|
},
|
watch: {
|
asyncMould(bol) {
|
if(!bol) {
|
this.formMould = {};
|
this.$refs.form.resetFields();
|
}
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
@import '../../style/layout-main.scss';
|
</style>
|