add:新增设备导入功能

This commit is contained in:
zhangzhiqiang
2023-09-28 09:34:50 +08:00
parent 9959ebd679
commit 34c93e833a
57 changed files with 1611 additions and 6441 deletions

View File

@@ -0,0 +1,121 @@
<template>
<el-dialog
title="导入Excel文件"
append-to-body
:visible.sync="dialogVisible"
destroy-on-close
width="400px"
:show-close="true"
@close="close"
@open="open"
>
<el-upload
ref="upload"
class="upload-demo"
action=""
drag
:on-exceed="is_one"
:limit="1"
:auto-upload="false"
:multiple="false"
:show-file-list="true"
:on-change="uploadByJsqd"
:file-list="fileList"
accept=".xlsx,.xls"
>
<i class="el-icon-upload" />
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div slot="tip" class="el-upload__tip">只能上传Excel文件且不超过10MB</div>
</el-upload>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</template>
<script>
import crudEquipmentfile from '@/views/wms/device_manage/lubricate/devicelubricateplan/devicelubricateplanmst'
import CRUD, { crud } from '@crud/crud'
export default {
name: 'UploadDialog',
mixins: [crud()],
components: {},
props: {
dialogShow: {
type: Boolean,
default: false
},
openParam: {
type: String
}
},
data() {
return {
dialogVisible: false,
fileList: [],
file1: ''
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
},
openParam: {
handler(newValue, oldValue) {
this.opendtlParam = newValue
}
}
},
methods: {
open() {
},
close() {
this.$emit('update:dialogShow', false)
},
is_one() {
this.crud.notify('只能上传一个excel文件', CRUD.NOTIFICATION_TYPE.WARNING)
},
// 文件校验方法
beforeAvatarUpload(file) {
// 不能导入大小超过2Mb的文件
if (file.size > 10 * 1024 * 1024) {
return false
}
return true
},
// 文件发生改变就会触发的事件
uploadByJsqd(file) {
this.file1 = file
},
submit() {
if (this.beforeAvatarUpload(this.file1)) {
this.fileList.name = this.file1.name
this.fileList.url = ''
var formdata = new FormData()
formdata.append('file', this.file1.raw)
crudEquipmentfile.excelImport(formdata).then((res) => {
this.crud.notify('导入成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.$emit('tableChanged3', '')
this.$emit('update:dialogShow', false)
}).catch(err => {
// const list = err.response.data.message
// download2('/api/produceWorkorder/download', list).then(result => {
// downloadFile(result, '错误信息汇总', 'xlsx')
// crud.downloadLoading = false
// })
})
} else {
this.crud.notify('文件过大请上传小于10MB的文件〜', CRUD.NOTIFICATION_TYPE.WARNING)
}
}
}
}
</script>

View File

@@ -48,4 +48,12 @@ export function copyAdd(data) {
})
}
export default { add, edit, del, getDtl, changeActive, copyAdd }
export function excelImport(data) {
return request({
url: 'api/crudDevicelubricateplanmst/excelImport',
method: 'post',
data
})
}
export default { add, edit, del, getDtl, changeActive, copyAdd, excelImport }

View File

