Browse Source

bug修复/Ai知识图谱/AI智能编研部分

master
xuhuajiao 3 months ago
parent
commit
8b3d72fdaa
  1. 2
      .env.development
  2. 2
      .env.production
  3. 2
      public/static/config.js
  4. 12
      src/layout/components/Sidebar/index.vue
  5. 9
      src/utils/upload.js
  6. 8
      src/views/AIAssistant/AIDigitalHuman/index.vue
  7. 53
      src/views/AIAssistant/AIIntelligentCoding/aiForm.vue
  8. 4
      src/views/AIAssistant/AIIntelligentCoding/index.vue
  9. 40
      src/views/AIAssistant/AIknowledgeGraph/index.vue
  10. 2
      src/views/archivesManage/managementLibrary/index.vue
  11. 66
      src/views/archivesManage/managementLibrary/mixins/index.js
  12. 4
      src/views/archivesManage/managementLibrary/module/collectHeader.vue
  13. 6
      src/views/archivesManage/managementLibrary/module/exportZip/index.vue
  14. 7
      src/views/archivesManage/managementLibrary/module/handOverForm.vue
  15. 52
      src/views/archivesManage/managementLibrary/module/packingBox/index.vue
  16. 14
      src/views/archivesManage/openInventory/module/detail.vue
  17. 8
      src/views/collectReorganizi/batchConnection/module/form.vue
  18. 3
      src/views/collectReorganizi/collectionLibrary/index.vue
  19. 7
      src/views/collectReorganizi/collectionLibrary/module/archivesInfo/index.vue
  20. 19
      src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue
  21. 9
      src/views/collectReorganizi/collectionLibrary/module/packingBox/index.vue
  22. 6
      src/views/components/category/PreviewForm.vue
  23. 36
      src/views/components/echarts/graph.vue
  24. 20
      src/views/prearchiveLibrary/index.vue
  25. 5
      src/views/prearchiveLibrary/module/batchFile.vue
  26. 5
      src/views/prearchiveLibrary/module/moveFile.vue
  27. 2
      src/views/system/processManage/runningProcess/module/businessDetails/index.vue
  28. 5
      src/views/system/processManage/runningProcess/module/detail.vue
  29. 3
      src/views/system/user/processCenter/module/form.vue

2
.env.development

@ -4,7 +4,7 @@ ENV = 'development'
# 许镇-本地服地址 # 许镇-本地服地址
VUE_APP_BASE_API = 'http://192.168.99.72:11100' VUE_APP_BASE_API = 'http://192.168.99.72:11100'
VUE_APP_AIDEEPSEEK_API = 'http://192.168.99.86:11434'
VUE_APP_AIDEEPSEEK_API = 'http://192.168.99.86:12123'
# VUE_APP_BASE_API = 'http://192.168.99.71:11110' # VUE_APP_BASE_API = 'http://192.168.99.71:11110'
# VUE_APP_BASE_API = 'http://192.168.99.107:11100' # VUE_APP_BASE_API = 'http://192.168.99.107:11100'

2
.env.production

@ -3,7 +3,7 @@ ENV = 'production'
# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置 # 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置
# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http # 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http
# VUE_APP_BASE_API = 'http://192.168.99.107:11100' # VUE_APP_BASE_API = 'http://192.168.99.107:11100'
VUE_APP_AIDEEPSEEK_API = 'http://192.168.99.86:11434'
VUE_APP_AIDEEPSEEK_API = 'http://192.168.99.86:12123'
# VUE_APP_BASE_API = 'http://27.19.215.77:11100' # VUE_APP_BASE_API = 'http://27.19.215.77:11100'
# VUE_APP_BASE_API = 'http://27.16.212.58:11100' # VUE_APP_BASE_API = 'http://27.16.212.58:11100'
VUE_APP_BASE_API = 'http://192.168.99.71:11110' VUE_APP_BASE_API = 'http://192.168.99.71:11110'

2
public/static/config.js

@ -3,7 +3,7 @@ window.g = {
// ApiUrl: 'http://27.16.212.58:11100', // 配置服务器地址, // ApiUrl: 'http://27.16.212.58:11100', // 配置服务器地址,
ApiUrl: 'http://192.168.99.71:11110', ApiUrl: 'http://192.168.99.71:11110',
// ApiUrl: 'http://192.168.99.107:11100', // ApiUrl: 'http://192.168.99.107:11100',
AIDeepSeekUrl:'http://192.168.99.86:11434',
AIDeepSeekUrl:'http://192.168.99.86:12123',
// ParentPage: { // 后续看需求配置 // ParentPage: { // 后续看需求配置
// CrossDomainProxyUrl: '/Home/CrossDomainProxy', // CrossDomainProxyUrl: '/Home/CrossDomainProxy',
// BtnsApi: '/api/services/app/Authorization/GetBtns', // BtnsApi: '/api/services/app/Authorization/GetBtns',

12
src/layout/components/Sidebar/index.vue

@ -10,6 +10,7 @@
:active-text-color="variables.menuActiveText" :active-text-color="variables.menuActiveText"
:collapse-transition="false" :collapse-transition="false"
mode="vertical" mode="vertical"
@select="handleSelect"
> >
<sidebar-item v-for="route in sidebarRouters" :key="route.path" :item="route" :base-path="route.path" /> <sidebar-item v-for="route in sidebarRouters" :key="route.path" :item="route" :base-path="route.path" />
</el-menu> </el-menu>
@ -32,6 +33,8 @@ export default {
activeMenu() { activeMenu() {
const route = this.$route const route = this.$route
const { meta, path } = route const { meta, path } = route
console.log('meta', meta)
console.log('path', path)
// if set path, the sidebar will highlight the path you set // if set path, the sidebar will highlight the path you set
if (meta.activeMenu) { if (meta.activeMenu) {
return meta.activeMenu return meta.activeMenu
@ -47,6 +50,15 @@ export default {
isCollapse() { isCollapse() {
return !this.sidebar.opened return !this.sidebar.opened
} }
},
mounted() {
console.log('sidebarRouters', this.sidebarRouters)
},
methods: {
handleSelect(key, keyPath) {
console.log('el-menu')
console.log(key, keyPath)
}
} }
} }
</script> </script>

9
src/utils/upload.js

@ -136,3 +136,12 @@ export function aiUpload(api, file, fileJsonString) {
} }
return axios.post(api, data, config) return axios.post(api, data, config)
} }
// AI 编研
export function aiEditUpload(api, file) {
var data = new FormData()
data.append('files', file)
const config = {
headers: { 'Authorization': getToken() }
}
return axios.post(api, data, config)
}

8
src/views/AIAssistant/AIDigitalHuman/index.vue

