Browse Source

流程管理/bug修复

master
xuhuajiao 10 months ago
parent
commit
8f332feb89
  1. 22
      src/api/archivesManage/library.js
  2. 21
      src/api/system/new.js
  3. 7
      src/views/archiveUtilize/archiveSearch/module/resultList.vue
  4. 5
      src/views/archiveUtilize/utillizeRecord/module/utilizationProcess.vue
  5. 3
      src/views/archivesManage/managementLibrary/mixins/index.js
  6. 13
      src/views/archivesManage/managementLibrary/module/handOverForm.vue
  7. 2
      src/views/archivesManage/openInventory/module/detail.vue
  8. 4
      src/views/collectReorganizi/collectionLibrary/mixins/index.js
  9. 2
      src/views/components/category/PreviewForm.vue
  10. 13
      src/views/system/processManage/runningProcess/module/businessDetails/index.vue
  11. 1
      src/views/system/user/cart.vue
  12. 318
      src/views/system/user/messageCenter/index.vue
  13. 60
      src/views/system/user/messageCenter/module/list.vue
  14. 6
      src/views/system/user/processCenter/index.vue
  15. 73
      src/views/system/user/processCenter/module/form.vue

22
src/api/archivesManage/library.js

@ -101,6 +101,24 @@ export function FetchArchivesReturnConfirm(data) {
}) })
} }
// 在线移交流程确定
export function FetchTransferConfirm(data) {
return request({
url: 'api/control/transferConfirm',
method: 'post',
data: data
})
}
// 离线移交流程确定
export function FetchOfflineTransferConfirm(data) {
return request({
url: 'api/control/offlineTransferConfirm',
method: 'post',
data: data
})
}
export default { export default {
FetchInitContorlView, FetchInitContorlView,
FetchPrintData, FetchPrintData,
@ -113,5 +131,7 @@ export default {
FetchUtilizeConfirm, FetchUtilizeConfirm,
FetchArchivesDestructionConfirm, FetchArchivesDestructionConfirm,
FetchArchivesOpenConfirm, FetchArchivesOpenConfirm,
FetchArchivesReturnConfirm
FetchArchivesReturnConfirm,
FetchTransferConfirm,
FetchOfflineTransferConfirm
} }

21
src/api/system/new.js

@ -0,0 +1,21 @@
import request from '@/utils/request'
// 我的系统通知
export function FetchMySystemNotice(params) {
return request({
url: 'api/news/mySystemNotice',
method: 'get',
params
})
}
// 通知详情
export function FetchInitNoticeDetails(params) {
return request({
url: 'api/news/initNoticeDetails',
method: 'get',
params
})
}
export default { FetchMySystemNotice, FetchInitNoticeDetails }

7
src/views/archiveUtilize/archiveSearch/module/resultList.vue

@ -483,9 +483,6 @@ export default {
this.categoryId = row.categoryPid this.categoryId = row.categoryPid
this.arcId = row.archivesId this.arcId = row.archivesId
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.archivesInfo.archivesInfoVisible = true
this.$refs.archivesInfo.archivesTabIndex = 0
this.$refs.archivesInfo.isFourTest = true
if (row.categoryLevel === 2) { if (row.categoryLevel === 2) {
this.$refs.archivesInfo.isHasFile = false this.$refs.archivesInfo.isHasFile = false
this.$refs.archivesInfo.detailTitle = '案卷详情' this.$refs.archivesInfo.detailTitle = '案卷详情'
@ -495,6 +492,9 @@ export default {
this.$refs.archivesInfo.detailTitle = '文件详情' this.$refs.archivesInfo.detailTitle = '文件详情'
this.$refs.archivesInfo.getDetial(3, row.archivesId) this.$refs.archivesInfo.getDetial(3, row.archivesId)
} }
this.$refs.archivesInfo.archivesTabIndex = 0
this.$refs.archivesInfo.isFourTest = true
this.$refs.archivesInfo.archivesInfoVisible = true
}) })
}, },
initiateLending(item) { initiateLending(item) {
@ -505,6 +505,7 @@ export default {
dangerouslyUseHTMLString: true dangerouslyUseHTMLString: true
}).then(() => { }).then(() => {
// this.$message({ message: '', type: 'success', offset: 8 }) // this.$message({ message: '', type: 'success', offset: 8 })
console.log('item', item)
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.lendFormRef.detailArcData = [] this.$refs.lendFormRef.detailArcData = []
this.$refs.lendFormRef.lendFormVisible = true this.$refs.lendFormRef.lendFormVisible = true

5
src/views/archiveUtilize/utillizeRecord/module/utilizationProcess.vue

@ -60,9 +60,8 @@
</el-table-column> </el-table-column>
<el-table-column prop="checkedId" label="利用方式" width="340"> <el-table-column prop="checkedId" label="利用方式" width="340">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-checkbox v-for="item in scope.row.childMenu" :key="item.value" v-model="item.checked" :label="item.value" :data-a="responsive" @change="changeChecked(item)">{{ item.label }}</el-checkbox> -->
<el-checkbox-group v-model="scope.row.checkedId" :min="1" class="checkbox-style" @change="changeChecked"> <el-checkbox-group v-model="scope.row.checkedId" :min="1" class="checkbox-style" @change="changeChecked">
<el-checkbox v-for="item in scope.row.childMenu" :key="item.value" :label="item.value" :data-a="responsive">{{ item.label }}</el-checkbox>
<el-checkbox v-for="item in scope.row.childMenu" :key="item.value" :label="item.value" :disabled="item.value === 4 && scope.row.isEntity === 0" :data-a="responsive">{{ item.label }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</template> </template>
</el-table-column> </el-table-column>
@ -169,7 +168,7 @@ export default {
this.form.giveStartTime = formattedDate this.form.giveStartTime = formattedDate
this.getFondsDetail() this.getFondsDetail()
console.log(this.detailArcData)
console.log('this.detailArcData', this.detailArcData)
}, },
changeChecked() { changeChecked() {
this.responsive = !this.responsive this.responsive = !this.responsive

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

@ -111,12 +111,13 @@ export const manageLibraryCrud = {
}, },
getViewTableList(categoryLevel, parentsId, type) { getViewTableList(categoryLevel, parentsId, type) {
// console.log('888', this.smartQuery.fonds_no) // console.log('888', this.smartQuery.fonds_no)
console.log('this.page.page', this.page.page)
const params = { const params = {
'parentId': parentsId, 'parentId': parentsId,
'categoryId': this.selectedCategory.id, 'categoryId': this.selectedCategory.id,
'categoryLevel': categoryLevel, 'categoryLevel': categoryLevel,
'ignore': false, 'ignore': false,
'isdel': (this.parentsData.isdel && categoryLevel === 3) ? false : this.parentsData.isdel,
'isdel': (this.parentsData.isdel && this.selectedCategory.arrangeType === 2 && categoryLevel === 3) ? false : this.parentsData.isdel,
'checkTypes': this.selectStatus && this.selectStatus.length !== 0 ? this.selectStatus.join(',') : null, 'checkTypes': this.selectStatus && this.selectStatus.length !== 0 ? this.selectStatus.join(',') : null,
'search': this.query.search, 'search': this.query.search,
'retention': this.smartQuery.retention, 'retention': this.smartQuery.retention,

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

@ -6,7 +6,7 @@
<li :class="{'active-tab-nav': activeIndex == 0 }" @click="changeActiveTab(0)">流程表单</li> <li :class="{'active-tab-nav': activeIndex == 0 }" @click="changeActiveTab(0)">流程表单</li>
<li :class="{'active-tab-nav': activeIndex == 1 }" @click="changeActiveTab(1)">流程图</li> <li :class="{'active-tab-nav': activeIndex == 1 }" @click="changeActiveTab(1)">流程图</li>
</ul> </ul>
<div v-if="activeIndex == 0">
<div v-show="activeIndex === 0">
<el-form ref="form" :model="form" :rules="rules" inline label-width="110px"> <el-form ref="form" :model="form" :rules="rules" inline label-width="110px">
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="form.title" style="width: 280px;" /> <el-input v-model="form.title" style="width: 280px;" />
@ -24,9 +24,9 @@
<el-input v-model="form.reason" type="textarea" style="width: 660px;" :rows="4" /> <el-input v-model="form.reason" type="textarea" style="width: 660px;" :rows="4" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<ArchivesListModule v-if="activeIndex == 0" ref="archivesListModule" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" />
<ArchivesListModule ref="archivesListModule" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" />
</div> </div>
<div v-if="activeIndex == 1" class="tab-img">
<div v-if="activeIndex === 1" class="tab-img">
<img :src="srcImg" alt="" :onerror="defaultImg"> <img :src="srcImg" alt="" :onerror="defaultImg">
</div> </div>
</div> </div>
@ -43,11 +43,10 @@ import { FetchBusinessFlowTitle } from '@/api/collect/collect'
import { FetchIntoFlowBusiness } from '@/api/archivesManage/library' import { FetchIntoFlowBusiness } from '@/api/archivesManage/library'
import { FetchInitFlowAll, FetchFindFolwImgByModelId } from '@/api/system/flowable' import { FetchInitFlowAll, FetchFindFolwImgByModelId } from '@/api/system/flowable'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import ArchivesListModule from '@/views/components/archivesListModule/index'
import { getCurrentTime } from '@/utils/index' import { getCurrentTime } from '@/utils/index'
export default { export default {
name: 'HandOverForm', name: 'HandOverForm',
components: { ArchivesListModule },
components: { },
props: { props: {
selectedCategory: { selectedCategory: {
type: Object, type: Object,
@ -127,10 +126,8 @@ export default {
changeActiveTab(data) { changeActiveTab(data) {
this.activeIndex = data this.activeIndex = data
if (this.activeIndex === 0) { if (this.activeIndex === 0) {
console.log('流程表单')
this.$refs.archivesListModule.getViewTable()
} else if (this.activeIndex === 1) { } else if (this.activeIndex === 1) {
console.log(this.overType)
console.log(this.modelOptions)
// 2 退 3 4 7 线 // 2 退 3 4 7 线
let procdefId let procdefId
if (this.overType === 2) { if (this.overType === 2) {

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

@ -104,7 +104,7 @@ export default {
if (res.code !== 500) { if (res.code !== 500) {
console.log(res) console.log(res)
this.baseInfo = res.businessFlow this.baseInfo = res.businessFlow
this.tableData = res.details
this.tableData = res.details.content
} else { } else {
this.$message({ message: '获取数据失败', type: 'error', offset: 8 }) this.$message({ message: '获取数据失败', type: 'error', offset: 8 })
} }

4
src/views/collectReorganizi/collectionLibrary/mixins/index.js

@ -113,7 +113,7 @@ export const collectionLibraryCrud = {
'categoryId': this.selectedCategory.id, 'categoryId': this.selectedCategory.id,
'categoryLevel': categoryLevel, 'categoryLevel': categoryLevel,
'ignore': false, 'ignore': false,
'isdel': (this.parentsData.isdel && categoryLevel === 3) ? false : this.parentsData.isdel,
'isdel': (this.parentsData.isdel && this.selectedCategory.arrangeType === 2 && categoryLevel === 3) ? false : this.parentsData.isdel,
'search': this.query.search, 'search': this.query.search,
'retention': this.smartQuery.retention, 'retention': this.smartQuery.retention,
'security_class': this.smartQuery.security_class, 'security_class': this.smartQuery.security_class,
@ -124,7 +124,7 @@ export const collectionLibraryCrud = {
'fonds_no': this.smartQuery.fonds_no, 'fonds_no': this.smartQuery.fonds_no,
'project_class': this.query.project_class, 'project_class': this.query.project_class,
'archive_ctg_no': this.query.archive_ctg_no, 'archive_ctg_no': this.query.archive_ctg_no,
'page': this.page.page - 1,
'page': this.page.page === 0 ? 0 : this.page.page - 1,
'size': this.page.size, 'size': this.page.size,
'sort': this.arrySort 'sort': this.arrySort
} }

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

@ -34,6 +34,8 @@
:style="{ width: item.editLength+'px'}" :style="{ width: item.editLength+'px'}"
:disabled="isDisabled || (item.fieldName === 'archival_category_code')" :disabled="isDisabled || (item.fieldName === 'archival_category_code')"
:validate-event="!isDisabled" :validate-event="!isDisabled"
@mousewheel.native.prevent
@DOMMouseScroll.native.prevent
@keyup.enter.native="isRepeatHandle(item)" @keyup.enter.native="isRepeatHandle(item)"
@input="autoAddZero(item.isFilling, item.fieldName, addOrUpdateForm[item.fieldName], item.fillingDigit)" @input="autoAddZero(item.isFilling, item.fieldName, addOrUpdateForm[item.fieldName], item.fillingDigit)"
@blur="isRepeatHandle(item)" @blur="isRepeatHandle(item)"

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

@ -18,7 +18,7 @@
</el-checkbox-group> </el-checkbox-group>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="isUtilize" prop="utilizeState" label="实体借阅状态" align="center" width="160">
<el-table-column v-if="isUtilize" prop="utilizeState" label="是否允许借阅" align="center" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select <el-select
v-if="isFlowableForm" v-if="isFlowableForm"
@ -104,14 +104,6 @@ export default {
} }
], ],
utilizeStateOptions: [ utilizeStateOptions: [
{
value: -1,
label: '请选择'
},
{
value: 0,
label: '无需借阅'
},
{ {
value: 1, value: 1,
label: '同意借阅' label: '同意借阅'
@ -124,9 +116,6 @@ export default {
} }
}, },
mounted() { mounted() {
this.$nextTick(() => {
console.log(this.setPage)
})
}, },
methods: { methods: {
handleChange(id, value) { handleChange(id, value) {

1
src/views/system/user/cart.vue

@ -171,6 +171,7 @@ export default {
}) })
}, },
handleLend(data) { handleLend(data) {
console.log('data', data)
this.$refs.lendFormRef.lendFormVisible = true this.$refs.lendFormRef.lendFormVisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.lendFormRef.detailArcData = [] this.$refs.lendFormRef.detailArcData = []

318
src/views/system/user/messageCenter/index.vue

@ -8,53 +8,187 @@
</ul> </ul>
<div class="process-right"> <div class="process-right">
<div class="head-container"> <div class="head-container">
<!-- <el-button icon="el-icon-delete" :disabled="!(selections.length)" size="mini" @click="delVisible=true">删除</el-button>
<el-button class="iconfont icon-biaojiyidu-fanbai" :disabled="!(selections.length)" size="mini" @click="handleRead">标记已读</el-button> -->
<el-input v-model="query.keyword" clearable size="small" placeholder="输入标题关键字搜索" prefix-icon="el-icon-search" class="filter-item" style="width: 225px;" />
<date-range-picker v-model="query.createTime" class="date-item" />
<!-- @click="getTableData" -->
<el-input v-model="search" clearable size="small" placeholder="输入标题关键字搜索" prefix-icon="el-icon-search" class="filter-item" style="width: 225px;" />
<date-range-picker v-model="blurryTime" class="date-item" />
<el-button icon="el-icon-search" size="mini" class="user-search-btn">搜索</el-button> <el-button icon="el-icon-search" size="mini" class="user-search-btn">搜索</el-button>
<el-button class="iconfont icon-quanbuyidu" size="mini" @click="handleAllRead">全部已读</el-button> <el-button class="iconfont icon-quanbuyidu" size="mini" @click="handleAllRead">全部已读</el-button>
</div> </div>
<MessageList :list-index="listIndex" />
<!-- <MessageList :list-index="listIndex" :items="items" /> -->
<div v-loading="loading" class="message-center-list">
<div v-if="hasMore" class="more-btn" @click="loadMore"><i class="iconfont icon-jiazaigengduo" />点击加载更多</div>
<div v-for="(item,index) in items" :key="index" class="message-item" @click="handleDetail(item)">
<div class="message-date">{{ item.createTime | parseTime }}</div>
<div class="message-cont">
<div class="message-cont-info">
<span :class="['message-type-title',{'type-title1': listIndex === 0 },{'type-title2': listIndex === 1 },{'type-title3': listIndex === 2 },{'type-title4': listIndex === 3 }]">{{ titleType }}</span>
<span class="is-read-tip">{{ item.isRead === 0 ? '未读' : '已读' }}</span>
<div class="message-title">{{ item.noticeTitle }}</div>
<ul class="message-list-info">
<li>创建人{{ item.createBy }}</li>
<li>创建时间{{ item.createTime | parseTime }}</li>
</ul>
</div>
<div class="message-more">查看详情<i class="iconfont icon-chakan" /></div>
</div>
</div>
<el-dialog :visible.sync="messageVisible" :modal-append-to-body="false" :close-on-click-modal="false" append-to-body title="消息详情">
<div class="setting-dialog">
<div class="message-detail">
<span :class="['message-type-title',{'type-title1': listIndex === 0 },{'type-title2': listIndex === 1 },{'type-title3': listIndex === 2 },{'type-title4': listIndex === 3 }]">{{ titleType }}</span>
<span class="detail-date">{{ detailInfo && detailInfo.create_by }} {{ detailInfo && detailInfo.create_time | parseTime }}</span>
<div class="message-title">{{ detailInfo && detailInfo.noticeTitle }}</div>
<el-input v-model="detailInfo.noticeContext" placeholder="请输入" type="textarea" :rows="10" />
</div>
<div slot="footer" class="dialog-footer">
<el-button v-if="detailInfo.noticeType === 1" @click="dealWithCont">流程处理</el-button>
<el-button type="primary" @click="messageVisible=false">确定</el-button>
</div>
</div>
</el-dialog>
<detail ref="detail" />
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import DateRangePicker from '@/components/DateRangePicker' import DateRangePicker from '@/components/DateRangePicker'
import { FetchMySystemNotice, FetchInitNoticeDetails } from '@/api/system/new'
import { getUserNotice, isread } from '@/api/system/logs' import { getUserNotice, isread } from '@/api/system/logs'
import CRUD, { presenter, header, crud } from '@crud/crud'
import MessageList from './module/list.vue'
// import CRUD, { presenter, header, crud } from '@crud/crud'
// import MessageList from './module/list.vue'
import detail from '../processCenter/module/form'
export default { export default {
name: 'MessageCenter', name: 'MessageCenter',
inject: ['reload'], inject: ['reload'],
components: { DateRangePicker, MessageList },
mixins: [presenter(), crud(), header()],
cruds() {
return CRUD({
url: 'api/users/notice',
sort: ['createTime,desc'],
optShow: {}
})
},
components: { DateRangePicker, detail },
// mixins: [presenter(), crud(), header()],
// cruds() {
// return CRUD({
// url: 'api/news/mySystemNotice',
// sort: ['createTime,desc'],
// optShow: {}
// })
// },
data() { data() {
return { return {
selections: [], selections: [],
query: {
createTime: [],
keyword: null
blurryTime: [],
search: null,
listIndex: 0,
titleType: '系统通知',
items: [],
page: {
total: 0,
size: 10,
page: 1,
totalPages: 0
}, },
listIndex: 0
loading: false,
messageVisible: false,
detailInfo: {},
opinionTxt: '',
hasMore: true //
} }
}, },
created() { created() {
this.loadData()
}, },
methods: { methods: {
handleClick(index) { handleClick(index) {
this.listIndex = index this.listIndex = index
this.getIndex()
}, },
getParams() {
const params = {
search: this.search,
page: this.page.page - 1,
size: this.page.size,
startTime: this.blurryTime[0],
endTime: this.blurryTime[1],
sort: 'createTime,desc'
}
return params
},
getTableData() {
this.loading = true
FetchMySystemNotice(this.getParams()).then(res => {
this.page.total = res.totalElements
this.page.totalPages = res.totalPages
const table = res.content
// table.forEach(item => {
// item.pushUserName = item.noticeUsers[0].pushUserName
// item.isRead = item.noticeUsers[0].isRead
// })
this.items = table.concat(table)
this.loading = false
})
},
loadData() {
this.loading = true
setTimeout(() => {
this.getTableData()
this.page.page++
this.loading = false
if (this.page.page >= this.page.totalPages) {
this.hasMore = false
}
}, 1000)
},
loadMore() {
if (this.loading) {
return
}
this.loadData()
},
handleDetail(item) {
switch (item.noticaType) {
case 0:
this.opinionTxt = '这是一条系统通知'
break
case 1:
this.opinionTxt = '这是一条有流程达到提醒'
break
case 2:
this.opinionTxt = '这是一条流程完成提醒'
break
case 3:
this.opinionTxt = '这是一条赋权到期提醒'
break
}
FetchInitNoticeDetails({ 'noticeId': item.noticeId }).then((res) => {
console.log(res)
this.detailInfo = res
this.messageVisible = true
}).catch(err => {
console.log(err)
})
},
getIndex() {
switch (this.listIndex) {
case 0:
this.titleType = '系统通知'
this.opinionTxt = '这是一条系统通知'
break
case 1:
this.titleType = '有流程达到'
this.opinionTxt = '这是一条有流程达到提醒'
break
case 2:
this.titleType = '流程完成提醒'
this.opinionTxt = '这是一条流程完成提醒'
break
case 3:
this.titleType = '赋权到期提醒'
this.opinionTxt = '这是一条赋权到期提醒'
break
}
},
// //
handleRead() { handleRead() {
isread(this.getUserMsgId(this.selections)).then(res => { isread(this.getUserMsgId(this.selections)).then(res => {
@ -69,7 +203,6 @@ export default {
const params = { const params = {
page: 0, page: 0,
size: 10, size: 10,
// createTime: [],
sort: 'createTime,desc' sort: 'createTime,desc'
} }
const list = [] const list = []
@ -99,4 +232,145 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
[data-theme=dark] .message-center-list{
background-color: transparent;
.more-btn{
color: #339cff;
}
.message-item{
.message-cont{
background-color: #02255f;
.message-cont-info{
color: #fff;
.is-read-tip{
color: #1890ff;
border: 1px solid #339cff;
background-color: #02255f;
}
}
.message-more{
color: #3a99fd;
border-top: 1px solid #113d72;
i{
color: #3a99fd;
}
}
}
}
.message-title{
font-weight: 600;
color: #3a99fd;
}
}
.message-center-list{
height: calc(100% - 90px);
padding: 16px 30px;
margin-bottom: 20px;
background-color: #F5F5F5;
overflow: hidden;
overflow-y: scroll;
.more-btn{
margin-bottom: 30px;
line-height: 30px;
font-size: 14px;
text-align: center;
color: #0348F3;
cursor: pointer;
i{
display: inline-block;
}
}
.message-item{
font-size: 14px;
.message-date{
text-align: center;
color: #A6ADB6;
}
.message-cont{
margin: 12px 0 16px 0;
background-color: #fff;
.message-cont-info{
position: relative;
padding: 16px 20px;
color: #545B65;
.is-read-tip{
position: absolute;
right: 20px;
top: 16px;
font-size: 12px;
height: 20px;
line-height: 20px;
padding: 0 7px;
color: #ED4A41;
background-color: #FDEFEE;
border-radius: 3px;
}
.message-list-info{
font-size: 12px;
line-height: 24px;
}
}
.message-more{
position: relative;
padding: 0 20px;
height: 40px;
line-height: 40px;
color: #545B65;
border-top: 1px solid #E6E8ED;
cursor: pointer;
i{
position: absolute;
right: 10px;
top: 0;
font-size: 12px;
color: #888D94;
}
}
}
}
}
.message-type-title{
display: block;
padding-left: 33px;
height: 33px;
line-height: 33px;
&.type-title1{
background: url('~@/assets/images/icon/xttz.png') no-repeat left center;
background-size: 23px 23px;
}
&.type-title2{
background: url('~@/assets/images/icon/lcdd.png') no-repeat left center;
background-size: 23px 23px;
}
&.type-title3{
background: url('~@/assets/images/icon/lcwc.png') no-repeat left center;
background-size: 23px 23px;
}
&.type-title4{
background: url('~@/assets/images/icon/fqdq.png') no-repeat left center;
background-size: 23px 23px;
}
}
.message-title{
margin: 8px 0 20px 0;
font-weight: 400;
color: #0C0E1E;
}
.message-detail{
position: relative;
.detail-date{
position: absolute;
right: 0;
top: 0;
font-size: 12px;
line-height: 32px;
color: #A6ADB6;
}
.message-title{
margin: 10px 0 20px 0;
}
}
</style> </style>

60
src/views/system/user/messageCenter/module/list.vue

@ -1,16 +1,16 @@
<template> <template>
<div class="message-center-list"> <div class="message-center-list">
<div v-if="hasMore" class="more-btn" @click="loadMore"><i class="iconfont icon-jiazaigengduo" />点击加载更多</div> <div v-if="hasMore" class="more-btn" @click="loadMore"><i class="iconfont icon-jiazaigengduo" />点击加载更多</div>
<div v-for="(item,index) in items" :key="index" class="message-item" @click="handleDetail(isIndex)">
<div class="message-date">2020-10-01 10:00:00</div>
<div v-for="(item,index) in items" :key="index" class="message-item" @click="handleDetail(item)">
<div class="message-date">{{ item.createTime | parseTime }}</div>
<div class="message-cont"> <div class="message-cont">
<div class="message-cont-info"> <div class="message-cont-info">
<span :class="['message-type-title',{'type-title1': isIndex === 0 },{'type-title2': isIndex === 1 },{'type-title3': isIndex === 2 },{'type-title4': isIndex === 3 }]">{{ title }}</span>
<span class="is-read-tip">未读</span>
<div class="message-title">{{ item.name }}</div>
<span :class="['message-type-title',{'type-title1': isIndex === 0 },{'type-title2': isIndex === 1 },{'type-title3': isIndex === 2 },{'type-title4': isIndex === 3 }]">{{ titleType }}</span>
<span class="is-read-tip">{{ item.isRead === 0 ? '未读' : '已读' }}</span>
<div class="message-title">{{ item.noticeTitle }}</div>
<ul class="message-list-info"> <ul class="message-list-info">
<li>创建人admin</li>
<li>创建时间2020-10-01 10:00:00</li>
<li>创建人{{ item.createBy }}</li>
<li>创建时间{{ item.createTime | parseTime }}</li>
</ul> </ul>
</div> </div>
<div class="message-more">查看详情<i class="iconfont icon-chakan" /></div> <div class="message-more">查看详情<i class="iconfont icon-chakan" /></div>
@ -20,13 +20,13 @@
<el-dialog :visible.sync="messageVisible" :modal-append-to-body="false" :close-on-click-modal="false" append-to-body title="消息详情"> <el-dialog :visible.sync="messageVisible" :modal-append-to-body="false" :close-on-click-modal="false" append-to-body title="消息详情">
<div class="setting-dialog"> <div class="setting-dialog">
<div class="message-detail"> <div class="message-detail">
<span :class="['message-type-title',{'type-title1': isIndex === 0 },{'type-title2': isIndex === 1 },{'type-title3': isIndex === 2 },{'type-title4': isIndex === 3 }]">{{ title }}</span>
<span class="detail-date">admin 2020-10-01 10:00:00</span>
<div class="message-title">这是系统通知标题</div>
<el-input v-model="opinionTxt" placeholder="请输入" type="textarea" :rows="10" />
<span :class="['message-type-title',{'type-title1': isIndex === 0 },{'type-title2': isIndex === 1 },{'type-title3': isIndex === 2 },{'type-title4': isIndex === 3 }]">{{ titleType }}</span>
<span class="detail-date">{{ detailInfo && detailInfo.create_by }} {{ detailInfo && detailInfo.create_time | parseTime }}</span>
<div class="message-title">{{ detailInfo && detailInfo.noticeTitle }}</div>
<el-input v-model="detailInfo.noticeContext" placeholder="请输入" type="textarea" :rows="10" />
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button v-if="isIndex===1" @click="dealWithCont">流程处理</el-button>
<el-button v-if="detailInfo.noticeType === 1" @click="dealWithCont">流程处理</el-button>
<el-button type="primary" @click="messageVisible=false">确定</el-button> <el-button type="primary" @click="messageVisible=false">确定</el-button>
</div> </div>
</div> </div>
@ -37,6 +37,7 @@
</template> </template>
<script> <script>
import { FetchInitNoticeDetails } from '@/api/system/new'
import detail from '../../processCenter/module/form' import detail from '../../processCenter/module/form'
export default { export default {
name: 'MessageList', name: 'MessageList',
@ -45,19 +46,25 @@ export default {
listIndex: { listIndex: {
type: Number, type: Number,
default: 0 default: 0
},
items: {
type: Array,
default: function() {
return []
}
} }
}, },
data() { data() {
return { return {
isIndex: 0, isIndex: 0,
title: '系统通知',
titleType: '系统通知',
messageVisible: false, messageVisible: false,
opinionTxt: '', opinionTxt: '',
loading: false, // loading: false, //
hasMore: true, // hasMore: true, //
items: [],
currentPage: 1, currentPage: 1,
pageSize: 10
pageSize: 10,
detailInfo: {}
} }
}, },
watch: { watch: {
@ -67,7 +74,7 @@ export default {
} }
}, },
created() { created() {
this.loadData()
// this.loadData()
}, },
mounted() { mounted() {
}, },
@ -100,29 +107,27 @@ export default {
this.loadData() this.loadData()
}, },
getIndex() { getIndex() {
console.log(this.isIndex)
switch (this.isIndex) { switch (this.isIndex) {
case 0: case 0:
this.title = '系统通知'
this.titleType = '系统通知'
this.opinionTxt = '这是一条系统通知' this.opinionTxt = '这是一条系统通知'
break break
case 1: case 1:
this.title = '有流程达到'
this.titleType = '有流程达到'
this.opinionTxt = '这是一条有流程达到提醒' this.opinionTxt = '这是一条有流程达到提醒'
break break
case 2: case 2:
this.title = '流程完成提醒'
this.titleType = '流程完成提醒'
this.opinionTxt = '这是一条流程完成提醒' this.opinionTxt = '这是一条流程完成提醒'
break break
case 3: case 3:
this.title = '赋权到期提醒'
this.titleType = '赋权到期提醒'
this.opinionTxt = '这是一条赋权到期提醒' this.opinionTxt = '这是一条赋权到期提醒'
break break
} }
}, },
handleDetail(index) {
this.messageVisible = true
switch (index) {
handleDetail(item) {
switch (item.noticaType) {
case 0: case 0:
this.opinionTxt = '这是一条系统通知' this.opinionTxt = '这是一条系统通知'
break break
@ -136,6 +141,13 @@ export default {
this.opinionTxt = '这是一条赋权到期提醒' this.opinionTxt = '这是一条赋权到期提醒'
break break
} }
FetchInitNoticeDetails({ 'noticeId': item.noticeId }).then((res) => {
console.log(res)
this.detailInfo = res
this.messageVisible = true
}).catch(err => {
console.log(err)
})
}, },
dealWithCont() { dealWithCont() {
this.$refs.detail.detailVisible = true this.$refs.detail.detailVisible = true

6
src/views/system/user/processCenter/index.vue

@ -155,6 +155,12 @@ export default {
}, },
handleClick(index) { handleClick(index) {
this.listIndex = index this.listIndex = index
this.title = ''
this.type = 1
this.status = null
this.blurryTime = []
this.crud.query.startTime = null
this.crud.query.endTime = null
// 1. index=1 2.退 index=2 3. index=6 4.index=7 5.index=3 6.index=4 7.index=5 // 1. index=1 2.退 index=2 3. index=6 4.index=7 5.index=3 6.index=4 7.index=5
switch (index) { switch (index) {
case 0: case 0:

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

@ -18,14 +18,15 @@
<!-- 1.归档 index=1 2.退回 index=2 3.开放 index=6 4.销毁index=7 5.利用index=3 6.内部移交index=4 7.外部移交index=5 --> <!-- 1.归档 index=1 2.退回 index=2 3.开放 index=6 4.销毁index=7 5.利用index=3 6.内部移交index=4 7.外部移交index=5 -->
<div class="detail-list"> <div class="detail-list">
<p><span>业务类型</span>{{ businessTypeText }}</p> <p><span>业务类型</span>{{ businessTypeText }}</p>
<p><span>原始位置</span>{{ baseInfo && baseInfo.businessType === 1 ? '收集库' : baseInfo && baseInfo.businessType === 2 ? '管理库' : '-' }}</p>
<p><span>目标位置</span>{{ baseInfo && baseInfo.businessType === 1 ? '管理库' : baseInfo && baseInfo.businessType === 2 ? '收集库' : '-' }}</p>
<p v-if="baseInfo && baseInfo.businessType === 6"><span>目标全宗</span>{{ baseInfo && baseInfo.targetFondsNo }}</p>
<p v-if="baseInfo && baseInfo.businessType !== 6"><span>原始位置</span>{{ baseInfo && baseInfo.businessType === 1 ? '收集库' : baseInfo && baseInfo.businessType === 2 ? '管理库' : '-' }}</p>
<p v-if="baseInfo && baseInfo.businessType !== 6"><span>目标位置</span>{{ baseInfo && baseInfo.businessType === 1 ? '管理库' : baseInfo && baseInfo.businessType === 2 ? '收集库' : '-' }}</p>
<!-- <p><span>赋权类型</span>-</p> --> <!-- <p><span>赋权类型</span>-</p> -->
<p v-if="baseInfo && baseInfo.giveStartTime"><span>起始时间</span>{{ baseInfo && baseInfo.giveStartTime | parseTime }}</p> <p v-if="baseInfo && baseInfo.giveStartTime"><span>起始时间</span>{{ baseInfo && baseInfo.giveStartTime | parseTime }}</p>
<p v-else><span>起始时间</span>-</p> <p v-else><span>起始时间</span>-</p>
<p v-if="baseInfo && baseInfo.giveEndTime"><span>终止时间</span>{{ baseInfo && baseInfo.giveEndTime | parseTime }}</p> <p v-if="baseInfo && baseInfo.giveEndTime"><span>终止时间</span>{{ baseInfo && baseInfo.giveEndTime | parseTime }}</p>
<p v-else><span>终止时间</span>-</p> <p v-else><span>终止时间</span>-</p>
<p v-if="baseInfo && baseInfo.businessType !== 5"><span>申请缘由</span>{{ baseInfo && baseInfo.remarks }}</p>
<p v-if="baseInfo && baseInfo.businessType !== 5"><span>申请缘由</span>{{ baseInfo && baseInfo.remarks ? baseInfo.remarks : baseInfo.reason }}</p>
<p v-else><span>利用目的</span>{{ baseInfo && baseInfo.borrowReason }}</p> <p v-else><span>利用目的</span>{{ baseInfo && baseInfo.borrowReason }}</p>
<!-- <p><span>利用次数</span>-</p> --> <!-- <p><span>利用次数</span>-</p> -->
</div> </div>
@ -57,12 +58,7 @@
<script> <script>
import { FetchBecomeDocumentConfirm } from '@/api/collect/collect' import { FetchBecomeDocumentConfirm } from '@/api/collect/collect'
import { FetchGenProcessDiagram } from '@/api/system/flowable' import { FetchGenProcessDiagram } from '@/api/system/flowable'
import { FetchBusinessFlowDetails, FetchUtilizeConfirm, FetchArchivesReturnConfirm, FetchArchivesOpenConfirm } from '@/api/archivesManage/library'
// FetchArchivesDestructionConfirm,
// FetchArchivesOpenConfirm,
// FetchArchivesReturnConfirm,
// FetchTransferConfirm,
// FetchOfflineTransferConfirm
import { FetchBusinessFlowDetails, FetchUtilizeConfirm, FetchArchivesReturnConfirm, FetchArchivesOpenConfirm, FetchArchivesDestructionConfirm, FetchTransferConfirm, FetchOfflineTransferConfirm } from '@/api/archivesManage/library'
import businessDetails from '@/views/system/processManage/runningProcess/module/businessDetails/index.vue' import businessDetails from '@/views/system/processManage/runningProcess/module/businessDetails/index.vue'
export default { export default {
name: 'Form', name: 'Form',
@ -160,6 +156,9 @@ export default {
} }
this.tableData = res.details.content this.tableData = res.details.content
this.tableData.forEach(item => { this.tableData.forEach(item => {
if (item.utilizeState === -1) {
item.utilizeState = 1
}
this.$set(this.selectedValues, item.archivesId, item.utilizeState) this.$set(this.selectedValues, item.archivesId, item.utilizeState)
}) })
this.setPage.total = res.details.totalElements this.setPage.total = res.details.totalElements
@ -204,6 +203,7 @@ export default {
} }
console.log(params) console.log(params)
if (this.selectRow.businessType === 1) { if (this.selectRow.businessType === 1) {
//
FetchBecomeDocumentConfirm(params).then((res) => { FetchBecomeDocumentConfirm(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
this.$message({ message: res, type: 'success', offset: 8 }) this.$message({ message: res, type: 'success', offset: 8 })
@ -214,9 +214,9 @@ export default {
}).catch(err => { }).catch(err => {
console.log(err) console.log(err)
}) })
} else if (this.selectRow.businessType === 5) {
FetchUtilizeConfirm(params).then((res) => {
console.log(res)
} else if (this.selectRow.businessType === 2) {
// 退
FetchArchivesReturnConfirm(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
this.$message({ message: res, type: 'success', offset: 8 }) this.$message({ message: res, type: 'success', offset: 8 })
} else { } else {
@ -226,9 +226,9 @@ export default {
}).catch(err => { }).catch(err => {
console.log(err) console.log(err)
}) })
} else if (this.selectRow.businessType === 2) {
FetchArchivesReturnConfirm(params).then((res) => {
console.log(res)
} else if (this.selectRow.businessType === 3) {
//
FetchArchivesOpenConfirm(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
this.$message({ message: res, type: 'success', offset: 8 }) this.$message({ message: res, type: 'success', offset: 8 })
} else { } else {
@ -238,9 +238,9 @@ export default {
}).catch(err => { }).catch(err => {
console.log(err) console.log(err)
}) })
} else if (this.selectRow.businessType === 3) {
FetchArchivesOpenConfirm(params).then((res) => {
console.log(res)
} else if (this.selectRow.businessType === 4) {
//
FetchArchivesDestructionConfirm(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
this.$message({ message: res, type: 'success', offset: 8 }) this.$message({ message: res, type: 'success', offset: 8 })
} else { } else {
@ -250,6 +250,43 @@ export default {
}).catch(err => { }).catch(err => {
console.log(err) console.log(err)
}) })
} else if (this.selectRow.businessType === 5) {
//
FetchUtilizeConfirm(params).then((res) => {
if (res.code !== 500) {
this.$message({ message: res, type: 'success', offset: 8 })
} else {
this.$message({ message: '操作提交失败', type: 'error', offset: 8 })
}
this.closedDialog()
}).catch(err => {
console.log(err)
})
} else if (this.selectRow.businessType === 6) {
// 线
FetchTransferConfirm(params).then((res) => {
if (res.code !== 500) {
this.$message({ message: res, type: 'success', offset: 8 })
} else {
this.$message({ message: '操作提交失败', type: 'error', offset: 8 })
}
this.closedDialog()
}).catch(err => {
console.log(err)
})
} else if (this.selectRow.businessType === 7) {
// 线
FetchOfflineTransferConfirm(params).then((res) => {
if (res) {
this.$message({ message: '操作提交成功', type: 'success', offset: 8 })
} else {
this.$message({ message: '操作提交失败', type: 'error', offset: 8 })
}
this.closedDialog()
}).catch(err => {
this.$message({ message: '操作提交失败', type: 'error', offset: 8 })
console.log(err)
})
} }
} else { } else {
return false return false

Loading…
Cancel
Save