| | |
| | | <basic-container> |
| | | <div class="helpContainer"> |
| | | <el-table |
| | | class="custom-table" |
| | | border |
| | | class="custom-header" |
| | | :data="helpData" |
| | | style="width: 100%" |
| | | :row-class-name="tableRowClassName" |
| | |
| | | <el-table-column prop="levelTwoType" label="二级类别" /> |
| | | <el-table-column prop="uploadUser" label="上传者" /> |
| | | <el-table-column prop="createTime" label="上传时间" /> |
| | | <el-table-column label="操作" width="150" align="center"> |
| | | <template #default="scope"> |
| | | <span class="look" @click="clickDetail(scope.row)">查看</span> |
| | | <el-upload |
| | | style="display: inline-block" |
| | | :show-file-list="false" |
| | | :before-upload="(file) => onUploadFileBefore(file, scope.row)" |
| | | :limit="1" |
| | | accept=".pdf" |
| | | > |
| | | <span class="uploads" v-if="permission.helpCenterUpload">上传</span> |
| | | </el-upload> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="200" align="center"> |
| | | <template #default="scope"> |
| | | <div class="actionBar" > |
| | | <el-button |
| | | class="look" |
| | | icon="el-icon-view" |
| | | type="text" |
| | | @click="clickDetail(scope.row)" |
| | | v-if="permission.helpCenterLook" |
| | | > |
| | | 查看 |
| | | </el-button> |
| | | <el-upload |
| | | style="display: inline-block" |
| | | :show-file-list="false" |
| | | :before-upload="file => onUploadFileBefore(file, scope.row)" |
| | | :limit="1" |
| | | accept=".pdf" |
| | | > |
| | | <el-button |
| | | class="uploads" |
| | | icon="el-icon-upload" |
| | | type="text" |
| | | v-if="permission.helpCenterUpload" |
| | | > |
| | | 上传 |
| | | </el-button> |
| | | </el-upload> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </basic-container> |
| | |
| | | import { computed, onMounted } from 'vue'; |
| | | const helpData = ref([]); |
| | | |
| | | import { useStore } from 'vuex' |
| | | import { useStore } from 'vuex'; |
| | | const store = useStore(); |
| | | const permission = computed(() => store.state.user.permission); |
| | | const permission = computed(() => store.state.user.permission); |
| | | // 表格隔行变色 |
| | | const tableRowClassName = ({ row, rowIndex }) => { |
| | | if (rowIndex % 2 === 1) { |
| | |
| | | const getlistDataAPI = () => { |
| | | listDataAPI().then(res => { |
| | | helpData.value = res.data.data; |
| | | |
| | | }); |
| | | }; |
| | | // 查看 |
| | | const clickDetail = (val) => { |
| | | const filePath = val.filePath |
| | | if (!val.filePath) { |
| | | // const clickDetail = row => { |
| | | // if (!row.filePath) { |
| | | // ElMessage.warning('没有可预览的文件'); |
| | | // return; |
| | | // } |
| | | // fetch(row.filePath) |
| | | // .then(response => response.blob()) |
| | | // .then(res => { |
| | | // let blob = new Blob([res], { type: 'application/pdf' }); |
| | | // // pdfurl即转化后的结果 |
| | | // let pdfurl = window.URL.createObjectURL(blob); |
| | | // // 新标签页打开,即可预览并下载 |
| | | // window.open(pdfurl); |
| | | // }); |
| | | // }; |
| | | const clickDetail = val => { |
| | | const filePath = val.filePath; |
| | | if (!val.filePath) { |
| | | ElMessage.warning('没有可预览的文件'); |
| | | return; |
| | | } |
| | | window.open(filePath, '_blank'); |
| | | }; |
| | | // 文件上传 |
| | | const onUploadFileBefore = (file,row) => { |
| | | |
| | | const params={ |
| | | id:row.id, |
| | | filePath:row.filePath |
| | | } |
| | | const onUploadFileBefore = (file, row) => { |
| | | const fileFormat = file.name?.split('.')[1]; |
| | | if (fileFormat !== 'pdf') return ElMessage.error('请上传pdf格式的文件'); |
| | | const formData = new FormData(); |
| | | formData.append('file', file, file.name); |
| | | |
| | | uploadFileAPI(formData).then(res => { |
| | | if (res.data.code === 200) { |
| | | const params = { |
| | | id: row.id, |
| | | filePath: res.data.data.link, |
| | | }; |
| | | ElMessage.success('上传成功'); |
| | | updataDataAPI(params) |
| | | updataDataAPI(params); |
| | | } else { |
| | | ElMessage.error('上传失败'); |
| | | } |
| | | getlistDataAPI(); |
| | | getlistDataAPI(); |
| | | }); |
| | | }; |
| | | onMounted(() => { |
| | |
| | | </script> |
| | | <style lang="scss"> |
| | | .helpContainer { |
| | | .el-table .success-row { |
| | | --el-table-tr-bg-color: #fff; |
| | | } |
| | | .el-table .warning-row { |
| | | --el-table-tr-bg-color: #f3f6ff; |
| | | } |
| | | // .el-table .success-row { |
| | | // --el-table-tr-bg-color: #fff; |
| | | // } |
| | | // .el-table .warning-row { |
| | | // --el-table-tr-bg-color: #f3f6ff; |
| | | // } |
| | | } |
| | | </style> |
| | | <style scoped lang="scss"> |
| | |
| | | .helpContainer { |
| | | height: 100%; |
| | | .look { |
| | | font-family: Source Han Sans CN, Source Han Sans CN; |
| | | color: #1c5cff; |
| | | // font-family: Source Han Sans CN, Source Han Sans CN; |
| | | // color: #1c5cff; |
| | | cursor: pointer; |
| | | margin-right: 15px; |
| | | font-size: 14px; |
| | | // font-size: 14px; |
| | | } |
| | | .uploads { |
| | | font-family: Source Han Sans CN, Source Han Sans CN; |
| | | font-weight: 400; |
| | | font-size: 14px; |
| | | color: #19876d; |
| | | // font-family: Source Han Sans CN, Source Han Sans CN; |
| | | // font-weight: 400; |
| | | // font-size: 14px; |
| | | // color: #19876d; |
| | | cursor: pointer; |
| | | |
| | | } |
| | | .actionBar { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | gap: 8px; |
| | | } |
| | | :deep(.custom-header th.el-table__cell) { |
| | | color: rgba(0, 0, 0, 0.85); |
| | | background: #fafafa; |
| | | |
| | | } |
| | | } |
| | | </style> |