@@ -96,6 +96,16 @@
>
复制新增
</el-button>
<el-button
slot="right"
class="filter-item"
type="warning"
icon="el-icon-upload2"
size="mini"
@click="uploadShow = true"
>
导入
</el-button>
</crudOperation>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
@@ -141,6 +151,7 @@
</div>
<AddDialog />
<CopyAddDialog :dialog-show.sync="copyAddDialog" :open-param="openParam" />
<UploadDialog :dialog-show.sync="uploadShow" @tableChanged3="tableChanged3"/>
</div>
</template>
@@ -158,11 +169,13 @@ import crudMaterialbase from '@/api/wms/basedata/master/materialbase'
import DateRangePicker from '@/components/DateRangePicker'
import AddDialog from '@/views/wms/device_manage/lubricate/devicelubricateplan/AddDialog'
import CopyAddDialog from '@/views/wms/device_manage/lubricate/devicelubricateplan/CopyAddDialog'
import UploadDialog from '@/views/wms/device_manage/lubricate/devicelubricateplan/UploadDialog'
export default {
name: 'Devicelubricateplan',
dicts: ['IS_OR_NOT', 'EM_DEVICE_BY_CYCLE'],
components: { AddDialog, pagination, crudOperation, rrOperation, udOperation, Treeselect, DateRangePicker, CopyAddDialog },
components: { UploadDialog, AddDialog, pagination, crudOperation, rrOperation, udOperation, Treeselect, DateRangePicker, CopyAddDialog },
mixins: [presenter(), header(), crud()],
cruds() {
return CRUD({
@@ -182,6 +195,7 @@ export default {
},
data() {
return {
uploadShow: false,
classes: [],
class_idStr: null,
tabData: [],
@@ -211,6 +225,9 @@ export default {
hand(value) {
this.crud.toQuery()
},
tableChanged3() {
this.crud.toQuery()
},
format_is_active(is_active) {
return is_active === '1'
},
@@ -267,7 +284,7 @@ export default {
},
queryClassId() {
const param = {
'class_idStr': this.class_idStr
'class_idStr': '2'
}
crudClassstandard.queryClassById(param).then(res => {
this.classes = res.content.map(obj => {

View File

@@ -271,9 +271,26 @@ export default {
})
}
},
getSubTypes(id) {
crudClassstandard.getClassSuperior2(id).then(res => {
const date = res.content
this.buildClass(date)
this.classes = date
})
},
buildClass(classes) {
classes.forEach(data => {
if (data.children) {
this.buildClass(data.children)
}
if (data.hasChildren && !data.children) {
data.children = null
}
})
},
queryClassId() {
const param = {
'class_idStr': this.class_idStr
'class_idStr': '2'
}
crudClassstandard.queryClassById(param).then(res => {
this.classes = res.content.map(obj => {

View File

@@ -243,7 +243,7 @@ export default {
},
queryClassId() {
const param = {
'class_idStr': this.class_idStr
'class_idStr': '2'
}
crudClassstandard.queryClassById(param).then(res => {
this.classes = res.content.map(obj => {

View File

@@ -204,7 +204,7 @@ export default {
},
queryClassId() {
const param = {
'class_idStr': this.class_idStr
'class_idStr': '2'
}
crudClassstandard.queryClassById(param).then(res => {
this.classes = res.content.map(obj => {

View File

@@ -352,7 +352,7 @@ export default {
},
queryClassId() {
const param = {
'class_idStr': this.class_idStr
'class_idStr': '2'
}
crudClassstandard.queryClassById(param).then(res => {
this.classes = res.content.map(obj => {

View File

@@ -0,0 +1,121 @@
<template>
<el-dialog
title="导入Excel文件"
append-to-body
:visible.sync="dialogVisible"
destroy-on-close
width="400px"
:show-close="true"
@close="close"
@open="open"
>
<el-upload
ref="upload"
class="upload-demo"
action=""
drag
:on-exceed="is_one"
:limit="1"
:auto-upload="false"
:multiple="false"
:show-file-list="true"
:on-change="uploadByJsqd"
:file-list="fileList"
accept=".xlsx,.xls"
>
<i class="el-icon-upload" />
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div slot="tip" class="el-upload__tip">只能上传Excel文件且不超过10MB</div>
</el-upload>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</template>
<script>
import crudEquipmentfile from '@/views/wms/device_manage/sportcheck/devicesportcheckplan/devicesportcheckplanmst'
import CRUD, { crud } from '@crud/crud'
export default {
name: 'UploadDialog',
mixins: [crud()],
components: {},
props: {
dialogShow: {
type: Boolean,
default: false
},
openParam: {
type: String
}
},
data() {
return {
dialogVisible: false,
fileList: [],
file1: ''
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
},
openParam: {
handler(newValue, oldValue) {
this.opendtlParam = newValue
}
}
},
methods: {
open() {
},
close() {
this.$emit('update:dialogShow', false)
},
is_one() {
this.crud.notify('只能上传一个excel文件', CRUD.NOTIFICATION_TYPE.WARNING)
},
// 文件校验方法
beforeAvatarUpload(file) {
// 不能导入大小超过2Mb的文件
if (file.size > 10 * 1024 * 1024) {
return false
}
return true
},
// 文件发生改变就会触发的事件
uploadByJsqd(file) {
this.file1 = file
},
submit() {
if (this.beforeAvatarUpload(this.file1)) {
this.fileList.name = this.file1.name
this.fileList.url = ''
var formdata = new FormData()
formdata.append('file', this.file1.raw)
crudEquipmentfile.excelImport(formdata).then((res) => {
this.crud.notify('导入成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.$emit('tableChanged3', '')
this.$emit('update:dialogShow', false)
}).catch(err => {
// const list = err.response.data.message
// download2('/api/produceWorkorder/download', list).then(result => {
// downloadFile(result, '错误信息汇总', 'xlsx')
// crud.downloadLoading = false
// })
})
} else {
this.crud.notify('文件过大请上传小于10MB的文件〜', CRUD.NOTIFICATION_TYPE.WARNING)
}
}
}
}
</script>

View File

@@ -48,4 +48,13 @@ export function copyAdd(data) {
})
}
export default { add, edit, del, getDtl, changeActive, copyAdd }
export function excelImport(data) {
return request({
url: 'api/devicesportcheckplanmst/excelImport',
method: 'post',
data
})
}
export default { add, edit, del, getDtl, changeActive, copyAdd, excelImport }

View File

@@ -96,6 +96,16 @@
>
复制新增
</el-button>
<el-button
slot="right"
class="filter-item"
type="warning"
icon="el-icon-upload2"
size="mini"
@click="uploadShow = true"
>
导入
</el-button>
</crudOperation>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
@@ -141,6 +151,7 @@
</div>
<AddDialog />
<CopyAddDialog :dialog-show.sync="copyAddDialog" :open-param="openParam" />
<UploadDialog :dialog-show.sync="uploadShow" @tableChanged3="tableChanged3"/>
</div>
</template>
@@ -158,11 +169,13 @@ import crudMaterialbase from '@/api/wms/basedata/master/materialbase'
import DateRangePicker from '@/components/DateRangePicker'
import AddDialog from '@/views/wms/device_manage/sportcheck/devicesportcheckplan/AddDialog'
import CopyAddDialog from '@/views/wms/device_manage/sportcheck/devicesportcheckplan/CopyAddDialog'
import UploadDialog from '@/views/wms/device_manage/sportcheck/devicesportcheckplan/UploadDialog'
export default {
name: 'Devicesportcheckplanmst',
dicts: ['IS_OR_NOT', 'EM_DEVICE_BY_CYCLE'],
components: { AddDialog, pagination, crudOperation, rrOperation, udOperation, Treeselect, DateRangePicker, CopyAddDialog },
components: {UploadDialog, AddDialog, pagination, crudOperation, rrOperation, udOperation, Treeselect, DateRangePicker, CopyAddDialog },
mixins: [presenter(), header(), crud()],
cruds() {
return CRUD({
@@ -182,6 +195,7 @@ export default {
},
data() {
return {
uploadShow: false,
classes: [],
class_idStr: null,
tabData: [],
@@ -236,6 +250,9 @@ export default {
formatMainName(row, cloum) {
return this.dict.label.EM_DEVICE_BY_CYCLE[row.maintenancecycle]
},
tableChanged3() {
this.crud.toQuery()
},
copyAdd() {
const _selectData = this.$refs.table.selection
const data = {
@@ -267,7 +284,7 @@ export default {
},
queryClassId() {
const param = {
'class_idStr': this.class_idStr
'class_idStr': '2'
}
crudClassstandard.queryClassById(param).then(res => {
this.classes = res.content.map(obj => {

View File

@@ -0,0 +1,121 @@
<template>
<el-dialog
title="导入Excel文件"
append-to-body
:visible.sync="dialogVisible"
destroy-on-close
width="400px"
:show-close="true"
@close="close"
@open="open"
>
<el-upload
ref="upload"
class="upload-demo"
action=""
drag
:on-exceed="is_one"
:limit="1"
:auto-upload="false"
:multiple="false"
:show-file-list="true"
:on-change="uploadByJsqd"
:file-list="fileList"
accept=".xlsx,.xls"
>
<i class="el-icon-upload" />
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div slot="tip" class="el-upload__tip">只能上传Excel文件且不超过10MB</div>
</el-upload>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</template>
<script>
import crudEquipmentfile from '@/views/wms/device_manage/upkeep/devicemaintenanceplan/devicemaintenanceplanmst'
import CRUD, { crud } from '@crud/crud'
export default {
name: 'UploadDialog',
mixins: [crud()],
components: {},
props: {
dialogShow: {
type: Boolean,
default: false
},
openParam: {
type: String
}
},
data() {
return {
dialogVisible: false,
fileList: [],
file1: ''
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
},
openParam: {
handler(newValue, oldValue) {
this.opendtlParam = newValue
}
}
},
methods: {
open() {
},
close() {
this.$emit('update:dialogShow', false)
},
is_one() {
this.crud.notify('只能上传一个excel文件', CRUD.NOTIFICATION_TYPE.WARNING)
},
// 文件校验方法
beforeAvatarUpload(file) {
// 不能导入大小超过2Mb的文件
if (file.size > 10 * 1024 * 1024) {
return false
}
return true
},
// 文件发生改变就会触发的事件
uploadByJsqd(file) {
this.file1 = file
},
submit() {
if (this.beforeAvatarUpload(this.file1)) {
this.fileList.name = this.file1.name
this.fileList.url = ''
var formdata = new FormData()
formdata.append('file', this.file1.raw)
crudEquipmentfile.excelImport(formdata).then((res) => {
this.crud.notify('导入成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.$emit('tableChanged3', '')
this.$emit('update:dialogShow', false)
}).catch(err => {
// const list = err.response.data.message
// download2('/api/produceWorkorder/download', list).then(result => {
// downloadFile(result, '错误信息汇总', 'xlsx')
// crud.downloadLoading = false
// })
})
} else {
this.crud.notify('文件过大请上传小于10MB的文件〜', CRUD.NOTIFICATION_TYPE.WARNING)
}
}
}
}
</script>

View File

@@ -48,4 +48,11 @@ export function copyAdd(data) {
})
}
export default { add, edit, del, getDtl, changeActive, copyAdd }
export function excelImport(data) {
return request({
url: 'api/devicemaintenanceplanmst/excelImport',
method: 'post',
data
})
}
export default { add, edit, del, getDtl, changeActive, copyAdd, excelImport }

View File

@@ -96,6 +96,16 @@
>
复制新增
</el-button>
<el-button
slot="right"
class="filter-item"
type="warning"
icon="el-icon-upload2"
size="mini"
@click="uploadShow = true"
>
导入
</el-button>
</crudOperation>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
@@ -141,6 +151,7 @@
</div>
<AddDialog />
<CopyAddDialog :dialog-show.sync="copyAddDialog" :open-param="openParam" />
<UploadDialog :dialog-show.sync="uploadShow" @tableChanged3="tableChanged3"/>
</div>
</template>
@@ -158,11 +169,13 @@ import crudMaterialbase from '@/api/wms/basedata/master/materialbase'
import DateRangePicker from '@/components/DateRangePicker'
import AddDialog from '@/views/wms/device_manage/upkeep/devicemaintenanceplan/AddDialog'
import CopyAddDialog from '@/views/wms/device_manage/upkeep/devicemaintenanceplan/CopyAddDialog'
import UploadDialog from '@/views/wms/device_manage/upkeep/devicemaintenanceplan/UploadDialog'
export default {
name: 'Devicemaintenanceplan',
dicts: ['IS_OR_NOT', 'EM_DEVICE_BY_CYCLE'],
components: { AddDialog, pagination, crudOperation, rrOperation, udOperation, Treeselect, DateRangePicker, CopyAddDialog },
components: { UploadDialog, AddDialog, pagination, crudOperation, rrOperation, udOperation, Treeselect, DateRangePicker, CopyAddDialog },
mixins: [presenter(), header(), crud()],
cruds() {
return CRUD({
@@ -182,6 +195,7 @@ export default {
},
data() {
return {
uploadShow: false,
classes: [],
class_idStr: null,
tabData: [],
@@ -233,6 +247,9 @@ export default {
}).catch(() => {
})
},
tableChanged3() {
this.crud.toQuery()
},
formatMainName(row, cloum) {
return this.dict.label.EM_DEVICE_BY_CYCLE[row.maintenancecycle]
},
@@ -267,7 +284,7 @@ export default {
},
queryClassId() {
const param = {
'class_idStr': this.class_idStr
'class_idStr': '2'
}
crudClassstandard.queryClassById(param).then(res => {
this.classes = res.content.map(obj => {

View File

@@ -0,0 +1,121 @@
<template>
<el-dialog
title="导入Excel文件"
append-to-body
:visible.sync="dialogVisible"
destroy-on-close
width="400px"
:show-close="true"
@close="close"
@open="open"
>
<el-upload
ref="upload"
class="upload-demo"
action=""
drag
:on-exceed="is_one"
:limit="1"
:auto-upload="false"
:multiple="false"
:show-file-list="true"
:on-change="uploadByJsqd"
:file-list="fileList"
accept=".xlsx,.xls"
>
<i class="el-icon-upload" />
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div slot="tip" class="el-upload__tip">只能上传Excel文件且不超过10MB</div>
</el-upload>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</template>
<script>
import crudEquipmentfile from '@/views/wms/masterdata_manage/em/devicelubricateitems/devicelubricateitems'
import CRUD, { crud } from '@crud/crud'
export default {
name: 'UploadDialog',
mixins: [crud()],
components: {},
props: {
dialogShow: {
type: Boolean,
default: false
},
openParam: {
type: String
}
},
data() {
return {
dialogVisible: false,
fileList: [],
file1: ''
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
},
openParam: {
handler(newValue, oldValue) {
this.opendtlParam = newValue
}
}
},
methods: {
open() {
},
close() {
this.$emit('update:dialogShow', false)
},
is_one() {
this.crud.notify('只能上传一个excel文件', CRUD.NOTIFICATION_TYPE.WARNING)
},
// 文件校验方法
beforeAvatarUpload(file) {
// 不能导入大小超过2Mb的文件
if (file.size > 10 * 1024 * 1024) {
return false
}
return true
},
// 文件发生改变就会触发的事件
uploadByJsqd(file) {
this.file1 = file
},
submit() {
if (this.beforeAvatarUpload(this.file1)) {
this.fileList.name = this.file1.name
this.fileList.url = ''
var formdata = new FormData()
formdata.append('file', this.file1.raw)
crudEquipmentfile.excelImport(formdata).then((res) => {
this.crud.notify('导入成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.$emit('tableChanged3', '')
this.$emit('update:dialogShow', false)
}).catch(err => {
// const list = err.response.data.message
// download2('/api/produceWorkorder/download', list).then(result => {
// downloadFile(result, '错误信息汇总', 'xlsx')
// crud.downloadLoading = false
// })
})
} else {
this.crud.notify('文件过大请上传小于10MB的文件〜', CRUD.NOTIFICATION_TYPE.WARNING)
}
}
}
}
</script>

View File

@@ -24,4 +24,12 @@ export function edit(data) {
})
}
export default { add, edit, del }
export function excelImport(data) {
return request({
url: 'api/devicelubricateitems/excelImport',
method: 'post',
data
})
}
export default { add, edit, del,excelImport }

View File

@@ -60,7 +60,18 @@
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<crudOperation :permission="permission" >
<el-button
slot="right"
class="filter-item"
type="warning"
icon="el-icon-upload2"
size="mini"
@click="uploadShow = true"
>
导入
</el-button>
</crudOperation>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="850px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="120px">
@@ -165,10 +176,12 @@
<!--分页组件-->
<pagination />
</div>
<UploadDialog :dialog-show.sync="uploadShow" @tableChanged3="tableChanged3"/>
</div>
</template>
<script>
import UploadDialog from '@/views/wms/masterdata_manage/em/devicelubricateitems/UploadDialog'
import crudDevicemaintenanceitems from '@/views/wms/masterdata_manage/em/devicelubricateitems/devicelubricateitems'
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
@@ -183,7 +196,7 @@ import crudMaterialbase from '@/api/wms/basedata/master/materialbase'
const defaultForm = { material_type_id: null, maint_item_id: null, maint_item_code: null, maint_item_name: null, item_level: null, contents: null, requirement: null, acceptancecriteria: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null }
export default {
name: 'Devicemaintain',
components: { pagination, crudOperation, rrOperation, udOperation, Treeselect },
components: { UploadDialog, pagination, crudOperation, rrOperation, udOperation, Treeselect },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -202,6 +215,7 @@ export default {
},
data() {
return {
uploadShow: false,
classes: [],
class_idStr: null,
materOpt_code: '23',
@@ -263,6 +277,9 @@ export default {
changeQuery() {
this.crud.toQuery()
},
tableChanged3() {
this.crud.toQuery()
},
formatLevel(row, cloum) {
if (row.item_level === '01') {
return '日常'

View File

@@ -0,0 +1,121 @@
<template>
<el-dialog
title="导入Excel文件"
append-to-body
:visible.sync="dialogVisible"
destroy-on-close
width="400px"
:show-close="true"
@close="close"
@open="open"
>
<el-upload
ref="upload"
class="upload-demo"
action=""
drag
:on-exceed="is_one"
:limit="1"
:auto-upload="false"
:multiple="false"
:show-file-list="true"
:on-change="uploadByJsqd"
:file-list="fileList"
accept=".xlsx,.xls"
>
<i class="el-icon-upload" />
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div slot="tip" class="el-upload__tip">只能上传Excel文件且不超过10MB</div>
</el-upload>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</template>
<script>
import crudEquipmentfile from '@/views/wms/masterdata_manage/em/devicemaintain/devicemaintenanceitems'
import CRUD, { crud } from '@crud/crud'
export default {
name: 'UploadDialog',
mixins: [crud()],
components: {},
props: {
dialogShow: {
type: Boolean,
default: false
},
openParam: {
type: String
}
},
data() {
return {
dialogVisible: false,
fileList: [],
file1: ''
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
},
openParam: {
handler(newValue, oldValue) {
this.opendtlParam = newValue
}
}
},
methods: {
open() {
},
close() {
this.$emit('update:dialogShow', false)
},
is_one() {
this.crud.notify('只能上传一个excel文件', CRUD.NOTIFICATION_TYPE.WARNING)
},
// 文件校验方法
beforeAvatarUpload(file) {
// 不能导入大小超过2Mb的文件
if (file.size > 10 * 1024 * 1024) {
return false
}
return true
},
// 文件发生改变就会触发的事件
uploadByJsqd(file) {
this.file1 = file
},
submit() {
if (this.beforeAvatarUpload(this.file1)) {
this.fileList.name = this.file1.name
this.fileList.url = ''
var formdata = new FormData()
formdata.append('file', this.file1.raw)
crudEquipmentfile.excelImport(formdata).then((res) => {
this.crud.notify('导入成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.$emit('tableChanged3', '')
this.$emit('update:dialogShow', false)
}).catch(err => {
// const list = err.response.data.message
// download2('/api/produceWorkorder/download', list).then(result => {
// downloadFile(result, '错误信息汇总', 'xlsx')
// crud.downloadLoading = false
// })
})
} else {
this.crud.notify('文件过大请上传小于10MB的文件〜', CRUD.NOTIFICATION_TYPE.WARNING)
}
}
}
}
</script>

View File

@@ -24,4 +24,12 @@ export function edit(data) {
})
}
export default { add, edit, del }
export function excelImport(data) {
return request({
url: 'api/devicemaintenanceitems/excelImport',
method: 'post',
data
})
}
export default { add, edit, del, excelImport }

View File

@@ -60,7 +60,18 @@
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<crudOperation :permission="permission" >
<el-button
slot="right"
class="filter-item"
type="warning"
icon="el-icon-upload2"
size="mini"
@click="uploadShow = true"
>
导入
</el-button>
</crudOperation>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="850px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="120px">
@@ -165,6 +176,7 @@
<!--分页组件-->
<pagination />
</div>
<UploadDialog :dialog-show.sync="uploadShow" @tableChanged3="tableChanged3"/>
</div>
</template>
@@ -179,11 +191,13 @@ import crudClassstandard from '@/api/wms/basedata/master/classstandard'
import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import crudMaterialbase from '@/api/wms/basedata/master/materialbase'
import UploadDialog from '@/views/wms/masterdata_manage/em/devicemaintain/UploadDialog'
const defaultForm = { material_type_id: null, maint_item_id: null, maint_item_code: null, maint_item_name: null, item_level: null, contents: null, requirement: null, acceptancecriteria: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null }
export default {
name: 'Devicemaintain',
components: { pagination, crudOperation, rrOperation, udOperation, Treeselect },
components: { UploadDialog, pagination, crudOperation, rrOperation, udOperation, Treeselect },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -202,6 +216,7 @@ export default {
},
data() {
return {
uploadShow: false,
classes: [],
class_idStr: '2',
materOpt_code: '23',
@@ -260,6 +275,9 @@ export default {
this.getSubTypes(data)
}
},
tableChanged3() {
this.crud.toQuery()
},
changeQuery() {
this.crud.toQuery()
},

View File

@@ -0,0 +1,121 @@
<template>
<el-dialog
title="导入Excel文件"
append-to-body
:visible.sync="dialogVisible"
destroy-on-close
width="400px"
:show-close="true"
@close="close"
@open="open"
>
<el-upload
ref="upload"
class="upload-demo"
action=""
drag
:on-exceed="is_one"
:limit="1"
:auto-upload="false"
:multiple="false"
:show-file-list="true"
:on-change="uploadByJsqd"
:file-list="fileList"
accept=".xlsx,.xls"
>
<i class="el-icon-upload" />
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div slot="tip" class="el-upload__tip">只能上传Excel文件且不超过10MB</div>
</el-upload>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
</template>
<script>
import crudEquipmentfile from '@/views/wms/masterdata_manage/em/devicesportcheckitems/devicesportcheckitems'
import CRUD, { crud } from '@crud/crud'
export default {
name: 'UploadDialog',
mixins: [crud()],
components: {},
props: {
dialogShow: {
type: Boolean,
default: false
},
openParam: {
type: String
}
},
data() {
return {
dialogVisible: false,
fileList: [],
file1: ''
}
},
watch: {
dialogShow: {
handler(newValue, oldValue) {
this.dialogVisible = newValue
}
},
openParam: {
handler(newValue, oldValue) {
this.opendtlParam = newValue
}
}
},
methods: {
open() {
},
close() {
this.$emit('update:dialogShow', false)
},
is_one() {
this.crud.notify('只能上传一个excel文件', CRUD.NOTIFICATION_TYPE.WARNING)
},
// 文件校验方法
beforeAvatarUpload(file) {
// 不能导入大小超过2Mb的文件
if (file.size > 10 * 1024 * 1024) {
return false
}
return true
},
// 文件发生改变就会触发的事件
uploadByJsqd(file) {
this.file1 = file
},
submit() {
if (this.beforeAvatarUpload(this.file1)) {
this.fileList.name = this.file1.name
this.fileList.url = ''
var formdata = new FormData()
formdata.append('file', this.file1.raw)
crudEquipmentfile.excelImport(formdata).then((res) => {
this.crud.notify('导入成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.$emit('tableChanged3', '')
this.$emit('update:dialogShow', false)
}).catch(err => {
// const list = err.response.data.message
// download2('/api/produceWorkorder/download', list).then(result => {
// downloadFile(result, '错误信息汇总', 'xlsx')
// crud.downloadLoading = false
// })
})
} else {
this.crud.notify('文件过大请上传小于10MB的文件〜', CRUD.NOTIFICATION_TYPE.WARNING)
}
}
}
}
</script>

View File

@@ -23,5 +23,12 @@ export function edit(data) {
data
})
}
export function excelImport(data) {
return request({
url: 'api/devicesportcheckitems/excelImport',
method: 'post',
data
})
}
export default { add, edit, del }
export default { add, edit, del, excelImport }

View File

@@ -60,7 +60,18 @@
</el-form>
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<crudOperation :permission="permission" >
<el-button
slot="right"
class="filter-item"
type="warning"
icon="el-icon-upload2"
size="mini"
@click="uploadShow = true"
>
导入
</el-button>
</crudOperation>
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="850px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="120px">
@@ -165,6 +176,7 @@
<!--分页组件-->
<pagination />
</div>
<UploadDialog :dialog-show.sync="uploadShow" @tableChanged3="tableChanged3"/>
</div>
</template>
@@ -179,11 +191,13 @@ import crudClassstandard from '@/api/wms/basedata/master/classstandard'
import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import crudMaterialbase from '@/api/wms/basedata/master/materialbase'
import UploadDialog from '@/views/wms/masterdata_manage/em/devicesportcheckitems/UploadDialog'
const defaultForm = { material_type_id: null, maint_item_id: null, maint_item_code: null, maint_item_name: null, item_level: null, contents: null, requirement: null, acceptancecriteria: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null }
export default {
name: 'Devicemaintain',
components: { pagination, crudOperation, rrOperation, udOperation, Treeselect },
components: { UploadDialog, pagination, crudOperation, rrOperation, udOperation, Treeselect },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -202,6 +216,7 @@ export default {
},
data() {
return {
uploadShow: false,
classes: [],
class_idStr: null,
materOpt_code: '23',
@@ -260,6 +275,9 @@ export default {
this.getSubTypes(data)
}
},
tableChanged3() {
this.crud.toQuery()
},
changeQuery() {
this.crud.toQuery()
},