xuhuajiao
1 year ago
21 changed files with 1551 additions and 258 deletions
-
39src/api/archivesManage/bindTagList.js
-
19src/api/archivesManage/caseManage.js
-
18src/api/archivesManage/library.js
-
20src/assets/styles/archives-manage.scss
-
87src/views/archiveUtilize/archiveEditing/module/material.vue
-
394src/views/archiveUtilize/archiveEditing/module/materialSelected.vue
-
78src/views/archivesManage/managementLibrary/anjuan/tableList.vue
-
4src/views/archivesManage/managementLibrary/index.vue
-
63src/views/archivesManage/managementLibrary/juannei/index.vue
-
5src/views/archivesManage/managementLibrary/mixins/index.js
-
184src/views/archivesManage/managementLibrary/module/collectHeader.vue
-
263src/views/archivesManage/managementLibrary/module/packingBox/index.vue
-
3src/views/archivesManage/recycled/index.vue
-
106src/views/components/BindingTagDlg.vue
-
275src/views/components/archivesDetail/archivesInfo/index.vue
-
119src/views/components/archivesDetail/fourTestInfo/index.vue
-
81src/views/components/archivesDetail/handleInfo/index.vue
-
37src/views/components/archivesDetail/uploadFile/index.vue
-
10src/views/components/category/PreviewForm.vue
-
2src/views/system/role/index.vue
-
2src/views/system/user/index.vue
@ -0,0 +1,39 @@ |
|||
import request from '@/utils/request' |
|||
|
|||
// 标签列表
|
|||
export function initTagList(parameter) { |
|||
return request({ |
|||
url: 'api/archivesDeposit/initTagList', |
|||
method: 'get', |
|||
params: parameter |
|||
}) |
|||
} |
|||
|
|||
// 绑定标签
|
|||
export function bingdingLabel(data) { |
|||
return request({ |
|||
url: 'api/archivesDeposit/bingdingLabel', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
|
|||
// 解绑标签
|
|||
export function unbindTag(data) { |
|||
return request({ |
|||
url: 'api/archivesDeposit/unbindTag', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
|
|||
// 签使用列表
|
|||
export function initTagLogList(parameter) { |
|||
return request({ |
|||
url: 'api/archivesDeposit/initTagLogList', |
|||
method: 'get', |
|||
params: parameter |
|||
}) |
|||
} |
|||
|
|||
export default { initTagList, bingdingLabel, unbindTag, initTagLogList } |
@ -1,21 +1,23 @@ |
|||
import request from '@/utils/request' |
|||
import qs from 'qs' |
|||
|
|||
export function FetchInitCategoryView(params) { |
|||
// 根据门类父id获取卷内列表列
|
|||
export function FetchInitCategoryViewTable(params) { |
|||
return request({ |
|||
url: 'api/collect/initCategoryView' + '?' + qs.stringify(params, { indices: false }), |
|||
method: 'get' |
|||
url: 'api/collect/initCategoryViewTable', |
|||
method: 'get', |
|||
params |
|||
}) |
|||
} |
|||
|
|||
export function collectEdit(data) { |
|||
export function FetchInitCategoryView(params) { |
|||
return request({ |
|||
url: 'api/collect/editArchives', |
|||
method: 'post', |
|||
data |
|||
url: 'api/control/initCategoryView' + '?' + qs.stringify(params, { indices: false }), |
|||
method: 'get' |
|||
}) |
|||
} |
|||
|
|||
export default { |
|||
collectEdit |
|||
FetchInitCategoryViewTable, |
|||
FetchInitCategoryView |
|||
} |
@ -0,0 +1,394 @@ |
|||
<template> |
|||
<!-- 素材选择 --> |
|||
<el-dialog class="collectMoveFile-dialog" title="素材选择" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="collectMoveFileVisible" :before-close="handleCloseDialog" @open="open"> |
|||
<div class="collectMove-main"> |
|||
<div class="collectMove-left"> |
|||
<CategoryTree ref="categoryTree" @nodeClick="handleNodeClick" /> |
|||
</div> |
|||
<div class="collectMove-right"> |
|||
<div class="collectMove-header"> |
|||
<div v-if="currentCategory && currentCategory.arrangeType===3" class="detail-tab tab-content"> |
|||
<ul class="tab-nav"> |
|||
<li :class="{'active-tab-nav': tabIndex == 0}" @click="changeActiveTab(0)">项目列表</li> |
|||
<li :class="{'active-tab-nav': tabIndex == 1}" @click="changeActiveTab(1)">案卷列表</li> |
|||
</ul> |
|||
</div> |
|||
<div class="head-search"> |
|||
<el-input v-model="query.search" clearable size="small" placeholder="输入题名或档号搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="getViewTableList" @clear="getViewTableList" /> |
|||
<el-button class="filter-item filter-search" style="margin: 0 10px;" size="mini" type="success" icon="el-icon-search" @click="getViewTableList">搜索</el-button> |
|||
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置</el-button> |
|||
</div> |
|||
</div> |
|||
<div class="table-list"> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="loading" |
|||
lazy |
|||
:data="tableData" |
|||
style="width: 100%;" |
|||
height="calc(100%)" |
|||
:row-key="getRowKey" |
|||
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" |
|||
highlight-current-row |
|||
@selection-change="selectionChangeHandler" |
|||
@row-click="clickRowHandler" |
|||
> |
|||
<el-table-column type="selection" align="center" width="55" /> |
|||
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip> |
|||
<template slot="header"> |
|||
<el-tooltip |
|||
class="item" |
|||
effect="dark" |
|||
:content="field.fieldCnName" |
|||
placement="top-start" |
|||
> |
|||
<span>{{ field.fieldCnName }}</span> |
|||
</el-tooltip> |
|||
</template> |
|||
<template slot-scope="scope"> |
|||
{{ scope.row[field.fieldName] }} |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<el-pagination |
|||
v-if="tableData.length !== 0" |
|||
:current-page="page.page" |
|||
:total="page.total" |
|||
:page-size="page.size" |
|||
:pager-count="5" |
|||
layout="total, prev, pager, next, sizes" |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentPage" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button type="text" @click="handleCloseDialog">取消</el-button> |
|||
<!-- collectLevel===2 --> |
|||
<el-button type="primary" :disabled="currentCategory&¤tCategory.arrangeType===3&&moveSelections.length===0" @click.native="handleComfireCollectMoveFile">确定</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import CategoryTree from '@/views/components/categoryTree' |
|||
// FetchMove |
|||
import { FetchInitCategoryViewTable, FetchInitCategoryView } from '@/api/collect/collect' |
|||
export default { |
|||
name: 'CollectMoveFile', |
|||
components: { CategoryTree }, |
|||
props: {}, |
|||
data() { |
|||
return { |
|||
query: { |
|||
search: null |
|||
}, |
|||
currentCategory: null, |
|||
currentLevel: null, |
|||
collectMoveFileVisible: false, |
|||
toCategoryLevel: null, |
|||
loading: false, |
|||
arrySort: [], |
|||
tableData: [], |
|||
tableDisplayFields: [], |
|||
moveSelections: [], |
|||
page: { |
|||
page: 1, |
|||
size: 10, |
|||
total: 0 |
|||
}, |
|||
moveFile: true, |
|||
isReserve: false, |
|||
tabIndex: 0 |
|||
} |
|||
}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
resetQuery() { |
|||
this.query.search = null |
|||
this.getViewTableList() |
|||
}, |
|||
getRowKey(row) { |
|||
return row.id |
|||
}, |
|||
handleNodeClick(data) { |
|||
if (data) { |
|||
this.currentCategory = data |
|||
if (this.currentCategory.isType !== 1) { |
|||
this.getViewTable() |
|||
} else { |
|||
this.tableDisplayFields = [] |
|||
this.tableData = [] |
|||
} |
|||
} |
|||
}, |
|||
open() { |
|||
if (this.currentCategory) { |
|||
this.getViewTable() |
|||
} |
|||
}, |
|||
getViewTable() { |
|||
this.loading = true |
|||
this.tableDisplayFields = [] |
|||
if (this.currentCategory.arrangeType === 1) { |
|||
this.currentLevel = 3 |
|||
} else if (this.currentCategory.arrangeType === 2) { |
|||
this.currentLevel = 2 |
|||
} else { |
|||
if (this.tabIndex === 1) { |
|||
this.currentLevel = 2 |
|||
} else { |
|||
this.currentLevel = 1 |
|||
} |
|||
} |
|||
FetchInitCategoryViewTable({ categoryId: this.currentCategory.id, categoryLevel: this.currentLevel }).then((res) => { |
|||
if (res) { |
|||
this.arrySort = [] |
|||
this.tableDisplayFields = res |
|||
const orderSortArry = this.tableDisplayFields.filter(item => item.displayOrder).sort((a, b) => a.displayOrder - b.displayOrder) |
|||
orderSortArry.forEach(item => { |
|||
if (item.displayOrderBy) { |
|||
this.arrySort.push(item.fieldName + ',' + item.displayOrderBy) |
|||
} |
|||
}) |
|||
this.$nextTick(() => { |
|||
this.getViewTableList() |
|||
}) |
|||
this.loading = false |
|||
} |
|||
}) |
|||
}, |
|||
getViewTableList() { |
|||
this.tableData = [] |
|||
this.loading = true |
|||
const params = { |
|||
'categoryId': this.currentCategory.id, |
|||
'categoryLevel': this.currentLevel, |
|||
'search': this.query.search, |
|||
'page': this.page.page - 1, |
|||
'size': this.page.size |
|||
} |
|||
FetchInitCategoryView(params).then((res) => { |
|||
console.log(res) |
|||
if (res.code !== 500) { |
|||
this.tableData = res.list.content |
|||
this.page.total = res.list.totalElements |
|||
} |
|||
this.loading = false |
|||
}) |
|||
}, |
|||
changeActiveTab(data) { |
|||
this.tabIndex = data |
|||
this.getViewTable() |
|||
this.moveSelections = [] |
|||
}, |
|||
clickRowHandler(row) { |
|||
this.moveSelections = [] |
|||
this.$refs.table.clearSelection() |
|||
this.$refs.table.toggleRowSelection(row) |
|||
// this.moveSelections.push(row) |
|||
}, |
|||
selectionChangeHandler(selection, row) { |
|||
this.moveSelections = selection |
|||
}, |
|||
handleComfireCollectMoveFile() { |
|||
// if (this.moveSelections.length > 1) { |
|||
// this.$message('该操作只可勾选唯一目标条目,请先确认!') |
|||
// return false |
|||
// } |
|||
// if (this.currentCategory.arrangeType === 1) { |
|||
// this.toCategoryLevel = 3 |
|||
// } else if (this.currentCategory.arrangeType === 2) { |
|||
// this.toCategoryLevel = 2 |
|||
// } else { |
|||
// if (this.collectLevel === 3) { |
|||
// if (this.moveSelections.length === 0) { |
|||
// this.toCategoryLevel = 3 |
|||
// } else { |
|||
// if (this.tabIndex === 1) { |
|||
// this.toCategoryLevel = 2 |
|||
// } else { |
|||
// this.toCategoryLevel = 3 |
|||
// } |
|||
// } |
|||
// } else { |
|||
// if (this.tabIndex === 1) { |
|||
// this.toCategoryLevel = 2 |
|||
// } else { |
|||
// this.toCategoryLevel = 1 |
|||
// } |
|||
// } |
|||
// } |
|||
// if (this.collectLevel === 2) { |
|||
// if (this.toCategoryLevel === 3) { |
|||
// this.$message('案卷级的案卷不可移动到文件级,请先确认!') |
|||
// return false |
|||
// } |
|||
// } |
|||
// if (this.selectedCategory.id === this.currentCategory.id) { |
|||
// this.$message('正在移动的档案只可移动到其他位置,不可选择本身!') |
|||
// return false |
|||
// } |
|||
// const archivesIds = this.selections.map(item => item.id) |
|||
// // const toArchivesIds = this.moveSelections.map(item => item.id) |
|||
// let toArchivesId |
|||
// if (this.moveSelections.length === 0) { |
|||
// toArchivesId = null |
|||
// } else { |
|||
// if (this.collectLevel === 3) { |
|||
// console.log('this.tabIndex66', this.tabIndex) |
|||
// if (this.tabIndex === 1) { |
|||
// toArchivesId = this.moveSelections[0].id |
|||
// } else { |
|||
// if (this.selectedCategory.arrangeType === 1) { |
|||
// toArchivesId = this.moveSelections[0].id |
|||
// } else { |
|||
// toArchivesId = null |
|||
// } |
|||
// } |
|||
// } else { |
|||
// toArchivesId = this.moveSelections[0].id |
|||
// } |
|||
// } |
|||
// const params = { |
|||
// 'reserve': this.isReserve, // 是否保留原条目 true 保留 false 删除 |
|||
// 'categoryId': this.selectedCategory.id, // 需要移动的门类总id |
|||
// 'categoryLevel': this.collectLevel, // 需要移动的门类级别 |
|||
// 'archivesIds': archivesIds, // 需要移动的档案id集合 |
|||
// 'toCategoryId': this.currentCategory.id, // 移动到的门类id |
|||
// 'toCategoryLevel': this.toCategoryLevel, // 移动到的门类级别 |
|||
// 'toArchivesId': toArchivesId // 移动到的档案id (选填) |
|||
// } |
|||
// console.log(params) |
|||
// FetchMove(params).then((res) => { |
|||
// console.log(res) |
|||
// if (res.code !== 500) { |
|||
// this.$message.success('移动成功') |
|||
// this.$emit('close-dialog') |
|||
// } else { |
|||
// this.$message.error('移动失败') |
|||
// } |
|||
// this.handleCloseDialog() |
|||
// }) |
|||
}, |
|||
handleSizeChange(size) { |
|||
this.page.size = size |
|||
this.page.page = 1 |
|||
this.getViewTableList() |
|||
}, |
|||
handleCurrentPage(val) { |
|||
this.page.page = val |
|||
this.getViewTableList() |
|||
}, |
|||
handleCloseDialog(done) { |
|||
// 重置表单数据 |
|||
this.query.search = null |
|||
this.tableDisplayFields = [] |
|||
this.tableData = [] |
|||
this.$refs.table.clearSelection() |
|||
this.moveSelections = [] |
|||
this.collectMoveFileVisible = false |
|||
this.isReserve = false |
|||
// 关闭弹框 |
|||
// done() |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang='scss' scoped> |
|||
.collectMoveFile-dialog{ |
|||
::v-deep .el-dialog{ |
|||
width: 1000px; |
|||
.search-btn-box{ |
|||
.el-button{ |
|||
margin-left: 10px; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.collectMove-main{ |
|||
display: flex; |
|||
justify-content: space-between; |
|||
width: 100%; |
|||
height: 557px; |
|||
border: 1px solid #E6E8ED; |
|||
.collectMove-left{ |
|||
width: 260px; |
|||
overflow: hidden; |
|||
overflow-y: scroll; |
|||
.elect-cont-left{ |
|||
width: auto !important; |
|||
margin-right: 0 !important; |
|||
} |
|||
::v-deep .container-left{ |
|||
min-height: calc(100%) !important; |
|||
} |
|||
} |
|||
.collectMove-right{ |
|||
width: calc(100% - 260px); |
|||
flex: 1; |
|||
border-left: 1px solid #E6E8ED; |
|||
.head-search{ |
|||
// padding: 0 20px 0 0; |
|||
flex: 1; |
|||
justify-content: flex-end; |
|||
margin-bottom: 0; |
|||
} |
|||
.table-list{ |
|||
height: 440px; |
|||
border-bottom: 1px solid #E6E8ED; |
|||
.el-pagination{ |
|||
margin: 15px 0 !important; |
|||
} |
|||
} |
|||
.move-checked{ |
|||
display: flex; |
|||
justify-content: flex-start; |
|||
padding: 0 30px; |
|||
height: 42px; |
|||
line-height: 42px; |
|||
.checkbox-style{ |
|||
font-size: 14px; |
|||
color: #0C0E1E; |
|||
margin-right: 30px; |
|||
} |
|||
.el-checkbox{ |
|||
margin-right: 20px; |
|||
::v-deep .el-checkbox__input.is-disabled .el-checkbox__inner{ |
|||
border-color: #0348f3; |
|||
background-color: #0348f3; |
|||
} |
|||
::v-deep .el-checkbox__label{ |
|||
opacity: 0; |
|||
margin-left: -100px; |
|||
padding-left: 0; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.collectMove-header{ |
|||
display: flex; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
padding: 20px 20px 20px 0; |
|||
.detail-tab .tab-nav{ |
|||
margin: 0; |
|||
border-bottom: none; |
|||
} |
|||
.detail-tab .tab-nav li{ |
|||
margin-right: 20px; |
|||
} |
|||
.detail-tab .tab-nav li.active-tab-nav{ |
|||
padding-bottom: 0; |
|||
} |
|||
} |
|||
.dialog-footer{ |
|||
margin-top: 20px; |
|||
} |
|||
</style> |
@ -0,0 +1,275 @@ |
|||
<template> |
|||
<el-dialog class="detail-dialog" :title="detailTitle" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="archivesInfoVisible" :before-close="handleClose"> |
|||
<!-- <span class="dialog-right-top" /> |
|||
<span class="dialog-left-bottom" /> --> |
|||
<div class="setting-dialog"> |
|||
<div class="detail-tab tab-content"> |
|||
<!-- tab --> |
|||
<ul class="tab-nav"> |
|||
<li :class="{'active-tab-nav': archivesTabIndex == 0}" @click="changeActiveTab(0)">基本信息</li> |
|||
<li v-if="isHasFile" :class="{'active-tab-nav': archivesTabIndex == 1}" @click="changeActiveTab(1)">原文列表</li> |
|||
<li v-if="!isHasFile && isTitleType === 3" :class="{'active-tab-nav': archivesTabIndex == 5}" @click="changeActiveTab(5)">文件列表</li> |
|||
<li v-if="!isHasFile && isTitleType === 2" :class="{'active-tab-nav': archivesTabIndex == 5}" @click="changeActiveTab(5)">案卷列表</li> |
|||
<li :class="{'active-tab-nav': archivesTabIndex == 2}" @click="changeActiveTab(2)">元数据</li> |
|||
<li v-if="isFourTest" :class="{'active-tab-nav': archivesTabIndex == 3}" @click="changeActiveTab(3)">四性检测</li> |
|||
<li v-if="isFourTest && isHasFile" :class="{'active-tab-nav': archivesTabIndex == 4}" @click="changeActiveTab(4)">操作记录</li> |
|||
</ul> |
|||
<!-- 基本信息 --> |
|||
<div v-if="archivesTabIndex==0" class="base-info item-content"> |
|||
<el-row> |
|||
<el-col v-for="(item,index) in archivesDetailsData" :key="index" :span="item.isLine ? 24 : 12" class="base-info-item"> |
|||
<span>{{ item.fieldCnName }}:</span> |
|||
<p :style="{ width: ( item.editLength ? item.editLength+'px' : '' ), flex: ( !item.editLength ? 1 : '' )}">{{ item.context }}</p> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
<!-- 附件 --> |
|||
<UploadFile v-if="archivesTabIndex==1" ref="uploadFile" class="item-content" :is-upload-detail="false" :selected-category="selectedCategory" :arc-id="arcId" /> |
|||
<!-- 元数据 --> |
|||
<div v-if="archivesTabIndex==2" class="metadata-cont item-content"> |
|||
<pre v-highlightjs="xml_show"> |
|||
<code class="highlight_s"> |
|||
{[xml_show]} |
|||
</code> |
|||
</pre> |
|||
</div> |
|||
<FourTestInfo v-if="archivesTabIndex===3" /> |
|||
<HandleInfo v-if="archivesTabIndex===4" /> |
|||
<ArchivesListModule v-show="archivesTabIndex===5" ref="archivesListModuleRef" :selected-category="selectedCategory" :is-title-type="isTitleType" /> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import { form } from '@crud/crud' |
|||
import { FetchDetailsById, FetchArchivesMetadata } from '@/api/collect/collect' |
|||
import UploadFile from '../uploadFile/index' |
|||
import FourTestInfo from '../fourTestInfo/index' |
|||
import HandleInfo from '../handleInfo/index' |
|||
export default { |
|||
name: 'ArchivesInfo', |
|||
components: { UploadFile, FourTestInfo, HandleInfo }, |
|||
mixins: [ |
|||
form({}) |
|||
], |
|||
props: { |
|||
selectedCategory: { |
|||
type: Object, |
|||
default: function() { |
|||
return {} |
|||
} |
|||
}, |
|||
arcId: { |
|||
type: String, |
|||
default: function() { |
|||
return '' |
|||
} |
|||
}, |
|||
isTitleType: { |
|||
type: Number, |
|||
default: 2 |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
detailTitle: '', |
|||
isHasFile: false, // 卷内/文件才有附件 |
|||
isFourTest: false, |
|||
isDetailsInfo: false, // 项目不显示最下面5行基本信息 |
|||
archivesInfoVisible: false, |
|||
archivesTabIndex: 0, |
|||
archivesDetailsData: [], |
|||
archivesDetailsMetadata: [], |
|||
xml_show: null |
|||
} |
|||
}, |
|||
created() { |
|||
}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
getDetial(collectLevel, rowId) { |
|||
const params = { |
|||
'categoryId': this.selectedCategory.id, |
|||
'categoryLevel': collectLevel, |
|||
'id': rowId |
|||
} |
|||
FetchDetailsById(params).then(data => { |
|||
this.archivesDetailsData = data.showFiled |
|||
.filter(field => field.fieldName in data.echo) |
|||
.map(field => ({ |
|||
editLength: field.editLength, |
|||
isLine: field.isLine, |
|||
fieldCnName: field.fieldCnName, |
|||
fieldName: field.fieldName, |
|||
context: data.echo[field.fieldName] |
|||
})) |
|||
}) |
|||
const metaDataParams = { |
|||
'categoryId': this.selectedCategory.id, |
|||
'categoryLevel': collectLevel, |
|||
'archivesId': rowId |
|||
} |
|||
FetchArchivesMetadata(metaDataParams).then(data => { |
|||
this.archivesDetailsMetadata = data |
|||
}) |
|||
}, |
|||
setXml() { |
|||
const xmlstr = this.archivesDetailsMetadata |
|||
this.xml_show = this.showXml(xmlstr) |
|||
}, |
|||
changeActiveTab(index) { |
|||
this.archivesTabIndex = index |
|||
if (this.archivesTabIndex === 2) { |
|||
this.setXml() |
|||
} else if (this.archivesTabIndex === 5) { |
|||
if (this.isTitleType === 2) { |
|||
this.$refs.archivesListModuleRef.detailLevel = 2 |
|||
} else if (this.isTitleType === 3) { |
|||
this.$refs.archivesListModuleRef.detailLevel = 3 |
|||
} else { |
|||
this.$refs.archivesListModuleRef.detailLevel = 4 |
|||
} |
|||
this.$refs.archivesListModuleRef.parentId = this.arcId |
|||
this.$refs.archivesListModuleRef.isDetail = true |
|||
this.$refs.archivesListModuleRef.getViewTable() |
|||
} |
|||
this.$nextTick(() => { |
|||
if (this.$refs.uploadFile) { |
|||
this.$refs.uploadFile.tableData = [] |
|||
this.$refs.uploadFile.getFileList() |
|||
} |
|||
}) |
|||
}, |
|||
// 删除 - 关闭 |
|||
handleClose(done) { |
|||
this.archivesInfoVisible = false |
|||
localStorage.removeItem('collectLevelList') |
|||
done() |
|||
}, |
|||
// xml格式化 |
|||
showXml(str) { |
|||
var that = this |
|||
var text = str |
|||
// 去掉多余的空格 |
|||
text = |
|||
'\n' + |
|||
text |
|||
.replace(/(<\w+)(\s.*?>)/g, function($0, name, props) { |
|||
return name + ' ' + props.replace(/\s+(\w+=)/g, ' $1') |
|||
}) |
|||
.replace(/>\s*?</g, '>\n<') |
|||
// 把注释编码 |
|||
text = text |
|||
.replace(/\n/g, '\r') |
|||
.replace(/<!--(.+?)-->/g, function($0, text) { |
|||
var ret = '<!--' + escape(text) + '-->' |
|||
return ret |
|||
}) |
|||
.replace(/\r/g, '\n') |
|||
|
|||
// 调整格式 |
|||
var rgx = /\n(<(([^\?]).+?)(?:\s|\s*?>|\s*?(\/)>)(?:.*?(?:(?:(\/)>)|(?:<(\/)\2>)))?)/gm |
|||
var nodeStack = [] |
|||
var output = text.replace(rgx, function( |
|||
$0, |
|||
all, |
|||
name, |
|||
isBegin, |
|||
isCloseFull1, |
|||
isCloseFull2, |
|||
isFull1, |
|||
isFull2 |
|||
) { |
|||
var isClosed = |
|||
isCloseFull1 === '/' || |
|||
isCloseFull2 === '/' || |
|||
isFull1 === '/' || |
|||
isFull2 === '/' |
|||
var prefix = '' |
|||
if (isBegin === '!') { |
|||
prefix = that.getPrefix(nodeStack.length) |
|||
} else { |
|||
if (isBegin !== '/') { |
|||
prefix = that.getPrefix(nodeStack.length) |
|||
if (!isClosed) { |
|||
nodeStack.push(name) |
|||
} |
|||
} else { |
|||
nodeStack.pop() |
|||
prefix = that.getPrefix(nodeStack.length) |
|||
} |
|||
} |
|||
var ret = '\n' + prefix + all |
|||
return ret |
|||
}) |
|||
var outputText = output.substring(1) |
|||
// 把注释还原并解码,调格式 |
|||
outputText = outputText |
|||
.replace(/\n/g, '\r') |
|||
.replace(/(\s*)<!--(.+?)-->/g, function($0, prefix, text) { |
|||
if (prefix.charAt(0) === '\r') prefix = prefix.substring(1) |
|||
text = unescape(text).replace(/\r/g, '\n') |
|||
var ret = |
|||
'\n' + prefix + '<!--' + text.replace(/^\s*/gm, prefix) + '-->' |
|||
return ret |
|||
}) |
|||
outputText = outputText.replace(/\s+$/g, '').replace(/\r/g, '\r\n') |
|||
return outputText |
|||
}, |
|||
getPrefix(prefixIndex) { |
|||
var span = ' ' |
|||
var output = [] |
|||
for (var i = 0; i < prefixIndex; ++i) { |
|||
output.push(span) |
|||
} |
|||
return output.join('') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.base-info, |
|||
.metadata-cont{ |
|||
background-color: #F6F8FC; |
|||
|
|||
} |
|||
// 档案详情 |
|||
.base-info{ |
|||
padding: 20px 0; |
|||
overflow: hidden; |
|||
overflow-y: scroll; |
|||
.base-info-item{ |
|||
display: flex; |
|||
flex-direction: row; |
|||
margin-bottom: 20px; |
|||
color: #545B65; |
|||
span{ |
|||
display: block; |
|||
width: 120px; |
|||
margin-right: 5px; |
|||
text-align: right; |
|||
color: #0C0E1E; |
|||
} |
|||
} |
|||
} |
|||
|
|||
code.hljs { |
|||
font-size: 12px; |
|||
color: #0C0E1E !important; |
|||
height: 530px !important; |
|||
} |
|||
::v-deep .hljs-name{ |
|||
color: #0C0E1E !important; |
|||
} |
|||
.base-info .base-info-item span.el-tag{ |
|||
width: auto; |
|||
color: #fff; |
|||
} |
|||
|
|||
.detail-tab .tab-nav{ |
|||
margin: 10px 0 18px 0; |
|||
} |
|||
</style> |
@ -0,0 +1,119 @@ |
|||
<template> |
|||
<!--四性检测-档案详情内--> |
|||
<div class="fourTest-container"> |
|||
<el-table :data="tableData" style="min-width: 100%" height="calc(100vh - 440px)"> |
|||
<el-table-column prop="admin" label="检测人" min-width="60" /> |
|||
<el-table-column prop="createTime" label="检测时间" min-width="180"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.createTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="truth" label="真实性" align="center"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.truth===1" class="four-icon iconfont icon-zhengque" /> |
|||
<span v-else class="four-icon iconfont icon-cuowu" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="integrity" label="完整性" align="center"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.integrity===1" class="four-icon iconfont icon-zhengque" /> |
|||
<span v-else class="four-icon iconfont icon-cuowu" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="availability" label="可用性" align="center"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.availability===1" class="four-icon iconfont icon-zhengque" /> |
|||
<span v-else class="four-icon iconfont icon-cuowu" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="safety" label="安全性" align="center"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.safety===1" class="four-icon iconfont icon-zhengque" /> |
|||
<span v-else class="four-icon iconfont icon-cuowu" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="createDate" label="检测结果" min-width="220"> |
|||
<template slot-scope="scope"> |
|||
<div>共检测{{ scope.row.totalNum }}项,<span class="testSuccess">通过{{ scope.row.successNum }}条</span>,<span class="testError">未通过{{ scope.row.errorNum }}条</span></div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<el-pagination |
|||
:current-page="page.page" |
|||
:total="page.total" |
|||
:page-size="page.size" |
|||
:pager-count="5" |
|||
layout="total, prev, pager, next, sizes" |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentPage" |
|||
/> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
const data = [ |
|||
{ |
|||
'id': '005E76FEC5A2AAB368CA1F', |
|||
'admin': 'admin', |
|||
'archive_no': 'YXK-2022-JJ-001 ', |
|||
'maintitle': '文书档案001', |
|||
'createTime': 1660706815000, |
|||
'truth': 0, |
|||
'integrity': 1, |
|||
'availability': 0, |
|||
'safety': 0, |
|||
'totalNum': 5, |
|||
'successNum': 1, |
|||
'errorNum': 0 |
|||
}, |
|||
{ |
|||
'id': '005E76FEC5A2AAB368CA1F2', |
|||
'admin': 'admin', |
|||
'archive_no': 'YXK-2022-JJ-002 ', |
|||
'maintitle': '文书档案001', |
|||
'createTime': 1660706815000, |
|||
'truth': 0, |
|||
'integrity': 1, |
|||
'availability': 1, |
|||
'safety': 0, |
|||
'totalNum': 5, |
|||
'successNum': 1, |
|||
'errorNum': 0 |
|||
} |
|||
] |
|||
export default { |
|||
name: 'FourTestInfo', |
|||
components: { }, |
|||
mixins: [], |
|||
data() { |
|||
return { |
|||
tableData: [{}, {}], |
|||
page: { |
|||
page: 1, |
|||
size: 10, |
|||
total: 0 |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
|
|||
}, |
|||
mounted() { |
|||
this.tableData = data |
|||
}, |
|||
methods: { |
|||
handleSizeChange(size) { |
|||
this.page.size = size |
|||
this.page.page = 1 |
|||
}, |
|||
handleCurrentPage(val) { |
|||
this.page.page = val |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang='scss' scoped> |
|||
@import "~@/assets/styles/collect-reorganizi.scss"; |
|||
</style> |
@ -0,0 +1,81 @@ |
|||
<template> |
|||
<!--档案详情-操作记录--> |
|||
<div class="fourTest-container"> |
|||
<el-table :data="tableData" style="min-width: 100%" height="calc(100vh - 440px)"> |
|||
<el-table-column prop="type" label="操作类型" min-width="60" /> |
|||
<el-table-column prop="isAgree" label="处理意见" min-width="60" /> |
|||
<el-table-column prop="admin" label="处理人" min-width="60" /> |
|||
<el-table-column prop="createTime" label="处理时间" min-width="180"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.createTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="remark" label="备注" min-width="60" /> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<el-pagination |
|||
:current-page="page.page" |
|||
:total="page.total" |
|||
:page-size="page.size" |
|||
:pager-count="5" |
|||
layout="total, prev, pager, next, sizes" |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentPage" |
|||
/> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
const data = [ |
|||
{ |
|||
'id': '005E76FEC5A2AAB368CA1F', |
|||
'admin': 'admin', |
|||
'type': '预归档新增', |
|||
'isAgree': '同意', |
|||
'createTime': 1660706815000, |
|||
'remark': '' |
|||
}, |
|||
{ |
|||
'id': '005E76FEC5A2AAB368CA1F2', |
|||
'admin': 'admin', |
|||
'type': '装盒', |
|||
'isAgree': '拒绝', |
|||
'createTime': 1660706815000, |
|||
'remark': '' |
|||
} |
|||
] |
|||
export default { |
|||
name: 'HandleInfo', |
|||
components: { }, |
|||
mixins: [], |
|||
data() { |
|||
return { |
|||
tableData: [{}, {}], |
|||
page: { |
|||
page: 1, |
|||
size: 10, |
|||
total: 0 |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
|
|||
}, |
|||
mounted() { |
|||
this.tableData = data |
|||
}, |
|||
methods: { |
|||
handleSizeChange(size) { |
|||
this.page.size = size |
|||
this.page.page = 1 |
|||
}, |
|||
handleCurrentPage(val) { |
|||
this.page.page = val |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang='scss' scoped> |
|||
@import "~@/assets/styles/collect-reorganizi.scss"; |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue