z_yu 3 years ago
parent
commit
38afecf172
  1. 3
      package.json
  2. 118
      src/assets/styles/archives-manage.scss
  3. 3
      src/main.js
  4. 8
      src/views/archivesManage/archivesCheck/data1.json
  5. 59
      src/views/archivesManage/archivesCheck/index.vue
  6. 86
      src/views/archivesManage/archivesCheck/module/checkDetail.vue
  7. 179
      src/views/archivesManage/archivesList/archivesDetail.vue
  8. 90
      src/views/archivesManage/archivesList/module/archivesInfo.vue
  9. 109
      src/views/archivesManage/archivesList/module/packing.vue
  10. 136
      src/views/archivesManage/archivesList/module/uploadFile.vue
  11. 29
      src/views/archivesManage/lendManage/borrowerManage/index.vue
  12. 247
      src/views/archivesManage/lendManage/data2.json
  13. 247
      src/views/archivesManage/lendManage/data3.json
  14. 78
      src/views/archivesManage/lendManage/lendConfirm/index.vue
  15. 42
      src/views/archivesManage/lendManage/lendConfirm/module/archiveDetail.vue
  16. 59
      src/views/archivesManage/lendManage/lendConfirm/module/lendDialog.vue
  17. 42
      src/views/archivesManage/lendManage/lendQuery/index.vue
  18. 29
      src/views/archivesManage/lendManage/returnArchives/index.vue
  19. 54
      src/views/archivesManage/lendManage/toLend/index.vue
  20. 4
      src/views/archivesManage/lendManage/toLend/module/archiveDetail.vue
  21. 19
      src/views/components/category/PreviewForm.vue

3
package.json

@ -38,6 +38,7 @@
"element-ui": "^2.15.6",
"file-saver": "1.3.8",
"fuse.js": "3.4.4",
"highlight.js": "^11.5.1",
"js-beautify": "^1.10.2",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
@ -49,6 +50,7 @@
"qs": "^6.10.1",
"screenfull": "4.2.0",
"sortablejs": "1.8.4",
"vkbeautify": "^0.99.3",
"vue": "^2.6.14",
"vue-count-to": "^1.0.13",
"vue-cropper": "0.4.9",
@ -60,6 +62,7 @@
"vuedraggable": "2.20.0",
"vuex": "3.1.0",
"wangeditor": "^4.7.11",
"x2js": "^3.4.3",
"xlsx": "^0.17.4"
},
"devDependencies": {

118
src/assets/styles/archives-manage.scss

@ -6,6 +6,32 @@ $arcRed:#F65163;
$arcGreen: #1AAE93;
$arcCyan: #0FBED9;
::v-deep.input-prepend{
position: relative;
.el-input__inner {
padding-left: 80px;
}
.el-input-group__prepend {
position: absolute;
left: 0;
top: 0;
color: #fff;
background-color: transparent;
border: none;
height: 32px;
line-height: 32px;
.el-input__inner {
padding-left: 15px;
}
}
}
.packing-head{
display: flex;
justify-content: space-between;
::v-deep .el-input__inner {
padding-left: 90px;
}
}
.container-main{
.left-tree-item{
margin-bottom: 20px;
@ -141,7 +167,7 @@ $arcCyan: #0FBED9;
::v-deep .is-scrolling-left,
::v-deep .is-scrolling-middle,
::v-deep .is-scrolling-right{
min-height: calc(100vh - 430px) !important;
min-height: calc(100vh - 434px) !important;
}
}
::v-deep .archives-table.el-table .el-table__fixed-right{
@ -149,11 +175,12 @@ $arcCyan: #0FBED9;
box-shadow: -5px 5px 10px 1px rgba(15,164,222,0.16);
}
// archives - tab
.archives-tab{
position: relative;
display: flex;
flex-direction: row;
padding: 0 70px;
padding: 0 35px;
font-size: 16px;
border-bottom: 1px solid #339CFF;
z-index: 1001;
@ -179,8 +206,93 @@ $arcCyan: #0FBED9;
}
// 上传附件
.upload-dialog{
::v-deep.el-dialog{
width: 940px;
.el-dialog__body{
padding: 20px 0;
}
}
}
.upload-file{
.upload-curd{
margin: 20px 32px;
display: flex;
flex-direction: row;
margin: 0 32px 20px 32px;
}
.upload-demo{
position: relative;
margin-right: 10px;
::v-deep .el-upload-list{
display: none;
position: absolute;
left: 0;
bottom: 0;
}
}
}
.screenshot{
display: block;
margin: 0 auto;
object-fit: cover;
}
.file-down,
.packing-handle-btn{
display: block;
width: 66px;
height: 28px;
line-height: 28px;
padding: 0;
color: #fff;
border-radius: 2px;
margin: 0 auto;
&::before{
margin-right: 5px;
}
}
.file-down{
background-color: #339CFF;
border-color: #339CFF;
}
.packing-handle-btn{
background-color: $arcPurple;
border-color: $arcPurple;
}
.drag-tip {
display: block;
padding-left: 20px;
padding-bottom: 10px;
font-style: normal;
font-weight: bold;
color: #fff;
}
// 档案详情
.base-info{
padding-top: 20px;
color: #fff;
.base-info-item{
display: flex;
flex-direction: row;
margin-bottom: 20px;
span{
display: block;
width: 160px;
text-align: right;
color: #3A99FD;
}
p{
flex: 1;
}
}
}
::v-deep.hljs{
color: #fff;
background-color: transparent;
}
.selct-data-head{
color: #fff;
line-height: 32px;
}

3
src/main.js

@ -46,6 +46,9 @@ Vue.use(Element, {
size: Cookies.get('size') || 'small' // set element-ui default size
})
import X2js from 'x2js' // xml数据处理插件
Vue.prototype.$x2js = new X2js() // 创建x2js对象,挂到vue原型上
Vue.config.productionTip = false
new Vue({

8
src/views/archivesManage/archivesCheck/data1.json

@ -51,7 +51,7 @@
},
{
"id":"6e604355ff1e47e8b48117dca36420c7",
"isCheckNum":"PD-202205250840",
"isCheckNum":"PD-202205250841",
"isContainPath":"父区域-子区域,父区域-子区域1",
"isCheckState":"执行中",
"isStoreNum":"233",
@ -63,7 +63,7 @@
},
{
"id":"6f4a6631d9d3424b960793704f3757b3",
"isCheckNum":"PD-202205250840",
"isCheckNum":"PD-202205250841",
"isContainPath":"父区域-子区域,父区域-子区域1",
"isCheckState":"执行中",
"isStoreNum":"233",
@ -75,7 +75,7 @@
},
{
"id":"76e29d5c0a0541bfb1ee9da432183b15",
"isCheckNum":"PD-202205250840",
"isCheckNum":"PD-202205250842",
"isContainPath":"父区域-子区域,父区域-子区域1",
"isCheckState":"已执行",
"isStoreNum":"233",
@ -87,7 +87,7 @@
},
{
"id":"a0ffdd94161146c49161662c3f9a70cd",
"isCheckNum":"PD-202205250840",
"isCheckNum":"PD-202205250842",
"isContainPath":"父区域-子区域,父区域-子区域1",
"isCheckState":"已执行",
"isStoreNum":"233",

59
src/views/archivesManage/archivesCheck/index.vue

@ -45,28 +45,29 @@
height="calc(100vh - 315px)"
@selection-change="selectionChangeHandler"
@row-click="clickRowHandler"
@row-dblclick="handleDbClick"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" width="55" />
<el-table-column prop="isCheckNum" label="盘点单号" min-width="100" />
<el-table-column prop="isContainPath" label="包含位置" min-width="140" />
<el-table-column prop="isCheckState" label="盘点状态" min-width="60">
<el-table-column type="index" align="center" label="序号" width="55" />
<el-table-column prop="isCheckNum" align="center" label="盘点单号" min-width="100" />
<el-table-column prop="isContainPath" align="center" label="包含位置" min-width="140" />
<el-table-column prop="isCheckState" align="center" label="盘点状态" min-width="60">
<template slot-scope="scope">
<!-- 已执行 / 待执行/执行中 -->
<span class="clear">{{ scope.row.isCheckState }}</span>
</template>
</el-table-column>
<el-table-column prop="isStoreNum" label="在库档案" min-width="60" />
<el-table-column prop="isCheckedNum" label="已盘档案" min-width="60" />
<el-table-column prop="isNoCheckNum" label="未盘档案" min-width="60" />
<el-table-column prop="isLendNum" label="已借档案" min-width="60" />
<el-table-column prop="isMisplaceNum" label="错位档案" min-width="60" />
<el-table-column prop="isBuildTime" label="创建时间" min-width="100" />
<el-table-column prop="" label="操作" min-width="60">
<el-table-column prop="isStoreNum" align="center" label="在库档案" min-width="60" />
<el-table-column prop="isCheckedNum" align="center" label="已盘档案" min-width="60" />
<el-table-column prop="isNoCheckNum" align="center" label="未盘档案" min-width="60" />
<el-table-column prop="isLendNum" align="center" label="已借档案" min-width="60" />
<el-table-column prop="isMisplaceNum" align="center" label="错位档案" min-width="60" />
<el-table-column prop="isBuildTime" align="center" label="创建时间" min-width="100" />
<!-- <el-table-column prop="" align="center" label="操作" min-width="60">
<template slot-scope="scope">
<el-button size="mini" style="width:80px;height:26px;background:#3A99FD;padding:5px 10px" @click="handleDetail(scope.$index, scope.row)">盘点详情</el-button>
</template>
</el-table-column>
</el-table-column> -->
</el-table>
<!-- 删除模态框 -->
<el-dialog title="确认删除" :visible.sync="deleteVisible" :before-close="handleClose">
@ -84,6 +85,8 @@
</el-dialog>
<!-- 新增模态框 -->
<addCheck ref="addCheckDom" />
<!-- 盘点详情 -->
<checkDetail ref="checkDetailDom" />
<!--分页组件-->
<pagination />
</div>
@ -91,19 +94,27 @@
<script>
import rrOperation from '@crud/RR.operation'
import CRUD, { presenter } from '@crud/crud'
import CRUD, { presenter, header } from '@crud/crud'
// import crudJob from '@/api/system/job'
// import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
import { header } from '@crud/crud'
import data1 from './data1.json'
import addCheck from './module/addCheck.vue'
import checkDetail from './module/checkDetail.vue'
export default {
components: { pagination, rrOperation, addCheck },
components: { pagination, rrOperation, addCheck, checkDetail },
mixins: [header(), presenter()],
cruds() {
return CRUD({
title: '档案盘点'
title: '档案盘点',
optShow: {
// add: false,
// edit: false,
// del: false,
// download: true,
// group: false
}
})
},
dicts: ['job_status'],
@ -151,6 +162,22 @@ export default {
},
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
},
handleDbClick(row) {
this.$refs.table.clearSelection()
const checkDetailDom = this.$refs.checkDetailDom
checkDetailDom.detailVisible = true
checkDetailDom.rowData = row
const arr = data1.rows.filter(item => item.isCheckNum === row.isCheckNum)
checkDetailDom.tableData = arr
//
if (row.isCheckState === '已执行') {
checkDetailDom.classLend = 'have-clear'
} else if (row.isCheckState === '待执行') {
checkDetailDom.classLend = 'fail-clear'
} else if (row.isCheckState === '执行中') {
checkDetailDom.classLend = 'no-clear'
}
}
}

86
src/views/archivesManage/archivesCheck/module/checkDetail.vue

@ -1,15 +1,97 @@
<template>
<div>
盘点详情
<el-dialog title="盘点详情" :visible.sync="detailVisible">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<div class="dpflex">
<p class="one"><span class="color-blue">盘点单号:</span><span class="color-white">{{ rowData.isCheckNum }}</span></p>
<p :class="classLend" class="two"><span class="color-blue">盘点状态:</span><span class="color-white clear" style="padding:0;margin-left:20px">{{ rowData.isCheckState }}</span></p>
<p class="tree"><span class="color-blue">已盘档案:</span><span class="color-white">{{ rowData.isCheckedNum }}</span></p>
<p class="four"><span class="color-blue">已借档案:</span><span class="color-white">{{ rowData.isLendNum }}</span></p>
</div>
<div class="dpflex">
<p class="one"><span class="color-blue">所在区域:</span><span class="color-white">{{ rowData.isContainPath }}</span></p>
<p class="two"><span class="color-blue">在库档案:</span><span class="color-white">{{ rowData.isStoreNum }}</span></p>
<p class="tree"><span class="color-blue">未盘档案:</span><span class="color-white">{{ rowData.isNoCheckNum }}</span></p>
<p class="four"><span class="color-blue">错位档案:</span><span class="color-white">{{ rowData.isMisplaceNum }}</span></p>
</div>
<p style="margin-left: 30px;"><span class="color-blue">创建时间:</span><span class="color-white">{{ rowData.isBuildTime }}</span></p>
<el-table :data="tableData" style="margin-top:15px;width:100%;height:290px">
<el-table-column type="index" label="序号" align="center" width="90" />
<el-table-column prop="" align="center" label="盘点结果" width="90" />
<el-table-column prop="" align="center" label="子条数目" width="90" />
<el-table-column prop="" align="center" label="门类级别" width="90" />
<el-table-column prop="" align="center" label="全宗号" width="90" />
<el-table-column prop="" align="center" label="档号" width="180" />
<el-table-column prop="" align="center" label="归档年度" width="90" />
<el-table-column prop="" align="center" label="题名" width="180" />
<el-table-column prop="" align="center" label="保密程度" width="90" />
<el-table-column prop="" align="center" label="部门名称" width="90" />
<el-table-column prop="" align="center" label="盒名称" width="90" />
<el-table-column prop="isContainPath" align="center" label="所在位置" width="220" />
<el-table-column prop="isBuildTime" align="center" label="创建时间" width="150" />
</el-table>
</div></el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
detailVisible: false,
tableData: [],
rowData: {},
classLend: ''
}
}
}
</script>
<style lang="scss" scoped>
@import '~@/assets/styles/lend-manage.scss';
::v-deep .el-dialog__body{
padding: 10px 40px 80px 0;
}
::v-deep .el-dialog{
width: 950px;
height: 520px;
}
::v-deep .el-dialog .el-dialog__header .el-dialog__close::before{
position: absolute;
right: -280px;
}
p{
display: flex;
height: 40px;
align-items: center;
.color-blue{
color: #3A99FD;
width: 70px;
height: 19px;
text-align: right;
}
.color-white{
color: white;
padding: 0 0 0 20px;
}
}
.dpflex{
display: flex;
.one{
width: 320px;
margin-left: 30px;
}
.two{
flex:1;
}
.tree{
flex: 1;
}
.four{
flex: 1;
}
}
</style>

