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 request from '@/utils/request' |
||||
import qs from 'qs' |
import qs from 'qs' |
||||
|
|
||||
export function FetchInitCategoryView(params) { |
|
||||
|
// 根据门类父id获取卷内列表列
|
||||
|
export function FetchInitCategoryViewTable(params) { |
||||
return request({ |
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({ |
return request({ |
||||
url: 'api/collect/editArchives', |
|
||||
method: 'post', |
|
||||
data |
|
||||
|
url: 'api/control/initCategoryView' + '?' + qs.stringify(params, { indices: false }), |
||||
|
method: 'get' |
||||
}) |
}) |
||||
} |
} |
||||
|
|
||||
export default { |
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