Merge remote-tracking branch 'origin/feature-ui-fix'

# Conflicts:
#	jero-web/src/views/modules/message/SysMessageList.vue
#	jero-web/src/views/modules/message/SysMessageTemplateList.vue
#	jero-web/src/views/system/DepartList.vue
#	jero-web/src/views/system/DepartListSync.vue
#	jero-web/src/views/system/DictList.vue
#	jero-web/src/views/system/QuartzJobList.vue
#	jero-web/src/views/system/SysCategoryList.vue
#	jero-web/src/views/system/SysCheckRuleList.vue
#	jero-web/src/views/system/SysDataSourceList.vue
#	jero-web/src/views/system/SysFillRuleList.vue
#	jero-web/src/views/system/UserList.vue
#	jero-web/src/views/system/modules/PasswordModal.vue
#	jero-web/src/views/system/modules/UserModal.vue
#	jero-web/src/views/system/modules/UserRoleModal.vue
This commit is contained in:
zer0Black
2023-08-14 17:56:46 +08:00
109 changed files with 21011 additions and 862 deletions
+4 -1
View File
@@ -33,8 +33,11 @@ export default {
}
}
</script>
<style scoped lang="less">
<style lang="less">
#app {
height: 100%;
}
.ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-tbody > tr > td {
padding: 9px 8px !important;
}
</style>
+1
View File
@@ -181,6 +181,7 @@ export function uploadAction (url, parameter) {
* @returns {*}
*/
export function getFileAccessHttpUrl (avatar, subStr) {
if (!subStr) subStr = 'http'
try {
if (avatar && avatar.startsWith(subStr)) {
Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

+27 -4
View File
@@ -1,7 +1,7 @@
/*列表上方操作按钮区域*/
.ant-card-body .table-operator {
margin-bottom: 8px;
//margin-bottom: 8px;
}
/** Button按钮间距 */
.table-operator .ant-btn {
@@ -12,7 +12,7 @@
}
.table-operator .ant-btn-group .ant-btn:last-child {
margin: 0 8px 8px 0;
margin: 0 8px 0px 0;
}
/*列表td的padding设置 可以控制列表大小*/
.ant-table-tbody .ant-table-row td {
@@ -38,8 +38,16 @@
}
/*列表中有图片的加这个样式 参考用户管理*/
.anty-img-wrap {
height: 25px;
height: 20px;
position: relative;
.ant-avatar.ant-avatar-icon {
font-size: 14px;
line-height: 20px;
}
.ant-avatar{
width: 20px;
height: 20px;
}
}
.anty-img-wrap > img {
max-height: 100%;
@@ -58,4 +66,19 @@
}
/**隐藏样式-modal确定按钮 */
.jee-hidden{display: none}
.jee-hidden{display: none}
.ant-col-md-6{
padding-left: 18px !important;
padding-right: 18px !important;
}
.table-page-search-wrapper .ant-form-inline .ant-form-item{
margin-bottom: 12px;
}
.ant-card-body .table-operator{
margin-bottom: 4px !important;
}
.ant-tabs-bar {
margin-bottom: 0px;
}
+4
View File
@@ -26,3 +26,7 @@ i {
background-color: rgba(255, 192, 203, 0.31);
color:red;
}
.ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-tbody > tr > td {
padding: 9px 8px !important;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 576 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

+80 -1
View File
@@ -73,7 +73,7 @@ export default {
formData.append('file', blobInfo.blob(), blobInfo.filename())
formData.append('biz', 'jeditor')
formData.append('jeditor', '1')
uploadAction(window._CONFIG.domianURL + '/sys/common/upload', formData).then((res) => {
uploadAction('/sys/common/upload', formData).then((res) => {
if (res.success) {
if (res.message === 'local') {
const img = 'data:image/jpeg;base64,' + blobInfo.base64()
@@ -84,6 +84,28 @@ export default {
}
}
})
},
paste_postprocess: function(plugin, args) {
console.log(args.node,"kkkkkk");
args.node.setAttribute('id', 'hello');
},
init_instance_callback: editor => {
if (this.value) {
editor.setContent(this.value)
}
this.hasInit = true
editor.on('NodeChange Change KeyUp SetContent', () => {
this.hasChange = true
// const val = editor.getContent().replace(/<p><img\s?src="data.*?<\/p>/g, '')
this.$emit('input', editor.getContent())
})
editor.on('paste', evt => {
// 监听粘贴事件
console.log('监听粘贴事件', evt)
this.onPaste(evt)
})
}
},
myValue: this.value,
@@ -94,7 +116,64 @@ export default {
this.initATabsChangeAutoReload()
},
methods: {
onPaste(event, success, failure) {
// let _this = this
let self = this
// 实现图⽚粘贴上传
const items = (event.clipboardData || window.clipboardData).items
// items为伪数组微信/QQ截图以及此富⽂本区域内复制粘贴的length为1,⿏标右键复制粘贴图⽚以及⽂本的复制粘贴的length为2
let len = items.length
for (let i = 0; i < len; i++) {
if (items[i].kind == "file" && items[i].type.indexOf("image") != -1) {
// 判断是否为图⽚类型
event.preventDefault() // 如果是图⽚阻⽌⾃动粘贴到富⽂本编辑器
let file = items[i].getAsFile() // 获取⽂件数据
let blob = new Blob([file], { type: file.type }) //实例化⼀个blob 将图⽚⼤⼩以及类型初始化到blob⾥
// let index = file.name.lastIndexOf(".")
// let fileName =
// Date.now() + file.name.substring(index, file.name.length)
// fileName --- 图⽚名称可⾃⾏处理
console.log("粘贴的是图⽚类型", blob, file)
// let file = blobInfo.blob()
const isLt2M = file.size / 1024 < 500
if (!isLt2M) {
this.$message.warning("上传失败,图片不可超过500KB!")
return false
}
const formdate = new FormData()
formdate.append("file", file) //imageFile文件名和后端统一
uploadAction('/sys/common/upload', formdate).then((res) => {
debugger
if (res.success) {
if (res.message === 'local') {
const img = 'data:image/jpeg;base64,' + blob.base64()
editor.execCommand(
"mceReplaceContent",
false,
`<img class="wscnph" src="${img}" >`
);
} else {
const img = getFileAccessHttpUrl(res.message)
editor.execCommand(
"mceReplaceContent",
false,
`<img class="wscnph" src="${img}" >`
);
}
}
})
.catch(function(err) {
// 上传错误可⾃⾏给出提⽰
self.$message.error(err)
})
} else {
// 不是图⽚类型直接粘贴, 跳过oss上传处理
console.log("粘贴的不是图")
}
}
},
reload () {
this.reloading = true
this.$nextTick(() => {
@@ -172,9 +172,15 @@ export default {
}
return file
})
} else {
// this.handleDelete(info.file)
this.fileList = []
this.$message.error(`上传失败`)
return
}
// this.$message.success(`${info.file.name} 上传成功!`);
} else if (info.file.status === 'error') {
this.$message.error(`${info.file.name} 上传失败.`)
} else if (info.file.status === 'removed') {
this.handleDelete(info.file)
@@ -206,7 +206,9 @@ export default {
}
}
}
.ant-modal-body{
height:500px !important;
}
.j-modal-title-row {
.left {
width: calc(100% - 56px - 56px);
+1 -1
View File
@@ -19,7 +19,7 @@
<a-button v-if="izMobile" type="primary" icon="delete" @click="handleReset"/>
</a-button-group>
</a-tooltip>
<a-button v-else type="primary" icon="filter" @click="handleOpen">高级查询</a-button>
<a-button v-else type="default" icon="filter" @click="handleOpen">高级查询</a-button>
</slot>
<j-modal
@@ -28,12 +28,13 @@
<a-col :md="8" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchByquery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
<a @click="handleToggleSearch" style="margin-right: 28px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="primary" @click="searchByquery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -42,9 +43,9 @@
</div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i>
已选择&nbsp;<a style="font-weight: 600">{{ table.selectedRowKeys.length }}</a>项&nbsp;&nbsp;
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i>-->
<!-- 已选择&nbsp;<a style="font-weight: 600">{{ table.selectedRowKeys.length }}</a>项&nbsp;&nbsp;-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<a v-if="!showSearchFlag" style="margin-left: 24px" @click="onlyReload">刷新</a>
</div>
@@ -20,12 +20,12 @@
<!-- 动态生成的查询条件 -->
<j-select-biz-query-item v-if="queryConfig.length>0" v-show="showMoreQueryItems" :queryParam="queryParam" :queryConfig="queryConfig" @pressEnter="searchQuery"/>
<!-- 按钮 -->
<a-button :style="{marginBottom:'12px'}" type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button :style="{marginBottom:'12px'}" type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a v-if="queryConfig.length>0" @click="showMoreQueryItems=!showMoreQueryItems" style="margin-left: 8px">
{{ showMoreQueryItems ? '收起' : '展开' }}
<a-icon :type="showMoreQueryItems ? 'up' : 'down'"/>
<a @click="handleToggleSearch" style="margin-right: 28px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button :style="{marginBottom:'12px'}" type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button :style="{marginBottom:'12px'}" type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</a-form>
<a-table
@@ -38,7 +38,9 @@ export default {
</script>
<style>
.main{
height: 100%;
overflow: auto;
height:100%;
overflow-y: auto;
overflow-x: hidden;
}
</style>
+129 -80
View File
@@ -3,21 +3,24 @@
<!-- update-begin- author:sunjianlei --- date:20191009 --- for: 提升右键菜单的层级 -->
<contextmenu :itemList="menuItemList" :visible.sync="menuVisible" style="z-index: 9999;" @select="onMenuSelect"/>
<!-- update-end- author:sunjianlei --- date:20191009 --- for: 提升右键菜单的层级 -->
<a-tabs
@contextmenu.native="e => onContextmenu(e)"
v-if="multipage"
:active-key="activePage"
class="tab-layout-tabs"
style="height:52px"
:hide-add="true"
type="editable-card"
@change="changePage"
@tabClick="tabCallBack"
@edit="editPage">
<a-tab-pane :id="page.fullPath" :key="page.fullPath" v-for="page in pageList">
<span slot="tab" :pagekey="page.fullPath">{{ page.meta.title }}</span>
</a-tab-pane>
</a-tabs>
<div class='topHeadertabList'>
<a-tabs
@contextmenu.native="e => onContextmenu(e)"
v-if="multipage"
:active-key="activePage"
class="tab-layout-tabs "
style="height:52px"
:hide-add="true"
type="editable-card"
@change="changePage"
@tabClick="tabCallBack"
@edit="editPage">
<a-tab-pane :id="page.fullPath" :key="page.fullPath" v-for="page in pageList" >
<span slot="tab" :pagekey="page.fullPath">{{ page.meta.title}}</span>
</a-tab-pane>
</a-tabs>
</div>
<div style="margin: 12px 12px 0;">
<!-- update-begin-author:taoyan date:20201221 for:此处删掉transition标签 不知道为什么加上后 页面路由切换的时候即1及菜单切到2及菜单的时候 两个菜单页面会同时出现300-500秒左右 -->
<keep-alive v-if="multipage">
@@ -298,85 +301,131 @@ export default {
</script>
<style lang="less">
.contextmenu .ant-menu li{
color: #333 !important;
}
.topHeadertabList .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab.ant-tabs-tab-active{
color: #0F6FC4;
text-shadow: none;
background-color: #fff!important;
}
.topHeadertabList .ant-tabs-nav{
/*
* The following styles are auto-applied to elements with
* transition="page-transition" when their visibility is toggled
* by Vue.js.
*
* You can easily play with the page transition by editing
* these styles.
*/
}
.topHeadertabList .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{
border-radius: 0;
line-height: 40px!important;
}
.topHeadertabList .tab-layout-tabs.ant-tabs.ant-tabs-card > .ant-tabs-bar .ant-tabs-tab{
border-bottom: none!important;
border-top: none!important;
border-left: none!important;
border-right: 1px solid #E5E6EB!important;
}
.topHeadertabList .ant-tabs-nav-wrap{
border-right: 1px solid #E5E6EB!important;
border-left: 1px solid #E5E6EB!important;
}
.topHeadertabList .tab-layout-tabs.ant-tabs.ant-tabs-card .ant-tabs-tab{
padding: 0 36px 0 12px!important;
margin-right: 0!important;
background-color: #F7F8FA!important;
}
.topHeadertabList .tab-layout-tabs.ant-tabs.ant-tabs-card .ant-tabs-tab .ant-tabs-close-x{
right: 15px;
opacity: 1!important;
}
.topHeadertabList .tab-layout-tabs.ant-tabs{
border-bottom: 1px solid #E5E6EB;
height: 40px!important;
}
.topHeadertabList .ant-tabs-nav-container,.topHeadertabList .tab-layout-tabs.ant-tabs .ant-tabs-bar{
margin-top: 0;
}
.topHeadertabList .ant-tabs-nav-wrap,.topHeadertabList .tab-layout-tabs.ant-tabs{
background: #F7F8FA;
}
</style>
<style lang="less" >
.page-transition-enter {
opacity: 0;
/*
* The following styles are auto-applied to elements with
* transition="page-transition" when their visibility is toggled
* by Vue.js.
*
* You can easily play with the page transition by editing
* these styles.
*/
.page-transition-enter {
opacity: 0;
}
.page-transition-leave-active {
opacity: 0;
}
.page-transition-enter .page-transition-container,
.page-transition-leave-active .page-transition-container {
-webkit-transform: scale(1.1);
transform: scale(1.1);
}
/*美化弹出Tab样式*/
.ant-tabs-nav-container {
margin-top: 4px;
}
/* 修改 ant-tabs 样式 */
.tab-layout-tabs.ant-tabs {
border-bottom: 1px solid #ccc;
border-left: 1px solid #ccc;
background-color: white;
padding: 0 20px;
.ant-tabs-bar {
margin: 4px 0 0;
border: none;
}
.page-transition-leave-active {
opacity: 0;
}
}
.page-transition-enter .page-transition-container,
.page-transition-leave-active .page-transition-container {
-webkit-transform: scale(1.1);
transform: scale(1.1);
}
.tab-layout-tabs.ant-tabs {
/*美化弹出Tab样式*/
.ant-tabs-nav-container {
margin-top: 4px;
}
&.ant-tabs-card .ant-tabs-tab {
/* 修改 ant-tabs 样式 */
.tab-layout-tabs.ant-tabs {
border-bottom: 1px solid #ccc;
border-left: 1px solid #ccc;
background-color: white;
padding: 0 20px;
padding: 0 24px !important;
background-color: white !important;
margin-right: 10px !important;
.ant-tabs-bar {
margin: 4px 0 0;
border: none;
.ant-tabs-close-x {
width: 12px !important;
height: 12px !important;
opacity: 0 !important;
cursor: pointer !important;
font-size: 12px !important;
margin: 0 !important;
position: absolute;
top: 36%;
right: 6px;
}
&:hover .ant-tabs-close-x {
opacity: 1 !important;
}
}
.tab-layout-tabs.ant-tabs {
&.ant-tabs-card .ant-tabs-tab {
padding: 0 24px !important;
background-color: white !important;
margin-right: 10px !important;
.ant-tabs-close-x {
width: 12px !important;
height: 12px !important;
opacity: 0 !important;
cursor: pointer !important;
font-size: 12px !important;
margin: 0 !important;
position: absolute;
top: 36%;
right: 6px;
}
&:hover .ant-tabs-close-x {
opacity: 1 !important;
}
}
}
.tab-layout-tabs.ant-tabs.ant-tabs-card > .ant-tabs-bar {
.ant-tabs-tab {
border: none !important;
border-bottom: 1px solid transparent !important;
}
.tab-layout-tabs.ant-tabs.ant-tabs-card > .ant-tabs-bar {
.ant-tabs-tab {
border: none !important;
border-bottom: 1px solid transparent !important;
}
.ant-tabs-tab-active {
border-color: @primary-color!important;
}
.ant-tabs-tab-active {
border-color: @primary-color!important;
}
}
</style>
+11 -11
View File
@@ -2,19 +2,19 @@
<div id="userLayout" :class="['user-layout-wrapper',device]">
<div :class="!mobile ? 'container' : 'container-mobile'">
<div class="top" id="top" v-if="!mobile">
<div class="logo">
<img id="logo" src="~@/assets/logo.png" alt="">
</div>
<div id="company">
<span id="c-company">合众未来</span>
<span id="p-company">HEZHONGWEILAI</span>
</div>
<!-- <div class="logo">-->
<!-- <img id="logo" src="~@/assets/logo.png" alt="">-->
<!-- </div>-->
<!-- <div id="company">-->
<!-- <span id="c-company">合众未来</span>-->
<!-- <span id="p-company">HEZHONGWEILAI</span>-->
<!-- </div>-->
</div>
<div v-if="mobile">
<span class="top-bg"><img src="~/@assets/mobileBg.png" alt=""></span>
<span class="btm-bg"><img src="~/@assets/mobileHome.png" alt=""></span>
</div>
<div v-if="mobile" class="mobile">
<div v-if="mobile" class="mobile" >
<div class="logo">
<img src="~@/assets/logo.png" alt="">
</div>
@@ -23,9 +23,9 @@
<span>HEZHONGWEILAI</span>
</div>
</div>
<div class="illustration" v-if="!mobile">
<img src="@/assets/home.png" alt="">
</div>
<!-- <div class="illustration" v-if="!mobile">-->
<!-- <img src="@/assets/home.png" alt="">-->
<!-- </div>-->
<route-view></route-view>
</div>
</div>
@@ -67,5 +67,11 @@ export default {
border: 1px solid #9e9e9e;
border-radius: 4px;
box-shadow: 2px 2px 10px #aaaaaa !important;
background-color: #fff;
color:#565656;
li{
color:#565656 !important;
}
}
</style>
+82 -3
View File
@@ -1,4 +1,5 @@
<template>
<a-layout-sider
:class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]"
width="208px"
@@ -15,6 +16,22 @@
:mode="mode"
:style="smenuStyle">
</s-menu>
<!-- <div style='width: 100px;height:100px;background: pink'></div>-->
<img v-if='!collapsed' src='../../assets/bgImg.png' alt='' class='bgImg'>
<div v-else></div>
<!-- <a-icon-->
<!-- class='bgImg'-->
<!-- v-if="device==='mobile'"-->
<!-- class="trigger"-->
<!-- :type="collapsed ? 'menu-fold' : 'menu-unfold'"-->
<!-- @click="toggle"></a-icon>-->
<!-- <a-icon-->
<!-- class="bgImg trigger"-->
<!-- :type="collapsed ? 'menu-unfold' : 'menu-fold'"-->
<!-- @click="toggle"/>-->
</a-layout-sider>
</template>
@@ -149,29 +166,91 @@ export default {
<!-- update_begin author:sunjianlei date:20190530 for: 选中首页的时候不显示背景颜色 -->
<style lang="less">
.trigger {
width: 53px;
font-size: 22px;
line-height: 30px;
padding: 0 18px;
cursor: pointer;
transition: color 300ms, background 300ms;
bottom: 4px;
/* right: -12px; */
left: 129px;
color: #fff;
background-color: #FFFFFF14;
&:hover {
background: rgba(255, 255, 255, 0.3);
}
}
.sider.light {
background-color: #001529 !important;
}
.bgImg {
position: fixed;
bottom: 0px;
left: 0px;
width: 208px;
z-index: -1;
transition: width 1.5s linear 1s;
}
.ant-layout-sider-children{
//background-color: #001529;
background: none;
}
.ant-menu{
color: hsla(0, 0%, 100%, 0.8);;
background: none;
li ,a{
color:hsla(0, 0%, 100%, 0.8)!important;
}
}
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {
background-color: @primary-color !important;
}
.ant-menu-submenu > .ant-menu {
background: none !important;
}
.ant-menu.ant-menu-root {
background: none;
//li {
// background-color: #001529;
// & > a{
// color: #fff;
// }
//}
& > .ant-menu-item:first-child {
background-color: transparent;
& > a, & > a:hover {
color: rgba(0, 0, 0, 0.65);
//color: rgba(0, 0, 0, 0.65);
color: #fff;
}
&.ant-menu-item-selected {
& > a, & > a:hover {
color: @primary-color;
}
}
}
&.ant-menu-dark > .ant-menu-item:first-child {
& > a, & > a:hover {
color: rgba(255, 255, 255, 0.65);
//color: rgba(255, 255, 255, 0.65);
color: #fff;
}
&.ant-menu-item-selected {
& > a, & > a:hover {
color: rgba(255, 255, 255, 1);
//color: rgba(255, 255, 255, 1);
color: #fff;
}
}
}
@@ -156,7 +156,7 @@
}
.ant-card-body .table-operator[data-v-76e1a326] {
margin-bottom: 18px
margin-bottom: 4px
}
.ant-table-tbody .ant-table-row td[data-v-76e1a326] {
@@ -196,7 +196,7 @@
}
.ant-card-body .table-operator[data-v-54bf704f] {
margin-bottom: 18px
margin-bottom: 4px
}
.ant-table-tbody .ant-table-row td[data-v-54bf704f] {
@@ -329,7 +329,7 @@ th[data-v-125d8be6] {
}
.ant-card-body .table-operator {
margin-bottom: 18px
margin-bottom: 4px
}
.anty-row-operator button {
@@ -492,7 +492,7 @@ th[data-v-125d8be6] {
}
.ant-card-body .table-operator[data-v-67102101] {
margin-bottom: 18px
margin-bottom: 4px
}
.ant-table-tbody .ant-table-row td[data-v-67102101] {
@@ -532,7 +532,7 @@ th[data-v-125d8be6] {
}
.ant-card-body .table-operator {
margin-bottom: 8px
margin-bottom: 4px
}
.table-operator .ant-btn {
@@ -775,7 +775,7 @@ th[data-v-125d8be6] {
}
.ant-card-body .table-operator[data-v-b7645c0c] {
margin-bottom: 18px
margin-bottom: 4px
}
.ant-table-tbody .ant-table-row td[data-v-b7645c0c] {
+26 -133
View File
@@ -1716,25 +1716,7 @@
}
})], 1)], 1) : e._e()], 1), n("div", {
style: e.table_area_style
}, [n("div", {
staticClass: "ant-alert ant-alert-info",
staticStyle: {
"margin-bottom": "16px"
}
}, [n("i", {
staticClass: "anticon anticon-info-circle ant-alert-icon"
}), e._v(" 已选择 "), n("a", {
staticStyle: {
"font-weight": "600"
}
}, [e._v(e._s(e.selectedRowKeys.length))]), e._v("\n "), n("a", {
staticStyle: {
"margin-left": "24px"
},
on: {
click: e.onClearSelected
}
}, [e._v("清空")])]), n("a-table", {
}, [ n("a-table", {
ref: "table",
attrs: {
size: "middle",
@@ -8623,25 +8605,7 @@
}
})], 1)], 1) : e._e()], 1), n("div", {
style: e.table_area_style
}, [n("div", {
staticClass: "ant-alert ant-alert-info",
staticStyle: {
"margin-bottom": "16px"
}
}, [n("i", {
staticClass: "anticon anticon-info-circle ant-alert-icon"
}), e._v(" 已选择 "), n("a", {
staticStyle: {
"font-weight": "600"
}
}, [e._v(e._s(e.selectedRowKeys.length))]), e._v("\n "), n("a", {
staticStyle: {
"margin-left": "24px"
},
on: {
click: e.onClearSelected
}
}, [e._v("清空")])]), n("a-table", {
}, [ n("a-table", {
ref: "table",
attrs: {
size: "middle",
@@ -27279,25 +27243,7 @@
}
})], 1)], 1) : e._e()], 1), n("div", {
style: e.table_area_style
}, [n("div", {
staticClass: "ant-alert ant-alert-info",
staticStyle: {
"margin-bottom": "16px"
}
}, [n("i", {
staticClass: "anticon anticon-info-circle ant-alert-icon"
}), e._v(" 已选择 "), n("a", {
staticStyle: {
"font-weight": "600"
}
}, [e._v(e._s(e.selectedRowKeys.length))]), e._v("\n "), n("a", {
staticStyle: {
"margin-left": "24px"
},
on: {
click: e.onClearSelected
}
}, [e._v("清空")])]), n("a-table", {
}, [ n("a-table", {
ref: "table",
attrs: {
size: "middle",
@@ -29406,7 +29352,7 @@
"margin-left": "8px"
},
attrs: {
type: "primary",
type: "default",
icon: "reload"
},
on: {
@@ -29425,7 +29371,7 @@
staticClass: "table-operator"
}, [e.buttonSwitch.add ? n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "plus"
},
on: {
@@ -31710,7 +31656,7 @@
}
}, [e._v("查询")]), n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "reload"
},
on: {
@@ -37656,7 +37602,7 @@
"margin-left": "8px"
},
attrs: {
type: "primary",
type: "default",
icon: "reload"
},
on: {
@@ -39018,7 +38964,7 @@
"margin-left": "8px"
},
attrs: {
type: "primary",
type: "default",
icon: "reload"
},
on: {
@@ -43922,7 +43868,7 @@
"margin-left": "8px"
},
attrs: {
type: "primary",
type: "default",
icon: "reload"
},
on: {
@@ -45162,7 +45108,7 @@
"margin-left": "8px"
},
attrs: {
type: "primary",
type: "default",
icon: "reload"
},
on: {
@@ -45172,7 +45118,7 @@
staticClass: "table-operator"
}, [n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "plus"
},
on: {
@@ -45200,26 +45146,7 @@
attrs: {
type: "down"
}
})], 1)], 1) : e._e()], 1), n("div", [n("div", {
staticClass: "ant-alert ant-alert-info",
staticStyle: {
"margin-bottom": "16px"
}
}, [n("i", {
staticClass: "anticon anticon-info-circle ant-alert-icon"
}), e._v("\n 已选择\n "), n("a", {
staticStyle: {
"font-weight": "600"
}
}, [e._v("\n " + e._s(e.selectedRowKeys.length) + "\n ")]), e._v("\n 项\n "), n(
"a", {
staticStyle: {
"margin-left": "24px"
},
on: {
click: e.onClearSelected
}
}, [e._v("清空")])]), n("a-table", {
})], 1)], 1) : e._e()], 1), n("div", [ n("a-table", {
ref: "table",
attrs: {
size: "middle",
@@ -45472,6 +45399,7 @@
}))
},
goPageOnline: function(e) {
debugger
this.$router.push({
path: "/online/cgreport/" + e
})
@@ -66840,7 +66768,7 @@
"margin-left": "8px"
},
attrs: {
type: "primary",
type: "default",
icon: "reload"
},
on: {
@@ -66848,25 +66776,7 @@
}
}, [e._v("重置")])], 1)])], 1)], 1)], 1), n("div", {
staticClass: "table-operator"
}), n("div", [n("div", {
staticClass: "ant-alert ant-alert-info",
staticStyle: {
"margin-bottom": "16px"
}
}, [n("i", {
staticClass: "anticon anticon-info-circle ant-alert-icon"
}), e._v("\n 已选择\n "), n("a", {
staticStyle: {
"font-weight": "600"
}
}, [e._v(e._s(e.selectedRowKeys.length))]), e._v("\n 项\n "), n("a", {
staticStyle: {
"margin-left": "24px"
},
on: {
click: e.onClearSelected
}
}, [e._v("清空")])]), n("a-table", {
}), n("div", [ n("a-table", {
ref: "table",
attrs: {
size: "middle",
@@ -67912,7 +67822,7 @@
"margin-left": "8px"
},
attrs: {
type: "primary",
type: "default",
icon: "reload"
},
on: {
@@ -72474,7 +72384,7 @@
"margin-left": "8px"
},
attrs: {
type: "primary",
type: "default",
icon: "reload"
},
on: {
@@ -72495,7 +72405,7 @@
staticClass: "table-operator"
}, [n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "plus"
},
on: {
@@ -72503,7 +72413,7 @@
}
}, [e._v("新增")]), n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "highlight"
},
on: {
@@ -72511,7 +72421,7 @@
}
}, [e._v("自定义按钮")]), n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "strikethrough"
},
on: {
@@ -72519,7 +72429,7 @@
}
}, [e._v("JS增强")]), n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "filter"
},
on: {
@@ -72527,7 +72437,7 @@
}
}, [e._v("SQL增强")]), n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "tool"
},
on: {
@@ -72535,7 +72445,7 @@
}
}, [e._v("JAVA增强")]), n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "database"
},
on: {
@@ -72543,7 +72453,7 @@
}
}, [e._v("导入数据库表")]), n("a-button", {
attrs: {
type: "primary",
type: "default",
icon: "database"
},
on: {
@@ -72567,25 +72477,7 @@
attrs: {
type: "down"
}
})], 1)], 1) : e._e()], 1), n("div", [n("div", {
staticClass: "ant-alert ant-alert-info",
staticStyle: {
"margin-bottom": "16px"
}
}, [n("i", {
staticClass: "anticon anticon-info-circle ant-alert-icon"
}), e._v("\n 已选择\n "), n("a", {
staticStyle: {
"font-weight": "600"
}
}, [e._v(e._s(e.selectedRowKeys.length))]), e._v("\n 项\n "), n("a", {
staticStyle: {
"margin-left": "24px"
},
on: {
click: e.onClearSelected
}
}, [e._v("清空")])]), n("a-table", {
})], 1)], 1) : e._e()], 1), n("div", [ n("a-table", {
ref: "table",
attrs: {
size: "middle",
@@ -73084,6 +72976,7 @@
this.onlineUrlTitle = "", this.onlineUrlVisible = !1
},
handleOnlineUrlShow: function(e) {
"erp" === e.themeTemplate ? this.onlineUrl = "/online/cgformErpList/".concat(e.id) : "innerTable" === e.themeTemplate ?
this.onlineUrl = "/online/cgformInnerTableList/".concat(e.id) : "tab" === e.themeTemplate ? this.onlineUrl =
"/online/cgformTabList/".concat(e.id) : "Y" == e.isTree ? this.onlineUrl = "/online/cgformTreeList/".concat(
@@ -8,9 +8,9 @@
-->
</div>
<div class="copyright">
Copyright
copyright
<a-icon type="copyright"/>
2022 <span></span>
2023 hzwl&syxy design center <span></span>
</div>
</div>
</template>
@@ -23,8 +23,8 @@ export default {
<style lang="less" scoped>
.footer {
padding: 0 16px;
margin: 48px 0 24px;
//padding: 0 16px;
//margin: 48px 0 24px;
text-align: center;
.links {
+45 -6
View File
@@ -17,8 +17,18 @@
:type="collapsed ? 'menu-unfold' : 'menu-fold'"
@click="toggle"/>
<span v-if="device === 'desktop'">欢迎进入 Jero-Boot 平台</span>
<span v-else>Jero-Boot</span>
<!-- <span v-if="device === 'desktop'">欢迎进入 Jero-Boot 平台</span>-->
<!-- <span v-else>Jero-Boot</span>-->
<span class='bread'>
<a-breadcrumb class="breadcrumb">
<a-breadcrumb-item v-for="(item, index) in breadList" :key="index">
<router-link v-if="item.name !== name" :to="{ path: item.path }">
{{ item.meta.title }}
</router-link>
<span v-else>{{ item.meta.title }}</span>
</a-breadcrumb-item>
</a-breadcrumb>
</span>
<user-menu :theme="theme"/>
</div>
@@ -26,7 +36,7 @@
<div v-else :class="['top-nav-header-index', theme]">
<div class="header-index-wide">
<div class="header-index-left" :style="topMenuStyle.headerIndexLeft">
<logo class="top-nav-header" :show-title="device !== 'mobile'" :style="topMenuStyle.topNavHeader"/>
<!-- <logo class="top-nav-header" :show-title="device !== 'mobile'" :style="topMenuStyle.topNavHeader"/>-->
<div v-if="device !== 'mobile'" :style="topMenuStyle.topSmenuStyle">
<s-menu
mode="horizontal"
@@ -34,6 +44,7 @@
:theme="theme"
@updateMenuTitle="handleUpdateMenuTitle"
></s-menu>
</div>
<a-icon
v-else
@@ -90,6 +101,7 @@ export default {
},
data () {
return {
breadList: [],
headerBarFixed: false,
// update-begin--author:sunjianlei---date:20190508------for: 顶部导航栏过长时显示更多按钮-----
topMenuStyle: {
@@ -113,6 +125,9 @@ export default {
if (newVal === 'topmenu') {
this.buildTopMenuStyle()
}
},
$route () {
this.getBreadcrumb()
}
},
// update-end--author:sunjianlei---date:20190508------for: 顶部导航栏过长时显示更多按钮-----
@@ -122,9 +137,21 @@ export default {
if (this.mode === 'topmenu') {
this.buildTopMenuStyle()
}
this.getBreadcrumb()
// update-end--author:sunjianlei---date:20190508------for: 顶部导航栏过长时显示更多按钮-----
},
methods: {
getBreadcrumb () {
this.breadList = []
// this.breadList.push({name: 'index', path: '/dashboard/', meta: {title: '首页'}})
this.name = this.$route.name
this.$route.matched.forEach((item) => {
// item.name !== 'index' && this.breadList.push(item)
this.breadList.push(item)
})
},
handleScroll () {
if (this.autoHideHeader) {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
@@ -168,9 +195,20 @@ export default {
<style lang="less" scoped>
/* update_begin author:scott date:20190220 for: 缩小首页布局顶部的高度*/
@height: 59px;
@height: 56px;
.layout {
.bread {
display: inline-block;
.ant-breadcrumb {
a {
color:#898989;
}
span{
color: #1D2129;
}
}
}
.top-nav-header-index {
@@ -192,9 +230,10 @@ export default {
.header {
z-index: 2;
color: white;
color: #333;
height: @height;
background-color: @primary-color;
//background-color: @primary-color;
background-color: #fff;
transition: background 300ms;
/* dark 样式 */
+53 -3
View File
@@ -197,7 +197,9 @@ export default {
filter: invert(80%);
}
}
.ant-card-body {
padding: 16px 16px 0 !important;
}
.layout {
min-height: 100vh !important;
overflow-x: hidden;
@@ -326,7 +328,39 @@ export default {
.user-wrapper {
float: right;
height: 100%;
.small-action {
cursor: pointer;
padding: 0 5px;
display: inline-block;
transition: all .3s;
height: 70%;
line-height: 46px;
&.action-full {
height: 100%;
}
&:hover {
background: rgba(255, 255, 255, 0.3);
}
.avatar {
margin: 20px 10px 20px 0;
color: #1890ff;
background: hsla(0, 0%, 100%, .85);
vertical-align: middle;
}
.icon {
font-size: 16px;
padding: 4px;
}
.anticon {
color: inherit;
}
}
.action {
cursor: pointer;
padding: 0 14px;
@@ -654,7 +688,7 @@ export default {
.ant-form-item {
display: flex;
margin-bottom: 24px;
margin-bottom: 12px;
margin-right: 0;
.ant-form-item-control-wrapper {
@@ -677,7 +711,7 @@ export default {
.table-page-search-submitButtons {
display: block;
margin-bottom: 24px;
margin-bottom: 12px;
white-space: nowrap;
}
@@ -693,4 +727,20 @@ export default {
}
}
}
//
.resetBtn {
margin-left: 12px !important;
}
//表格的样式
.ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-tbody > tr > td {
padding: 9px 8px !important;
}
.ant-table-tbody .ant-table-row td {
padding-top: 9px !important;
padding-bottom: 9px !important;
}
.ant-table-thead > tr > th, .ant-table-tbody > tr > td {
padding: 9px 16px !important;
overflow-wrap: break-word;
}
</style>
+8 -8
View File
@@ -1,14 +1,14 @@
<template>
<div class="page-header">
<div class="page-header-index-wide">
<a-breadcrumb class="breadcrumb">
<a-breadcrumb-item v-for="(item, index) in breadList" :key="index">
<router-link v-if="item.name !== name" :to="{ path: item.path }">
{{ item.meta.title }}
</router-link>
<span v-else>{{ item.meta.title }}</span>
</a-breadcrumb-item>
</a-breadcrumb>
<!-- <a-breadcrumb class="breadcrumb">-->
<!-- <a-breadcrumb-item v-for="(item, index) in breadList" :key="index">-->
<!-- <router-link v-if="item.name !== name" :to="{ path: item.path }">-->
<!-- {{ item.meta.title }}-->
<!-- </router-link>-->
<!-- <span v-else>{{ item.meta.title }}</span>-->
<!-- </a-breadcrumb-item>-->
<!-- </a-breadcrumb>-->
<div class="detail">
<div class="main" v-if="!$route.meta.hiddenHeaderContent">
@@ -124,4 +124,7 @@ export default {
.page-header[data-v-6740ec88] {
margin: 0 24px 0;
}
.ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-thead > tr > th, .ant-table-middle > .ant-table-content > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-body > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-scroll > .ant-table-body > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-header > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-left > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-tbody > tr > td, .ant-table-middle > .ant-table-content > .ant-table-fixed-right > .ant-table-body-outer > .ant-table-body-inner > table > .ant-table-tbody > tr > td {
padding: 9px 8px !important;
}
</style>
+4 -3
View File
@@ -21,7 +21,7 @@ export default {
props: {
title: {
type: String,
default: 'Jero-Boot Pro',
default: 'Design System',
required: false
},
showTitle: {
@@ -48,7 +48,7 @@ export default {
line-height: @height !important;
box-shadow: none !important;
transition: background 300ms;
border-bottom: 1px solid rgba(255,255,255,0.08);
a {
color: white;
&:hover {
@@ -58,7 +58,8 @@ export default {
}
&.light .logo {
background-color: @primary-color;
//background-color: @primary-color;
background-color: #001529;
}
}
</style>
+47 -15
View File
@@ -2,16 +2,19 @@
<div class="user-wrapper" :class="theme">
<!-- update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航 -->
<!-- update-begin author:sunjianlei date:20191@20 for: 解决全局样式冲突的问题 -->
<span class="action" @click="showClick">
<a-icon type="search"></a-icon>
</span>
<!-- <span class="action" @click="showClick">-->
<!-- <a-icon type="search"></a-icon>-->
<!-- </span>-->
<!-- update-begin author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框 -->
<component :is="searchMenuComp" v-show="searchMenuVisible || isMobile()" class="borders" :visible="searchMenuVisible" title="搜索菜单" :footer="null" @cancel="searchMenuVisible=false">
<a-select
<!-- <component :is="searchMenuComp" v-show="searchMenuVisible || isMobile()" class="borders" :visible="searchMenuVisible" title="搜索菜单" :footer="null" @cancel="searchMenuVisible=false">-->
<span class='search-box'>
<a-icon type='search' />
</span>
<a-select
class="search-input"
showSearch
:showArrow="false"
placeholder="搜索菜单"
placeholder="请输入搜索内容"
optionFilterProp="children"
:filterOption="filterOption"
:open="isMobile()?true:null"
@@ -20,9 +23,10 @@
@change="searchMethods"
@blur="hiddenClick"
>
<a-select-option v-for="(site,index) in searchMenuOptions" :key="index" :value="site.id">{{site.meta.title}}</a-select-option>
</a-select>
</component>
<!-- </component>-->
<!-- update-end author:sunjianlei date:20200219 for: 菜单搜索改为动态组件,在手机端呈现出弹出框 -->
<!-- update-end author:sunjianlei date:20191220 for: 解决全局样式冲突的问题 -->
<!-- update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航 -->
@@ -32,11 +36,18 @@
</a>
</span>
<header-notice class="action"/>
<span style="padding: 12px">
<a-avatar class="avatar" size="small" :src="getAvatar()"/>
<span style="display:inline-block;padding: 0 0 0 16px">
<template v-if='getAvatar()'>
<a-avatar class="avatar" size="small" :src="getAvatar()"/>
</template>
<template v-else>
<a-avatar :size="20">
<template #icon> <a-icon type="user"></a-icon></template>
</a-avatar>
</template>
</span>
<a-dropdown>
<span class="action">
<span class=" small-action">
<span v-if="isDesktop()">欢迎您,{{ nickname() }}</span>
</span>
<a-menu slot="overlay" class="user-dropdown-menu-wrapper">
@@ -103,7 +114,7 @@ import { mixinDevice } from '@/utils/mixin.js'
import { getFileAccessHttpUrl, getAction } from '@/api/manage'
import Vue from 'vue'
import { UI_CACHE_DB_DICT_DATA } from '@/store/mutation-types'
import { UserOutlined } from '@ant-design/icons-vue';
export default {
name: 'UserMenu',
mixins: [mixinDevice],
@@ -117,6 +128,7 @@ export default {
}
},
components: {
UserOutlined,
HeaderNotice,
UserPassword,
DepartSelect,
@@ -263,18 +275,32 @@ export default {
</script>
<style lang="less" scoped>
.search-box {
display: inline-block;
transition: all 0.3s;
height: 30px;
width: 25px;
margin-top: 0px;
line-height: 28px;
background: #F7F8FA;
text-align: right;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
/* update_begin author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/
/* update-begin author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */
.user-wrapper .search-input {
width: 180px;
width: 210px;
color: inherit;
margin-right: 8px;
/deep/ .ant-select-selection {
background-color: inherit;
background-color: #F7F8FA !important;
border: 0;
border-bottom: 1px solid white;
color: #86909C ;
&__placeholder, &__field__placeholder {
color: inherit;
color: #86909C ;
}
}
}
@@ -282,7 +308,13 @@ export default {
/* update_end author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/
</style>
<style scoped>
<style lang="less" scoped>
.ant-avatar {
background-color: #fff;
color: #333 !important;
border: 1px solid #333;
vertical-align: sub;
}
.logout_title {
color: inherit;
text-decoration: none;
+58 -21
View File
@@ -15,21 +15,30 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="旧密码">
<a-input type="password" placeholder="请输入旧密码" v-decorator="[ 'oldpassword', validatorRules.oldpassword]" />
<a-input :type="passwordType1" placeholder="请输入旧密码" v-decorator="[ 'oldpassword', validatorRules.oldpassword]" >
<a-icon title="显示密码" @click="passwordType1='text'" slot="suffix" v-if="passwordType1==='password'" type="eye" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
<a-icon title="隐藏密码" @click="passwordType1='password'" slot="suffix" v-else type="eye-invisible" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
</a-input>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="新密码">
<a-input type="password" placeholder="请输入新密码" :maxLength="20" v-decorator="[ 'password', validatorRules.password]" />
<a-input :type="passwordType2" placeholder="请输入新密码" :maxLength="20" v-decorator="[ 'password', validatorRules.password]" >
<a-icon title="显示密码" @click="passwordType2='text'" slot="suffix" v-if="passwordType2==='password'" type="eye" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
<a-icon title="隐藏密码" @click="passwordType2='password'" slot="suffix" v-else type="eye-invisible" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
</a-input>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="确认新密码">
<a-input type="password" @blur="handleConfirmBlur" placeholder="请确认新密码" :maxLength="20" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/>
<a-input :type="passwordType3" @blur="handleConfirmBlur" placeholder="请确认新密码" :maxLength="20" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]">
<a-icon title="显示密码" @click="passwordType3='text'" slot="suffix" v-if="passwordType3==='password'" type="eye" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
<a-icon title="隐藏密码" @click="passwordType3='password'" slot="suffix" v-else type="eye-invisible" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
</a-input>
</a-form-item>
</a-form>
@@ -40,11 +49,17 @@
<script>
import { postAction } from '@/api/manage'
import { mapActions } from 'vuex'
import { JSEncrypt } from 'jsencrypt'
import { getRSAPublicKey } from '@/utils/encryption.js'
export default {
name: 'UserPassword',
data () {
return {
rsaPublicKey: '',
passwordType1: 'password',
passwordType2: 'password',
passwordType3: 'password',
title: '修改密码',
modalWidth: 800,
visible: false,
@@ -86,6 +101,7 @@ export default {
}
},
methods: {
...mapActions(['Logout']),
show (uname) {
if (!uname) {
this.$message.warning('当前系统无登录用户!')
@@ -104,27 +120,48 @@ export default {
this.disableSubmit = false
this.selectedRole = []
},
// 获取RSA公钥
getPublicKey () {
// 获取公钥
getRSAPublicKey().then(res => {
this.rsaPublicKey = res.result
})
},
handleOk () {
const that = this
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
const params = Object.assign({ username: this.username }, values)
console.log('修改密码提交数据', params)
postAction(this.url, params).then((res) => {
if (res.success) {
console.log(res)
that.$message.success(res.message)
that.close()
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
}
getRSAPublicKey().then(res => {
this.rsaPublicKey = res.result
this.form.validateFields((err, values) => {
if (!err) {
that.confirmLoading = true
const params = Object.assign({ username: this.username, rsaPublicKey:this.rsaPublicKey}, values)
console.log('修改密码提交数据', params)
const encrypt = new JSEncrypt()
encrypt.setPublicKey(this.rsaPublicKey)
// 公钥加密
params.confirmpassword = encrypt.encrypt(values.confirmpassword)
params.password = encrypt.encrypt(values.password)
params.oldpassword = encrypt.encrypt(values.oldpassword)
postAction(this.url, params).then((res) => {
if (res.success) {
console.log(res)
that.$message.success(res.message)
that.close()
that.Logout().then(()=>{
window.location.replace('/user/login')
})
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
})
}
})
})
},
validateToNextPassword (rule, value, callback) {
const form = this.form
+1
View File
@@ -74,6 +74,7 @@ export const JeroListMixin = {
}
},
methods: {
loadData (arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
+8 -8
View File
@@ -41,12 +41,12 @@
</template>
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a @click="handleToggleSearch" style="margin-right: 28px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</a-col>
</span>
</a-row>
@@ -79,9 +79,9 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{-->
<!-- selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<span style="float:right;">
<a @click="loadData()"><a-icon type="sync" />刷新</a>
<a-divider type="vertical" />
@@ -23,7 +23,7 @@
<a-col :md="6" :sm="24" >
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -49,10 +49,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -177,7 +177,7 @@ export default {
margin-left: 3px
}
.ant-card-body .table-operator{
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td{
padding-top:15px;
@@ -23,7 +23,7 @@
<a-col :md="6" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -50,15 +50,15 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i>
<span>已选择</span>
<a style="font-weight: 600">
{{ selectedRowKeys.length }}
</a>
<span>项</span>
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i>-->
<!-- <span>已选择</span>-->
<!-- <a style="font-weight: 600">-->
<!-- {{ selectedRowKeys.length }}-->
<!-- </a>-->
<!-- <span>项</span>-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -184,7 +184,7 @@ export default {
<style scoped>
.ant-card-body .table-operator {
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td {
+1 -1
View File
@@ -267,7 +267,7 @@ export default {
</script>
<style scoped>
.ant-card-body .table-operator{
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td{
padding-top:15px;
+1 -1
View File
@@ -646,7 +646,7 @@ export default {
</script>
<style lang="less" scoped>
.ant-card-body .table-operator {
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td {
+6 -6
View File
@@ -23,7 +23,7 @@
<a-col :md="6" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -50,10 +50,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -233,7 +233,7 @@ export default {
</script>
<style scoped>
.ant-card-body .table-operator {
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td {
@@ -20,7 +20,7 @@
<a-col :md="8" :sm="24">
<span class="table-page-search-submitButtons">
<a-button type="primary">查询</a-button>
<a-button style="margin-left: 8px">重置</a-button>
<a-button class="resetBtn">重置</a-button>
</span>
</a-col>
</a-row>
@@ -49,12 +49,12 @@
</template>
<a-col :md="!advanced && 8 || 24" :sm="24">
<span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
<a-button type="primary">查询</a-button>
<a-button style="margin-left: 8px">重置</a-button>
<a @click="toggleAdvanced" style="margin-left: 8px">
<a @click="toggleAdvanced" style="margin-right: 28px">
{{ advanced ? '收起' : '展开' }}
<a-icon :type="advanced ? 'up' : 'down'" />
</a>
<a-button type="primary">查询</a-button>
<a-button class="resetBtn">重置</a-button>
</span>
</a-col>
</a-row>
+3 -3
View File
@@ -49,12 +49,12 @@
</template>
<a-col :md="!advanced && 8 || 24" :sm="24">
<span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
<a-button type="primary">查询</a-button>
<a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
<a @click="toggleAdvanced" style="margin-left: 8px">
<a @click="toggleAdvanced" style="margin-right: 28px">
{{ advanced ? '收起' : '展开' }}
<a-icon :type="advanced ? 'up' : 'down'"/>
</a>
<a-button type="primary">查询</a-button>
<a-button class="resetBtn" @click="resetSearchForm">重置</a-button>
</span>
</a-col>
</a-row>
@@ -20,10 +20,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -23,7 +23,7 @@
<a-col :md="6" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -50,10 +50,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -247,7 +247,7 @@ export default {
</script>
<style scoped>
.ant-card-body .table-operator {
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td {
@@ -20,10 +20,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -15,21 +15,21 @@
<j-input placeholder="请输入发送内容" v-model="queryParam.esContent"></j-input>
</a-form-item>
</a-col>
<template v-if="toggleSearchStatus">
<!-- <template v-if="toggleSearchStatus">-->
<a-col :md="6" :sm="8">
<a-form-item label="接收人">
<j-input placeholder="请输入接收人" v-model="queryParam.esReceiver"></j-input>
</a-form-item>
</a-col>
</template>
<!-- </template>-->
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
<!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
<!-- {{ toggleSearchStatus ? '收起' : '展开' }}-->
<!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
<!-- </a>-->
</span>
</a-col>
@@ -39,11 +39,11 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" v-show="show" type="primary" icon="plus">新增</a-button>
<a-button type="primary" v-show="show" icon="download" @click="handleExportXls('消息')">导出</a-button>
<a-upload v-show="show" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" :before-upload='beforeUpload'
@change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button>
<a-button @click="handleAdd" v-show="show" type="default" icon="plus">新增</a-button>
<a-button type="default" v-show="show" icon="download" @click="handleExportXls('消息')">导出</a-button>
<a-upload v-show="show" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
@change="handleImportExcel" :before-upload='beforeUpload'>
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
@@ -60,11 +60,11 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{-->
<!-- selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -92,7 +92,7 @@
<a-menu-item v-show="show">
<a @click="handleEdit(record)">编辑</a>
</a-menu-item>
<a-menu-item>
<a-menu-item v-has="'message:del'">
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
@@ -206,7 +206,7 @@ export default {
}
.ant-card-body .table-operator {
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td {
@@ -16,21 +16,21 @@
<j-input placeholder="请输入模板内容" v-model="queryParam.templateContent"></j-input>
</a-form-item>
</a-col>
<template v-if="toggleSearchStatus">
<!-- <template v-if="toggleSearchStatus">-->
<a-col :md="6" :sm="8">
<a-form-item label="模板标题">
<j-input placeholder="请输入模板标题" v-model="queryParam.templateName"></j-input>
</a-form-item>
</a-col>
</template>
<!-- </template>-->
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
<!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
<!-- {{ toggleSearchStatus ? '收起' : '展开' }}-->
<!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
<!-- </a>-->
</span>
</a-col>
@@ -40,11 +40,11 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('消息模板')">导出</a-button>
<a-button @click="handleAdd" type="default" icon="plus" v-has="'message:template:add'">新增</a-button>
<a-button type="default" icon="download" @click="handleExportXls('消息模板')" v-has="'message:template:export'">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
@change="handleImportExcel" :before-upload='beforeUpload' accept='.xls,xlsx'>
<a-button type="primary" icon="import">导入</a-button>
@change="handleImportExcel" :before-upload='beforeUpload'>
<a-button type="default" icon="import" v-has="'message:template:import'">导入</a-button>
</a-upload>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
@@ -61,11 +61,11 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{-->
<!-- selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -85,18 +85,18 @@
</span>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a>
<a @click="handleEdit(record)" v-has="'message:template:edit'">编辑</a>
<a-divider type="vertical"/>
<a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
<a-menu slot="overlay">
<a-menu-item>
<a-menu-item v-has="'message:template:del'">
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
<a-menu-item>
<a-menu-item v-has="'message:template:send'">
<a @click="handleTest(record)">发送测试</a>
</a-menu-item>
</a-menu>
@@ -215,7 +215,7 @@ export default {
}
.ant-card-body .table-operator {
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td {
@@ -17,7 +17,7 @@
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
</a-row>
@@ -44,12 +44,12 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
style="font-weight: 600">{{
selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a-->
<!-- style="font-weight: 600">{{-->
<!-- selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
+8 -8
View File
@@ -16,9 +16,9 @@
</a-col>
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
<a-button type="primary" @click="searchQuery">查询</a-button>
<a-button style="margin-left: 8px" @click="searchReset">重置</a-button>
<a-col :md="6" :sm="8">
<a-button type="primary" icon="search" @click="searchQuery">查询</a-button>
<a-button type="default" class="resetBtn" icon="reload" @click="searchReset">重置</a-button>
</a-col>
</span>
</a-row>
@@ -27,16 +27,16 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleCompare()" type="primary" icon="plus">数据比较</a-button>
<a-button @click="handleCompare()" type="default" icon="plus">数据比较</a-button>
</div>
<!--table区 -->
<div>
<!--已选择的清空 -->
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
size="middle"
+12 -12
View File
@@ -5,22 +5,22 @@
<!-- 按钮操作区域 -->
<a-row style="margin-left: 14px">
<a-button @click="handleAdd(1)" type="primary">添加部门</a-button>
<a-button @click="handleAdd(2)" type="primary">添加下级</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('部门信息')">导出</a-button>
<a-button @click="handleAdd(1)" type="default">添加部门</a-button>
<a-button @click="handleAdd(2)" type="default">添加下级</a-button>
<a-button type="default" icon="download" @click="handleExportXls('部门信息')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" :before-upload='beforeUpload'>
<a-button type="primary" icon="import">导入</a-button>
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<a-button title="删除多条数据" @click="batchDel" type="default">批量删除</a-button>
<!--<a-button @click="refresh" type="default" icon="reload" :loading="loading">刷新</a-button>-->
</a-row>
<div style="background: #fff;padding-left:16px;height: 100%; margin-top: 5px">
<a-alert type="info" :showIcon="true">
<div slot="message">
当前选择<span v-if="this.currSelected.title">{{ getCurrSelectedTitle() }}</span>
<a v-if="this.currSelected.title" style="margin-left: 10px" @click="onClearSelected">取消选择</a>
</div>
</a-alert>
<!-- <a-alert type="info" :showIcon="true">-->
<!-- <div slot="message">-->
<!-- 当前选择<span v-if="this.currSelected.title">{{ getCurrSelectedTitle() }}</span>-->
<!-- <a v-if="this.currSelected.title" style="margin-left: 10px" @click="onClearSelected">取消选择</a>-->
<!-- </div>-->
<!-- </a-alert>-->
<a-input-search @search="onSearch" style="width:100%;margin-top: 10px" placeholder="请输入部门名称"/>
<!-- -->
<a-col :md="10" :sm="24">
@@ -111,7 +111,7 @@
</template>
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="排序">
<a-input-number v-model="model.departOrder" />
<a-input-number :max="1000000" :min="1" v-model="model.departOrder" />
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="手机号">
<a-input placeholder="请输入手机号" v-model="model.mobile" />
@@ -551,7 +551,7 @@ export default {
</script>
<style scoped>
.ant-card-body .table-operator {
margin: 15px;
margin-bottom: 4px;
}
.anty-form-btn {
+6 -6
View File
@@ -5,11 +5,11 @@
<!-- 按钮操作区域 -->
<a-row style="margin: 0 0 0 14px" class="table-operator">
<a-button @click="handleAdd(1)" type="primary">添加部门</a-button>
<a-button @click="handleAdd(2)" type="primary">添加下级</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('部门信息')">导出</a-button>
<a-button @click="handleAdd(1)" type="default">添加部门</a-button>
<a-button @click="handleAdd(2)" type="default">添加下级</a-button>
<a-button type="default" icon="download" @click="handleExportXls('部门信息')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" :before-upload='beforeUpload'>
<a-button type="primary" icon="import">导入</a-button>
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<j-third-app-button biz-type="depart" :selected-row-keys="selectedRowKeys" syncToApp @sync-finally="onSyncFinally"/>
<a-button title="删除多条数据" @click="batchDel" type="default">批量删除</a-button>
@@ -105,7 +105,7 @@
</template>
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="排序" prop="departOrder">
<a-input-number v-model="model.departOrder"/>
<a-input-number :max="1000000" :min="1" v-model="model.departOrder"/>
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="手机号" prop="mobile">
<a-input placeholder="请输入手机号" v-model="model.mobile"/>
@@ -616,7 +616,7 @@ export default {
</style>
<style scoped>
.ant-card-body .table-operator {
margin: 15px;
margin-bottom: 4px;
}
.anty-form-btn {
+1 -1
View File
@@ -37,7 +37,7 @@
<a-col :md="7" :sm="24">
<span style="float: left;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery">搜索</a-button>
<a-button type="primary" @click="searchReset" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset" class="resetBtn">重置</a-button>
</span>
</a-col>
</a-row>
+10 -10
View File
@@ -5,34 +5,34 @@
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="12">
<a-col :md="7" :sm="8">
<a-col :md="6" :sm="8">
<a-form-item label="字典名称" :labelCol="{span: 6}" :wrapperCol="{span: 14, offset: 1}">
<j-input placeholder="请输入字典名称" v-model="queryParam.dictName"></j-input>
</a-form-item>
</a-col>
<a-col :md="7" :sm="8">
<a-col :md="6" :sm="8">
<a-form-item label="字典编号" :labelCol="{span: 6}" :wrapperCol="{span: 14, offset: 1}">
<j-input placeholder="请输入字典编号" v-model="queryParam.dictCode"></j-input>
</a-form-item>
</a-col>
<a-col :md="7" :sm="8">
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
<div class="table-operator" style="border-top: 5px">
<a-button @click="handleAdd" type="primary" icon="plus" v-has="'sys:dict:operation'">添加</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('字典信息')" v-has="'sys:dict:operation'">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :before-upload='beforeUpload' :action="importExcelUrl" @change="handleImportExcel" v-has="'sys:dict:operation'">
<a-button type="primary" icon="import">导入</a-button>
<a-button @click="handleAdd" type="default" icon="plus" v-has="'sys:dict:operation'">添加</a-button>
<a-button type="default" icon="download" @click="handleExportXls('字典信息')" v-has="'sys:dict:operation'">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" :before-upload='beforeUpload' @change="handleImportExcel" v-has="'sys:dict:operation'">
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<a-button type="primary" icon="sync" @click="refleshCache()">刷新缓存</a-button>
<a-button type="default" icon="sync" @click="refleshCache()">刷新缓存</a-button>
<a-button type="primary" icon="hdd" @click="openDeleteList">回收站</a-button>
<a-button type="default" icon="hdd" @click="openDeleteList">回收站</a-button>
</div>
<a-table
@@ -16,11 +16,11 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{
selectedRowKeys.length }}</a>项&nbsp;&nbsp;
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{-->
<!-- selectedRowKeys.length }}</a>项&nbsp;&nbsp;-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
:columns="columns"
@@ -28,7 +28,7 @@
<a-col :md="7" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
</a-row>
+8 -8
View File
@@ -3,12 +3,12 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button @click="handleAdd" type="default" icon="plus">新增</a-button>
<a-button
@click="batchDel"
v-if="selectedRowKeys.length > 0"
ghost
type="primary"
type="default"
icon="delete">批量删除
</a-button>
</div>
@@ -16,11 +16,11 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{
selectedRowKeys.length }}</a>项&nbsp;&nbsp;
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{-->
<!-- selectedRowKeys.length }}</a>项&nbsp;&nbsp;-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
:columns="columns"
+9 -9
View File
@@ -24,7 +24,7 @@
<a-col :md="6" :sm="10" >
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -34,10 +34,10 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('定时任务信息')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" :before-upload='beforeUpload'>
<a-button type="primary" icon="import">导入</a-button>
<a-button @click="handleAdd" type="default" icon="plus">新增</a-button>
<a-button type="default" icon="download" @click="handleExportXls('定时任务信息')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :before-upload='beforeUpload' :action="importExcelUrl" @change="handleImportExcel">
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
@@ -49,10 +49,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
+17 -17
View File
@@ -7,7 +7,7 @@
<!-- 搜索区域 -->
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<a-col :md="6" :sm="8">
<a-form-item label="角色名称" :labelCol="{span: 5}" :wrapperCol="{span: 18, offset: 1}">
<j-input placeholder="" v-model="queryParam.roleName"></j-input>
</a-form-item>
@@ -22,17 +22,17 @@
</a-col>
-->
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<a-col :md="6" :sm="24">
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 21px">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<!-- 操作按钮区域 -->
<div class="table-operator" style="margin: 5px 0 10px 2px">
<a-button @click="handleAdd" type="primary" icon="plus">新建角色</a-button>
<div class="table-operator" style="margin: 0 0 4px 2px">
<a-button @click="handleAdd" type="default" icon="plus">新建角色</a-button>
<!--<a-button @click="handleEdit(model1)" type="primary" icon="plus">角色编辑</a-button>-->
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>-->
@@ -40,13 +40,13 @@
<!-- <a-button type="primary" icon="download" @click="handleExportXls('角色管理')">导出</a-button>-->
</div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon">
</i> 已选择 <a><b>{{ selectedRowKeys1.length }}</b></a>项
<a style="margin-left: 24px" @click="onClearSelected1">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon">-->
<!-- </i> 已选择 <a><b>{{ selectedRowKeys1.length }}</b></a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected1">清空</a>-->
<!-- </div>-->
<div style="margin-top: 15px">
<div >
<a-table
style="height:500px"
ref="table"
@@ -107,7 +107,7 @@
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="9" :sm="24">
<a-button type="primary" @click="searchQuery2" icon="search" style="margin-left: 21px">查询</a-button>
<a-button type="primary" @click="searchReset2" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset2" icon="reload" class="resetBtn">重置</a-button>
</a-col>
</span>
@@ -134,11 +134,11 @@
</div>
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
selectedRowKeys2.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected2">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{-->
<!-- selectedRowKeys2.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected2">清空</a>-->
<!-- </div>-->
<a-table
style="height:500px"
ref="table2"
@@ -6,15 +6,15 @@
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :span="6">
<a-col :md="6" :sm="8">
<a-form-item label="标题">
<a-input placeholder="请输入标题" v-model="queryParam.titile"></a-input>
</a-form-item>
</a-col>
<a-col :span="8">
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -24,7 +24,7 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button @click="handleAdd" type="default" icon="plus" v-has="'annount:cement:add'">新增</a-button>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel">
@@ -40,10 +40,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -58,23 +58,23 @@
@change="handleTableChange">
<span slot="action" slot-scope="text, record">
<a v-if="(record.sendStatus + '') === '0'" @click="handleEdit(record)">编辑</a>
<a v-has="'annount:cement:edit'" v-if="(record.sendStatus + '') === '0'" @click="handleEdit(record)">编辑</a>
<a-divider type="vertical" v-if="(record.sendStatus + '') === '0'"/>
<a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
<a-menu slot="overlay">
<a-menu-item v-if="(record.sendStatus + '') !== '1'">
<a-menu-item v-if="(record.sendStatus + '') !== '1'" v-has="'annount:cement:del'">
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
<a >删除</a>
</a-popconfirm>
</a-menu-item>
<a-menu-item v-if="(record.sendStatus + '') === '0'">
<a-menu-item v-if="(record.sendStatus + '') === '0'" v-has="'annount:cement:send'">
<a-popconfirm title="确定发布吗?" @confirm="() => releaseData(record.id)">
<a>发布</a>
</a-popconfirm>
</a-menu-item>
<a-menu-item v-if="(record.sendStatus + '') === '1'">
<a-menu-item v-if="(record.sendStatus + '') === '1'" v-has="'annount:cement:reback'">
<a-popconfirm title="确定撤销吗?" @confirm="() => reovkeData(record.id)">
<a>撤销</a>
</a-popconfirm>
@@ -3,10 +3,10 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus" v-has="'sys:category:add'">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('分类字典')" v-has="'sys:category:export'">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" :before-upload='beforeUpload' v-has="'sys:category:import'">
<a-button type="primary" icon="import">导入</a-button>
<a-button @click="handleAdd" type="default" icon="plus" v-has="'sys:category:add'">新增</a-button>
<a-button type="default" icon="download" @click="handleExportXls('分类字典')" v-has="'sys:category:export'">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" :before-upload='beforeUpload' @change="handleImportExcel" v-has="'sys:category:import'">
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<a-dropdown v-if="selectedRowKeys.length > 0" v-has="'sys:category:del'">
<a-menu slot="overlay">
@@ -18,10 +18,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
+19 -19
View File
@@ -21,11 +21,11 @@
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
<!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
<!-- {{ toggleSearchStatus ? '收起' : '展开' }}-->
<!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
<!-- </a>-->
</span>
</a-col>
@@ -35,10 +35,10 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('编码校验规则')">导出</a-button>
<a-button @click="handleAdd" type="default" icon="plus">新增</a-button>
<a-button type="default" icon="download" @click="handleExportXls('编码校验规则')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" :before-upload='beforeUpload'>
<a-button type="primary" icon="import">导入</a-button>
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
@@ -54,17 +54,17 @@
</div>
<!-- table区域-begin -->
<a-alert type="info" showIcon style="margin-bottom: 16px;">
<template slot="message">
<span>已选择</span>
<a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>
<span>项</span>
<template v-if="selectedRowKeys.length>0">
<a-divider type="vertical"/>
<a @click="onClearSelected">清空</a>
</template>
</template>
</a-alert>
<!-- <a-alert type="info" showIcon style="margin-bottom: 16px;">-->
<!-- <template slot="message">-->
<!-- <span>已选择</span>-->
<!-- <a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>-->
<!-- <span>项</span>-->
<!-- <template v-if="selectedRowKeys.length>0">-->
<!-- <a-divider type="vertical"/>-->
<!-- <a @click="onClearSelected">清空</a>-->
<!-- </template>-->
<!-- </template>-->
<!-- </a-alert>-->
<a-table
ref="table"
+12 -12
View File
@@ -21,7 +21,7 @@
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -31,10 +31,10 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('多数据源管理')">导出</a-button>
<a-button @click="handleAdd" type="default" icon="plus">新增</a-button>
<a-button type="default" icon="download" @click="handleExportXls('多数据源管理')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" :before-upload='beforeUpload'>
<a-button type="primary" icon="import">导入</a-button>
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
@@ -52,14 +52,14 @@
<!-- table区域-begin -->
<div>
<a-alert type="info" showIcon style="margin-bottom: 16px;">
<template slot="message">
<span>已选择</span>
<a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>
<span>项</span>
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</template>
</a-alert>
<!-- <a-alert type="info" showIcon style="margin-bottom: 16px;">-->
<!-- <template slot="message">-->
<!-- <span>已选择</span>-->
<!-- <a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>-->
<!-- <span>项</span>-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </template>-->
<!-- </a-alert>-->
<a-table
ref="table"
+15 -15
View File
@@ -18,7 +18,7 @@
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
</a-row>
@@ -27,10 +27,10 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('填值规则')">导出</a-button>
<a-button @click="handleAdd" type="default" icon="plus">新增</a-button>
<a-button type="default" icon="download" @click="handleExportXls('填值规则')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" :before-upload='beforeUpload'>
<a-button type="primary" icon="import">导入</a-button>
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
@@ -46,17 +46,17 @@
</div>
<!-- table区域-begin -->
<a-alert type="info" showIcon style="margin-bottom: 16px;">
<template slot="message">
<span>已选择</span>
<a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>
<span>项</span>
<template v-if="selectedRowKeys.length>0">
<a-divider type="vertical"/>
<a @click="onClearSelected">清空</a>
</template>
</template>
</a-alert>
<!-- <a-alert type="info" showIcon style="margin-bottom: 16px;">-->
<!-- <template slot="message">-->
<!-- <span>已选择</span>-->
<!-- <a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>-->
<!-- <span>项</span>-->
<!-- <template v-if="selectedRowKeys.length>0">-->
<!-- <a-divider type="vertical"/>-->
<!-- <a @click="onClearSelected">清空</a>-->
<!-- </template>-->
<!-- </template>-->
<!-- </a-alert>-->
<a-table
ref="table"
@@ -2,7 +2,7 @@
<a-card :bordered="false">
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="showModal(null)" type="primary" icon="plus">新增</a-button>
<a-button @click="showModal(null)" type="default" icon="plus">新增</a-button>
</div>
<div>
<a-table
@@ -12,7 +12,7 @@
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
</a-row>
@@ -22,10 +22,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -49,7 +49,7 @@
<span slot="action" slot-scope="text, record">
<a-popconfirm title="强制退出用户" @confirm="() => handleForce(record)">
<a-button type="danger">强退</a-button>
<a>强退</a>
</a-popconfirm>
</span>
+5 -5
View File
@@ -11,7 +11,7 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button @click="handleAdd" type="default" icon="plus">新增</a-button>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
@@ -22,10 +22,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -5,21 +5,21 @@
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :span="6">
<a-col :md="6" :sm="8">
<a-form-item label="标题">
<a-input placeholder="请输入标题" v-model="queryParam.titile"></a-input>
</a-form-item>
</a-col>
<a-col :span="6">
<a-col :md="6" :sm="8">
<a-form-item label="发布人">
<a-input placeholder="请输入发布人" v-model="queryParam.sender"></a-input>
</a-form-item>
</a-col>
<a-col :span="8" >
<a-col :md="6" :sm="8" >
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -28,7 +28,7 @@
</div>
<div class="table-operator">
<a-button type="primary" @click="readAll" icon="book">全部标注已读</a-button>
<a-button type="default" @click="readAll" icon="book">全部标注已读</a-button>
</div>
<a-table
@@ -181,7 +181,7 @@ export default {
</script>
<style scoped>
.ant-card-body .table-operator{
margin-bottom: 18px;
margin-bottom: 4px;
}
.anty-row-operator button{margin: 0 5px}
.ant-btn-danger{background-color: #ffffff}
@@ -189,4 +189,7 @@ export default {
.ant-modal-cust-warp{height: 100%}
.ant-modal-cust-warp .ant-modal-body{height:calc(100% - 110px) !important;overflow-y: auto}
.ant-modal-cust-warp .ant-modal-content{height:90% !important;overflow-y: hidden}
.ant-table-thead > tr > th, .ant-table-tbody > tr > td{
padding: 9px 8px !important;
}
</style>
+15 -15
View File
@@ -6,7 +6,7 @@
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="12">
<a-col :md="6" :sm="8">
<a-form-item label="账号">
<j-input placeholder="输入账号模糊查询" v-model="queryParam.username"></j-input>
</a-form-item>
@@ -22,13 +22,13 @@
</a-form-item>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<a-form-item label="真实名字">
<j-input placeholder="请输入真实名字" v-model="queryParam.realname"></j-input>
</a-form-item>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<a-form-item label="手机号码">
<a-input placeholder="请输入完整手机号精准查询" v-model="queryParam.phone"></a-input>
@@ -74,12 +74,12 @@
<a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
<a @click="handleToggleSearch" style="margin-right: 28px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -89,13 +89,13 @@
<!-- 操作按钮区域 -->
<div class="table-operator" style="border-top: 5px">
<a-button @click="handleAdd" type="primary" icon="plus" >添加用户</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('用户信息')">导出</a-button>
<a-button @click="handleAdd" type="default" icon="plus" >添加用户</a-button>
<a-button type="default" icon="download" @click="handleExportXls('用户信息')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" :before-upload='beforeUpload'>
<a-button type="primary" icon="import">导入</a-button>
<a-button type="default" icon="import">导入</a-button>
</a-upload>
<a-button type="primary" icon="hdd" @click="recycleBinVisible=true">回收站</a-button>
<a-button type="primary" icon="hdd" @click="roleAssignment">角色配置</a-button>
<a-button type="default" icon="hdd" @click="recycleBinVisible=true">回收站</a-button>
<a-button type="default" icon="hdd" @click="roleAssignment">角色配置</a-button>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay" @click="handleMenuClick">
<a-menu-item key="1">
@@ -121,10 +121,10 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i>已选择&nbsp;<a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项&nbsp;&nbsp;-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -27,7 +27,7 @@
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24" >
<a-button type="primary" style="left: 10px" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px;left: 10px">重置</a-button>
<a-button type="defaultdefault" @click="searchReset" icon="reload" style="margin-left: 8px;left: 10px">重置</a-button>
</a-col>
</span>
@@ -11,7 +11,7 @@
</a-form-item>
</a-col>
<a-col :md="6" :sm="10">
<a-col :md="6" :sm="8">
<a-form-item label="创建时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker
style="width: 210px"
@@ -23,18 +23,17 @@
/>
</a-form-item>
</a-col>
<a-col :md="5" :sm="8">
<a-col :md="6" :sm="8">
<a-form-item label="操作类型" style="left: 10px">
<j-dict-select-tag v-model="queryParam.operateType" placeholder="请选择操作类型" dictCode="operate_type"/>
</a-form-item>
</a-col>
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24" >
<a-button type="primary" style="left: 10px" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px;left: 10px">重置</a-button>
</a-col>
</span>
<a-col :md="6" :sm="8" >
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="default" @click="searchReset" icon="reload" class='resetBtn'>重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
@@ -127,10 +126,16 @@ export default {
align: 'center',
sorter: true
},
// {
// title: '日志类型',
// dataIndex: 'logType_dictText',
// align: 'center'
// },
{
title: '日志类型',
dataIndex: 'logType_dictText',
title: '操作类型',
dataIndex: 'operateType_dictText',
align: 'center'
},
{
title: '创建时间',
@@ -138,6 +143,7 @@ export default {
align: 'center',
sorter: true
}
],
operateColumn:
{
@@ -19,7 +19,7 @@
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 18px">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</a-col>
</span>
</a-row>
@@ -19,7 +19,7 @@
prop="departName"
:hidden="false"
:hasFeedback="true" >
<a-input id="departName" placeholder="请输入机构/部门名称" v-model="model.departName"/>
<a-input id="departName" :maxLength='100' placeholder="请输入机构/部门名称" v-model="model.departName"/>
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :hidden="seen" label="上级部门" :hasFeedback="true">
<a-tree-select
@@ -64,25 +64,25 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="传真">
<a-input placeholder="请输入传真" v-model="model.fax"/>
<a-input :maxLength='32' placeholder="请输入传真" v-model="model.fax"/>
</a-form-model-item>
<a-form-model-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="地址">
<a-input placeholder="请输入地址" v-model="model.address"/>
<a-input :maxLength='100' placeholder="请输入地址" v-model="model.address"/>
</a-form-model-item>
<a-form-model-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="排序">
<a-input-number v-model="model.departOrder"/>
<a-input-number :max="1000000" :min="1" v-model="model.departOrder"/>
</a-form-model-item>
<a-form-model-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="备注">
<a-textarea placeholder="请输入备注" v-model="model.memo"/>
<a-textarea :maxLength='200' placeholder="请输入备注" v-model="model.memo"/>
</a-form-model-item>
</a-form-model>
@@ -43,7 +43,7 @@
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="排序">
<a-input-number style="border:0;" v-model="model.departOrder"/>
<a-input-number :max="1000000" :min="1" style="border:0;" v-model="model.departOrder"/>
</a-form-model-item>
<a-form-model-item
:labelCol="labelCol"
@@ -13,17 +13,17 @@
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
<a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 18px">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="default" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<!-- 操作按钮区域 -->
<div class="table-operator" style="margin-top: -15px">
<div class="table-operator" style="">
<!--<a-button @click="handleEdit" type="primary" icon="edit" style="margin-top: 16px">用户编辑</a-button>-->
<a-button @click="handleAddUserDepart" type="primary" icon="plus">添加已有用户</a-button>
<a-button @click="handleAdd" type="primary" icon="plus" style="margin-top: 16px">新建用户</a-button>
<a-button @click="handleAddUserDepart" type="default" icon="plus">添加已有用户</a-button>
<a-button @click="handleAdd" type="default" icon="plus" >新建用户</a-button>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
@@ -40,11 +40,11 @@
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
selectedRowKeys.length }}</a>项
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{-->
<!-- selectedRowKeys.length }}</a>项-->
<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
<!-- </div>-->
<a-table
ref="table"
@@ -316,6 +316,6 @@ export default {
.table-page-search-wrapper {
margin-top: -16px;
margin-bottom: 16px;
/*margin-bottom: 16px;*/
}
</style>
@@ -20,7 +20,7 @@
<a-input :type="passwordType" placeholder="请输入登录密码" v-decorator="[ 'password', validatorRules.password]" >
<a-icon title="显示密码" @click="passwordType='text'" slot="suffix" v-if="passwordType==='password'" type="eye" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
<a-icon title="隐藏密码" @click="passwordType='password'" slot="suffix" v-else type="eye-invisible" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
<!-- <a-icon slot="prefix" type="lock" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>-->
<!-- <a-icon slot="prefix" type="lock" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>-->
</a-input>
</a-form-item>
@@ -28,7 +28,7 @@
<a-input :type="passwordType2" @blur="handleConfirmBlur" placeholder="请重新输入登录密码" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]">
<a-icon title="显示密码" @click="passwordType2='text'" slot="suffix" v-if="passwordType2==='password'" type="eye" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
<a-icon title="隐藏密码" @click="passwordType2='password'" slot="suffix" v-else type="eye-invisible" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
<!-- <a-icon slot="prefix" type="lock" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>-->
<!-- <a-icon slot="prefix" type="lock" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>-->
</a-input>
</a-form-item>
@@ -44,8 +44,8 @@ export default {
name: 'PasswordModal',
data () {
return {
passwordType: 'password',
passwordType2: 'password',
passwordType: 'password',
visible: false,
confirmLoading: false,
confirmDirty: false,
@@ -73,7 +73,6 @@
</a-form-model-item>
<a-form-model-item
v-show="!show"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
prop="perms"
@@ -114,7 +113,7 @@
:wrapperCol="wrapperCol"
prop="sortNo"
label="排序">
<a-input-number placeholder="请输入菜单排序" v-model="model.sortNo" style="width: 200px" :readOnly="disableSubmit"/>
<a-input-number :max="1000000" :min="1" placeholder="请输入菜单排序" v-model="model.sortNo" style="width: 200px" :readOnly="disableSubmit"/>
</a-form-model-item>
<a-form-model-item
@@ -21,8 +21,8 @@
<a-form-item label="性别">
<a-select v-model="queryParam.sex" placeholder="请选择性别">
<a-select-option value="">请选择性别查询</a-select-option>
<a-select-option value="1">男</a-select-option>
<a-select-option value="2">女</a-select-option>
<a-select-option value="1">男</a-select-option>
<a-select-option value="2">女</a-select-option>
</a-select>
</a-form-item>
</a-col>
@@ -45,7 +45,7 @@
<a-select v-model="queryParam.status" placeholder="请选择状态">
<a-select-option value="">请选择状态</a-select-option>
<a-select-option value="1">正常</a-select-option>
<a-select-option value="2">冻</a-select-option>
<a-select-option value="2">冻</a-select-option>
</a-select>
</a-form-item>
</a-col>
@@ -53,12 +53,13 @@
<a-col :span="6" >
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchByquery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
<a @click="handleToggleSearch" style="margin-right: 28px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
<a-button type="primary" @click="searchByquery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -270,7 +271,7 @@ export default {
</script>
<style scoped>
.ant-card-body .table-operator{
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td{
@@ -22,7 +22,7 @@
<a-col :span="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a-button type="primary" @click="searchReset" icon="reload" class="resetBtn">重置</a-button>
</span>
</a-col>
@@ -253,7 +253,7 @@ export default {
</script>
<style lang="less" scoped>
.ant-card-body .table-operator {
margin-bottom: 18px;
margin-bottom: 4px;
}
.ant-table-tbody .ant-table-row td {
@@ -19,7 +19,7 @@
:wrapperCol="wrapperCol"
prop="titile"
label="标题">
<a-input placeholder="请输入标题" v-model="model.titile" :readOnly="disableSubmit"/>
<a-input :maxLength='100' placeholder="请输入标题" v-model="model.titile" :readOnly="disableSubmit"/>
</a-form-model-item>
</a-col>
<a-col :span="24/2">
@@ -126,9 +126,9 @@
</a-spin>
<div class="drawer-bootom-button" v-show="!disableSubmit">
<!-- <a-popconfirm title="确定放弃编辑" @confirm="handleCancel" okText="确定" cancelText="取消">-->
<a-button style="margin-right: .8rem" @click="handleCancel">取消</a-button>
<!-- </a-popconfirm>-->
<!-- <a-popconfirm title="确定放弃编辑" @confirm="handleCancel" okText="确定" cancelText="取消">-->
<a-button style="margin-right: .8rem" @click="handleCancel">取消</a-button>
<!-- </a-popconfirm>-->
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">提交</a-button>
</div>
@@ -521,7 +521,7 @@ export default {
.drawer-bootom-button {
position: absolute;
bottom: -8px;
bottom: 0px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
@@ -530,4 +530,7 @@ export default {
background: #fff;
border-radius: 0 0 2px 2px;
}
.ant-form {
padding-bottom: 25px;
}
</style>
@@ -7,21 +7,21 @@
cancelText="关闭"
:okButtonProps="{style:{display:'none'}}"
>
<a-alert type="info" showIcon style="margin-bottom: 16px;">
<template slot="message">
<span>已选择</span>
<a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>
<span></span>
<template v-if="selectedRowKeys.length>0">
<a-divider type="vertical"/>
<a @click="handleClearSelection">清空选择</a>
<a-divider type="vertical"/>
<a @click="handleRevertBatch">批量还原</a>
<a-divider type="vertical"/>
<a @click="handleDeleteBatch">批量删除</a>
</template>
</template>
</a-alert>
<!-- <a-alert type="info" showIcon style="margin-bottom: 16px;">-->
<!-- <template slot="message">-->
<!-- <span>已选择</span>-->
<!-- <a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>-->
<!-- <span></span>-->
<!-- <template v-if="selectedRowKeys.length>0">-->
<!-- <a-divider type="vertical"/>-->
<!-- <a @click="handleClearSelection">清空选择</a>-->
<!-- <a-divider type="vertical"/>-->
<!-- <a @click="handleRevertBatch">批量还原</a>-->
<!-- <a-divider type="vertical"/>-->
<!-- <a @click="handleDeleteBatch">批量删除</a>-->
<!-- </template>-->
<!-- </template>-->
<!-- </a-alert>-->
<a-table
ref="table"
@@ -42,9 +42,9 @@
树操作 <a-icon type="up" />
</a-button>
</a-dropdown>
<!-- <a-popconfirm title="确定放弃编辑" @confirm="close" okText="确定" cancelText="取消">-->
<a-button style="margin-right: .8rem" @click="close">取消</a-button>
<!-- </a-popconfirm>-->
<!-- <a-popconfirm title="确定放弃编辑" @confirm="close" okText="确定" cancelText="取消">-->
<a-button style="margin-right: .8rem" @click="close">取消</a-button>
<!-- </a-popconfirm>-->
<a-button @click="handleSubmit(false)" type="primary" :loading="loading" ghost style="margin-right: 0.8rem">仅保存</a-button>
<a-button @click="handleSubmit(true)" type="primary" :loading="loading">保存并关闭</a-button>
</div>
+146 -116
View File
@@ -1,8 +1,19 @@
<template>
<div class="main">
<a-form v-if="!mobile" :form="form" class="user-layout-login" ref="formLogin" id="formLogin">
<div class="login-box">
<div class="login-left">
<div class="logo-image">
<!-- <img src='@/assets/logo.png' alt=''>-->
<!-- <img src='@/assets/logo_name.png' alt=''>-->
</div>
</div>
<a-form v-if="!mobile" :form="form" class="user-layout-login login-right" ref="formLogin" id="formLogin">
<div class="user-box">
<span class="title">用户登录</span>
<span class="title">账号登录</span>
<a-row>
<a-col :span="3"></a-col>
<label class="lable-font">账号</label>
</a-row>
<a-row>
<a-col :span="3"></a-col>
<a-col :span="18">
@@ -12,12 +23,15 @@
v-decorator="['username',{initialValue:'', rules: validatorRules.username.rules,validateTrigger: 'blur'}]"
type="text"
placeholder="请输入帐号">
<a-icon slot="prefix" type="user" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
</a-input>
</a-form-item>
</a-col>
<a-col :span="3"></a-col>
</a-row>
<a-row>
<a-col :span="3"></a-col>
<label class="lable-font">密码</label>
</a-row>
<a-row>
<a-col :span="3"></a-col>
<a-col :span="18">
@@ -37,6 +51,10 @@
</a-col>
<a-col :span="3"></a-col>
</a-row>
<a-row>
<a-col :span="3"></a-col>
<label class="lable-font">验证码</label>
</a-row>
<a-row style="margin-bottom: 0;">
<a-col :span="3"></a-col>
<a-col :span="12">
@@ -48,7 +66,6 @@
@change="inputCodeChange"
autocomplete="off"
placeholder="请输入验证码">
<a-icon slot="prefix" type="safety" :style="{ color: '#B3B7C2',fontSize:'20px'}"/>
</a-input>
</a-form-item>
</a-col>
@@ -62,7 +79,7 @@
<a-col :span="3"></a-col>
<a-col :span="7">
<a-form-item>
<a-checkbox v-decorator="['rememberMe', {initialValue: true, valuePropName: 'checked'}]">自动登录</a-checkbox>
<a-checkbox v-decorator="['rememberMe', {initialValue: true, valuePropName: 'checked'}]">记住用户名密码</a-checkbox>
</a-form-item>
</a-col>
<a-col :span="6"></a-col>
@@ -94,87 +111,7 @@
</a-row>
</div>
</a-form>
<a-form v-if="mobile" :form="form" class="user-layout-login user-layout-login-mobile" ref="formLogin" id="formLogin">
<div class="user-box user-box-mobile">
<a-row>
<a-col :span="24">
<a-form-item>
<a-input
size="large"
v-decorator="['username',{initialValue:'', rules: validatorRules.username.rules,validateTrigger: 'blur'}]"
type="text"
placeholder="请输入帐号">
<a-icon slot="prefix" type="user" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
</a-input>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="24">
<a-form-item>
<a-input
v-decorator="['password',{initialValue:'', rules: validatorRules.password.rules,validateTrigger: 'blur'}]"
size="large"
type="password"
autocomplete="false"
placeholder="请输入密码"
>
<a-icon slot="prefix" type="lock" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
</a-input>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="14">
<a-form-item>
<a-input
v-decorator="['inputCode',validatorRules.inputCode]"
size="large"
type="text"
@change="inputCodeChange"
placeholder="请输入验证码">
<a-icon slot="prefix" type="safety" :style="{ color: '#B3B7C2',fontSize:'20px'}"/>
</a-input>
</a-form-item>
</a-col>
<a-col :span="10" style="text-align: right">
<img v-if="requestCodeSuccess" style="margin-top: 2px;" :src="randCodeImage" @click="handleChangeCheckCode" alt=""/>
<img v-else style="margin-top: 2px;" src="../../assets/checkcode.png" @click="handleChangeCheckCode" alt=""/>
</a-col>
</a-row>
<a-row>
<a-col :span="10">
<a-form-item>
<a-checkbox v-decorator="['rememberMe', {initialValue: true, valuePropName: 'checked'}]">自动登录</a-checkbox>
</a-form-item>
</a-col>
<a-col :span="4"></a-col>
<a-col :span="9" style="text-align: right;color: #1891FF;">
<!-- <a-form-item>-->
<!-- <router-link :to="{ name: 'alteration'}" class="forge-password" style="float: right;">-->
<!-- 忘记密码-->
<!-- </router-link>-->
<!-- </a-form-item>-->
</a-col>
</a-row>
<a-row class="login-btn">
<a-col :span="24">
<a-form-item>
<a-button
block
size="large"
type="primary"
htmlType="submit"
:loading="loginBtn"
@click.stop.prevent="handleSubmit"
:disabled="loginBtn">
{{ loginBtn ? "登录中" : "登录" }}
</a-button>
</a-form-item>
</a-col>
</a-row>
</div>
</a-form>
</div>
</div>
</template>
<script>
@@ -426,40 +363,133 @@ function isMobile () {
}
.main{
height: 100%;
.user-layout-login{
z-index: 99;
width: 24%;
height: 56%;
padding: 3% 0 3% 0;
min-width: 332px;
min-height: 460px;
background: #fff;
border-radius: 20px;
position: absolute;
right: 8%;
top: 50%;
transform: translateY(-50%);
.user-box{
width: 100%;
overflow: hidden;
background: url(~@/assets/login-bg.png);
background-size: cover;
.login-box{
margin:9% auto;
width: 62%;
height: 64%;
display: flex;
.login-right,.login-left{
width: 50%;
height: 100%;
overflow: hidden;
display: flex;
justify-content: space-between;
flex-direction: column;
.title{
display: block;
color: #1891FF;
font-size: 28px;
font-weight: 500;
margin: 0 0 5% 0;
text-align: center;
}
.login-btn{
margin-bottom: 0;
font-size: 10px;
}
.login-right{
border-top-right-radius: 2%;
border-bottom-right-radius: 2%;
}
.login-left{
border-top-left-radius: 2%;
border-bottom-left-radius: 2%;
background: url(~@/assets/login-left.png);
background-size: cover;
.logo-image{
margin: 15px;
display: flex;
&>img{
margin-right:8px;
}
}
}
}
@media screen and (min-width: 1370px) {
.user-layout-login {
background-color: #fff;
padding: 5% 3%;
.user-box{
width: 100%;
height: 100%;
overflow: hidden;
display: flex;
overflow-y: auto;
//justify-content: space-between;
flex-direction: column;
.lable-font{
font-weight: 500;
color:#000;
}
.title{
position:relative;
display: block;
color: #000;
font-size: 28px;
font-weight: 500;
margin: 0 0 3% 0;
text-align: center;
//&::after{
// content:'';
// position:absolute;
// bottom: -2px;
// left:calc( 50% - 25px);
// width: 50px;
// height: 3px;
// background-color: #0F6FC4;
//}
}
.login-btn{
margin-top: 10px;
font-size: 10px;
}
.ant-row{
margin-bottom: 10px;
}
}
}
}
@media screen and (max-width: 1366px) {
.user-layout-login {
background-color: #fff;
padding: 4% 3% 0;
.user-box{
width: 100%;
height: 100%;
overflow: hidden;
display: flex;
//justify-content: space-between;
flex-direction: column;
.lable-font{
font-weight: 700;
color:#000;
}
.title{
position:relative;
display: block;
color: #000;
font-size: 20px;
font-weight: 500;
margin: 0 0 5% 0;
text-align: center;
&::after{
content:'';
position:absolute;
bottom: -2px;
left:calc( 50% - 15px);
width: 35px;
height: 3px;
background-color: #0F6FC4;
}
}
.login-btn{
margin-top: 2px;
font-size: 10px;
}
.ant-row{
margin-bottom: 3px;
}
}
}
.input_height {
/deep/ .ant-input{
height: 30px !important;
}
}
}
.user-layout-login-mobile{
right: 0;
width: 100%;