<template>
|
<div class="" :style="{height:mainHeight+'px'}">
|
|
<div style="display: flex;margin: 20px 10px;align-items: center">
|
|
<el-select
|
v-model="excelCode"
|
style="width:200px"
|
placeholder="请选择模板文件"
|
:popper-append-to-body="false"
|
clearable
|
>
|
<el-option
|
v-for="item in excelArr"
|
:key="item.FileCode"
|
:label="item.FileName"
|
:value="item.FileCode"
|
/>
|
</el-select>
|
|
<el-button
|
type="primary"
|
style="margin-left: 20px"
|
:disabled="excelCode===''"
|
icon="el-icon-download"
|
waves
|
@click="getExcel"
|
>下载模板
|
</el-button>
|
|
<upload-excel-component
|
:on-success="handleSuccess"
|
:before-upload="beforeUpload"
|
:disabled="excelCode===''"
|
/>
|
|
<el-button
|
type="info"
|
style="margin-left: 20px"
|
:disabled="excelCode===''"
|
icon="el-icon-refresh"
|
waves
|
@click="reset"
|
>重置
|
</el-button>
|
|
<el-button
|
type="warning"
|
style="margin-left: 20px"
|
icon="el-icon-circle-plus-outline"
|
:disabled="excelCode===''||tableData.length===0"
|
waves
|
@click="addRow"
|
>新增行
|
</el-button>
|
|
<el-button
|
type="success"
|
style="margin-left: 20px"
|
:disabled="excelCode===''||tableData.length===0"
|
icon="el-icon-thumb"
|
waves
|
@click="submit"
|
>提交数据
|
</el-button>
|
</div>
|
|
<div
|
v-if="sheetName.length>0"
|
style="margin: 10px"
|
>
|
|
<el-tabs v-model="activeName" type="border-card">
|
<el-tab-pane
|
v-for="(i,j) in sheetName"
|
:key="i+j"
|
:label="i"
|
>
|
<el-table
|
v-if="tableData[j].length>0"
|
:ref="'tableDataRef'+i"
|
:data="tableData[j]"
|
border
|
:height="(mainHeight-180)+'px'"
|
:header-cell-style="headerCellStyle"
|
:cell-style="cellStyle"
|
:style="{width: 100+'%',height:(mainHeight-180)+'px',zIndex:10}"
|
style="overflow-y: scroll;"
|
highlight-current-row
|
>
|
|
<el-table-column
|
label="序号"
|
width="55"
|
fixed
|
align="center"
|
:render-header="indexRender"
|
>
|
<template slot-scope="scope">
|
{{ scope.$index + 1 }}
|
</template>
|
</el-table-column>
|
|
<el-table-column
|
v-for="item of tableHeader[j]"
|
:key="item"
|
:prop="item"
|
:label="item"
|
align="center"
|
:render-header="addRedStar"
|
min-width="220"
|
>
|
<template slot-scope="{row}">
|
|
<div
|
v-if="item.indexOf('编号(唯一)')!==-1||
|
item.indexOf('用户姓名')!==-1||
|
item.indexOf('密码')!==-1||
|
item.indexOf('薪资类型')!==-1||
|
item.indexOf('手机号')!==-1||
|
item.indexOf('邮箱')!==-1||
|
item.indexOf('名称')!==-1||
|
item.indexOf('描述')!==-1||
|
item.indexOf('上级编码')!==-1||
|
item.indexOf('类型编码')!==-1||
|
item.indexOf('联系人')!==-1||
|
item.indexOf('联系方式')!==-1||
|
item.indexOf('地址')!==-1||
|
item.indexOf('所属仓库编码')!==-1||
|
item.indexOf('上级库位编码')!==-1||
|
item.indexOf('规格型号')!==-1||
|
item.indexOf('存货分类')!==-1||
|
item.indexOf('仓库编码')!==-1||
|
item.indexOf('预计寿命')!==-1||
|
item.indexOf('剩余寿命')!==-1||
|
item.indexOf('模具编码')!==-1||
|
item.indexOf('产品编码')!==-1||
|
|
item.indexOf('标准编号')!==-1||
|
item.indexOf('项序号')!==-1||
|
item.indexOf('项要求')!==-1||
|
|
item.indexOf('计量单位/组名称')!==-1||
|
|
item.indexOf('保养部位要求')!==-1||
|
item.indexOf('保养项目要求')!==-1||
|
item.indexOf('点检部位要求')!==-1||
|
item.indexOf('点检项目要求')!==-1||
|
|
item.indexOf('仓库编码')!==-1||
|
item.indexOf('库位编码')!==-1
|
"
|
>
|
<el-input v-model="row[item]" placeholder="请输入" />
|
</div>
|
<div v-else-if="item.indexOf('状态')!==-1">
|
<el-select
|
v-model="row[item]"
|
placeholder="请选择"
|
filterable
|
style="width:100%"
|
clearable
|
>
|
<el-option
|
v-for="item in statusArr"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code"
|
/>
|
</el-select>
|
</div>
|
<div v-else-if="item.indexOf('计量方式')!==-1">
|
<el-select
|
v-model="row[item]"
|
placeholder="请选择"
|
filterable
|
style="width:100%"
|
clearable
|
>
|
<el-option
|
v-for="item in meterMethodArr"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code"
|
/>
|
</el-select>
|
</div>
|
<div v-else-if="item.indexOf('工序类型')!==-1">
|
<el-select
|
v-model="row[item]"
|
placeholder="请选择"
|
filterable
|
style="width:100%"
|
clearable
|
>
|
<el-option
|
v-for="item in stepTypeArr"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code"
|
/>
|
</el-select>
|
</div>
|
<div
|
v-else-if="
|
item.indexOf('点检管控')!==-1||
|
item.indexOf('选择扫码')!==-1||
|
item.indexOf('是否扫码')!==-1||
|
item.indexOf('库位管理')!==-1||
|
item.indexOf('是否外购')!==-1||
|
item.indexOf('是否销售')!==-1||
|
item.indexOf('是否自制')!==-1||
|
item.indexOf('是否生产消耗')!==-1||
|
item.indexOf('是否委外')!==-1
|
"
|
>
|
<el-select
|
v-model="row[item]"
|
placeholder="请选择"
|
filterable
|
style="width:100%"
|
clearable
|
>
|
<el-option
|
v-for="item in isYesOrNo"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code"
|
/>
|
</el-select>
|
</div>
|
<div
|
v-else-if="item.indexOf('点检周期')!==-1||
|
item.indexOf('保养周期')!==-1"
|
>
|
<el-select
|
v-model="row[item]"
|
style="width: 100%;"
|
placeholder="请选择"
|
>
|
|
<el-option
|
v-for="item in cycleArr"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code"
|
/>
|
</el-select>
|
</div>
|
<div v-else-if="item.indexOf('所属岗位编码')!==-1">
|
<el-select
|
v-model="row[item]"
|
style="width: 100%;"
|
placeholder="请选择"
|
multiple
|
filterable
|
collapse-tags
|
clearable
|
>
|
|
<el-option
|
v-for="item in postArr"
|
:key="item.postcode"
|
:label="item.postname"
|
:value="item.postcode"
|
/>
|
</el-select>
|
</div>
|
<div v-else-if="item.indexOf('所属角色编码')!==-1">
|
<el-select
|
v-model="row[item]"
|
style="width: 100%;"
|
placeholder="请选择"
|
multiple
|
filterable
|
collapse-tags
|
clearable
|
>
|
<el-option
|
v-for="item in roleArr"
|
:key="item.rolecode"
|
:label="item.rolename"
|
:value="item.rolecode"
|
/>
|
</el-select>
|
</div>
|
<div v-else-if="item.indexOf('所属班组编码')!==-1">
|
<el-select
|
v-model="row[item]"
|
style="width: 100%;"
|
placeholder="请选择"
|
collapse-tags
|
multiple
|
filterable
|
clearable
|
>
|
<el-option
|
v-for="item in groupArr"
|
:key="item.usergroupcode"
|
:label="item.usergroupname"
|
:value="item.usergroupcode"
|
/>
|
</el-select>
|
</div>
|
<div v-else-if="item.indexOf('所属组织编码')!==-1">
|
<el-cascader
|
ref="cascader"
|
v-model="row[item]"
|
:options="orgOptions"
|
filterable
|
:props="defaultProps"
|
:show-all-levels="false"
|
/>
|
</div>
|
<div v-else> {{ row[item] }}</div>
|
</template>
|
</el-table-column>
|
|
<el-table-column
|
label="操作"
|
width="55"
|
:render-header="operationRender"
|
fixed="right"
|
>
|
<template slot-scope="{row}">
|
<div class="operationClass" style="padding-left: 10px">
|
<el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">
|
<i
|
class="el-icon-delete"
|
:style="{color:$store.state.settings.theme}"
|
@click="delRow(row)"
|
/>
|
</el-tooltip>
|
</div>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-tab-pane>
|
</el-tabs>
|
|
</div>
|
|
<el-empty v-if="tableData.length===0" :image-size="500">
|
<el-button type="text">1.请选择模板下载</el-button>
|
<el-button type="text" style="margin-left: 0;">2.请填写模板数据</el-button>
|
<el-button type="text" style="margin-left: 0;">3.请上传文件提交</el-button>
|
</el-empty>
|
|
<el-dialog
|
v-el-drag-dialog
|
title="失败原因"
|
:visible.sync="dialogVisible"
|
width="1300px"
|
:close-on-click-modal="false"
|
top="15vh"
|
@closed="handleClose"
|
@close="handleClose"
|
>
|
<div class="">
|
<el-table
|
ref="tableDataRef"
|
class="tableFixed"
|
:data="dialogTableData"
|
:height="400"
|
border
|
row-class-name="custom-row"
|
:style="{width: 100+'%',height: '400px',}"
|
highlight-current-row
|
:header-cell-style="this.$headerCellStyle"
|
:cell-style="this.$cellStyle"
|
>
|
<el-table-column
|
type="index"
|
width="50"
|
fixed
|
label="序号"
|
/>
|
<el-table-column
|
prop="ErrorField"
|
label="错误字段"
|
width="200"
|
show-overflow-tooltip
|
/>
|
<el-table-column
|
prop="ErrorCont"
|
show-overflow-tooltip
|
label="错误原因"
|
/>
|
</el-table>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<div class="footerButton">
|
<el-button v-waves @click="dialogVisible=false">返 回</el-button>
|
<!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">确 定</el-button>-->
|
</div>
|
</span>
|
</el-dialog>
|
|
</div>
|
</template>
|
|
<script>
|
import UploadExcelComponent from '@/components/UploadExcel/index.vue'
|
import { DownLoadExcel, ExcelModelCheck, ExcelModelData } from '@/api/Excel'
|
import { GroupsPermissions, PostPermissions, PrentOrganization, RolePermissions } from '@/api/GeneralBasicData'
|
import { nanoid } from 'nanoid'
|
import arrayToTree from 'array-to-tree'
|
import elDragDialog from '@/directive/el-drag-dialog'
|
import waves from '@/directive/waves'
|
|
export default {
|
name: 'DataImport',
|
components: { UploadExcelComponent },
|
directives: { elDragDialog, waves },
|
data() {
|
return {
|
mainHeight: window.innerHeight - 85,
|
|
tableData: [],
|
tableHeader: [],
|
sheetName: [],
|
|
excelCode: '',
|
excelArr: [],
|
|
statusArr: [],
|
isYesOrNo: [
|
{ code: '1', name: '是' },
|
{ code: '0', name: '否' }
|
],
|
stepTypeArr: [
|
{ code: 'Z', name: '自制' },
|
{ code: 'W', name: '外协' }
|
],
|
orgArr: [], // 组织
|
orgOptions: [],
|
defaultProps: {
|
checkStrictly: true,
|
expandTrigger: 'hover',
|
value: 'torg_code',
|
label: 'torg_name'
|
},
|
orgDefaultProps: {
|
multiple: true,
|
expandTrigger: 'hover',
|
value: 'torg_code',
|
label: 'torg_name'
|
},
|
postArr: [], // 岗位
|
roleArr: [], // 角色
|
groupArr: [], // 班组
|
|
dialogVisible: false,
|
dialogTableData: [],
|
|
meterMethodArr: [
|
{ code: 'S', name: '单计量' },
|
{ code: 'M', name: '多计量' }
|
],
|
|
cycleArr: [
|
{ code: '年', name: '年' },
|
{ code: '季', name: '季' },
|
{ code: '月', name: '月' },
|
{ code: '周', name: '周' },
|
{ code: '日', name: '日' }
|
],
|
|
activeName: '0'// tab选中值
|
|
}
|
},
|
mounted() {
|
this.getExcelModelData()
|
|
this.getSelectArr()
|
window.addEventListener('resize', this.getHeight)
|
},
|
methods: { // 获取页面高度
|
getHeight() {
|
this.$nextTick(() => {
|
this.mainHeight = window.innerHeight - 85
|
|
// this.$nextTick(() => {
|
// this.$refs.tableDataRef.doLayout()
|
// })
|
})
|
},
|
async beforeUpload(file) {
|
const isLt1M = file.size / 1024 / 1024 < 1
|
if (isLt1M) {
|
return true
|
}
|
|
this.$message({
|
message: '请不要上传大于1兆的文件。',
|
type: 'warning'
|
})
|
return false
|
},
|
// excel成功后的回调
|
async handleSuccess({ results, header, sheetName }) {
|
if (results[0].length === 0) {
|
return this.$message.info('表格数据不能为空!')
|
}
|
this.tableData = results
|
this.tableHeader = header
|
this.sheetName = sheetName
|
|
this.activeName = '0'
|
|
// 人员管理导入判断
|
if (this.sheetName.indexOf('人员管理') !== -1) {
|
this.handlePersonListUploadTemplate(true)
|
}
|
|
if (this.sheetName.indexOf('角色管理') !== -1 || this.sheetName.indexOf('班组管理') !== -1 ||
|
this.sheetName.indexOf('岗位管理') !== -1
|
) {
|
this.statusArr = [
|
{ code: 'Y', name: '正常' },
|
{ code: 'N', name: '停用' }
|
]
|
this.tableData[0].forEach(j => {
|
j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
|
j.uuid = nanoid()
|
})
|
}
|
|
if (this.sheetName.indexOf('往来单位') !== -1) {
|
this.statusArr = [
|
{ code: '0', name: '正常' },
|
{ code: '1', name: '停用' }
|
]
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
})
|
this.tableData[1].forEach(j => {
|
j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
|
j.uuid = nanoid()
|
})
|
}
|
|
if (this.sheetName.indexOf('仓库设置') !== -1) {
|
this.statusArr = [
|
{ code: '0', name: '正常' },
|
{ code: '1', name: '停用' }
|
]
|
this.tableData[0].forEach(j => {
|
j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
|
j['*库位管理'] = j['*库位管理'] ? this.isYesOrNo.find(e => e.name === j['*库位管理']).code : ''
|
j.uuid = nanoid()
|
})
|
}
|
|
if (this.sheetName.indexOf('库位设置') !== -1) {
|
this.statusArr = [
|
{ code: '0', name: '正常' },
|
{ code: '1', name: '停用' }
|
]
|
this.tableData[0].forEach(j => {
|
j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
|
j.uuid = nanoid()
|
})
|
}
|
|
if (this.sheetName.indexOf('存货分类') !== -1) {
|
this.statusArr = [
|
{ code: '0', name: '正常' },
|
{ code: '1', name: '停用' }
|
]
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
})
|
this.tableData[1].forEach(j => {
|
j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
|
j['*计量方式'] = j['*计量方式'] ? this.meterMethodArr.find(e => e.name === j['*计量方式']).code : '0'
|
j['是否外购'] = j['是否外购'] ? this.isYesOrNo.find(e => e.name === j['是否外购']).code : '0'
|
j['是否销售'] = j['是否销售'] ? this.isYesOrNo.find(e => e.name === j['是否销售']).code : '0'
|
j['是否自制'] = j['是否自制'] ? this.isYesOrNo.find(e => e.name === j['是否自制']).code : '0'
|
j['是否生产消耗'] = j['是否生产消耗'] ? this.isYesOrNo.find(e => e.name === j['是否生产消耗']).code : '0'
|
j['是否委外'] = j['是否委外'] ? this.isYesOrNo.find(e => e.name === j['是否委外']).code : '0'
|
j.uuid = nanoid()
|
})
|
}
|
if (this.sheetName.indexOf('设备类型') !== -1) {
|
this.statusArr = [
|
{ code: 'Y', name: '正常' },
|
{ code: 'N', name: '停用' }
|
]
|
const orgArr = this.orgArr.map(i => i.torg_code)
|
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
})
|
this.tableData[1].forEach(j => {
|
j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
|
j['*所属组织编码'] = j['*所属组织编码'] ? (orgArr.includes(j['*所属组织编码']) ? this.findParent([], j['*所属组织编码'], this.orgOptions).reverse() : '') : ''
|
j.uuid = nanoid()
|
})
|
}
|
|
if (this.sheetName.indexOf('工序设置') !== -1) {
|
this.statusArr = [
|
{ code: 'Y', name: '正常' },
|
{ code: 'N', name: '停用' }
|
]
|
this.tableData[0].forEach(j => {
|
j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
|
j['*工序类型'] = j['*工序类型'] ? this.stepTypeArr.find(e => e.name === j['*工序类型']).code : ''
|
j.uuid = nanoid()
|
})
|
}
|
|
if (this.sheetName.indexOf('模具清单') !== -1) {
|
this.statusArr = [
|
{ code: 'Y', name: '正常' },
|
{ code: 'N', name: '故障' }
|
]
|
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
j['*状态'] = j['*状态'] ? this.statusArr.find(e => e.name === j['*状态']).code : ''
|
})
|
this.tableData[1].forEach(j => {
|
j.uuid = nanoid()
|
})
|
}
|
|
if (this.sheetName.indexOf('模具点检标准') !== -1) {
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
})
|
this.tableData[1].forEach(j => {
|
j.uuid = nanoid()
|
})
|
}
|
|
if (this.sheetName.indexOf('设备点检项目') !== -1) {
|
this.isYesOrNo = [
|
{ code: '是', name: '是' },
|
{ code: '否', name: '否' }
|
]
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
j['*点检周期'] = j['*点检周期'] ? this.cycleArr.find(e => e.name === j['*点检周期']).code : ''
|
j['*是否扫码'] = j['*是否扫码'] ? this.isYesOrNo.find(e => e.name === j['*是否扫码']).code : ''
|
})
|
}
|
|
if (this.sheetName.indexOf('设备点检标准') !== -1) {
|
this.isYesOrNo = [
|
{ code: 'Y', name: 'Y' },
|
{ code: 'N', name: 'N' }
|
]
|
this.cycleArr = [
|
{ code: '日', name: '日' }
|
]
|
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
})
|
this.tableData[1].forEach(j => {
|
j.uuid = nanoid()
|
})
|
}
|
|
if (this.sheetName.indexOf('设备保养项目') !== -1) {
|
this.isYesOrNo = [
|
{ code: 'Y', name: 'Y' },
|
{ code: 'N', name: 'N' }
|
]
|
this.cycleArr = [
|
{ code: '年', name: '年' },
|
{ code: '季', name: '季' },
|
{ code: '月', name: '月' },
|
{ code: '周', name: '周' }
|
]
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
j['*是否扫码'] = j['*是否扫码'] ? this.isYesOrNo.find(e => e.name === j['*是否扫码']).code : ''
|
})
|
}
|
|
if (this.sheetName.indexOf('设备保养标准') !== -1) {
|
this.isYesOrNo = [
|
{ code: 'Y', name: 'Y' },
|
{ code: 'N', name: 'N' }
|
]
|
this.cycleArr = [
|
{ code: '年', name: '年' },
|
{ code: '季', name: '季' },
|
{ code: '月', name: '月' },
|
{ code: '周', name: '周' }
|
]
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
})
|
this.tableData[1].forEach(j => {
|
j.uuid = nanoid()
|
})
|
}
|
|
//
|
},
|
// 提交
|
submit() {
|
this.$confirm('是否确认提交?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
})
|
.then(() => {
|
if (this.sheetName.indexOf('人员管理') !== -1) {
|
const res = this.handlePersonListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('角色管理') !== -1) {
|
const res = this.handleRoleListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
if (this.sheetName.indexOf('班组管理') !== -1) {
|
const res = this.handleGroupListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
if (this.sheetName.indexOf('岗位管理') !== -1) {
|
const res = this.handlePostListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
if (this.sheetName.indexOf('往来单位类型') !== -1 && this.sheetName.indexOf('往来单位') !== -1) {
|
const res = this.handleContactUnitListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('仓库设置') !== -1) {
|
const res = this.handleWarehouseListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('库位设置') !== -1) {
|
const res = this.handleStorageListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
if (this.sheetName.indexOf('存货分类') !== -1) {
|
const res = this.handleInventoryListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
if (this.sheetName.indexOf('设备类型') !== -1) {
|
const res = this.handleDeviceListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
if (this.sheetName.indexOf('工序设置') !== -1) {
|
const res = this.handleProcessListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
if (this.sheetName.indexOf('缺陷定义') !== -1) {
|
const res = this.handleDefectDefineSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('模具清单') !== -1 && this.sheetName.indexOf('模具关联产品') !== -1) {
|
const res = this.handleMouldListSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('模具点检项目') !== -1) {
|
const res = this.handleMouldCheckPosSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('模具点检标准') !== -1) {
|
const res = this.handleMouldCheckStandSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('模具保养项目') !== -1) {
|
const res = this.handleMouldMaintainSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('模具保养标准') !== -1) {
|
const res = this.handleMouldMaintainStandSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('设备点检项目') !== -1) {
|
const res = this.handleCheckPositionSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('设备点检标准') !== -1) {
|
const res = this.handleCheckStandardSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('设备保养项目') !== -1) {
|
const res = this.handleMaintainPositionSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
if (this.sheetName.indexOf('设备保养标准') !== -1) {
|
const res = this.handleMaintainStandardSubmitData()
|
if (res.code !== '200') {
|
return this.$message.info(res.message)
|
}
|
}
|
|
// 数据提交前去除空格方法
|
// this.tableDataTrim()
|
|
const data = {
|
fileCode: this.excelCode,
|
tableData: this.tableData
|
}
|
ExcelModelCheck(data).then(res => {
|
// 返回的json1、json2、json3 json1为模板校验、json2为数据校验、json3为导入数据库校验(可能会有系统报错产生)
|
if (res.json1.code !== '200' && res.json2 === null && res.json3 === null) {
|
this.$message.error(res.json1.message)
|
}
|
if (res.json1.code === '200' && res.json2 !== '200' && res.json3 === null) {
|
this.$message.error(res.json2.message)
|
}
|
if (res.json1.code === '200' && res.json2 === '200' && res.json3 !== '200') {
|
this.$message.error(res.json3.message)
|
}
|
|
if (res.json1.code === '300' && res.json2.code === '200' && res.json3.code === '300') { // 系统报错
|
return this.$message.error(res.json3.message)
|
}
|
|
if (res.json1.code === '200' && res.json2.code === '301' && res.json3 === null) {
|
this.dialogVisible = true
|
this.dialogTableData = res.json2.data
|
}
|
|
if (res.json1.code === '200' && res.json2.code === '200' && res.json3.code === '200') {
|
this.$notify.success('数据提交成功!')
|
this.tableData = []
|
this.tableHeader = []
|
this.sheetName = []
|
this.excelCode = ''
|
|
return
|
}
|
|
if (this.sheetName.indexOf('人员管理') !== -1) {
|
this.handlePersonListUploadTemplate(false)
|
}
|
if (this.sheetName.indexOf('设备类型') !== -1) {
|
this.tableData[0].forEach(j => {
|
j.uuid = nanoid()
|
})
|
this.tableData[1].forEach(j => {
|
j['*所属组织编码'] = this.findParent([], j['*所属组织编码'], this.orgOptions).reverse()
|
j.uuid = nanoid()
|
})
|
}
|
})
|
})
|
.catch(e => {
|
console.log(e)
|
this.$notify.info('已取消提交!')
|
})
|
},
|
|
// 处理人员管理导入模板
|
handlePersonListUploadTemplate(isFirstUpload) {
|
this.statusArr = [
|
{ code: 'Y', name: '在职' },
|
{ code: 'N', name: '离职' }
|
]
|
const postArr = this.postArr.map(i => i.postcode)
|
const roleArr = this.roleArr.map(i => i.rolecode)
|
const groupArr = this.groupArr.map(i => i.usergroupcode)
|
const orgArr = this.orgArr.map(i => i.torg_code)
|
|
// this.sheetName.indexOf('人员管理')
|
// 第一次渲染
|
if (isFirstUpload) {
|
this.tableData[0].forEach(j => {
|
j['所属岗位编码'] = j['所属岗位编码'] ? j['所属岗位编码'].split(',').filter(e => postArr.includes(e)) : []
|
j['所属角色编码'] = j['所属角色编码'] ? j['所属角色编码'].split(',').filter(e => roleArr.includes(e)) : []
|
j['所属班组编码'] = j['所属班组编码'] ? j['所属班组编码'].split(',').filter(e => groupArr.includes(e)) : []
|
j['*所属组织编码'] = j['*所属组织编码'] ? (orgArr.includes(j['*所属组织编码']) ? this.findParent([], j['*所属组织编码'], this.orgOptions).reverse() : '') : ''
|
j['*在职状态'] = j['*在职状态'] ? this.statusArr.find(e => e.name === j['*在职状态']).code : 'Y'
|
j.uuid = nanoid()
|
})
|
}
|
|
// 非第一次渲染
|
if (!isFirstUpload) {
|
this.tableData[0].forEach(j => {
|
j.所属岗位编码 = typeof j.所属岗位编码 === 'string' ? j.所属岗位编码.split(',').filter(e => postArr.includes(e)) : []
|
j.所属角色编码 = typeof j.所属角色编码 === 'string' ? j.所属角色编码.split(',').filter(e => roleArr.includes(e)) : []
|
j.所属班组编码 = typeof j.所属班组编码 === 'string' ? j.所属班组编码.split(',').filter(e => groupArr.includes(e)) : []
|
j['*所属组织编码'] = this.findParent([], j['*所属组织编码'], this.orgOptions).reverse()
|
|
j.uuid = nanoid()
|
})
|
}
|
},
|
// 处理人员管理提交数据
|
handlePersonListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*用户编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*用户编号(唯一)']) {
|
flag = false
|
msg = '*用户编号(唯一)'
|
}
|
|
if (!j['*用户姓名']) {
|
flag = false
|
msg = '*用户姓名'
|
}
|
if (!j['*密码']) {
|
flag = false
|
msg = '*密码'
|
}
|
if (!j['*薪资类型']) {
|
flag = false
|
msg = '*薪资类型'
|
}
|
if (!j['*在职状态']) {
|
flag = false
|
msg = '*在职状态'
|
}
|
if (!j['*所属组织编码']) {
|
flag = false
|
msg = '*所属组织编码'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
this.tableData[0].forEach(j => {
|
j['所属岗位编码'] = j['所属岗位编码'].join(',')
|
j['所属班组编码'] = j['所属班组编码'].join(',')
|
j['所属角色编码'] = j['所属角色编码'].join(',')
|
j['*所属组织编码'] = j['*所属组织编码'][j['*所属组织编码'].length - 1]
|
})
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理角色管理提交数据
|
handleRoleListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*角色编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*角色编号(唯一)']) {
|
flag = false
|
msg = '*角色编号(唯一)'
|
}
|
if (!j['*角色名称']) {
|
flag = false
|
msg = '*角色名称'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理班组管理提交数据
|
handleGroupListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*角色编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*班组编号(唯一)']) {
|
flag = false
|
msg = '*班组编号(唯一)'
|
}
|
if (!j['*班组名称']) {
|
flag = false
|
msg = '*班组名称'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理岗位管理提交数据
|
handlePostListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*岗位编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*岗位编号(唯一)']) {
|
flag = false
|
msg = '*岗位编号(唯一)'
|
}
|
if (!j['*岗位名称']) {
|
flag = false
|
msg = '*岗位名称'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理往来单位提交数据
|
handleContactUnitListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*往来单位类型编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('往来单位类型编号不能重复!')
|
}
|
if ([...new Set(this.tableData[1].map(i => i['*往来单位编号(唯一)']))].length !== this.tableData[1].length) {
|
return this.$message.info('往来单位编号不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*往来单位类型编号(唯一)']) {
|
flag = false
|
msg = '*往来单位类型编号(唯一)不能为空!'
|
}
|
if (!j['*往来单位类型名称']) {
|
flag = false
|
msg = '*往来单位类型名称不能为空!'
|
}
|
if (j['*往来单位类型编号(唯一)'] === j['上级编码']) {
|
flag = false
|
msg = '*往来单位类型编号(唯一)与上级编码不能相同!'
|
}
|
})
|
this.tableData[1].forEach(j => {
|
if (!j['*往来单位编号(唯一)']) {
|
flag = false
|
msg = '*往来单位编号(唯一)不能为空!'
|
}
|
if (!j['*往来单位名称']) {
|
flag = false
|
msg = '*往来单位名称不能为空!'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态不能为空!'
|
}
|
if (!j['*往来单位类型编码']) {
|
flag = false
|
msg = '*往来单位类型编码不能为空!'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
this.tableData[1].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理仓库设置提交数据
|
handleWarehouseListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*仓库编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*仓库编号(唯一)']) {
|
flag = false
|
msg = '*仓库编号(唯一)'
|
}
|
if (!j['*仓库名称']) {
|
flag = false
|
msg = '*仓库名称'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态'
|
}
|
if (!j['*库位管理']) {
|
flag = false
|
msg = '*库位管理'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理库位设置提交数据
|
handleStorageListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*库位编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*库位编号(唯一)']) {
|
flag = false
|
msg = '*库位编号(唯一)不能为空!'
|
}
|
if (!j['*库位名称']) {
|
flag = false
|
msg = '*库位名称不能为空!'
|
}
|
if (!j['*所属仓库编码']) {
|
flag = false
|
msg = '*所属仓库编码不能为空!'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态不能为空!'
|
}
|
if (j['上级库位编码'] === j['*库位编号(唯一)']) {
|
flag = false
|
msg = '*库位编号(唯一)与上级库位编码不能相同!'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理存货档案提交数据
|
handleInventoryListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*存货分类编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('存货分类编号不能重复!')
|
}
|
if ([...new Set(this.tableData[1].map(i => i['*存货编号(唯一)']))].length !== this.tableData[1].length) {
|
return this.$message.info('存货编号不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*存货分类编号(唯一)']) {
|
flag = false
|
msg = '*存货分类编号(唯一)不能为空!'
|
}
|
if (!j['*存货分类名称']) {
|
flag = false
|
msg = '*存货分类不能为空!'
|
}
|
if (j['*存货分类编号(唯一)'] === j['上级编码']) {
|
flag = false
|
msg = '*存货分类编号(唯一)与上级编码不能相同!'
|
}
|
})
|
this.tableData[1].forEach(j => {
|
if (!j['*存货编号(唯一)']) {
|
flag = false
|
msg = '*存货编号(唯一)不能为空!'
|
}
|
if (!j['*存货名称']) {
|
flag = false
|
msg = '*存货名称不能为空!'
|
}
|
if (!j['*存货分类编码']) {
|
flag = false
|
msg = '*存货分类编码不能为空!'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态不能为空!'
|
}
|
if (!j['*计量方式']) {
|
flag = false
|
msg = '*计量方式不能为空!'
|
}
|
if (!j['*计量单位/组名称']) {
|
flag = false
|
msg = '*计量单位/组名称不能为空!'
|
}
|
if (!(j['是否外购'] === '1' || j['是否销售'] === '1' || j['是否自制'] === '1' || j['是否生产消耗'] === '1' || j['是否委外'] === '1')) {
|
flag = false
|
msg = '存货属性必须要选择其一!'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
this.tableData[1].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理设备清单提交数据
|
handleDeviceListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*设备类型编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('设备类型编号不能重复!')
|
}
|
if ([...new Set(this.tableData[1].map(i => i['*设备编号(唯一)']))].length !== this.tableData[1].length) {
|
return this.$message.info('设备编号不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*设备类型编号(唯一)']) {
|
flag = false
|
msg = '*设备类型编号(唯一)不能为空!'
|
}
|
if (!j['*设备类型名称']) {
|
flag = false
|
msg = '*设备类型名称不能为空!'
|
}
|
})
|
this.tableData[1].forEach(j => {
|
if (!j['*设备编号(唯一)']) {
|
flag = false
|
msg = '*设备编号(唯一)不能为空!'
|
}
|
if (!j['*设备名称']) {
|
flag = false
|
msg = '*设备名称不能为空!'
|
}
|
if (!j['*所属组织编码']) {
|
flag = false
|
msg = '*所属组织编码不能为空!'
|
}
|
if (!j['*设备类型编码']) {
|
flag = false
|
msg = '*设备类型编码不能为空!'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态不能为空!'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg }
|
}
|
|
this.tableData[1].forEach(j => {
|
j['*所属组织编码'] = j['*所属组织编码'][j['*所属组织编码'].length - 1]
|
})
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
this.tableData[1].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理工序设置提交数据
|
handleProcessListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*工序编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*工序编号(唯一)']) {
|
flag = false
|
msg = '*工序编号(唯一)'
|
}
|
if (!j['*工序名称']) {
|
flag = false
|
msg = '*工序名称'
|
}
|
if (!j['*工序类型']) {
|
flag = false
|
msg = '*工序类型'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理缺陷定义提交数据
|
handleDefectDefineSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*缺陷编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*缺陷编号(唯一)']) {
|
flag = false
|
msg = '*缺陷编号(唯一)'
|
}
|
if (!j['*缺陷名称']) {
|
flag = false
|
msg = '*缺陷名称'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理模具清单提交数据
|
handleMouldListSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*模具编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('模具清单编号不能重复!')
|
}
|
// if ([...new Set(this.tableData[1].map(i => i['*往来单位编号(唯一)']))].length !== this.tableData[1].length) {
|
// return this.$message.info('往来单位编号不能重复!')
|
// }
|
this.tableData[0].forEach(j => {
|
if (!j['*模具编号(唯一)']) {
|
flag = false
|
msg = '*模具编号(唯一)不能为空!'
|
}
|
if (!j['*模具名称']) {
|
flag = false
|
msg = '*模具名称不能为空!'
|
}
|
if (!j['*状态']) {
|
flag = false
|
msg = '*状态不能为空!'
|
}
|
if (!j['*仓库编码']) {
|
flag = false
|
msg = '*仓库编码不能为空!'
|
}
|
if (!j['*库位编码']) {
|
flag = false
|
msg = '*库位编码不能为空!'
|
}
|
})
|
this.tableData[1].forEach(j => {
|
if (!j['模具编码'] && j['产品编码']) {
|
flag = false
|
msg = '模具编码不能为空!'
|
}
|
if (j['模具编码'] && !j['产品编码']) {
|
flag = false
|
msg = '产品编码不能为空!'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
this.tableData[1].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理模具点检项目提交数据
|
handleMouldCheckPosSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*点检项目编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*点检项目编号(唯一)']) {
|
flag = false
|
msg = '*点检项目编号(唯一)'
|
}
|
if (!j['*点检项目名称']) {
|
flag = false
|
msg = '*点检项目名称'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理模具点检标准提交数据
|
handleMouldCheckStandSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*模具点检标准编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('点检标准编号不能重复!')
|
}
|
if ([...new Set(this.tableData[1].map(i => i['*模具点检标准编号']))].length !== this.tableData[1].length) {
|
return this.$message.info('模具点检标准编号不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*模具点检标准编号(唯一)']) {
|
flag = false
|
msg = '*模具点检标准编号(唯一)不能为空!'
|
}
|
if (!j['*模具点检标准名称']) {
|
flag = false
|
msg = '*模具点检标准不能为空!'
|
}
|
})
|
this.tableData[1].forEach(j => {
|
if (!j['*模具点检标准编号']) {
|
flag = false
|
msg = '*模具点检标准编号不能为空!'
|
}
|
if (!j['*点检项序号']) {
|
flag = false
|
msg = '*点检项序号不能为空!'
|
}
|
if (!j['*模具点检项编号(唯一)']) {
|
flag = false
|
msg = '*模具点检项编号(唯一)不能为空!'
|
}
|
if (!j['*模具点检项名称']) {
|
flag = false
|
msg = '*模具点检项名称不能为空!'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
this.tableData[1].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理模具保养项目提交数据
|
handleMouldMaintainSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*保养项目编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*保养项目编号(唯一)']) {
|
flag = false
|
msg = '*保养项目编号(唯一)'
|
}
|
if (!j['*保养项目名称']) {
|
flag = false
|
msg = '*保养项目名称'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理模具保养标准提交数据
|
handleMouldMaintainStandSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*模具保养标准编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('保养标准编号不能重复!')
|
}
|
if ([...new Set(this.tableData[1].map(i => i['*模具保养标准编号']))].length !== this.tableData[1].length) {
|
return this.$message.info('模具保养标准编号不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*模具保养标准编号(唯一)']) {
|
flag = false
|
msg = '*模具保养标准编号(唯一)不能为空!'
|
}
|
if (!j['*模具保养标准名称']) {
|
flag = false
|
msg = '*模具保养标准不能为空!'
|
}
|
})
|
this.tableData[1].forEach(j => {
|
if (!j['*模具保养标准编号']) {
|
flag = false
|
msg = '*模具保养标准编号不能为空!'
|
}
|
if (!j['*保养项序号']) {
|
flag = false
|
msg = '*保养项序号不能为空!'
|
}
|
if (!j['*模具保养项编号(唯一)']) {
|
flag = false
|
msg = '*模具保养项编号(唯一)不能为空!'
|
}
|
if (!j['*模具保养项名称']) {
|
flag = false
|
msg = '*模具保养项名称不能为空!'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
this.tableData[1].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理设备点检项目提交数据
|
handleCheckPositionSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*点检项目编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*点检项目编号(唯一)']) {
|
flag = false
|
msg = '*点检项目编号(唯一)'
|
}
|
if (!j['*点检项目名称']) {
|
flag = false
|
msg = '*点检项目名称'
|
}
|
if (!j['*点检周期']) {
|
flag = false
|
msg = '*点检周期'
|
}
|
if (!j['*是否扫码']) {
|
flag = false
|
msg = '*是否扫码'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理设备点检标准提交数据
|
handleCheckStandardSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*设备点检标准编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('设备点检标准编号不能重复!')
|
}
|
// if ([...new Set(this.tableData[1].map(i => i['*模具保养标准编号']))].length !== this.tableData[1].length) {
|
// return this.$message.info('模具保养标准编号不能重复!')
|
// }
|
this.tableData[0].forEach(j => {
|
if (!j['*设备点检标准编号(唯一)']) {
|
flag = false
|
msg = '*设备点检标准编号(唯一)不能为空!'
|
}
|
if (!j['*设备点检标准名称']) {
|
flag = false
|
msg = '*设备点检标准名称不能为空!'
|
}
|
if (!j['*点检管控']) {
|
flag = false
|
msg = '*点检管控不能为空!'
|
}
|
})
|
this.tableData[1].forEach(j => {
|
if (!j['*点检项序号']) {
|
flag = false
|
msg = '*点检项序号不能为空!'
|
}
|
|
if (!j['*设备点检标准编号(M)']) {
|
flag = false
|
msg = '*设备点检标准编号(M)不能为空!'
|
}
|
|
if (!j['*设备点检部位编号(唯一)']) {
|
flag = false
|
msg = '*设备点检部位编号(唯一)不能为空!'
|
}
|
if (!j['*设备点检部位名称']) {
|
flag = false
|
msg = '*设备点检部位名称不能为空!'
|
}
|
if (!j['*选择扫码']) {
|
flag = false
|
msg = '*选择扫码不能为空!'
|
}
|
if (!j['*点检周期']) {
|
flag = false
|
msg = '*点检周期不能为空!'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
this.tableData[1].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理设备保养项目提交数据
|
handleMaintainPositionSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*保养项目编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('编码不能重复!')
|
}
|
this.tableData[0].forEach(j => {
|
if (!j['*保养项目编号(唯一)']) {
|
flag = false
|
msg = '*保养项目编号(唯一)'
|
}
|
if (!j['*保养项目名称']) {
|
flag = false
|
msg = '*保养项目名称'
|
}
|
if (!j['*是否扫码']) {
|
flag = false
|
msg = '*是否扫码'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg + '不能为空!' }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
// 处理设备保养标准提交数据
|
handleMaintainStandardSubmitData() {
|
let flag = true
|
let msg = ''
|
if ([...new Set(this.tableData[0].map(i => i['*设备保养标准编号(唯一)']))].length !== this.tableData[0].length) {
|
return this.$message.info('设备保养标准编号不能重复!')
|
}
|
// if ([...new Set(this.tableData[1].map(i => i['*模具保养标准编号']))].length !== this.tableData[1].length) {
|
// return this.$message.info('模具保养标准编号不能重复!')
|
// }
|
this.tableData[0].forEach(j => {
|
if (!j['*设备保养标准编号(唯一)']) {
|
flag = false
|
msg = '*设备保养标准编号(唯一)不能为空!'
|
}
|
if (!j['*设备保养标准名称']) {
|
flag = false
|
msg = '*设备保养标准名称不能为空!'
|
}
|
if (!j['*保养周期']) {
|
flag = false
|
msg = '*保养周期不能为空!'
|
}
|
})
|
this.tableData[1].forEach(j => {
|
if (!j['*保养项序号']) {
|
flag = false
|
msg = '*点检项序号不能为空!'
|
}
|
|
if (!j['*设备保养标准编号(M)']) {
|
flag = false
|
msg = '*设备保养标准编号(M)不能为空!'
|
}
|
|
if (!j['*设备保养部位编号(唯一)']) {
|
flag = false
|
msg = '*设备保养部位编号(唯一)不能为空!'
|
}
|
if (!j['*设备保养部位名称']) {
|
flag = false
|
msg = '*设备保养部位名称不能为空!'
|
}
|
if (!j['*选择扫码']) {
|
flag = false
|
msg = '*选择扫码不能为空!'
|
}
|
})
|
|
if (!flag) {
|
return { code: '301', message: msg }
|
}
|
|
this.tableData[0].map(item => {
|
delete (item.uuid)
|
})
|
this.tableData[1].map(item => {
|
delete (item.uuid)
|
})
|
|
return { code: '200', message: '成功!' }
|
},
|
|
// parents:用于返回的数组,childNode:要查询的节点,treeData:json树形数据
|
findParent(parents, childNode, treeData) {
|
// console.log(parents, childNode, treeData, 2)
|
|
for (let i = 0; i < treeData.length; i++) {
|
// 父节点查询条件
|
if (treeData[i].torg_code === childNode) {
|
// 如果找到结果,保存当前节点
|
parents.push(treeData[i].torg_code)
|
// 用当前节点再去原数据查找当前节点的父节点
|
this.findParent(parents, treeData[i].parent_id, this.orgOptions)
|
break
|
} else {
|
if (treeData[i].children instanceof Array) {
|
// 没找到,遍历该节点的子节点
|
this.findParent(parents, childNode, treeData[i].children)
|
}
|
}
|
}
|
return parents
|
},
|
addRow() {
|
// 人员管理新增行
|
if (this.sheetName.indexOf('人员管理') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*用户编号(唯一)': '',
|
'*用户姓名': '',
|
'*密码': '',
|
'*薪资类型': '',
|
'*在职状态': 'Y',
|
'手机号': '',
|
'邮箱': '',
|
'*所属组织编码': '',
|
'所属岗位编码': [],
|
'所属角色编码': [],
|
'所属班组编码': []
|
})
|
}
|
// 角色管理新增行
|
if (this.sheetName.indexOf('角色管理') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*角色编号(唯一)': '',
|
'*角色名称': '',
|
'*状态': 'Y',
|
'描述': ''
|
})
|
}
|
// 班组管理新增行
|
if (this.sheetName.indexOf('班组管理') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*班组编号(唯一)': '',
|
'*班组名称': '',
|
'*状态': 'Y',
|
'描述': ''
|
})
|
}
|
// 岗位管理新增行
|
if (this.sheetName.indexOf('岗位管理') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*岗位编号(唯一)': '',
|
'*岗位名称': '',
|
'*状态': 'Y',
|
'描述': ''
|
})
|
}
|
// 往来单位
|
if (this.sheetName.indexOf('往来单位类型') !== -1 && this.activeName === '0') {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*往来单位类型编号(唯一)': '',
|
'*往来单位类型名称': '',
|
'上级编码': ''
|
})
|
}
|
if (this.sheetName.indexOf('往来单位') !== -1 && this.activeName === '1') {
|
this.tableData[1].unshift({
|
uuid: nanoid(),
|
'*往来单位编号(唯一)': '',
|
'*往来单位名称': '',
|
'*状态': '0',
|
'*往来单位类型编码': '',
|
'联系人': '',
|
'联系方式': '',
|
'地址': ''
|
})
|
}
|
// 仓库设置
|
if (this.sheetName.indexOf('仓库设置') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*仓库编号(唯一)': '',
|
'*仓库名称': '',
|
'*状态': '0',
|
'*库位管理': '0',
|
'描述': ''
|
})
|
}
|
// 库位设置
|
if (this.sheetName.indexOf('库位设置') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*库位编号(唯一)': '',
|
'*库位名称': '',
|
'*所属仓库编码': '',
|
'上级库位编码': '',
|
'*状态': '0',
|
'描述': ''
|
})
|
}
|
// 存货档案
|
if (this.sheetName.indexOf('存货分类') !== -1 && this.activeName === '0') {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*存货分类编号(唯一)': '',
|
'*存货分类名称': '',
|
'上级编码': ''
|
})
|
}
|
if (this.sheetName.indexOf('存货') !== -1 && this.activeName === '1') {
|
this.tableData[1].unshift({
|
uuid: nanoid(),
|
'*存货编号(唯一)': '',
|
'*存货名称': '',
|
'规格型号': '',
|
'*存货分类编码': '',
|
'*状态': '0',
|
'*计量方式': '',
|
'计量单位/组名称': '',
|
'所属仓库编码': '',
|
'是否外购': '0',
|
'是否销售': '0',
|
'是否自制': '0',
|
'是否生产消耗': '0',
|
'是否委外': '0'
|
})
|
}
|
// 设备清单
|
if (this.sheetName.indexOf('设备类型') !== -1 && this.activeName === '0') {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*设备类型编号(唯一)': '',
|
'*设备类型名称': '',
|
'描述': ''
|
})
|
}
|
if (this.sheetName.indexOf('设备清单') !== -1 && this.activeName === '1') {
|
this.tableData[1].unshift({
|
uuid: nanoid(),
|
'*设备编号(唯一)': '',
|
'*设备名称': '',
|
'*所属组织编码': '',
|
'设备类型编码': '',
|
'*状态': 'Y'
|
})
|
}
|
// 工序设置
|
if (this.sheetName.indexOf('工序设置') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*工序编号(唯一)': '',
|
'*工序名称': '',
|
'*工序类型': 'Z',
|
'*状态': 'Y',
|
'描述': ''
|
})
|
}
|
// 缺陷定义
|
if (this.sheetName.indexOf('缺陷定义') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*缺陷编号(唯一)': '',
|
'*缺陷名称': '',
|
'缺陷描述': ''
|
})
|
}
|
// 模具清单
|
if (this.sheetName.indexOf('模具清单') !== -1 && this.activeName === '0') {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*模具编号(唯一)': '',
|
'*模具名称': '',
|
'规格型号': '',
|
'*状态': 'Y',
|
'*仓库编码': '',
|
'*库位编码': '',
|
'预计寿命(次)': '',
|
'剩余寿命(次)': ''
|
|
})
|
}
|
if (this.sheetName.indexOf('模具关联产品') !== -1 && this.activeName === '1') {
|
this.tableData[1].unshift({
|
uuid: nanoid(),
|
'模具编码': '',
|
'产品编码': ''
|
})
|
}
|
|
// 模具点检项
|
if (this.sheetName.indexOf('模具点检项目') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*点检项目编号(唯一)': '',
|
'*点检项目名称': '',
|
'要求描述': ''
|
})
|
}
|
|
// 模具点检标准
|
if (this.sheetName.indexOf('模具点检标准') !== -1 && this.activeName === '0') {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*模具点检标准编号(唯一)': '',
|
'*模具点检标准名称': '',
|
'标准描述': ''
|
})
|
}
|
if (this.sheetName.indexOf('关联模具点检部位') !== -1 && this.activeName === '1') {
|
this.tableData[1].unshift({
|
uuid: nanoid(),
|
'*模具点检标准编号': '',
|
'*点检项序号': '',
|
'*模具点检项编号(唯一)': '',
|
'*模具点检项名称': '',
|
'点检项要求': ''
|
})
|
}
|
|
// 模具保养项
|
if (this.sheetName.indexOf('模具保养项目') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*保养项目编号(唯一)': '',
|
'*保养项目名称': '',
|
'要求描述': ''
|
})
|
}
|
|
// 模具保养标准
|
if (this.sheetName.indexOf('模具保养标准') !== -1 && this.activeName === '0') {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*模具保养标准编号(唯一)': '',
|
'*模具保养标准名称': '',
|
'标准描述': ''
|
})
|
}
|
if (this.sheetName.indexOf('关联模具保养部位') !== -1 && this.activeName === '1') {
|
this.tableData[1].unshift({
|
uuid: nanoid(),
|
'*模具保养标准编号': '',
|
'*保养项序号': '',
|
'*模具保养项编号(唯一)': '',
|
'*模具保养项名称': '',
|
'保养项要求': ''
|
})
|
}
|
|
// 设备点检项目
|
if (this.sheetName.indexOf('设备点检项目') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*点检项目编号(唯一)': '',
|
'*点检项目名称': '',
|
'*点检周期': '',
|
'*是否扫码': '',
|
'点检项目要求': ''
|
})
|
}
|
|
// 设备点检标准
|
if (this.sheetName.indexOf('设备点检标准') !== -1 && this.activeName === '0') {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*设备点检标准编号(唯一)': '',
|
'*设备点检标准名称': '',
|
'*点检管控': '',
|
'标准描述': ''
|
})
|
}
|
if (this.sheetName.indexOf('设备点检部位') !== -1 && this.activeName === '1') {
|
this.tableData[1].unshift({
|
uuid: nanoid(),
|
'*设备点检标准编号(M)': '',
|
'*点检项序号': '',
|
'*设备点检部位编号(唯一)': '',
|
'*设备点检部位名称': '',
|
'点检部位要求': '',
|
'*选择扫码': '',
|
'*点检周期': ''
|
})
|
}
|
|
// 设备点检项目
|
if (this.sheetName.indexOf('设备保养项目') !== -1) {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*保养项目编号(唯一)': '',
|
'*保养项目名称': '',
|
'*是否扫码': '',
|
'保养项目要求': ''
|
})
|
}
|
|
// 设备保养标准
|
if (this.sheetName.indexOf('设备保养标准') !== -1 && this.activeName === '0') {
|
this.tableData[0].unshift({
|
uuid: nanoid(),
|
'*设备保养标准编号(唯一)': '',
|
'*设备保养标准名称': '',
|
'*保养周期': '',
|
'标准描述': ''
|
})
|
}
|
if (this.sheetName.indexOf('设备保养部位') !== -1 && this.activeName === '1') {
|
this.tableData[1].unshift({
|
uuid: nanoid(),
|
'*保养项序号': '',
|
'*设备保养标准编号(M)': '',
|
'*设备保养部位编号(唯一)': '',
|
'*设备保养部位名称': '',
|
'保养部位要求': '',
|
'*选择扫码': ''
|
})
|
}
|
|
//
|
},
|
delRow(row) {
|
// 针对单sheet
|
if (this.sheetName.length === 1) {
|
if (this.tableData[0].length > 1) {
|
return this.tableData[0].splice(this.tableData[0].findIndex(i => i.uuid === row.uuid), 1)
|
} else {
|
return this.$message.info('必须要有一条数据!')
|
}
|
}
|
// 针对两个 sheet
|
if (this.sheetName.length === 2) {
|
if (this.activeName === '0') {
|
if (this.tableData[0].length > 1) {
|
return this.tableData[0].splice(this.tableData[0].findIndex(i => i.uuid === row.uuid), 1)
|
} else {
|
return this.$message.info('必须要有一条数据!')
|
}
|
}
|
if (this.activeName === '1') {
|
if (this.tableData[1].length > 1) {
|
return this.tableData[1].splice(this.tableData[1].findIndex(i => i.uuid === row.uuid), 1)
|
} else {
|
return this.$message.info('必须要有一条数据!')
|
}
|
}
|
}
|
},
|
reset() {
|
this.tableData = []
|
this.tableHeader = []
|
this.sheetName = []
|
this.excelCode = ''
|
},
|
handleClose() {
|
this.dialogTableData = []
|
},
|
// 获取模板
|
async getExcelModelData() {
|
const { data: res } = await ExcelModelData()
|
this.excelArr = res
|
|
if (window.location.hash.indexOf('?') !== -1) {
|
this.excelCode = window.location.hash.split('?')[1].split('=')[1]
|
}
|
},
|
// 模板下载
|
async getExcel() {
|
const res = await DownLoadExcel({ FileCode: this.excelCode })
|
if (res.code === '200') {
|
window.location.href = res.data
|
}
|
},
|
async getSelectArr() {
|
await this.getPrentOrganization()
|
await this.getPostPermissions()
|
await this.getRolePermissions()
|
await this.getGroupsPermissions()
|
},
|
// 组织架构级联选择器
|
async getPrentOrganization() {
|
const { data: res } = await PrentOrganization()
|
this.orgArr = res
|
this.orgOptions = arrayToTree(res, {
|
parentProperty: 'parent_id',
|
customID: 'torg_code',
|
childrenProperty: 'children'
|
})
|
},
|
// 获取岗位下拉数组
|
async getPostPermissions() {
|
const { data: res } = await PostPermissions()
|
this.postArr = res
|
},
|
// 获取角色下拉数组
|
async getRolePermissions() {
|
const { data: res } = await RolePermissions()
|
this.roleArr = res
|
},
|
// 获取班组下拉数组
|
async getGroupsPermissions() {
|
const { data: res } = await GroupsPermissions()
|
this.groupArr = res
|
},
|
headerCellStyle({ row, column, rowIndex, columnIndex }) {
|
let string = ''
|
if (column.label.indexOf('*') !== -1 && rowIndex === 0) {
|
string = 'background:#ffc000;'
|
} else if (column.label.indexOf('*') === -1 && rowIndex === 0) {
|
string = 'background:#00b0f0;'
|
}
|
// else if (rowIndex === 0 && columnIndex === 0) {
|
// string = 'background:red;color:#fff'
|
// }
|
return string + 'padding: 5px 0; fontWeight: 500;'
|
},
|
cellStyle() {
|
const option = {
|
padding: '5px 0'
|
}
|
return option
|
},
|
indexRender(h, { column }) {
|
return [
|
h('span', { style: 'color:#FFF' }, column.label)
|
]
|
},
|
operationRender(h, { column }) {
|
return [
|
h('span', { style: 'color:#FFF' }, column.label)
|
]
|
},
|
addRedStar(h, { column }) {
|
if (column.label.indexOf('*') !== -1) { // 必填字段
|
return [
|
h('span', { style: 'color:#F56C6C' }, ' * '),
|
h('span', { style: 'color:#FFF' }, column.label.substring(1))
|
]
|
} else { // 非必填字段
|
return [
|
// h('span', { style: 'color:#F56C6C' }, ' * '),
|
h('span', { style: 'color:#FFF' }, column.label)
|
]
|
}
|
},
|
// 数据提交前去除空格方法
|
tableDataTrim() {
|
if (this.tableData.length === 1) { // 一个sheet
|
this.tableData[0].forEach(i => {
|
for (const j in i) {
|
i[j] = i[j].trim()
|
}
|
})
|
}
|
|
if (this.tableData.length === 2) { // 两个sheet
|
this.tableData[0].forEach(i => {
|
for (const j in i) {
|
i[j] = i[j].trim()
|
}
|
})
|
this.tableData[1].forEach(i => {
|
for (const j in i) {
|
i[j] = i[j].trim()
|
}
|
})
|
}
|
}
|
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
::v-deep .el-dialog__body {
|
padding: 10px 10px !important;
|
}
|
|
</style>
|