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.
 
 
 
 

204 lines
6.3 KiB

<template>
<el-dialog :visible.sync="dialog" append-to-body :title="isAppend ? '追加归档' : '扫码归档'" width="50%" @close="closeDialog">
<el-form ref="archive" :model="archive" size="small" label-width="100px">
<el-row :gutter="16">
<el-col :span="8">
<el-form-item label="扫码框">
<el-input v-model="baogaobianhao" style="width: 300px;" @keyup.enter.native="handleKeyUpEnter" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="8">
<el-form-item label="归档架号" required>
<AutoComplete ref="autoComplete" :frame-nums="frameNums" :frame-num="archive.frameNum" :is-edit="isAppend" @getFrameNum="setValMethod" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="列" prop="columnNum" required>
<el-input v-model="archive.columnNum" :disabled="isAppend" style="width: 150px;" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="8">
<el-form-item label="归档盒号" prop="boxNum" required>
<el-input v-model="archive.boxNum" :disabled="isAppend" style="width: 150px;" />
</el-form-item>
</el-col>
</el-row>
<!--表格渲染-->
<el-table :data="paramList" size="mini" height="400px" border fit highlight-current-row stripe width="100%">
<el-table-column type="index" align="center" label="序号" />
<el-table-column align="center" label="报告编号" prop="baogaobianhao" />
<el-table-column align="center" label="设备种类" prop="shebeizhonglei" />
<el-table-column align="center" label="使用单位" prop="shiyongdanwei" />
<el-table-column align="center" label="注册代码" prop="zhucedaima" />
<el-table-column align="center" label="使用登记证编号" prop="shiyongdengjibianhao" />
<el-table-column align="center" label="产品编号" prop="chanpinbianhao" />
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button v-if="!scope.row.archiveId" type="danger" size="small" icon="el-icon-delete" @click="removeInfo(scope.$index)" />
</template>
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="dialog = false">
取消
</el-button>
<el-button type="primary" @click="doSubmit">
确认
</el-button>
</div>
</el-dialog>
</template>
<script>
import Utils from '../../utils/contact.js'
import AutoComplete from './components/AutoComplete/index'
export default {
components: { AutoComplete },
props: {
frameNums: {
type: Array,
required: true
},
isAppend: {
type: Boolean,
default: false
},
id: {
type: Number,
default: 0
}
},
data() {
return {
paramList: [],
dialog: false,
archive: {},
baogaobianhao: '',
isJd: false,
isCy: false,
jianyijiahao: [] // 建议输入框里的归档架号
}
},
methods: {
doInit() {
this.$nextTick(() => {
this.jianyijiahao = this.frameNums
if (this.isAppend) {
this.api({
url: '/archive',
params: {
id: this.id
},
method: 'get'
}).then(data => {
this.archive = data.archive
this.paramList = data.paramList
})
}
})
},
// 扫码
handleKeyUpEnter() {
// 判断新录入的报告编号是否存在
if (this.paramList.every(param => param.baogaobianhao !== this.baogaobianhao)) {
// 进行查询
this.getYsjlByBgbh()
} else {
this.baogaobianhao = ''
}
},
/**
* 查询报告
*/
getYsjlByBgbh() {
// 先去18版承压类进行查询
this.api({
url: '/archive/getYsjlByBgbh?bgbh=' + this.baogaobianhao,
method: 'get'
}).then(data => {
if (data != null && data !== '') {
this.paramList.unshift({
id: data.id,
baogaobianhao: data.baogaobianhao,
shebeizhonglei: data.shebeizhonglei,
shiyongdanwei: data.shiyongdanwei,
zhucedaima: data.zhucedaima,
shiyongdengjibianhao: data.shiyongdengjibianhao,
chanpinbianhao: data.chanpinbianhao
})
}
}).catch(() => {
})
this.baogaobianhao = ''
},
// 禁止扫码框粘贴
handlePaste() {
return false
},
// 执行归档报告
doSubmit() {
let archiveParamList = Object.assign([], this.paramList)
if (this.isAppend) {
archiveParamList = archiveParamList.filter(archiveParam => !archiveParam.archiveId)
}
if (!this.archive.frameNum) {
this.$message.warning('请填写归档架号')
return false
}
if (archiveParamList.length === 0) {
this.$message.warning('请添加要归档的报告数据')
return false
}
this.$refs['archive'].validate(valid => {
if (valid) {
this.archive.archiveUser = this.$store.getters.nickname
this.archive.archiveCount = this.paramList.length
this.api({
url: '/archive',
method: this.isAppend ? 'put' : 'post',
data: {
archive: this.archive,
params: archiveParamList
}
}).then(() => {
this.$message.success('添加成功。')
Utils.$emit('archive-list')
this.dialog = false
})
} else {
return false
}
})
},
// 清空单条已归档数据
removeInfo($index) {
if ($index === 0) {
this.paramList.splice($index, $index + 1)
} else {
this.paramList.splice($index, 1)
}
},
// 关闭归档报告窗口触发事件
closeDialog() {
this.$refs['archive'].resetFields()
this.$refs.autoComplete.cleanNum()
this.archive = {}
this.baogaobianhao = ''
this.paramList = []
this.isCy = false
this.isJd = false
},
// AutoComplete组件通信
setValMethod(data) {
this.archive.frameNum = data
}
}
}
</script>