plm前端
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.
 
 
 
 

434 lines
14 KiB

<script xmlns="http://www.w3.org/1999/html">
import {editDrawing, removeDrawing, searchDrawingDetailList, searchDrawingList} from "../../../api/code/codeDrawing";
import dayjs from "dayjs";
import {queryCodeErpPartNo} from "../../../api/code/codeParameterDef";
export default {
name: "CodeList",
data(){
return{
drawingList:[],
searchModel:{
site:this.$store.state.user.site,
drawingNo:undefined,
creator:undefined,
drawingDesc:undefined,
remark:undefined,
erpPartNo:undefined,
erpPartDesc:undefined,
startDate:"",
endDate:"",
},
drawing:{
},
drawingDetailList:[],
detailLoading:false,
detailDialogVisible:false,
saveDialogVisible:false,
columns: [
{
userId: this.$store.state.user.name,
functionId: 9009003,
serialNumber: '9009003Table1DrawingNo',
tableId: '9009003Table1',
tableName: '编码信息',
columnProp: 'drawingNo',
headerAlign: 'center',
align: 'left',
columnLabel: '编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140
},
{
userId: this.$store.state.user.name,
functionId: 9009003,
serialNumber: '9009003Table1DrawingDesc',
tableId: '9009003Table1',
tableName: '编码描述',
columnProp: 'drawingDesc',
headerAlign: 'center',
align: 'left',
columnLabel: '编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 600
},
{
userId: this.$store.state.user.name,
functionId: 9009003,
serialNumber: '9009003Table1ErpPartNo',
tableId: '9009003Table1',
tableName: '编码描述',
columnProp: 'erpPartNo',
headerAlign: 'center',
align: 'left',
columnLabel: 'IFS Part No',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 150
},
{
userId: this.$store.state.user.name,
functionId: 9009003,
serialNumber: '9009003Table1ErpPartDesc',
tableId: '9009003Table1',
tableName: '编码描述',
columnProp: 'erpPartDesc',
headerAlign: 'center',
align: 'left',
columnLabel: 'IFS Part Description',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 180
},
{
userId: this.$store.state.user.name,
functionId: 9009003,
serialNumber: '9009003Table1Creator',
tableId: '9009003Table1',
tableName: '编码描述',
columnProp: 'creator',
headerAlign: 'center',
align: 'left',
columnLabel: '创建人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 9009003,
serialNumber: '9009003Table1CreateDate',
tableId: '9009003Table1',
tableName: '编码描述',
columnProp: 'createDate',
headerAlign: 'center',
align: 'center',
columnLabel: '创建时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 9009003,
serialNumber: '9009003Table1Remark',
tableId: '9009003Table1',
tableName: '编码描述',
columnProp: 'remark',
headerAlign: 'center',
align: 'left',
columnLabel: '备注',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
],
exportData:[],
exportName: '编码列表'+this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["编码列表"],
exportFooter: [],
}
},
created() {
this.searchModel.startDate = dayjs().hour(0).minute(0).second(0).format("YYYY-MM-DD HH:mm:ss");
this.searchDrawingList();
},
methods:{
fields() {
let json = "{"
this.columns.forEach((item, index) => {
if (index === this.columns.length - 1) {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
} else {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
}
})
json += "}"
return eval("(" + json + ")")
},
createExportData() {
return this.drawingList;
},
searchDrawingList(){
searchDrawingList(this.searchModel).then(({data})=>{
if (data && data.code === 0){
this.drawingList = data.rows;
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
})
},
handleDelete(row){
this.$confirm(`该操作将删除编码${row.drawingNo}, 是否继续?`).then(() => {
removeDrawing(row).then(({data})=>{
if (data && data.code === 0){
this.searchDrawingList();
this.$message.success(data.msg);
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
});
})
},
handleEdit(row){
this.drawing = {...row}
this.saveDialogVisible = true;
},
editDrawing(){
if (this.drawing.erpPartNo && !this.drawing.erpPartDesc){
this.$message.warning("IFS Part No 不存在");
return;
}
editDrawing(this.drawing).then(({data})=>{
if (data && data.code === 0){
this.searchDrawingList();
this.$message.success(data.msg);
this.saveDialogVisible = false;
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
});
},
handleBlurErpPartNo(){
let params = {
erpPartNo:this.drawing.erpPartNo,
}
queryCodeErpPartNo(params).then(({data})=>{
if (data && data.code === 0){
if (data.row){
this.drawing.erpPartDesc = data.row.partDesc
}else {
this.drawing.erpPartDesc = ''
}
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
handleDetail(row){
this.detailLoading = true;
this.drawingDetailList = [];
this.detailDialogVisible = true;
searchDrawingDetailList(row).then(({data})=>{
if (data && data.code === 0){
this.drawingDetailList = data.rows;
}else {
this.$message.warning(data.msg);
}
this.detailLoading = false;
}).catch((error)=>{
this.$message.error(error);
this.detailLoading = false;
})
}
}
}
</script>
<template>
<div>
<el-form label-position="top" :model="searchModel">
<el-row :gutter="10">
<el-col :span="3">
<el-form-item label="编码:">
<el-input v-model="searchModel.drawingNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="编码描述:">
<el-input v-model="searchModel.drawingDesc" ></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="备注:">
<el-input v-model="searchModel.remark" ></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="创建人:">
<el-input v-model="searchModel.creator" ></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="3">
<el-form-item label="IFS Part No:">
<el-input v-model="searchModel.erpPartNo" ></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="IFS Part Description:">
<el-input v-model="searchModel.erpPartDesc" ></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="开始日期:">
<el-date-picker
value-format="yyyy-MM-dd HH:mm:ss"
v-model="searchModel.startDate"
style="width: 100%"
type="date"
placeholder="开始日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="结束日期:">
<el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="searchModel.endDate" style="width: 100%" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label=" ">
<el-button type="primary" @click="searchDrawingList">搜索</el-button>
<download-excel
:fields="fields()"
:data="exportData"
type="xls"
:name="exportName"
:header="exportHeader"
:footer="exportFooter"
:fetch="createExportData"
worksheet="导出信息"
class="el-button el-button--primary el-button--medium">
{{ '导出' }}
</download-excel>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table :data="drawingList" height="750" border style="width: 100%">
<el-table-column
v-for="(item,index) in columns" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<template>
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</template>
</el-table-column>
<el-table-column header-align="center" width="140" align="center" fixed="right" label="操作">
<template slot-scope="{row}">
<el-link style="cursor:pointer;" type="text" @click="handleEdit(row)">编辑</el-link>
<el-link style="cursor:pointer;" type="text" @click="handleDelete(row)">删除</el-link>
<el-link style="cursor:pointer;" type="text" @click="handleDetail(row)">详情</el-link>
</template>
</el-table-column>
</el-table>
<el-dialog title="编辑编码" :close-on-click-modal="false" :visible.sync="saveDialogVisible" width="1000px">
<!-- <fieldset-->
<!-- style="margin-top: 2px;border-color: rgb(255,255,255);">-->
<!-- <legend>更改前信息</legend>-->
<el-form label-position="top" :model="drawing" ref="drawingForm">
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="编码:">
<el-input readonly v-model="drawing.drawingNo" ></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="IFS Part No:">
<el-input v-model="drawing.erpPartNo" @blur="handleBlurErpPartNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="IFS Part Description:">
<el-input v-model="drawing.erpPartDesc" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="编码描述:">
<el-input v-model="drawing.drawingDesc" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注:">
<el-input v-model="drawing.remark" ></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- </fieldset>-->
<!-- <fieldset-->
<!-- style="margin-top: 2px;border-color: rgb(255,255,255);">-->
<!-- <legend>更改后信息</legend>-->
<!-- <el-form label-position="top" :model="drawing" ref="drawingForm">-->
<!-- <el-form-item label="编码:">-->
<!-- <el-input v-model="drawing.drawingNo" style="width: 200px"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="编码描述:">-->
<!-- <el-input readonly v-model="drawing.drawingDesc"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备注:">-->
<!-- <el-input readonly v-model="drawing.remark"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </fieldset>-->
<el-footer style="height:30px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="editDrawing">保存</el-button>
<el-button type="primary" @click="saveDialogVisible = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="编码详情" :close-on-click-modal="false" v-drag :visible.sync="detailDialogVisible" :loading="detailLoading">
<el-table :data="drawingDetailList" height="400" border style="width: 100%">
<el-table-column prop="itemNo" header-align="center" width="140" align="right" label="序号"></el-table-column>
<el-table-column prop="itemDesc" header-align="center" width="140" align="left" label="描述"></el-table-column>
<el-table-column prop="itemName" header-align="center" width="140" align="left" label="元素名称"></el-table-column>
<el-table-column prop="itemType" show-overflow-tooltip header-align="center" align="left" label="类型"></el-table-column>
<el-table-column prop="itemLabel" show-overflow-tooltip header-align="center" align="left" label="选中项描述"></el-table-column>
<el-table-column prop="itemValue" show-overflow-tooltip header-align="center" align="left" label="选中项值"></el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<style scoped>
</style>