@ -34,9 +34,10 @@
<div class="hot-word"> <div class="hot-word">
<span v-for="(word, index) in hotWords" :key="index" @click="handleHotWordClick(word)">{{ word }}</span> <span v-for="(word, index) in hotWords" :key="index" @click="handleHotWordClick(word)">{{ word }}</span>
</div> </div>
<!-- :disabled="isSendBuonDisabled" -->
<div style="display: flex; justify-content: flex-end; align-items: center;"> <div style="display: flex; justify-content: flex-end; align-items: center;">
<div :class="isModelDeepseek ? 'model-select' : 'model-select active'" @click="selectModel"><i class="iconfont icon-shendusikao" />深度思考</div> <div :class="isModelDeepseek ? 'model-select' : 'model-select active'" @click="selectModel"><i class="iconfont icon-shendusikao" />深度思考</div>
<span class="send-button" :class="{ 'send-disabled-button': isSendButtonDisabled }" :disabled="isSendBuonDisabled" @click="sendMessage">发送</span>
<span class="send-button" :class="{ 'send-disabled-button': isSendButtonDisabled }" @click="sendMessage">发送</span>
</div> </div>
</div> </div>
</div> </div>
@ -114,6 +115,7 @@ export default {
if (this.inputMessage.trim() === '') return if (this.inputMessage.trim() === '') return
const linkSrc = process.env.NODE_ENV === 'production' ? window.g.AIDeepSeekUrl : process.env.VUE_APP_AIDEEPSEEK_API const linkSrc = process.env.NODE_ENV === 'production' ? window.g.AIDeepSeekUrl : process.env.VUE_APP_AIDEEPSEEK_API
console.log('linkSrc', linkSrc)
this.messages.push({ sender: 'user', content: this.inputMessage }) this.messages.push({ sender: 'user', content: this.inputMessage })
this.inputMessage = '' this.inputMessage = ''
@ -126,6 +128,8 @@ export default {
method: 'POST', method: 'POST',
headers: { headers: {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
// 'x-api-key': 'yxk_ollama_83560792'
// 'Authorization': 'Bearer yxk_ollama_83560792'
}, },
body: JSON.stringify({ body: JSON.stringify({
model: this.modelVal, model: this.modelVal,
@ -463,7 +467,7 @@ export default {
} }
::v-deep .v-note-wrapper .v-note-panel .v-note-show .v-show-content{ ::v-deep .v-note-wrapper .v-note-panel .v-note-show .v-show-content{
border-radius: 12px; border-radius: 12px;
padding: 0 !important;
// padding: 0 !important;
} }
::v-deep .el-textarea__inner { ::v-deep .el-textarea__inner {
resize: none; resize: none;

53
src/views/AIAssistant/AIIntelligentCoding/aiForm.vue

@ -123,6 +123,7 @@
import { form } from '@crud/crud' import { form } from '@crud/crud'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { FetchDictionaryTree } from '@/api/system/dict' import { FetchDictionaryTree } from '@/api/system/dict'
import { aiEditUpload } from '@/utils/upload'
const defaultForm = { id: null, title: null, researchType: null } const defaultForm = { id: null, title: null, researchType: null }
export default { export default {
@ -158,11 +159,13 @@ export default {
}, },
isUploading: false, isUploading: false,
progress: 0, progress: 0,
animationDuration: 0
animationDuration: 0,
context: ''
} }
}, },
computed: { computed: {
...mapGetters([ ...mapGetters([
'baseApi',
'user' 'user'
]) ])
}, },
@ -210,26 +213,33 @@ export default {
// const formData = new FormData() // const formData = new FormData()
// formData.append('file', file) // formData.append('file', file)
// try {
// //
// const response = await axios.post('/upload', formData, {
// headers: {
// 'Content-Type': 'multipart/form-data'
// }
// })
try {
aiEditUpload(this.baseApi + '/api/ai/uploadAIResearchFiles',
file,
).then(res => {
console.log('res.data.data', res.data.data)
if (res.data.data !== null) {
this.context = res.data.data.results[0].content
this.$message({ message: '编研附件传输成功', type: 'success', offset: 8 })
} else {
this.$message({ message: '编研附件传输失败', type: 'error', offset: 8 })
}
}).catch(() => {
// this.$message({ message: '', type: 'error', offset: 8 })
})
// const endTime = Date.now()
// const uploadTime = (endTime - startTime) / 1000
// this.animationDuration = uploadTime
// const endTime = Date.now()
// const uploadTime = (endTime - startTime) / 1000
// this.animationDuration = uploadTime
// //
// this.$message.success('')
// } catch (error) {
// //
// this.$message.error('')
// } finally {
// this.isUploading = false
// }
// //
// this.$message.success('')
} catch (error) {
//
// this.$message.error('')
} finally {
this.isUploading = false
}
const uploadTime = 2 const uploadTime = 2
this.animationDuration = uploadTime this.animationDuration = uploadTime
@ -281,7 +291,10 @@ export default {
try { try {
this.controller = new AbortController() this.controller = new AbortController()
const signal = this.controller.signal const signal = this.controller.signal
this.arequestData.messages.push({ role: 'user', content: this.inputValue })
// 'content': `${context}\n\n${prompt}`
// this.inputValue
console.log('this.context', this.context)
this.arequestData.messages.push({ role: 'user', content: `${this.context}\n\n${this.inputValue}` })
const linkSrc = process.env.NODE_ENV === 'production' ? window.g.AIDeepSeekUrl : process.env.VUE_APP_AIDEEPSEEK_API const linkSrc = process.env.NODE_ENV === 'production' ? window.g.AIDeepSeekUrl : process.env.VUE_APP_AIDEEPSEEK_API
const response = await fetch(linkSrc + '/api/chat', { const response = await fetch(linkSrc + '/api/chat', {
method: 'POST', method: 'POST',

4
src/views/AIAssistant/AIIntelligentCoding/index.vue

@ -101,8 +101,8 @@ export default {
mixins: [presenter(), crud()], mixins: [presenter(), crud()],
cruds() { cruds() {
return CRUD({ return CRUD({
url: 'api/archivesUtilize/initResearchList',
title: '档案编研',
url: 'api/ai/initResearchAI',
title: 'AI智能编研',
crudMethod: { ...crudEditing }, crudMethod: { ...crudEditing },
optShow: { optShow: {
add: false, add: false,

40
src/views/AIAssistant/AIknowledgeGraph/index.vue

@ -43,7 +43,7 @@
</template> </template>
<script> <script>
import crudCategory from '@/api/system/category/category' import crudCategory from '@/api/system/category/category'
import { FetchInitShowByCategory } from '@/api/ai/ai'
// import { FetchInitShowByCategory } from '@/api/ai/ai'
import CRUD, { presenter, header } from '@crud/crud' import CRUD, { presenter, header } from '@crud/crud'
import graph from '@/views/components/echarts/graph.vue' import graph from '@/views/components/echarts/graph.vue'
@ -83,7 +83,6 @@ export default {
mounted() { mounted() {
}, },
methods: { methods: {
[CRUD.HOOK.afterRefresh]() { [CRUD.HOOK.afterRefresh]() {
this.crud.data = this.filterData(this.transformData(this.crud.data)) this.crud.data = this.filterData(this.transformData(this.crud.data))
this.$nextTick(() => { this.$nextTick(() => {
@ -114,6 +113,7 @@ export default {
} else { } else {
this.defaultSetting(currentKey) this.defaultSetting(currentKey)
} }
console.log('currentKey', currentKey)
if (currentKey && currentKey.id) { if (currentKey && currentKey.id) {
this.$nextTick(() => { this.$nextTick(() => {
// //
@ -138,26 +138,26 @@ export default {
if (val) { if (val) {
localStorage.setItem('currentArchivesKey', JSON.stringify(val)) localStorage.setItem('currentArchivesKey', JSON.stringify(val))
this.selectedCategory = val this.selectedCategory = val
// this.getOrigionGraphData('E0B3627CBED49E53609245', 'Category')
this.$refs.graphRefs.getOrigionGraphData(null, 'E0B3627CBED49E53609245', 'Category')
}
},
getOrigionGraphData(id, tableName) {
// this.selectedCategory.cnName
// E0B3627CBED49E53609245
const parmas = {
'searchKey': 'id', // id / title
'searchValue': id,
'tableName': tableName //
this.$nextTick(() => {
this.$refs.graphRefs.resetAllData() // allData
this.$refs.graphRefs.getOrigionGraphData(null, val.id, 'Category')
})
} }
FetchInitShowByCategory(parmas).then((res) => {
console.log(res)
this.graphData = res
}).catch(err => {
console.log(err)
})
}, },
// getOrigionGraphData(id, tableName) {
// const parmas = {
// 'searchKey': 'id', // id / title
// 'searchValue': id,
// 'tableName': tableName, //
// 'querySize': 10
// }
// FetchInitShowByCategory(parmas).then((res) => {
// console.log(res)
// this.graphData = res
// }).catch(err => {
// console.log(err)
// })
// },
filterData(data) { filterData(data) {
return data.filter(node => { return data.filter(node => {
if (node.children && node.children.length > 0) { if (node.children && node.children.length > 0) {

2
src/views/archivesManage/managementLibrary/index.vue

@ -400,7 +400,7 @@ export default {
if (this.selectedCategory.arrangeType === 3) { if (this.selectedCategory.arrangeType === 3) {
const tablistEle = this.$refs.projectEle const tablistEle = this.$refs.projectEle
tablistEle.page.page = 0 tablistEle.page.page = 0
tablistEle.currentPage = 0
tablistEle.currentPage = 1
// //
if (isQuickFilter) { if (isQuickFilter) {
tablistEle.$refs.collectHeaderRef.getInitArchivesClass() tablistEle.$refs.collectHeaderRef.getInitArchivesClass()

66
src/views/archivesManage/managementLibrary/mixins/index.js

@ -154,17 +154,31 @@ export const manageLibraryCrud = {
FetchInitContorlView(params).then((res) => { FetchInitContorlView(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
this.parentsData.listCategory = res.category this.parentsData.listCategory = res.category
const baseCategory = res.category.id
if (categoryLevel === 1) { if (categoryLevel === 1) {
// 项目 // 项目
const projectObj = this.parentsData.$refs.projectEle const projectObj = this.parentsData.$refs.projectEle
this.projectData = res.list.content
// this.projectData = res.list.content
this.projectData = res.list.content.map(item => {
return {
...item,
baseCategory: baseCategory
}
})
this.page.total = res.list.totalElements this.page.total = res.list.totalElements
this.yearData = res.yearGroup this.yearData = res.yearGroup
if (this.yearData && type !== 'quickFilter') { if (this.yearData && type !== 'quickFilter') {
this.$emit('myYearEvent', this.yearData) this.$emit('myYearEvent', this.yearData)
} }
if (type === 'search') { if (type === 'search') {
projectObj.projectData = res.list.content
// projectObj.projectData = res.list.content
this.projectData = res.list.content.map(item => {
return {
...item,
baseCategory: baseCategory
}
})
projectObj.currentPage = this.page.page + 1 projectObj.currentPage = this.page.page + 1
// projectObj.page.page = 1 // projectObj.page.page = 1
// projectObj.page.size = 10 // projectObj.page.size = 10
@ -174,7 +188,13 @@ export const manageLibraryCrud = {
} else if (categoryLevel === 2) { } else if (categoryLevel === 2) {
// 案卷 // 案卷
const anjuanObj = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList const anjuanObj = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList
this.anjuanData = res.list.content
// this.anjuanData = res.list.content
this.anjuanData = res.list.content.map(item => {
return {
...item,
baseCategory: baseCategory
}
})
this.page.total = res.list.totalElements this.page.total = res.list.totalElements
this.yearData = res.yearGroup this.yearData = res.yearGroup
if (this.yearData && type !== 'quickFilter') { if (this.yearData && type !== 'quickFilter') {
@ -182,7 +202,13 @@ export const manageLibraryCrud = {
} }
// 搜索/新增/编辑 非 案卷是主页的时候 // 搜索/新增/编辑 非 案卷是主页的时候
if (type === 'search') { if (type === 'search') {
anjuanObj.anjuanData = res.list.content
// anjuanObj.anjuanData = res.list.content
anjuanObj.anjuanData = res.list.content.map(item => {
return {
...item,
baseCategory: baseCategory
}
})
anjuanObj.currentPage = this.page.page + 1 anjuanObj.currentPage = this.page.page + 1
// anjuanObj.page.page = 1 // anjuanObj.page.page = 1
// anjuanObj.page.size = 10 // anjuanObj.page.size = 10
@ -193,7 +219,13 @@ export const manageLibraryCrud = {
if (this.isTitleType === 3) { if (this.isTitleType === 3) {
// 案卷下的未整理 / 文件为主页时 // 案卷下的未整理 / 文件为主页时
const wjObj = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList const wjObj = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList
this.anjuanData = res.list.content
// this.anjuanData = res.list.content
this.anjuanData = res.list.content.map(item => {
return {
...item,
baseCategory: baseCategory
}
})
this.page.total = res.list.totalElements this.page.total = res.list.totalElements
this.yearData = res.yearGroup this.yearData = res.yearGroup
if (this.yearData && type !== 'quickFilter') { if (this.yearData && type !== 'quickFilter') {
@ -201,7 +233,13 @@ export const manageLibraryCrud = {
} }
if (type === 'search') { if (type === 'search') {
console.log('wjObj', wjObj) console.log('wjObj', wjObj)
wjObj.anjuanData = res.list.content
// wjObj.anjuanData = res.list.content
wjObj.anjuanData = res.list.content.map(item => {
return {
...item,
baseCategory: baseCategory
}
})
wjObj.currentPage = this.page.page + 1 wjObj.currentPage = this.page.page + 1
// wjObj.page.page = 1 // wjObj.page.page = 1
// wjObj.page.size = 10 // wjObj.page.size = 10
@ -210,7 +248,13 @@ export const manageLibraryCrud = {
} }
} else { } else {
// 卷内 // 卷内
this.junneiData = res.list.content
// this.junneiData = res.list.content
this.junneiData = res.list.content.map(item => {
return {
...item,
baseCategory: baseCategory
}
})
this.page.total = res.list.totalElements this.page.total = res.list.totalElements
if (type === 'search') { if (type === 'search') {
this.parentsData.$refs.juanneiEle.junneiData = res.list.content this.parentsData.$refs.juanneiEle.junneiData = res.list.content
@ -223,7 +267,13 @@ export const manageLibraryCrud = {
} }
} else { } else {
// 原文 // 原文
this.fileData = res.list.content
// this.fileData = res.list.content
this.fileData = res.list.content.map(item => {
return {
...item,
baseCategory: baseCategory
}
})
this.page.total = res.list.totalElements this.page.total = res.list.totalElements
if (type === 'search') { if (type === 'search') {
this.parentsData.$refs.fileEle.fileData = res.list.content this.parentsData.$refs.fileEle.fileData = res.list.content

4
src/views/archivesManage/managementLibrary/module/collectHeader.vue

@ -705,6 +705,8 @@ export default {
} }
FetchRestoreArchives(params).then((res) => { FetchRestoreArchives(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
localStorage.removeItem('currentPageSize')
localStorage.removeItem('currentPage')
this.$message({ message: res, type: 'success', offset: 8 }) this.$message({ message: res, type: 'success', offset: 8 })
this.handleSearch(this.collectLevel) this.handleSearch(this.collectLevel)
} else { } else {
@ -739,6 +741,8 @@ export default {
} }
FetchCompleteDelArchives(params).then((res) => { FetchCompleteDelArchives(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
localStorage.removeItem('currentPageSize')
localStorage.removeItem('currentPage')
this.$message({ message: res, type: 'success', offset: 8 }) this.$message({ message: res, type: 'success', offset: 8 })
this.handleSearch(this.collectLevel) this.handleSearch(this.collectLevel)
} else { } else {

6
src/views/archivesManage/managementLibrary/module/exportZip/index.vue

@ -14,7 +14,7 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="text" @click="handleClose">取消</el-button> <el-button type="text" @click="handleClose">取消</el-button>
<el-button type="primary" @click.native="onSubmitExport('form')">确定</el-button>
<el-button :loading="btnLoading" type="primary" @click.native="onSubmitExport('form')">确定</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -39,6 +39,7 @@ export default {
}, },
data() { data() {
return { return {
btnLoading: false,
exportZipVisible: false, exportZipVisible: false,
form: { form: {
catalog: true, catalog: true,
@ -58,13 +59,16 @@ export default {
methods: { methods: {
onSubmitExport(formName) { onSubmitExport(formName) {
this.printTitle = this.form.module this.printTitle = this.form.module
this.btnLoading = true
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
this.$message({ message: 'submit', offset: 8 }) this.$message({ message: 'submit', offset: 8 })
this.exportZipVisible = false this.exportZipVisible = false
this.$refs[formName].resetFields() this.$refs[formName].resetFields()
this.btnLoading = false
} else { } else {
console.log('error submit!!') console.log('error submit!!')
this.btnLoading = false
return false return false
} }
}) })

7
src/views/archivesManage/managementLibrary/module/handOverForm.vue

@ -31,7 +31,7 @@
</div> </div>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitHandOverForm">提交</el-button>
<el-button :loading="btnLoading" type="primary" @click="submitHandOverForm">提交</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -71,6 +71,7 @@ export default {
}, },
data() { data() {
return { return {
btnLoading: false,
overType: 3, overType: 3,
targetFondsNo: null, targetFondsNo: null,
overDetialTitle: '', overDetialTitle: '',
@ -190,6 +191,7 @@ export default {
}) })
}, },
submitHandOverForm() { submitHandOverForm() {
this.btnLoading = true
this.$refs['form'].validate((valid) => { this.$refs['form'].validate((valid) => {
if (valid) { if (valid) {
const archivesIds = [] const archivesIds = []
@ -222,11 +224,14 @@ export default {
this.$message({ message: res.message, type: 'error', offset: 8 }) this.$message({ message: res.message, type: 'error', offset: 8 })
} }
this.handleClose() this.handleClose()
this.btnLoading = false
}).catch(err => { }).catch(err => {
console.log(err) console.log(err)
this.btnLoading = false
}) })
} else { } else {
console.log('error submit!!') console.log('error submit!!')
this.btnLoading = false
return false return false
} }
}) })

52
src/views/archivesManage/managementLibrary/module/packingBox/index.vue

@ -34,7 +34,7 @@
> >
<el-table-column prop="create_date" label="操作" width="80" align="center"> <el-table-column prop="create_date" label="操作" width="80" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button class="packing-handle-btn iconfont" @click="handleCartoning(scope.row)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
<el-button :loading="btnLoading" class="packing-handle-btn iconfont" @click="handleCartoning(scope.row)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="caseCode" label="盒号" min-width="120" align="center" /> <el-table-column prop="caseCode" label="盒号" min-width="120" align="center" />
@ -162,7 +162,7 @@
</div> </div>
<div v-if="isPackingOrPartType" slot="footer" class="dialog-footer"> <div v-if="isPackingOrPartType" slot="footer" class="dialog-footer">
<el-button type="text">取消</el-button> <el-button type="text">取消</el-button>
<el-button type="primary" @click="handleComfireCartoning">确定</el-button>
<el-button :loading="btnLoading" type="primary" @click="handleComfireCartoning">确定</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -200,6 +200,7 @@ export default {
}, },
data() { data() {
return { return {
btnLoading: false,
currentSelections: [], currentSelections: [],
arrySort: null, arrySort: null,
tableDisplayFields: [], tableDisplayFields: [],
@ -240,23 +241,33 @@ export default {
return return
} }
switch (this.inputSelect) { switch (this.inputSelect) {
case 'caseName':
this.caseName = this.caseQuery[this.inputSelect]
this.caseCode = null
this.tid = null
this.barcode = null
break
case 'caseCode': case 'caseCode':
this.caseName = null
this.caseCode = this.caseQuery[this.inputSelect] this.caseCode = this.caseQuery[this.inputSelect]
this.tid = null this.tid = null
this.barcode = null this.barcode = null
break break
case 'tid': case 'tid':
this.tid = this.caseQuery[this.inputSelect] this.tid = this.caseQuery[this.inputSelect]
this.caseName = null
this.caseCode = null this.caseCode = null
this.barcode = null this.barcode = null
break break
case 'barcode': case 'barcode':
this.barcode = this.caseQuery[this.inputSelect] this.barcode = this.caseQuery[this.inputSelect]
this.caseName = null
this.caseCode = null this.caseCode = null
this.tid = null this.tid = null
break break
} }
const params = { const params = {
'caseName': this.caseName,
'tid': this.tid, 'tid': this.tid,
'caseCode': this.caseCode, 'caseCode': this.caseCode,
'barcode': this.barcode, 'barcode': this.barcode,
@ -272,7 +283,7 @@ export default {
this.tableData = res.content this.tableData = res.content
}) })
}, },
async getPackingFileList(id) {
async getPackingFileList(id, baseCategory) {
const parentsId = id const parentsId = id
const params = { const params = {
'categoryId': this.selectedCategory.id, 'categoryId': this.selectedCategory.id,
@ -298,8 +309,12 @@ export default {
const data = await FetchInitContorlView(params) const data = await FetchInitContorlView(params)
if (data) { if (data) {
if (this.isPackingOrPartType === 1 && this.selectedCategory.arrangeType === 2) { if (this.isPackingOrPartType === 1 && this.selectedCategory.arrangeType === 2) {
this.archivesTable = data.list.content
this.packingData = data.list.content
const newData = data.list.content.map(item => ({
...item,
baseCategory
}))
this.archivesTable = newData
this.packingData = newData
} else { } else {
data.list.content.forEach(item => { data.list.content.forEach(item => {
item.archivesParentsId = id item.archivesParentsId = id
@ -310,26 +325,33 @@ export default {
}, },
// api // api
async handleCartoning(row) { async handleCartoning(row) {
let jnCategoryId
// let jnCategoryId
if (this.selectedCategory.arrangeType === 1) { if (this.selectedCategory.arrangeType === 1) {
this.packingData = this.selections this.packingData = this.selections
jnCategoryId = this.packFileCategory.id
// jnCategoryId = this.packFileCategory.id
} else { } else {
const combinedData = [] const combinedData = []
const promises = [] const promises = []
this.selections.forEach(async(item) => {
this.selections.forEach((item) => {
const promise = this.getPackingFileList(item.id) const promise = this.getPackingFileList(item.id)
.then(data => { .then(data => {
combinedData.push(...data)
const newData = data.map(subItem => {
return {
...subItem,
baseCategory: item.baseCategory
}
})
combinedData.push(...newData)
}) })
promises.push(promise) promises.push(promise)
}) })
await Promise.all(promises) await Promise.all(promises)
this.packingData = combinedData this.packingData = combinedData
jnCategoryId = this.packFileCategory.id
// jnCategoryId = this.packFileCategory.id
} }
this.btnLoading = true
const arrParams = this.packingData.map((item) => { const arrParams = this.packingData.map((item) => {
const json = {} const json = {}
json.archivesId = item.id json.archivesId = item.id
@ -340,7 +362,7 @@ export default {
} }
json.caseId = row.id json.caseId = row.id
json.caseName = row.caseName json.caseName = row.caseName
json.categoryId = jnCategoryId
json.categoryId = item.baseCategory
return json return json
}) })
console.log('ddddd', arrParams) console.log('ddddd', arrParams)
@ -353,6 +375,7 @@ export default {
this.$emit('close-dialog') this.$emit('close-dialog')
this.tableData = [] this.tableData = []
this.caseQuery[this.inputSelect] = '' this.caseQuery[this.inputSelect] = ''
this.btnLoading = false
}) })
}, },
// //
@ -389,14 +412,15 @@ export default {
this.$message({ message: '左侧档案待选列表全部装盒完成才可保存', type: 'error', offset: 8 }) this.$message({ message: '左侧档案待选列表全部装盒完成才可保存', type: 'error', offset: 8 })
return return
} }
const jnCategoryId = this.packFileCategory.id
this.btnLoading = true
// const jnCategoryId = this.packFileCategory.id
const arrParams = this.selectArchivesTable.map(item => { const arrParams = this.selectArchivesTable.map(item => {
const json = {} const json = {}
json.archivesId = item.id json.archivesId = item.id
json.archivesParentsId = this.selections[0].id json.archivesParentsId = this.selections[0].id
json.caseId = item.caseId json.caseId = item.caseId
json.caseName = item.caseName json.caseName = item.caseName
json.categoryId = jnCategoryId
json.categoryId = item.baseCategory
return json return json
}) })
console.log('arrParams', arrParams) console.log('arrParams', arrParams)
@ -435,7 +459,7 @@ export default {
this.arrySort.push(item.fieldName + ',' + item.displayOrderBy) this.arrySort.push(item.fieldName + ',' + item.displayOrderBy)
} }
}) })
this.getPackingFileList(this.selections[0].id)
this.getPackingFileList(this.selections[0].id, this.selections[0].baseCategory)
} }
}) })
} }

14
src/views/archivesManage/openInventory/module/detail.vue

@ -32,19 +32,19 @@
<div v-if="inventType===7" style="display: flex; justify-content: flex-end; margin-bottom: 12px;"> <div v-if="inventType===7" style="display: flex; justify-content: flex-end; margin-bottom: 12px;">
<el-button class="task-btn" @click="downloadFile"><i class="iconfont icon-xiazai" />下载文件</el-button> <el-button class="task-btn" @click="downloadFile"><i class="iconfont icon-xiazai" />下载文件</el-button>
</div> </div>
<el-table ref="table" :data="tableData" style="width: 100%;">
<el-table ref="table" :data="tableData" style="width: 100%;" height="calc(100vh - 420px)">
<el-table-column type="index" align="center" width="55" label="序号" /> <el-table-column type="index" align="center" width="55" label="序号" />
<el-table-column prop="fondsName" label="所属全宗" />
<el-table-column prop="categoryName" label="门类名称" />
<el-table-column prop="fondsName" label="所属全宗" min-width="120" />
<el-table-column prop="categoryName" label="门类名称" min-width="120" />
<el-table-column prop="categoryLevel" label="整理方式"> <el-table-column prop="categoryLevel" label="整理方式">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.categoryLevel === 2 ? '案卷整理' : '按件整理' }}</span> <span>{{ scope.row.categoryLevel === 2 ? '案卷整理' : '按件整理' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="archiveNo" label="项目号/档号" min-width="160" />
<el-table-column prop="maintitle" label="题名" />
<el-table-column v-if="inventType===4" prop="reason2" label="成文日期" />
<el-table-column v-if="inventType===4" prop="reason2" label="保管期限" />
<el-table-column prop="archiveNo" label="项目号/档号" min-width="280" show-overflow-tooltip />
<el-table-column prop="maintitle" label="题名" min-width="160" show-overflow-tooltip />
<el-table-column v-if="inventType===4" prop="reason2" label="成文日期" min-width="140" />
<el-table-column v-if="inventType===4" prop="reason2" label="保管期限" min-width="120" />
</el-table> </el-table>
</div> </div>
</el-dialog> </el-dialog>

8
src/views/collectReorganizi/batchConnection/module/form.vue

@ -96,7 +96,7 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="text" @click="handleCancel">取消</el-button> <el-button type="text" @click="handleCancel">取消</el-button>
<el-button type="primary" @click.native="handleComfired">确定</el-button>
<el-button :loading="btnLoading" type="primary" @click.native="handleComfired">确定</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
@ -121,6 +121,7 @@ export default {
}, },
data() { data() {
return { return {
btnLoading: false,
connectionTitle: '本地挂接', connectionTitle: '本地挂接',
localHitchVisible: false, localHitchVisible: false,
hitchRemarkArray: [], hitchRemarkArray: [],
@ -250,7 +251,7 @@ export default {
} else { } else {
this.form.fields = this.hitchRemarkArray.join('') this.form.fields = this.hitchRemarkArray.join('')
} }
this.btnLoading = true
this.$refs['form'].validate((valid) => { this.$refs['form'].validate((valid) => {
if (valid) { if (valid) {
let newhitchRemark = this.hitchRemarkArray.map(item => item.replace(/^\$|\$$|\*$/g, '')) let newhitchRemark = this.hitchRemarkArray.map(item => item.replace(/^\$|\$$|\*$/g, ''))
@ -276,6 +277,7 @@ export default {
} }
this.handleCancel() this.handleCancel()
this.crud.refresh() this.crud.refresh()
this.btnLoading = false
}) })
} else { } else {
const params = { const params = {
@ -301,9 +303,11 @@ export default {
} }
this.handleCancel() this.handleCancel()
this.crud.refresh() this.crud.refresh()
this.btnLoading = false
}) })
} }
} else { } else {
this.btnLoading = false
return false return false
} }
}) })

3
src/views/collectReorganizi/collectionLibrary/index.vue

@ -397,6 +397,7 @@ export default {
if (this.selectedCategory.arrangeType === 3) { if (this.selectedCategory.arrangeType === 3) {
const tablistEle = this.$refs.projectEle const tablistEle = this.$refs.projectEle
tablistEle.page.page = 0 tablistEle.page.page = 0
tablistEle.currentPage = 1
// //
if (isQuickFilter) { if (isQuickFilter) {
tablistEle.$refs.collectHeaderRef.getInitArchivesClass() tablistEle.$refs.collectHeaderRef.getInitArchivesClass()
@ -409,6 +410,7 @@ export default {
const getActiveIndex = this.$refs.anjuanEle.$refs.ajContent.activeIndex const getActiveIndex = this.$refs.anjuanEle.$refs.ajContent.activeIndex
const tablistEle = this.$refs.anjuanEle.$refs.ajContent.$refs.tableList const tablistEle = this.$refs.anjuanEle.$refs.ajContent.$refs.tableList
tablistEle.page.page = 0 tablistEle.page.page = 0
tablistEle.currentPage = 0
// //
if (isQuickFilter) { if (isQuickFilter) {
tablistEle.$refs.collectHeaderRef.getInitArchivesClass() tablistEle.$refs.collectHeaderRef.getInitArchivesClass()
@ -430,6 +432,7 @@ export default {
} else if (this.selectedCategory.arrangeType === 1) { } else if (this.selectedCategory.arrangeType === 1) {
const tablistEle = this.$refs.anjuanEle.$refs.ajContent.$refs.tableList const tablistEle = this.$refs.anjuanEle.$refs.ajContent.$refs.tableList
tablistEle.page.page = 0 tablistEle.page.page = 0
tablistEle.currentPage = 1
// //
if (isQuickFilter) { if (isQuickFilter) {
tablistEle.$refs.collectHeaderRef.getInitArchivesClass() tablistEle.$refs.collectHeaderRef.getInitArchivesClass()

7
src/views/collectReorganizi/collectionLibrary/module/archivesInfo/index.vue

@ -50,7 +50,7 @@
</template> </template>
<script> <script>
import { form } from '@crud/crud'
// import { form } from '@crud/crud'
import { FetchDetailsById, FetchArchivesMetadata } from '@/api/collect/collect' import { FetchDetailsById, FetchArchivesMetadata } from '@/api/collect/collect'
import UploadFile from '../uploadFile/index' import UploadFile from '../uploadFile/index'
import FourTestInfo from '../fourTestInfo/index' import FourTestInfo from '../fourTestInfo/index'
@ -60,7 +60,7 @@ export default {
name: 'ArchivesInfo', name: 'ArchivesInfo',
components: { UploadFile, FourTestInfo, HandleInfo, MarkInfo }, components: { UploadFile, FourTestInfo, HandleInfo, MarkInfo },
mixins: [ mixins: [
form({})
// form({})
], ],
props: { props: {
selectedCategory: { selectedCategory: {
@ -144,11 +144,9 @@ export default {
if (this.archivesTabIndex === 2) { if (this.archivesTabIndex === 2) {
this.setXml() this.setXml()
} else if (this.archivesTabIndex === 3) { } else if (this.archivesTabIndex === 3) {
console.log(this.$refs.fourTestInfoRefs)
this.$refs.fourTestInfoRefs.currentArcId = this.arcId this.$refs.fourTestInfoRefs.currentArcId = this.arcId
this.$refs.fourTestInfoRefs.getFourCheckRecord(this.arcId) this.$refs.fourTestInfoRefs.getFourCheckRecord(this.arcId)
} else if (this.archivesTabIndex === 4) { } else if (this.archivesTabIndex === 4) {
console.log(this.$refs.handleInfoRefs)
this.$refs.handleInfoRefs.currentArcId = this.arcId this.$refs.handleInfoRefs.currentArcId = this.arcId
this.$refs.handleInfoRefs.getArchivesOperateLog(this.arcId) this.$refs.handleInfoRefs.getArchivesOperateLog(this.arcId)
} else if (this.archivesTabIndex === 5) { } else if (this.archivesTabIndex === 5) {
@ -163,7 +161,6 @@ export default {
this.$refs.archivesListModuleRef.isDetail = true this.$refs.archivesListModuleRef.isDetail = true
this.$refs.archivesListModuleRef.getViewTable() this.$refs.archivesListModuleRef.getViewTable()
} else if (this.archivesTabIndex === 6) { } else if (this.archivesTabIndex === 6) {
console.log(this.$refs.markInfoRefs)
this.$refs.markInfoRefs.archivesDetailsData = this.archivesDetailsData this.$refs.markInfoRefs.archivesDetailsData = this.archivesDetailsData
this.$refs.markInfoRefs.currentArcId = this.arcId this.$refs.markInfoRefs.currentArcId = this.arcId
this.$refs.markInfoRefs.getFileMarkList(this.arcId) this.$refs.markInfoRefs.getFileMarkList(this.arcId)

19
src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue

@ -8,7 +8,7 @@
v-model="query.project_class" v-model="query.project_class"
:options="projectOptions" :options="projectOptions"
style="width: 180px;" style="width: 180px;"
flat
:flat="false"
:multiple="false" :multiple="false"
:normalizer="normalizerProject" :normalizer="normalizerProject"
:default-expand-level="Infinity" :default-expand-level="Infinity"
@ -30,7 +30,7 @@
v-model="query.archive_ctg_no" v-model="query.archive_ctg_no"
:options="classifyOptions" :options="classifyOptions"
style="width: 180px;" style="width: 180px;"
flat
:flat="false"
:multiple="false" :multiple="false"
:normalizer="normalizer" :normalizer="normalizer"
placeholder="请选择档案分类" placeholder="请选择档案分类"
@ -572,8 +572,6 @@ export default {
} else { } else {
this.page.size = 10 this.page.size = 10
} }
console.log('this.page.size', this.page.size)
console.log('this.page.page', this.page.page)
if (type === 'edit') { if (type === 'edit') {
const params = { const params = {
'categoryId': this.selectedCategory.id, 'categoryId': this.selectedCategory.id,
@ -606,7 +604,6 @@ export default {
this.$refs.previewForm.archivesType = 'add' this.$refs.previewForm.archivesType = 'add'
this.$refs.previewForm.activeIndex = this.activeIndex this.$refs.previewForm.activeIndex = this.activeIndex
const savePrevFromData = JSON.parse(localStorage.getItem('savePrevFromData')) const savePrevFromData = JSON.parse(localStorage.getItem('savePrevFromData'))
console.log('savePrevFromData', savePrevFromData)
if (savePrevFromData) { if (savePrevFromData) {
if ('record_no' in savePrevFromData && 'item_no' in savePrevFromData) { if ('record_no' in savePrevFromData && 'item_no' in savePrevFromData) {
if (savePrevFromData.item_no && !isNaN(Number(savePrevFromData.item_no))) { if (savePrevFromData.item_no && !isNaN(Number(savePrevFromData.item_no))) {
@ -669,8 +666,6 @@ export default {
}, },
// //
toDelete() { toDelete() {
console.log('this.page.page333', this.page.page)
console.log('this.page.total33333', this.page.total)
if (this.selections.length === 0) { if (this.selections.length === 0) {
this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 }) this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 })
return false return false
@ -1266,8 +1261,6 @@ export default {
// this.$message('') // this.$message('')
// return false // return false
// } // }
console.log('this.parentsData', this.parentsData)
console.log('this.parentsData.listCategory', this.parentsData.listCategory.id)
this.$refs.packingBox.packingVisible = true this.$refs.packingBox.packingVisible = true
this.$refs.packingBox.isPackingOrPartType = type this.$refs.packingBox.isPackingOrPartType = type
this.$refs.packingBox.packFileCategory = this.parentsData.listCategory this.$refs.packingBox.packFileCategory = this.parentsData.listCategory
@ -1364,6 +1357,8 @@ export default {
} }
FetchCompleteDelArchives(params).then((res) => { FetchCompleteDelArchives(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
localStorage.removeItem('currentPageSize')
localStorage.removeItem('currentPage')
this.$message({ message: res, type: 'success', offset: 8 }) this.$message({ message: res, type: 'success', offset: 8 })
this.handleSearch(this.collectLevel) this.handleSearch(this.collectLevel)
} else { } else {
@ -1407,7 +1402,6 @@ export default {
'anId': null 'anId': null
} }
FetchDoHandleEnterAnalysis(params).then(data => { FetchDoHandleEnterAnalysis(params).then(data => {
console.log(data)
// const inputMessage = data.query + '' + data.context // const inputMessage = data.query + '' + data.context
this.sendMessage(data.query, data.context) this.sendMessage(data.query, data.context)
}) })
@ -1478,8 +1472,6 @@ export default {
} finally { } finally {
this.aiResultCaLoading = false this.aiResultCaLoading = false
if (!this.isDialogClosed) { if (!this.isDialogClosed) {
console.log('this.displayedText.', this.displayedText)
// <think> </think> // <think> </think>
const thinkStartIndex = this.displayedText.indexOf('<think>') const thinkStartIndex = this.displayedText.indexOf('<think>')
const thinkEndIndex = this.displayedText.indexOf('</think>') const thinkEndIndex = this.displayedText.indexOf('</think>')
@ -1487,16 +1479,13 @@ export default {
if (thinkStartIndex !== -1 && thinkEndIndex !== -1) { if (thinkStartIndex !== -1 && thinkEndIndex !== -1) {
lastContent = lastContent.slice(0, thinkStartIndex) + lastContent.slice(thinkEndIndex + '</think>'.length) lastContent = lastContent.slice(0, thinkStartIndex) + lastContent.slice(thinkEndIndex + '</think>'.length)
} }
console.log('lastContent', lastContent)
// JSON // JSON
const startIndex = lastContent.indexOf('{') const startIndex = lastContent.indexOf('{')
const endIndex = lastContent.lastIndexOf('}') const endIndex = lastContent.lastIndexOf('}')
if (startIndex !== -1 && endIndex !== -1 && endIndex > startIndex) { if (startIndex !== -1 && endIndex !== -1 && endIndex > startIndex) {
const jsonStr = lastContent.slice(startIndex, endIndex + 1) const jsonStr = lastContent.slice(startIndex, endIndex + 1)
console.log('jsonStr', jsonStr)
const jsonData = JSON.parse(jsonStr) const jsonData = JSON.parse(jsonStr)
console.log('提取并过滤后的 JSON 数据:', jsonData) console.log('提取并过滤后的 JSON 数据:', jsonData)
console.log('this.selectedCategory', this.selectedCategory)
jsonData.fonds_no = this.selectedCategory.fondsNo jsonData.fonds_no = this.selectedCategory.fondsNo
jsonData.archival_category_code = this.selectedCategory.code jsonData.archival_category_code = this.selectedCategory.code
jsonData.is_entity = 1 jsonData.is_entity = 1

9
src/views/collectReorganizi/collectionLibrary/module/packingBox/index.vue

@ -34,7 +34,7 @@
> >
<el-table-column prop="create_date" label="操作" width="80" align="center"> <el-table-column prop="create_date" label="操作" width="80" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button class="packing-handle-btn iconfont" @click="handleCartoning(scope.row)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
<el-button :loading="btnLoading" class="packing-handle-btn iconfont" @click="handleCartoning(scope.row)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="caseCode" label="盒号" min-width="120" align="center" /> <el-table-column prop="caseCode" label="盒号" min-width="120" align="center" />
@ -162,7 +162,7 @@
</div> </div>
<div v-if="isPackingOrPartType" slot="footer" class="dialog-footer"> <div v-if="isPackingOrPartType" slot="footer" class="dialog-footer">
<el-button type="text">取消</el-button> <el-button type="text">取消</el-button>
<el-button type="primary" @click="handleComfireCartoning">确定</el-button>
<el-button :loading="btnLoading" type="primary" @click="handleComfireCartoning">确定</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -199,6 +199,7 @@ export default {
}, },
data() { data() {
return { return {
btnLoading: false,
currentSelections: [], currentSelections: [],
arrySort: null, arrySort: null,
tableDisplayFields: [], tableDisplayFields: [],
@ -326,7 +327,6 @@ export default {
// api // api
async handleCartoning(row) { async handleCartoning(row) {
// let jnCategoryId // let jnCategoryId
console.log('this.selections', this.selections)
if (this.selectedCategory.arrangeType === 1) { if (this.selectedCategory.arrangeType === 1) {
this.packingData = this.selections this.packingData = this.selections
// jnCategoryId = this.packFileCategory.id // jnCategoryId = this.packFileCategory.id
@ -352,6 +352,7 @@ export default {
// jnCategoryId = this.packFileCategory.id // jnCategoryId = this.packFileCategory.id
} }
console.log('this.packingData', this.packingData) console.log('this.packingData', this.packingData)
this.btnLoading = true
const arrParams = this.packingData.map((item) => { const arrParams = this.packingData.map((item) => {
const json = {} const json = {}
json.archivesId = item.id json.archivesId = item.id
@ -375,6 +376,7 @@ export default {
this.$emit('close-dialog') this.$emit('close-dialog')
this.tableData = [] this.tableData = []
this.caseQuery[this.inputSelect] = '' this.caseQuery[this.inputSelect] = ''
this.btnLoading = false
}) })
}, },
// //
@ -414,6 +416,7 @@ export default {
} }
// const jnCategoryId = this.packFileCategory.id // const jnCategoryId = this.packFileCategory.id
console.log('this.selectArchivesTable', this.selectArchivesTable) console.log('this.selectArchivesTable', this.selectArchivesTable)
this.btnLoading = true
const arrParams = this.selectArchivesTable.map(item => { const arrParams = this.selectArchivesTable.map(item => {
const json = {} const json = {}
json.archivesId = item.id json.archivesId = item.id

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

@ -838,6 +838,7 @@ export default {
delete this.addOrUpdateForm.id delete this.addOrUpdateForm.id
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
this.$emit('formLoadingShow', true)
// //
if (this.isDesFormType === 'prearchiveLibrary') { if (this.isDesFormType === 'prearchiveLibrary') {
if (this.fileOriginal === null) { if (this.fileOriginal === null) {
@ -859,6 +860,7 @@ export default {
this.crud.refresh() this.crud.refresh()
this.fileOriginal = null this.fileOriginal = null
} }
this.$emit('formLoadingShow', false)
}) })
} else if (this.isDesFormType === 'mergeFile') { } else if (this.isDesFormType === 'mergeFile') {
// //
@ -871,13 +873,13 @@ export default {
} }
FetchMergeToFile(params).then(res => { FetchMergeToFile(params).then(res => {
if (res) { if (res) {
this.$message({ message: res.message, type: 'success', offset: 8 })
this.$message({ message: res, type: 'success', offset: 8 })
this.$emit('close-dialog') this.$emit('close-dialog')
this.crud.refresh() this.crud.refresh()
this.$emit('formLoadingShow', false)
} }
}) })
} else { } else {
this.$emit('formLoadingShow', true)
// //
let parentsId = null let parentsId = null
// 2 3 / 4 6 // 2 3 / 4 6

36
src/views/components/echarts/graph.vue

@ -40,6 +40,7 @@ export default {
}, },
data() { data() {
return { return {
graphData: {},
isShowCodePanel: false, isShowCodePanel: false,
isShowNodeTipsPanel: false, isShowNodeTipsPanel: false,
nodeMenuPanelPosition: { x: 0, y: 0 }, nodeMenuPanelPosition: { x: 0, y: 0 },
@ -72,18 +73,17 @@ export default {
} }
}, },
watch: { watch: {
'graphData': {
handler(val) {
setTimeout(() => {
this.setData()
}, 100)
},
immediate: true,
deep: true
}
// 'graphData': {
// handler(val) {
// setTimeout(() => {
// this.setData()
// }, 100)
// },
// immediate: true,
// deep: true
// }
}, },
mounted() { mounted() {
console.log('graphData', this.graphData)
this.resizeTimer = setInterval(async() => { this.resizeTimer = setInterval(async() => {
// const graphInstance = this.$refs.graphRef.getInstance(); // const graphInstance = this.$refs.graphRef.getInstance();
// await graphInstance.zoomToFit(); // await graphInstance.zoomToFit();
@ -98,18 +98,19 @@ export default {
clearInterval(this.resizeTimer) clearInterval(this.resizeTimer)
}, },
methods: { methods: {
resetAllData() {
this.allData = { 'nodes': [], 'lines': [] }
},
getOrigionGraphData(nodeId, id, tableName) { getOrigionGraphData(nodeId, id, tableName) {
// this.selectedCategory.cnName
// E0B3627CBED49E53609245
const parmas = { const parmas = {
'searchKey': 'id', // id / title
'searchKey': 'id',
'searchValue': id, 'searchValue': id,
'tableName': tableName //
'tableName': tableName, //
'querySize': 10
} }
FetchInitShowByCategory(parmas).then((res) => { FetchInitShowByCategory(parmas).then((res) => {
console.log(res)
this.graphData2 = res
this.setData(this.graphData2, nodeId)
this.graphData = res
this.setData(this.graphData, nodeId)
}).catch(err => { }).catch(err => {
console.log(err) console.log(err)
}) })
@ -119,7 +120,6 @@ export default {
// ArchivesCategoryCategoryClassFondsKeywordsRetentionSecrecyPeriodSecurityClass // ArchivesCategoryCategoryClassFondsKeywordsRetentionSecrecyPeriodSecurityClass
const newNodes = nodes.map(item => { const newNodes = nodes.map(item => {
const newItem = { ...item, id: String(item.id), originId: item.properties.id, text: item.properties.title, type: item.labels[0] } const newItem = { ...item, id: String(item.id), originId: item.properties.id, text: item.properties.title, type: item.labels[0] }
const typeToColorMap = { const typeToColorMap = {
Archives: '#0348F3', Archives: '#0348F3',
Category: '#14C9C9', Category: '#14C9C9',

20
src/views/prearchiveLibrary/index.vue

@ -106,10 +106,22 @@
<span class="dialog-right-top" /> <span class="dialog-right-top" />
<span class="dialog-left-bottom" /> <span class="dialog-left-bottom" />
<div class="setting-dialog"> <div class="setting-dialog">
<PreviewForm ref="previewForm" :form-preview-data.sync="formPreviewData" :selected-category="selectedCategory" :parents-id="parentsId" :arc-id="arcId" :is-des-form-type="isDesFormType" :is-disabled="isDisabled" :selected-document="selectedDocument" :is-has-code="isHasCode" @close-dialog="closeDialog" />
<PreviewForm
ref="previewForm"
:form-preview-data.sync="formPreviewData"
:selected-category="selectedCategory"
:parents-id="parentsId"
:arc-id="arcId"
:is-des-form-type="isDesFormType"
:is-disabled="isDisabled"
:selected-document="selectedDocument"
:is-has-code="isHasCode"
@close-dialog="closeDialog"
@formLoadingShow="formLoadingShow"
/>
<div slot="footer" class="dialog-footer" style="margin-top: 85px !important;"> <div slot="footer" class="dialog-footer" style="margin-top: 85px !important;">
<el-button type="text" @click="closeDialog">取消</el-button> <el-button type="text" @click="closeDialog">取消</el-button>
<el-button type="primary" @click="handlerArchivesSubmit">确定</el-button>
<el-button :loading="archivesBtnLoading" type="primary" @click="handlerArchivesSubmit">确定</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -165,6 +177,7 @@ export default {
mixins: [presenter(), header(), preLibraryCrud], mixins: [presenter(), header(), preLibraryCrud],
data() { data() {
return { return {
archivesBtnLoading: false,
permission: { permission: {
add: ['admin', 'prearchiveLibrary:add'], add: ['admin', 'prearchiveLibrary:add'],
edit: ['admin', 'prearchiveLibrary:edit'], edit: ['admin', 'prearchiveLibrary:edit'],
@ -207,6 +220,9 @@ export default {
this.crud.query.documentId = this.selectedDocument.id this.crud.query.documentId = this.selectedDocument.id
this.crud.query.sort = this.arrySort this.crud.query.sort = this.arrySort
}, },
formLoadingShow(loadingType) {
this.archivesBtnLoading = loadingType
},
handleNodeClick(data) { handleNodeClick(data) {
this.selectedDocument = data this.selectedDocument = data
this.getInitDocumentsViewTable() this.getInitDocumentsViewTable()

5
src/views/prearchiveLibrary/module/batchFile.vue

@ -101,7 +101,7 @@
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="text" @click="handleClose">取消</el-button> <el-button type="text" @click="handleClose">取消</el-button>
<el-button type="primary" @click="handleComfirmBatchToFile">确定</el-button>
<el-button :loading="archivesBtnLoading" type="primary" @click="handleComfirmBatchToFile">确定</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -136,6 +136,7 @@ export default {
}, },
data() { data() {
return { return {
archivesBtnLoading: false,
selectionsArc: [], selectionsArc: [],
batchVisible: false, batchVisible: false,
rulesOptions: [], rulesOptions: [],
@ -465,6 +466,7 @@ export default {
// done() // done()
}, },
handleComfirmBatchToFile() { handleComfirmBatchToFile() {
this.archivesBtnLoading = true
const getIndicesByMode = (modeValue) => { const getIndicesByMode = (modeValue) => {
return this.selectStatus.reduce((indices, item, index) => { return this.selectStatus.reduce((indices, item, index) => {
if (item.mode === modeValue) { if (item.mode === modeValue) {
@ -547,6 +549,7 @@ export default {
this.isTest = false this.isTest = false
this.batchCategory = {} this.batchCategory = {}
} }
this.archivesBtnLoading = false
}) })
}, },
normalizer(node) { normalizer(node) {

5
src/views/prearchiveLibrary/module/moveFile.vue

@ -70,7 +70,7 @@
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="text" @click="closedDialog">取消</el-button> <el-button type="text" @click="closedDialog">取消</el-button>
<el-button type="primary" @click="handleComfirmed">确定</el-button>
<el-button :loading="archivesBtnLoading" type="primary" @click="handleComfirmed">确定</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -105,6 +105,7 @@ export default {
}, },
data() { data() {
return { return {
archivesBtnLoading: false,
selectedCategoryMove: {}, selectedCategoryMove: {},
query: { query: {
search: '' search: ''
@ -248,6 +249,7 @@ export default {
this.$message({ message: '请选择要移动到收集库的档案', type: 'warning', offset: 8 }) this.$message({ message: '请选择要移动到收集库的档案', type: 'warning', offset: 8 })
return false return false
} }
this.archivesBtnLoading = true
const archivesIds = this.moveArc.map(item => { const archivesIds = this.moveArc.map(item => {
return item.id return item.id
}) })
@ -264,6 +266,7 @@ export default {
this.query.search = null this.query.search = null
this.selections = [] this.selections = []
this.$emit('refresh') this.$emit('refresh')
this.archivesBtnLoading = false
}) })
}, },
handleSizeChange(size) { handleSizeChange(size) {

2
src/views/system/processManage/runningProcess/module/businessDetails/index.vue

@ -45,7 +45,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination :page-size.sync="setPage.size" :total="setPage.total" :current-page.sync="setPage.page" style="margin-top: 8px;" layout="total, prev, pager, next, sizes" @size-change="sizeChangeHandler($event)" @current-change="pageChangeHandler" />
<el-pagination :page-size.sync="setPage.size" :total="setPage.total" :current-page.sync="setPage.page+1" style="margin-top: 8px;" layout="total, prev, pager, next, sizes" @size-change="sizeChangeHandler($event)" @current-change="pageChangeHandler" />
<ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" :is-title-type="isTitleType" /> <ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" :is-title-type="isTitleType" />
</div> </div>
</template> </template>

5
src/views/system/processManage/runningProcess/module/detail.vue

@ -148,6 +148,7 @@ export default {
console.log('this.isMessage', this.isMessage) console.log('this.isMessage', this.isMessage)
console.log('this.selectCenterRow', this.selectCenterRow) console.log('this.selectCenterRow', this.selectCenterRow)
console.log('this.selectRow', this.selectRow) console.log('this.selectRow', this.selectRow)
this.tableData = []
const params = { const params = {
'businessId': this.isMessage ? this.selectCenterRow.businessId : (this.selectRow.id || this.selectRow.businessId), 'businessId': this.isMessage ? this.selectCenterRow.businessId : (this.selectRow.id || this.selectRow.businessId),
'page': this.setPage.page, 'page': this.setPage.page,
@ -157,8 +158,6 @@ export default {
if (res.code !== 500) { if (res.code !== 500) {
this.baseInfo = res.businessFlow this.baseInfo = res.businessFlow
console.log('this.baseInfo ', this.baseInfo)
if (res.businessFlow.businessType === 5) { if (res.businessFlow.businessType === 5) {
this.isUtilize = true this.isUtilize = true
res.details.content.forEach(item => { res.details.content.forEach(item => {
@ -197,7 +196,7 @@ export default {
}, },
// //
pageChangeHandler(e) { pageChangeHandler(e) {
this.setPage.page = e
this.setPage.page = e - 1
this.getBusinessFlowDetails() this.getBusinessFlowDetails()
}, },
// //

3
src/views/system/user/processCenter/module/form.vue

@ -180,7 +180,8 @@ export default {
}, },
// //
pageChangeHandler(e) { pageChangeHandler(e) {
this.setPage.page = e
this.setPage.page = e - 1
console.log('this.setPage.page', this.setPage.page)
this.getBusinessFlowDetails() this.getBusinessFlowDetails()
}, },
// //

Loading…
Cancel
Save