zhanbo.xu

feat: 开发监管场所管理

import request from '@/utils/request'
import request from "@/utils/request";
// 获取路由所有路由
export const getRouters = () => {
return request({
url: '/bus-customer/menu/selectMenu',
method: 'get'
})
}
url: "/bus-customer/menu/selectMenu",
method: "get",
});
};
//获取用户可访问的路由
export const getUserRouters = () => {
return request({
url: '/bus-customer/obtainUserRights',
method: 'post'
})
}
url: "/bus-customer/obtainUserRights",
method: "post",
});
};
// /menu/addMenu 添加菜单
export const addMenu = (data) => {
return request({
url: "/bus-customer/menu/addMenu",
method: "post",
data: data,
});
};
// PUT /menu​/deleteMenu 删除菜单
export const deleteMenu = (data) => {
return request({
url: `/bus-customer/menu/deleteMenu?menuId=${data.menuId}`,
method: "put",
});
};
// POST /menu​/updateMenu 更新菜单
export const updateMenu = (data) => {
return request({
url: "/bus-customer/menu/updateMenu",
method: "post",
data: data,
});
};
......
import request from "@/utils/request";
// POST
// ​/operatorPlace​/addOperatorPlace
// 新增监管场所
export function addOperatorPlace(data) {
return request({
url: "/bus-customer/operatorPlace​/addOperatorPlace",
method: "post",
data: data,
});
}
// POST
// ​/operatorPlace​/getOperatorPlaceList
// 查询监管场所列表
export function getOperatorPlaceList(data) {
return request({
url: "/bus-customer/operatorPlace​/getOperatorPlaceList",
method: "post",
data: data,
});
}
// POST
// ​/operatorPlace​/updateOperatorPlace
// 修改监管场所
export function updateOperatorPlace(data) {
return request({
url: "/bus-customer/operatorPlace​/updateOperatorPlace",
method: "post",
data: data,
});
}
@import './variables.scss';
@import './mixin.scss';
@import './transition.scss';
@import './element-ui.scss';
@import './sidebar.scss';
@import './btn.scss';
@import "./variables.scss";
@import "./mixin.scss";
@import "./transition.scss";
@import "./element-ui.scss";
@import "./sidebar.scss";
@import "./btn.scss";
//fedex样式
// .el-loading-spinner .path {
......@@ -12,1060 +12,1024 @@
// checkbox
.el-checkbox__inner {
width: 1.25rem;
min-width: 1.25rem;
height: 1.25rem;
border: 2px solid $fedexButton;
content: "";
box-sizing: border-box;
width: 1.25rem;
min-width: 1.25rem;
height: 1.25rem;
border: 2px solid $fedexButton;
content: "";
box-sizing: border-box;
}
.el-checkbox__input.is-indeterminate .el-checkbox__inner {
background-color: #fff;
border-color: $fedexButton !important;
color: $fedexButton !important;
background-color: #fff;
border-color: $fedexButton !important;
color: $fedexButton !important;
}
.el-checkbox__input.is-indeterminate .el-checkbox__inner::before {
background-color: $fedexButton !important;
top: 7px;
background-color: $fedexButton !important;
top: 7px;
}
.el-checkbox__input.is-focus .el-checkbox__inner {
border-color: $fedexButton !important;
border-color: $fedexButton !important;
}
.el-checkbox__inner:hover {
border-color: $fedexButton !important;
border-color: $fedexButton !important;
}
.is-checked {
.el-checkbox__inner {
border: 2px solid $fedexButton !important;
background-color: transparent !important;
}
.el-checkbox__inner {
border: 2px solid $fedexButton !important;
background-color: transparent !important;
}
.el-checkbox__inner::after {
border: 2px solid $fedexButton;
border-top: 0;
border-right: 0;
// left: 0.3125rem;
display: block;
position: absolute;
content: " ";
top: 0.2rem;
width: 0.625rem;
height: 0.3125rem;
box-sizing: border-box;
transform: rotate(-45deg) scaleY(1) !important;
}
.el-checkbox__inner::after {
border: 2px solid $fedexButton;
border-top: 0;
border-right: 0;
// left: 0.3125rem;
display: block;
position: absolute;
content: " ";
top: 0.2rem;
width: 0.625rem;
height: 0.3125rem;
box-sizing: border-box;
transform: rotate(-45deg) scaleY(1) !important;
}
}
//radio
.el-radio__input {
.el-radio__inner {
width: 16px;
height: 16px;
border: 2px solid $fedexButton !important;
}
.el-radio__inner {
width: 16px;
height: 16px;
border: 2px solid $fedexButton !important;
}
}
.el-radio__label {
color: #999;
font-size: 12px;
color: #999;
font-size: 12px;
}
.el-radio__inner::after {
background-color: #000;
background-color: #000;
}
.el-radio__input.is-checked .el-radio__inner::after {
transform: translate(-50%, -50%) scale(2);
transform: translate(-50%, -50%) scale(2);
}
.el-radio__input.is-disabled.is-checked .el-radio__inner::after {
background-color: #000;
background-color: #000;
}
.el-radio__input.is-checked .el-radio__inner {
background-color: #fff !important;
background-color: #fff !important;
}
.el-radio__input.is-checked+.el-radio__label {
color: $fedexButton !important;
.el-radio__input.is-checked + .el-radio__label {
color: $fedexButton !important;
}
.noLableRadio {
.el-radio__label {
display: none !important;
}
.el-radio__label {
display: none !important;
}
}
//button
.el-button {
border-radius: 0;
border-color: $fedexButton;
color: $fedexButton;
font-weight: 600;
border-radius: 0;
border-color: $fedexButton;
color: $fedexButton;
font-weight: 600;
}
.el-button:hover,
.el-button:focus,
.el-button.is-plain:hover,
.el-button.is-plain:focus {
background: $fedexButton;
border-color: $fedexButton;
color: #fff;
background: $fedexButton;
border-color: $fedexButton;
color: #fff;
svg {
color: #fff !important;
}
svg {
color: #fff !important;
}
}
.el-button--text:hover,
.el-button--text:focus {
background: transparent;
border: none;
color: $fedexButton;
background: transparent;
border: none;
color: $fedexButton;
svg {
color: #fff !important;
}
svg {
color: #fff !important;
}
}
.el-button--primary,
.el-button--primary:hover,
.el-button--primary:focus {
color: #fff;
background: transparent;
border-color: $fedexBottonColor;
color: #fff;
background: transparent;
border-color: $fedexBottonColor;
}
.el-button-noHover:hover {
color: $fedexButton !important;
background-color: rgba(0, 122, 183, 0.1) !important;
color: $fedexButton !important;
background-color: rgba(0, 122, 183, 0.1) !important;
}
.el-button-group {
.el-button,
.el-button.is-disabled {
border-top-color: $fedexBottonColor !important;
border-bottom-color: $fedexBottonColor !important;
border-width: 2px;
}
.el-button,
.el-button.is-disabled {
border-top-color: $fedexBottonColor !important;
border-bottom-color: $fedexBottonColor !important;
border-width: 2px;
}
.el-button:first-child {
height: 100%;
border-left-color: $fedexBottonColor !important;
.el-button:first-child {
height: 100%;
border-left-color: $fedexBottonColor !important;
span {
color: $fedexBottonColor ;
}
span {
color: $fedexBottonColor;
}
}
.el-button:last-child {
border-right-color: $fedexBottonColor !important;
border-left: 1px solid $fedexBottonColor !important;
.el-button:last-child {
border-right-color: $fedexBottonColor !important;
border-left: 1px solid $fedexBottonColor !important;
.el-dropdown__icon {
color: $fedexBottonColor ;
}
.el-dropdown__icon {
color: $fedexBottonColor;
}
}
.is-disabled {
span,
.el-dropdown__icon {
color: $formDisabledColor !important;
}
.is-disabled {
span,
.el-dropdown__icon {
color: $formDisabledColor !important;
}
}
}
.el-dropdown:hover {
.el-button-group {
.el-button,
.el-button.is-disabled {
border-top-color: $fedexBottonColor !important;
border-bottom-color: $fedexBottonColor !important;
border-width: 2px;
}
.el-button-group {
.el-button,
.el-button.is-disabled {
border-top-color: $fedexBottonColor !important;
border-bottom-color: $fedexBottonColor !important;
border-width: 2px;
}
.el-button:first-child {
height: 100%;
border-left-color: $fedexBottonColor !important;
.el-button:first-child {
height: 100%;
border-left-color: $fedexBottonColor !important;
span {
color: $fedexBottonColor!important ;
span {
color: $fedexBottonColor !important ;
svg {
color: $fedexBottonColor!important ;
}
}
svg {
color: $fedexBottonColor !important ;
}
}
}
.el-button:last-child {
border-right-color: $fedexBottonColor !important;
border-left: 1px solid $fedexBottonColor !important;
.el-dropdown__icon {
color: $fedexBottonColor!important ;
}
}
.el-button:last-child {
border-right-color: $fedexBottonColor !important;
border-left: 1px solid $fedexBottonColor !important;
.is-disabled {
.el-dropdown__icon {
color: $fedexBottonColor !important ;
}
}
span {
color: $formDisabledColor !important;
.is-disabled {
span {
color: $formDisabledColor !important;
svg {
color: $fedexBottonColor !important;
}
}
svg {
color: $fedexBottonColor !important;
}
}
}
}
}
.is-circle {
border-radius: 20px !important;
padding: 7px 12px !important;
border-radius: 20px !important;
padding: 7px 12px !important;
}
.el-button--text {
color: $fedexButton !important;
font-weight: 600 !important;
border: none;
color: $fedexButton !important;
font-weight: 600 !important;
border: none;
}
.entrySave {
margin-top: 64px;
text-align: center;
margin-top: 64px;
text-align: center;
.el-button {
width: max-content;
min-width: 112px;
height: 56px;
font-size: 1.1875rem;
font-weight: 700;
}
.el-button {
width: max-content;
min-width: 112px;
height: 56px;
font-size: 1.1875rem;
font-weight: 700;
}
.saveTip {
font-size: 16px;
font-weight: 100;
color: #000000;
margin-top: 16px;
}
.saveTip {
font-size: 16px;
font-weight: 100;
color: #000000;
margin-top: 16px;
}
}
.entrySaveButton {
background-color: transparent;
border-color: $fedexBottonColor !important;
border-width: 2px;
color: $fedexBottonColor;
background-color: transparent;
border-color: $fedexBottonColor !important;
border-width: 2px;
color: $fedexBottonColor;
}
.entrySaveButton-background {
background-color: $fedexBottonColor !important;
color: #fff !important;
background-color: $fedexBottonColor !important;
color: #fff !important;
}
.entrySaveButton:hover,
.entrySaveButton:focus {
color: #fff !important;
background-color: $fedexBottonColor !important;
color: #fff !important;
background-color: $fedexBottonColor !important;
}
.entrySaveButton-background:hover,
.entrySaveButton-background:focus {
background-color: rgba(255, 102, 0, 0.7) !important;
background-color: rgba(255, 102, 0, 0.7) !important;
}
.button-noHover:hover,
.button-noHover:focus {
border-color: $fedexButton !important;
color: $fedexButton !important;
background-color: #fff !important;
border-color: $fedexButton !important;
color: $fedexButton !important;
background-color: #fff !important;
}
.el-button.is-disabled,
.el-button.is-disabled:focus,
.el-button.is-disabled:hover {
border-color: #ebeef5 !important;
color: #c0c4cc !important;
background-color: transparent !important;
border-color: #ebeef5 !important;
color: #c0c4cc !important;
background-color: transparent !important;
}
//update
.upload-demo {
.el-upload-list {
.el-upload-list__item {
margin: 0px;
line-height: normal;
}
.el-upload-list {
.el-upload-list__item {
margin: 0px;
line-height: normal;
}
}
}
//pagination
.el-pagination.is-background .el-pager li:not(.disabled):hover {
color: $fedexColor;
color: $fedexColor;
}
.el-pagination.is-background .el-pager li:not(.disabled).active {
background-color: $fedexColor !important;
color: #fff;
background-color: $fedexColor !important;
color: #fff;
}
//dialog
.el-dialog {
display: flex;
flex-direction: column;
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-height: auto;
max-width: 100%;
display: flex;
flex-direction: column;
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-height: auto;
max-width: 100%;
}
.el-dialog__title {
font-size: 16px;
font-weight: 700;
color: #333333;
font-size: 16px;
font-weight: 700;
color: #333333;
}
.el-dialog-change {
transform: translate(-50%, -35%) !important;
transform: translate(-50%, -35%) !important;
}
.authorizationAddDialog {
.el-dialog {
.el-dialog__body {
padding: 15px 15px 0px !important;
}
.el-dialog {
.el-dialog__body {
padding: 15px 15px 0px !important;
}
}
}
//form
.el-input,
.el-textarea,
.el-select {
input,
textarea {
border-radius: 0px !important;
font-family: sans-serif !important;
}
input,
textarea {
border-radius: 0px !important;
font-family: sans-serif !important;
}
}
input,
textarea {
outline: none !important;
border-radius: 0px !important;
font-family: sans-serif !important;
outline: none !important;
border-radius: 0px !important;
font-family: sans-serif !important;
}
input:disabled {
color: $formDisabledColor;
cursor: not-allowed;
color: $formDisabledColor;
cursor: not-allowed;
}
.inputShadow {
box-shadow: inset 0 0 0.1rem rgba(0, 0, 0, 0.1);
box-shadow: inset 0 0 0.1rem rgba(0, 0, 0, 0.1);
}
.el-textarea__inner:focus {
border-color: $fedexBorder;
border-color: $fedexBorder;
}
.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label::before {
content: "";
.el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label::before {
content: "";
}
.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:after {
content: "*";
color: #ff4949;
margin-right: 4px;
.el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:after {
content: "*";
color: #ff4949;
margin-right: 4px;
}
.fedexRadiusInput {
.el-autocomplete {
width: 100% !important;
}
.el-autocomplete {
width: 100% !important;
}
input {
border-radius: 50px 0 0 50px !important;
}
input {
border-radius: 50px 0 0 50px !important;
}
.el-input-group__append {
border-radius: 0 50px 50px 0;
background-color: #fff;
}
.el-input-group__append {
border-radius: 0 50px 50px 0;
background-color: #fff;
}
}
.historyAutocomplete {
input {
border-radius: 50px !important;
}
input {
border-radius: 50px !important;
}
}
.fedexFormStyle {
// margin-top: 4px;
// margin-top: 4px;
.formTitle {
font-size: 14px;
font-weight: 600;
color: #333333;
margin-top: 12px;
margin-bottom: 4px;
}
.formTitle {
font-size: 14px;
font-weight: 600;
color: #333333;
margin-top: 12px;
margin-bottom: 4px;
}
.el-form-item {
position: relative;
height: 50px;
background-color: $formItemBackgroundColor;
margin-bottom: 5px;
// padding-top: 3px;
.el-form-item {
position: relative;
height: 50px;
background-color: $formItemBackgroundColor;
margin-bottom: 5px;
// padding-top: 3px;
.el-form-item__label {
position: relative;
font-size: 0.75rem;
font-weight: 700;
color: #333;
height: max-content;
padding: 0 0 0 0.6rem;
line-height: 14px;
/*设置行高,防止因为字体缩放导致元素高度变化*/
transform: translate3d(0, 10px, 0);
/*标题平移至合适位置*/
transition: all 0.2s ease;
cursor: text;
z-index: 5;
}
.el-form-item__content {
position: absolute;
width: 100%;
height: 100%;
top: 0;
bottom: 0px;
line-height: normal;
.fedex-formItem-Button {
display: block !important;
width: 95%;
margin-top: 1.1rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.el-input,
.el-select,
.el-date-editor,
.el-range-editor,
.el-autocomplete {
width: 100%;
height: 100%;
.el-form-item__label {
position: relative;
font-size: 0.75rem;
font-weight: 700;
color: #333;
height: max-content;
padding: 0 0 0 .6rem;
line-height: 14px;
/*设置行高,防止因为字体缩放导致元素高度变化*/
transform: translate3d(0, 10px, 0);
/*标题平移至合适位置*/
transition: all .2s ease;
cursor: text;
z-index: 5;
.el-range-input {
padding: 0px;
}
.el-form-item__content {
position: absolute;
width: 100%;
height: 100%;
top: 0;
bottom: 0px;
line-height: normal;
.el-range-separator {
line-height: 50px;
}
.fedex-formItem-Button {
display: block !important;
width: 95%;
margin-top: 1.1rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
input {
width: 100%;
height: 100% !important;
border: none !important;
background-color: transparent;
padding-top: 0.775rem;
// padding-right: 1.15rem;
padding-left: calc(0.6rem + 0.1875rem);
font-size: 0.875rem !important;
}
}
.el-input,
.el-select,
.el-date-editor,
.el-range-editor,
.el-autocomplete {
width: 100%;
height: 100%;
.el-range-input {
padding: 0px;
}
.el-range-separator {
line-height: 50px;
}
input {
width: 100%;
height: 100% !important;
border: none !important;
background-color: transparent;
padding-top: 0.775rem;
// padding-right: 1.15rem;
padding-left: calc(.6rem + .1875rem);
font-size: 0.875rem !important;
}
.el-range-editor.el-input__inner {
padding: 15px 10px 0px 10px;
}
.el-range-editor {
.el-range-separator {
line-height: 35px;
}
}
}
input {
width: 100% !important;
height: 100% !important;
border: none !important;
background-color: transparent;
padding-top: 0.775rem;
// padding-right: 1.15rem;
padding-left: calc(0.6rem + 0.1875rem);
font-size: 0.875rem !important;
}
.el-range-editor.el-input__inner {
padding: 15px 10px 0px 10px;
}
.el-textarea {
textarea {
border: none !important;
background-color: transparent;
margin-top: 0.85rem;
// padding-right: 1.15rem;
padding-left: calc(0.625rem + 0.1875rem);
font-size: 1rem !important;
}
}
.el-range-editor {
.el-range-separator {
line-height: 35px;
}
}
.el-select {
.el-select__tags {
top: 70%;
}
}
input {
width: 100% !important;
height: 100% !important;
border: none !important;
background-color: transparent;
padding-top: 0.775rem;
// padding-right: 1.15rem;
padding-left: calc(.6rem + .1875rem);
font-size: 0.875rem !important;
}
.el-range-editor.el-input__inner {
border: none;
}
}
.el-textarea {
textarea {
border: none !important;
background-color: transparent;
margin-top: 0.85rem;
// padding-right: 1.15rem;
padding-left: calc(.625rem + .1875rem);
font-size: 1rem !important;
}
}
.formError {
height: max-content;
line-height: 20px;
color: $fedexError;
font-size: 0.75rem;
padding: 0.225rem 0.9375rem;
background-color: #fff;
margin-top: 3px;
}
.el-select {
.el-select__tags {
top: 70%;
}
}
// .el-date-editor {
// .el-input__prefix {
// display: none;
// }
// }
}
.el-range-editor.el-input__inner {
border: none;
}
}
.el-form-item:has(.formError) {
margin-bottom: 70px;
}
.formError {
height: max-content;
line-height: 20px;
color: $fedexError;
font-size: .75rem;
padding: .225rem .9375rem;
background-color: #fff;
margin-top: 3px;
.formItem-justItem {
.el-form-item__content {
.fedexFormItem {
&:first-child {
.formError {
position: absolute;
top: 50px;
z-index: 2;
}
}
// .el-date-editor {
// .el-input__prefix {
// display: none;
// }
// }
}
.el-form-item:has(.formError) {
margin-bottom: 70px;
}
&:last-child {
.formError {
z-index: 10;
}
}
.formItem-justItem {
.el-form-item__content {
.fedexFormItem {
&:first-child {
.formError {
position: absolute;
top: 50px;
z-index: 2;
}
}
&:last-child {
.formError {
z-index: 10;
}
}
.el-checkbox {
display: inline-block;
}
.el-radio {
display: inline-block;
}
}
.el-checkbox {
display: inline-block;
}
.el-form-item {
height: 25px !important;
line-height: 25px;
margin-bottom: 0;
padding: 0 !important;
.el-form-item__label {
transform: translate3d(0, -2px, 0);
}
.el-form-item__content {
.el-input,
.el-select,
.el-date-editor,
.el-range-editor,
.el-autocomplete {
input {
padding-top: 0px;
}
.el-input__suffix {
top: 5px;
}
}
}
}
.el-radio {
display: inline-block;
}
}
}
.el-form-item:has(input:disabled) {
color: $formDisabledColor !important;
.el-form-item {
height: 25px !important;
line-height: 25px;
margin-bottom: 0;
padding: 0 !important;
.el-form-item__label {
color: $formDisabledColor;
transform: translate3d(0, -2px, 0);
}
.el-form-item__content {
.el-input,
.el-select,
.el-date-editor,
.el-range-editor,
.el-autocomplete {
input {
color: $formDisabledColor ;
padding-top: 0px;
}
}
.el-input__suffix {
top: 5px;
}
}
}
}
}
}
.is-error {
margin-bottom: 50px;
border-left: 3px solid $fedexError;
.el-form-item:has(input:disabled) {
color: $formDisabledColor !important;
.el-form-item__label {
color: $fedexError;
}
.el-form-item__label {
color: $formDisabledColor;
}
.el-form-item:has(.inputFocus) {
.el-form-item__label {
position: relative;
font-size: 0.625rem;
font-weight: 700;
height: max-content;
padding: 0 0 0 .6rem;
line-height: 14px;
/*设置行高,防止因为字体缩放导致元素高度变化*/
transform: translate3d(0, 1px, 0);
/*标题平移至合适位置*/
transition: all .2s ease;
z-index: 10;
}
.el-form-item__content {
input {
color: $formDisabledColor;
}
}
}
.formItem-justItem .el-form-item:has(.inputFocus) {
.el-form-item__label {
display: none;
}
.is-error {
margin-bottom: 50px;
border-left: 3px solid $fedexError;
.el-form-item__label {
color: $fedexError;
}
}
.formItem-justItem:has(.formError) {
margin-bottom: 50px;
.el-form-item:has(.inputFocus) {
.el-form-item__label {
position: relative;
font-size: 0.625rem;
font-weight: 700;
height: max-content;
padding: 0 0 0 0.6rem;
line-height: 14px;
/*设置行高,防止因为字体缩放导致元素高度变化*/
transform: translate3d(0, 1px, 0);
/*标题平移至合适位置*/
transition: all 0.2s ease;
z-index: 10;
}
}
.borderFormItemContent {
.el-form-item__content {
top: 10px;
border-left: 2px solid #333;
}
.formItem-justItem .el-form-item:has(.inputFocus) {
.el-form-item__label {
display: none;
}
}
.formItem-justItem:has(.formError) {
margin-bottom: 50px;
}
.activeBorder {
border-left: 3px solid $fedexColor;
.borderFormItemContent {
.el-form-item__content {
top: 10px;
border-left: 2px solid #333;
}
}
.activeBorder {
border-left: 3px solid $fedexColor;
}
}
.fedexformSreach {
background-color: #fff;
border-bottom: 1px solid $fedexBorder;
background-color: #fff;
border-bottom: 1px solid $fedexBorder;
.el-form-item {
background-color: transparent;
border-right: 1px solid $fedexBorder !important;
margin-bottom: 0px;
line-height: 25px;
.el-form-item {
background-color: transparent;
border-right: 1px solid $fedexBorder !important;
margin-bottom: 0px;
line-height: 25px;
.el-button {
margin-top: 8px;
}
.el-button {
margin-top: 8px;
}
}
.activeBorder {
border: none;
}
.activeBorder {
border: none;
}
.el-checkbox,
.el-radio {
display: block;
margin-top: 25px;
margin-left: 5px
}
.el-checkbox,
.el-radio {
display: block;
margin-top: 25px;
margin-left: 5px;
}
}
.fedexformSreachBottomBorder {
.el-form-item {
border-bottom: 1px solid $fedexBorder;
}
.el-form-item {
border-bottom: 1px solid $fedexBorder;
}
}
.fedexTableForm {
height: 100%;
.el-form-item {
.el-form-item__label {
width: 100%;
height: 34px;
line-height: 34px;
font-size: 12px;
font-weight: 600;
color: #333;
background-color: #E3E3E3;
padding-left: 16px;
}
.el-form-item__content {
width: 100%;
height: 100%;
min-height: 36px;
background-color: #F2F2F2;
margin-top: 2px;
div {
height: 100%;
// padding: 0 15px;
}
.el-input,
.el-select {
width: 100%;
height: 100%;
.el-form-item {
.el-form-item__label {
width: 100%;
height: 34px;
line-height: 34px;
font-size: 12px;
font-weight: 600;
color: #333;
background-color: #e3e3e3;
padding-left: 16px;
}
.el-form-item__content {
width: 100%;
height: 100%;
min-height: 36px;
background-color: #f2f2f2;
margin-top: 2px;
div {
height: 100%;
// padding: 0 15px;
}
input {
border: none;
background-color: transparent;
}
}
.el-input,
.el-select {
width: 100%;
input {
border: none;
background-color: transparent;
}
}
}
}
}
.backgroundCol {
.el-form-item {
.el-form-item__label {
color: $fedexBottonColor !important;
}
.el-form-item {
.el-form-item__label {
color: $fedexBottonColor !important;
}
}
}
//table
.el-table {
.el-table__header-wrapper {
overflow-y: scroll;
}
// .el-table__fixed-header-wrapper {
// th {
// border-bottom: 1px solid $fedexBorder;
// }
// }
.el-table__header-wrapper {
overflow-y: scroll;
.el-table__header-wrapper,
.el-table__fixed-header-wrapper {
th {
word-break: break-word;
// background-color: #f8f8f9;
color: #515a6e;
height: 40px;
font-size: 13px;
border-left-color: transparent;
border-right-color: transparent;
}
}
// .el-table__fixed-header-wrapper {
// th {
// border-bottom: 1px solid $fedexBorder;
// }
// }
.el-table__body-wrapper {
.el-button [class*="el-icon-"] + span {
margin-left: 1px;
}
}
}
.el-table__header-wrapper,
.el-table__fixed-header-wrapper {
th {
word-break: break-word;
// background-color: #f8f8f9;
color: #515a6e;
height: 40px;
font-size: 13px;
border-left-color: transparent;
border-right-color: transparent;
.customTable {
.el-table th > .cell {
width: max-content !important;
}
}
}
.activeTableCell {
background-color: $fedexTablebackgroundColor !important;
border: 2px solid $fedexBorder !important;
padding: 0;
.cell {
.cellContent {
display: none !important;
}
.el-table__body-wrapper {
.cellInput {
display: block !important;
.el-button [class*="el-icon-"]+span {
margin-left: 1px;
input {
border: none;
}
}
}
}
}
.customTable {
.el-table th>.cell {
width: max-content !important
.fedexDetialTable {
width: auto;
// height: 100%;
position: relative;
.el-table::before {
height: 0;
}
.el-table tbody tr:hover > td {
background-color: rgba(0, 122, 183, 0.1) !important;
}
.el-table__header-wrapper {
width: 100%;
.el-table__header {
.has-gutter {
tr {
th {
position: relative;
font-size: 12px;
font-weight: 700;
background-color: #fff !important;
border: none;
}
}
}
}
}
.activeTableCell {
background-color: $fedexTablebackgroundColor !important;
border: 2px solid $fedexBorder !important;
padding: 0;
.el-table__body-wrapper {
width: 100%;
height: auto;
min-height: 100px;
.el-table__body {
tbody {
tr:not(.el-table__expanded-cell) {
width: 100%;
height: 50px !important;
&:first-child {
td {
border-top: 1px solid $fedexTableBorderColor;
}
}
.cell {
.cellContent {
display: none !important;
td {
height: 50px !important;
font-size: 12px;
font-weight: 400 !important;
// background-color: $fedexTablebackgroundColor;
border-right: none;
.cell {
width: 100% !important;
.cellContent {
line-height: 20px !important;
}
}
.cellInput {
&:first-child {
border-left: 1px solid $fedexTableBorderColor;
}
&:last-child {
border-right: 1px solid $fedexTableBorderColor;
}
}
.activeTableCell {
background-color: $fedexTablebackgroundColor !important;
border: 2px solid $fedexBorder !important;
.cell {
.cellContent {
display: none !important;
}
.cellInput {
display: block !important;
}
}
}
input {
border: none;
}
.el-table__expand-column {
div {
display: none;
}
}
}
}
}
.fedexDetialTable {
width: auto;
// height: 100%;
position: relative;
tr:has(.el-table__expanded-cell) {
height: 100% !important;
.el-table::before {
height: 0;
}
td:not(.el-form) {
// display: none;
background-color: #fff !important;
.el-table tbody tr:hover>td {
background-color: rgba(0, 122, 183, 0.1) !important;
}
&:has(.el-form) {
display: table-cell;
}
}
}
.el-table__header-wrapper {
width: 100%;
.expanded {
color: #409eff;
}
.el-table__header {
.has-gutter {
tr {
th {
position: relative;
font-size: 12px;
font-weight: 700;
background-color: #fff !important;
border: none;
}
}
}
.el-table__row_isError {
td {
border-color: $fedexError !important;
border-top: 1px solid $fedexError !important;
border-bottom: 1px solid $fedexError !important;
background-color: rgba(224, 0, 45, 0.1) !important;
}
}
}
.el-table__body-wrapper {
width: 100%;
height: auto;
min-height: 100px;
.el-table__body {
tbody {
tr:not(.el-table__expanded-cell) {
width: 100%;
height: 50px !important;
&:first-child {
td {
border-top: 1px solid $fedexTableBorderColor;
}
}
td {
height: 50px !important;
font-size: 12px;
font-weight: 400 !important;
// background-color: $fedexTablebackgroundColor;
border-right: none;
.cell {
width: 100% !important;
.cellContent {
line-height: 20px !important;
}
}
&:first-child {
border-left: 1px solid $fedexTableBorderColor;
}
&:last-child {
border-right: 1px solid $fedexTableBorderColor;
}
}
.activeTableCell {
background-color: $fedexTablebackgroundColor !important;
border: 2px solid $fedexBorder !important;
.cell {
.cellContent {
display: none !important;
}
.cellInput {
display: block !important;
}
}
}
.el-table__expand-column {
div {
display: none;
}
}
}
tr:has(.el-table__expanded-cell) {
height: 100% !important;
td:not(.el-form) {
// display: none;
background-color: #fff !important;
&:has(.el-form) {
display: table-cell;
}
}
}
.expanded {
color: #409EFF;
}
.el-table__row_isError {
td {
border-color: $fedexError !important;
border-top: 1px solid $fedexError !important;
border-bottom: 1px solid $fedexError !important;
background-color: rgba(224, 0, 45, 0.1) !important;
}
}
.el-table__expanded-cell {
padding: 8px !important;
background-color: #fff !important;
border-top: 1px solid $fedexBorder;
}
}
.el-table__expanded-cell {
padding: 8px !important;
background-color: #fff !important;
border-top: 1px solid $fedexBorder;
}
}
}
}
}
.fedexTableBlack {
.el-table__body-wrapper {
.el-table__body {
tbody {
tr {
td {
background-color: $fedexTablebackgroundColor !important;
border-color: $fedexTableBorderColor;
}
}
}
.el-table__body-wrapper {
.el-table__body {
tbody {
tr {
td {
background-color: $fedexTablebackgroundColor !important;
border-color: $fedexTableBorderColor;
}
}
}
}
}
}
.fedexSreachTable {
.el-table__body-wrapper {
height: auto;
.el-table__body {
tbody {
tr {
height: 32px !important;
td {
height: 32px !important;
font-size: 12px;
font-weight: 400 !important;
}
}
}
.el-table__body-wrapper {
height: auto;
.el-table__body {
tbody {
tr {
height: 32px !important;
td {
height: 32px !important;
font-size: 12px;
font-weight: 400 !important;
}
}
}
}
}
}
.fedexFormTable {
.el-table__body-wrapper {
.el-table__body {
tbody {
tr {
td {
.el-form-item {
margin: 0px;
.el-form-item__conten {
line-height: 20px !important;
}
}
.cellContent {
display: block;
min-height: 20px;
}
input {
height: auto;
border: none !important;
background-color: transparent;
padding: 0px !important;
font-size: 12px !important;
line-height: normal;
}
}
.el-table__body-wrapper {
.el-table__body {
tbody {
tr {
td {
.el-form-item {
margin: 0px;
.el-form-item__conten {
line-height: 20px !important;
}
}
.cellContent {
display: block;
min-height: 20px;
}
input {
height: auto;
border: none !important;
background-color: transparent;
padding: 0px !important;
font-size: 12px !important;
line-height: normal;
}
}
td:has(.is-error) {
background-color: rgba(191, 54, 56, 0.4);
}
.formError {
width: inherit;
font-weight: 600;
font-size: 0.65rem;
color: $formItemBackgroundColor;
}
&:hover>td {
background-color: none !important;
.formError {
width: inherit;
font-weight: 600;
font-size: 0.65rem;
color: $fedexError;
}
}
}
td:has(.is-error) {
background-color: rgba(191, 54, 56, 0.4);
}
.formError {
width: inherit;
font-weight: 600;
font-size: 0.65rem;
color: $formItemBackgroundColor;
}
&:hover > td {
background-color: none !important;
.formError {
width: inherit;
font-weight: 600;
font-size: 0.65rem;
color: $fedexError;
}
}
}
}
}
}
}
.tableHeightAuto {
overflow-y: auto;
overflow-y: auto;
.el-table__body-wrapper {
height: 100% !important;
}
.el-table__body-wrapper {
height: 100% !important;
}
}
//dropdown
......@@ -1075,854 +1039,828 @@ input:disabled {
// }
// }
.el-popper[x-placement^=bottom] {
margin-top: 2px;
.el-popper[x-placement^="bottom"] {
margin-top: 2px;
}
.el-dropdown-menu {
min-width: 150px;
padding: 0px;
border: 1px solid $fedexBottonColor;
min-width: 150px;
padding: 0px;
border: 1px solid $fedexBottonColor;
.el-dropdown-menu__item {
font-size: 12px;
font-weight: 400;
color: #333;
height: 50px;
line-height: 50px;
border-bottom: 1px solid $fedexBorder;
}
.el-dropdown-menu__item {
font-size: 12px;
font-weight: 400;
color: #333;
height: 50px;
line-height: 50px;
border-bottom: 1px solid $fedexBorder;
}
.el-dropdown-menu__item:not(.is-disabled):hover,
.el-dropdown-menu__item:focus {
color: #333;
background-color: $formItemBackgroundColor;
}
.el-dropdown-menu__item:not(.is-disabled):hover,
.el-dropdown-menu__item:focus {
// color: #333;
// background-color: $formItemBackgroundColor;
color: #ffffff !important;
background-color: $fedexBottonColor !important;
}
.is-disabled {
color: #bbb !important;
pointer-events: none !important;
cursor: not-allowed !important;
}
.is-disabled {
color: #bbb !important;
pointer-events: none !important;
cursor: not-allowed !important;
}
.popper__arrow {
display: none !important;
}
.popper__arrow {
display: none !important;
}
}
//alert
.fedexAlert {
width: 75%;
font-size: 14px;
font-weight: 400;
// position: absolute;
// top: 70px;
// left: 12rem;
margin: 0 auto;
background-color: rgba(242, 31, 31, 0.05) !important;
color: #333 !important;
.fedexAlert-list {
display: flex;
width: 75%;
font-size: 14px;
font-weight: 400;
// position: absolute;
// top: 70px;
// left: 12rem;
margin: 0 auto;
background-color: rgba(242, 31, 31, 0.05) !important;
color: #333 !important;
.fedexAlert-list {
display: flex;
.el-icon-user-solid {
width: 36px !important;
height: 36px !important;
display: block;
margin-right: 25px
}
.el-icon-user-solid {
width: 36px !important;
height: 36px !important;
display: block;
margin-right: 25px;
}
}
.el-icon-close:before {
color: #333;
font-size: 16px;
}
.el-icon-close:before {
color: #333;
font-size: 16px;
}
}
.el-popover {
.el-popconfirm {
.el-popconfirm__action {
.el-button--primary {
color: $fedexBottonColor;
}
}
.el-popconfirm {
.el-popconfirm__action {
.el-button--primary {
color: $fedexBottonColor;
}
}
}
}
//message
.el-message-box {
max-width: 700px !important;
max-width: 700px !important;
.el-message-box__header {
.el-message-box__title {
.el-icon-warning {
color: $fedexBottonColor;
}
}
.el-message-box__header {
.el-message-box__title {
.el-icon-warning {
color: $fedexBottonColor;
}
}
}
.el-message-box__content {
max-height: 600px !important;
overflow: auto !important;
.el-message-box__content {
max-height: 600px !important;
overflow: auto !important;
.el-message-box__message {
font-size: 16px;
}
.el-message-box__message {
font-size: 16px;
}
}
// .el-message-box__btns {
// .el-button {}
// }
// .el-message-box__btns {
// .el-button {}
// }
}
//other
.TemplateSave {
width: 240px;
margin-top: 24px;
width: 240px;
margin-top: 24px;
.el-input {
height: 50px !important;
.el-input {
height: 50px !important;
.el-input__inner {
height: 50px !important;
}
.el-input__inner {
height: 50px !important;
}
.el-input-group__append {
background-color: #fff !important;
color: $fedexButton !important;
}
.el-input-group__append {
background-color: #fff !important;
color: $fedexButton !important;
}
}
}
.entryInfoTop-item {
width: 320px;
height: 50px;
.el-form {
height: 60px !important;
width: 320px;
height: 50px;
.el-form-item {
background-color: transparent;
.el-form-item__label {
font-size: 14px;
font-weight: 600;
}
.el-form {
height: 60px !important;
.el-form-item__content {
border: 1px solid $fedexColor !important;
.el-form-item {
background-color: transparent;
.el-input {
.el-form-item__label {
font-size: 14px;
font-weight: 600;
}
input {
border: none !important;
font-size: 20px;
}
.el-form-item__content {
border: 1px solid $fedexColor !important;
.el-input__suffix {
top: 12px;
font-size: 20px;
color: $fedexButton;
}
}
}
.el-input {
input {
border: none !important;
font-size: 20px;
}
.el-input__suffix {
top: 12px;
font-size: 20px;
color: $fedexButton;
}
}
}
}
}
}
.el-message-box {
.el-button {
border-color: $fedexBottonColor;
color: $fedexBottonColor;
}
.el-button {
border-color: $fedexBottonColor;
color: $fedexBottonColor;
}
.el-button--primary {
background-color: $fedexBottonColor;
color: #fff;
}
.el-button:hover,
.el-button:focus {
background-color: $fedexBottonColor;
color: #fff;
}
.el-button--primary {
background-color: $fedexBottonColor;
color: #fff;
}
.el-button--primary:hover,
.el-button--primary:focus {
background-color: rgba(255, 102, 0, 0.7);
}
.el-button:hover,
.el-button:focus {
background-color: $fedexBottonColor;
color: #fff;
}
.el-button--primary:hover,
.el-button--primary:focus {
background-color: rgba(255, 102, 0, 0.7);
}
}
.el-select-dropdown__item.selected {
color: $fedexColor;
color: $fedexColor;
}
.el-message {
top: 7px !important;
top: 7px !important;
}
.el-tooltip__popper {
max-width: 700px;
max-width: 700px;
}
.fileEmpty {
display: block;
width: max-content;
margin: 0 auto;
display: block;
width: max-content;
margin: 0 auto;
.el-empty__image {
img {
display: block;
width: 80px;
margin: 0 auto;
}
.el-empty__image {
img {
display: block;
width: 80px;
margin: 0 auto;
}
}
}
.el-table__body-wrapper {
&::-webkit-scrollbar {
height: 8px;
width: 8px;
}
&::-webkit-scrollbar {
height: 8px;
width: 8px;
}
&::-webkit-scrollbar-track {
background-color: #fff;
}
&::-webkit-scrollbar-track {
background-color: #fff;
}
&::-webkit-scrollbar-thumb {
background-color: #ccc;
}
&::-webkit-scrollbar-thumb {
background-color: #ccc;
}
&::-webkit-scrollbar-thumb:hover {
background-color: #409eff;
}
&::-webkit-scrollbar-thumb:hover {
background-color: #409eff;
}
}
.el-scrollbar__wrap {
&::-webkit-scrollbar {
height: 0px;
width: 0px;
}
&::-webkit-scrollbar {
height: 0px;
width: 0px;
}
}
//refine vue-multiselect plugin
.multiselect {
line-height: 16px;
line-height: 16px;
}
.multiselect--active {
z-index: 1000 !important;
z-index: 1000 !important;
}
// 解决表格固定列问题
.el-table__fixed,
.el-table__fixed-right {
height: calc(100% - 7px) !important;
box-shadow: -5px -2px 10px rgba(0, 0, 0, .12) !important;
height: calc(100% - 7px) !important;
box-shadow: -5px -2px 10px rgba(0, 0, 0, 0.12) !important;
.el-table__fixed-body-wrapper {
// height: calc(100% - 7px) !important;
}
.el-table__fixed-body-wrapper {
// height: calc(100% - 7px) !important;
}
}
// 当表格没有滚动条时
.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right {
height: 100% !important;
bottom: 0 !important;
box-shadow: none !important;
.el-table__body-wrapper.is-scrolling-none ~ .el-table__fixed-right {
height: 100% !important;
bottom: 0 !important;
box-shadow: none !important;
}
// 当表格有纵向滚动条时
.el-table--scrollable-y .el-table__fixed-right {
right: 7px !important;
right: 7px !important;
}
// 当表格只有横向滚动条,没有纵向滚动条时
.el-table--scrollable-x:not(.el-table--scrollable-y) .el-table__fixed-right {
right: 0 !important;
right: 0 !important;
}
::-webkit-scrollbar {
height: 8px;
width: 8px;
height: 8px;
width: 8px;
}
::-webkit-scrollbar-track {
background-color: #fff;
background-color: #fff;
}
::-webkit-scrollbar-thumb {
background-color: #ccc;
background-color: #ccc;
}
::-webkit-scrollbar-thumb:hover {
background-color: #409eff;
background-color: #409eff;
}
.el-scrollbar__wrap {
&::-webkit-scrollbar {
height: 0px;
width: 0px;
}
&::-webkit-scrollbar {
height: 0px;
width: 0px;
}
}
.logoutTip {
.el-dialog__title {
font-weight: 500 !important;
}
.el-dialog__title {
font-weight: 500 !important;
}
.el-dialog__body {
padding: 10px 20px !important;
}
.el-dialog__body {
padding: 10px 20px !important;
}
}
.optionRadio {
width: 50%;
text-align: left;
padding: 15px;
.el-radio-group {
.el-radio {
.el-radio__label {
font-size: 14px !important;
}
&:first-child {
margin-right: 80px;
}
}
width: 50%;
text-align: left;
padding: 15px;
.el-radio-group {
.el-radio {
.el-radio__label {
font-size: 14px !important;
}
&:first-child {
margin-right: 80px;
}
}
}
}
.imgViewDialog {
.el-dialog__header {
.el-dialog__headerbtn {
font-size: 22px;
color: #000000;
}
.el-dialog__header {
.el-dialog__headerbtn {
font-size: 22px;
color: #000000;
}
}
.el-dialog__body {
min-height: 250px;
overflow: hidden;
padding: 10px;
border: 1px solid $fedexTableBorderColor;
}
.el-dialog__body {
min-height: 250px;
overflow: hidden;
padding: 10px;
border: 1px solid $fedexTableBorderColor;
}
}
//清关文件浏览样式
.image-viewer-option_body {
position: static;
display: flex;
width: 100%;
height: 800px;
border: 2px solid $fedexBorder;
overflow: hidden;
position: static;
display: flex;
width: 100%;
height: 800px;
border: 2px solid $fedexBorder;
overflow: hidden;
// .image-viewer-actions {}
// .image-viewer-actions {}
.el-image-viewer__actions {
position: static;
width: max-content;
padding: 10px;
margin: 0 auto;
width: 60px;
height: 100%;
transform: none;
background-color: transparent;
border-left: 1px solid $fedexBorder;
border-radius: 0;
.el-image-viewer__actions__inner {
display: block;
text-align: center;
.zoomNum {
width: 40px;
font-size: 0.65rem;
color: #333;
padding: 5px 0px;
margin-bottom: 20px;
background-color: #d4d0d0;
}
.el-image-viewer__actions {
position: static;
width: max-content;
padding: 10px;
margin: 0 auto;
width: 60px;
height: 100%;
transform: none;
background-color: transparent;
border-left: 1px solid $fedexBorder;
border-radius: 0;
i {
display: block;
cursor: pointer;
margin-bottom: 20px;
color: $fedexButton;
}
}
.el-image-viewer__actions__inner {
display: block;
text-align: center;
}
.zoomNum {
width: 40px;
font-size: 0.65rem;
color: #333;
padding: 5px 0px;
margin-bottom: 20px;
background-color: #d4d0d0;
}
.el-image-viewer__canvas {
width: calc(100%-60px);
min-width: 200px;
position: static;
overflow: hidden;
i {
display: block;
cursor: pointer;
margin-bottom: 20px;
color: $fedexButton;
}
}
}
.el-image-viewer__img {
display: block;
width: max-content;
height: max-content;
.el-image-viewer__canvas {
width: calc(100%-60px);
min-width: 200px;
position: static;
overflow: hidden;
}
// position: absolute;
&:hover {
cursor: move;
}
.el-image-viewer__img {
display: block;
width: max-content;
height: max-content;
// position: absolute;
&:hover {
cursor: move;
}
}
}
.inlineRadio {
width: 100%;
text-align: center;
margin-bottom: 20px;
width: 100%;
text-align: center;
margin-bottom: 20px;
.el-radio {
display: inline-block !important;
}
.el-radio {
display: inline-block !important;
}
}
//自定义内容设置穿梭框样式
.transferDom {
width: max-content;
display: flex;
align-items: center;
margin: 0 auto;
width: max-content;
display: flex;
align-items: center;
margin: 0 auto;
.customTransfer {
.el-transfer-panel__item.el-checkbox .el-checkbox__label {
line-height: 35px;
}
.el-transfer-panel {
width: 250px;
.el-transfer-panel__body {
height: 300px;
.el-transfer-panel__list.is-filterable {
height: 80%;
}
.customTransfer {
.el-transfer-panel__item.el-checkbox .el-checkbox__label {
line-height: 35px;
}
.el-transfer-panel__item {
margin-right: 0;
}
.el-transfer-panel {
width: 250px;
.el-transfer-panel__item:hover {
background-color: $formItemBackgroundColor;
color: $fedexButton;
}
}
.el-transfer-panel__body {
height: 300px;
.el-checkbox__inner {
min-height: 1.25rem !important;
}
.el-transfer-panel__list.is-filterable {
height: 80%;
}
.el-transfer__buttons {
padding: 0px 10px;
.el-button {
display: block;
color: $fedexButton ;
text-align: center;
margin-left: 0;
border: none !important;
.el-transfer-panel__item {
margin-right: 0;
}
i {
font-size: 16px;
font-weight: 700;
}
.el-transfer-panel__item:hover {
background-color: $formItemBackgroundColor;
color: $fedexButton;
}
}
.el-checkbox__inner {
min-height: 1.25rem !important;
}
}
}
.el-transfer__buttons {
padding: 0px 10px;
.el-button {
display: block;
color: $fedexButton;
text-align: center;
margin-left: 0;
border: none !important;
i {
font-size: 16px;
font-weight: 700;
}
}
}
}
.transfer-rightOption {
padding: 0 10px;
.transfer-rightOption {
padding: 0 10px;
.el-button {
display: block;
margin-left: 0px;
margin-bottom: 10px;
.el-button {
display: block;
margin-left: 0px;
margin-bottom: 10px;
i {
font-size: 16px;
font-weight: 700;
}
}
i {
font-size: 16px;
font-weight: 700;
}
}
}
}
.imgCheck {
margin: 10px;
margin: 10px;
.el-checkbox__label {
font-size: 16px !important;
font-weight: 700 !important;
}
.el-checkbox__label {
font-size: 16px !important;
font-weight: 700 !important;
}
}
.historyEmpty {
.el-empty__description {
font-weight: 700;
.el-empty__description {
font-weight: 700;
p {
font-size: 24px;
}
p {
font-size: 24px;
}
}
}
.tablePagination {
.el-pagination__rightwrapper {
margin-left: 10px;
}
.el-pagination__rightwrapper {
margin-left: 10px;
}
.el-pagination__jump {
margin-right: 10px;
.el-pagination__jump {
margin-right: 10px;
.el-input>input {
border: none;
border-bottom: 1px solid #dcdfe6;
}
.el-input > input {
border: none;
border-bottom: 1px solid #dcdfe6;
}
}
}
.el-popover:has(.textareaPopover) {
padding: 0px;
padding: 0px;
}
.textareaPopover {
background-color: $fedexTablebackgroundColor;
background-color: $fedexTablebackgroundColor;
textarea {
border: none;
}
textarea {
border: none;
}
}
.textareaPopover+.popper__arrow {
display: none;
.textareaPopover + .popper__arrow {
display: none;
}
.el-picker-panel__body {
.is-left {
.el-date-range-picker__header {
div:before {
content: '起 ';
}
}
.is-left {
.el-date-range-picker__header {
div:before {
content: "起 ";
}
}
}
.is-right {
.el-date-range-picker__header {
div:before {
content: '止 ';
}
}
.is-right {
.el-date-range-picker__header {
div:before {
content: "止 ";
}
}
}
}
.addLogin {
.el-input__inner {
border: 1px solid #DCDFE6 !important;
}
.el-input__inner {
border: 1px solid #dcdfe6 !important;
}
}
.authorizationForm {
.fedexFormStyle .el-form-item .el-form-item__label {
transform: translate3d(0, 3px, 0);
}
.fedexFormStyle .el-form-item .el-form-item__label {
transform: translate3d(0, 3px, 0);
}
.fedexFormStyle .el-form-item:has(.inputFocus) .el-form-item__label {
transform: translate3d(0, -5px, 0);
}
.fedexFormStyle .el-form-item:has(.inputFocus) .el-form-item__label {
transform: translate3d(0, -5px, 0);
}
.el-form-item:has(.el-form-item__error) {
margin-bottom: 10px !important;
}
.el-form-item:has(.el-form-item__error) {
margin-bottom: 10px !important;
}
.el-form-item {
.el-form-item__label {
padding-bottom: 0px;
}
.el-form-item {
.el-form-item__label {
padding-bottom: 0px;
}
}
}
.fedexCollapse {
border: 0px;
border: 0px;
.el-collapse-item {
margin-bottom: 2px;
.el-collapse-item {
margin-bottom: 2px;
.el-collapse-item__header {
font-size: 14px;
border: 0px;
padding-left: 10px;
font-weight: 600;
color: #333;
background-color: $formItemBackgroundColor;
.el-collapse-item__arrow {
font-size: 16px;
font-weight: 600;
transform: rotate(-90deg);
color: $fedexButton;
}
.el-collapse-item__header {
font-size: 14px;
border: 0px;
padding-left: 10px;
font-weight: 600;
color: #333;
background-color: $formItemBackgroundColor;
.el-collapse-item__arrow {
font-size: 16px;
font-weight: 600;
transform: rotate(-90deg);
color: $fedexButton;
}
.el-collapse-item__arrow.is-active {
transform: rotate(90deg);
}
}
.el-collapse-item__arrow.is-active {
transform: rotate(90deg);
}
}
.el-collapse-item__header.focusing:focus:not(:hover) {
color: #333 !important;
}
.el-collapse-item__header.focusing:focus:not(:hover) {
color: #333 !important;
}
.el-collapse-item__wrap {
border-top: 1px solid $fedexBorder;
border-bottom: 0px;
background-color: $formItemBackgroundColor;
.el-collapse-item__content {
padding: 0px;
ul {
margin: 10px 25px;
padding: 0;
font-size: 12px;
font-weight: 400;
color: #999;
}
}
.el-collapse-item__wrap {
border-top: 1px solid $fedexBorder;
border-bottom: 0px;
background-color: $formItemBackgroundColor;
.el-collapse-item__content {
padding: 0px;
ul {
margin: 10px 25px;
padding: 0;
font-size: 12px;
font-weight: 400;
color: #999;
}
}
}
}
}
.systemParametersCollapse {
.el-collapse-item__header {
background-color: $fedexTablebackgroundColor;
}
.el-collapse-item__header {
background-color: $fedexTablebackgroundColor;
}
}
.systemConfigForm {
.el-form-item:not(.is-error) {
margin-bottom: 0px;
}
.el-form-item:not(.is-error) {
margin-bottom: 0px;
}
.el-form-item:has(.is-error) {
margin-bottom: 22px;
}
.el-form-item:has(.is-error) {
margin-bottom: 22px;
}
}
.systemDialog {
.el-dialog {
margin-top: 1vh !important;
}
.el-dialog {
margin-top: 1vh !important;
}
}
.approvalRemark {
.el-textarea {
background-color: $formItemBackgroundColor;
.el-textarea {
background-color: $formItemBackgroundColor;
textarea {
background-color: $formItemBackgroundColor !important;
border: none !important;
}
textarea {
background-color: $formItemBackgroundColor !important;
border: none !important;
}
}
}
.activeFormItemInfo {
.el-input__inner,
input {
font-weight: 700 !important;
color: #333 !important;
}
.el-input__inner,
input {
font-weight: 700 !important;
color: #333 !important;
}
}
.activeFormItemWarning {
.el-input__inner,
input {
font-weight: 700 !important;
color: $fedexBottonColor !important;
}
.el-input__inner,
input {
font-weight: 700 !important;
color: $fedexBottonColor !important;
}
}
.activeFormItemError {
.el-input__inner,
input {
font-weight: 700 !important;
color: $fedexError !important;
}
.el-input__inner,
input {
font-weight: 700 !important;
color: $fedexError !important;
}
}
.portLogPopper {
border: 2px solid $fedexColor;
// background-color: rgba(77, 20, 140, 0.1) !important;
border: 2px solid $fedexColor;
// background-color: rgba(77, 20, 140, 0.1) !important;
// th,
// td {
// background-color: rgba(77, 20, 140, 0.1) !important;
// }
// th,
// td {
// background-color: rgba(77, 20, 140, 0.1) !important;
// }
// ::-webkit-scrollbar-track {
// background-color: rgba(77, 20, 140, 0.1) !important;
// }
// ::-webkit-scrollbar-track {
// background-color: rgba(77, 20, 140, 0.1) !important;
// }
}
.hourDatePicker {
.el-button--text {
display: none;
}
.el-button--text {
display: none;
}
.el-time-spinner__wrapper {
width: 100%;
}
.el-time-spinner__wrapper {
width: 100%;
}
.el-scrollbar:nth-child(2) {
display: none;
}
.el-scrollbar:nth-child(2) {
display: none;
}
}
.multipleElSelect {
.el-select__tags {
max-height: 25px !important;
overflow-y: auto;
.el-select__tags {
max-height: 25px !important;
overflow-y: auto;
.el-select__input {
position: absolute;
top: -2000px
}
.el-select__input {
position: absolute;
top: -2000px;
}
}
}
.systemVerError {
width: 700px !important;
width: 700px !important;
}
.activeRow {
td {
background-color: #e8f7fd !important;
}
td {
background-color: #e8f7fd !important;
}
}
.dbDataTable {
.el-table__row {
.is-right {
.cell {
min-height: 37px;
}
}
.el-table__row {
.is-right {
.cell {
min-height: 37px;
}
}
}
}
.dbDataDialog {
.el-dialog__body {
padding: 10px 20px;
}
.el-dialog__body {
padding: 10px 20px;
}
}
.checkBoxGroupStyle1 {
label {
.el-checkbox__label {
font-size: 12px;
font-weight: 600;
}
label {
.el-checkbox__label {
font-size: 12px;
font-weight: 600;
}
}
.is-checked {
.el-checkbox__label {
color: $fedexButton !important;
}
.is-checked {
.el-checkbox__label {
color: $fedexButton !important;
}
}
}
.portCheckDom {
.el-radio-group {
.el-radio__label {
font-weight: 600;
color: #333;
}
.el-radio-group {
.el-radio__label {
font-weight: 600;
color: #333;
}
}
}
.classCUploadDialog {
.el-dialog__body {
padding: 10px 20px;
}
.el-dialog__body {
padding: 10px 20px;
}
}
.fedexPortDetail {
.el-form-item {
// box-shadow: 0px 3px 0.3rem 0.3px rgba(229, 242, 248, 0.8)
}
.el-form-item {
// box-shadow: 0px 3px 0.3rem 0.3px rgba(229, 242, 248, 0.8)
}
}
.el-table,
.fedexTableBlack {
.el-table__body-wrapper {
.el-table__body {
tbody {
.tableErrorRow {
td,
.table_cell {
background-color: rgba(222, 0, 46, 0.2) !important;
}
}
.tableErrorRow:hover {
td,
.table_cell {
background-color: rgba(222, 0, 46, 0.2) !important;
}
}
}
.el-table__body-wrapper {
.el-table__body {
tbody {
.tableErrorRow {
td,
.table_cell {
background-color: rgba(222, 0, 46, 0.2) !important;
}
}
.tableErrorRow:hover {
td,
.table_cell {
background-color: rgba(222, 0, 46, 0.2) !important;
}
}
}
}
}
}
.radioStatus {
.el-radio {
.el-radio__label {
font-weight: 700;
color: $fedexButton !important;
}
.el-radio {
.el-radio__label {
font-weight: 700;
color: $fedexButton !important;
}
}
}
.costValueInput {
.el-input__suffix {
top: -2px !important;
}
.el-input__suffix {
top: -2px !important;
}
}
// #eagleMapContainer {
// overflow-y: auto;
// margin-top: 10px;
......@@ -1948,4 +1886,4 @@ input:disabled {
// /*定义右下角汇合处的样式*/
// #eagleMapContainer::-webkit-scrollbar-corner {
// background: rgba(0, 0, 0, 0.2);
// }
\ No newline at end of file
// }
......
......@@ -31,7 +31,14 @@
:pageSizes="[20, 30, 50, 100]"
:totalCount="0"
:loading="tableLoading"
:emptyText="(loadingDatas && !rowData.popoverData.length) ? '数据加载中' : $t('portEntry.emptyText')"
:emptyText="
loadingDatas &&
rowData &&
rowData.popoverData &&
!rowData.popoverData.length
? '数据加载中'
: $t('portEntry.emptyText')
"
height="350px"
maxHeight="500px"
rowKey="id"
......@@ -82,20 +89,20 @@ export default {
},
data() {
return {
tableLoading: false
tableLoading: false,
};
},
computed:{
loadingDatas(){
return this.$store.state.viewOption.loadingDatas
}
computed: {
loadingDatas() {
return this.$store.state.viewOption.loadingDatas;
},
},
methods: {
//弹框关闭
popoverClose() {
this.$emit("popoverClose");
this.parentDom.$refs.tables.$refs.bodyWrapper.style.overflowY = "auto";
this.$store.dispatch('setLoadingState', true)
this.$store.dispatch("setLoadingState", true);
},
//弹框状态改版
popoverChange(data, type) {
......
import Vue from 'vue'
import Router from 'vue-router'
import Vue from "vue";
import Router from "vue-router";
Vue.use(Router)
Vue.use(Router);
/* Layout */
import Layout from '@/layout'
import ParentView from '@/components/ParentView';
import Layout from "@/layout";
import ParentView from "@/components/ParentView";
/**
* Note: 路由配置项
......@@ -28,37 +28,37 @@ import ParentView from '@/components/ParentView';
// 公共路由
export const constantRoutes = [
{
path: '/redirect',
path: "/redirect",
component: Layout,
hidden: true,
children: [
{
path: '/redirect/:path(.*)',
component: (resolve) => require(['@/views/redirect'], resolve)
}
]
path: "/redirect/:path(.*)",
component: (resolve) => require(["@/views/redirect"], resolve),
},
],
},
{
path: '/404',
component: (resolve) => require(['@/views/error/404'], resolve),
hidden: true
path: "/404",
component: (resolve) => require(["@/views/error/404"], resolve),
hidden: true,
},
{
path: '/401',
component: (resolve) => require(['@/views/error/401'], resolve),
hidden: true
path: "/401",
component: (resolve) => require(["@/views/error/401"], resolve),
hidden: true,
},
{
path: '/login',
component: (resolve) => require(['@/views/login'], resolve),
path: "/login",
component: (resolve) => require(["@/views/login"], resolve),
hidden: true,
meta: { noCache: true }
meta: { noCache: true },
},
{
path: '/relogin',
component: (resolve) => require(['@/views/redjrectLogin'], resolve),
path: "/relogin",
component: (resolve) => require(["@/views/redjrectLogin"], resolve),
hidden: true,
meta: { noCache: true, breadcrumb: false }
meta: { noCache: true, breadcrumb: false },
},
// {
// path: '',
......@@ -82,10 +82,10 @@ export const constantRoutes = [
// ]
// },
{
path: '/reporting',
path: "/reporting",
component: Layout,
hidden: false,
meta: { title: '申报数据管理', icon: 'upload' },
meta: { title: "申报数据管理", icon: "upload" },
children: [
// {
// path: '/reportingData',
......@@ -95,19 +95,20 @@ export const constantRoutes = [
// meta: { title: '申报数据管理', icon: 'upload' }
// },
{
path: '/editReportingData',
component: (resolve) => require(['@/views/editReportingData/index'], resolve),
path: "/editReportingData",
component: (resolve) =>
require(["@/views/editReportingData/index"], resolve),
hidden: true,
name: 'EditReportingData',
meta: { title: '申报数据编辑', icon: 'edit' }
name: "EditReportingData",
meta: { title: "申报数据编辑", icon: "edit" },
},
]
],
},
{
path: '/export',
path: "/export",
component: Layout,
hidden: false,
meta: { title: '查询管理', icon: 'fedexExportIcon' },
meta: { title: "查询管理", icon: "fedexExportIcon" },
children: [
// {
// path: '/exportBillQuery',
......@@ -117,25 +118,28 @@ export const constantRoutes = [
// meta: { title: '出口订单查询', icon: '' },
// },
{
path: '/exportBillDetail',
component: (resolve) => require(['@/views/exportBillDetail/index'], resolve),
path: "/exportBillDetail",
component: (resolve) =>
require(["@/views/exportBillDetail/index"], resolve),
hidden: true,
name: 'ExportBillDetail',
meta: { title: '出口订单详情', icon: '' },
name: "ExportBillDetail",
meta: { title: "出口订单详情", icon: "" },
},
{
path: '/exportTransportDetail',
component: (resolve) => require(['@/views/exportTransportDetail/index'], resolve),
path: "/exportTransportDetail",
component: (resolve) =>
require(["@/views/exportTransportDetail/index"], resolve),
hidden: true,
name: 'ExportTransportDetail',
meta: { title: '出口运单详情', icon: '' },
name: "ExportTransportDetail",
meta: { title: "出口运单详情", icon: "" },
},
{
path: '/exportListDetail',
component: (resolve) => require(['@/views/exportListDetail/index'], resolve),
path: "/exportListDetail",
component: (resolve) =>
require(["@/views/exportListDetail/index"], resolve),
hidden: true,
name: 'ExportListDetail',
meta: { title: '出口清单详情', icon: '' },
name: "ExportListDetail",
meta: { title: "出口清单详情", icon: "" },
},
// {
// path: '/exportTransportBillQuery',
......@@ -159,18 +163,20 @@ export const constantRoutes = [
// meta: { title: '清单总分单查询', icon: '' }
// },
{
path: '/listBranchDetail',
component: (resolve) => require(['@/views/listBranchDetail/index'], resolve),
name: 'ListBranchDetail',
path: "/listBranchDetail",
component: (resolve) =>
require(["@/views/listBranchDetail/index"], resolve),
name: "ListBranchDetail",
hidden: true,
meta: { title: '清单总分单详情', icon: '' }
meta: { title: "清单总分单详情", icon: "" },
},
{
path: '/logisticsExitDetail',
component: (resolve) => require(['@/views/logisticsExitDetail/index'], resolve),
name: 'LogisticsExitDetail',
path: "/logisticsExitDetail",
component: (resolve) =>
require(["@/views/logisticsExitDetail/index"], resolve),
name: "LogisticsExitDetail",
hidden: true,
meta: { title: '物流离境单详情', icon: '' }
meta: { title: "物流离境单详情", icon: "" },
},
// {
// path: '/logisticsExitQuery',
......@@ -184,20 +190,20 @@ export const constantRoutes = [
// name: 'ExportRevokeBillQuery',
// meta: { title: '出口撤销单查询', icon: '' }
// }
]
],
},
{
path: '/summary',
path: "/summary",
component: Layout,
hidden: false,
meta: { title: '汇总申报', icon: 'fedexSummary' },
meta: { title: "汇总申报", icon: "fedexSummary" },
children: [
{
path: '/summary',
component: (resolve) => require(['@/views/summaryEdit/index'], resolve),
path: "/summary",
component: (resolve) => require(["@/views/summaryEdit/index"], resolve),
hidden: false,
name: 'Summary',
meta: { title: '汇总申报', icon: '' }
name: "Summary",
meta: { title: "汇总申报", icon: "" },
},
// {
// path: '/summaryDataSearch',
......@@ -207,13 +213,14 @@ export const constantRoutes = [
// meta: { title: '汇总申请单查询', icon: '' }
// }
{
path: '/summaryDetail',
component: (resolve) => require(['@/views/summaryDetail/index'], resolve),
name: 'SummaryDetail',
path: "/summaryDetail",
component: (resolve) =>
require(["@/views/summaryDetail/index"], resolve),
name: "SummaryDetail",
hidden: true,
meta: { title: '汇总申请单详情', icon: '' }
}
]
meta: { title: "汇总申请单详情", icon: "" },
},
],
},
// {
// path: '/system',
......@@ -256,13 +263,13 @@ export const constantRoutes = [
// name: 'RoleConfig',
// meta: { title: '角色管理权限', icon: '' }
// },
// 监管场所管理 supervise-place-manage
// ]
// },
]
];
export default new Router({
mode: 'hash', // 去掉url中的#
mode: "hash", // 去掉url中的#
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})
routes: constantRoutes,
});
......
<template>
<el-dialog
class="entryDialog classCUploadDialog"
:title="title"
:visible.sync="outerVisible"
:show-close="false"
width="25%"
:close-on-click-modal="false"
:destroy-on-close="true"
v-loading="loadings.dialogLoading"
@close="close"
>
<div class="modelItem">
<el-form
v-if="type != 'menuChange'"
class="fedexFormStyle"
ref="formData"
:model="formData"
:rules="rules"
label-position="top"
size="small"
>
<Formitem label="上级名称" prop="parentMenuId" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-roleName"
resize="none"
v-model="formData.parentMenuId"
clearable
placeholder=""
></el-input>
</Formitem>
<Formitem label="菜单名称" prop="menuName" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-roleName"
resize="none"
v-model="formData.menuName"
clearable
placeholder=""
></el-input>
</Formitem>
<Formitem label="菜单名称" prop="menuName" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-roleName"
resize="none"
v-model="formData.menuName"
clearable
placeholder=""
></el-input>
</Formitem>
<Formitem label="菜单名称" prop="menuName" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-roleName"
resize="none"
v-model="formData.menuName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-form>
<el-tree
ref="tree"
class="menuTree"
v-else
:data="treeData"
show-checkbox
default-expand-all
node-key="id"
:default-expanded-keys="expandedKeys"
:default-checked-keys="checkedKeys"
:props="defaultProps"
@check="treeCheckChange"
>
</el-tree>
</div>
<div class="dialogOption entrySave">
<el-button
class="entrySaveButton"
:disabled="loadings.submitLoading"
@click="submit"
>确 定</el-button
>
<el-button
class="entrySaveButton"
:disabled="loadings.uploadLoading"
@click="close"
>关 闭</el-button
>
</div>
</el-dialog>
</template>
<script>
import {
addRoleData,
updateRoleData,
updateRoleMenuData,
getMenuByRoleId,
} from "@/api/system/user.js";
import { getRouters } from "@/api/menu";
export default {
props: {
outerVisible: {
type: Boolean,
default: false,
},
title: {
type: String,
default: "新增角色",
},
type: {
type: String,
default: "",
},
active: {
type: Object,
default: null,
},
},
watch: {
outerVisible(val) {
if (val) {
this.loadings.dialogLoading = false;
if (this.type == "update") {
this.formData = this.active;
} else if (this.type == "menuChange") {
this.formData = this.active;
this.searchTreeData();
this.loadCheckedKeys(); //加载已绑定的菜单
}
}
},
},
data() {
return {
formData: {
menuName: "",
icon: "",
order: 0,
parentMenuId: 0, //父级菜单id
physicalUrl: "", //前端地址
url: "", //后端地址
},
treeData: [],
treeCheckData: [],
expandedKeys: [],
checkedKeys: [],
rules: {
menuName: [
{
required: true,
trigger: "blur",
message: "菜单名称不能为空!",
},
],
},
defaultProps: {
children: "children",
label: "label",
},
searchForm: {},
loadings: {
dialogLoading: false,
uploadLoading: false,
submitLoading: false,
},
loadingText: "",
};
},
methods: {
//查询菜单数据
searchTreeData() {
this.loadings.dialogLoading = true;
getRouters()
.then((res) => {
if (res.code === "200") {
let arr = [];
res.data.forEach((item) => {
let status = true;
if (item.parentMenuId == 0) {
let obj = {
id: item.menuId,
label: item.menuName,
children: [],
};
arr.forEach((menuItem) => {
if (menuItem.id == item.menuId) {
status = false;
menuItem.label = item.menuName;
}
});
if (status) {
arr.push(obj);
}
} else {
let obj = {
id: item.menuId,
label: item.menuName,
};
arr.forEach((menuItem) => {
if (menuItem.id == item.parentMenuId) {
status = false;
menuItem.children.push(obj);
}
});
if (status) {
arr.push({
id: item.parentMenuId,
label: "",
children: [obj],
});
}
}
});
this.treeData = arr;
} else {
this.alertWarningMsg(res.message);
}
this.loadings.dialogLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
//数据保存
submit() {
this.loadings.dialogLoading = true;
let obj = {};
if (this.type == "add") {
this.$refs.formData.validate((valid) => {
if (valid) {
obj.menuName = this.formData.menuName;
this.addapi(obj);
} else {
this.loadings.dialogLoading = false;
}
});
} else if (this.type == "update") {
this.$refs.formData.validate((valid) => {
if (valid) {
obj.roleId = this.formData.roleId;
obj.menuName = this.formData.menuName;
this.updateapi(obj);
} else {
this.loadings.dialogLoading = false;
}
});
} else if (this.type == "menuChange") {
obj.menuId = this.treeCheckData; // 使用合并后的选中节点
obj.roleId = this.formData.roleId;
this.menuChangeapi(obj);
}
},
//新增
addapi(val) {
addRoleData(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close();
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
//修改
updateapi(val) {
updateRoleData(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close();
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
//菜单权限修改
menuChangeapi(val) {
updateRoleMenuData(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close();
this.$store.dispatch("GenerateRoutes");
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
treeCheckChange(data, checked) {
console.log(data, checked);
let arr = [];
arr = checked.checkedKeys.concat(checked.halfCheckedKeys);
this.treeCheckData = arr;
},
close() {
this.formData = {
menuName: "",
};
this.checkedKeys = [];
this.$emit("close");
},
// 加载已绑定的菜单
loadCheckedKeys() {
if (this.formData.roleId) {
getMenuByRoleId(this.formData.roleId)
.then((res) => {
if (res.code === "200") {
this.checkedKeys = res.data
.filter((item) => item.isBinding && item.parentMenuId != 0)
.map((item) => item.menuId);
//console.log('初始 checkedKeys:', this.checkedKeys);
this.$nextTick(() => {
this.$refs.tree.setCheckedKeys(this.checkedKeys);
this.updateTreeCheckData();
});
} else {
this.alertWarningMsg(res.message);
}
})
.catch((err) => {
console.log(err);
});
}
},
//加载选中的节点及半选中的父节点
updateTreeCheckData() {
const checkedKeys = this.$refs.tree.getCheckedKeys();
const halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys();
this.treeCheckData = checkedKeys.concat(halfCheckedKeys);
//console.log('合并后的 treeCheckData:', this.treeCheckData);
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/styles/variables.scss";
.menuTree {
max-width: 350px;
max-height: 300px;
overflow: auto;
margin: 0 auto;
border: 1px solid #999;
padding: 10px;
}
</style>
<template>
<div class="entrySreach">
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="sreachFormData"
label-position="top"
size="small"
>
<el-row class="row-border">
<!-- 角色名称 -->
<el-col :span="5">
<Formitem label="菜单名称" prop="menuName">
<el-input
type="text"
class="inputShadow"
id="inputInner--roleName"
resize="none"
v-model="sreachFormData.menuName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="2">
<el-form-item class="textCenter">
<el-button
class="entrySreachButton"
type="text"
icon="el-icon-search"
:loading="loadings.searchLoading"
@click="search(0)"
></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="optionButton">
<el-button
class="entrySaveButton"
icon="el-icon-plus"
size="small"
@click="addHandle"
>
新增菜单
</el-button>
</div>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
:data="tableData"
:headerData="headerData"
:maxHeight="tableMaxheight"
:border="true"
:pagination="true"
:order="false"
:loading="loadings.searchLoading"
:page="page.pageIndex"
:pageSizes="[20, 30, 50, 100]"
:totalCount="page.total"
@sizeChange="sizeChange"
@currentChange="currentChange"
:selection="false"
:selectFixed="false"
:rowSelectDataType="false"
>
<template slot="optionColumn">
<el-table-column align="left" label="操作">
<template slot-scope="scope">
<el-button type="text" @click="update(scope.row)">
角色修改
</el-button>
<el-button type="text" @click="muenChange(scope.row)">
权限绑定
</el-button>
</template>
</el-table-column>
</template>
</Table>
<DialogVue
:outerVisible="outerVisible"
:title="dialogTitle"
:type="editType"
:active="activeData"
@close="dialogClose"
/>
</div>
</template>
<script>
import { getRoleList } from "@/api/system/user.js";
import DialogVue from "./dialog.vue";
import { addMenu, deleteMenu } from "@/api/menu";
export default {
name: "SupervisePlaceManage",
components: {
DialogVue,
},
data() {
return {
sreachFormData: {
menuName: "",
},
page: {
pageIndex: 1,
pageSize: 20,
total: 0,
},
activeData: null,
tableData: [],
headerData: [
{
name: "角色名",
value: "roleName",
width: "",
align: "left",
},
],
loadings: {
searchLoading: false,
},
tableMaxheight: null,
outerVisible: false,
dialogTitle: "",
editType: "",
};
},
created() {
this.search(0);
},
mounted() {
this.tableMaxheight = window.innerHeight - 300;
},
methods: {
//查询
search(val) {
this.loadings.searchLoading = true;
if (val == 0) {
this.page.pageIndex = 1;
}
let obj = this.sreachFormData;
obj.pageIndex = this.page.pageIndex;
obj.pageSize = this.page.pageSize;
getRoleList(obj)
.then((res) => {
if (res.code === "200") {
this.tableData = res.data.value;
this.page.total = res.data.totalItems;
this.tableData.forEach((item, idx) => {
item.index = idx;
});
} else {
this.alertWarningMsg(res.message);
}
this.loadings.searchLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.searchLoading = false;
});
},
addHandle() {
// this.dialogTitle = "新增菜单";
// this.editType = "add";
// this.outerVisible = true;
// let params = {
// icon: "",
// menuName: "监管场所管理",
// order: 4.4,
// parentMenuId: 90,
// physicalUrl: "/supervise-place-manage",
// url: "",
// };
deleteMenu({
menuId: 1,
}).then((res) => {
console.log(res);
});
// addMenu(params).then((res) => {
// console.log(res);
// });
},
update(val) {
this.dialogTitle = "修改角色";
this.editType = "update";
this.outerVisible = true;
this.activeData = val;
},
muenChange(val) {
this.dialogTitle = "绑定权限";
this.editType = "menuChange";
this.outerVisible = true;
this.activeData = val;
},
dialogClose() {
this.outerVisible = false;
this.activeData = null;
this.search(1);
},
//分页
currentChange(val) {
this.page.pageIndex = val.page;
this.search(1);
},
sizeChange(val) {
this.page.pageSize = val;
this.search(1);
},
input() {
this.$forceUpdate();
},
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/variables.scss";
.entrySreach {
height: 100%;
background-color: $menuLightBg;
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
}
.optionButton {
padding: 10px;
text-align: left;
.el-button {
color: $fedexButton;
border-color: $fedexButton !important;
svg {
display: inline-block;
margin-right: 5px;
fill: $fedexButton;
}
}
.entrySaveButton:hover,
.entrySaveButton:focus {
color: $menuLightBg !important;
background-color: $fedexButton !important;
}
}
}
.texttareaTip {
position: absolute;
top: 52%;
right: 20px;
transform: translate(0, -50%);
z-index: 10;
}
</style>
......@@ -137,6 +137,15 @@
>
批量修改
</el-button>
<el-button
class="entrySaveButton"
size="small"
icon="el-icon-download"
v-loading="loadings.exportDeclareLoading"
@click="downloadData"
>
导出
</el-button>
</div>
<div class="optionButton-right">
<el-dropdown
......@@ -172,13 +181,31 @@
>
</el-dropdown-menu>
</el-dropdown>
<!-- 运抵单申报按钮 -->
<el-button
size="small"
type="primary"
class="dropdown-style-button"
:loading="loadings.departureLoading"
@click="
declareData('departureLoading', '运抵单申报', 'logisticsDeparture')
"
>
<svg-icon
class="el-icon-user-solid"
icon-class="fedexDeclareIcon"
></svg-icon>
运抵单申报
</el-button>
<!-- 离境单申报按钮 -->
<el-button
size="small"
type="primary"
class="dropdown-style-button"
:loading="loadings.departureLoading"
@click="declareData('departureLoading', '离境单申报', 'logisticsDeparture')"
@click="
declareData('departureLoading', '离境单申报', 'logisticsDeparture')
"
>
<svg-icon
class="el-icon-user-solid"
......@@ -192,7 +219,7 @@
type="primary"
class="dropdown-style-button"
:loading="loadings.revokeLoading"
@click="declareData('revokeLoading', '撤销单申报' ,'cancellation')"
@click="declareData('revokeLoading', '撤销单申报', 'cancellation')"
>
<svg-icon
class="el-icon-user-solid"
......@@ -200,18 +227,9 @@
></svg-icon>
撤销单申报
</el-button>
<el-button
class="entrySaveButton"
size="small"
icon="el-icon-download"
v-loading="loadings.exportDeclareLoading"
@click="downloadData"
>
导出
</el-button>
</div>
</div>
<section style="position:fixed;top:350px;left: 500px;">
<section style="position: fixed; top: 350px; left: 500px">
<TablePopover
ref="allLogDataReceiptStatusPopover"
dataKey="allLogDataReceiptStatus"
......@@ -237,7 +255,7 @@
ref="entryTable"
:data="tableData"
:headerData="headerData"
:maxHeight="tableMaxheight"
:height="tableMaxheight"
:border="true"
:pagination="true"
:order="false"
......@@ -364,7 +382,9 @@
<el-table-column align="center" label="操作" width="150">
<template slot-scope="scope">
<el-button type="text" @click="update(scope.row)"> 修改 </el-button>
<el-button type="text" @click="showTotalLog(scope.row)">日志</el-button>
<el-button type="text" @click="showTotalLog(scope.row)"
>日志</el-button
>
</template>
</el-table-column>
</template>
......@@ -375,26 +395,27 @@
@dwonloadModelFile="dwonloadModelFile"
@close="close"
/>
<RevokeDialog
:showDialog="revokeVisible"
:selectedDatas="selected"
:dropdownCode="dropdownCode"
@cancelRevoke="cancelRevoke" />
<TemplateDownloadDialog
:showDialog="templateDownloadVisible"
@cancelDownload="cancelDownload"
/>
<ExportDialog
ref="exportDialog"
:showDialog="datasExportVisible"
@cancelDatasExport="cancelDatasExport"
@startDatasExport="startDatasExport"
/>
<BatchModify
:selectedDatas="selected"
:showDialog="batchModifyVisible"
@cancelBatchModify="cancelBatchModify"
/>
<RevokeDialog
:showDialog="revokeVisible"
:selectedDatas="selected"
:dropdownCode="dropdownCode"
@cancelRevoke="cancelRevoke"
/>
<TemplateDownloadDialog
:showDialog="templateDownloadVisible"
@cancelDownload="cancelDownload"
/>
<ExportDialog
ref="exportDialog"
:showDialog="datasExportVisible"
@cancelDatasExport="cancelDatasExport"
@startDatasExport="startDatasExport"
/>
<BatchModify
:selectedDatas="selected"
:showDialog="batchModifyVisible"
@cancelBatchModify="cancelBatchModify"
/>
</div>
</template>
......@@ -408,9 +429,9 @@ import {
getTotalReceipt,
getLogisticsReceipt,
getDeclarationLog,
exportDeclareData
exportDeclareData,
} from "@/api/declareData-api.js";
import { getDictData } from '@/api/system/dict-api.js'
import { getDictData } from "@/api/system/dict-api.js";
import DialogVue from "./dialog.vue";
import RevokeDialog from "./revokeDialog.vue";
import TemplateDownloadDialog from "./templateDownloadDialog.vue";
......@@ -423,7 +444,7 @@ export default {
RevokeDialog,
TemplateDownloadDialog,
ExportDialog,
BatchModify
BatchModify,
},
data() {
return {
......@@ -505,6 +526,14 @@ export default {
slot: true,
},
{
// release-v1.0.9
name: "运抵单回执",
value: "listReceiptStatus",
width: "",
align: "left",
slot: true,
},
{
name: "清单总分单回执",
value: "totalSplitOrderStatus",
width: "",
......@@ -577,7 +606,7 @@ export default {
dwonloadModelLoading: false,
dropDownLoading: false,
logTableLoading: false,
exportDeclareLoading:false,
exportDeclareLoading: false,
revokeLoading: false, // 撤销单申报加载状态
departureLoading: false, // 离境单申报加载状态
},
......@@ -586,10 +615,10 @@ export default {
outerVisible: false,
dropdownName: "一键申报",
dropdownCode: "full",
revokeVisible:false,
templateDownloadVisible:false,
datasExportVisible:false,
batchModifyVisible:false
revokeVisible: false,
templateDownloadVisible: false,
datasExportVisible: false,
batchModifyVisible: false,
};
},
created() {
......@@ -597,10 +626,14 @@ export default {
// this.getCancellationReasons()
},
mounted() {
this.tableMaxheight = window.innerHeight - 355;
window.addEventListener('resize',()=>{
this.tableMaxheight = window.innerHeight - 355;
},false)
this.tableMaxheight = window.innerHeight - 280;
window.addEventListener(
"resize",
() => {
this.tableMaxheight = window.innerHeight - 280;
},
false
);
},
watch: {
$route(val, oldval) {
......@@ -608,7 +641,7 @@ export default {
},
},
beforeRouteEnter(to, from, next) {
next(vm => {
next((vm) => {
// 检查标志是否需要刷新数据
if (to.meta.needsRefresh) {
vm.search(0);
......@@ -678,140 +711,147 @@ export default {
//下载模板
dwonloadModelFile() {
this.loadings.dwonloadModelLoading = true;
this.$store.dispatch("GetInfo").then(res =>{
console.log('res====', res)
if (res.code == 200) {
console.log('port===', res.data?.port?.split(','))
if (res.data?.port?.split(',').length == 2) {
this.templateDownloadVisible = true
} else {
this.$store
.dispatch("GetInfo")
.then((res) => {
console.log("res====", res);
if (res.code == 200) {
console.log("port===", res.data?.port?.split(","));
if (res.data?.port?.split(",").length == 2) {
this.templateDownloadVisible = true;
} else {
this.fileDownload
.downLoadZip(
"api",
"declareDataModel",
"申报数据模板.xlsx",
"xlsx",
"get",
{type: res.data?.port}
)
.finally(() => {
this.cancelDownload()
});
}
}
}).catch(err =>{
console.log(err)
})
.downLoadZip(
"api",
"declareDataModel",
"申报数据模板.xlsx",
"xlsx",
"get",
{ type: res.data?.port }
)
.finally(() => {
this.cancelDownload();
});
}
}
})
.catch((err) => {
console.log(err);
});
},
datasDownload(dataSource){
datasDownload(dataSource) {
let obj = {
billNo: this.sreachFormData.billNo,
declareId: [],
logisticsNo: this.sreachFormData.logisticsNo,
orderNo: this.sreachFormData.orderNo,
receiptStatus: this.sreachFormData.receiptStatus,
dataSource
};
obj.startCreateTime = "";
obj.endCreateTime = "";
if (this.sreachFormData.createTime.length > 0) {
obj.startCreateTime = this.sreachFormData.createTime[0];
obj.endCreateTime = this.sreachFormData.createTime[1];
}
this.selected.forEach((item) => {
obj.declareId.push(item.declareId);
});
exportDeclareData(obj).then((res)=>{
// if (res.code === "200") {
// // this.alertSuccessMsg(res.message);
// } else {
// console.log(res.message);
// this.alertWarningMsg(res.message);
// }
}).catch((err)=>{
console.log(err);
this.alertErrorMsg(err);
}).finally(res =>{
this.loadings.exportDeclareLoading = false;
this.datasExportVisible = false
this.$refs.exportDialog.datasExportVisible = false
})
billNo: this.sreachFormData.billNo,
declareId: [],
logisticsNo: this.sreachFormData.logisticsNo,
orderNo: this.sreachFormData.orderNo,
receiptStatus: this.sreachFormData.receiptStatus,
dataSource,
};
obj.startCreateTime = "";
obj.endCreateTime = "";
if (this.sreachFormData.createTime.length > 0) {
obj.startCreateTime = this.sreachFormData.createTime[0];
obj.endCreateTime = this.sreachFormData.createTime[1];
}
this.selected.forEach((item) => {
obj.declareId.push(item.declareId);
});
exportDeclareData(obj)
.then((res) => {
// if (res.code === "200") {
// // this.alertSuccessMsg(res.message);
// } else {
// console.log(res.message);
// this.alertWarningMsg(res.message);
// }
})
.catch((err) => {
console.log(err);
this.alertErrorMsg(err);
})
.finally((res) => {
this.loadings.exportDeclareLoading = false;
this.datasExportVisible = false;
this.$refs.exportDialog.datasExportVisible = false;
});
},
//导出
downloadData() {
this.loadings.exportDeclareLoading = true;
this.$store.dispatch("GetInfo").then(res =>{
console.log('res====', res)
if (res.code == 200) {
console.log('port===', res.data?.port?.split(','))
if (res.data?.port?.split(',').length == 2) {
this.datasExportVisible = true
} else {
this.datasDownload(res.data?.port)
}
}
}).catch(err =>{
console.log(err)
})
this.$store
.dispatch("GetInfo")
.then((res) => {
console.log("res====", res);
if (res.code == 200) {
console.log("port===", res.data?.port?.split(","));
if (res.data?.port?.split(",").length == 2) {
this.datasExportVisible = true;
} else {
this.datasDownload(res.data?.port);
}
}
})
.catch((err) => {
console.log(err);
});
},
startDatasExport(dataSource){
this.datasDownload(dataSource)
startDatasExport(dataSource) {
this.datasDownload(dataSource);
},
cancelDatasExport(){
this.datasExportVisible = false
cancelDatasExport() {
this.datasExportVisible = false;
this.loadings.exportDeclareLoading = false;
},
/**
* 通用申报方法
* @param {string} loadingKey - 加载状态的 key(如 'dropDownLoading', 'departureLoading', 'revokeLoading')
* @param {string} dropdownName - 当前操作名称(如 '撤销单申报')
* @param {string} dropdownCode - 当前操作代码(如 'full')
*/
declareData(loadingKey, dropdownName, dropdownCode) {
if (this.selected.length === 0) {
this.alertWarningMsg("请选择数据!");
return;
}
/**
* 通用申报方法
* @param {string} loadingKey - 加载状态的 key(如 'dropDownLoading', 'departureLoading', 'revokeLoading')
* @param {string} dropdownName - 当前操作名称(如 '撤销单申报')
* @param {string} dropdownCode - 当前操作代码(如 'full')
*/
declareData(loadingKey, dropdownName, dropdownCode) {
if (this.selected.length === 0) {
this.alertWarningMsg("请选择数据!");
return;
}
// 设置加载状态
this.$set(this.loadings, loadingKey, true);
// 构造请求参数
const obj = {
declareIds: this.selected.map(item => item.declareId),
type: dropdownCode,
};
// 设置加载状态
this.$set(this.loadings, loadingKey, true);
// 构造请求参数
const obj = {
declareIds: this.selected.map((item) => item.declareId),
type: dropdownCode,
};
// 如果是撤销单申报,显示弹窗并返回
if (dropdownName === '撤销单申报') {
this.revokeVisible = true;
this.$set(this.loadings, loadingKey, false);
this.dropdownCode = dropdownCode;
return;
}
// 如果是撤销单申报,显示弹窗并返回
if (dropdownName === "撤销单申报") {
this.revokeVisible = true;
this.$set(this.loadings, loadingKey, false);
this.dropdownCode = dropdownCode;
return;
}
// 提交申报数据
declareDataUpload(obj)
.then((res) => {
if (res.code === "200") {
this.alertSuccessMsg("数据已成功提交申报,请等待海关回执。");
} else {
this.alertWarningMsg(res.message);
}
})
.catch((err) => {
console.error(err);
this.alertWarningMsg("申报失败,请稍后重试。");
})
.finally(() => {
// 无论成功或失败,都重置加载状态并刷新数据
this.$set(this.loadings, loadingKey, false);
this.search(0);
});
},
// 提交申报数据
declareDataUpload(obj)
.then((res) => {
if (res.code === "200") {
this.alertSuccessMsg("数据已成功提交申报,请等待海关回执。");
} else {
this.alertWarningMsg(res.message);
}
})
.catch((err) => {
console.error(err);
this.alertWarningMsg("申报失败,请稍后重试。");
})
.finally(() => {
// 无论成功或失败,都重置加载状态并刷新数据
this.$set(this.loadings, loadingKey, false);
this.search(0);
});
},
//切换申报模式
dropdownChange(val) {
this.dropdownName = val.name;
......@@ -823,8 +863,8 @@ export default {
// }
this.search(1);
this.outerVisible = false;
this.tableMaxheight = window.innerHeight - 355;
this.$forceUpdate()
this.tableMaxheight = window.innerHeight - 280;
this.$forceUpdate();
},
popoverChange(val) {
this.tableData = val.tableData;
......@@ -839,7 +879,7 @@ export default {
})
.finally(() => {
this.$nextTick(() => {
this.$store.dispatch('setLoadingState', false)
this.$store.dispatch("setLoadingState", false);
this.$refs.orderReceiptStatusPopover.tableLoading = false;
this.$refs.wayBillReceiptPopover.tableLoading = false;
this.$refs.listReceiptStatusPopover.tableLoading = false;
......@@ -905,8 +945,7 @@ export default {
console.log(err);
reject();
});
}
else if (type == "logisticsReceiptStatus") {
} else if (type == "logisticsReceiptStatus") {
getLogisticsReceipt(obj)
.then((res) => {
if (res.code === "200") {
......@@ -919,8 +958,7 @@ export default {
console.log(err);
reject();
});
}
else if (type == "allLogDataReceiptStatus") {
} else if (type == "allLogDataReceiptStatus") {
getDeclarationLog(id)
.then((res) => {
if (res.code === "200") {
......@@ -980,13 +1018,13 @@ export default {
});
}
},
cancelRevoke(){
cancelRevoke() {
this.loadings.dropDownLoading = false;
this.revokeVisible = false
this.dropdownCode = 'full'
this.revokeVisible = false;
this.dropdownCode = "full";
},
update(val) {
this.$router.push({
this.$router.push({
name: "EditReportingData",
params: { data: val },
});
......@@ -995,42 +1033,43 @@ export default {
showTotalLog(row) {
this.$store.state.viewOption.loadingDatas = true;
this.selectedLogRow = row;
this.$set(row, 'logLoading', true);
this.$set(row, "logLoading", true);
this.receiptApi(row.declareId, "allLogDataReceiptStatus")
.then((logData) => {
this.$set(row, 'popoverData', logData);
this.receiptApi(row.declareId, "allLogDataReceiptStatus").then(
(logData) => {
this.$set(row, "popoverData", logData);
if(!this.selectedLogRow.popoverData.length){
if (!this.selectedLogRow.popoverData.length) {
this.$store.state.viewOption.loadingDatas = false;
}
// 手动触发状态更新
this.$nextTick(() => {
// 强制设置弹窗状态为true
row.allLogDataReceiptStatusPopoverType = true
row.allLogDataReceiptStatusPopoverType = true;
// 强制更新表格
this.tableData = [...this.tableData];
});
})
}
);
},
cancelDownload(){
cancelDownload() {
this.loadings.dwonloadModelLoading = false;
this.templateDownloadVisible = false
this.templateDownloadVisible = false;
},
batchModify(){
batchModify() {
if (!this.selected.length) {
this.alertWarningMsg("请选择数据!");
return
return;
}
this.batchModifyVisible = true
this.batchModifyVisible = true;
},
cancelBatchModify(val){
this.batchModifyVisible = false
if(val === 1){
cancelBatchModify(val) {
this.batchModifyVisible = false;
if (val === 1) {
this.search(0);
}
}
},
},
};
</script>
......@@ -1060,6 +1099,11 @@ export default {
color: $fedexBottonColor !important;
font-size: 12px !important;
}
.el-button.dropdown-style-button:hover,
.el-button.dropdown-style-button:focus {
color: #ffffff !important;
background-color: $fedexBottonColor !important;
}
.el-button {
color: $fedexButton;
......@@ -1087,9 +1131,9 @@ export default {
transform: translate(0, -50%);
z-index: 10;
}
.revokeOperation{
margin-bottom:25px;
.revokeSubmitBtn{
.revokeOperation {
margin-bottom: 25px;
.revokeSubmitBtn {
margin-right: 30px;
}
}
......
<template>
<el-dialog
class="entryDialog classCUploadDialog"
:title="title"
:visible.sync="outerVisible"
:show-close="false"
width="25%"
:close-on-click-modal="false"
:destroy-on-close="true"
v-loading="loadings.dialogLoading"
@close="close"
>
<div class="modelItem">
<el-form
v-if="type != 'menuChange'"
class="fedexFormStyle"
ref="formData"
:model="formData"
:rules="rules"
label-position="top"
size="small"
>
<Formitem label="角色名称" prop="roleName" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-roleName"
resize="none"
v-model="formData.roleName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-form>
<el-tree
ref="tree"
class="menuTree"
v-else
:data="treeData"
show-checkbox
default-expand-all
node-key="id"
:default-expanded-keys="expandedKeys"
:default-checked-keys="checkedKeys"
:props="defaultProps"
@check="treeCheckChange"
>
</el-tree>
</div>
<div class="dialogOption entrySave">
<el-button
class="entrySaveButton"
:disabled="loadings.submitLoading"
@click="submit"
>确 定</el-button
>
<el-button
class="entrySaveButton"
:disabled="loadings.uploadLoading"
@click="close"
>关 闭</el-button
>
</div>
</el-dialog>
</template>
<script>
import {
addRoleData,
updateRoleData,
updateRoleMenuData,
getMenuByRoleId,
} from "@/api/system/user.js";
import { getRouters } from "@/api/menu";
export default {
props: {
outerVisible: {
type: Boolean,
default: false,
},
title: {
type: String,
default: "新增角色",
},
type: {
type: String,
default: "",
},
active: {
type: Object,
default: null,
},
},
watch: {
outerVisible(val) {
if (val) {
this.loadings.dialogLoading = false;
if (this.type == "update") {
this.formData = this.active;
} else if (this.type == "menuChange") {
this.formData = this.active;
this.searchTreeData();
this.loadCheckedKeys();//加载已绑定的菜单
}
}
},
},
data() {
return {
formData: {
roleName: "",
},
treeData: [],
treeCheckData: [],
expandedKeys: [],
checkedKeys: [],
rules: {
roleName: [
{
required: true,
trigger: "blur",
message: "角色名称不能为空!",
},
],
},
defaultProps: {
children: "children",
label: "label",
},
searchForm: {},
loadings: {
dialogLoading: false,
uploadLoading: false,
submitLoading: false,
},
loadingText: "",
};
},
methods: {
//查询菜单数据
searchTreeData() {
this.loadings.dialogLoading = true;
getRouters()
.then((res) => {
if (res.code === "200") {
let arr = [];
res.data.forEach((item) => {
let status = true;
if (item.parentMenuId == 0) {
let obj = {
id: item.menuId,
label: item.menuName,
children: [],
};
arr.forEach((menuItem) => {
if (menuItem.id == item.menuId) {
status = false;
menuItem.label = item.menuName;
}
});
if (status) {
arr.push(obj);
}
} else {
let obj = {
id: item.menuId,
label: item.menuName,
};
arr.forEach((menuItem) => {
if (menuItem.id == item.parentMenuId) {
status = false;
menuItem.children.push(obj);
}
});
if (status) {
arr.push({
id: item.parentMenuId,
label: "",
children: [obj],
});
}
}
});
this.treeData = arr;
} else {
this.alertWarningMsg(res.message);
}
this.loadings.dialogLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
//数据保存
submit() {
this.loadings.dialogLoading = true;
let obj = {};
if (this.type == "add") {
this.$refs.formData.validate((valid) => {
if (valid) {
obj.roleName = this.formData.roleName;
this.addapi(obj);
} else {
this.loadings.dialogLoading = false;
}
});
} else if (this.type == "update") {
this.$refs.formData.validate((valid) => {
if (valid) {
obj.roleId = this.formData.roleId;
obj.roleName = this.formData.roleName;
this.updateapi(obj);
} else {
this.loadings.dialogLoading = false;
}
});
} else if (this.type == "menuChange") {
obj.menuId = this.treeCheckData; // 使用合并后的选中节点
obj.roleId = this.formData.roleId;
this.menuChangeapi(obj);
}
},
//新增
addapi(val) {
addRoleData(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close();
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
//修改
updateapi(val) {
updateRoleData(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close();
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
//菜单权限修改
menuChangeapi(val) {
updateRoleMenuData(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close();
this.$store.dispatch('GenerateRoutes')
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
treeCheckChange(data, checked) {
console.log(data, checked);
let arr = [];
arr = checked.checkedKeys.concat(checked.halfCheckedKeys);
this.treeCheckData = arr;
},
close() {
this.formData = {
roleName: "",
};
this.checkedKeys = []
this.$emit("close");
},
// 加载已绑定的菜单
loadCheckedKeys() {
if (this.formData.roleId) {
getMenuByRoleId(this.formData.roleId)
.then((res) => {
if (res.code === "200") {
this.checkedKeys = res.data.filter(item => item.isBinding && (item.parentMenuId!=0 ) ).map(item => item.menuId);
//console.log('初始 checkedKeys:', this.checkedKeys);
this.$nextTick(() => {
this.$refs.tree.setCheckedKeys(this.checkedKeys);
this.updateTreeCheckData();
});
} else {
this.alertWarningMsg(res.message);
}
})
.catch((err) => {
console.log(err);
});
}
},
//加载选中的节点及半选中的父节点
updateTreeCheckData() {
const checkedKeys = this.$refs.tree.getCheckedKeys();
const halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys();
this.treeCheckData = checkedKeys.concat(halfCheckedKeys);
//console.log('合并后的 treeCheckData:', this.treeCheckData);
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/styles/variables.scss";
.menuTree {
max-width: 350px;
max-height: 300px;
overflow: auto;
margin: 0 auto;
border: 1px solid #999;
padding: 10px;
}
</style>
<template>
<div class="entrySreach">
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="sreachFormData"
label-position="top"
size="small"
>
<el-row class="row-border">
<!-- 角色名称 -->
<el-col :span="5">
<Formitem label="角色名称" prop="roleName">
<el-input
type="text"
class="inputShadow"
id="inputInner--roleName"
resize="none"
v-model="sreachFormData.roleName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="角色名称" prop="roleName">
<el-input
type="text"
class="inputShadow"
id="inputInner--roleName"
resize="none"
v-model="sreachFormData.roleName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="角色名称" prop="roleName">
<el-input
type="text"
class="inputShadow"
id="inputInner--roleName"
resize="none"
v-model="sreachFormData.roleName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="2">
<el-form-item class="textCenter">
<el-button
class="entrySreachButton"
type="text"
icon="el-icon-search"
:loading="loadings.searchLoading"
@click="search(0)"
></el-button>
</el-form-item>
</el-col>
<el-col :span="2">
<!-- 清空查询条件-->
<el-form-item class="textLeft textCenter">
<el-button
type="text"
size="small"
icon="el-icon-refresh"
@click="clear"
>
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="optionButton">
<el-button
class="entrySaveButton"
icon="el-icon-plus"
size="small"
@click="addRole"
>
新增
</el-button>
</div>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
:data="tableData"
:headerData="headerData"
:maxHeight="tableMaxheight"
:border="true"
:pagination="true"
:order="false"
:loading="loadings.searchLoading"
:page="page.pageIndex"
:pageSizes="[20, 30, 50, 100]"
:totalCount="page.total"
@sizeChange="sizeChange"
@currentChange="currentChange"
:selection="false"
:selectFixed="false"
:rowSelectDataType="false"
>
<template slot="optionColumn">
<el-table-column align="left" label="操作">
<template slot-scope="scope">
<el-button type="text" @click="update(scope.row)">
角色修改
</el-button>
<el-button type="text" @click="muenChange(scope.row)">
权限绑定
</el-button>
</template>
</el-table-column>
</template>
</Table>
<DialogVue
:outerVisible="outerVisible"
:title="dialogTitle"
:type="editType"
:active="activeData"
@close="dialogClose"
/>
</div>
</template>
<script>
import { getRoleList } from "@/api/system/user.js";
import DialogVue from "./dialog.vue";
export default {
name: "SupervisePlaceManage",
components: {
DialogVue,
},
data() {
return {
sreachFormData: {
roleName: "",
},
page: {
pageIndex: 1,
pageSize: 20,
total: 0,
},
activeData: null,
tableData: [],
headerData: [
{
name: "角色名",
value: "roleName",
width: "",
align: "left",
},
],
loadings: {
searchLoading: false,
},
tableMaxheight: null,
outerVisible: false,
dialogTitle: "",
editType: "",
};
},
created() {
this.search(0);
},
mounted() {
this.tableMaxheight = window.innerHeight - 300;
},
methods: {
clear() {
this.$refs.sreachForm.resetFields();
},
//查询
search(val) {
this.loadings.searchLoading = true;
if (val == 0) {
this.page.pageIndex = 1;
}
let obj = this.sreachFormData;
obj.pageIndex = this.page.pageIndex;
obj.pageSize = this.page.pageSize;
getRoleList(obj)
.then((res) => {
if (res.code === "200") {
this.tableData = res.data.value;
this.page.total = res.data.totalItems;
this.tableData.forEach((item, idx) => {
item.index = idx;
});
} else {
this.alertWarningMsg(res.message);
}
this.loadings.searchLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.searchLoading = false;
});
},
addRole() {
this.dialogTitle = "新增角色";
this.editType = "add";
this.outerVisible = true;
},
update(val) {
this.dialogTitle = "修改角色";
this.editType = "update";
this.outerVisible = true;
this.activeData = val;
},
muenChange(val) {
this.dialogTitle = "绑定权限";
this.editType = "menuChange";
this.outerVisible = true;
this.activeData = val;
},
dialogClose() {
this.outerVisible = false;
this.activeData = null;
this.search(1);
},
//分页
currentChange(val) {
this.page.pageIndex = val.page;
this.search(1);
},
sizeChange(val) {
this.page.pageSize = val;
this.search(1);
},
input() {
this.$forceUpdate();
},
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/variables.scss";
.entrySreach {
height: 100%;
background-color: $menuLightBg;
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
}
.optionButton {
padding: 10px;
text-align: left;
.el-button {
color: $fedexButton;
border-color: $fedexButton !important;
svg {
display: inline-block;
margin-right: 5px;
fill: $fedexButton;
}
}
.entrySaveButton:hover,
.entrySaveButton:focus {
color: $menuLightBg !important;
background-color: $fedexButton !important;
}
}
}
.texttareaTip {
position: absolute;
top: 52%;
right: 20px;
transform: translate(0, -50%);
z-index: 10;
}
</style>