黄陂项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

411 lines
14 KiB

import qs from 'qs'
import { exportFile } from '@/utils/index'
import JsBarcode from 'jsbarcode'
import { FetchTableDisplayFields, FetchInitArchivesView, FetchFormDisplayFields, FetchPrintArchivesBarcode } from '@/api/archivesManage/archivesList'
export const archivesCrud = {
filters: {
creatBarCode(barCodeData, codePrintData, barCodeText) {
// console.log('触发条码生成事件')
console.log('codePrintData', codePrintData)
console.log('barCodeText', barCodeText)
const canvas = document.createElement('canvas')
// 'fantasy', // 设置文本的字体
JsBarcode(canvas, barCodeData, {
format: 'CODE128',
displayValue: true,
text: barCodeText,
fontOptions: 'bold', // 使文字加粗体或变斜体
font: 'arial',
margin: 15,
height: 120,
width: 5,
fontSize: 36,
textMargin: 6,
textPosition: 'top'
})
return canvas.toDataURL('image/png')
}
},
// 组件共用属性
data() {
return {
permission: {
add: [],
edit: [],
del: [],
download: []
},
page: {
page: 1,
size: 10,
total: 0
},
codeLoading: false,
selectedRows: [],
codePrintData: [],
storageTxt: [],
borrowTxt: [],
tableDisplayFields: [], // table-list-title字段
getTableDisplayFieldsLoading: false, // table-loading
projectTableHeight: null,
anjuanTableHeight: null,
juanneiTableHeight: null,
formVisible: false,
formTitle: '新建档案',
formPreviewData: [], // 预览界面data
totalSumAll: 0, // 删除时,内部文件数据求和
arrySort: [], // 多项sort-query
selections: [], // table已选择的
categoryId: null, // 上传附件使用
parentsId: null, // 父id
arcId: null, // 档案ID
yearGroup: [], // 智能分类 - 年度
uploadFileVisible: false, // 上传附件
isDesFormType: null // 区分是门类得还是档案得
}
},
// 组件共用方法
methods: {
// 搜索-select
querySelect(name, val) {
this[name] = val
},
rowKey(row) {
return row.id
},
// table选中加上选中状态
tableRowClassName({ row, rowIndex }) {
// console.log('添加类名', row, rowIndex)
let color = ''
this.selections.forEach(item => {
if (item.id === row.id) {
color = 'rowStyle'
}
})
return color
},
// 案卷 / 卷内 / 文件 导出
doExport(type) {
this.crud.downloadLoading = true
if (type === 0 && this.selectedCategory.isType === 2) {
this.parentsId = this.projectSelection.id
} else if (type === 1 && this.selectedCategory.isType === 2) {
this.parentsId = this.anjuanSelection.id
} else {
this.parentsId = null
}
const params = {
'categoryId': this.categoryId,
'parentsId': this.parentsId
}
exportFile(this.baseApi + '/api/archives/exportArchives?' + qs.stringify(params))
this.crud.downloadLoading = false
},
// table - 表头项
getTableItemCommon(type) {
if (type === 0) {
this.categoryId = this.selectedCategory.id
} else if (type === 1) {
if (this.selectedCategory.isType === 2) {
if (this.selectedCategory.children.length !== 0) {
this.categoryId = this.selectedCategory.children[0].id
}
} else {
this.categoryId = this.selectedCategory.id
}
} else if (type === 2) {
if (this.selectedCategory.isType === 2) {
if (this.selectedCategory.children.length !== 0) {
if (this.selectedCategory.children[0].children.length !== 0) {
this.categoryId = this.selectedCategory.children[0].children[0].id
}
}
} else if (this.selectedCategory.isType === 3) {
if (this.selectedCategory.children.length !== 0) {
this.categoryId = this.selectedCategory.children[0].id
}
} else {
this.categoryId = this.selectedCategory.id
}
}
this.getTableDisplayFieldsLoading = true
this.selections = []
FetchTableDisplayFields({ categoryId: this.categoryId }).then(data => {
if (data) {
this.arrySort = []
this.tableDisplayFields = data
this.getTableDisplayFieldsLoading = false
const orderSortArry = this.tableDisplayFields.filter(item => item.queue).sort((a, b) => a.queue - b.queue)
orderSortArry.forEach(item => {
this.arrySort.push(item.fieldName + ',' + item.displayOrderBy)
})
}
})
},
handleCurrentPage(val) {
this.page.page = val
// console.log(this.$refs.table.selection)
this.getTableList()
this.$nextTick(() => {
this.selections = this.$refs.table.selection
})
},
// table - list
getListCommon(name, heightName, type) {
if (type === 0) {
this.parentsId = null
} else if (type === 1) {
if (this.selectedCategory.isType === 3 || this.selectedCategory.isType === 5) {
this.parentsId = null
} else {
this.parentsId = this.projectSelection.id
}
} else if (type === 2) {
if (this.selectedCategory.isType !== 4) {
this.parentsId = this.anjuanSelection.id
} else {
this.parentsId = null
}
}
if (this.categoryId !== null) { // 防止项目下无案卷门类情况
this.selections = []
// this.page.page = isNaN(this.page.page - 1) ? 0 : this.page.page - 1
this.formVisible = false
this.getTableDisplayFieldsLoading = true
const params = {
'categoryId': this.categoryId,
'parentsId': this.parentsId,
'isdel': this.recycleMain.isdel,
'page': this.page.page - 1,
'size': this.page.size,
'sort': this.arrySort,
'queryType': this.query.queryType,
'queryTitle': this.query.queryTitle,
'nativePlace': this.query.nativePlace,
'idType': this.query.idType,
'idNumber': this.query.idNumber,
'itemNo': this.query.itemNo,
'archiveCtgNo': this.query.archiveCtgNo,
'responsibleby': this.query.responsibleby,
'archiveNo': this.query.archiveNo,
'archiveYear': this.smartQuery.archiveYear,
'department': this.smartQuery.department,
'retention': this.smartQuery.retention,
'securityClass': this.smartQuery.securityClass,
'organizationMatter': this.smartQuery.organizationMatter,
'fondsNo': this.smartQuery.fondsNo,
'recordType': this.smartQuery.recordType,
'mediumType': this.smartQuery.mediumType,
'documentNo': this.query.documentNo,
'docNo': this.query.docNo,
'barcode': this.query.barcode,
'folderLocation': this.query.folderLocation,
'tempNo': this.query.tempNo
}
FetchInitArchivesView(params).then(data => {
this.getTableDisplayFieldsLoading = false
if (data) {
this[name] = data.list.content
this.yearGroup = data.yearGroup
this.page.total = data.list.totalElements
// 自适应高度
if (this[name].length === 0 || this[name].length < 10) {
this[heightName] = `calc(100vh - 344px)`
} else {
const h = '100vh'
// this[heightName] = `calc(${h} - 434px)`
this[heightName] = `calc(${h} - 344px)`
}
if (name === 'anjuanData' || name === 'junneiData') {
this[name].forEach((item, index) => {
// 入库状态
if (item.is_storage === 0) {
this.storageTxt[index] = '未入'
if (item.is_borrow === '') {
this.borrowTxt[index] = '-'
}
} else if (item.is_storage === 1) {
this.storageTxt[index] = '待入'
if (item.is_borrow === '') {
this.borrowTxt[index] = '-'
}
} else if (item.is_storage === 2) {
this.storageTxt[index] = '已入'
if (item.is_borrow === '') {
this.borrowTxt[index] = '在库'
}
} else if (item.is_storage === 3) {
this.storageTxt[index] = '待出'
if (item.is_borrow === '') {
this.borrowTxt[index] = '-'
}
} else if (item.is_storage === '') {
this.storageTxt[index] = '未入'
if (item.is_borrow === '') {
this.borrowTxt[index] = '-'
}
}
// 借阅状态
if (item.is_borrow === 1) {
this.borrowTxt[index] = '待借'
} else if (item.is_borrow === 2) {
this.borrowTxt[index] = '待借'
} else if (item.is_borrow === 3) {
this.borrowTxt[index] = '已借'
} else if (item.is_borrow === -1) {
this.borrowTxt[index] = '在库'
}
})
}
}
})
}
},
// 著录界面-form/详情-api
handleForm(type, title, isAnOrJuan) {
if (type === 'add') {
this.formTitle = '新增' + title
this.arcId = null
// this.parentsId = this[name].id //案卷和卷内有 不确定
} else if (type === 'edit') {
this.arcId = this.selections[0].id
this.formTitle = '编辑' + title
}
this.formVisible = true
this.form.dictionaryConfigId = {}
this.formPreviewData = []
// 档案预编辑获取字段
const params = {
categoryId: this.categoryId,
archivesId: this.arcId
}
this.getFormInfo(params, type, isAnOrJuan)
},
getFormInfo(params, type, isAnOrJuan) {
FetchFormDisplayFields(params).then(data => {
this.formPreviewData = data.showFiled
this.$nextTick(() => {
if (type === 'edit') {
this.$refs.previewForm.addOrUpdateForm = data.echo
this.$refs.previewForm.isEdit = true
} else {
this.$refs.previewForm.isEdit = false
if (this.recycleMain.selectedCategory.isType !== 5) {
// 新增时拿到项目和案卷的相同的字段的值
this.formPreviewData.forEach(item => {
if (isAnOrJuan === 1) {
if (this.recycleMain.selectedCategory.isType !== 3) {
if (this.recycleMain.projectSelection[item.fieldName]) {
this.$refs.previewForm.addOrUpdateForm = JSON.parse(JSON.stringify(this.recycleMain.projectSelection))
}
}
} else if (isAnOrJuan === 2) {
if (this.recycleMain.anjuanSelection[item.fieldName]) {
this.$refs.previewForm.addOrUpdateForm = JSON.parse(JSON.stringify(this.recycleMain.anjuanSelection))
}
}
})
}
}
this.isDesFormType = 'arcives'
this.$refs.previewForm.FetchNoFormatField(this.categoryId)
})
})
},
// form - submit
handlerArchivesSubmit() {
this.$refs.previewForm.submitForm('addOrUpdateForm', this.categoryId)
this.selections = []
},
// 选择删除
toDelete(data) {
// 已装盒的档案不可删除
// const indexCaseBool = data.findIndex(item => item.case_no !== '')
// if (indexCaseBool !== -1) {
// this.$message.error('已装盒的档案不可删除!')
// } else {
// this.$refs.deltArchives.deleteVisible = true
// this.getTotalSumAll()
// }
this.$refs.deltArchives.deleteVisible = true
this.getTotalSumAll()
},
getTotalSumAll(data) {
this.totalSumAll = 0
this.selections.map((item) => { if (!isNaN(item.children_num)) this.totalSumAll += item.children_num })
if (isNaN(this.totalSumAll)) {
return 0
}
return this.totalSumAll
},
// 打印条码
printArchivesCode(data) {
this.codeLoading = true
const params = data.map(item => {
return item.id
})
FetchPrintArchivesBarcode(params).then(res => {
if (res && res.length !== 0) {
this.selectedRows = res
} else {
this.selectedRows = []
this.$message({
message: '无相关可打印条码数据!',
type: 'warning'
})
return false
}
this.$nextTick(() => {
this.codePrintData.count = this.selectedRows.length
var printIframe = this.$refs.printIframe
var html = this.$refs.printDiv.innerHTML
printIframe.setAttribute('srcdoc', html)
printIframe.onload = function() {
console.log(printIframe.contentWindow)
// 去掉iframe里面的dom的body的padding margin的默认数值
printIframe.contentWindow.document.body.style.padding = '0px'
printIframe.contentWindow.document.body.style.margin = '0px'
// 开始打印
printIframe.contentWindow.focus()
printIframe.contentWindow.print()
}
})
// this.crud.refresh()
this.codeLoading = false
})
},
// 删除 - 关闭
handleClose(done) {
this.formVisible = false
done()
},
/* 重新渲染table组件 防止table-fixed 错位 配合watch-table数据 */
doLayout() {
this.$nextTick(() => {
this.$refs.table.doLayout()
})
},
// 上传附件
uploadFile() {
this.uploadFileVisible = true
this.arcId = this.selections[0].id
this.$nextTick(() => {
this.$refs.uploadFile.tableData = []
this.$refs.uploadFile.getFileList()
})
},
// 还原
handleRestore() {
this.$refs.restore.restoreVisible = true
}
},
// 组件挂载时的共用方法
mounted() {
}
}