dc814a88 by 田浩浩
2 parents cf4601d7 e356a395
......@@ -67,3 +67,12 @@ export function getSlsqBdcqzList (params) {
params
})
}
// 证书预览
export function bdcqzPreview (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/bdcqzPreview',
method: 'post',
data
})
}
\ No newline at end of file
......
......@@ -97,7 +97,7 @@ export function stepExpandInfo (data) {
// 获取审批意见
export function getSpyjList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/getSpyjList',
url: SERVER.SERVERAPI + '/rest/ywbl/opinion/getSpyjList',
method: 'post',
data
})
......@@ -106,7 +106,7 @@ export function getSpyjList (data) {
// 保存审批意见
export function saveSpyj (data) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/saveSpyj',
url: SERVER.SERVERAPI + '/rest/ywbl/opinion/saveSpyj',
method: 'post',
data
})
......@@ -114,7 +114,7 @@ export function saveSpyj (data) {
// 根据受理申请保存审批意见
export function saveSpyjBySlsq (data) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/saveSpyjBySlsq',
url: SERVER.SERVERAPI + '/rest/ywbl/opinion/saveSpyjBySlsq',
method: 'post',
data
})
......@@ -127,62 +127,7 @@ export function record (data) {
data
})
}
// 获取不动产权证列表
export function getBdcqzList (params) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/getBdcqzList',
method: 'get',
params: params
})
}
// 获取印刷序列号
export function readYsxlh (params) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/readYsxlh',
method: 'get',
params: params
})
}
// 缮证
export function certificate (data) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/certificate',
method: 'post',
data
})
}
// 作废缮证信息
export function invalidCertificate (data) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/invalidCertificate',
method: 'post',
data
})
}
// 缮证列表
export function getCertificateList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/getCertificateList',
method: 'post',
data
})
}
// 发证
export function issueCertificate (data) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/issueCertificate',
method: 'post',
data
})
}
// 获取受理申请下全部不动产权证
export function getSlsqBdcqzList (params) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/getSlsqBdcqzList',
method: 'get',
params
})
}
// 终止任务
export function stopTask (data) {
return request({
......
......@@ -24,3 +24,20 @@ export function getHomeDoneList () {
method: 'get'
})
}
//获取首页常办项目
export function getHomeFrequentProjects () {
return request({
url: SERVER.SERVERAPI + '/rest/workBench/getHomeFrequentProjects',
method: 'get'
})
}
//保存常办项目
export function saveFrequentProjectsList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/workBench/saveFrequentProjectsList',
method: 'post',
data
})
}
......
......@@ -72,3 +72,11 @@ export function setReadStatus (params) {
params: params
})
}
//一键设置已读
export function setAllRead () {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/setAllRead',
method: 'get'
})
}
......
......@@ -2,18 +2,6 @@ import request from '@/utils/request'
import SERVER from './config'
/*
业务办理-选择单元-查询宗地基本信息
*/
export function selectZdjbxx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectZdjbxx',
method: 'post',
data
})
}
/*
业务办理-选择单元-查询建设用地、宅基地信息
*/
export function selectJsydQlxx (data) {
......@@ -24,29 +12,6 @@ export function selectJsydQlxx (data) {
})
}
/*
业务办理-选择单元-查询自然幢信息
*/
export function selectZrz (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectZrz',
method: 'post',
data
})
}
/*
业务办理-选择单元-查询户信息
*/
export function selectH (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectH',
method: 'post',
data
})
}
// 获取自然幢下其他户
export function selectOtherH (data) {
return request({
......@@ -67,17 +32,6 @@ export function selectOtherH (data) {
// showLoading: true
// })
// }
/*
业务办理-选择权利信息-根据条件进行列表查询
*/
export function selectQlxx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectQlxx',
method: 'post',
data
})
}
/*
业务办理-选择抵押权信息-根据条件进行列表查询
*/
......@@ -117,11 +71,3 @@ export function choiceBdcdy (data) {
})
}
// 业务办理-选择农用地信息-根据条件进行列表查询
export function selectNydsyqQlxx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectNydsyqQlxx',
method: 'post',
data
})
}
\ No newline at end of file
......
......@@ -164,7 +164,7 @@ export function selectOtherH (data) {
}
// 认领任务
export function claimTask (bsmSlsq,bestepid) {
export function claimTask (bsmSlsq, bestepid) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/claimTask?bsmSlsq=' + bsmSlsq + '&bestepid=' + bestepid,
method: 'get',
......@@ -172,9 +172,50 @@ export function claimTask (bsmSlsq,bestepid) {
}
// 取消认领任务
export function unClaimTask (bsmSlsq,bestepid) {
export function unClaimTask (bsmSlsq, bestepid) {
return request({
url: SERVER.SERVERAPI + '/rest/business/workFlow/unClaimTask?bsmSlsq=' + bsmSlsq + '&bestepid=' + bestepid,
method: 'get',
})
}
// 业务办理-选择农用地信息-根据条件进行列表查询
export function selectNydsyqQlxx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectNydsyqQlxx',
method: 'post',
data
})
}
/*
业务办理-选择单元-查询宗地基本信息
*/
export function selectZdjbxx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectZdjbxx',
method: 'post',
data
})
}
/*
业务办理-选择单元-查询自然幢信息
*/
export function selectZrz (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectZrz',
method: 'post',
data
})
}
/*
业务办理-选择单元-查询户信息
*/
export function selectH (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectH',
method: 'post',
data
})
}
\ No newline at end of file
......
<template>
<el-calendar v-model="date">
<template slot="dateCell" slot-scope="{date, data}">
<div :class="{ selected: isSelected(date, data) }">
<div class="solar">{{ data.day.split('-')[2] }}</div>
<div class="lunar" :class="{ festival: isFestival(date, data) }">{{ solarToLunar(date, data) }}</div>
</div>
</template>
</el-calendar>
</template>
<script>
import calendar from './calendar'
export default {
name: 'calendar',
data () {
return {
date: new Date(),
// 根据selectedDates设置选中日期
selectedDates: []
}
},
methods: {
// 是否选中日期
isSelected: function (slotDate, slotData) {
return this.selectedDates.includes(slotData.day)
},
// 是否节假日
isFestival (slotDate, slotData) {
let solarDayArr = slotData.day.split('-');
let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
// 公历节日\农历节日\农历节气
let festAndTerm = [];
festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
festAndTerm = festAndTerm.join('')
return festAndTerm != ''
},
// 公历转农历
solarToLunar (slotDate, slotData) {
let solarDayArr = slotData.day.split('-');
let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
// 农历日期
let lunarMD = lunarDay.IMonthCn + lunarDay.IDayCn
// 公历节日\农历节日\农历节气
let festAndTerm = [];
festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
festAndTerm = festAndTerm.join('')
return festAndTerm == '' ? lunarMD : festAndTerm
}
}
}
</script>
<style scoped>
/**隐藏上一月、本月、下一月*/
.el-calendar__button-group {
display: none;
}
/deep/.el-calendar__body {
padding: 8px;
}
/deep/.el-calendar-table .el-calendar-day {
height: auto;
padding: 5px;
}
/**月份居中*/
.el-calendar__title {
width: 100%;
text-align: center;
}
/deep/.el-calendar-table thead th {
padding: 0 0 6px 0 !important;
}
/deep/.el-calendar-day {
padding: 3px !important;
}
/deep/.el-calendar-table td.is-today {
font-weight: 700;
}
/deep/.el-calendar-table td.is-selected {
background-color: rgb(179, 216, 255);
}
/deep/.el-calendar__header {
padding: 8px 15px;
}
/**日期div的样式*/
.el-calendar-table tr td:first-child {
border-left: 0px;
}
.el-calendar-table td {
min-height: 110px;
min-width: 110px;
border-right: 0px;
}
.el-calendar-table td.is-selected {
background-color: white;
}
.el-calendar-table .el-calendar-day {
padding: 0px;
text-align: center;
}
.el-calendar-table .el-calendar-day>div {
text-align: center
}
/**日期div的样式-公历*/
.el-calendar-table .el-calendar-day>div .solar {
text-align: center;
margin-top: 3px;
}
/**日期div的样式-农历*/
.el-calendar-table .el-calendar-day>div .lunar {
padding-top: 5px;
font-size: 12px;
text-align: center;
margin-bottom: 5px;
}
/**日期div的样式-选中*/
.el-calendar-table .el-calendar-day>div.selected {
background-color: #fef2f2;
border: 3px solid #fb0;
border-radius: 20px;
text-align: center
}
/**本月周末设置为红色*/
/* .el-calendar-table .current:nth-last-child(-n+2) .solar {
color: red;
} */
/**本月农历设置为灰色*/
.el-calendar-table .current .lunar {
color: #606266;
font-size: 12px;
}
/**本月农历节日设置为红色*/
.el-calendar-table .current .lunar.festival {
color: red;
}
.el-calendar-table td {
border-right: none !important;
}
/**禁用点击效果*/
/*.el-calendar-table td {*/
/*pointer-events: none;*/
/*}*/
</style>
\ No newline at end of file
<template>
<el-calendar v-model="date">
<template slot="dateCell" slot-scope="{date, data}">
<div :class="{ selected: isSelected(date, data) }">
<div class="solar">{{ data.day.split('-')[2] }}</div>
<div class="lunar" :class="{ festival: isFestival(date, data) }">{{ solarToLunar(date, data) }}</div>
</div>
</template>
</el-calendar>
</template>
<script>
import calendar from './calendar'
export default {
name: 'calendar',
data () {
return {
date: new Date(),
// 根据selectedDates设置选中日期
selectedDates: []
}
},
methods: {
// 是否选中日期
isSelected: function (slotDate, slotData) {
return this.selectedDates.includes(slotData.day)
},
// 是否节假日
isFestival (slotDate, slotData) {
let solarDayArr = slotData.day.split('-');
let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
// 公历节日\农历节日\农历节气
let festAndTerm = [];
festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
festAndTerm = festAndTerm.join('')
return festAndTerm != ''
},
// 公历转农历
solarToLunar (slotDate, slotData) {
let solarDayArr = slotData.day.split('-');
let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
// 农历日期
let lunarMD = lunarDay.IMonthCn + lunarDay.IDayCn
// 公历节日\农历节日\农历节气
let festAndTerm = [];
festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
festAndTerm = festAndTerm.join('')
return festAndTerm == '' ? lunarMD : festAndTerm
}
}
}
</script>
<style scoped>
/**隐藏上一月、本月、下一月*/
.el-calendar__button-group {
display: none;
}
/deep/.el-calendar__body {
padding: 8px;
}
/deep/.el-calendar-table .el-calendar-day {
height: auto;
padding: 5px;
}
/**月份居中*/
.el-calendar__title {
width: 100%;
text-align: center;
}
/deep/.el-calendar-table thead th {
padding: 0 0 6px 0 !important;
}
/deep/.el-calendar-day {
padding: 3px !important;
}
/deep/.el-calendar-table td.is-today {
font-weight: 700;
}
/deep/.el-calendar-table td.is-selected {
background-color: rgb(179, 216, 255);
}
/deep/.el-calendar__header {
padding: 8px 15px;
}
/**日期div的样式*/
.el-calendar-table tr td:first-child {
border-left: 0px;
}
.el-calendar-table td {
min-height: 110px;
min-width: 110px;
border-right: 0px;
}
.el-calendar-table td.is-selected {
background-color: white;
}
.el-calendar-table .el-calendar-day {
padding: 0px;
text-align: center;
}
.el-calendar-table .el-calendar-day>div {
text-align: center
}
/**日期div的样式-公历*/
.el-calendar-table .el-calendar-day>div .solar {
text-align: center;
margin-top: 3px;
}
/**日期div的样式-农历*/
.el-calendar-table .el-calendar-day>div .lunar {
padding-top: 5px;
font-size: 12px;
text-align: center;
margin-bottom: 5px;
}
/**日期div的样式-选中*/
.el-calendar-table .el-calendar-day>div.selected {
background-color: #fef2f2;
border: 3px solid #fb0;
border-radius: 20px;
text-align: center
}
/**本月周末设置为红色*/
/* .el-calendar-table .current:nth-last-child(-n+2) .solar {
color: red;
} */
/**本月农历设置为灰色*/
.el-calendar-table .current .lunar {
color: #606266;
font-size: 12px;
}
/**本月农历节日设置为红色*/
.el-calendar-table .current .lunar.festival {
color: red;
}
.el-calendar-table td {
border-right: none !important;
}
/**禁用点击效果*/
/*.el-calendar-table td {*/
/*pointer-events: none;*/
/*}*/
</style>
\ No newline at end of file
......@@ -9,10 +9,17 @@
</div>
<div class="right-menu">
<svg-icon class="function" icon-class='function' />
<div class="avatar-wrapper right-menu-item hover-effect">
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover" @command="handleCommand">
<div class="avatar-wrapper">
<span style="padding-right:10px">{{ name }}</span>
<img :src="avatar + '?imageView2/1/w/80/h/80'" class="user-avatar" />
<span style="margin-left: 10px;">{{ name }}</span>
<!-- <i class="el-icon-caret-bottom" /> -->
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="a">个人中心</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<svg-icon class="shutdown" icon-class='shutdown' />
</div>
......@@ -60,11 +67,6 @@ export default {
if (command == 'a') {
//个人中心
this.$router.push({ name: 'personal' })
} else if (command == 'f') {
// 退出
this.$store.dispatch('user/logout')
this.$router.push(`/login?redirect=${this.$route.fullPath}`)
window.sessionStorage.clear()
}
}
}
......
......@@ -5,7 +5,6 @@
<!--顶部栏-->
<el-header class="home_header">
<span class="home_title">
</span>
</el-header>
<el-container >
......
......@@ -38,13 +38,7 @@ export const constantRoutes = [
name: 'workFrameView',
hidden: true,
meta: { title: '发起申请' }
}
]
/**
* asyncRoutes
* the routes that need to be dynamically loaded based on user roles
*/
export const asyncRoutes = [
},
{
path: '/',
component: Layout,
......@@ -59,6 +53,12 @@ export const asyncRoutes = [
}
]
},
]
/**
* asyncRoutes
* the routes that need to be dynamically loaded based on user roles
*/
export const asyncRoutes = [
{
path: '/ywbl',
id: '2',
......
......@@ -20,7 +20,8 @@ const actions = {
return new Promise(resolve => {
// 将权限菜单数组转成路由树数据结构
let permission_tree = asyncRouter(getMenuInfo)
commit('SET_ROUTES', permission_tree)
const mergeResult = _.cloneDeep(constantRoutes).concat(permission_tree);
commit('SET_ROUTES', mergeResult)
resolve(permission_tree)
})
},
......
......@@ -6,7 +6,7 @@ export default function filterAsyncRouter (routers) {
} else {
item.children = filterAsyncRouter(item.children)
}
item.path = JSON.parse(item.metadata).path
item.path = JSON.parse(item.metadata).path ? JSON.parse(item.metadata).path : '/'
if (!item.parentId) {
item.component = Layout
} else {
......
......@@ -39,6 +39,13 @@ service.interceptors.response.use(
* 如果请求不成功,就在拦截器这里统一处理(组件的代码就不用关注错误的情况了)
*/
if (response.status == 200) {
if (response.data.code == 500) {
Message({
message: response.data.message,
type: 'error',
duration: 5 * 1000
})
}
return response.data;
} else {
handleErrorData(response.data);
......
<template>
<dialogBox title="配置常办项目" @submitForm="submitForm" saveButton="保存" :isFullscreen="false" width="50%"
@closeDialog="closeDialog" v-model="value">
<el-form ref="ruleForm" :model="ruleForm" label-width="100px">
<el-tree :data="projectList" show-checkbox node-key="id" ref="tree" default-expand-all :props="defaultProps"
@check-change="handleClick"></el-tree>
</el-form>
</dialogBox>
</template>
<script>
import { getMenuInfo } from "@/api/user.js";
import { saveFrequentProjectsList } from "@/api/home.js";
export default {
props: {
value: { type: Boolean, default: false },
bindItem: { type: Array, default: [] }
},
data () {
return {
projectList: [],
ruleForm: {
},
checkedItem: [],
defaultProps: {
children: "children",
label: "name",
disabled: function (data, node) {
if (data.children && data.children.length > 0) {
return true
} else {
return false
}
}
},
uniqueValue: ''//最后拿到的唯一选择的moduldCode值,相当于id
}
},
mounted () {
this.queryClick()
this.dealCheckedItem();
},
methods: {
submitForm () {
var checkedNodes = this.$refs.tree.getCheckedNodes();
if (checkedNodes.length > 6) {
this.$message.error("最多选择6个项目!");
return
}
saveFrequentProjectsList(checkedNodes).then(res => {
if (res.code == 200) {
this.$parent.queryProjectList();
this.$message.success("保存成功");
this.$emit("input", false);
} else {
this.$message.error(res.message);
}
})
},
queryClick () {
getMenuInfo().then(res => {
this.projectList = res.result
})
},
dealCheckedItem () {
},
//关闭窗口
closeDialog () {
this.$emit("input", false);
},
//节点选择状态发生改变时
handleClick (data, checked, node) {
var checkedNodes = this.$refs.tree.getCheckedNodes();
if (checked) {
checkedNodes.push(data);
}
this.$refs.tree.setCheckedNodes(checkedNodes);
console.log(this.$refs.tree.getCheckedNodes());
},
}
}
</script>
<style scoped lang='scss'>
/deep/.el-tree-node.is-expanded>.el-tree-node__children {
display: flex;
flex-wrap: wrap;
}
</style>
\ No newline at end of file
......@@ -14,7 +14,7 @@
li {
width: 32.5%;
height: 118px;
height: 90px;
@include flex-center;
flex-direction: column;
color: #fff;
......@@ -58,6 +58,7 @@
width: 75%;
}
ul {
li {
line-height: 36px;
......@@ -71,12 +72,14 @@
.box-mountNode {
flex: 1;
height: calc(100% - 510px);
height: calc(100% - 490px);
}
.home-right {
padding-left: 4px;
width: 30%;
display: flex;
flex-direction: column;
.list-title {
overflow: hidden;
......@@ -84,6 +87,16 @@
white-space: nowrap;
}
#loginTime {
height: 100%;
padding-bottom: 90px;
}
.dynamicInfo {
flex: 1;
height: 100%;
}
ul {
li {
line-height: 36px;
......
......@@ -3,28 +3,37 @@
<div class="home-left">
<el-row :gutter="8">
<el-col :span="12">
<el-card shadow="hover" :body-style="{ padding: '0' }">
<el-card shadow="hover" :body-style="{ padding: '0' }" style="height:260px">
<div slot="header" class="flexst">
<h5 class="title">常办项目</h5>
<el-button type="primary" @click="setFrequencyProject()">配置常办</el-button>
</div>
<ul class="workbench flexst">
<li v-for="(item, index) in newsListData" class="pointer" :key="index"
:style="{ backgroundColor: item.color }">
<li v-for="(item, index) in projectList" class="pointer" :key="index"
:style="{ backgroundColor: newsListColor[index] }">
<i class="el-icon-s-claim"></i>
{{ item.title }}
{{ item.name }}
</li>
</ul>
</el-card>
</el-col>
<el-col :span="12">
<el-card shadow="hover" style="height:247px">
<el-card shadow="hover" style="height:260px">
<div slot="header" class="flexst">
<h5 class="title">系统通知</h5>
<i class="el-icon-s-unfold pointer"></i>
<el-popover placement="right" width="50" trigger="hover">
<ul class="pointer">
<li @click="$store.dispatch('tagsView/addView', moreNotice)">查看更多</li>
</ul>
<i class="el-icon-s-unfold pointer" slot="reference"></i>
</el-popover>
</div>
<ul>
<li v-for="(item, index) in noticeList" :key="index" @click="handleNotice(item)" class="flexst pointer">
<p class="list-title">{{ item.noticeTitle }}</p>
<p class="marginZL15">{{ item.noticePublishTime.substring(0, 10) }}</p>
<p v-if="item.userBrowse == '1'" style="color:red">未读</p>
<p v-else>已读</p>
<p v-else style="color:green">已读</p>
</li>
</ul>
</el-card>
......@@ -32,7 +41,7 @@
</el-row>
<el-row :gutter="8" class="marginTop10">
<el-col :span="12">
<el-card shadow="hover" style="height:247px">
<el-card shadow="hover" style="height:215px">
<div slot="header" class="flexst">
<h5 class="title">待办事项</h5>
<i class="el-icon-s-unfold pointer"></i>
......@@ -46,10 +55,15 @@
</el-card>
</el-col>
<el-col :span="12">
<el-card shadow="hover" style="height:247px">
<el-card shadow="hover" style="height:215px">
<div slot="header" class="flexst">
<h5 class="title">政策法规</h5>
<i class="el-icon-s-unfold pointer"></i>
<el-popover placement="right" width="50" trigger="hover">
<ul class="pointer">
<li @click="$store.dispatch('tagsView/addView', moreNotice)">查看更多</li>
</ul>
<i class="el-icon-s-unfold pointer" slot="reference"></i>
</el-popover>
</div>
<ul>
<li v-for="(item, index) in policyList" @click="handleView(item.noticeFileUrl)" :key="index"
......@@ -67,65 +81,66 @@
</el-card>
</div>
<div class="home-right">
<calendar />
<el-card shadow="hover" class="marginTop10" style="height:345px">
<el-card shadow="hover">
<div slot="header" class="flexst">
<h5 class="title">用户登录时间</h5>
</div>
<div id="loginTime"></div>
</el-card>
<el-card class="marginTop10" shadow="hover">
<div slot="header" class="flexst">
<h5 class="title">动态信息</h5>
<i class="el-icon-s-unfold pointer"></i>
</div>
<ul>
<li v-for="(item, index) in doneList" :key="index" class="flexst">
<li v-for="(item, index) in doneList" :key="index" class="flexst dynamicInfo">
<p class="right15">{{ item.dealTime.substring(0, 10) }}</p>
<p class="list-title">{{ item.dealBusiness }} ({{ item.dealStep + '环节' }})</p>
</li>
</ul>
</el-card>
</div>
<addDialog ref="addProject" v-model="projectDialog" :bindItem="projectList" />
</div>
</template>
<script>
import * as G2 from '@antv/g2'
import calendar from '@/components/Calendar/index'
import vueSeamlessScroll from "vue-seamless-scroll"
import { getHomeNoticeList, getHomeTodoList, getHomeDoneList } from "@/api/home.js";
import { getHomeNoticeList, getHomeTodoList, getHomeDoneList, getHomeFrequentProjects } from "@/api/home.js";
import { setReadStatus } from "@/api/notice.js";
import addDialog from "./components/addProject.vue";
export default {
name: 'home',
components: { calendar, vueSeamlessScroll },
components: { vueSeamlessScroll, addDialog },
data () {
return {
newsListData: [
listData: [
{
icon: '',
title: '任务',
color: '#61AEFF'
title: '任务'
},
{
icon: '',
title: '邮件',
color: '#43DEB3'
title: '邮件'
},
{
icon: '',
title: '消息',
color: '#F3C143'
title: '消息'
},
{
icon: '',
title: '日历',
color: '#F09936'
title: '日历'
},
{
icon: '',
title: '常用功能',
color: '#9C92FF'
title: '常用功能'
},
{
icon: '',
title: '申请',
color: '#589FFF'
title: '申请'
}
],
newsListColor: ['#61AEFF', '#43DEB3', '#F3C143', '#F09936', '#9C92FF', '#589FFF',],
chartData: [{
year: '1991',
value: 15468
......@@ -149,21 +164,28 @@ export default {
value: 31056
}],
// 系统通知
noticeData: {
noticeData: {},
noticeList: [],//通知列表
todoList: [],//待办列表
doneList: [],//已办列表
policyList: [],//法律法规列表
projectList: [],//常办项目列表
projectDialog: false,
moreNotice: {
fullPath: '/system/xttz/xttzview',
name: '系统通知',
path: '/system/xttz/xttzview',
meta: { title: '系统通知' }
},
noticeList: [],
todoList: [],
doneList: [],
policyList: [],
}
},
mounted () {
this.buildChart();
this.queryTodoList();
this.queryDoneList();
this.queryNoticeList();
this.buildChart();//构建图标
this.loginTimeChart()
this.queryTodoList();//获取待办列表
this.queryDoneList();//获取已办列表
this.queryNoticeList();//获取通知、法律法规列表
this.queryProjectList();//获取常办项目列表
},
methods: {
handleView (pdfUrl) {
......@@ -198,6 +220,16 @@ export default {
}
})
},
//获取常办项目列表
queryProjectList () {
getHomeFrequentProjects().then(res => {
if (res.result && res.result.length > 0) {
this.projectList = res.result
} else {
this.projectList = this.listData
}
})
},
_timedate (d) {
var td = new Date();
td = new Date(td.getFullYear(), td.getMonth(), td.getDate());
......@@ -242,6 +274,64 @@ export default {
chart.line().position('year*value').size(2).shape('smooth');
chart.render();
},
loginTimeChart () {
var data = [{
item: '用户1',
count: 40,
percent: 0.4
}, {
item: '用户2',
count: 21,
percent: 0.21
}, {
item: '用户3',
count: 17,
percent: 0.17
}]
var chart = new G2.Chart({
container: 'loginTime',
height: 260
});
chart.source(data, {
percent: {
formatter: function formatter (val) {
val = val * 100 + '小时';
return val;
}
}
});
chart.coord('theta');
chart.tooltip({
showTitle: false
});
chart.interval().position('percent').color('item').label('percent', {
offset: -40,
textStyle: {
textAlign: 'center',
shadowBlur: 2,
shadowColor: 'rgba(0, 0, 0, .45)'
}
}).tooltip('item*percent', function (item, percent) {
percent = percent * 100 + '小时';
return {
name: item,
value: percent
};
}).style({
lineWidth: 1,
stroke: '#fff'
});
chart.forceFit();
chart.render();
},
//跳转到更多通知列表页面
jumpToMoreNotice () {
console.log(this.$route);
},
//配置常办项目
setFrequencyProject () {
this.projectDialog = true;
},
handleNotice (item) {
this.$alertMes(item.noticeTitle, item.noticeContent)
}
......
<template>
<div class="from-clues">
<!-- 表单部分 -->
<div class="from-clues-header">
<el-form :model="ruleForm" @submit.native.prevent label-width="80px">
<el-row>
<el-col :span="5">
<el-form-item label="通知标题">
<el-input v-model="ruleForm.noticeTitle" @clear="queryClick()" clearable placeholder="通知标题"></el-input>
</el-form-item>
</el-col>
<el-col :span="19" class="btnColRight">
<el-form-item>
<el-button type="primary" native-type="submit" @click="queryClick()">查询</el-button>
<el-button type="primary" native-type="submit" @click="toReadAll()">一键已读</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- 表格 -->
<div class="from-clues-content">
<lb-table :page-size="pageData.size" border :current-page.sync="pageData.current" :total="tableData.total"
@size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns"
:data="tableData.data">
</lb-table>
</div>
<addDialog ref="addDialog" v-model="isDialog" :isButtonFlag="isButtonFlag" :title="dialogTitle"/>
</div>
</template>
<script>
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./xttzviewdata";
import { getSysNoticeList,setReadStatus,setAllRead} from "@/api/notice.js"
import addDialog from "./components/addDialog.vue";
export default {
name: "xttzview",
components: { addDialog },
mixins: [table],
mounted () {
sendThis(this);
this.queryClick()
},
data () {
return {
isDialog: false,
isButtonFlag: true,
dialogTitle: '',
ruleForm: {
noticeTitle: '',
noticeStatus: '2'
},
tableData: {
total: 0,
columns: datas.columns(),
data: [],
},
isDiglog: false
}
},
methods: {
// 列表渲染接口
queryClick () {
this.$startLoading()
getSysNoticeList({ ...this.ruleForm, ...this.pageData }, { 'target': '#xttzLoading' }).then(res => {
if (res.code === 200) {
this.$endLoading()
let { total, records } = res.result
this.tableData.total = total;
this.tableData.data = records
}
})
},
//打开新增弹窗
openDialog (item) {
this.$nextTick(() => {
this.isButtonFlag = false;
this.$refs.addDialog.getDetailInfo(item);
this.dialogTitle = '系统通知详情'
this.isDialog = true;
})
let that = this;
if(item.isRead == 1){
setReadStatus({bsmNotice: item.bsmNotice}).then(res => {
if(res.code == 200){
that.$nextTick(()=> {
item.isRead = 2
})
}
})
}
},
//一键已读
toReadAll(){
setAllRead().then(res => {
if(res.code == 200){
this.$message.success('设置成功')
this.queryClick();
}else{
this.$message.error("设置失败")
}
})
},
downloadFile (item) {
const href = item.noticeFileUrl
window.open(href, '_blank');
}
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
</style>
import filter from '@/utils/filter.js'
let vm = null
const sendThis = (_this) => {
vm = _this
}
class data extends filter {
constructor() {
super()
}
columns () {
return [
{
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{(vm.pageData.currentPage - 1) * vm.pageData.pageSize + scope.$index + 1}
</div>
)
}
},
{
prop: "noticeTitle",
label: "通知标题",
},
{
prop: "noticeSource",
label: "通知来源",
},
{
label: "通知内容",
render: (h, scope) => {
return <div class="item-cwnr" domPropsInnerHTML={scope.row.noticeContent}></div>
}
},
{
prop: "noticeFileName",
label: "通知附件",
render: (h, scope) => {
return <div class="pointer" onClick={() => { vm.downloadFile(scope.row) }}>{scope.row.noticeFileName}</div>
}
},
{
prop: "noticePublishTime",
label: "发布时间",
},
{
prop: "creater",
width: '120',
label: "发布人",
},
{
prop: "noticePublishTime",
label: "发布时间",
},
{
label: "是否已读",
width: '80',
render: (h, scope) => {
switch (scope.row.isRead) {
case '1':
return <div class='prohibit'>未读</div>
case '2':
return <div class='allow'>已读</div>
}
}
},
{
label: '操作',
align: 'center',
fixed: 'right',
render: (h, scope) => {
return <div>
<el-button type="text" icon="el-icon-view" onClick={() => { vm.openDialog(scope.row) }}>查看</el-button>
</div>
}
}
]
}
ywlys () {
return [
{ value: 1, label: "办事大厅" },
{ value: 2, label: "微信小程序" },
{ value: 3, label: "法院端" },
{ value: 4, label: "银行端" },
]
}
}
let datas = new data()
export {
datas,
sendThis
}
......@@ -88,7 +88,7 @@
</div>
</div>
</el-dialog>
<bdcqzPrint v-model="dialog" :bdcqz="bdcqz" />
<bdcqzPrint ref="bdcqzPrint" v-model="dialog" :bdcqz="bdcqz" />
<el-empty description="暂无数据" v-if="tableData.length == 0"></el-empty>
</div>
</template>
......@@ -145,8 +145,11 @@ export default {
},
});
} else {
this.$nextTick(() => {
this.dialog = true;
this.bdcqz = item;
this.$refs.bdcqzPrint.getBdcqzPreview();
})
//证书打印
// this.$popup("证书打印", "workflow/components/zsdy", {
// height: "700px",
......
......@@ -116,7 +116,7 @@
<script>
import { datas } from "../javascript/zsyl.js";
import { readYsxlh, certificate, getSlsqBdcqzList } from "@/api/bdcqz.js";
import { readYsxlh, certificate, getSlsqBdcqzList,bdcqzPreview } from "@/api/bdcqz.js";
export default {
components: {},
props: {
......@@ -178,6 +178,10 @@ export default {
var value = this.bdcqz[code];
return value;
},
getBdcqzPreview(){
bdcqzPreview(this.bdcqz).then(res => {
})
},
//打印证书
childFn() {
this.ruleForm.bsmBdcqz = this.bdcqz.bsmBdcqz;
......
//流程环节操作按钮
export function getForm(tabName, djywbm) {
console.log("88888888"+tabName);
console.log("88888888" + tabName);
let form;
switch (tabName) {
case "jsydsyqslxx100":
......@@ -42,6 +42,10 @@ export function getForm(tabName, djywbm) {
case "diyaqSlxx200":
form = require("@/views/ywbl/diyaq/slxx200.vue");
break;
case "diyaqSlxx300":
form = require("@/views/ywbl/diyaq/slxx200.vue");
break;
case "clxx":
form = require("@/views/workflow/components/clxx.vue");
break;
......@@ -52,10 +56,10 @@ export function getForm(tabName, djywbm) {
form = require("@/views/registerBook/zdjbxx.vue");
break;
case "ygmm100":
form=require("@/views/ywbl/ygdj/slxx.vue");
form = require("@/views/ywbl/ygdj/slxx.vue");
break;
case "ygmm300":
form=require("@/views/ywbl/ygdj/slxx300.vue");
form = require("@/views/ywbl/ygdj/slxx300.vue");
break;
case "cfdjxx":
form = require("@/views/registerBook/cfdj.vue");
......
......@@ -73,7 +73,7 @@ import searchBox from '../components/search.vue'
import table from "@/utils/mixin/table"
import searchMin from "../components/mixin/index"
import { datas, sendThis } from "./dbxdata"
import { searchTaskToDo, deleteFlow, claimTask } from "@/api/ywbl.js"
import { searchTaskToDo, deleteFlow, claimTask } from "@/api/ywbl"
export default {
name: "dbx",
components: { searchBox },
......
......@@ -11,7 +11,7 @@
>
<div class="slxx_con">
<div class="slxx_title title-block">
受理信息200
受理信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
......
......@@ -74,7 +74,7 @@ import { mapGetters } from 'vuex'
import searchMin from "../components/mixin/index"
import table from "@/utils/mixin/table"
import { datas, sendThis } from "./ybxdata"
import { searchTaskDone } from "@/api/ywbl.js"
import { searchTaskDone } from "@/api/ywbl"
import searchBox from '../components/search.vue'
export default {
name: "ybx",
......
......@@ -72,8 +72,7 @@
import { datas, sendThis } from "../javascript/fwsyq.js";
import table from "@/utils/mixin/table";
import jump from "@/views/ywbl/ywsq/components/mixin/jump";
import { selectScBdcdy, startBusinessFlow, choiceBdcdy, selectOtherH } from "@/api/ywbl.js";
import { selectZrz, selectH } from "@/api/selectQlxx.js";
import { selectScBdcdy, startBusinessFlow, choiceBdcdy, selectOtherH, selectZrz, selectH } from "@/api/ywbl.js";
export default {
mixins: [table, jump],
props: {
......
......@@ -44,8 +44,7 @@ import { datas, sendThis } from "../javascript/jsydsyq100.js";
import { defaultParameters } from "../javascript/publicDefaultPar.js";
import table from "@/utils/mixin/table";
import jump from "../components/mixin/jump";
import { startBusinessFlow } from "@/api/ywbl.js";
import { selectZdjbxx } from "@/api/selectQlxx.js";
import { startBusinessFlow, selectZdjbxx } from "@/api/ywbl.js";
export default {
mixins: [table, jump],
props: {
......
......@@ -58,8 +58,7 @@ import { datas, sendThis } from "../javascript/jsydsyq200.js";
import { defaultParameters } from "../javascript/publicDefaultPar.js";
import table from "@/utils/mixin/table";
import jump from "../components/mixin/jump";
import { startBusinessFlow } from "@/api/ywbl.js";
import { selectJsydQlxx } from "@/api/selectQlxx.js";
import { startBusinessFlow, selectJsydQlxx } from "@/api/ywbl.js";
export default {
mixins: [table, jump],
props: {
......
......@@ -44,8 +44,7 @@ import { datas, sendThis } from "../javascript/nydsyq100.js";
import { defaultParameters } from "../javascript/publicDefaultPar.js";
import table from "@/utils/mixin/table";
import jump from "../components/mixin/jump";
import { startBusinessFlow } from "@/api/ywbl.js";
import { selectZdjbxx } from "@/api/selectQlxx.js";
import { startBusinessFlow, selectZdjbxx } from "@/api/ywbl.js";
export default {
mixins: [table, jump],
props: {
......
......@@ -44,8 +44,7 @@ import { datas, sendThis } from "../javascript/jsydsyq200.js";
import { defaultParameters } from "../javascript/publicDefaultPar.js";
import table from "@/utils/mixin/table";
import jump from "../components/mixin/jump";
import { startBusinessFlow } from "@/api/ywbl.js";
import { selectNydsyqQlxx } from "@/api/selectQlxx.js";
import { startBusinessFlow, selectNydsyqQlxx } from "@/api/ywbl.js";
export default {
mixins: [table, jump],
props: {
......