Browse Source

调整回执单预览

master
李磊 3 years ago
parent
commit
152c356508
  1. 29
      src/service/bjdService.js
  2. 28
      src/views/bjd/dj_list.vue
  3. 25
      src/views/bjd/jj_list.vue
  4. 25
      src/views/bjd/qy_list.vue
  5. 132
      src/views/bjd/sjse/upload_list.vue
  6. 188
      src/views/bjd/sjse/upload_list_20200721.vue
  7. 134
      src/views/bjd/sjse/upload_list_param.vue
  8. 173
      src/views/bjd/sjse/upload_list_xingshi.vue

29
src/service/bjdService.js

@ -2,6 +2,9 @@ import XLSX from 'xlsx'
import common from '@/utils/common'
import qs from 'qs'
import preview from '@/utils/preview'
import router from '@/router'
import store from '@/store'
import { Notification } from 'element-ui'
export default {
/**
@ -137,5 +140,31 @@ export default {
})
})
})
},
viewHzd(bjdId) {
preview({
url: '/print/generatePdfHzd',
method: 'get',
params: {
bjdId: bjdId
}
}).then((data) => {
data = data.replace(/\\/g, '/')
if (data) {
router.push({
path:
'/preview/hzd?src=' +
store.getters.prodName +
'/static/web/viewer.html?file=' +
encodeURIComponent(data)
})
} else {
Notification({
message: 'PDF预览错误!',
type: 'error',
duration: 3 * 1000
})
}
})
}
}

28
src/views/bjd/dj_list.vue

@ -279,7 +279,7 @@
circle
icon="el-icon-view"
title="预览回执单"
@click="viewHzd(scope.row.id)"
@click="bjdService.viewHzd(scope.row.id)"
/>
</template>
</el-table-column>
@ -549,32 +549,6 @@ export default {
})
})
},
viewHzd(bjdId) {
this.preview({
url: '/print/generatePdfHzd',
method: 'get',
params: {
bjdId: bjdId
}
}).then((data) => {
data = data.replace(/\\/g, '/')
if (data) {
this.$router.push({
path:
'/preview/hzd?src=' +
this.$store.getters.prodName +
'/static/web/viewer.html?file=' +
encodeURIComponent(data)
})
} else {
this.$message({
message: 'PDF预览错误!',
type: 'error',
duration: 3 * 1000
})
}
})
},
errorBjd() {
//
this.$confirm('报检项目将进行异常收回,是否继续?', '提示', {

25
src/views/bjd/jj_list.vue

@ -166,7 +166,7 @@
<template slot-scope="scope">
<el-button type="primary" size="mini" circle icon="el-icon-edit" title="编辑" @click="editBjd(scope.$index)" />
<el-button v-show="scope.row.bjState === 3 || scope.row.bjState === 4" size="mini" type="info" icon="el-icon-message" title="查看原因" circle @click="viewInfo(scope.row.bjdBeizhu)" />
<el-button v-show="scope.row.bjState === 2 || scope.row.bjState === 5 || scope.row.bjState === 6" type="success" size="mini" circle icon="el-icon-view" title="预览回执单" @click="viewHzd(scope.row.id)" />
<el-button v-show="scope.row.bjState === 2 || scope.row.bjState === 5 || scope.row.bjState === 6" type="success" size="mini" circle icon="el-icon-view" title="预览回执单" @click="bjdService.viewHzd(scope.row.id)" />
</template>
</el-table-column>
</el-table>
@ -438,29 +438,6 @@ export default {
viewInfo(reason) {
this.$message({ message: reason, type: 'info' })
},
viewHzd(bjdid) {
this.apibjd({
url: '/bjd/printHzd',
method: 'get',
params: {
bjdIds: bjdid
}
}).then(data => {
this.preview({
url: '/print/generatePdfListing',
method: 'post',
data: {
info: data.bjd,
paramList: data.renwu,
viewType: 'HZD'
}
}).then(data => {
data = data.replace(/\\/g, '/')
// router.push({ path: '/preview/1/1/urlPath?src=' + store.getters.prodName + '/static/web/viewer.html?file=' + encodeURIComponent(data) + '&v=' + Math.random() })
window.open(data)
})
})
},
errorBjd() {
//
this.$confirm('报检项目将进行异常收回,是否继续?', '提示', {

25
src/views/bjd/qy_list.vue

@ -119,7 +119,7 @@
<template slot-scope="scope">
<el-button type="primary" size="mini" circle icon="el-icon-edit" title="编辑" @click="editBjd(scope.$index)" />
<el-button v-show="scope.row.bjState === 3 || scope.row.bjState === 4" size="mini" type="info" icon="el-icon-message" title="查看原因" circle @click="viewInfo(scope.row.bjdBeizhu)" />
<el-button v-show="scope.row.bjState === 2 || scope.row.bjState === 5 || scope.row.bjState === 6" type="success" size="mini" circle icon="el-icon-view" title="预览回执单" @click="viewHzd(scope.row.id)" />
<el-button v-show="scope.row.bjState === 2 || scope.row.bjState === 5 || scope.row.bjState === 6" type="success" size="mini" circle icon="el-icon-view" title="预览回执单" @click="bjdService.viewHzd(scope.row.id)" />
</template>
</el-table-column>
</el-table>
@ -342,29 +342,6 @@ export default {
viewInfo(reason) {
this.$message({ message: reason, type: 'info' })
},
viewHzd(bjdid) {
this.apibjd({
url: '/bjd/printHzd',
method: 'get',
params: {
bjdIds: bjdid
}
}).then(data => {
this.preview({
url: '/print/generatePdfListing',
method: 'post',
data: {
info: data.bjd,
paramList: data.renwu,
viewType: 'HZD'
}
}).then(data => {
data = data.replace(/\\/g, '/')
// router.push({ path: '/preview/1/1/urlPath?src=' + store.getters.prodName + '/static/web/viewer.html?file=' + encodeURIComponent(data) + '&v=' + Math.random() })
window.open(data)
})
})
},
errorBjd() {
//
this.$confirm('报检项目将进行异常收回,是否继续?', '提示', {

132
src/views/bjd/sjse/upload_list.vue

@ -1,132 +0,0 @@
<template>
<center>
<div style="width: 60%;text-align: left;margin-top: 20px;">
<span style="font-size: 20px;font-weight: bold;">通用材料清单</span><span>(支持上传PDF以及Jpeg\Png图片格式)</span>
<div slot="tip" class="el-upload__tip" style="font-size: 14px">
默认图片大小不超过2M,PDF文件不超过8M超过大小请访问<a href="https://docsmall.com/" target="_blank"><span style="color: #00afff">https://docsmall.com/</span></a>
<br>
<span style="color: red;">图片上传前如存在颠倒方向请纠正后在上传PDF压缩后请保证文件内容清晰度建议强力压缩</span>
</div>
<fieldset v-for="list in listDicData" :key="list.title">
<legend>{{ list.title }}</legend>
<el-upload
:action="url"
:headers="headers"
accept="image/jpeg,image/png,.pdf"
multiple
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="getListDic"
:file-list="list.picList"
:limit="list.counts"
:on-exceed="handleExceed"
:before-upload="beforeAvatarUpload"
:data="{filesId: list.id, zhonglei: list.zhonglei, bjdId: bjdId}"
>
<i class="el-icon-plus" />
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</fieldset>
</div>
</center>
</template>
<script>
export default {
name: 'UploadSjse',
data() {
return {
url: process.env.VUE_APP_BJD_API + 'bjdfiles/upload',
dialogImageUrl: '',
dialogVisible: false,
disabled: false,
zhonglei: '',
bjdId: '',
listDicData: [],
headers: {
'Authorization': this.$route.query.tkey
}
}
},
created() {
this.zhonglei = this.$route.params.sbzl
this.bjdId = window.atob(this.$route.params.bjid)
localStorage.setItem('token', this.$route.query.tkey)
},
mounted() {
this.getListDic()
},
methods: {
getListDic() {
this.apibjd({
url: '/bjdfilesdic/getListDic',
method: 'get',
params: {
id: this.zhonglei === '4000' ? '48' : '1',
zllx: this.zhonglei,
bjdid: this.bjdId
}
}).then(data => {
this.listDicData = data
this.listDicData.forEach(list => {
list.picList.forEach(pic => {
pic.url = process.env.VUE_APP_IMG_URL + pic.url
})
})
})
},
handleRemove(file) {
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apibjd({
url: '/bjdfiles/delFiles',
method: 'delete',
params: {
id: file.id,
name: file.name
}
}).then(data => {
if (data.returnCode === '100') {
this.$message({ message: '删除成功!!', type: 'success' })
} else {
this.$message({ message: '删除失败!!', type: 'error' })
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
this.getListDic()
})
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleDownload(file) {
console.log(file)
},
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 8
if (!isLt2M) {
this.$message.error('上传图片大小不能超过 8MB!')
}
return isLt2M
},
handleExceed(files, fileList) {
this.$message.error('上传文件数超出限制,请控制在' + fileList.length + '个以内。')
}
}
}
</script>
<style scoped>
</style>

188
src/views/bjd/sjse/upload_list_20200721.vue

@ -1,188 +0,0 @@
<template>
<center>
<div style="width: 60%;text-align: left;margin-top: 20px;">
<span style="font-size: 20px;font-weight: bold;">{{ uploadType }}</span><span>(支持上传PDF以及Jpeg\Png图片格式)</span>
<div slot="tip" class="el-upload__tip" style="font-size: 14px">
默认图片大小不超过2M,PDF文件不超过8M超过大小请访问<a href="https://docsmall.com/" target="_blank"><span style="color: #00afff">https://docsmall.com/</span></a>
<br>
<span style="color: red;">图片上传前如存在颠倒方向请纠正后在上传PDF压缩后请保证文件内容清晰度建议强力压缩</span>
</div>
<fieldset v-for="list in listDicData" :key="list.title">
<legend>{{ list.title }}</legend>
<el-upload
:action="url"
:headers="headers"
accept="image/jpeg,image/png,.pdf"
multiple
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="getListDic"
:file-list="list.picList"
:limit="list.counts"
:on-exceed="handleExceed"
:before-upload="beforeAvatarUpload"
:data="{filesId: list.id, zhonglei: list.zhonglei, bjdId: bjdId, bjdParamId: bjdParamId}"
>
<i class="el-icon-plus" />
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</fieldset>
</div>
<el-dialog :visible.sync="dialogSblbVisible" title="请按项目及电梯型号分类上传">
<!-- 相应的字典数据都存在字典表中 暂时无通过程序引用 -->
<el-button @click="checkSbzl('30001')">
曳引驱动乘客电梯
</el-button>
<el-button @click="checkSbzl('30002')">
曳引驱动载货电梯
</el-button>
<el-button @click="checkSbzl('30003')">
既有住宅增设电梯
</el-button>
<el-button @click="checkSbzl('30004')">
自动扶梯与自动人行道
</el-button>
<el-button @click="checkSbzl('30005')">
液压电梯
</el-button>
<el-button @click="checkSbzl('30006')">
杂物电梯
</el-button>
<el-button @click="checkSbzl('30007')">
消防员电梯
</el-button>
<el-button @click="checkSbzl('30008')">
防爆电梯
</el-button>
<el-button @click="checkSbzl('30009')">
改造和重大修理
</el-button>
</el-dialog>
</center>
</template>
<script>
export default {
name: 'WenjianSjse',
data() {
return {
url: process.env.VUE_APP_BJD_API + 'bjdfiles/upload',
dialogImageUrl: '',
dialogVisible: false,
disabled: false,
dialogSblbVisible: false,
parentId: '40000',
zhonglei: this.$route.params.sbzl,
uploadType: '通用资料',
bjdId: window.atob(this.$route.params.bjid),
bjdParamId: this.$route.params.bjparamid,
listDicData: [],
headers: {
'Authorization': this.$route.query.tkey
}
}
},
created() {
switch (this.$route.params.zlzl) {
case 'tyzl' :
this.uploadType = '通用资料'
break
case 'xssy' :
this.uploadType = '型式试验合格证'
break
case 'ztzl' :
this.uploadType = '逐台资料'
break
}
localStorage.setItem('token', this.$route.query.tkey)
},
mounted() {
if (this.bjdParamId === undefined) {
this.bjdParamId = 0
}
if (this.zhonglei === '3000') {
this.dialogSblbVisible = true
} else {
this.getListDic()
}
},
methods: {
checkSbzl(val) {
this.dialogSblbVisible = false
this.parentId = val
this.getListDic()
},
getListDic() {
this.apibjd({
url: '/bjdfilesdic/getListDic',
method: 'get',
params: {
id: this.parentId,
zllx: this.uploadType,
bjdid: this.bjdId,
paramId: this.bjdParamId
}
}).then(data => {
this.listDicData = data
this.listDicData.forEach(list => {
list.picList.forEach(pic => {
pic.url = process.env.VUE_APP_IMG_URL + pic.url
})
})
})
},
handleRemove(file) {
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apibjd({
url: '/bjdfiles/delFiles',
method: 'delete',
params: {
id: file.id,
name: file.name
}
}).then(data => {
if (data.returnCode === '100') {
this.$message({ message: '删除成功!!', type: 'success' })
} else {
this.$message({ message: '删除失败!!', type: 'error' })
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
this.getListDic()
})
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleDownload(file) {
console.log(file)
},
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 8
if (!isLt2M) {
this.$message.error('上传图片大小不能超过 8MB!')
}
return isLt2M
},
handleExceed(files, fileList) {
this.$message.error('上传文件数超出限制,请控制在' + fileList.length + '个以内。')
}
}
}
</script>
<style scoped>
</style>

134
src/views/bjd/sjse/upload_list_param.vue

@ -1,134 +0,0 @@
<template>
<center>
<div style="width: 60%;text-align: left;margin-top: 20px;">
<span style="font-size: 20px;font-weight: bold;">一对一逐台资料清单</span><span>(支持上传PDF以及Jpeg\Png图片格式)</span>
<div slot="tip" class="el-upload__tip" style="font-size: 14px">
默认图片大小不超过2M,PDF文件不超过8M超过大小请访问<a href="https://docsmall.com/" target="_blank"><span style="color: #00afff">https://docsmall.com/</span></a>
<br>
<span style="color: red;">图片上传前如存在颠倒方向请纠正后在上传PDF压缩后请保证文件内容清晰度建议强力压缩</span>
</div>
<fieldset v-for="list in listDicData" :key="list.title">
<legend>{{ list.title }}</legend>
<el-upload
:action="url"
:headers="headers"
accept="image/jpeg,image/png,.pdf"
list-type="picture-card"
multiple
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="getListDic"
:file-list="list.picList"
:limit="list.counts"
:on-exceed="handleExceed"
:before-upload="beforeAvatarUpload"
:data="{filesId: list.id, zhonglei: list.zhonglei, bjdId: bjdId, bjdParamId: bjdParamId}"
>
<i class="el-icon-plus" />
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</fieldset>
</div>
</center>
</template>
<script>
export default {
name: 'UploadSjseParam',
data() {
return {
url: process.env.VUE_APP_BJD_API + 'bjdfiles/upload',
dialogImageUrl: '',
dialogVisible: false,
disabled: false,
zhonglei: '',
bjdId: '',
bjdParamId: 0,
listDicData: [],
headers: {
'Authorization': this.$route.query.tkey
}
}
},
created() {
this.zhonglei = this.$route.params.sbzl
this.bjdId = window.atob(this.$route.params.bjid)
this.bjdParamId = this.$route.params.bjparamid
localStorage.setItem('token', this.$route.query.tkey)
},
mounted() {
this.getListDic()
},
methods: {
getListDic() {
this.apibjd({
url: '/bjdfilesdic/getListDic',
method: 'get',
params: {
id: '2',
zllx: this.zhonglei,
bjdid: this.bjdId,
paramId: this.bjdParamId
}
}).then(data => {
this.listDicData = data
this.listDicData.forEach(list => {
list.picList.forEach(pic => {
if (parseInt(pic.paramId) === parseInt(this.bjdParamId)) {
pic.url = process.env.VUE_APP_IMG_URL + pic.url
}
})
})
})
},
handleRemove(file) {
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apibjd({
url: '/bjdfiles/delFiles',
method: 'delete',
params: {
id: file.id,
name: file.name
}
}).then(data => {
if (data.returnCode === '100') {
this.$message({ message: '删除成功!!', type: 'success' })
} else {
this.$message({ message: '删除失败!!', type: 'error' })
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
this.getListDic()
})
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 8
if (!isLt2M) {
this.$message.error('上传图片大小不能超过 8MB!')
}
return isLt2M
},
handleExceed(files, fileList) {
this.$message.error('上传文件数超出限制,请控制在' + fileList.length + '个以内。')
}
}
}
</script>
<style scoped>
</style>

173
src/views/bjd/sjse/upload_list_xingshi.vue

@ -1,173 +0,0 @@
<template>
<center>
<div style="width: 60%;text-align: left;margin-top: 20px;">
<span style="font-size: 20px;font-weight: bold;">型式试验材料清单按项目及电梯型号分类上传</span><span>(支持上传PDF以及Jpeg\Png图片格式)</span>
<div slot="tip" class="el-upload__tip" style="font-size: 14px">
默认图片大小不超过2M,PDF文件不超过8M超过大小请访问<a href="https://docsmall.com/" target="_blank"><span style="color: #00afff">https://docsmall.com/</span></a>
<br>
<span style="color: red;">图片上传前如存在颠倒方向请纠正后在上传PDF压缩后请保证文件内容清晰度建议强力压缩</span>
</div>
<el-tabs v-model="activeName" type="border-card">
<el-tab-pane v-for="listzl in listZlData" :key="listzl.id" :label="listzl.title" :name="listzl.title">
<div v-for="list in listDicData" :key="list.id">
<fieldset v-if="listzl.id === list.parentId">
<legend>{{ list.title }}</legend>
<el-upload
:action="url"
:headers="headers"
accept="image/jpeg,image/png,.pdf"
list-type="picture-card"
multiple
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:file-list="list.picList"
:limit="list.counts"
:data="{filesId: list.id, zhonglei: list.zhonglei, bjdId: bjdId, xingshiId: listzl.id}"
>
<i class="el-icon-plus" />
</el-upload>
</fieldset>
</div>
</el-tab-pane>
</el-tabs>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
<el-dialog :visible.sync="dialogSblbVisible" title="请按项目及电梯型号分类上传">
<el-button @click="checkSbzl('曳引与强制驱动电梯')">
曳引与强制驱动电梯
</el-button>
<el-button @click="checkSbzl('液压驱动电梯')">
液压驱动电梯
</el-button>
<el-button @click="checkSbzl('自动扶梯与自动人行道')">
自动扶梯与自动人行道
</el-button>
<el-button @click="checkSbzl('杂物电梯')">
杂物电梯
</el-button>
<el-button @click="checkSbzl('消防员电梯')">
消防员电梯
</el-button>
<el-button @click="checkSbzl('防爆电梯')">
防爆电梯
</el-button>
</el-dialog>
</center>
</template>
<script>
export default {
name: 'UploadSjseXSSY',
data() {
return {
url: process.env.VUE_APP_BJD_API + 'bjdfiles/upload',
dialogImageUrl: '',
dialogVisible: false,
dialogSblbVisible: true,
activeName: '曳引式强制驱动电梯',
zhonglei: '',
bjdId: '',
listDicData: [],
listZlData: [],
headers: {
'Authorization': this.$route.query.tkey
}
}
},
created() {
this.zhonglei = this.$route.params.sbzl
this.bjdId = window.atob(this.$route.params.bjid)
localStorage.setItem('token', this.$route.query.tkey)
},
mounted() {
this.getList()
this.getListDic()
},
methods: {
checkSbzl(val) {
console.log(val)
this.activeName = val
this.dialogSblbVisible = false
},
getList() {
this.apibjd({
url: '/bjdfilesdic/getListDic',
method: 'get',
params: {
id: '3',
zllx: this.zhonglei,
bjdid: 0
}
}).then(data => {
this.listZlData = data
})
},
getListDic() {
this.apibjd({
url: '/bjdfilesdic/getListDicXingshi',
method: 'get',
params: {
id: '3',
sbzl: this.zhonglei,
bjdid: this.bjdId
}
}).then(data => {
this.listDicData = data
this.listDicData.forEach(list => {
list.picList.forEach(pic => {
pic.url = process.env.VUE_APP_IMG_URL + pic.url
})
})
})
},
handleRemove(file, fileList) {
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apibjd({
url: '/bjdfiles/delFiles',
method: 'delete',
params: {
id: file.id,
name: file.name
}
}).then(data => {
if (data.returnCode === '100') {
this.$message({ message: '删除成功!!', type: 'success' })
} else {
this.$message({ message: '删除失败!!', type: 'error' })
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
this.getListDic()
})
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 8
if (!isLt2M) {
this.$message.error('上传图片大小不能超过 8MB!')
}
return isLt2M
},
handleExceed(files, fileList) {
this.$message.error('上传文件数超出限制,请控制在' + fileList.length + '个以内。')
}
}
}
</script>
<style scoped>
</style>
Loading…
Cancel
Save