Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
yanyizhou
2021-10-08 15:54:04 +08:00
28 changed files with 3300 additions and 740 deletions
+241 -184
View File
@@ -4,7 +4,34 @@
<div class="content-box" v-if="isBoolean">
<nav-menu></nav-menu>
<div class="sub-container">
<com-header></com-header>
<div style="background-color: #171E4A; height: 65px; width: 100%">
<span style="color: #fff; line-height: 65px; float: left; font-size: 20px;">
标准法规管理系统 standard and regulations management system
</span>
<!-- header头部 右侧内容 当前登录人和退出-->
<div class="header-right" style="display: inline-block; float: right; margin-right: 20px; color: #fff">
<div class="user-info">
<el-dropdown
trigger="click"
@command="handleCommand"
>
<div class="user-box" style="margin-top: 23px;">
<img :src="userAvator" v-if="$store.getters.userInfo.avator">
<span class="iconfont" v-else style="color: #FFFFFF;">&#xe69b;</span>
<span style="color: #FFFFFF;">{{ $store.getters.userInfo.uName }}</span>
<i style="color: #FFFFFF;" class="el-icon-arrow-down"/>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="loginOut">退出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="logo">
<img :src="logo" />
</div>
</div>
<!-- <com-header></com-header>-->
<div class="container-box">
<router-view />
</div>
@@ -14,198 +41,228 @@
</template>
<script>
import {mapGetters, mapState} from 'vuex'
export default {
name: 'App',
data () {
return {
isBoolean: false
}
},
methods: {
/**
* @description: 主题设置
* @author: xx
* @date: 2018-08-29 14:56:39
*/
setTheme (theme) {
document.getElementById('app').className = theme
},
/**
* @description: backSpace回退禁用
* @date: 2021-03-01 16:36:55
* @auth: chenxiaoxi
*/
banBackSpace(e) {
var ev = e || window.event;
//各种浏览器下获取事件对象
var obj = ev.relatedTarget || ev.srcElement || ev.target ||ev.currentTarget;
//按下Backspace键
if(ev.keyCode == 8){
var tagName = obj.nodeName //标签名称
//如果标签不是input或者textarea则阻止Backspace
if(tagName!='INPUT' && tagName!='TEXTAREA'){
return this.stopIt(ev);
}
var tagType = obj.type.toUpperCase();//标签类型
//input标签除了下面几种类型,全部阻止Backspace
if(tagName=='INPUT' && (tagType!='TEXT' && tagType!='TEXTAREA' && tagType!='PASSWORD')){
return this.stopIt(ev);
}
//input或者textarea输入框如果不可编辑则阻止Backspace
if((tagName=='INPUT' || tagName=='TEXTAREA') && (obj.readOnly==true || obj.disabled ==true)){
return this.stopIt(ev);
}
import {mapGetters, mapState} from 'vuex'
export default {
name: 'App',
data () {
return {
isBoolean: false
}
},
stopIt(ev) {
if(ev.preventDefault){
//preventDefault()方法阻止元素发生默认的行为
ev.preventDefault();
}
if(ev.returnValue){
//IE浏览器下用window.event.returnValue = false;实现阻止元素发生默认的行为
ev.returnValue = false;
}
return false;
},
// 其他标签页修改用户 或者 退出登录
refresh() {
//执行刷新操作,这里我没有写this.$route.go(0),因为整个页面抖动不是很友好
//现将app.vue下面的 头部组件,菜单组件,内容组件隐藏再放出来,实现刷新一样的效果
console.log('我要刷新页面了')
}
},
computed: {
...mapGetters([
'getWebSocketList', 'getTheme', 'getMenuList'
]),
...mapState(['userInfoModifyTime'])
},
watch: {
// 'userInfoModifyTime'() {
// // console.log('watch global, userInfoModifyTime')
// this.refresh()
// },
getTheme (val) {
// 主题修改
this.setTheme(val)
},
// 监听路由 控制isBoolean
$route () {
if (this.$route.name !== 'Login' && this.$route.name !== 'Home' && !this.$route.meta.isBoolean && this.$route.name !== 'beeEChungLogin' && this.$route.name !== 'beeEnergyLogin' && this.$route.name !== 'mdLawLogin' && this.$route.name !== 'nuoBLogin' && this.$route.name !== 'sTLogin' && this.$route.name !== 'StandardSearch') {
this.isBoolean = true
} else {
this.isBoolean = false
}
}
},
mounted () {
this.setTheme(this.getTheme)
//实现对字符码的截获,keypress中屏蔽了这些功能按键
document.onkeypress = this.banBackSpace
//对功能按键的获取
document.onkeydown = this.banBackSpace
this.visibilitychangeFn = (e) => { //这个方法是监测浏览器窗口发生变化的时候执行
// 切换到当前页面
if (document.hidden == false) {
const userInfoModifyTime = this.userInfoModifyTime
const userInfoModifyTimeInLocalStorage = localStorage.getItem('userInfoModifyTime')
// 用户未切换 不执行任何操作
if (userInfoModifyTime === userInfoModifyTimeInLocalStorage) {
return
}
if (userInfoModifyTimeInLocalStorage === null) {
this.$store.dispatch('syncStorageData')
const currentPage = this.$route.name
if (currentPage === 'Login') {return}
this.currentMinute = 3
this.loading && this.loading.close()
this.loading = this.$loading({
lock: true,
// text: 'Loading',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)'
});
this.messageForLogin && this.messageForLogin.close()
this.messageForLogin = this.$message({
message: `用户已退出,${this.currentMinute}秒后将跳转到登录页面`,
type: 'warning'
})
this.intervalForLogin = setInterval(() => {
if (this.currentMinute === 0) {
clearInterval(this.intervalForLogin)
this.loading.close()
methods: {
// 点击下拉选项事件
handleCommand (command) {
// 退出登录
if (command === 'loginOut') {
this.$confirm('您确认要退出吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: false
}).then(() => {
// this.$http.post('/logout', {}, res => {
// window.location.href = 'http://testsso1.foton.com.cn/oauth2.0/authorize?client_id=app_slrs&redirect_uri=http://127.0.0.1:9090&response_type=code'
// })
// return
this.$store.commit('setTypeFlag', 'loginOut')
this.$http.get('logout', {}, {
_this: this
}, res => {
this.$store.dispatch('logout')
this.$router.push('/login')
console.log('切换到登录页面', currentPage)
}
this.currentMinute--
this.messageForLogin.message = `用户已退出,${this.currentMinute}秒后将跳转到登录页面`
}, 1000)
} else if (userInfoModifyTime !== userInfoModifyTimeInLocalStorage) {
this.$store.dispatch('syncStorageData')
console.log('用户信息已更改,同步数据')
this.currentMinute = 3
this.loading && this.loading.close()
this.loading = this.$loading({
lock: true,
// text: 'Loading',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)'
});
this.messageForHome && this.messageForHome.close()
this.messageForHome = this.$message({
message: `用户已切换,${this.currentMinute}秒后将跳转到用户首页`,
type: 'warning'
}, e => {})
}).catch(() => {
})
this.intervalForHome = setInterval(() => {
if (this.currentMinute === 0) {
clearInterval(this.intervalForHome)
this.loading.close()
this.$router.push({
path: '/redirect',
query: '/home'
})
}
this.currentMinute--
this.messageForHome.message = `用户已切换,${this.currentMinute}秒后将跳转到用户首页`
}, 1000)
// const route = this.$router.resolve('/home')
// this.$router.push({
// path: '/redirect',
// query: '/home'
// })
// location.reload();
}
},
/**
* @description: 主题设置
* @author: xx
* @date: 2018-08-29 14:56:39
*/
setTheme (theme) {
document.getElementById('app').className = theme
},
/**
* @description: backSpace回退禁用
* @date: 2021-03-01 16:36:55
* @auth: chenxiaoxi
*/
banBackSpace(e) {
var ev = e || window.event;
//各种浏览器下获取事件对象
var obj = ev.relatedTarget || ev.srcElement || ev.target ||ev.currentTarget;
//按下Backspace键
if(ev.keyCode == 8){
var tagName = obj.nodeName //标签名称
//如果标签不是input或者textarea则阻止Backspace
if(tagName!='INPUT' && tagName!='TEXTAREA'){
return this.stopIt(ev);
}
var tagType = obj.type.toUpperCase();//标签类型
//input标签除了下面几种类型,全部阻止Backspace
if(tagName=='INPUT' && (tagType!='TEXT' && tagType!='TEXTAREA' && tagType!='PASSWORD')){
return this.stopIt(ev);
}
//input或者textarea输入框如果不可编辑则阻止Backspace
if((tagName=='INPUT' || tagName=='TEXTAREA') && (obj.readOnly==true || obj.disabled ==true)){
return this.stopIt(ev);
}
}
},
stopIt(ev) {
if(ev.preventDefault){
//preventDefault()方法阻止元素发生默认的行为
ev.preventDefault();
}
if(ev.returnValue){
//IE浏览器下用window.event.returnValue = false;实现阻止元素发生默认的行为
ev.returnValue = false;
}
return false;
},
// 其他标签页修改用户 或者 退出登录
refresh() {
//执行刷新操作,这里我没有写this.$route.go(0),因为整个页面抖动不是很友好
//现将app.vue下面的 头部组件,菜单组件,内容组件隐藏再放出来,实现刷新一样的效果
console.log('我要刷新页面了')
}
}
document.addEventListener('visibilitychange', this.visibilitychangeFn);
},
computed: {
// 获取用户头像
userAvator () {
return this.$store.getters.userInfo.avator || require('@/assets/images/avator_default.png')
},
...mapGetters([
'getWebSocketList', 'getTheme', 'getMenuList'
]),
...mapState(['userInfoModifyTime','isCollapse'])
},
watch: {
// 'userInfoModifyTime'() {
// // console.log('watch global, userInfoModifyTime')
// this.refresh()
// },
getTheme (val) {
// 主题修改
this.setTheme(val)
},
// 监听路由 控制isBoolean
$route () {
if (this.$route.name !== 'Login' && this.$route.name !== 'Home' && !this.$route.meta.isBoolean && this.$route.name !== 'beeEChungLogin' && this.$route.name !== 'beeEnergyLogin' && this.$route.name !== 'mdLawLogin' && this.$route.name !== 'nuoBLogin' && this.$route.name !== 'sTLogin' && this.$route.name !== 'StandardSearch') {
this.isBoolean = true
} else {
this.isBoolean = false
}
}
},
mounted () {
this.setTheme(this.getTheme)
//实现对字符码的截获,keypress中屏蔽了这些功能按键
document.onkeypress = this.banBackSpace
//对功能按键的获取
document.onkeydown = this.banBackSpace
this.visibilitychangeFn = (e) => { //这个方法是监测浏览器窗口发生变化的时候执行
// 切换到当前页面
if (document.hidden == false) {
const userInfoModifyTime = this.userInfoModifyTime
const userInfoModifyTimeInLocalStorage = localStorage.getItem('userInfoModifyTime')
},
beforeDestroy() {
document.onkeypress = null
document.onkeydown = null
document.removeEventListener('visibilitychange', this.visibilitychangeFn)
clearInterval(this.intervalForLogin)
clearInterval(this.intervalForHome)
// 用户未切换 不执行任何操作
if (userInfoModifyTime === userInfoModifyTimeInLocalStorage) {
return
}
if (userInfoModifyTimeInLocalStorage === null) {
this.$store.dispatch('syncStorageData')
const currentPage = this.$route.name
if (currentPage === 'Login') {return}
this.currentMinute = 3
this.loading && this.loading.close()
this.loading = this.$loading({
lock: true,
// text: 'Loading',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)'
});
this.messageForLogin && this.messageForLogin.close()
this.messageForLogin = this.$message({
message: `用户已退出,${this.currentMinute}秒后将跳转到登录页面`,
type: 'warning'
})
this.intervalForLogin = setInterval(() => {
if (this.currentMinute === 0) {
clearInterval(this.intervalForLogin)
this.loading.close()
this.$router.push('/login')
console.log('切换到登录页面', currentPage)
}
this.currentMinute--
this.messageForLogin.message = `用户已退出,${this.currentMinute}秒后将跳转到登录页面`
}, 1000)
} else if (userInfoModifyTime !== userInfoModifyTimeInLocalStorage) {
this.$store.dispatch('syncStorageData')
console.log('用户信息已更改,同步数据')
this.currentMinute = 3
this.loading && this.loading.close()
this.loading = this.$loading({
lock: true,
// text: 'Loading',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)'
});
this.messageForHome && this.messageForHome.close()
this.messageForHome = this.$message({
message: `用户已切换,${this.currentMinute}秒后将跳转到用户首页`,
type: 'warning'
})
this.intervalForHome = setInterval(() => {
if (this.currentMinute === 0) {
clearInterval(this.intervalForHome)
this.loading.close()
this.$router.push({
path: '/redirect',
query: '/home'
})
}
this.currentMinute--
this.messageForHome.message = `用户已切换,${this.currentMinute}秒后将跳转到用户首页`
}, 1000)
// const route = this.$router.resolve('/home')
// this.$router.push({
// path: '/redirect',
// query: '/home'
// })
// location.reload();
}
}
}
document.addEventListener('visibilitychange', this.visibilitychangeFn);
},
beforeDestroy() {
document.onkeypress = null
document.onkeydown = null
document.removeEventListener('visibilitychange', this.visibilitychangeFn)
clearInterval(this.intervalForLogin)
clearInterval(this.intervalForHome)
}
}
}
</script>
<style lang="less">
Binary file not shown.

Before

Width:  |  Height:  |  Size: 827 B

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 4.2 KiB

+76 -76
View File
@@ -7,102 +7,102 @@
<!--面包屑-->
<el-breadcrumb separator="/">
<el-breadcrumb-item
v-for="(item, index) in routerList"
:key="index"
v-for="(item, index) in routerList"
:key="index"
>
{{ item.meta.title }}
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<!-- header头部 右侧内容 当前登录人和退出-->
<div class="header-right">
<div class="user-info">
<el-dropdown
trigger="click"
@command="handleCommand"
>
<div class="user-box">
<img :src="userAvator" v-if="$store.getters.userInfo.avator">
<span class="iconfont" v-else style="color: #333333;">&#xe69b;</span>
<span>您好{{ $store.getters.userInfo.uName }}</span>
<i class="el-icon-arrow-down"/>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="loginOut">退出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<!-- <div class="header-right">-->
<!-- <div class="user-info">-->
<!-- <el-dropdown-->
<!-- trigger="click"-->
<!-- @command="handleCommand"-->
<!-- >-->
<!-- <div class="user-box">-->
<!-- <img :src="userAvator" v-if="$store.getters.userInfo.avator">-->
<!-- <span class="iconfont" v-else style="color: #333333;">&#xe69b;</span>-->
<!-- <span>您好{{ $store.getters.userInfo.uName }}</span>-->
<!-- <i class="el-icon-arrow-down"/>-->
<!-- </div>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item command="loginOut">退出</el-dropdown-item>-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
</template>
<script>
import { mapMutations, mapGetters } from 'vuex'
export default {
name: 'ComHeader',
data () {
return {
routerList: [] // 面包屑数组
}
},
created () {
// 渲染面包屑数组
this.routerList = this.$route.matched
},
computed: {
// 获取用户头像
userAvator () {
return this.$store.getters.userInfo.avator || require('@/assets/images/avator_default.png')
},
...mapGetters(['isCollapse'])
},
watch: {
// 监听路由 重新渲染面包屑
$route () {
this.routerList = this.$route.matched
}
},
methods: {
// 点击下拉选项事件
handleCommand (command) {
// 退出登录
if (command === 'loginOut') {
this.$confirm('您确认要退出吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: false
}).then(() => {
// this.$http.post('/logout', {}, res => {
// window.location.href = 'http://testsso1.foton.com.cn/oauth2.0/authorize?client_id=app_slrs&redirect_uri=http://127.0.0.1:9090&response_type=code'
// })
// return
this.$store.commit('setTypeFlag', 'loginOut')
this.$http.get('logout', {}, {
_this: this
}, res => {
this.$store.dispatch('logout')
this.$router.push('/login')
}, e => {})
}).catch(() => {
})
import { mapMutations, mapGetters } from 'vuex'
export default {
name: 'ComHeader',
data () {
return {
routerList: [] // 面包屑数组
}
},
handleToggleSideBar() {
this.toggleSideBar(!this.isCollapse)
created () {
// 渲染面包屑数组
this.routerList = this.$route.matched
},
computed: {
// 获取用户头像
userAvator () {
return this.$store.getters.userInfo.avator || require('@/assets/images/avator_default.png')
},
...mapGetters(['isCollapse'])
},
watch: {
// 监听路由 重新渲染面包屑
$route () {
this.routerList = this.$route.matched
}
},
methods: {
// 点击下拉选项事件
handleCommand (command) {
// 退出登录
if (command === 'loginOut') {
this.$confirm('您确认要退出吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: false
}).then(() => {
// this.$http.post('/logout', {}, res => {
// window.location.href = 'http://testsso1.foton.com.cn/oauth2.0/authorize?client_id=app_slrs&redirect_uri=http://127.0.0.1:9090&response_type=code'
// })
// return
this.$store.commit('setTypeFlag', 'loginOut')
this.$http.get('logout', {}, {
_this: this
}, res => {
this.$store.dispatch('logout')
this.$router.push('/login')
}, e => {})
}).catch(() => {
})
}
},
...mapMutations(['toggleSideBar'])
handleToggleSideBar() {
this.toggleSideBar(!this.isCollapse)
},
...mapMutations(['toggleSideBar'])
}
}
}
</script>
<style lang="less" scoped>
.com-header{
padding: 0 10px;
height: 50px;
background: #ffffff;
background: #fff;
border-bottom: 1px solid #e5e5e5;
display: flex;
align-items: center;
+480 -445
View File
@@ -1,482 +1,511 @@
<!--左侧导航菜单 liuyan -->
<template>
<div class="nav-menu v-class" :class="{'is-collapse': isCollapse}">
<div class="logo">
<img :src="logo" />
<div class="nav-menu-header" style="height: 65px; background-color: #171E4A;">
<div class="header-left">
<div class="logo">
<img :src="logo" height="58" width="149" />
</div>
</div>
</div>
<el-menu
unique-opened
:default-active="defaultActive"
background-color="#013483"
text-color="#ffffff"
active-text-color="#ffd04b"
router
:collapse="isCollapse"
>
<template v-for="(item, index) in navMenuList">
<el-submenu
:key="index"
:index="item.path"
popper-class="nav-menu-popper"
v-if="!item.isChildren && (!item.menuId || $hasPermission(item.menuId))"
>
<template slot="title">
<i class="shangqi-icon" :class="item['icon-class']"></i>
<span>{{ item.title }}</span>
<el-badge is-dot class="has-no-read" v-if="item.title === '个人中心' && getDynamicTotal.allCount">
</el-badge>
</template>
<el-menu-item
v-for="(children, childrenIndex) in item.children"
:key="childrenIndex"
:index="children.path"
v-if="!children.menuId || $hasPermission(children.menuId)"itemSplitInfo
<div class="toggle-btn iconfont" style="display: flex;justify-content: center; font-size: 30px; color: #333333;" @click="handleToggleSideBar"><div style="font-size: 14px; line-height: 30px;">{{ this.isCollapse ? '' : '' }}</div>&#xe647;</div>
<div class="left-tree">
<el-menu
unique-opened
:default-active="defaultActive"
background-color="#013483"
text-color="#000"
active-text-color="#ffd04b"
router
:collapse="isCollapse"
>
<template v-for="(item, index) in navMenuList">
<el-submenu
:key="index"
:index="item.path"
popper-class="nav-menu-popper"
v-if="!item.isChildren && (!item.menuId || $hasPermission(item.menuId))"
>
<el-badge :value="getDynamicTotal.msgCount" class="item" v-if="children.title === '我的消息' && getDynamicTotal.msgCount !== 0">
{{ children.title }}
</el-badge>
<el-badge :value="getDynamicTotal.shareCount" class="item" v-else-if="children.title === '我的推送' && getDynamicTotal.shareCount !== 0">
{{ children.title }}
</el-badge>
<el-badge :value="getDynamicTotal.myStandCount" class="item" v-else-if="children.title === '我的企标' && getDynamicTotal.myStandCount !== 0">
{{ children.title }}
</el-badge>
<div v-else>
{{ children.title }}
</div>
<template slot="title">
<i class="shangqi-icon" :class="item['icon-class']"></i>
<span>{{ item.title }}</span>
<el-badge is-dot class="has-no-read" v-if="item.title === '个人中心' && getDynamicTotal.allCount">
</el-badge>
</template>
<el-menu-item
v-for="(children, childrenIndex) in item.children"
:key="childrenIndex"
:index="children.path"
v-if="!children.menuId || $hasPermission(children.menuId)"itemSplitInfo
>
<el-badge :value="getDynamicTotal.msgCount" class="item" v-if="children.title === '我的消息' && getDynamicTotal.msgCount !== 0">
{{ children.title }}
</el-badge>
<el-badge :value="getDynamicTotal.shareCount" class="item" v-else-if="children.title === '我的推送' && getDynamicTotal.shareCount !== 0">
{{ children.title }}
</el-badge>
<el-badge :value="getDynamicTotal.myStandCount" class="item" v-else-if="children.title === '我的企标' && getDynamicTotal.myStandCount !== 0">
{{ children.title }}
</el-badge>
<div v-else>
{{ children.title }}
</div>
</el-menu-item>
</el-submenu>
<el-menu-item
:key="index"
:index="item.path"
v-if="item.isChildren && (!item.menuId || $hasPermission(item.menuId))"
>
<i class="shangqi-icon" :class="item['icon-class']"></i>
<span slot="title">{{ item.title }}</span>
</el-menu-item>
</el-submenu>
<el-menu-item
:key="index"
:index="item.path"
v-if="item.isChildren && (!item.menuId || $hasPermission(item.menuId))"
>
<i class="shangqi-icon" :class="item['icon-class']"></i>
<span slot="title">{{ item.title }}</span>
</el-menu-item>
</template>
</el-menu>
</template>
</el-menu>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'NavMenu',
data () {
return {
defaultActive: null, // 当前激活菜单的 index
navMenuList: [
{
title: '首页',
path: '/home1',
isChildren: true, // 判断没有子菜单
'icon-class': 'home'
},
{
title: '标准法规库',
path: '/regulatoryRepository',
'icon-class': 'fagui',
menuId: '2ewfwfa',
children: [
// {
// title: '动态&资料',
// path: '/dynamicInformation',
// menuId: 'RAFQ4N4ARF'
// },
{
title: '国内标准法规',
path: '/domesticStandardsAndRegulations',
menuId: '3e3657498664beaa0dc1de1ecb3ae0da'
},
// {
// title: '零部件编号申请',
// path: '/partCodeApply',
// menuId: 'ad9db496772c075f78495382b7581fe9'
// },
// {
// title: '标准法规工作组数据统计',
// path: '/dataStatisComments',
// menuId: ''
// },
{
title: '海外标准法规',
path: '/foreignStandardsAndRegulations',
menuId: '18c1e5134ea0cf865e8960b26b81fd8c'
},
{
title: '标准征求意见',
path: '/standardForComments',
menuId: '2b25c67f10abbbadf37d60daaaec54d3'
},
import { mapGetters, mapMutations } from 'vuex'
export default {
name: 'NavMenu',
data () {
return {
defaultActive: null, // 当前激活菜单的 index
navMenuList: [
// {
// title: '首页',
// path: '/home1',
// isChildren: true, // 判断没有子菜单
// 'icon-class': 'home'
// },
{
title: '首页',
path: '/home2',
isChildren: true, // 判断没有子菜单
'icon-class': 'home'
},
{
title: '标准法规库',
path: '/regulatoryRepository',
'icon-class': 'fagui',
menuId: '2ewfwfa',
children: [
// {
// title: '动态&资料',
// path: '/dynamicInformation',
// menuId: 'RAFQ4N4ARF'
// },
{
title: '国内标准法规',
path: '/domesticStandardsAndRegulations',
menuId: '3e3657498664beaa0dc1de1ecb3ae0da'
},
// {
// title: '零部件编号申请',
// path: '/partCodeApply',
// menuId: 'ad9db496772c075f78495382b7581fe9'
// },
// {
// title: '标准法规工作组数据统计',
// path: '/dataStatisComments',
// menuId: ''
// },
{
title: '海外标准法规',
path: '/foreignStandardsAndRegulations',
menuId: '18c1e5134ea0cf865e8960b26b81fd8c'
},
{
title: '标准征求意见',
path: '/standardForComments',
menuId: '2b25c67f10abbbadf37d60daaaec54d3'
},
// {
// title: '国内外政策',
// path: '/foreignRegulationsDatabase',
// menuId: '4DB4Y2H3NH'
// },
// // // {
// // // title: '标准制修订管理',
// // // path: '/demo2One'
// // // },
{
title: '标准法规清单',
path: '/accessStandardsAndRegulations',
menuId: '08dbd417864b08426034ca56d1fa3d02'
},
// // {
// // title: '标准法规清单详情',
// // path: '/details'
// // }
// // // {
// // // title: '试验项目库',
// // // path: '/demo2One'
// // // },
// // // {
// // // title: '本地产品/项目库',
// // // path: '/localProductsOrProjectLibrary'
// // // },
{
title: '企业标准库',
path: '/enterpriseStandardDatabase',
menuId: '7feeb73929c25a6f1fd67952704ec02b'
},
// {
// title: '企标制修订计划',
// path: '/enterBSysRevPlanManaLib',
// menuId: 'WW7YDHQ9Z679TGMDZMUS'
// },
// // {
// // title: '子公司标准库',
// // path: '/subsidiaryStandardLibrary'
// // }
/* {
title: '车型/项目库',
path: '/localProductsOrProjectLibrary',
menuId: '42ce39c9f953be65a3e5643a4a2c786f'
},*/
{
title: '未符合项整改',
path: '/nonConfomity',
menuId: '0119abd677e0204e061eb0f0b8cafda0'
},
{
title: '工作组',
path: '/workingGroup',
},
// {
// title: '备案产品标准库',
// path: '/enterpriseStandardFiling',
// menuId: 'MQBAGJQMSRZDRX3X5AVR'
// },
{
title: '标准合规评估结果', // 把 标准涉及项目 这几个字 改成 标准合规评估结果
path: '/standInvolveProject',
menuId: '8a9c87fe06244fb9d55e78fb281f625b'
}
// {
// title: '动态信息',
// path: '/information',
// menuId: 'ULUBXHYQB8M3XQ9HS9QG'
// }
]
},
{
title: '工作',
path: '/processCenter',
'icon-class': 'liucheng',
menuId: '3fadf',
children: [
{
title: '流程中心',
path: '/processCenter',
menuId: '7455dc97eac2933341e18be659f07e89'
},
{
title: '新建流程',
path: '/createProcessNew',
menuId: 'b53e6722b33a37c0fa2d87a9b06cca40'
}
]
},
{
title: '本地工具',
path: '/localTool',
'icon-class': 'tools',
menuId: 'afsd12',
children: [
// {
// title: '标准预警',
// path: '/standardWarning'
// },
{
title: '标准内容自动识别',
path: '/standardRecognition',
menuId: '3db80f62af9d96d6dfc6d429eea4b29b'
},
{
title: '标准拆分',
path: '/standAutoSplit',
menuId: '0062e261bc65e27e0a968dac67e16a3c'
},
{
title: '标准比对',
path: '/standContrast',
menuId: '1d83a6278f781419f628e9f5560f5c86'
},
// {
// title: '标准比对库',
// path: '/standardComparisonLibrary',
// menuId: 'AH56UDHHBVF5V7WZFWJQ'
// }
// {
// title: '预警管理',
// path: '/warningManage'
// },
// {
// title: '动态&通知管理',
// path: '/dynamicInformationManage'
// },
// {
// title: '标准编号申领',
// path: '/applicationStandardNumber'
// },
]
},
{
title: '标准预警',
path: '/standardWarning',
'icon-class': 'warning',
menuId: 'asfdew33',
isChildren: true // 判断没有子菜单
},
// {
// title: '技术要求清单',
// path: '/skillReq',
// children: [
// {
// title: '技术要求清单查看',
// path: '/SkillReqSee'
// },
// {
// title: '技术要求清单管理',
// path: '/SkillReqAdd'
// }
// ]
// },
{
title: '配置管理',
path: '/config',
'icon-class': 'conf',
menuId: 'adff323',
children: [
{
title: '标准法规属性管理',
path: '/standLawsAttrManage',
menuId: '72a24657972d286b8b5d80735cf4eee2'
},
// {
// title: '资料中心管理',
// path: '/dynamicInformationManage',
// menuId: '6V2QZ9STRZ'
// },
{
title: '机构管理',
path: '/MechanismManage',
menuId: '5a09164da97760846509c5c9dd86b80c'
},
{
title: '角色管理',
path: '/roleManage',
menuId: 'd73d0e230eafdb2ddefe1c97daf657ea'
},
{
title: '岗位管理',
path: '/postManage',
menuId: 'd2954be3abaaf2de3dc79add4c8ab8cd'
},
// {
// title: '用户管理',
// path: '/userManage',
// menuId: 'YRJUEVJVUJ'
// },
// {
// title: '系统配置管理',
// path: '/warningTimeSetting',
// menuId: 'H2KC6P3PPM'
// },
// {
// title: '文档转换监控',
// path: '/convertDocView',
// menuId: '3F52K25546'
// },
// {
// title: '菜单管理',
// path: '/menuManage',
// menuId: '87b8b4f5817a7829696e63185c744d52'
// },
{
title: '链接管理',
path: '/linkManage',
menuId: 'd3ff92078c53a4d9d1f1a94450fee91e'
},
// // {
// // title: '保密管理',
// // path: '/convertDocView'
// // },
// {
// title: '动态信息管理',
// path: '/DynamicInformations',
// menuId: '3C87BSHJUF'
// },
{
title: '标准属性自定义',
path: '/attributeCustom',
menuId: '9cdb9b40157dd967b664b9af462b960b'
},
// // {
// // title: '流程分类管理',
// // path: '/processClassificationManage',
// // menuId: 'N323F2UB9FTUV5SD3GTD'
// // },
// // {
// // title: '流程管理',
// // path: '/processManage',
// // menuId: 'K5KXSS3X9CF7CS8AMFJ5'
// // },
// {
// title: 'SVPPS',
// path: '/svpps',
// menuId: 'AR52RX586LQHVZSVV83K'
// },
// {
// title: '企标编号管理体系',
// path: '/enterpriseStandardNumberManagement',
// menuId: '9YSFG39S3CBFUJCEU3QX'
// }
]
},
{
title: '个人中心',
path: '/personal',
'icon-class': 'ucenter',
menuId: '32143ffasdf',
children: [
// {
// title: '我的消息',
// path: '/dynamics',
// menuId: 'JCEV4AEV32'
// },
// {
// title: '我的企标',
// path: '/MyEnterpriseStandard',
// menuId: 'LKU3W23UMEHDM9VLDHGK'
// },
{
title: '我的收藏',
path: '/collection',
menuId: '63e999c65b1f2b1339119a00eb1d50cf'
},
// {
// title: '我的浏览',
// path: '/browsing',
// menuId: 'HAEY2A4LMX'
// },
// {
// title: '已收分享',
// path: '/push',
// menuId: '9F8T7DPYHE'
// },
// {
// title: '已发分享',
// path: '/forward',
// menuId: 'K45Y9TGKZV2K4XP4CETD'
// },
// {
// title: '我的问答',
// path: '/questionsAndAnswers',
// menuId: '8VKLZATQQG4NQHXV9UDS'
// },
{
title: '我的板块',
path: '/plate',
menuId: 'e4a94f03223df6f4ad70732b96f07221'
}
// {
// title: '个人信息',
// path: '/info',
// menuId: '8K7FDHG89G'
// }
]
},
{
title: '搜索中心',
path: '/advancedSearch',
'icon-class': 'search',
menuId: '1332FSFAD',
isChildren: true // 判断没有子菜单
},
// {
// title: '标准比对库',
// path: '/standardComparisonLibrary',
// 'icon-class': 'search',
// menuId: 'Q32VBYVGCAE4XXN3XZ8T',
// isChildren: true // 判断没有子菜单
// }
// {
// title: '自定义报表',
// path: '/customReport',
// 'icon-class': 'baobiao',
// isChildren: true // 判断没有子菜单
// }
]
}
},
created () {
// 获取当前页的path,赋值没左侧菜单,并展开
if (this.$route.meta.parentPath) {
this.defaultActive = this.$route.meta.parentPath
} else {
this.defaultActive = this.$route.path
}
},
mounted () {
},
computed: {
logo () {
return this.isCollapse ? require('assets/images/shangqi/img/logo4.png') : require('assets/images/shangqi/img/logo2.png')
// {
// title: '国内外政策',
// path: '/foreignRegulationsDatabase',
// menuId: '4DB4Y2H3NH'
// },
// // // {
// // // title: '标准制修订管理',
// // // path: '/demo2One'
// // // },
{
title: '标准法规清单',
path: '/accessStandardsAndRegulations',
menuId: '08dbd417864b08426034ca56d1fa3d02'
},
// // {
// // title: '标准法规清单详情',
// // path: '/details'
// // }
// // // {
// // // title: '试验项目库',
// // // path: '/demo2One'
// // // },
// // // {
// // // title: '本地产品/项目库',
// // // path: '/localProductsOrProjectLibrary'
// // // },
{
title: '企业标准库',
path: '/enterpriseStandardDatabase',
menuId: '7feeb73929c25a6f1fd67952704ec02b'
},
// {
// title: '企标制修订计划',
// path: '/enterBSysRevPlanManaLib',
// menuId: 'WW7YDHQ9Z679TGMDZMUS'
// },
// // {
// // title: '子公司标准库',
// // path: '/subsidiaryStandardLibrary'
// // }
/* {
title: '车型/项目库',
path: '/localProductsOrProjectLibrary',
menuId: '42ce39c9f953be65a3e5643a4a2c786f'
},*/
{
title: '未符合项整改',
path: '/nonConfomity',
menuId: '0119abd677e0204e061eb0f0b8cafda0'
},
{
title: '工作组',
path: '/workingGroup',
},
// {
// title: '备案产品标准库',
// path: '/enterpriseStandardFiling',
// menuId: 'MQBAGJQMSRZDRX3X5AVR'
// },
{
title: '标准合规评估结果', // 把 标准涉及项目 这几个字 改成 标准合规评估结果
path: '/standInvolveProject',
menuId: '8a9c87fe06244fb9d55e78fb281f625b'
}
// {
// title: '动态信息',
// path: '/information',
// menuId: 'ULUBXHYQB8M3XQ9HS9QG'
// }
]
},
{
title: '我的工作',
path: '/processCenter',
'icon-class': 'liucheng',
menuId: '3fadf',
children: [
{
title: '流程中心',
path: '/processCenter',
menuId: '7455dc97eac2933341e18be659f07e89'
},
{
title: '新建流程',
path: '/createProcessNew',
menuId: 'b53e6722b33a37c0fa2d87a9b06cca40'
}
]
},
{
title: '本地工具',
path: '/localTool',
'icon-class': 'tools',
menuId: 'afsd12',
children: [
// {
// title: '标准预警',
// path: '/standardWarning'
// },
{
title: '标准内容自动识别',
path: '/standardRecognition',
menuId: '3db80f62af9d96d6dfc6d429eea4b29b'
},
{
title: '标准拆分',
path: '/standAutoSplit',
menuId: '0062e261bc65e27e0a968dac67e16a3c'
},
{
title: '标准比对',
path: '/standContrast',
menuId: '1d83a6278f781419f628e9f5560f5c86'
},
// {
// title: '标准比对库',
// path: '/standardComparisonLibrary',
// menuId: 'AH56UDHHBVF5V7WZFWJQ'
// }
// {
// title: '预警管理',
// path: '/warningManage'
// },
// {
// title: '动态&通知管理',
// path: '/dynamicInformationManage'
// },
// {
// title: '标准编号申领',
// path: '/applicationStandardNumber'
// },
]
},
{
title: '标准预警',
path: '/standardWarning',
'icon-class': 'warning',
menuId: 'asfdew33',
isChildren: true // 判断没有子菜单
},
// {
// title: '技术要求清单',
// path: '/skillReq',
// children: [
// {
// title: '技术要求清单查看',
// path: '/SkillReqSee'
// },
// {
// title: '技术要求清单管理',
// path: '/SkillReqAdd'
// }
// ]
// },
{
title: '配置管理',
path: '/config',
'icon-class': 'conf',
menuId: 'adff323',
children: [
{
title: '标准法规属性管理',
path: '/standLawsAttrManage',
menuId: '72a24657972d286b8b5d80735cf4eee2'
},
// {
// title: '资料中心管理',
// path: '/dynamicInformationManage',
// menuId: '6V2QZ9STRZ'
// },
{
title: '机构管理',
path: '/MechanismManage',
menuId: '5a09164da97760846509c5c9dd86b80c'
},
{
title: '角色管理',
path: '/roleManage',
menuId: 'd73d0e230eafdb2ddefe1c97daf657ea'
},
{
title: '岗位管理',
path: '/postManage',
menuId: 'd2954be3abaaf2de3dc79add4c8ab8cd'
},
// {
// title: '用户管理',
// path: '/userManage',
// menuId: 'YRJUEVJVUJ'
// },
// {
// title: '系统配置管理',
// path: '/warningTimeSetting',
// menuId: 'H2KC6P3PPM'
// },
// {
// title: '文档转换监控',
// path: '/convertDocView',
// menuId: '3F52K25546'
// },
// {
// title: '菜单管理',
// path: '/menuManage',
// menuId: '87b8b4f5817a7829696e63185c744d52'
// },
{
title: '链接管理',
path: '/linkManage',
menuId: 'd3ff92078c53a4d9d1f1a94450fee91e'
},
// // {
// // title: '保密管理',
// // path: '/convertDocView'
// // },
// {
// title: '动态信息管理',
// path: '/DynamicInformations',
// menuId: '3C87BSHJUF'
// },
{
title: '标准属性自定义',
path: '/attributeCustom',
menuId: '9cdb9b40157dd967b664b9af462b960b'
},
// // {
// // title: '流程分类管理',
// // path: '/processClassificationManage',
// // menuId: 'N323F2UB9FTUV5SD3GTD'
// // },
// // {
// // title: '流程管理',
// // path: '/processManage',
// // menuId: 'K5KXSS3X9CF7CS8AMFJ5'
// // },
// {
// title: 'SVPPS',
// path: '/svpps',
// menuId: 'AR52RX586LQHVZSVV83K'
// },
// {
// title: '企标编号管理体系',
// path: '/enterpriseStandardNumberManagement',
// menuId: '9YSFG39S3CBFUJCEU3QX'
// }
]
},
{
title: '个人中心',
path: '/personal',
'icon-class': 'ucenter',
menuId: '32143ffasdf',
children: [
// {
// title: '我的消息',
// path: '/dynamics',
// menuId: 'JCEV4AEV32'
// },
// {
// title: '我的企标',
// path: '/MyEnterpriseStandard',
// menuId: 'LKU3W23UMEHDM9VLDHGK'
// },
{
title: '我的收藏',
path: '/collection',
menuId: '63e999c65b1f2b1339119a00eb1d50cf'
},
// {
// title: '我的浏览',
// path: '/browsing',
// menuId: 'HAEY2A4LMX'
// },
// {
// title: '已收分享',
// path: '/push',
// menuId: '9F8T7DPYHE'
// },
// {
// title: '已发分享',
// path: '/forward',
// menuId: 'K45Y9TGKZV2K4XP4CETD'
// },
// {
// title: '我的问答',
// path: '/questionsAndAnswers',
// menuId: '8VKLZATQQG4NQHXV9UDS'
// },
{
title: '我的板块',
path: '/plate',
menuId: 'e4a94f03223df6f4ad70732b96f07221'
}
// {
// title: '个人信息',
// path: '/info',
// menuId: '8K7FDHG89G'
// }
]
},
// {
// title: '搜索中心',
// path: '/advancedSearch',
// 'icon-class': 'search',
// menuId: '1332FSFAD',
// isChildren: true // 判断没有子菜单
// },
// {
// title: '标准比对库',
// path: '/standardComparisonLibrary',
// 'icon-class': 'search',
// menuId: 'Q32VBYVGCAE4XXN3XZ8T',
// isChildren: true // 判断没有子菜单
// }
// {
// title: '自定义报表',
// path: '/customReport',
// 'icon-class': 'baobiao',
// isChildren: true // 判断没有子菜单
// }
]
}
},
...mapGetters(['getDynamicTotal', 'isCollapse'])
},
watch: {
// 监听路由 重新渲染面包屑
$route () {
created () {
// 获取当前页的path,赋值没左侧菜单,并展开
if (this.$route.meta.parentPath) {
this.defaultActive = this.$route.meta.parentPath
} else {
this.defaultActive = this.$route.path
}
},
mounted () {
},
methods: {
handleToggleSideBar () {
this.toggleSideBar(!this.isCollapse)
},
...mapMutations(['toggleSideBar'])
},
computed: {
logo () {
return this.isCollapse ? require('assets/images/shangqi/img/logo4.png') : require('assets/images/shangqi/img/logo2.png')
},
...mapGetters(['getDynamicTotal', 'isCollapse'])
},
watch: {
// 监听路由 重新渲染面包屑
$route () {
// 获取当前页的path,赋值没左侧菜单,并展开
if (this.$route.meta.parentPath) {
this.defaultActive = this.$route.meta.parentPath
} else {
this.defaultActive = this.$route.path
}
}
}
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
.nav-menu {
width: 58px;
height: 100%;
overflow-y: auto;
user-select: none;
box-sizing: border-box;
background: url("~assets/images/shangqi/sideBar/newside-bar-bg1.png") no-repeat;
background: rgb(255, 255, 255);
background-size: 100% 100%;
.left-tree {
height: calc(~'100% - 95px');
overflow-y: auto;
}
.left-tree::-webkit-scrollbar {
display: none;
}
&:not(.is-collapse) {
width: 212px;
background: url("~assets/images/shangqi/sideBar/side-bar-bg1.png") no-repeat;
background: rgb(255, 255, 255);
background-size: 100% 100%;
.logo {
padding: 10px;
text-align: left;
img {
width: 115px;
height: 43px;
height: 45px;
}
}
}
@@ -488,12 +517,18 @@ export default {
height: 35px;
}
}
.nav-menu-header{
/*background:url("../../assets/images/shangqi/home/logo3.png");*/
}
}
.has-no-read{
position: relative;
top:-15px;
left:10px
}
.nav-menu /deep/.el-submenu__title i {
color: #000;
}
.nav-menu{
scrollbar-width: none;
-ms-overflow-style: none; /* IE 10+ */
+2 -2
View File
@@ -7,7 +7,7 @@
<span class="date">{{currentTime}}</span>
<span class="divide-line"> | </span>
<span class="user-img"></span>
<span class="user">您好{{ $store.getters.userInfo.uName }}</span>
<span class="user">{{ $store.getters.userInfo.uName }}</span>
<div class="user-info-panel-setting" @click.prevent="userInfoVisible = !userInfoVisible">
<el-dropdown
trigger="click"
@@ -37,7 +37,7 @@ export default {
},
methods: {
toHome () {
this.$router.push('/home1')
this.$router.push('/home2')
},
// 获取当前时间
getTime () {
+20 -4
View File
@@ -59,15 +59,19 @@ router.beforeEach(function (to, from, next) {
let prcNum = to.query.prcNum;
let prcName = to.query.prcName;
let prcType = to.query.prcType;
let param = "?taskIds="+taskId+"&prcId="+prcId
+"&prcNum="+prcNum+"&prcName="+prcName+"&prcType="+prcType;
if(taskId !== undefined && taskId !== null && prcId !== undefined && prcId !== null){
get_verify_by_instance({
taskId: taskId, // 任务id
pId: prcId // 流程实例
}).then(res => {
if(res && res > 0){
let param = "?taskIds="+taskId+"&prcId="+prcId
+"&prcNum="+prcNum+"&prcName="+prcName+"&prcType="+prcType;
// 根据type判断跳转具体流程页面
let hisCount = res.hisCount === undefined ? 0 : res.hisCount;
let commitStatus = res.commitStatus === undefined ? 0 : res.commitStatus;
let isNotFinished = res.isNotFinished === undefined ? 0 :res.isNotFinished;
if(hisCount && hisCount > 0){ // 业务系统 当前节点已完成
// 根据type判断跳转具体流程页面
if (prcType === '1') {
// 标准入库流程数据
next({path:"bzrkStep5"+param})
@@ -103,6 +107,18 @@ router.beforeEach(function (to, from, next) {
//项目清单确认
next({path:"xmqdqrStep1-3"+param})
}
}else { // 业务系统 当前节点未完成
// commitStatus 大于0 表示当前节点存在未完成干活流程
if(isNotFinished && isNotFinished > 0 && commitStatus && commitStatus > 0){
if(prcType === '3'){
//标准征求意见 接受节点 未完成 oa已办 跳转详情页面
if(path === '/bzzqyjStep3'){
next({path:"processAcceptDetail?prcNum="+prcNum+"&tabsName=AlreadyProcess"})
}
}
}else{
next()
}
}
console.log("res : res =>", res);
})
@@ -0,0 +1,81 @@
<!--外部会议资料-->
<template>
<div class="conference-materials">
<ul>
<li v-for="item in materialsList" :key="item.id" class="time-title">
<a class="title" :title="item.title">{{item.name}}</a>
<span class="time">{{putTime}}</span>
</li>
</ul>
</div>
</template>
<script>
export default {
name: "ConferenceMaterials",
data () {
return {
putTime: '',
materialsList: [
{
id: 1,
name: '外部会议资料1',
},
{
id: 2,
name: '外部会议资料2',
},{
id: 3,
name: '外部会议资料3',
},
{
id: 4,
name: '外部会议资料4',
},
], //会议资料数据
}
},
methods: {
//获取当前时间
getDate () {
var date = new Date()
var year = date.getFullYear()
var month = date.getMonth() + 1
var day = date.getDate()
if (month < 10) {
month = '0' + month
}
if (day < 10) {
day = '0' + day
}
var nowDate = year + '-' + month + '-' + day
this.putTime = nowDate
}
},
mounted() {
this.getDate()
},
};
</script>
<style lang="less" scoped>
.conference-materials {
.time-title {
margin: 15px;
.time {
float: right;
color:#FFFFFF;
}
a {
color: #FFFFFF;
&:hover {
color: #e9c851;
cursor:pointer;
text-decoration: underline;
}
}
}
}
</style>
@@ -0,0 +1,90 @@
<!-- 尾部链接 -->
<template>
<div class="link">
<div class="title">友情链接</div>
<ul>
<li v-for="(link, index) in linkList" v-if="index<5" :key="index" @click="openLinkUrl(link.url)">
<a v-if="link.name.length>13" v-html="link.name.substring(0,13)+'...'" :title="link.name"></a>
<a v-else v-html="link.name" :title="link.name"></a>
</li>
<li>
<router-link to="/linkManage">更多链接></router-link>
</li>
</ul>
</div>
</template>
<script>
export default {
name: 'Empennage',
components: {},
mixins: [],
data() {
return {
linkList: [],
}
},
computed: {},
watch: {},
mounted() {
this.getLink();
},
methods: {
// 跳转链接
openLinkUrl (linkUri) {
let getHttp = linkUri.substring(0, 7)
let getHttps = linkUri.substring(0, 8)
if (getHttp === 'http://' || getHttps === 'https://') {
window.open(linkUri)
} else {
window.open('https://' + linkUri)
}
},
// 获取链接数据
getLink () {
this.$http.get('sarUrl/tsUrl', {
}, {
_this: this,
loading: 'Loading'
}, res=> {
this.linkList = res.data
})
}
},
}
</script>
<style lang="less" scoped>
.link {
display: flex;
border-radius: 3px;
height: 100%;
.title {
padding-left: 10px;
width: 80px;
}
ul {
width: calc(~'100% - 80px');
display: flex;
height: 100%;
text-align: center;
user-select: none;
li {
border-right: 1px solid #f4f4f4;
flex: 1;
a {
color: #333333;
}
}
li:hover {
background: #5ea9f6;
a {
color: #e9ca32;
text-decoration: none;
}
}
}
}
</style>
@@ -0,0 +1,116 @@
<!-- 右侧导航 -->
<template>
<div class="nav-menu">
<div class="lattice">
<div class="title">快捷入口</div>
<div class="menu-wrap">
<enter-card v-for="(item, index) in list"
:key="index"
:label="item.label"
:path="item.path"
:class="list.length === 1 ? 'wx-card1' : (list.length == 2 ? 'wx-card2' :'')">
</enter-card>
</div>
</div>
</div>
</template>
<script>
import EnterCard from '@/pages/home/components/EnterCard'
export default {
name: 'NavMenu',
components: {EnterCard},
mixins: [],
data() {
return {
list: []
}
},
computed: {},
watch: {},
mounted() {
this.getData()
},
methods: {
getData (){
this.$http.get('/sarPersonalCenter/sar-user-personal-menu/getList',
{
userId: this.$store.getters.userInfo.userId
}, {_this: this}, res => {
if (res.ok) {
res.data.records.forEach( item => {
if (item.state == 1) {
var json = {}
json.label = item.menuName
json.path = item.menuUrl
this.list.push(json)
}
})
for (let a = this.list.length; a < 9; a++) {
var json = {}
json.label = ''
json.path = '/plate'
this.list.push(json)
}
}
})
},
toPage() {
this.$router.push(this.path)
}
},
}
</script>
<style lang="less" scoped>
.nav-menu {
.lattice {
.title {
margin-bottom: 10px;
padding-left: 10px;
height: 40px;
line-height: 40px;
background: #fff;
font-size: 16px;
font-weight: bold;
}
.menu-wrap {
height: 240px;
display: flex;
flex-wrap: wrap;
justify-content:space-between;
font-size: 18px;
color: #333333;
margin-bottom: 10px;
text-align: center;
&:last-child {
margin-bottom: 0;
}
.wx-card {
height: 70px;
background-color: #FFFFFF;
width: 32%;
margin: 0 0 10px 0;
}
.wx-card1 {
width: 100%;
}
.wx-card2 {
width: 49%;
}
.menu-item {
flex: 1;
height: 70px;
line-height: 70px;
text-align: center;
margin-right: 10px;
background: #FFFFFF;
&:last-child {
margin-right: 0;
}
}
}
}
}
</style>
@@ -0,0 +1,23 @@
<!--会议通知-->
<template>
<div class="notice-of-meeting">
</div>
</template>
<script>
export default {
name: "NoticeOfMeeting",
data () {
return {
}
}
};
</script>
<style lang="less" scoped>
.notice-of-meeting {
}
</style>
@@ -0,0 +1,70 @@
<!-- 资讯 -->
<template>
<div class="realimeinfo">
<ul>
<li v-for="item in realimeinfoList" :key="item.id" class="time-title">
<a class="title" :title="item.title">{{ item.title }}</a>
<span class="time">{{ getDate(item.pubTime) }}</span>
</li>
</ul>
</div>
</template>
<script>
export default {
name: 'Realimeinfo',
components: {},
mixins: [],
data() {
return {
putTime: '',
realimeinfoList: [], //资讯数据
}
},
computed: {},
watch: {},
mounted() {
this.getDate()
this.getDynamicInformation()
},
methods: {
//截取时间
getDate (date) {
return date != null ? date.substring(0, date.indexOf(' ')) : ''
},
//获取数据
getDynamicInformation () {
let obj = {}
obj.msgType = 'RESOURCE'
obj.rowLimit = 8
this.$http.get('lawss/msgDynamicInfo/page', obj, {
_this: this
}, res => {
this.realimeinfoList = res.data.list
}, e => {
})
},
},
}
</script>
<style lang="less" scoped>
.realimeinfo {
.time-title {
margin: 15px;
.time {
float: right;
color: #FFFFFF;
}
a {
color: #ffffff;
&:hover {
color: #e9c851;
cursor:pointer;
text-decoration: underline;
}
}
}
}
</style>
@@ -0,0 +1,115 @@
<!-- 标准发布 -->
<template>
<div class="release">
<!-- <ul>-->
<!-- <li v-for="item in standardReleaseList" :key="item.id" class="time-title" >-->
<!-- <div style="height: 18px;">-->
<!-- <a @click="handlePreview(item)" style="color: #333333" class="table-jump">{{ item.standName }}</a>-->
<!-- <span class="time">{{item.issueTime ? $moment(item.issueTime).format('YYYY-MM-DD') : '' }}</span>-->
<!-- </div>-->
<!-- </li>-->
<!-- </ul>-->
<el-table
ref="selection"
:data="standardReleaseList"
tooltip-effect="dark"
style="width: 100%;padding:0 0 20px 0;"
border
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
style="width: 100%">
<el-table-column
type="index"
width="50">
</el-table-column>
<el-table-column
prop="standName"
label="名称">
<template slot-scope="scope">
<span @click="handlePreview(scope.row)">{{ scope.row.standName }}</span>
</template>
</el-table-column>
<el-table-column
width="120"
label="结束时间">
<template slot-scope="scope">
<span>{{scope.row.issueTime ? $moment(scope.row.issueTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: 'Release',
components: {},
mixins: [],
data() {
return {
putTime: '',
standardReleaseList: [], //标准发布数据
}
},
computed: {},
watch: {},
mounted() {
this.getDate()
this.getAdvice()
this.addDate()
},
methods: {
// 点击查看
handlePreview (item) {
let routeUrl = this.$router.resolve({
name: 'OtherStandardDetails',
params: {
id: item.id,
pageType: item.standType + '_STAND'
}
})
window.open(routeUrl.href, '_blank')
},
//截取时间
getDate (date) {
return date != null ? date.substring(0, date.indexOf(' ')) : ''
},
//获取数据
getAdvice() {
let obj = {}
obj.limit = 10
this.$http.get('sarStandardsInfo/sar-standards-info/getStandInfoByList', obj, {
_this: this
}, res => {
let arr = res.data
arr.forEach(item => {
if(item.standName !== ""){
this.standardReleaseList.push(item)
}
})
}, e => {
})
},
},
}
</script>
<style lang="less" scoped>
.release {
.time-title {
margin: 15px;
.time {
float: right;
color:#333333;
}
a {
color: #ffffff;
&:hover {
color: #e9c851;
cursor:pointer;
text-decoration: underline;
}
}
}
}
</style>
@@ -0,0 +1,127 @@
<!-- 搜索栏 -->
<template>
<div class="search-group">
<el-select
v-model="checkState"
class="search-group-item"
placeholder="请选择"
>
<el-option
v-for="item in jumpPage"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
<div class="search-condition">
<el-input
@keyup.native.enter="search"
v-model="checkContent">
type="text"
placeholder="请输入关键词"
clearable
></el-input>
<el-button class="primary_button" type="primary" @click="search">搜索</el-button>
</div>
</div>
</template>
<script>
export default {
name: 'SearchGroup',
components: {},
mixins: [],
data() {
return {
// 当前查询状态
checkState: 'All',
// 查询内容
checkContent: '',
jumpPage: [
{
label: '全部',
value: 'All'
},
{
label: '国内标准法规',
value: 'stand'
},
{
label: '海外标准法规', // value没改
value: 'bussstand'
},
// {
// label: '国内外政策',
// value: 'laws'
// },
{
label: '企业标准',
value: 'enterprise'
}
],
}
},
computed: {},
watch: {},
methods: {
search() {
this.$router.push({
name: 'StandardSearch',
params: {
selectKey: this.checkState,
searchValue: this.checkContent || undefined
}
})
},
},
mounted(){
},
}
</script>
<style lang="less" scoped>
.search-group {
display: flex;
width: 100%;
height: 40px;
margin-bottom: 10px;
.search-group-item {
margin-right: 20px;
border-radius: 5px;
::v-deep {
.el-input__inner {
width: 18vm;
height: 40px;
color: #333333;
font-size: 16px;
border: 0;
border-radius: 3px;
background-color: #FFFFFF;
}
}
}
.search-condition {
display: flex;
flex: 1;
::v-deep {
.el-input__inner {
height: 40px;
font-size: 16px;
color: #333333;
border: 0;
border-radius: 3px;
background: #FFFFFF;
}
}
}
.primary_button {
width: 7.2vw;
height: 40px;
border: 0;
border-radius: 3px;
background-color: #5ea9f6;
}
}
</style>
@@ -0,0 +1,113 @@
<!-- 标准征求意见 -->
<template>
<div class="solicitopinions">
<!-- <ul>-->
<!-- <li v-for="item in domesticDynamics" :key="item.id" class="time-title">-->
<!-- <div style="height: 18px; border-bottom: dashed 1px #cccccc">-->
<!-- <a class="title" style="color: #333333;" :title="item.cname" @click="standForComments(item)">{{ item.cid }}</a>-->
<!-- <span class="time">{{ item.endTime }}</span>-->
<!-- </div>-->
<!-- </li>-->
<!-- </ul>-->
<el-table
ref="selection"
:data="domesticDynamics"
tooltip-effect="dark"
style="width: 100%;padding:0 0 20px 0;"
border
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
style="width: 100%">
<el-table-column
type="index"
width="50">
</el-table-column>
<el-table-column
prop="cid"
label="标准名称/政策名称">
<template slot-scope="scope">
<span @click="standForComments(scope.row)">{{ scope.row.cid }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
width="120"
label="结束时间">
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: "Solicitopinions",
components: {},
mixins: [],
data() {
return {
updateTime: "",
putTime: "",
domesticDynamics: [] //标准征求意见数据
};
},
computed: {},
watch: {},
mounted() {
this.getDate();
this.getAdvice();
// this.addDate();
},
methods: {
//截取时间
getDate(date) {
return date != null ? date.substring(0, date.indexOf(" ")) : "";
},
//获取数据
getAdvice() {
this.$http.get("slrs/sar-public-idea/SelectAllPage", {
page: 1,
size: 10
}, {
_this: this
}, res => {
this.domesticDynamics = res.data.records
}, e => {
});
},
standForComments(item) {
this.$store.commit("setDetailMap", this.$router.path);
this.$router.push({
name: "consultationDetails",
query: {
item: item
}
});
}
}
};
</script>
<style lang="less" scoped>
.solicitopinions {
height: 100%;
.time-title {
margin: 15px;
color: #333333;
.time {
float: right;
color: #333333;
}
a {
color: #ffffff;
&:hover {
color: #e9c851;
cursor: pointer;
text-decoration: underline;
}
}
}
}
</style>
@@ -0,0 +1,680 @@
<!-- 待办任务 -->
<template>
<div class="to-do-list">
<div>
<span class="task">待办任务</span>
<div class="more" @click="togo">更多</div>
</div>
<ul>
<li v-for="item in toDoTaskList" :key="item.id" class="time-title">
<div style="height: 18px">
<a style="color: #333333" @click="dealWith(item)">{{ item.prcName }}</a>
</div>
</li>
</ul>
</div>
</template>
<script>
export default {
name: 'ToDoList',
components: {},
mixins: [],
data() {
return {
toDoTaskList: [],// 代办数据
total: 0,
pageNo: 1,
}
},
computed: {},
watch: {},
mounted() {this.queryProcess()},
methods: {
togo () {
this.$router.push('/processCenter')
},
queryProcess () { // 查询待办流程
this.$http.postData('lawss/activiti/todoTaskList', {
current: this.pageNo,
size: parseInt(this.$store.getters.userInfo.configContent),
userId: this.$store.getters.userInfo.usid || this.$store.getters.userInfo.userId,
},
{
loading: 'loading',
_this: this
}, res => {
this.toDoTaskList = res.list
}, e => {
})
},
toPage() {
this.$router.push(this.path)
},
dealWith (row) { // 办理
const prcType = row.prcType
switch(prcType) {
case '1':
if (row.taskInfo === '标准法规业务经理审批') {
this.$router.push({
name: 'bzrkStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if (row.taskInfo === '责任人会签'){
this.$router.push({
name: 'bzrkStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if (row.taskInfo === '申请人修订'){
this.$router.push({
name: 'bzrkStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
case '2':
if (row.taskInfo === '责任对接人选择责任人') {
this.$router.push({
name: 'bzdyStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任人上传调研结果') {
this.$router.push({
name: 'bzdyStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任对接人审批') {
this.$router.push({
name: 'bzdyStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '标准法规工程师调研汇总'){
this.$router.push({
name: 'bzdyStep5',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任人会签'){
this.$router.push({
name: 'bzdyStep6',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '部长+对接人审核') {
this.$router.push({
name: 'bzdyStep7',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo.indexOf('工程研究总院院长') == 0 ) {
this.$router.push({
name: 'bzdyStep9',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else {
this.$router.push({
name: 'bzdyStep8',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break;
case '3':
if (row.taskInfo === '责任对接人选择责任人') {
this.$router.push({
name: 'bzzqyjStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任人填写征求意见'){
this.$router.push({
name: 'bzzqyjStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任对接人审批') {
this.$router.push({
name: 'bzzqyjStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '标准法规工程师汇总填写处理意见') {
this.$router.push({
name: 'bzzqyjStep5',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任人会签') {
this.$router.push({
name: 'bzzqyjStep6',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '部长+对接人审核') {
this.$router.push({
name: 'bzzqyjStep7',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo.indexOf('技术委员会相关专委会主任') == 0 ) {
this.$router.push({
name: 'bzzqyjStep8',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else {
this.$router.push({
name: 'bzzqyjStep9',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
//标准清单更新/发布流程
case'4' :
if (row.taskInfo === '进行会签,填写意见') {
this.$router.push({
name: 'bzqdfbStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '根据会签意见修订') {
this.$router.push({
name: 'bzqdfbStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if (row.taskInfo === '业务经理审批') {
this.$router.push({
name: 'bzqdfbStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
//项目合规评估流程
case '5' :
if(row.taskInfo === '标准法规部业务经理审批'){
this.$router.push({
name: 'xmpgStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if(row.taskInfo === '标准评估任务下发'){
this.$router.push({
name: 'xmpgStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if(row.taskInfo === '合规性评估'){
this.$router.push({
name: 'xmpgStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if(row.taskInfo === '分发责任人审核'){
this.$router.push({
name: 'xmpgStep5',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if(row.taskInfo === '汇总审核'){
this.$router.push({
name: 'xmpgStep6',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if(row.taskInfo === '标准法规部领导审核'){
this.$router.push({
name: 'xmpgStep7',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
//项目评估流程-项目
case '6':
if(row.taskInfo === '标准法规部业务经理审批'){
this.$router.push({
name: 'xmpg2Step2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if(row.taskInfo === '工程经理转办'){
this.$router.push({
name: 'xmpg2Step3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '架构经理任务分发') {
this.$router.push({
name: 'xmpg2Step4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '分发责任人下发') {
this.$router.push({
name: 'xmpg2Step5',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '合规性评估') {
this.$router.push({
name: 'xmpg2Step6',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '分发负责人审批') {
this.$router.push({
name: 'xmpg2Step7',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '架构经理审批') {
this.$router.push({
name: 'xmpg2Step8',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '工程经理审批') {
this.$router.push({
name: 'xmpg2Step9',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '标准法规部经理审批') {
this.$router.push({
name: 'xmpg2Step10',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '汇总审批') {
this.$router.push({
name: 'xmpg2Step11',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if(row.taskInfo === '标准法规部部长审批') {
this.$router.push({
name: 'xmpg2Step12',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
//未符合项整改流程
case '8' :
if(row.taskInfo === '下发至标准法规工程师'){
this.$router.push({
name: 'wfhxzgStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '确认+选择责任人') {
this.$router.push({
name: 'wfhxzgStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else if (row.taskInfo === '上传佐证材料填写信息') {
this.$router.push({
name: 'wfhxzgStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}else {
this.$router.push({
name: 'wfhxzgStep5',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
case '9':
if (row.taskInfo === '选择执行人') {
this.$router.push({
name: 'bzjdStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '填写解读分析') {
this.$router.push({
name: 'bzjdStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '责任人审核') {
this.$router.push({
name: 'bzjdStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '工程师审核') {
this.$router.push({
name: 'bzjdStep5',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '部长审批') {
this.$router.push({
name: 'bzjdStep6',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
//项目清单确认流程
case '10' :
if(row.taskInfo === '确认人确认'){
this.$router.push({
name: 'xmqdqrStep2',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
} else if (row.taskInfo === '标准法规部经理审批') {
this.$router.push({
name: 'xmqdqrStep3',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
prcNum: row.prcNum,
prcName: row.prcName,
prcType: row.prcType
}
})
}
break
}
},
},
}
</script>
<style lang="less" scoped>
.to-do-list {
border-radius: 3px;
//flex: 1;
height: calc(~'100% - 300px');
overflow: hidden;
background: #FFFFFF;
.task {
display: inline-block;
margin: 15px;
color: #333333;
font-size: 18px;
}
.more {
float: right;
color: #333333;
margin: 15px 15px;
&:hover {
color: #5ea9f6;
cursor: pointer;
}
}
.time-title {
margin: 15px;
border-bottom: 1px dashed #cccccc;
}
a {
color: #333333;
&:hover {
color: #e9c851;
text-decoration: underline;
}
}
}
</style>
+187
View File
@@ -0,0 +1,187 @@
<template>
<div class="home">
<div class="home_main">
<div class="left_wrapper">
<search-group></search-group>
<div class="main-tabs" style="border-radius: 3px;">
<div class="main-left-wrap" >
<!-- <el-button type="text" style="font-size: 14px" class="more" @click="MORE">MORE</el-button>-->
<el-tabs
v-model="activeName"
class="home-tabs"
@tab-click="handleTabClick"
>
<el-tab-pane label="标准征求意见" name="solicitOpinions">
<solicitOpinions></solicitOpinions>
</el-tab-pane>
<el-tab-pane label="标准发布" name="release">
<release></release>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
<div class="right_wrapper">
<nav-menu></nav-menu>
<todo-list></todo-list>
</div>
</div>
<div calss="home_footer">
<div class="footer">
<Empennage></Empennage>
</div>
</div>
</div>
</template>
<script>
import searchGroup from './components/searchGroup'
import release from './components/release'
import solicitOpinions from './components/solicitopinions'
import navMenu from './components/navMenu'
import todoList from './components/todoList'
import Empennage from "./components/empennage"
export default {
name: "Home2",
components: {
searchGroup,
solicitOpinions,
release,
navMenu,
todoList,
Empennage,
},
data() {
return {
activeName: 'solicitOpinions',
}
},
methods: {
handleTabClick(tab, event) {},
//退出登录
logout(){
this.$confirm('您确认要退出吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: false
}).then(() => {
this.$store.commit('setTypeFlag', 'loginOut')
this.$http.get('logout', {}, {
_this: this
}, res => {
this.$store.dispatch('logout')
this.$router.push('/login')
}, e => {})
}).catch(() => {
})
},
MORE() {
switch (this.activeName) {
case 'solicitOpinions':
this.$router.push({name: 'standardForComments'})
break
case 'release':
this.$confirm('请选择国内/海外标准', {
confirmButtonText: '国内标准',
cancelButtonText: '海外标准',
type: 'warning',
center: true
}).then(() => {
this.$router.push({name: 'domesticStandardsAndRegulations'})
}).catch(() => {
this.$router.push({name: 'foreignStandardsAndRegulations'})
});
break
default:
break
}
}
},
};
</script>
<style lang="less" scoped>
.home{
height: 100%;
display: flex;
flex-direction: column;
background-color: #F0F2F5;
background-size: 100% 100%;
.home_main {
display: flex;
flex: 1;
overflow: hidden;
.left_wrapper {
display: flex;
flex: 1;
flex-direction: column;
width: 53.5vw;
height: calc(~'100% - 10px');
margin-right: 10px;
.more {
float: right;
color: #333333;
margin: 0px 15px;
&:hover {
color: red;
cursor: pointer;
}
}
.home-tabs {
/deep/.el-tabs__content {
height: calc(~'100% - 55px');
}
::v-deep.el-tabs__header{
margin: 0 70px 15px 10px
}
::v-deep {
.el-tabs__item {
font-size: 16px;
font-weight: 500;
color: #333333;
}
.el-tabs__nav-wrap::after {
background-color: transparent;
}
}
}
.main-tabs {
display: flex;
flex: 1;
flex-direction: column;
width: 100%;
height: 40vh;
margin-right: 10px;
background:#FFFFFF;
.main-left-wrap {
height: 100%;
.home-tabs {
height: 100%;
}
}
}
}
.right_wrapper {
display: flex;
flex-direction: column;
width: 37vw;
height: 100%;
}
.search-condition {
display: block;
.el-input {
width: 300px;
}
}
}
.footer {
height: 49px;
line-height: 49px;
//margin-top: 0.3vh;
//line-height: 5.2vh;
background: #FFFFFF;
}
}
</style>
+5 -5
View File
@@ -60,7 +60,7 @@
} else if (this.password === '') {
this.$message.warning('密码不能为空')
} else {
// this.$router.push('/home1')
// this.$router.push('/home2')
this.loginUser(this.username, this.password)
this.getEditPermission()
}
@@ -124,7 +124,7 @@
if (hasHomeMenu) {
this.setMenu(JSON.stringify(menuList)).then(res => {
this.loading = false
this.$router.push('/home1')
this.$router.push('/home2')
}, e => {
this.loading = false
this.$message.warning('未获取到菜单')
@@ -165,7 +165,7 @@
})
if (hasHomeMenu) {
this.setMenu(JSON.stringify(menuList)).then(res => {
this.$router.push('/home1')
this.$router.push('/home2')
}, e => {
this.$message.warning('未获取到菜单')
})
@@ -208,7 +208,7 @@
})
if (hasHomeMenu) {
this.setMenu(JSON.stringify(menuList)).then(res => {
this.$router.push('/home1')
this.$router.push('/home2')
}, e => {
this.$message.warning('未获取到菜单')
})
@@ -323,7 +323,7 @@
window.sessionStorage.setItem('menuList', menuList); // del
if (hasHomeMenu) {
this.setMenu(JSON.stringify(menuList)).then(res => {
this.$router.push('/home1')
this.$router.push('/home2')
}, e => {
this.$message.warning('未获取到菜单')
})
@@ -0,0 +1,825 @@
<template>
<div class="xmqdqr-step1">
<ProcessHeader toggle>
<template slot="proName">项目清单确认流程</template>
<template slot="proNode">申请人发起流程</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">人员信息</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="qdqrForm"
:model="qdform"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<!-- <el-form-item label="选择项目" prop="orgName" class="add-form-item form-item-disabled">-->
<!-- <el-button size="mini" type="primary" style="margin-left: 10px;" @click="choiceProject">选择项目-->
<!-- </el-button>-->
<!-- </el-form-item>-->
<el-form-item label="项目编号" prop="projectNumber" class="add-form-item form-item-disabled" style="float: left">
<el-input
v-model="qdform.projectNumber"
placeholder="请输入项目编号"
disabled
clearable
></el-input>
</el-form-item>
<el-button size="mini" type="primary" style="margin-top: 1%;" @click="choiceProject">选择项目
</el-button>
<el-form-item label="项目名称" prop="projectName" class="add-form-item form-item-disabled">
<el-input
v-model="qdform.projectName"
placeholder="请输入项目名称"
disabled
clearable
></el-input>
</el-form-item>
<el-form-item label="清单名称" prop="detailedListName" class="add-form-item form-item-disabled" style="float: left">
<el-input
v-model="qdform.detailedListName"
placeholder="请输入清单名称"
disabled
clearable
></el-input>
</el-form-item>
<el-button size="mini" type="primary" style="margin-top: 1%;" @click="choiceList">选择清单</el-button>
</el-col>
</el-row>
</div>
</el-form>
</div>
<el-collapse accordion>
<el-collapse-item title="意见填写">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '2'">
<div class="block" style="padding-top: 20px;">
<el-timeline>
<el-form
ref="Form"
:model="roleForm"
:rules="roleFormRules"
class="label-input-form myForm">
<el-timeline-item timestamp="发起流程" placement="top" :color="roleForm.startUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="startUserName" style="margin-bottom: 0">
<h4>流程发起人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.startUser" style="display: none;"></el-input>
<el-input v-model="roleForm.startUserName" placeholder="流程发起人" disabled></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="选择确认人" placement="top"
:color="roleForm.confirmId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="confirmName" style="margin-bottom: 0">
<h4>确认人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.confirmId" style="display: none;"></el-input>
<el-input v-model="roleForm.confirmName" placeholder="选择确认人"
@click.native="choiceZRR('confirmId', '选择确认人', roleForm.confirmId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="选择审批人" placement="top"
:color="roleForm.approveId ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="approveName" style="margin-bottom: 0">
<h4>审批人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.approveId" style="display: none;"></el-input>
<el-input v-model="roleForm.approveName" placeholder="选择法规部经理"
@click.native="choiceZRR('approveId', '选择法规部经理', roleForm.approveId)"></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
</el-form>
</el-timeline>
</div>
</div>
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
<!-- 选择项目弹窗-->
<el-drawer
title="选择项目"
:visible.sync="projectModel"
size="900px"
custom-class="demo-drawer"
>
<div class="demo-drawer-content">
<div style="position: absolute;bottom: 48px;top:60px;left: 0;right: 0">
<div style="position: absolute;bottom: 55px;top: 0;right: 0;left: 0">
<div class="left">
<el-form :modal="projectSearch" :inline="true" class="label-input-form" style="margin-left:10px">
<el-form-item label="项目编号" class="search-item search-item-last">
<el-input
v-model="projectSearch.projectNumber"
placeholder="请输入项目编号"
></el-input>
</el-form-item>
<el-form-item label="项目名称" class="search-item search-item-last">
<el-input
v-model="projectSearch.projectName"
placeholder="请输入项目名称"
></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
class="common-button-primary"
size="small"
v-btn-permission=""
@click="getProjectDataBtn">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
size="small"
v-btn-permission=""
@click="clearSearch">清空
</el-button>
</el-form-item>
</el-form>
</div>
<el-table
:data="ProjectDatas"
tooltip-effect="dark"
style="width: 100%"
border
height="100%"
:header-cell-style="{background: '#f5f1f1', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="selectProjectChange"
ref="projectSelection"
>
<el-table-column
type="selection"
width="55"
align="center" />
<el-table-column
prop="projectNumber"
align="center"
label="项目编号"
/>
<el-table-column
prop="projectName"
align="center"
label="项目名称"
/>
<el-table-column
prop="projectClassification"
align="center"
label="项目分类"
/>
<el-table-column
prop="uname"
align="center"
label="项目经理"
/>
</el-table>
</div>
<pagination
:page="page"
:pageSize="pageSize"
:total="total"
@pageChange="pageChange"
@pageSizeChange="pageSizeChange"
/>
</div>
</div>
<div class="demo-drawer-footer">
<el-button size="mini" @click="cancelProject">取消</el-button>
<el-button type="primary" size="mini" @click="OkProject">带入</el-button>
</div>
</el-drawer>
<!-- 选择清单弹窗-->
<el-drawer
title="选择清单"
:visible.sync="detailedListModel"
size="900px"
custom-class="demo-drawer"
>
<div class="demo-drawer-content">
<div style="position: absolute;bottom: 48px;top:60px;left: 0;right: 0">
<div style="position: absolute;bottom: 55px;top: 0;right: 0;left: 0">
<div class="left">
<el-form :modal="sarSarAccessEOSearch" :inline="true" class="label-input-form">
<el-form-item label="车型类别" prop="carType" label-width="100px" class="search-item">
<el-select
v-model="sarSarAccessEOSearch.carType"
placeholder="请选择"
filterable
size="small"
>
<el-option
v-for="item in energyKindOptions"
:value="item.value"
:key="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<el-form-item label="清单名称" class="search-item search-item-last">
<el-input
v-model="sarSarAccessEOSearch.detailedListName"
placeholder="请输入清单名称"
></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
class="common-button-primary"
size="small"
@click="searchSarAccess">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
size="small"
@click="clearSearchAccess">清空
</el-button>
</el-form-item>
</el-form>
</div>
<el-table
:data="sarAccessListDatas"
tooltip-effect="dark"
style="width: 100%; padding: 0 3px"
border
height="100%"
:header-cell-style="{background: '#f5f1f1', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="selectListChange"
ref="listSelection"
>
<el-table-column
type="selection"
width="55"
align="center" />
<el-table-column
prop="carTypeShow"
label="车型类别"
align="center">
</el-table-column>
<el-table-column
prop="detailedListName"
label="清单名称"
align="center"
width="260px"
>
</el-table-column>
<el-table-column
prop="detailedListState"
label="清单状态"
align="center">
<template slot-scope="scope">
<span v-if="scope.row.detailedListState === '0'">未发布</span>
<span v-if="scope.row.detailedListState === '1'">已发布</span>
<span v-if="scope.row.detailedListState === '3'">审核中</span>
</template>
</el-table-column>
<el-table-column
prop="detailedListVision"
label="清单版本"
align="center">
<template slot-scope="scope">
<span
v-if="scope.row.detailedListVision != null && scope.row.detailedListVision !== ''">{{ scope.row.detailedListVision
}}</span>
</template>
</el-table-column>
<el-table-column
prop="updateTime"
label="更新时间"
align="center">
<template slot-scope="scope">
<div>
{{ scope.row.updateTime ? $moment(scope.row.updateTime).format("YYYY-MM-DD") : scope.row.updateTime
}}
</div>
</template>
</el-table-column>
<el-table-column
prop="updatePeople"
label="更新人"
align="center">
</el-table-column>
</el-table>
</div>
<pagination
:page="pageNo"
:pageSize="pageSizeNo"
:total="totalNo"
@pageChange="pageChangeNo"
@pageSizeChange="pageSizeChangeNo"
/>
</div>
</div>
<div class="demo-drawer-footer">
<el-button size="mini" @click="closeDrawer">取消</el-button>
<el-button type="primary" size="mini" @click="OkDrawer">带入</el-button>
</div>
</el-drawer>
</div>
</template>
<script>
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { saveTaskFirst } from "api/process";
export default {
name: "xmqdqrStep1-4",
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
data() {
return {
multipleSelection: [],
active: "1", //默认显示
commentText: "",
modalshowflag: false,
drawerTitle: "",
nodeList: [],
isSubmit: false,
saveLoading: false,
detailedListModel: false,
projectModel: false,
sarAccessListDatas: [],
ProjectDatas: [],
selectProject: [],
selectedList: [],
total: 0,
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
totalNo: 0,
pageNo: 1,
pageSizeNo: this.$store.getters.userInfo.configContent,
energyKindOptions: [], //存放适用车型数据
// 查询相关参数
sarSarAccessEOSearch: {
carType: "",
detailedListName: ""
},
projectSearch: {
projectNumber: "",
projectName: ""
},
qdform: {
projectNumber: "",
projectName: "",
detailedListName: ""
},
roleForm: {
startUserName: this.$store.getters.userInfo.userName,
startUser: this.$store.getters.userInfo.userId,
confirmId: "",
confirmName: "",
approveId: "",
approveName:"",
},
//表单验证
formRules: {
projectName: [
{ required: true, message: "请输入项目名称", trigger: "blur" }
],
projectNumber: [
{ type: "string", required: true, message: "请输入项目编号", trigger: "change" }
],
detailedListName: [
{ required: true, message: "请输入清单名称", trigger: "blur" },
{trigger: 'change'}
]
},
// 角色验证
roleFormRules: {
confirmName: [
{ required: true, message: "请选择确认人", trigger: "change" }
],
approveName: [
{ required: true, message: "请选择审批人", trigger: "change" }
]
}
};
},
methods: {
// 表格勾选
handleSelectionChange(val) {
// 单选
if (val.length > 1) {
this.$refs.table.clearSelection();
this.$refs.table.toggleRowSelection(val.pop());
}
this.multipleSelection = val;
},
handleTabs(type) {
this.active = type;
},
getProjectDataBtn() {
this.page = 1;
this.getProjectData();
},
//查询项目列表
getProjectData() {
this.$http.get("sarStandProjectLibrary/queryProjectConfirm", {
PageSize: this.pageSize,
Page: this.page,
...this.projectSearch
}, {
_this: this
}, res => {
this.ProjectDatas = res.data.total.records;
this.total = res.data.total.total;
this.page = 1;
}, e => {
});
},
//清空查询列表
clearSearch() {
this.projectSearch = {
projectName: "",
projectNumber: ""
};
this.getProjectData();
},
//项目带入取消事件
cancelProject() {
this.projectModel = false;
},
//项目带入确定事件
OkProject() {
if (this.selectProject.length < 1) {
this.$message.warning("请至少选择一条数据进行带入");
} else if (this.selectProject.length > 1) {
this.$message.warning("您只能选择一条数据进行带入");
} else {
console.log(this.selectProject[0])
this.qdform.projectNumber = this.selectProject[0].projectNumber;
this.qdform.projectName = this.selectProject[0].projectName;
this.qdform.projectId = this.selectProject[0].id;
this.projectModel = false;
}
},
//清单查询按钮
searchSarAccessBtn() {
this.pageNo = 1;
this.searchSarAccess();
},
//查询清单列表
searchSarAccess() {
this.$http.get("sarLawsDetailedList/sar-laws-detailed-list/getAllStand", {
page: this.pageNo,
pageSize: this.pageSizeNo,
...this.sarSarAccessEOSearch,
sortKey: 2
}, {
_this: this
}, res => {
let arr = res.data.records;
arr.forEach(item => {
// 适用车型转换
if (item.carType !== null) {
let k = (item.carType || "").split(",");
for (let i in this.energyKindOptions) {
for (let m = 0; m < k.length; m++) {
if (this.energyKindOptions[i].value === k[m]) {
k[m] = this.energyKindOptions[i].label;
}
item.carTypeShow = k.join(",");
}
}
}
});
this.sarAccessListDatas = arr;
this.tableLoading = false;
this.toatl = res.data.total;
}, e => {
});
},
//清空查询清单
clearSearchAccess() {
this.sarSarAccessEOSearch = {
carType: "",
detailedListName: ""
};
this.searchSarAccess();
},
//选择项目点击事件
choiceProject() {
this.projectModel = true;
},
//选择清单点击事件
choiceList() {
this.detailedListModel = true;
},
//清单带入取消事件
closeDrawer() {
this.detailedListModel = false;
},
//清单带入确定事件
OkDrawer() {
if (this.selectedList.length < 1) {
this.$message.warning("请至少选择一条数据进行带入");
} else if (this.selectedList.length > 1) {
this.$message.warning("您只能选择一条数据进行带入");
} else {
this.qdform.detailedListName = this.selectedList[0].detailedListName;
this.qdform.detailedListId = this.selectedList[0].id;
this.qdform.detailedListVision = this.selectedList[0].detailedListVision;
this.detailedListModel = false;
}
},
cancleUserInfo() {
this.modalshowflag = false;
},
choiceZRR(type, title, id) {
this.nodeList = [];
this.nodeList.push(id);
this.type = type;
this.drawerTitle = title;
this.modalshowflag = true;
},
checkedRole(data) {
if (this.type === "confirmId") {
this.roleForm.confirmId = data[0].id;
this.roleForm.confirmName = data[0].name;
}else if(this.type === "approveId"){
this.roleForm.approveId = data[0].id;
this.roleForm.approveName = data[0].name;
}
this.modalshowflag = false;
},
//项目分页器
pageChange(page) {
this.page = page;
this.getProjectData();
},
pageSizeChange(pageSize) {
this.pageSize = pageSize;
this.getProjectData();
},
//清单分页器
pageChangeNo(pageNo) {
this.pageNO = pageNo;
this.searchSarAccess();
},
pageSizeChangeNo(pageSizeNo) {
this.pageSizeNo = pageSizeNo;
this.searchSarAccess();
},
//清单勾选框数据
selectListChange(data) {
// 单选
if (data.length > 1) {
this.$refs.selection.clearSelection();
this.$refs.selection.toggleRowSelection(data.pop());
}
this.multipleSelection = data
this.selectedList = data;
},
//项目勾选框数据
selectProjectChange(data) {
// 单选
if (data.length > 1) {
this.$refs.selection.clearSelection();
this.$refs.selection.toggleRowSelection(data.pop());
}
this.multipleSelection = data
this.selectProject = data;
},
//提交事件
handleSubmit() {
this.qdform.commentText = this.commentText;
var json = Object.assign(this.qdform, this.roleForm);
this.$refs["qdqrForm"].validate((valid) => {
if (valid) {
this.$refs["Form"].validate((valid) => {
if (valid) {
this.isSubmit = true;
this.$http.get("lawss/activiti/startProcess", { type: "10" }, {
_this: this
}, res => {
if (res.ok) {
this.$http.post("lawss/activiti/completeTask", {
taskIds: res.data,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message);
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
});
} else {
return this.$message.warning("请完善人员信息");
}
});
} else {
return this.$message.warning("请完善基础信息");
}
});
},
//保存事件
handleSave() {
this.saveLoading = true;
let _formData = new FormData();
_formData.append("id", this.bpnId || "");
_formData.append("createUser", this.$store.getters.userInfo.userId);
_formData.append("createUserName", this.$store.getters.userInfo.userName);
_formData.append("prcType", "10");
_formData.append("json", JSON.stringify({
taskInfo: "确认人确认",
form: this.qdform,
roleForm: this.roleForm,
commentText: this.commentText
}));
saveTaskFirst(_formData).then(res => {
this.saveLoading = false;
this.$message.success("保存成功");
this.bpnId = res.result;
}).catch(e => {
this.saveLoading = false;
});
}
},
mounted() {
this.qdform.projectNumber = this.$route.query.row.projectNumber;
this.qdform.projectName = this.$route.query.row.projectName;
this.qdform.projectId = this.$route.query.row.id
// 查询各下拉框数据
this.$http.get("sys/dictype/getDicTypeListCode", "", {
_this: this,
loading: "loading"
}, res => {
this.energyKindOptions = res.data.ENERGYTYPES; //适用车型
this.$http.get("sarLawsDetailedList/sar-laws-detailed-list/getAllStand", {
page: 1,
pageSize: this.pageSize,
...this.sarSarAccessEOSearch,
sortKey: 2
}, {
_this: this
}, res => {
let arr = res.data.records;
arr.forEach(item => {
// 适用车型转换
if (item.carType !== null) {
let k = (item.carType || "").split(",");
for (let i in this.energyKindOptions) {
for (let m = 0; m < k.length; m++) {
if (this.energyKindOptions[i].value === k[m]) {
k[m] = this.energyKindOptions[i].label;
}
item.carTypeShow = k.join(",");
}
}
}
});
this.sarAccessListDatas = arr;
this.tableLoading = false;
this.sarSarAccessEOSearch.page = 1;
this.totalNo = res.data.total;
}, e => {
});
}, e => {
});
this.getProjectData();
this.searchSarAccess();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.xmqdqr-step1 {
.myForm {
/deep/ .el-form-item__content {
line-height: 10px;
}
}
/deep/ .el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
position: relative;
height: 100%;
.fileClass {
cursor: pointer;
}
.fileClass:hover {
color: #0c91e5;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
}
}
}
</style>
@@ -88,7 +88,7 @@ export default {
this.tabValue = this.list[0].name;
},
beforeRouteLeave(to, from, next) {
const toName = ["ListOfStandardsAndRegulationsDetails", "AccessStandardDetails", "ProjectAddEit", "OtherAddEit"];
const toName = ["ListOfStandardsAndRegulationsDetails", "AccessStandardDetails", "LocalProductDetail", "OtherAddEit"];
// 离开此页面之前,记录tabName以便返回使用,如果将要访问的页面不是这两个,则清空tabName
if (toName.includes(to.name)) {
this.$store.commit("SET_ACCESS_STANDARD_REG_TABS", this.tabValue);
@@ -198,6 +198,9 @@
<el-dropdown-item :command="[scope.row, '查看']" v-btn-permission="'633e82816590af9027dc2fddc562d046'">
查看
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '发起确认流程']" v-btn-permission="'91ed4c216c019e869aad04baf7bc7db4'">
发起确认流程
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
@@ -891,6 +894,9 @@ export default {
case "查看":
this.handlePreview(command[0]);
break;
case "发起确认流程":
this.handleProcess(command[0]);
break;
}
},
/**
@@ -1394,19 +1400,15 @@ export default {
}
});
},
// 关联
handleRelation(row) {
this.row = row;
this.rowId = this.row.id;
this.getSearchInforList();
this.getRelectiontTable();
this.showModelRelation = true;
this.$nextTick(() => {
this.relationTableHeight = $(".demo-drawer-content").height() - 52 - 60;
window.onresize = function() {
this.relationTableHeight = $(".demo-drawer-content").height() - 52 - 60;
}.bind(this);
});
// 发起确认流程
handleProcess(row) {
// 项目清单确认流程
this.$router.push({
name:'xmqdqrStep1-4',
query: {
row
}
})
},
// 关联里面条件查询的下拉列表数据获取
getSearchInforList() {
@@ -22,7 +22,7 @@
<router-link to="/advancedSearch" class="router-link">
<div>高级检索</div>
</router-link>
<router-link to="/home1" class="router-link1">
<router-link to="/home2" class="router-link1">
<div>首页</div>
</router-link>
</div>
+32 -9
View File
@@ -59,6 +59,18 @@ const routes = [
isBoolean: true
}
},
// {
// path: '/home2',
// name: 'Home2',
// component: () =>
// import('@/pages/home2'),
// meta: {
// requireAuth: true,
// title: '福田首页',
// menuId: '',
// isBoolean: true
// }
// },
// 个人中心
{
path: '/personal',
@@ -231,15 +243,6 @@ const routes = [
title: '流程详情'
}
},
{
path: '/processAcceptDetail',
name: 'ProcessAcceptDetail',
component: () => import('@/pages/processCenter/pages/processAcceptDetail/index.vue'),
meta: {
requireAuth: true,
title: '流程详情'
}
},
{
path: '/bzffStep1',
name: 'bzffStep1',
@@ -574,6 +577,15 @@ const routes = [
title: '项目清单确认流程'
}
},
{
path: '/xmqdqrStep1-4',
name: 'xmqdqrStep1-4',
component: () => import('@/pages/processCenter/pages/creatProcess/xmqdqr/step1-4.vue'),
meta: {
requireAuth: true,
title: '项目清单确认流程'
}
},
{
path: '/xmqdqrStep3',
name: 'xmqdqrStep3',
@@ -1164,6 +1176,17 @@ const routes = [
menuId: 'RAFQ4N4ARF'
}
},
{
path: '/home2',
name: 'Home2',
component: () =>
import('@/pages/home2/index'),
meta: {
requireAuth: true,
title: '首页',
menuId: 'RAFQ4N4ARF'
}
},
{
path: '/dynamicInformationMore',
name: 'DynamicInformationMore',