179
src/views/archivesManage/archivesList/archivesDetail.vue

@ -1,28 +1,39 @@
<template>
<div class="rrr">
<div>
<!--工具栏-->
<div class="head-container">
<div class="head-archives-top">
<div class="head-search">
<!-- 搜索 -->
<el-input v-model="query.blurry" clearable size="small" placeholder="请输入关键词" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<el-select v-model="query.enabled" clearable size="small" placeholder="状态" class="filter-item" style="width: 100px" @change="crud.toQuery">
<el-select v-if="selectedCategory.isType === 3 || selectedCategory.isType === 5" v-model="query.enabled" clearable size="small" placeholder="状态" class="filter-item" style="width: 100px" @change="crud.toQuery">
<i slot="prefix" class="iconfont icon-zhuangtai-fanbai" />
<el-option v-for="item in stateOptions" :key="item.key" :label="item.label" :value="item.key" />
</el-select>
<el-input v-model="query[inputSelect]" clearable size="small" placeholder="请输入关键词" style="width: 200px;" class="input-prepend filter-item" @keyup.enter.native="crud.toQuery">
<el-select slot="prepend" v-model="inputSelect" style="width: 80px" @change="querySelect">
<el-option
v-for="item in queryOption"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-input>
<rrOperation />
</div>
<el-checkbox v-model="fixedStatusBar">隐藏固定状态栏</el-checkbox>
<el-checkbox v-if="selectedCategory.isType !== 1 && selectedCategory.isType !== 2" v-model="fixedStatusBar">隐藏固定状态栏</el-checkbox>
</div>
<crudOperation :permission="permission">
<template v-slot:right>
<el-button v-permission="permission.del" icon="el-icon-delete" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toDelete(crud.selections)">删除</el-button>
<el-button v-permission="permission.download" :loading="crud.downloadLoading" :disabled="!crud.data.length" size="mini" icon="el-icon-download" @click="crud.doExport">导出</el-button>
<el-button v-if="selectedCategory.isType !== 1 && selectedCategory.isType !== 2" v-permission="permission.download" :loading="crud.downloadLoading" :disabled="!crud.data.length" size="mini" icon="el-icon-download" @click="crud.doExport">导出</el-button>
<el-button v-if="selectedCategory.isType === 4 || selectedCategory.isType === 5" :disabled="crud.selections.length !== 1" size="mini" icon="el-icon-download" @click="uploadFile">上传附件</el-button>
</template>
<template v-slot:rightButtonGroup>
<div class="archives-handler-btn">
<el-button class="packing-btn iconfont icon-weibiaoti-2" type="primary">装盒</el-button>
<el-button class="warehousing-btn iconfont icon-weibiaoti-2" type="primary">入库</el-button>
<div v-if="selectedCategory.isType === 3 || selectedCategory.isType === 5" class="archives-handler-btn">
<el-button class="packing-btn iconfont icon-weibiaoti-2" type="primary" @click="packingVisible=true">装盒</el-button>
<el-button v-if="selectedCategory.isType === 3" class="part-btn iconfont icon-weibiaoti-2" type="primary">分卷装盒</el-button>
<!-- <el-button class="warehousing-btn iconfont icon-weibiaoti-2" type="primary">入库</el-button> -->
<el-button class="lending-btn iconfont icon-weibiaoti-2" type="primary">借阅</el-button>
<el-button class="binding-btn iconfont icon-weibiaoti-2" type="primary">绑定标签</el-button>
</div>
@ -34,20 +45,26 @@
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<!-- tab -->
<ul class="archives-tab">
<li :class="{'active': archivesTabIndex == 0}" @click="changeActiveTab(0)">基本信息</li>
<li v-if="isEditOrAdd !== 'add'" :class="{'active': archivesTabIndex == 1}" @click="changeActiveTab(1)">上传附件</li>
</ul>
<!-- form -->
<PreviewForm v-if="formPreviewData.length && archivesTabIndex == 0" ref="previewForm" :is-disabled="false" :form-preview-data.sync="formPreviewData" :selected-category="selectedCategory" :arc-id="arcId" />
<!-- 上传附件 -->
<UploadFile v-if="archivesTabIndex==1" />
<div slot="footer" class="dialog-footer">
<el-button :loading="crud.status.cu === 2" type="primary" @click="handlerArchivesSubmit">保存</el-button>
</div>
</div>
</el-dialog>
<!-- 上传附件 -->
<el-dialog class="upload-dialog" :modal-append-to-body="false" :close-on-click-modal="false" :before-close="handleClose" :visible.sync="uploadFileVisible" title="上传附件">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<UploadFile :is-upload-detail="true" />
<div slot="footer" class="dialog-footer">
<el-button :loading="crud.status.cu === 2" type="primary" @click="uploadFileSave">保存</el-button>
</div>
</div>
</el-dialog>
<!-- 删除档案 -->
<el-dialog title="删除档案" :visible.sync="deleteVisible" :before-close="handleClose">
<span class="dialog-right-top" />
@ -66,8 +83,9 @@
</div>
</div>
</el-dialog>
<!-- table表格渲染 -->
<el-table ref="table" v-loading="crud.loading || getTableDisplayFieldsLoading" class="archives-table" :data="crud.data" highlight-current-row style="width: 100%; " height="calc(100vh - 370px)" @selection-change="crud.selectionChangeHandler" @row-click="clickRowHandler">
<el-table ref="table" v-loading="crud.loading || getTableDisplayFieldsLoading" class="archives-table" :data="crud.data" highlight-current-row style="width: 100%; " height="calc(100vh - 370px)" @selection-change="crud.selectionChangeHandler" @row-click="clickRowHandler" @cell-dblclick="tableDoubleClick">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
@ -75,26 +93,26 @@
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
<el-table-column label="装盒" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<el-table-column v-if="selectedCategory.isType !== 1 && selectedCategory.isType !== 2" label="装盒" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<!-- state-active 已装/已入/已借/已绑 -->
<template slot-scope="scope">
<!-- 未装 / 已装 -->
<span class="row-state row-packing state-active">{{ scope.row.case_no ? '已装': '未装' }}</span>
</template>
</el-table-column>
<el-table-column label="入库" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<el-table-column v-if="selectedCategory.isType !== 1 && selectedCategory.isType !== 2" label="入库" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<template slot-scope="">
<!-- 未入 / 已入 -->
<span class="row-state row-warehousing">未入</span>
</template>
</el-table-column>
<el-table-column label="借阅" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<el-table-column v-if="selectedCategory.isType === 3 || selectedCategory.isType === 5" label="借阅" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<template slot-scope="">
<!-- 待借 / 不可借- 表示 / 已借 -->
<span class="row-state row-lending"></span>
</template>
</el-table-column>
<el-table-column label="标签" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<el-table-column v-if="selectedCategory.isType === 3 || selectedCategory.isType === 5" label="标签" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<template slot-scope="scope">
<!-- 未绑 / 已绑 -->
<span class="row-state row-binding">{{ scope.row.tid ? '已绑': '未绑' }}</span>
@ -103,21 +121,44 @@
</el-table>
<!--分页组件-->
<pagination />
<!-- 档案详情 -->
<el-dialog class="upload-dialog" title="档案详情" :visible.sync="archivesInfoVisible" :before-close="handleClose">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<ArchivesInfo />
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click.native="handleDeltConfirm">确定</el-button>
</div>
</div>
</el-dialog>
<el-dialog class="upload-dialog" title="装盒" :visible.sync="packingVisible" :before-close="handleClose">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<Packing />
</div>
</el-dialog>
</div>
</template>
<script>
import { add, edit, del, getTableDisplayFields, getFormDisplayFields } from '@/api/archivesManage/archivesList'
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import CRUD, { presenter, header, form } from '@crud/crud'
import { initData } from '@/api/data'
import crudOperation from '@crud/CRUD.operation'
import rrOperation from '@crud/RR.operation'
import pagination from '@crud/Pagination'
import PreviewForm from '@/views/components/category/PreviewForm'
import UploadFile from './module/uploadFile'
import ArchivesInfo from './module/archivesInfo'
import Packing from './module/packing'
export default {
components: { crudOperation, rrOperation, pagination, PreviewForm, UploadFile },
components: { crudOperation, rrOperation, pagination, PreviewForm, UploadFile, ArchivesInfo, Packing },
mixins: [
presenter(),
header(),
@ -161,6 +202,12 @@ export default {
{ key: '5', label: '待借' },
{ key: '6', label: '已借' }
],
queryOption: [
{ value: 'maintitle', label: '题名' },
{ value: 'archive_no', label: '档号' },
{ value: 'archive_year', label: '年度' }
],
inputSelect: '',
permission: {
add: ['admin', 'archivesList:add'],
edit: ['admin', 'archivesList:edit'],
@ -178,7 +225,10 @@ export default {
archivesTabIndex: 0, //
tabDisabled: true,
arcId: null, // ID
arrySort: []
arrySort: [],
uploadFileVisible: false, //
archivesInfoVisible: false, //
packingVisible: false //
}
},
watch: {
@ -193,48 +243,50 @@ export default {
this.doLayout()
}
},
created() {
// select -
this.inputSelect = this.queryOption[0].value
},
mounted() {
},
methods: {
//
// [CRUD.HOOK.beforeRefresh]() {
// this.crud.query.id = this.dicPid
// },
// [CRUD.HOOK.afterRefresh](crud) {
// console.log(this.curd)
// // if (this.needRefreshTree) {
// // this.$emit('treeRefresh', crud.data)
// // }
// },
// -select
querySelect(val) {
this.inputSelect = val
},
[CRUD.HOOK.beforeRefresh]() {
this.getTableDisplayFieldsLoading = true
//
getTableDisplayFields({ categoryId: this.selectedCategory.id }).then(data => {
this.tableDisplayFields = data
this.getTableDisplayFieldsLoading = false
this.tableDisplayFields.map(item => {
if (item.displayOrder) {
if (item.queue) {
this.arrySort.push(item.fieldName + ', ' + (item.displayOrder === 1 ? 'asc' : 'desc'))
}
})
console.log(this.arrySort)
this.crud.sort = this.arrySort
new Promise((resolve, reject) => {
crud.loading = true
this.crud.loading = true
//
initData(crud.url, crud.getQueryParams()).then(data => {
const table = crud.getTable()
initData(this.crud.url, this.crud.getQueryParams()).then(data => {
const table = this.crud.getTable()
if (table && table.lazy) { //
table.store.states.treeData = {}
table.store.states.lazyTreeNodeMap = {}
}
crud.page.total = data.totalElements !== null ? data.totalElements : data.length
crud.data = data.content ? data.content : data
crud.resetDataStatus()
resolve(data)
if (data) {
this.crud.page.total = data.totalElements !== null ? data.totalElements : data.length
this.crud.data = data.content ? data.content : data
this.crud.resetDataStatus()
resolve(data)
// time
setTimeout(() => {
this.crud.loading = false
}, this.crud.time)
}
}).catch(err => {
crud.loading = false
this.crud.loading = false
reject(err)
})
})
@ -255,23 +307,38 @@ export default {
this.form.dictionaryConfigId = {}
this.formPreviewData = []
//
getFormDisplayFields({ categoryId: this.selectedCategory.id }).then(data => {
const params = {
categoryId: this.selectedCategory.id,
archivesId: this.arcId
}
this.getFormInfo(params)
},
// -form/-api
getFormInfo(params) {
getFormDisplayFields(params).then(data => {
// this.formPreviewData = data.showFiled.filter((fields) => { return fields.isInput })
this.formPreviewData = data.showFiled
this.form.categoryId = this.selectedCategory.id
this.$nextTick(() => {
if (this.isEditOrAdd === 'edit') {
this.$refs.previewForm.addOrUpdateForm = this.selectedData[0]
this.$refs.previewForm.addOrUpdateForm = data.echo
}
})
})
},
changeActiveTab(index) {
this.archivesTabIndex = index
},
// form - submit
handlerArchivesSubmit() {
this.$refs.previewForm.submitForm('addOrUpdateForm')
},
// table -
tableDoubleClick(row) {
this.archivesInfoVisible = true
const params = {
categoryId: this.selectedCategory.id,
archivesId: row.id
}
this.getFormInfo(params)
},
// table - row
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
@ -315,6 +382,12 @@ export default {
this.$nextTick(() => {
this.$refs.table.doLayout()
})
},
uploadFile() {
this.uploadFileVisible = true
},
uploadFileSave() {
this.uploadFileVisible = false
}
}
}
@ -324,14 +397,11 @@ export default {
@import "~@/assets/styles/archives-manage.scss";
.preview-dialog {
::v-deep .el-dialog {
width: 940px !important;
.el-dialog__body{
padding: 0;
height: calc(100vh - 174px);
}
.preview-content {
width: auto !important;
padding: 20px 144px 0 150px!important;
margin-right: 6px;
overflow: hidden;
overflow-y: auto;
@ -340,12 +410,9 @@ export default {
background-color: transparent;
}
}
.el-dialog__header {
width: 420px;
}
.dialog-footer{
margin: 0 auto;
padding: 15px 0 30px 0;
padding: 15px 0 20px 0;
}
}
}

90
src/views/archivesManage/archivesList/module/archivesInfo.vue

@ -0,0 +1,90 @@
<template>
<div class="archives-info-wrap">
<!-- tab -->
<ul class="archives-tab">
<li :class="{'active': archivesTabIndex == 0}" @click="changeActiveTab(0)">基本信息</li>
<li :class="{'active': archivesTabIndex == 1}" @click="changeActiveTab(1)">附件</li>
<li :class="{'active': archivesTabIndex == 2}" @click="changeActiveTab(2)">元数据</li>
</ul>
<!-- 基本信息 -->
<div v-if="archivesTabIndex==0" class="base-info">
<el-row>
<el-col :span="12" class="base-info-item">
<span>全宗号</span>
<p>父区域-子区域-设备1-1区1列1节1层左边</p>
</el-col>
<el-col :span="12" class="base-info-item">
<span>TID</span>
<p>E2806894200040159AF8AD06</p>
</el-col>
<el-col :span="12" class="base-info-item">
<span>全宗号</span>
<p>父区域-子区域-设备1-1区1列1节1层左边</p>
</el-col>
<el-col :span="12" class="base-info-item">
<span>TID</span>
<p>E2806894200040159AF8AD06</p>
</el-col>
</el-row>
</div>
<!-- 附件 -->
<UploadFile v-if="archivesTabIndex==1" :is-upload-detail="false" />
<!-- 元数据 -->
<div v-if="archivesTabIndex==2">
<pre v-highlightjs="xml_show">
<code class="highlight_s" />
</pre>
</div>
</div>
</template>
<script>
import vkbeautify from 'vkbeautify'
import { form } from '@crud/crud'
import UploadFile from './uploadFile'
export default {
name: 'ArchivesInfo',
components: { UploadFile },
mixins: [
form({})
],
data() {
return {
archivesTabIndex: 0,
textareaoutput: null,
xml_show: null
}
},
created() {
},
mounted() {
this.setXml()
},
methods: {
setXml() {
const xmlstr = `<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>`
this.xml_show = vkbeautify.xml(xmlstr)
console.log('xmlstr:', xmlstr)
console.log('xml转json:', this.$x2js.xml2js(xmlstr))
console.log('json转xml:', this.$x2js.js2xml(this.$x2js.xml2js(xmlstr)))
this.textareaoutput = xmlstr
},
changeActiveTab(index) {
this.archivesTabIndex = index
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/archives-manage.scss";
</style>

109
src/views/archivesManage/archivesList/module/packing.vue

@ -0,0 +1,109 @@
<template>
<div class="upload-file">
<div class="head-container packing-head">
<div class="head-search">
<!-- 搜索 -->
<el-input v-model="query[inputSelect]" clearable size="small" placeholder="请输入" style="width: 245px;" class="input-prepend filter-item" @keyup.enter.native="crud.toQuery">
<el-select slot="prepend" v-model="inputSelect" style="width: 90px" @change="querySelect">
<el-option
v-for="item in queryOption"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-input>
<rrOperation />
</div>
<div class="selct-data-head">
<p>数据来源文件 2条数据</p>
</div>
</div>
<!--表格渲染-->
<el-table
ref="table"
:data="tableData"
style="min-width: 100%"
height="calc(100vh - 382px)"
@row-click="clickRowHandler"
@selection-change="selectionChangeHandler"
>
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column prop="fileName" label="已装" min-width="100" align="center" />
<el-table-column prop="fileFormat" label="盒名称" min-width="60" align="center" />
<el-table-column prop="fileSize" label="TID" min-width="120" align="center" />
<el-table-column prop="fileDpi" label="条形码" min-width="120" align="center" />
<el-table-column prop="create_date" label="操作" min-width="100" align="center">
<template>
<el-button class="packing-handle-btn iconfont icon-weibiaoti-2" @click="open">装盒</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { header, form } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import data from './data.json'
export default {
name: 'Packing',
components: { rrOperation },
mixins: [
header(),
form({})
],
data() {
return {
tableData: [],
selections: [],
inputSelect: null,
queryOption: [
{ value: '1', label: '盒名称' },
{ value: '2', label: 'TID' },
{ value: '3', label: '条形码' }
]
}
},
created() {
this.tableData = data.data
// select -
this.inputSelect = this.queryOption[0].value
},
methods: {
// -select
querySelect(val) {
this.inputSelect = val
},
open() {
this.$alert('装盒成功', '提示', {
showConfirmButton: false
}).then(() => {
console.log('then')
}).catch((err) => {
console.log(err)
})
},
// table
clickRowHandler(row) {
this.$refs.table.clearSelection()
this.$refs.table.toggleRowSelection(row)
},
// table
selectionChangeHandler(val) {
this.selections = val
console.log(this.selections)
},
// dialog - close
handleClose(done) {
this.showCoverVisible = false
done()
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/archives-manage.scss";
</style>

136
src/views/archivesManage/archivesList/module/uploadFile.vue

@ -1,11 +1,20 @@
<template>
<div class="upload-file">
<!-- 上传附件curd -->
<div class="upload-curd">
<el-button icon="el-icon-plus">新增</el-button>
<el-button icon="el-icon-delete" :disabled="selections.length === 0">删除</el-button>
<el-button icon="el-icon-sort">排序</el-button>
<div v-if="isUploadDetail" class="upload-curd">
<!-- <el-button icon="el-icon-plus">新增</el-button> -->
<el-upload
class="upload-demo"
action="#"
:on-preview="handlePreview"
:file-list="fileList"
>
<el-button icon="el-icon-plus" size="small" type="primary">新增</el-button>
</el-upload>
<el-button icon="el-icon-delete" :disabled="selections.length === 0" @click="toDelete(selections)">删除</el-button>
<el-button icon="el-icon-sort" @click="sortVisible = true">排序</el-button>
</div>
<!--表格渲染-->
<el-table
ref="table"
@ -24,11 +33,16 @@
<el-table-column prop="fileCover" label="缩览图" min-width="60" align="center">
<template slot-scope="scope">
<div v-if="scope.row.fileCover">
<img width="60px" height="32px" style="object-fit:cover;" :src="scope.row.fileCover" @click="showCoverVisible=true">
<img width="60px" height="32px" class="screenshot" :src="scope.row.fileCover" @click="showCoverVisible=true">
</div>
</template>
</el-table-column>
<el-table-column prop="create_date" label="创建时间" min-width="100" align="center" />
<el-table-column v-if="!isUploadDetail" label="操作" min-width="100" align="center">
<template>
<el-button class="file-down iconfont icon-weibiaoti-2">下载</el-button>
</template>
</el-table-column>
</el-table>
<!-- 点击缩略图看大图 -->
@ -39,11 +53,42 @@
<img style="width:100%; height:100%;" src="https://qiniu.aiyxlib.com/yuekan-5-h5bg.jpg">
</div>
</el-dialog>
<!-- 排序 -->
<el-dialog :close-on-click-modal="false" :append-to-body="true" title="排序" :visible.sync="sortVisible" @opened="opened">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<i class="drag-tip">提示请通过拖动鼠标来调整当前顺序</i>
<el-table :data="sortTableData" class="file-sort" style="width: 100%;max-height: 70vh;" row-key="id">
<el-table-column type="index" label="序号" width="100" align="center" />
<el-table-column prop="cnName" label="文件名称" />
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click.native="handleSort">保存</el-button>
</div>
</div>
</el-dialog>
<!-- 删除附件 -->
<el-dialog title="删除附件" :append-to-body="true" :visible.sync="deleteVisible" :before-close="handleClose">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<div class="dialog-delt">
<p><span>确定删除已选择的附件吗</span></p>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click.native="handleDeltConfirm">确定</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { form } from '@crud/crud'
import Sortable from 'sortablejs'
import data from './data.json'
export default {
name: 'UploadFile',
@ -51,23 +96,101 @@ export default {
mixins: [
form({})
],
props: {
isUploadDetail: {
type: Boolean,
default: true
}
},
data() {
return {
tableData: [],
selections: [],
showCoverVisible: false
showCoverVisible: false,
fileList: [], // list
sortVisible: false, //
sortTableData: [],
deleteVisible: false,
deleteData: []
}
},
created() {
this.tableData = data.data
console.log(this.isUploadDetail)
},
methods: {
//
handlePreview(file) {
console.log(file)
},
//
toDelete(data) {
console.log(data)
this.deleteData = data
this.deleteVisible = true
},
//
handleDeltConfirm() {
this.deleteVisible = false
const ids = []
this.deleteData.forEach(val => {
ids.push(val.id)
})
// const params = {
// 'ids': ids,
// 'categoryId': this.selectedCategory.id
// }
// fetch
// del(params).then(res => {
// this.crud.delAllLoading = false
// this.$notify({
// title: '',
// type: 'success',
// duration: 2500
// })
// this.crud.refresh()
// })
},
// -
rowDrop(className, targetName) {
//
const tbody = document.querySelector('.' + className + ' .el-table__body-wrapper tbody')
const that = this
Sortable.create(tbody, {
//
draggable: '.el-table__row',
onEnd({ newIndex, oldIndex }) {
if (newIndex === oldIndex) return
that[targetName].splice(newIndex, 0, that[targetName].splice(oldIndex, 1)[0])
}
})
},
//
opened() {
this.rowDrop('file-sort', 'sortTableData')
},
// - data
handleSort() {
// const data = this.sortTableData.map((value, index) => {
// return { id: value.id, sort: index + 1 }
// })
// this.sortTableData.forEach((item, index) => {
// item.categorySeq = index + 1
// })
// sort(data).then(() => {
// this.sortVisible = false
// this.$emit('treeNodeSort', this.sortTableData)
// })
},
// table
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
},
// table
selectionChangeHandler(val) {
this.selections = val
},
// dialog - close
handleClose(done) {
this.showCoverVisible = false
done()
@ -78,4 +201,5 @@ export default {
<style lang="scss" scoped>
@import "~@/assets/styles/archives-manage.scss";
</style>

29
src/views/archivesManage/lendManage/borrowerManage/index.vue

@ -3,7 +3,7 @@
<head-slot>
<!-- <crudOperation :permission="permission" /> -->
<el-button icon="el-icon-plus" size="mini" @click="addFormVisible = true">新增</el-button>
<el-button icon="el-icon-edit" size="mini" :disabled="selections.length ? false : true " @click="handelEdit">修改</el-button>
<el-button icon="el-icon-edit" size="mini" :disabled="selections.length===1 ? false : true " @click="handelEdit">修改</el-button>
<el-button icon="el-icon-delete" size="mini" :disabled="selections.length ? false : true " @click="deleteVisible = true">删除</el-button>
<!-- 搜索 -->
@ -28,14 +28,14 @@
@selection-change="selectionChangeHandler"
@row-click="clickRowHandler"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" width="100" />
<el-table-column prop="borrowerName" label="借阅人" min-width="85" />
<el-table-column prop="borrowerDepartment" label="所属部门" min-width="85" />
<el-table-column prop="borrowerIdType" label="证件类型" min-width="85" />
<el-table-column prop="borrowerIdNum" label="证件号码" min-width="140" />
<el-table-column prop="borrowerTel" label="电话号码" min-width="120" />
<el-table-column prop="isOperationTime" label="操作时间" min-width="140" />
<el-table-column type="selection" align="center" width="55" />
<el-table-column type="index" align="center" label="序号" width="100" />
<el-table-column prop="borrowerName" align="center" label="借阅人" min-width="85" />
<el-table-column prop="borrowerDepartment" align="center" label="所属部门" min-width="85" />
<el-table-column prop="borrowerIdType" align="center" label="证件类型" min-width="85" />
<el-table-column prop="borrowerIdNum" align="center" label="证件号码" min-width="140" />
<el-table-column prop="borrowerTel" align="center" label="电话号码" min-width="120" />
<el-table-column prop="isOperationTime" align="center" label="操作时间" min-width="140" />
</el-table>
<!-- 借阅者增加模态框 -->
@ -264,15 +264,8 @@ export default {
this.deleteVisible = false
},
handelEdit() {
if (this.selections.length === 1) {
this.borrowerForm = this.selections[0]
this.editFormVisible = true
} else {
this.$message({
message: '只可以选中1条数据进行修改',
type: 'warning'
})
}
this.borrowerForm = this.selections[0]
this.editFormVisible = true
}
}
}

247
src/views/archivesManage/lendManage/data2.json

@ -0,0 +1,247 @@
{
"total":12,
"rows":[
{
"id":"29f16d62bc7242d5ba8dc84de5451f93",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-26 14:02",
"borrowerName":"李四",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"已解除",
"isDocNum":"JY202205050001",
"isArchiveNum":"1",
"isHandler":"管理员"
},
{
"id":"3d6d548d30db426ea3d95d63f589b294",
"isCategoryName":"文书档案-卷案级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"已解除",
"isDocNum":"JY202205050002",
"isHandler":"管理员"
},
{
"id":"45ff597e7cc64d11803ac422816b1e23",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-27 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"未解除",
"isDocNum":"JY202205050003",
"isArchiveNum":"1",
"isHandler":"管理员"
},
{
"id":"49106aa0d1534a7a900843d0c4531840",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-28 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"未解除",
"isDocNum":"JY202205050004",
"isArchiveNum":"1",
"isHandler":"管理员"
},
{
"id":"6e604355ff1e47e8b48117dca36420c7",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"解除失败",
"isDocNum":"JY202205050005",
"isArchiveNum":"1"
},
{
"id":"6f4a6631d9d3424b960793704f3757b3",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"解除失败",
"isDocNum":"JY202205050006",
"isArchiveNum":"1"
},
{
"id":"76e29d5c0a0541bfb1ee9da432183b15",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isDocNum":"JY202205050007"
},
{
"id":"a0ffdd94161146c49161662c3f9a70cd",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-07-25 14:02",
"borrowerName":"王五",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isDocNum":"JY202205050008"
},
{
"id":"a79e0d67165a4b08b089b309dd947908",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085"
},
{
"id":"ca9b850145b74eeda3c22a997696c979",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085"
},
{
"id":"dff5529c0d0f45b2b19f2adec7ca0102",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085"
},
{
"id":"f3f6ff94c26a4a54967de9cfc56a3b01",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待登记",
"isOperationTime":"2022-06-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085"
}
],
"footer":null,
"postparam":null
}

247
src/views/archivesManage/lendManage/data3.json

@ -0,0 +1,247 @@
{
"total":12,
"rows":[
{
"id":"29f16d62bc7242d5ba8dc84de5451f93",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"逾期",
"isOperationTime":"2022-05-26 14:02",
"borrowerName":"李四",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"已解除",
"isDocNum":"JY202205050001",
"isArchiveNum":"1",
"isHandler":"管理员"
},
{
"id":"3d6d548d30db426ea3d95d63f589b294",
"isCategoryName":"文书档案-卷案级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"逾期",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"已解除",
"isDocNum":"JY202205050002",
"isHandler":"管理员"
},
{
"id":"45ff597e7cc64d11803ac422816b1e23",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"逾期",
"isOperationTime":"2022-05-27 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"未解除",
"isDocNum":"JY202205050003",
"isArchiveNum":"1",
"isHandler":"管理员"
},
{
"id":"49106aa0d1534a7a900843d0c4531840",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"逾期",
"isOperationTime":"2022-05-28 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"未解除",
"isDocNum":"JY202205050004",
"isArchiveNum":"1",
"isHandler":"管理员"
},
{
"id":"6e604355ff1e47e8b48117dca36420c7",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待还",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"解除失败",
"isDocNum":"JY202205050005",
"isArchiveNum":"1"
},
{
"id":"6f4a6631d9d3424b960793704f3757b3",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"逾期",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isWarnState":"解除失败",
"isDocNum":"JY202205050006",
"isArchiveNum":"1"
},
{
"id":"76e29d5c0a0541bfb1ee9da432183b15",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"逾期",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isDocNum":"JY202205050007"
},
{
"id":"a0ffdd94161146c49161662c3f9a70cd",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待还",
"isOperationTime":"2022-07-25 14:02",
"borrowerName":"王五",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085",
"isDocNum":"JY202205050008"
},
{
"id":"a79e0d67165a4b08b089b309dd947908",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待还",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085"
},
{
"id":"ca9b850145b74eeda3c22a997696c979",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待还",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085"
},
{
"id":"dff5529c0d0f45b2b19f2adec7ca0102",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待还",
"isOperationTime":"2022-05-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085"
},
{
"id":"f3f6ff94c26a4a54967de9cfc56a3b01",
"isCategoryName":"文书档案-文件级",
"fieldCnName":"盒号",
"isArchivesID":"FTZN-2022-BGS-D30-0001",
"isTitleName":"这是一份文件的标题标题...",
"isFieldName":"文书-文件-2022",
"isStoragePath":"库房A-库区A-01列-1节1层-左",
"isLendStatus":"待还",
"isOperationTime":"2022-06-25 14:02",
"borrowerName":"张三",
"borrowDays":"2022-5-25至2022-6-25",
"borrowGoal":"工作考察",
"borrowerDepartment":"办公室",
"borrowerIdType":"身份证",
"borrowerIdNum":"420880190011115636",
"borrowerTel":"027-5955 7085"
}
],
"footer":null,
"postparam":null
}

78
src/views/archivesManage/lendManage/lendConfirm/index.vue

@ -1,7 +1,7 @@
<template>
<div class="lend-confirm">
<headSlot>
<el-button icon="el-icon-plus" size="mini" :disabled="selections.length ? false : true " @click="lendFormVisible = true">借出</el-button>
<el-button icon="el-icon-plus" size="mini" :disabled="selections.length ? false : true " @click="handleLendBtn">借出</el-button>
<el-button icon="el-icon-edit" size="mini" @click="handelReRecord">重新登记</el-button>
<el-button icon="el-icon-minus" size="mini" :disabled="selections.length ? false : true " @click="handleRemove">移出</el-button>
<crudOperation style="margin-left:10px" />
@ -19,44 +19,26 @@
@row-dblclick="handleDbClick"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" width="55" />
<el-table-column prop="isDocNum" label="单据号" min-width="85" />
<el-table-column prop="isArchiveNum" label="数量" min-width="50" />
<el-table-column prop="borrowerName" label="借阅人" min-width="60" />
<el-table-column prop="borrowerDepartment" label="所属部门" min-width="85" />
<el-table-column prop="borrowerIdType" label="证件类型" min-width="85" />
<el-table-column prop="borrowerIdNum" label="证件号码" min-width="100" />
<el-table-column prop="borrowerTel" label="电话号码" min-width="85" />
<el-table-column prop="borrowDays" label="借阅时间" :show-overflow-tooltip="true" min-width="120" />
<el-table-column prop="borrowGoal" label="借阅目的" min-width="60" />
<el-table-column prop="isLendStatus" label="借阅状态" min-width="60">
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="isDocNum" align="center" label="单据号" min-width="85" />
<el-table-column prop="isArchiveNum" align="center" label="数量" min-width="50" />
<el-table-column prop="borrowerName" align="center" label="借阅人" min-width="60" />
<el-table-column prop="borrowerDepartment" align="center" label="所属部门" min-width="85" />
<el-table-column prop="borrowerIdType" align="center" label="证件类型" min-width="85" />
<el-table-column prop="borrowerIdNum" align="center" label="证件号码" min-width="120" />
<el-table-column prop="borrowerTel" align="center" label="电话号码" min-width="85" />
<el-table-column prop="borrowDays" align="center" label="借阅时间" min-width="150" />
<el-table-column prop="borrowGoal" align="center" label="借阅目的" min-width="70" />
<el-table-column prop="isLendStatus" align="center" label="借阅状态" min-width="70">
<template slot-scope="scope">
<!-- 已借 / 待借 -->
<span class="cell-lend">{{ scope.row.isLendStatus }}</span>
</template>
</el-table-column>
<el-table-column sortable prop="isOperationTime" label="操作时间" min-width="85" />
<el-table-column sortable prop="isOperationTime" align="center" label="操作时间" min-width="120" />
</el-table>
<!--借出弹框-->
<el-dialog ref="dialogTable" title="借出" :visible.sync="lendFormVisible">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<el-table :data="selections" :cell-class-name="cellWarn">
<el-table-column type="index" label="序号" width="55" />
<el-table-column prop="isCategoryName" label="所属门类" />
<el-table-column prop="isArchivesID" label="档号" min-width="140" />
<el-table-column prop="isTitleName" label="题名" min-width="140" />
<el-table-column prop="isWarnState" label="状态" min-width="85">
<template slot-scope="scope">
<!-- 已解除 / 未解除/解除失败 -->
<span class="clear">{{ scope.row.isWarnState }}</span>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button disabled>解除警报</el-button>
</div>
</el-dialog>
<lendDialog ref="lendDialogDom" />
<!-- 移出确认弹框 -->
<delConfirm ref="delConfirmDom" :list-name="listName" />
<!-- 档案详情 -->
@ -73,10 +55,10 @@ import CRUD, { presenter } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation'
import delConfirm from '../components/delConfirm.vue'
import archiveDetail from './module/archiveDetail.vue'
import lendDialog from './module/lendDialog.vue'
import data1 from '../data1.json'
export default {
components: { headSlot, pagination, crudOperation, archiveDetail, delConfirm },
components: { headSlot, pagination, crudOperation, archiveDetail, delConfirm, lendDialog },
mixins: [presenter()],
cruds() {
return CRUD({
@ -96,7 +78,6 @@ export default {
return {
tableData: [],
selections: [],
lendFormVisible: false,
lendForm: {},
listName: '借出确认'
}
@ -113,9 +94,21 @@ export default {
},
//
handleDbClick(row) {
this.$refs.archiveDetailDom.detailVisible = true
this.$refs.table.clearSelection()
const archiveDetailDom = this.$refs.archiveDetailDom
archiveDetailDom.detailVisible = true
const arr = data1.rows.filter(item => item.isDocNum === row.isDocNum)
this.$refs.archiveDetailDom.rowData = arr
archiveDetailDom.rowData = arr
console.log(arr[0])
//
if (arr[0].isLendStatus === '已借') {
archiveDetailDom.classLend = 'have-lend'
} else if (arr[0].isLendStatus === '待借') {
archiveDetailDom.classLend = 'no-lend'
} else {
archiveDetailDom.classLend = 'other-lend'
}
console.log(archiveDetailDom.classLend)
},
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
@ -138,14 +131,9 @@ export default {
return 'other-lend'
}
},
cellWarn({ row, columnIndex }) {
if (row.isWarnState === '已解除' && columnIndex === 4) {
return 'no-clear'
} else if (row.isWarnState === '未解除' && columnIndex === 4) {
return 'have-clear'
} else if (row.isWarnState === '解除失败' && columnIndex === 4) {
return 'fail-clear'
}
handleLendBtn() {
this.$refs.lendDialogDom.table = this.selections
this.$refs.lendDialogDom.lendFormVisible = true
}
}
}

42
src/views/archivesManage/lendManage/lendConfirm/module/archiveDetail.vue

@ -4,31 +4,24 @@
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<!-- <p><span class="color-blue">所属门类:</span><span class="color-white">{{ rowData.isCategoryName }}</span></p>
<p><span class="color-blue">档号:</span><span class="color-white">{{ rowData.isArchivesID }}</span></p>
<p><span class="color-blue">题名:</span><span class="color-white">{{ rowData.isTitleName }}</span></p>
<p><span class="color-blue">盒名称:</span><span class="color-white">{{ rowData.isFieldName }}</span></p>
<p><span class="color-blue">存放位置:</span><span class="color-white">{{ rowData.isStoragePath }}</span></p> -->
<div class="dpflex">
<p class="left"><span class="color-blue">借阅人:</span><span class="color-white">{{ rowData[0].borrowerName }}</span></p>
<p class="right"><span class="color-blue">所属部门:</span><span class="color-white">{{ rowData[0].borrowerDepartment }}</span></p>
<p class="center"><span class="color-blue">所属部门:</span><span class="color-white">{{ rowData[0].borrowerDepartment }}</span></p>
<p :class="classLend" class="right"><span class="color-blue">借阅状态:</span><span class="color-white cell-lend">{{ rowData[0].isLendStatus }}</span></p>
</div>
<div class="dpflex">
<p class="left"><span class="color-blue">证件类型:</span><span class="color-white">{{ rowData[0].borrowerIdType }}</span></p>
<p class="right"><span class="color-blue">证件号码:</span><span class="color-white">{{ rowData[0].borrowerIdNum }}</span></p>
</div>
<div class="dpflex">
<p class="left"><span class="color-blue">电话号码:</span><span class="color-white">{{ rowData[0].borrowerTel }}</span></p>
<p class="right"><span class="color-blue">借阅日期:</span><span class="color-white">{{ rowData[0].borrowDays }}</span></p>
<p class="center"><span class="color-blue">证件号码:</span><span class="color-white">{{ rowData[0].borrowerIdNum }}</span></p>
<p class="right"><span class="color-blue">电话号码:</span><span class="color-white">{{ rowData[0].borrowerTel }}</span></p>
</div>
<div class="dpflex">
<p class="left"><span class="color-blue">借阅目的:</span><span class="color-white">{{ rowData[0].borrowGoal }}</span></p>
<p class="right"><span class="color-blue">借阅状态:</span><span class="color-white">{{ rowData[0].isLendStatus }}</span></p>
<p class="center"><span class="color-blue">借阅日期:</span><span class="color-white">{{ rowData[0].borrowDays }}</span></p>
<p class="right"><span class="color-blue">操作时间:</span><span class="color-white">{{ rowData[0].isOperationTime }}</span></p>
</div>
<p><span class="color-blue">操作时间:</span><span class="color-white">{{ rowData[0].isOperationTime }}</span></p>
</div>
<el-table :data="rowData">
<el-table-column type="index" label="序号" width="55" />
<el-table :data="rowData" style="margin-top:15px">
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="isCategoryName" label="所属门类" min-width="100" />
<el-table-column prop="isTitleName" label="题名" min-width="140" />
<el-table-column prop="isArchivesID" label="档号" min-width="130" />
@ -44,19 +37,25 @@ export default {
data() {
return {
detailVisible: false,
rowData: []
rowData: [],
classLend: ''
}
}
}
</script>
<style lang="scss" scoped>
@import '~@/assets/styles/lend-manage.scss';
::v-deep .el-dialog__body{
padding: 60px 40px 80px 40px;
}
::v-deep .el-dialog{
width: 1200px;
}
::v-deep .el-dialog .el-dialog__header .el-dialog__close::before{
position: absolute;
right: -280px;
}
p{
display: flex;
height: 40px;
@ -75,10 +74,17 @@ p{
.dpflex{
display: flex;
.left{
width: 300px;
flex: 1;
}
.center{
flex:1;
}
.right{
width: 300px;
flex: 1;
.cell-lend{
margin-left: 20px;
}
}
}
</style>

59
src/views/archivesManage/lendManage/lendConfirm/module/lendDialog.vue

@ -0,0 +1,59 @@
<template>
<div>
<el-dialog ref="dialogTable" title="借出" :visible.sync="lendFormVisible">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<p style="color:#fff;margin:0 0 20px 20px">以下档案需要先解除电子标签警报</p>
<el-table :data="table" :cell-class-name="cellWarn" height="325px">
<el-table-column type="index" label="序号" width="80" />
<el-table-column prop="isCategoryName" label="所属门类" />
<el-table-column prop="isArchivesID" label="档号" min-width="140" />
<el-table-column prop="isTitleName" label="题名" min-width="140" />
<el-table-column prop="isWarnState" label="状态" min-width="85">
<template slot-scope="scope">
<!-- 已解除 / 未解除/解除失败 -->
<span class="clear">{{ scope.row.isWarnState }}</span>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button disabled>解除警报</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
lendFormVisible: false,
table: []
}
},
methods: {
cellWarn({ row, columnIndex }) {
if (row.isWarnState === '已解除' && columnIndex === 4) {
return 'no-clear'
} else if (row.isWarnState === '未解除' && columnIndex === 4) {
return 'have-clear'
} else if (row.isWarnState === '解除失败' && columnIndex === 4) {
return 'fail-clear'
}
}
}
}
</script>
<style lang="scss" scoped>
@import '~@/assets/styles/lend-manage.scss';
::v-deep .el-dialog{
width: 950px;
height: 520px;
}
::v-deep .el-dialog .el-dialog__header .el-dialog__close::before{
position: absolute;
right: -154px;
}
</style>

42
src/views/archivesManage/lendManage/lendQuery/index.vue

@ -42,7 +42,7 @@
<!--表格渲染-->
<el-table
ref="table"
style="min-width: 100%"
style="width: 100%"
height="calc(100vh - 355px)"
:data="tableData"
:cell-class-name="cell"
@ -51,22 +51,22 @@
@row-dblclick="handleDbClick"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" width="55" />
<el-table-column prop="isLendStatus" label="借阅状态" min-width="60">
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="isLendStatus" align="center" label="借阅状态" width="100">
<template slot-scope="scope">
<!-- 已借 / 待借 -->
<span class="cell-lend">{{ scope.row.isLendStatus }}</span>
</template>
</el-table-column>
<el-table-column prop="isFieldName" label="所属门类" min-width="85" />
<el-table-column prop="isArchivesID" label="档号" min-width="130" />
<el-table-column prop="isTitleName" label="题名" min-width="130" />
<el-table-column prop="isFieldName" label="盒名称" min-width="85" />
<el-table-column prop="isStoragePath" label="存放位置" min-width="130" />
<el-table-column prop="borrowerName" label="借阅人" min-width="60" />
<el-table-column prop="borrowDays" label="借阅时间" min-width="130" />
<el-table-column prop="borrowGoal" label="借阅目的" min-width="85" />
<el-table-column v-if="false" sortable prop="isOperationTime" label="操作时间" min-width="85" />
<el-table-column prop="isFieldName" align="center" label="所属门类" width="150" />
<el-table-column prop="isArchivesID" align="center" label="档号" width="200" />
<el-table-column prop="isTitleName" align="center" label="题名" width="200" />
<el-table-column prop="isFieldName" align="center" label="盒名称" width="150" />
<el-table-column prop="isStoragePath" align="center" label="存放位置" width="250" />
<el-table-column prop="borrowerName" align="center" label="借阅人" width="90" />
<el-table-column prop="borrowDays" align="center" label="借阅时间" width="180" />
<el-table-column prop="borrowGoal" align="center" label="借阅目的" width="90" />
<el-table-column align="center" sortable prop="isOperationTime" label="操作时间" width="200" />
</el-table>
<!-- 档案详情 -->
<archiveDetail ref="archiveDetailDom" />
@ -81,7 +81,7 @@ import CRUD, { presenter } from '@crud/crud'
import pagination from '@crud/Pagination'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import data1 from '../data1.json'
import data3 from '../data3.json'
import archiveDetail from './module/archiveDetail.vue'
export default {
components: { headSlot, pagination, rrOperation, crudOperation, archiveDetail },
@ -130,7 +130,7 @@ export default {
},
methods: {
getData() {
this.tableData = data1.rows
this.tableData = data3.rows
},
selectionChangeHandler() {
console.log('selectionChangeHandler')
@ -139,18 +139,17 @@ export default {
this.$refs.table.toggleRowSelection(row)
},
cell({ row, columnIndex }) {
if (row.isLendStatus === '待借' && columnIndex === 2) {
if (row.isLendStatus === '逾期' && columnIndex === 2) {
return 'no-lend'
} else if (row.isLendStatus === '已借' && columnIndex === 2) {
} else if (row.isLendStatus === '待还' && columnIndex === 2) {
return 'have-lend'
} else if (row.isLendStatus === '' && columnIndex === 2) {
return 'other-lend'
}
},
//
handleDbClick(row) {
this.$refs.table.clearSelection()
this.$refs.archiveDetailDom.detailVisible = true
const arr = data1.rows.filter(item => item.isDocNum === row.isDocNum)
const arr = data3.rows.filter(item => item.isDocNum === row.isDocNum)
this.$refs.archiveDetailDom.rowData = arr
}
}
@ -167,7 +166,7 @@ export default {
border: 1px solid #339cff;
.el-select {
background-color: #021941;
color: #fff;
color: #339CFF;
}
.el-input__inner {
background-color: #021941;
@ -180,4 +179,7 @@ export default {
border: none;
}
}
::v-deep .el-icon-arrow-up:before{
color: #339CFF;
}
</style>

29
src/views/archivesManage/lendManage/returnArchives/index.vue

@ -7,7 +7,7 @@
<!--表格渲染-->
<el-table
ref="table"
style="min-width:100%"
style="width:100%"
height="calc(100vh - 355px)"
:data="tableData"
:cell-class-name="cell"
@ -17,24 +17,24 @@
@row-dblclick="handleDbClick"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" width="55" />
<el-table-column prop="isDocNum" :show-overflow-tooltip="true" label="单据号" min-width="100" />
<el-table-column prop="isCategoryName" label="门类名称" min-width="110" />
<el-table-column prop="isArchivesID" :show-overflow-tooltip="true" label="档号" min-width="120" />
<el-table-column prop="isTitleName" :show-overflow-tooltip="true" label="题名" min-width="120" />
<el-table-column prop="isFieldName" label="盒名称" min-width="120" />
<el-table-column prop="isStoragePath" :show-overflow-tooltip="true" label="存放位置" min-width="120" />
<el-table-column prop="borrowerName" label="借阅人" min-width="60" />
<el-table-column prop="borrowDays" :show-overflow-tooltip="true" label="借阅时间" min-width="115" />
<el-table-column prop="borrowGoal" label="借阅目的" min-width="80" />
<el-table-column prop="isLendStatus" label="借阅状态" min-width="80">
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="isDocNum" align="center" label="单据号" width="160" />
<el-table-column prop="isCategoryName" align="center" label="门类名称" width="150" />
<el-table-column prop="isArchivesID" align="center" label="档号" width="220" />
<el-table-column prop="isTitleName" align="center" label="题名" width="200" />
<el-table-column prop="isFieldName" align="center" label="盒名称" width="140" />
<el-table-column prop="isStoragePath" align="center" label="存放位置" width="220" />
<el-table-column prop="borrowerName" align="center" label="借阅人" width="100" />
<el-table-column prop="borrowDays" align="center" label="借阅时间" width="180" />
<el-table-column prop="borrowGoal" align="center" label="借阅目的" width="100" />
<el-table-column prop="isLendStatus" align="center" label="借阅状态" width="100">
<template slot-scope="scope">
<!-- 已借 / 待借 -->
<span class="cell-lend">{{ scope.row.isLendStatus }}</span>
</template>
</el-table-column>
<el-table-column prop="isHandler" label="操作人" min-width="60" />
<el-table-column sortable prop="isOperationTime" :show-overflow-tooltip="true" label="操作时间" min-width="100" />
<el-table-column prop="isHandler" align="center" label="操作人" width="100" />
<el-table-column sortable align="center" prop="isOperationTime" label="操作时间" width="180" />
</el-table>
<!-- 归还确认 -->
<el-dialog title="归还确认" :visible.sync="returnVisible" :before-close="handleClose">
@ -130,6 +130,7 @@ export default {
},
//
handleDbClick(row) {
this.$refs.table.clearSelection()
this.$refs.archiveDetailDom.detailVisible = true
const arr = data1.rows.filter(item => item.isDocNum === row.isDocNum)
this.$refs.archiveDetailDom.rowData = arr

54
src/views/archivesManage/lendManage/toLend/index.vue

@ -12,26 +12,25 @@
style="min-width: 100%"
height="calc(100vh - 355px)"
:data="tableData"
:cell-class-name="cell"
:default-sort="{ prop: 'isOperationTime', order: 'descending' }"
@selection-change="selectionChangeHandler"
@row-click="clickRowHandler"
@row-dblclick="handleDbClick"
>
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" width="55" />
<el-table-column prop="isCategoryName" label="所属门类" min-width="85" />
<el-table-column prop="isArchivesID" label="档号" :show-overflow-tooltip="true" min-width="120" />
<el-table-column prop="isTitleName" :show-overflow-tooltip="true" label="题名" min-width="120" />
<el-table-column prop="isFieldName" label="盒名称" min-width="85" />
<el-table-column prop="isStoragePath" label="存放位置" :show-overflow-tooltip="true" min-width="120" />
<el-table-column prop="isLendStatus" label="借阅状态" min-width="60">
<el-table-column type="index" label="序号" align="center" width="55" />
<el-table-column prop="isCategoryName" label="所属门类" align="center" min-width="85" />
<el-table-column prop="isArchivesID" label="档号" align="center" min-width="120" />
<el-table-column prop="isTitleName" align="center" label="题名" min-width="120" />
<el-table-column prop="isFieldName" align="center" label="盒名称" min-width="85" />
<el-table-column prop="isStoragePath" align="center" label="存放位置" min-width="120" />
<el-table-column prop="isLendStatus" align="center" label="借阅状态" min-width="60">
<template slot-scope="scope">
<!-- 已借 / 待借 -->
<!-- 待登记 -->
<span class="cell-lend">{{ scope.row.isLendStatus }}</span>
</template>
</el-table-column>
<el-table-column prop="isOperationTime" label="操作时间" min-width="85" />
<el-table-column prop="isOperationTime" align="center" label="操作时间" min-width="85" />
</el-table>
<!-- 借阅登记模态框 -->
<el-dialog
@ -138,7 +137,7 @@ import DateRangePicker from '@/components/DateRangePicker'
import CRUD, { presenter } from '@crud/crud'
import delConfirm from '../components/delConfirm.vue'
import archiveDetail from './module/archiveDetail.vue'
import data1 from '../data1.json'
import data2 from '../data2.json'
export default {
components: { headSlot, DateRangePicker, pagination, delConfirm, archiveDetail },
mixins: [presenter()],
@ -185,7 +184,7 @@ export default {
methods: {
//
getData() {
this.tableData = data1.rows
this.tableData = data2.rows
},
handleRecord() {
this.recordFormVisible = true
@ -196,6 +195,7 @@ export default {
},
//
handleDbClick(row) {
this.$refs.table.clearSelection()
this.$refs.archiveDetailDom.detailVisible = true
this.$refs.archiveDetailDom.rowData = row
},
@ -207,20 +207,30 @@ export default {
},
handleRecordConfirm() {
this.recordFormVisible = false
},
cell({ row, columnIndex }) {
if (row.isLendStatus === '待借' && columnIndex === 7) {
return 'no-lend'
} else if (row.isLendStatus === '已借' && columnIndex === 7) {
return 'have-lend'
} else if (row.isLendStatus === '' && columnIndex === 7) {
return 'other-lend'
}
}
// cell({ row, columnIndex }) {
// if (row.isLendStatus === '' && columnIndex === 7) {
// return 'no-lend'
// } else if (row.isLendStatus === '' && columnIndex === 7) {
// return 'have-lend'
// } else if (row.isLendStatus === '' && columnIndex === 7) {
// return 'other-lend'
// }
// }
}
}
</script>
<style lang="scss" scoped>
@import '~@/assets/styles/lend-manage.scss';
// @import '~@/assets/styles/lend-manage.scss';
.cell-lend{
display: inline-block;
text-align: center;
width: 76px;
height: 26px;
line-height: 26px;
color: #F65163;
border: 1px solid #F65163;
border-radius:13px ;
}
</style>

4
src/views/archivesManage/lendManage/toLend/module/archiveDetail.vue

@ -28,6 +28,9 @@ export default {
</script>
<style lang="scss" scoped>
::v-deep .el-dialog{
width: 600px;
}
::v-deep .el-dialog__body{
padding: 60px 0 80px 110px;
}
@ -46,4 +49,5 @@ p{
padding: 0 0 0 20px;
}
}
</style>

19
src/views/components/category/PreviewForm.vue

@ -3,7 +3,7 @@
<el-row :gutter="4">
<el-form ref="addOrUpdateForm" :model="addOrUpdateForm" :rules="rules" :validate-on-rule-change="false" label-width="120px">
<draggable v-bind="{draggable:'.drag-item',animation:500}" :disabled="!isDisabled" @update="datadragEnd">
<el-col v-for="(item,index) in formPreviewData" :key="index" class="drag-item" :span="item.isLine ? 24 : 12">
<el-col v-for="(item,index) in formPreviewData" :key="index" :class="['drag-item',item.fieldName === 'barcode'? 'barcode-input':'']" :span="item.isLine || item.fieldName === 'barcode' ? 24 : 12">
<el-form-item :label="item.fieldCnName" :prop="item.fieldName">
<!-- select :load-options="loadOptions"-->
<treeselect
@ -12,7 +12,7 @@
:options="item.options"
:normalizer="normalizer"
placeholder=""
:style="{ width: item.editLength+'px'}"
:style="{ width: item.editLength+14+'px'}"
:disabled="isDisabled"
:validate-event="!isDisabled"
no-options-text="无数据"
@ -22,7 +22,7 @@
<!-- text / number / textarea / popover -->
<!-- :validate-event="isDisabled" -->
<el-input
v-if="item.isInputClass !== 'select' && item.isInputClass !== 'date'"
v-if="item.isInputClass !== 'select' && item.isInputClass !== 'date' && item.fieldName !== 'barcode' "
v-model="addOrUpdateForm[item.fieldName]"
:type="item.isInputClass === 'popover'? 'text' : item.isInputClass"
:rows="item.isInputClass === 'textarea' ? 3 : ''"
@ -35,6 +35,17 @@
>
<i v-if="item.isInputClass === 'popover'" slot="suffix" class="el-input__icon iconfont icon-weibiaoti-2" @click="handleCurrentFieldName(item)" />
</el-input>
<div v-if="item.fieldName === 'barcode' " class="last-barcode">
<el-input
v-model="addOrUpdateForm[item.fieldName]"
type="text"
style="width: 510px"
:disabled="isDisabled"
:validate-event="!isDisabled"
@keyup.enter.native="isRepeatHandle(item)"
@blur="isRepeatHandle(item)"
/>
</div>
<!-- date -->
<el-date-picker
v-if="item.isInputClass === 'date'"
@ -292,7 +303,7 @@ export default {
<style lang="scss" scoped>
.preview-content {
width: 640px !important;
height: calc(100vh - 312px);
// height: calc(100vh - 312px);
padding: 20px 0 0 0 !important;
margin-top: 0 !important;
border-radius: 4px;

Loading…
Cancel
Save