Browse Source

修改体系文件预览跟下载文件名称

master
xiaobai 3 years ago
parent
commit
dd15a86b4e
  1. 192
      src/utils/common.js
  2. 40
      src/views/dic/category.vue
  3. 210
      src/views/document/index.vue
  4. 11
      src/views/preview/document.vue

192
src/utils/common.js

@ -30,10 +30,10 @@ export default {
}) })
}, },
/** /**
* 预览原始资料 * 预览原始资料
* 如果给的是路径就直接预览如果给的是任务ID就先查询路径再预览 * 如果给的是路径就直接预览如果给的是任务ID就先查询路径再预览
* @param id 任务ID * @param id 任务ID
*/ */
viewRawRecords(id) { viewRawRecords(id) {
preview({ preview({
url: '/download/pullRawRecordsPath', url: '/download/pullRawRecordsPath',
@ -53,9 +53,9 @@ export default {
}) })
}, },
/** /**
* 预览相关鉴证文件 * 预览相关鉴证文件
* @param id 文件主键 * @param id 文件主键
*/ */
viewProve(id) { viewProve(id) {
preview.defaults.withCredentials = true preview.defaults.withCredentials = true
preview({ preview({
@ -73,10 +73,10 @@ export default {
}) })
}, },
/** /**
* 预览驳回附件 * 预览驳回附件
* @param id 驳回记录主键 * @param id 驳回记录主键
* @param fileName 驳回附件名称 * @param fileName 驳回附件名称
*/ */
viewReject(id, fileName) { viewReject(id, fileName) {
if (id && fileName && fileName !== '') { if (id && fileName && fileName !== '') {
const suffixName = fileName.substring(fileName.indexOf('.')) const suffixName = fileName.substring(fileName.indexOf('.'))
@ -151,11 +151,12 @@ export default {
console.info('重新生成成功') console.info('重新生成成功')
}) })
}, },
/** /**
* 检验员签名方法 * 检验员签名方法
* @param {*} id 原始记录/报告主键 * @param {*} id 原始记录/报告主键
* @param {*} jyry 检验人员 * @param {*} jyry 检验人员
*/ */
signName(id, jyry) { signName(id, jyry) {
if (!id) { if (!id) {
return return
@ -189,15 +190,15 @@ export default {
return chineseName return chineseName
}, },
/** /**
* 删除检验方案 * 删除检验方案
* @param jyxm 检验项目简写例如bhcd * @param jyxm 检验项目简写例如bhcd
* @param jianyanxiangmu 检验项目例如壁厚测定 * @param jianyanxiangmu 检验项目例如壁厚测定
* @param bglx 报告类型例如[2, 3] * @param bglx 报告类型例如[2, 3]
* @param ysjlId 无损或分项的原始记录Id * @param ysjlId 无损或分项的原始记录Id
* @param mainYsjlId 主原始记录Id * @param mainYsjlId 主原始记录Id
* @param sblbdm 设备类别代码例如2100 * @param sblbdm 设备类别代码例如2100
* @param nblb 内部类别例如DQ * @param nblb 内部类别例如DQ
*/ */
delJyfa(jyxm, jianyanxiangmu, bglx, ysjlId, mainYsjlId, sblbdm, nblb) { delJyfa(jyxm, jianyanxiangmu, bglx, ysjlId, mainYsjlId, sblbdm, nblb) {
api({ api({
url: '/ysjl/delJyfa', url: '/ysjl/delJyfa',
@ -216,13 +217,12 @@ export default {
message: '删除成功', message: '删除成功',
type: 'success' type: 'success'
}) })
}).catch(e => { }).catch(e => {})
})
}, },
/** /**
* 下载导入模板 * 下载导入模板
* @param templateName 例如模板名字.xlsx * @param templateName 例如模板名字.xlsx
*/ */
downloadTemplate(templateName) { downloadTemplate(templateName) {
if (!templateName) { if (!templateName) {
Vue.prototype.$message({ Vue.prototype.$message({
@ -242,12 +242,12 @@ export default {
}) })
}, },
/** /**
* 上传数据 * 上传数据
* @param file 上传的文件信息 * @param file 上传的文件信息
* @param tableData 上传前的数据 * @param tableData 上传前的数据
* @returns {boolean} * @returns {boolean}
* @constructor * @constructor
*/ */
uploadTableData(file, tableData) { uploadTableData(file, tableData) {
const isExcel = file.type === 'application/vnd.ms-excel' || file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' const isExcel = file.type === 'application/vnd.ms-excel' || file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
const isExcel2 = file.name.endsWith('.xls') || file.name.endsWith('.xlsx') const isExcel2 = file.name.endsWith('.xls') || file.name.endsWith('.xlsx')
@ -280,10 +280,10 @@ export default {
}) })
}, },
/** /**
* 深拷贝 * 深拷贝
* @param o * @param o
* @returns {Array|*} * @returns {Array|*}
*/ */
deepCopy(o) { deepCopy(o) {
if (o instanceof Array) { if (o instanceof Array) {
var n = [] var n = []
@ -302,9 +302,9 @@ export default {
} }
}, },
/** /**
* 根据报告ID查看驳回原因 * 根据报告ID查看驳回原因
* @param ysjlId * @param ysjlId
*/ */
viewRejection(ysjlId) { viewRejection(ysjlId) {
api({ api({
url: '/taskinfo/viewRejection', url: '/taskinfo/viewRejection',
@ -323,9 +323,9 @@ export default {
}) })
}, },
/** /**
* 下载无损分项附件 * 下载无损分项附件
* @param renwuId * @param renwuId
*/ */
downloadWsFxFile(renwuId) { downloadWsFxFile(renwuId) {
preview({ preview({
url: '/download/pullWsFxFilePath', url: '/download/pullWsFxFilePath',
@ -340,8 +340,8 @@ export default {
}) })
}, },
/** /**
* 判断日期格式是否为yyyy-MM-dd * 判断日期格式是否为yyyy-MM-dd
* */ * */
checkDateFormat(checkDate) { checkDateFormat(checkDate) {
if (checkDate !== null) { if (checkDate !== null) {
checkDate = checkDate.replace(/\s+/g, '').replace('00:00:00', '').replace('年', '-').replace('月', '-').replace('日', '') checkDate = checkDate.replace(/\s+/g, '').replace('00:00:00', '').replace('年', '-').replace('月', '-').replace('日', '')
@ -353,8 +353,8 @@ export default {
return checkDate return checkDate
}, },
/** /**
* 删除当前路由 * 删除当前路由
*/ */
delCurrentViews() { delCurrentViews() {
store.dispatch('delCurrentViews', { store.dispatch('delCurrentViews', {
view: router.history.current, view: router.history.current,
@ -362,11 +362,11 @@ export default {
}) })
}, },
/** /**
* 构建编辑原始记录页面路由参数 * 构建编辑原始记录页面路由参数
* @param ysjl * @param ysjl
* @param obj 需要将特殊参数补充到路由的参数里面 * @param obj 需要将特殊参数补充到路由的参数里面
* @returns {{modelId: null, departmentId: *, renwuId: null, sbzldm, sbpzdm, jyxm: null, jylb: *, sblbdm, id: null, state: null, neibuleibie, jianyanrenyuan: null}} * @returns {{modelId: null, departmentId: *, renwuId: null, sbzldm, sbpzdm, jyxm: null, jylb: *, sblbdm, id: null, state: null, neibuleibie, jianyanrenyuan: null}}
*/ */
buildEditYsjlRouterParam(ysjl, obj) { buildEditYsjlRouterParam(ysjl, obj) {
const routerParam = { const routerParam = {
id: ysjl.id, id: ysjl.id,
@ -390,29 +390,29 @@ export default {
return routerParam return routerParam
}, },
/** /**
* 重新加载页面到更新报检单页面 * 重新加载页面到更新报检单页面
* @param bjd * @param bjd
*/ */
reloadViewToUpdateBjd(bjd) { reloadViewToUpdateBjd(bjd) {
this.delCurrentViews() this.delCurrentViews()
router.push({ path: '/bjd/bjd-' + bjd.jianyanleibie.toLowerCase() + '-input/' + bjd.id + '/' + bjd.shebeizhongleidaima + '/update' }) router.push({ path: '/bjd/bjd-' + bjd.jianyanleibie.toLowerCase() + '-input/' + bjd.id + '/' + bjd.shebeizhongleidaima + '/update' })
}, },
/** /**
* 重新加载页面到更新原始记录页面 * 重新加载页面到更新原始记录页面
* @param ysjl * @param ysjl
* @param obj 需要将特殊参数补充到路由的参数里面 * @param obj 需要将特殊参数补充到路由的参数里面
*/ */
reloadViewToUpdateYsjl(ysjl, obj) { reloadViewToUpdateYsjl(ysjl, obj) {
const path = router.history.current.path.replace('/null', '/' + ysjl.id) const path = router.history.current.path.replace('/null', '/' + ysjl.id)
this.delCurrentViews() this.delCurrentViews()
router.push({ path: path, query: this.buildEditYsjlRouterParam(ysjl, obj) }) router.push({ path: path, query: this.buildEditYsjlRouterParam(ysjl, obj) })
}, },
/** /**
* 记录报告编号判重 * 记录报告编号判重
* @param bianhao * @param bianhao
* @param id * @param id
* @returns {Promise<unknown>} * @returns {Promise<unknown>}
*/ */
judgeRepeat(bianhao, id) { judgeRepeat(bianhao, id) {
return new Promise(resolve => { return new Promise(resolve => {
api({ api({
@ -443,11 +443,11 @@ export default {
}) })
}, },
/** /**
* 根据原始记录id查询参数 * 根据原始记录id查询参数
* @param ysjlId * @param ysjlId
* @param sbzldm * @param sbzldm
* @returns {AxiosPromise} * @returns {AxiosPromise}
*/ */
getParam(ysjlId, sbzldm) { getParam(ysjlId, sbzldm) {
return api({ return api({
url: '/ysjl/getParamByYsjlId', url: '/ysjl/getParamByYsjlId',
@ -459,12 +459,12 @@ export default {
}) })
}, },
/** /**
* 获取检验项目 * 获取检验项目
* @param modelId 模板主键起草时使用 * @param modelId 模板主键起草时使用
* @param ysjlId 原始记录主键更新时使用 * @param ysjlId 原始记录主键更新时使用
* @param sort 序号 * @param sort 序号
* @returns {AxiosPromise} * @returns {AxiosPromise}
*/ */
getJyxm(modelId, ysjlId, sort, state) { getJyxm(modelId, ysjlId, sort, state) {
let url = '' let url = ''
let data = {} let data = {}
@ -489,22 +489,22 @@ export default {
}) })
}, },
/** /**
* 精确乘法 * 精确乘法
* @param arg1 乘数 * @param arg1 乘数
* @param arg2 被乘数 * @param arg2 被乘数
* @param decimalPlaces 保留的小数位数 * @param decimalPlaces 保留的小数位数
* @returns {number} * @returns {number}
*/ */
accMul(arg1, arg2, decimalPlaces = 2) { accMul(arg1, arg2, decimalPlaces = 2) {
const percentage = Math.pow(10, decimalPlaces) const percentage = Math.pow(10, decimalPlaces)
return Math.round(arg1 * arg2 * percentage) / percentage return Math.round(arg1 * arg2 * percentage) / percentage
}, },
/** /**
* 精确加法 * 精确加法
* @param arg1 * @param arg1
* @param arg2 * @param arg2
* @returns {number} * @returns {number}
*/ */
accAdd(arg1, arg2) { accAdd(arg1, arg2) {
let r1, r2, m, c let r1, r2, m, c
try { try {
@ -537,10 +537,10 @@ export default {
return (arg1 + arg2) / m return (arg1 + arg2) / m
}, },
/** /**
* 删除数组中指定元素 * 删除数组中指定元素
* @param arr 数据 * @param arr 数据
* @param val 元素 * @param val 元素
*/ */
deleteElement(arr, val) { deleteElement(arr, val) {
for (var i = 0; i < arr.length; i++) { for (var i = 0; i < arr.length; i++) {
if (arr[i] === val) { if (arr[i] === val) {
@ -551,10 +551,10 @@ export default {
return arr return arr
}, },
/** /**
* 修复由于Vue的$on可能会多次绑定导致多次调用$on的回调方法 * 修复由于Vue的$on可能会多次绑定导致多次调用$on的回调方法
* @param event * @param event
* @param callback * @param callback
*/ */
$on(event, callback) { $on(event, callback) {
Utils.$off(event) Utils.$off(event)
Utils.$on(event, callback) Utils.$on(event, callback)

40
src/views/dic/category.vue

@ -106,15 +106,15 @@
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>字典详情</span> <span>字典详情</span>
</div> </div>
<el-button <el-button
type="danger" v-if="list.length > 0"
icon="el-icon-delete" type="danger"
@click="deleteCategoryDetail" icon="el-icon-delete"
v-if="list.length > 0" style="margin-bottom:20px"
style="margin-bottom:20px" @click="deleteCategoryDetail"
> >
删除 删除
</el-button> </el-button>
<el-table <el-table
v-if="list.length > 0" v-if="list.length > 0"
ref="list" ref="list"
@ -261,7 +261,7 @@ export default {
species: [], species: [],
parentList: [], parentList: [],
leftList: [], leftList: [],
detailSeletArr:[] detailSeletArr: []
} }
}, },
created() { created() {
@ -294,7 +294,7 @@ export default {
handleSelectionChange: function(val) { handleSelectionChange: function(val) {
this.multipleSelection = val this.multipleSelection = val
}, },
detailHandleSelectionChange(val){ detailHandleSelectionChange(val) {
this.detailSeletArr = val this.detailSeletArr = val
}, },
showCreate() { showCreate() {
@ -417,21 +417,21 @@ export default {
closeDialog() { closeDialog() {
this.species = [] this.species = []
}, },
deleteCategoryDetail(){ deleteCategoryDetail() {
if(this.detailSeletArr.length==0){ if (this.detailSeletArr.length === 0) {
return this.$message.warning('请选择数据') return this.$message.warning('请选择数据')
} }
this.api({ this.api({
url:'/category/delete', url: '/category/delete',
method:'delete', method: 'delete',
params:{ params: {
integers:this.detailSeletArr.map(item=>item.id) integers: this.detailSeletArr.map(item => item.id)
}, },
paramsSerializer: function(params) { paramsSerializer: function(params) {
return qs.stringify(params, { indices: false }) return qs.stringify(params, { indices: false })
} }
}).then(res=>{ }).then(res => {
this.$message({ message: '成功删除', type: 'success' }) this.$message({ message: '成功删除', type: 'success' })
}) })
}, },
formatSpecies(row, column, cellValue) { formatSpecies(row, column, cellValue) {

210
src/views/document/index.vue

@ -34,16 +34,9 @@
:columns="columns" :columns="columns"
:crud="crud" :crud="crud"
> >
<el-table-column <el-table-column slot="operation" align="center" width="200" label="操作">
slot="operation"
align="center"
width="200"
label="操作"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="downLoad(scope.row)"> <el-button type="text" @click="downLoad(scope.row)"> 预览 </el-button>
预览
</el-button>
<el-button type="text" @click="downLoadFn(scope.row)"> <el-button type="text" @click="downLoadFn(scope.row)">
下载 下载
</el-button> </el-button>
@ -56,13 +49,27 @@
<pagination /> <pagination />
<el-dialog title="查看历史版本" :visible.sync="dialogTableVisible"> <el-dialog title="查看历史版本" :visible.sync="dialogTableVisible">
<el-table :data="gridData"> <el-table :data="gridData">
<el-table-column :formatter="formatterFlowName" property="flowName" label="操作环节" width="80" /> <el-table-column
:formatter="formatterFlowName"
property="flowName"
label="操作环节"
width="80"
/>
<el-table-column property="filename" label="文件名称" /> <el-table-column property="filename" label="文件名称" />
<el-table-column :formatter="formatter.getChineseName" property="createBy" label="创建人" width="100" /> <el-table-column
:formatter="formatter.getChineseName"
property="createBy"
label="创建人"
width="100"
/>
<el-table-column property="createTime" label="创建时间" width="150" /> <el-table-column property="createTime" label="创建时间" width="150" />
<el-table-column label="操作" width="80"> <el-table-column label="操作" width="80">
<template v-slot="scope"> <template v-slot="scope">
<el-button v-if="scope.row.flowName !== 0" type="text" @click="viewHistoryFile(scope.row)"> <el-button
v-if="scope.row.flowName !== 0"
type="text"
@click="viewHistoryFile(scope.row)"
>
预览 预览
</el-button> </el-button>
</template> </template>
@ -79,157 +86,186 @@
</template> </template>
<script> <script>
import CRUD, { header, presenter } from '@/components/Crud/crud' import CRUD, { header, presenter } from "@/components/Crud/crud";
import Query from '@/components/Crud/Query' import Query from "@/components/Crud/Query";
import CustomTable from '@/components/Crud/Table' import CustomTable from "@/components/Crud/Table";
import Pagination from '@/components/Crud/Pagination' import Pagination from "@/components/Crud/Pagination";
import CrudDocumentArchives from '@/api/document_archives' import CrudDocumentArchives from "@/api/document_archives";
import { uploadFileFn, updateInspectionSystemFile } from '@/api/common' import { uploadFileFn, updateInspectionSystemFile } from "@/api/common";
import { downloadFileUrl } from '@/utils' import { downloadFileUrl } from "@/utils";
import download from 'downloadjs' import download from "downloadjs";
import preview from '@/utils/preview' import preview from "@/utils/preview";
// crudpresenter // crudpresenter
const defaultCrud = presenter( const defaultCrud = presenter(
CRUD({ CRUD({
title: '检验机构体系文件管理', title: "检验机构体系文件管理",
url: '/inspectionSystemFile/list', url: "/inspectionSystemFile/list",
orderBy: ['id desc'], orderBy: ["id desc"],
api: preview, api: preview,
crudMethod: { ...CrudDocumentArchives } crudMethod: { ...CrudDocumentArchives },
}) })
) );
export default { export default {
name: 'DocumentArchivesList', name: "DocumentArchivesList",
components: { Pagination, Query, CustomTable }, components: { Pagination, Query, CustomTable },
mixins: [defaultCrud, header()], mixins: [defaultCrud, header()],
data() { data() {
return { return {
action: this.preview.baseURL + '/inspectionSystemFile', action: this.preview.baseURL + "/inspectionSystemFile",
fileList: [], fileList: [],
colConfigs: [ colConfigs: [
{ prop: 'filename', label: '文件名', align: 'center' }, { prop: "filename", label: "文件名", align: "center" },
{ prop: 'createBy', label: '创建人', align: 'center', formatter: this.formatter.getChineseName },
{ prop: 'createTime', label: '创建时间', align: 'center' },
{ prop: 'updateBy', label: '更新人', align: 'center', formatter: this.formatter.getChineseName },
{ {
prop: 'updateTime', prop: "createBy",
label: '更新时间', label: "创建人",
align: 'center', align: "center",
formatter: this.formatter.formatterDepartmentName formatter: this.formatter.getChineseName,
}, },
{ slot: 'operation' } { prop: "createTime", label: "创建时间", align: "center" },
{
prop: "updateBy",
label: "更新人",
align: "center",
formatter: this.formatter.getChineseName,
},
{
prop: "updateTime",
label: "更新时间",
align: "center",
formatter: this.formatter.formatterDepartmentName,
},
{ slot: "operation" },
], ],
permission: { permission: {
add: ['documentArchives:add'], add: ["documentArchives:add"],
edit: ['documentArchives:update'], edit: ["documentArchives:update"],
del: ['documentArchives:delete'] del: ["documentArchives:delete"],
}, },
dialogTableVisible: false, dialogTableVisible: false,
params: { params: {
inspectionSystemFileId: '', inspectionSystemFileId: "",
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10,
}, },
gridData: [], gridData: [],
subTotal: 0, subTotal: 0,
url: process.env.VUE_APP_PREVIEW_API + process.env.VUE_APP_PROJECT_NAME + '/inspectionSystemFile' url:
} process.env.VUE_APP_PREVIEW_API +
}, process.env.VUE_APP_PROJECT_NAME +
mounted() { "/inspectionSystemFile",
};
}, },
mounted() {},
methods: { methods: {
handleRemove(file, fileList) { handleRemove(file, fileList) {
console.log(file, fileList) console.log(file, fileList);
}, },
handlePreview(file) { handlePreview(file) {
console.log(file) console.log(file);
}, },
checkHistory(row) { checkHistory(row) {
this.dialogTableVisible = true this.dialogTableVisible = true;
this.params.inspectionSystemFileId = row.id this.params.inspectionSystemFileId = row.id;
this.getSubList() this.getSubList();
}, },
getSubList() { getSubList() {
this.preview({ this.preview({
url: '/inspectionSystemFileLog/list', url: "/inspectionSystemFileLog/list",
method: 'get', method: "get",
params: this.params params: this.params,
}).then(res => { }).then((res) => {
this.gridData = res.list this.gridData = res.list;
this.subTotal = res.total this.subTotal = res.total;
}) });
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.params.pageNum = val this.params.pageNum = val;
this.getSubList() this.getSubList();
}, },
handleExceed(files, fileList) { handleExceed(files, fileList) {
this.$message.warning( this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${ `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length files.length + fileList.length
} 个文件` } 个文件`
) );
}, },
// EXCEL // EXCEL
beforeUpload(file) { beforeUpload(file) {
if (this.$refs.customTable.$refs.table.selection.length > 1) { if (this.$refs.customTable.$refs.table.selection.length > 1) {
this.$notify.warning('请选择单份体系文件进行更新上传!') this.$notify.warning("请选择单份体系文件进行更新上传!");
return false return false;
} }
const fd = new FormData() const fd = new FormData();
fd.append('file', file) fd.append("file", file);
if (this.$refs.customTable.$refs.table.selection.length) { if (this.$refs.customTable.$refs.table.selection.length) {
fd.append('id', this.$refs.customTable.$refs.table.selection[0].id) fd.append("id", this.$refs.customTable.$refs.table.selection[0].id);
updateInspectionSystemFile(fd).then(() => { updateInspectionSystemFile(fd).then(() => {
this.$notify.success('体系更新成功。') this.$notify.success("体系更新成功。");
this.crud.toQuery() this.crud.toQuery();
}) });
} else { } else {
uploadFileFn(fd).then(() => { uploadFileFn(fd).then(() => {
this.$notify.success('体系上传成功。') this.$notify.success("体系上传成功。");
this.crud.toQuery() this.crud.toQuery();
}) });
} }
return false return false;
}, },
downLoad(item) { downLoad(item) {
downloadFileUrl(this.url + '/' + item.id + item.suffix, item.filename, item.suffix) const data = this.url + "/" + item.id + item.suffix;
this.$router.push({
path:
"/preview/document?src=" +
this.$store.getters.prodName +
"/static/web/viewer.html?file=" +
encodeURIComponent(data),
});
}, },
viewHistoryFile(item) { viewHistoryFile(item) {
downloadFileUrl(this.url + '/' + item.inspectionSystemFileId + '_' + item.id + item.suffix, item.filename, item.suffix) downloadFileUrl(
this.url +
"/" +
item.inspectionSystemFileId +
"_" +
item.id +
item.suffix,
item.filename,
item.suffix
);
}, },
downLoadFn(item) { downLoadFn(item) {
download(this.url + '/' + item.id + item.suffix) const data = this.url + "/" + item.id + item.suffix;
download(data, item.filename);
}, },
beforeRemove(file, fileList) { beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`) return this.$confirm(`确定移除 ${file.name}`);
}, },
closeReportDialog() { closeReportDialog() {
this.$refs['reportForm'].resetFields() this.$refs["reportForm"].resetFields();
}, },
formatterFlowName(row, column, cellValue) { formatterFlowName(row, column, cellValue) {
switch (cellValue) { switch (cellValue) {
case 0: case 0:
return '保存' return "保存";
case 1: case 1:
return '更新' return "更新";
case 2: case 2:
return '删除' return "删除";
default: default:
break break;
} }
} },
} },
} };
</script> </script>
<style scoped> <style scoped>
.searchBox{ .searchBox {
margin-bottom: 20px; margin-bottom: 20px;
display: flex; display: flex;
} }
.upload-demo{ .upload-demo {
margin-left: 20px; margin-left: 20px;
width: 200px; width: 200px;
} }

11
src/views/preview/document.vue

@ -0,0 +1,11 @@
<template>
<preview />
</template>
<script>
import preview from '@/views/preview/common/index'
export default {
name: 'Document',
components: { preview }
}
</script>
Loading…
Cancel
Save