提交 c2d89a87 编写于 作者: ibizdev's avatar ibizdev

tony001 发布系统代码 [后台服务,演示应用]

上级 8d077d84

要显示的变更太多。

为了保持性能,仅显示文件中的 1000/1000+

...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
### 3. 开发技术要求 ### 3. 开发技术要求
掌握`Vue``TypeScript``less``html`等技术。 掌握`Vue``TypeScript``scss``html`等技术。
### 4. 技术栈 ### 4. 技术栈
...@@ -130,7 +130,7 @@ $ yarn build ...@@ -130,7 +130,7 @@ $ yarn build
​ |─ ─ XXX-view 视图文件夹 ​ |─ ─ XXX-view 视图文件夹
|─ ─ XXX-view-base.vue 视图基类 |─ ─ XXX-view-base.vue 视图基类
|─ ─ XXX-view.vue 自定义视图文件 |─ ─ XXX-view.vue 自定义视图文件
|─ ─ XXX-view.less 自定义视图样式文件 |─ ─ XXX-view.scss 自定义视图样式文件
​ |─ ─ main.ts 应用主函数入口 ​ |─ ─ main.ts 应用主函数入口
​ |─ ─ page-register.ts 全局视图注册 ​ |─ ─ page-register.ts 全局视图注册
​ |─ ─ router.ts 路由配置文件 ​ |─ ─ router.ts 路由配置文件
...@@ -142,8 +142,8 @@ $ yarn build ...@@ -142,8 +142,8 @@ $ yarn build
|─ ─ YYY-logic.ts 自定义应用实体数据处理逻辑文件 |─ ─ YYY-logic.ts 自定义应用实体数据处理逻辑文件
|─ ─ store 全局状态管理 |─ ─ store 全局状态管理
|─ ─ styles 样式文件夹 |─ ─ styles 样式文件夹
|─ ─ default.less 默认样式 |─ ─ default.scss 默认样式
|─ ─ user.less 用户自定义样式 |─ ─ user.scss 用户自定义样式
|─ ─ theme 主题文件夹 |─ ─ theme 主题文件夹
|─ ─ uiservice 界面服务文件 |─ ─ uiservice 界面服务文件
|─ ─ XXX 应用实体名称 |─ ─ XXX 应用实体名称
...@@ -158,7 +158,7 @@ $ yarn build ...@@ -158,7 +158,7 @@ $ yarn build
​ |─ ─ XXX 部件名称 ​ |─ ─ XXX 部件名称
|─ ─ XXX-base.vue 视图基类 |─ ─ XXX-base.vue 视图基类
|─ ─ XXX.vue 自定义部件文件 |─ ─ XXX.vue 自定义部件文件
|─ ─ XXX.less 部件样式文件 |─ ─ XXX.scss 部件样式文件
​ |─ ─ XXX.model.ts 部件model文件 ​ |─ ─ XXX.model.ts 部件model文件
​ |─ ─ XXX.service.ts 部件服务文件 ​ |─ ─ XXX.service.ts 部件服务文件
|─ ─ app-register.ts 公共组件全局注册 |─ ─ app-register.ts 公共组件全局注册
......
...@@ -61,8 +61,8 @@ ...@@ -61,8 +61,8 @@
"@vue/test-utils": "1.0.0-beta.29", "@vue/test-utils": "1.0.0-beta.29",
"axios-mock-adapter": "^1.17.0", "axios-mock-adapter": "^1.17.0",
"compression-webpack-plugin": "^4.0.0", "compression-webpack-plugin": "^4.0.0",
"less": "^3.0.4", "sass-loader": "^10.2.1",
"less-loader": "^5.0.0", "node-sass": "^6.0.1",
"mockjs": "^1.1.0", "mockjs": "^1.1.0",
"script-loader": "^0.7.2", "script-loader": "^0.7.2",
"typescript": "^4.0.3", "typescript": "^4.0.3",
......
html, body {
height: 100%;
}
.app-error-view {
height: 100%;
width: 100%;
.app-error-container {
height: 380px;
width: 670px;
position: absolute;
top: calc((100% - 400px) / 2);
left: calc((100% - 670px) / 2);
display: flex;
align-items: center;
.error-text {
padding-left: 20px;
.error-text1 {
font-size: 20px;
margin-bottom: 20px;
}
.error-text2 {
font-size: 14px;
}
}
}
}
\ No newline at end of file
...@@ -28,6 +28,6 @@ export default class Error404 extends Vue { ...@@ -28,6 +28,6 @@ export default class Error404 extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './404.less'; @import './404.scss';
</style> </style>
\ No newline at end of file
html, body {
height: 100%;
}
.app-error-view {
height: 100%;
width: 100%;
.app-error-container {
height: 380px;
width: 670px;
position: absolute;
top: calc((100% - 400px) / 2);
left: calc((100% - 670px) / 2);
display: flex;
align-items: center;
.error-text {
padding-left: 20px;
.error-text1 {
font-size: 20px;
margin-bottom: 20px;
}
.error-text2 {
font-size: 14px;
}
}
}
}
\ No newline at end of file
...@@ -28,6 +28,6 @@ export default class Error404 extends Vue { ...@@ -28,6 +28,6 @@ export default class Error404 extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './500.less'; @import './500.scss';
</style> </style>
\ No newline at end of file
.action-timeline-table {
width: calc(100% - 60px);
margin: 0 30px;
border-collapse:separate;
border-spacing:0px 40px;
.action-timeline-thead {
th:nth-child(1) {
min-width: 200px;
}
th:nth-child(2) {
width: 100%
}
}
.action-timeline-tbody {
tr {
td {
position: relative;
> .date {
display: flex;
width: max-content;
padding: 16px;
font-size: 16px;
border: 2px solid #515a6e;
.arrow {
margin-left: 10px;
}
}
>.date::before {
content: ' ';
display: block;
position: absolute;
right: -20px;
top: 30px;
height: 2px;
width: 20px;
background-color: #515a6e;
}
>.timeline {
padding: 16px;
border: 2px solid #515a6e;
min-height: 68px;
margin-left: 18px;
.action-timeline-wrapper {
padding-left: 115px;
color: var(--view-font-color-bright);
>.action-timeline-item {
position: relative;
height: 30px;
display: list-item;
list-style: none;
top: -6px;
>.timeline-time {
position: absolute;
left: -115px;
top: 5px;
font-size: 12px;
}
>.timeline-content {
padding: 5px;
padding-left: 65px;
}
}
>.action-timeline-item::before {
position: absolute;
top: 17px;
left: 45px;
z-index: 3;
width: 7px;
height: 7px;
background-color: var(--view-button-background-color);
border: 1px solid #515a6e;
content: ' ';
border-radius: 50%;
}
>.action-timeline-item:nth-child(n+2)::after {
position: absolute;
top: -7px;
bottom: 12px;
left: 48px;
z-index: 1;
display: block;
content: ' ';
border-left: 1px solid #515a6e;
}
}
}
}
}
}
}
\ No newline at end of file
...@@ -163,6 +163,6 @@ export default class ActionTimeline extends Vue { ...@@ -163,6 +163,6 @@ export default class ActionTimeline extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './action-timeline.less'; @import './action-timeline.scss';
</style> </style>
\ No newline at end of file
.app-actionbar {
padding: 12px;
display: flex;
justify-content: flex-start;
align-items: center;
flex-wrap: wrap;
.app-actionbar-item{
margin-right:10px;
margin-bottom: 10px;
}
}
\ No newline at end of file
...@@ -150,6 +150,6 @@ export default class AppActionBar extends Vue { ...@@ -150,6 +150,6 @@ export default class AppActionBar extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import "./app-actionbar.less"; @import "./app-actionbar.scss";
</style> </style>
\ No newline at end of file
...@@ -93,6 +93,6 @@ export default class AppAddressSelection extends Vue { ...@@ -93,6 +93,6 @@ export default class AppAddressSelection extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-address-selection.less'; @import './app-address-selection.scss';
</style> </style>
\ No newline at end of file
...@@ -112,7 +112,7 @@ export default class AppAlertGroup extends Vue { ...@@ -112,7 +112,7 @@ export default class AppAlertGroup extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
.view-body-messages { .view-body-messages {
margin-bottom: 6px; margin-bottom: 6px;
} }
......
.el-message {
.el-message__content {
.title {
padding-bottom: 10px;
}
}
}
.app-alert-group {
.el-alert {
margin: 5px 0px;
}
}
\ No newline at end of file
...@@ -230,6 +230,6 @@ export default class AppAlert extends Vue { ...@@ -230,6 +230,6 @@ export default class AppAlert extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import './app-alert.less'; @import './app-alert.scss';
</style> </style>
\ No newline at end of file
.ivu-auto-complete {
.ivu-select-dropdown-list {
height: 300px;
}
}
...@@ -319,6 +319,6 @@ export default class AppAutocomplete extends Vue { ...@@ -319,6 +319,6 @@ export default class AppAutocomplete extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-autocomplete.less'; @import './app-autocomplete.scss';
</style> </style>
\ No newline at end of file
.el-breadcrumb__inner,
.el-breadcrumb__inner a {
font-weight: 400 !important;
}
.app-breadcrumb.el-breadcrumb {
display: inline-block;
font-size: 14px;
line-height: 50px;
margin-left: 8px;
.no-redirect {
color: #97a8be;
cursor: text;
.curselected{
color: #2196F3;
font-weight: bold;
}
.app-breadcrumb-selected{
cursor: pointer;
}
}
}
\ No newline at end of file
...@@ -216,6 +216,6 @@ export default class Breadcrumb extends Vue { ...@@ -216,6 +216,6 @@ export default class Breadcrumb extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import "./app-breadcrumb.less"; @import "./app-breadcrumb.scss";
</style> </style>
\ No newline at end of file
.show-type {
text-align: right;
position: absolute;
z-index: 99;
right: 0;
top: 2px;
.ivu-btn-group {
.collapse-btn {
padding: 0;
}
}
}
\ No newline at end of file
...@@ -55,6 +55,6 @@ export default class AppBuild extends Vue { ...@@ -55,6 +55,6 @@ export default class AppBuild extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import './app-build.less'; @import './app-build.scss';
</style> </style>
\ No newline at end of file
.app-calendar-itemlayoutpanel{
display: flex;
.item-icon{
width: 40px;
height: 40px;
margin-right: 10px;
img{
width: 100%;
height: 100%;
border-radius: 50%;
}
}
.item-text{
.title{
font-size: 18px;
font-weight: bold;
}
.srfdescription{
margin-top: 14px;
margin-bottom: 14px;
}
.date{
.start{
margin:0 6px;
}
.end{
margin:0 6px;
}
}
}
}
.app-checkbox-list {
overflow: auto;
}
\ No newline at end of file
...@@ -284,6 +284,6 @@ export default class AppCheckBox extends Vue { ...@@ -284,6 +284,6 @@ export default class AppCheckBox extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-checkbox-list.less'; @import './app-checkbox-list.scss';
</style> </style>
\ No newline at end of file
.app-checkbox-list {
overflow: auto;
}
\ No newline at end of file
...@@ -50,6 +50,6 @@ export default class AppCheckbox extends Vue { ...@@ -50,6 +50,6 @@ export default class AppCheckbox extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import "./app-checkbox.less"; @import "./app-checkbox.scss";
</style> </style>
\ No newline at end of file
.app-color-picker {
.el-color-picker__trigger {
border: none;
left: 6px;
.el-color-picker__color {
border: 0.5px solid #dcdee2;
cursor: pointer;
top: 20px;
width: 77%;
height: 5px;
left: 3px;
.el-icon-close {
display: none;
}
}
}
.ivu-icon {
font-size: 22px;
position: absolute;
top: 2px;
right: -1px;
cursor: pointer;
}
}
\ No newline at end of file
...@@ -179,6 +179,6 @@ export default class AppColorPicker extends Vue { ...@@ -179,6 +179,6 @@ export default class AppColorPicker extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import './app-color-picker.less'; @import './app-color-picker.scss';
</style> </style>
...@@ -152,7 +152,7 @@ export default class AppColorSpan extends Vue { ...@@ -152,7 +152,7 @@ export default class AppColorSpan extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
.text-color{ .text-color{
padding: 2px 8px; padding: 2px 8px;
margin: 6px 6px 6px 0px; margin: 6px 6px 6px 0px;
......
.app-column-format{
display: inline-block;
}
\ No newline at end of file
...@@ -53,6 +53,6 @@ export default class AppColumnFormat extends Vue { ...@@ -53,6 +53,6 @@ export default class AppColumnFormat extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import "./app-column-format.less"; @import "./app-column-format.scss";
</style> </style>
\ No newline at end of file
.app-column-link{
display: inline-block;
cursor:pointer;
}
\ No newline at end of file
...@@ -314,6 +314,6 @@ export default class AppColumnLink extends Vue { ...@@ -314,6 +314,6 @@ export default class AppColumnLink extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-column-link.less'; @import './app-column-link.scss';
</style> </style>
\ No newline at end of file
.column-render{
.input-unit{
display: inline-block;
}
}
\ No newline at end of file
...@@ -148,6 +148,6 @@ export default class AppColumnRender extends Vue { ...@@ -148,6 +148,6 @@ export default class AppColumnRender extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import "./app-column-render.less"; @import "./app-column-render.scss";
</style> </style>
\ No newline at end of file
.app-dashboard-design {
width: 100%;
height: 100%;
border: 1px solid #ccc;
display: flex;
.design-tree {
width: 300px;
height: 100%;
padding: 5px;
overflow: auto;
.design-filter {
width: 100%;
}
.design-tree-content {
height: calc(100% - 40px);
overflow: auto;
.el-menu {
width: 100%;
border-right: 0;
.drag-div-item {
height: 40px;
line-height: 40px;
background-color: #f7fafc;
margin-bottom: 5px;
border: 1px dashed transparent;
cursor: move;
}
.drag-div-item:hover {
border-color: #107fff;
}
.el-menu-item.is-active {
color: initial;
}
.is-disable {
background-color: #e8eaef;
color: #c9ccd8;
cursor: no-drop !important;
}
}
}
.drag-tree-item {
opacity: .7;
z-index: 1;
position: fixed;
}
}
.design-panel {
flex-grow: 1;
height: 100%;
overflow: auto;
background: #efefef;
.app-grid-layout {
.app-grid-layout-mask {
height: calc(100% + 180px);
top: 0;
left: 0;
bottom: 0;
right: 0;
position: absolute;
background: -webkit-linear-gradient(top, #ddd 10px, transparent 10px),-webkit-linear-gradient(left, #ddd 10px, transparent 10px);
}
.app-grid-layout-item {
height: 100%;
.el-icon-close {
font-size: 16px;
float: right;
margin-top: 4px;
cursor: pointer;
}
}
}
.layout-draging {
.vue-grid-placeholder {
display: initial !important;
}
}
}
}
\ No newline at end of file
...@@ -457,6 +457,6 @@ export default class AppDashboardDesign extends Vue { ...@@ -457,6 +457,6 @@ export default class AppDashboardDesign extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import "./app-dashboard-design.less"; @import "./app-dashboard-design.scss";
</style> </style>
\ No newline at end of file
.app-data-card{
padding: 10px;
.data-item{
display: flex;
margin-bottom: 16px;
.item-text{
.srfmajortext{
font-size: 18px;
font-weight: bold;
}
.srfdescription{
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
overflow: hidden;
}
}
.item-icon{
width: 50px;
height: 50px;
margin-right: 10px;
.single-card-img{
border-radius: 50%;
width: 100%;
height: 100%;
}
}
}
.data-view-item-action{
width: 100%;
display: flex;
justify-content: space-around;
border-top: 1px solid #e2e2e2;
padding-top: 10px;
button{
width: 50%;
font-size: 15px;
border: none;
background-color: transparent;
border: none;
}
}
}
\ No newline at end of file
// 导入视图样式
.app-data-upload-view{
font-family: "Microsoft YaHei";
display: flex;
flex-direction: column;
.main-content{
height: calc(100% - 68px);
background: #FAFAFB;
border-radius: 4px;
border: 1px dashed #D7D7D7;
margin-top: 10px;
// 上传文件区域
.upload-container{
cursor: pointer;
height: 100%;
width: 100%;
text-align: center;
padding-top: 58px;
.icon-import{
display: block;
margin: 0 auto 17px;
}
.select-file-text{
height: 17px;
font-size: 12px;
color: #565656;
line-height: 17px;
}
}
// 信息展示容器
.data-info-container{
padding: 8px 10px 6px;
height: 100%;
width: 100%;
// 进度条
.progress{
margin-bottom: 6px ;
.el-progress-bar__outer{
background-color: #FFFFFF;
}
.el-progress-bar__inner{
background-color: #D7E9FF;
}
}
.message-container{
height: calc(100% - 26px);
display: flex;
justify-content: space-between;
ul li{
list-style-type: none;
padding-left: 20px;
}
.result-list{
height: 100%;
width: 100%;
overflow: auto;
}
//成功信息区
.result-list{
ul .success-item{
background: url("~@/assets/img/icon-success.svg") no-repeat 5px 5px;
background-size: 10px 10px;
}
}
//错误信息区
.result-list{
ul .error-item{
background: url("~@/assets/img/icon-error.svg") no-repeat 5px 5px;
background-size: 10px 10px;
}
}
}
}
}
// 下载模板区
.second-content{
padding: 16px 12px 0;
margin-bottom: 30px;
.import-template-message{
font-size: 12px;
height: 17px;
color: #565656;
line-height: 17px;
}
.import-template{
.icon-link{
width: 12px;
margin-bottom: -1px;
margin-right: 3px;
}
height: 17px;
font-size: 12px;
color: #57A3FD;
line-height: 17px;
}
}
// 底部按钮
.button-container{
text-align: right;
margin: 15px;
height: 28px;
.el-button{
margin: 0 0 0 8px;
padding: 3px 15px;
font-size: 12px;
line-height: 20px;
}
.primary-button{
color: #FFFFFF;
background-color: #57A3FD;
border-color: #57A3FD;
&:hover{
background: #66b1ff;
border-color: #66b1ff;
}
&:disabled{
color: var(--button-font-color-light);
border-color: var(--button-font-color-light);
background-color: var(--button-background-color-light);
}
}
}
}
//模态样式
.view-default.app-data-upload-modal{
.app-data-upload-view{
width: 100%;
height: 100%;
padding: 0 20px 24px 20px;
}
.ivu-modal-content .ivu-modal-body{
height: calc(100% - 58px);
}
// 模态标题
.ivu-modal-header{
padding: 16px;
border: 0;
.ivu-modal-header-inner{
color: #333333;
font-weight: 600;
height: 24px;
line-height: 24px;
}
}
// 关闭图标
.ivu-modal-close .ivu-icon-ios-close{
color: #999999;
font-weight: 600;
}
}
\ No newline at end of file
...@@ -607,6 +607,6 @@ export default class AppDataUploadView extends Vue { ...@@ -607,6 +607,6 @@ export default class AppDataUploadView extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import "./app-data-upload.less"; @import "./app-data-upload.scss";
</style> </style>
.app-department-personnel{
position: relative;
.ivu-select-selection{
position: relative;
padding: 0;
.ivu-select-selected-value{
padding-left: 15px;
font-size: 13px;
}
.ivu-tag.ivu-tag-checked{
top: 1px;
font-size: 12px;
height: 24px;
line-height: 22px;
margin: 2px 0px 2px 6px;
padding: 0 3px 0 8px;
background-color: #f4f4f5;
border-color: #e9e9eb;
color: #909399;
.ivu-tag-text{
padding: 0 8px 0 0;
}
}
.ivu-icon.ivu-icon-ios-close{
position: absolute;
width: 10px;
line-height: 10px;
height: 10px;
top: 6px;
margin-left: 8px;
font-size: 4px;
color: #909399;
background-color: #c0c4cc;
border-radius: 50%;
}
.ivu-icon.ivu-icon-ios-close:hover{
color: #fff;
background-color: #909399;
}
.ivu-icon-ios-close:before {
position: absolute;
left: -1px;
}
}
.el-icon-search{
position: absolute;
top: 10px;
right: 27px;
color: #c0c4cc;
}
}
\ No newline at end of file
...@@ -431,6 +431,6 @@ export default class AppDepartmentPersonnel extends Vue { ...@@ -431,6 +431,6 @@ export default class AppDepartmentPersonnel extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import './app-department-personnel.less'; @import './app-department-personnel.scss';
</style> </style>
\ No newline at end of file
.app-department-select{
.ivu-dropdown{
.ivu-dropdown-rel{
.tree-input{
.ivu-input-suffix{
width: auto;
text-align: right;
.icon-arrow{
margin-right: 4px;
}
}
.el-icon-circle-close{
display: none;
}
}
.tree-input:hover{
.el-icon-circle-close{
display: inline-block;
}
}
}
.ivu-select-dropdown{
max-height: 200px;
overflow: scroll;
.tree-contant{
overflow:inherit;
}
}
}
.el-input__inner{
height: 32px;
line-height: 32px
}
.el-input__icon{
line-height: 32px;
}
}
...@@ -283,6 +283,6 @@ export default class AppDepartmentSelect extends Vue { ...@@ -283,6 +283,6 @@ export default class AppDepartmentSelect extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-department-select.less'; @import './app-department-select.scss';
</style> </style>
\ No newline at end of file
.app-embed-picker {
.app-embed-value, .app-embed-placeholder {
line-height: 32px;
height: 32px;
}
.app-embed-placeholder {
color: #c1c1c1;
}
> .ivu-card {
> .ivu-card-body {
> .content-container {
margin: 0;
}
}
}
}
\ No newline at end of file
...@@ -285,6 +285,6 @@ export default class AppEmbedPicker extends Vue { ...@@ -285,6 +285,6 @@ export default class AppEmbedPicker extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-embed-picker.less'; @import './app-embed-picker.scss';
</style> </style>
\ No newline at end of file
...@@ -135,6 +135,6 @@ export default class AppExportExcel extends Vue { ...@@ -135,6 +135,6 @@ export default class AppExportExcel extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-export-excel.less'; @import './app-export-excel.scss';
</style> </style>
.app-file-upload{
.upload-col{
.button-preview{
padding: 8px 15px 8.5px 15px;
.ivu-badge{
margin-left: 2px;
.ivu-badge-count{
height: auto;
min-width: auto;
line-height: unset;
padding: 0 4px;
}
}
}
}
}
.upload-preview-modal{
.ivu-modal{
height: 86%;
.ivu-modal-content{
height: 100%;
overflow-y: scroll;
.preview-file-list-item{
margin: 0 8px 8px 0;
display: inline-block;
position: relative;
}
.preview-file-list-img{
display: inline-block;
position: relative;
}
.file-name{
text-align: center;
}
.preview-file-list-actions{
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
font-size: 20px;
text-align: center;
color: #fff;
opacity: 0;
transition: opacity .3s;
}
.preview-file-list-actions:hover{
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
font-size: 20px;
text-align: center;
color: #fff;
opacity: 1;
background-color: rgba(0,0,0,.5);
}
.preview-file-list-actions::after{
display: inline-block;
content: "";
height: 100%;
vertical-align: middle;
}
.action-delete{
margin-left:15px;
}
}
}
}
\ No newline at end of file
...@@ -513,6 +513,6 @@ export default class AppFileUpload extends Vue { ...@@ -513,6 +513,6 @@ export default class AppFileUpload extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-file-upload.less'; @import './app-file-upload.scss';
</style> </style>
\ No newline at end of file
.form-druipart {
position: relative;
}
\ No newline at end of file
...@@ -497,6 +497,6 @@ export default class AppFormDRUIPart extends Vue { ...@@ -497,6 +497,6 @@ export default class AppFormDRUIPart extends Vue {
} }
} }
</script> </script>
<style lang = "less"> <style lang="scss">
@import './app-form-druipart.less'; @import './app-form-druipart.scss';
</style> </style>
\ No newline at end of file
.app-form-group {
>.ivu-card-head {
>p {
>i {
margin-right: 8px;
cursor: pointer;
}
}
}
>.ivu-card-extra {
.item-extract-mode {
display: flex;
.item {
margin-left: 12px;
}
}
}
}
.app-form-group.app-group-collapse-contant {
.ivu-card-body {
display: none;
}
}
.app-group-flex {
height: 100%;
overflow-y: auto;
overflow-x: hidden;
>.ivu-card-body {
height: calc(100% - 51px);
overflow-y: auto;
overflow-x: hidden;
}
}
\ No newline at end of file
...@@ -351,6 +351,6 @@ export default class AppFormGroup extends Vue { ...@@ -351,6 +351,6 @@ export default class AppFormGroup extends Vue {
} }
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-form-group.less'; @import './app-form-group.scss';
</style> </style>
\ No newline at end of file
...@@ -62,6 +62,6 @@ export default class AppFormGroup2 extends Vue { ...@@ -62,6 +62,6 @@ export default class AppFormGroup2 extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import './app-form-group2.less'; @import './app-form-group2.scss';
</style> </style>
\ No newline at end of file
.app-form-item {
height: 100%;
padding: 0 6px;
.editor {
height: 100%;
.ivu-form-item-content {
height: 100%;
min-height: 36px;
}
}
.app-form-item-label {
line-height: 21px;
padding: 6px 10px 6px 0px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.app-form-item.label-top, .app-form-item.label-bottom {
.app-form-item-label {
display: block;
}
}
.app-form-item.label-left, .app-form-item.label-right {
.app-form-item-label, .editor {
height: 100%;
}
}
.app-form-item.label-left {
.app-form-item-label {
float: left;
text-align: right;
}
}
.app-form-item.label-right {
.app-form-item-label {
float: right;
padding: 6px 0px 6px 10px;
}
}
.app-form-item.label-none {
>.app-form-item-label {
display: none !important;
}
}
\ No newline at end of file
...@@ -288,6 +288,6 @@ export default class AppFormItem extends Vue { ...@@ -288,6 +288,6 @@ export default class AppFormItem extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import "./app-form-item.less"; @import "./app-form-item.scss";
</style> </style>
\ No newline at end of file
.app-form-item2 {
// margin-bottom: 16px;
>.ivu-form-item-label {
text-decoration: none;
display: block;
overflow: hidden;
white-space: nowrap;
}
>.ivu-form-item-content {
min-height: 36px;
display: flex;
.app-editor-contant {
flex-grow: 1;
}
.app-error-tip {
width: 20px;
}
}
.ivu-form-item-error-tip {
display: none;
}
}
.app-form-item-label-top {
>.ivu-form-item-label {
float: none;
display: inline-block;
padding: 0 0 10px;
}
}
\ No newline at end of file
...@@ -211,6 +211,6 @@ export default class AppFormItem2 extends Vue { ...@@ -211,6 +211,6 @@ export default class AppFormItem2 extends Vue {
} }
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import "./app-form-item2.less"; @import "./app-form-item2.scss";
</style> </style>
\ No newline at end of file
.app-form-part {
display: block;
}
\ No newline at end of file
...@@ -239,6 +239,6 @@ export default class AppFormPart extends Vue { ...@@ -239,6 +239,6 @@ export default class AppFormPart extends Vue {
} }
</script> </script>
<style lang = "less"> <style lang="scss">
@import './app-form-part.less'; @import './app-form-part.scss';
</style> </style>
\ No newline at end of file
.form-detail-show {
display: block;
}
.form-detail-hidden {
display: none;
}
.app-form {
height: 100%;
> .ivu-row {
height: 100%;
> .ivu-tabs {
height: 100%;
> .ivu-tabs-content {
height: calc(100% - 50px);
overflow: auto;
> .ivu-tabs-tabpane {
height: 100%;
overflow: initial;
}
}
}
> .el-tabs {
height: 100%;
> .el-tabs__content {
height: calc(100% - 62px);
> .el-tab-pane {
height: 100%;
overflow: auto;
}
}
.el-tabs__header {
.el-tabs__nav-wrap::after {
background-color: var(--app-border-content);
height: 1px;
}
.el-tabs__item {
height: 36px;
}
}
}
}
}
\ No newline at end of file
...@@ -28,6 +28,6 @@ export default class AppForm extends Vue { ...@@ -28,6 +28,6 @@ export default class AppForm extends Vue {
@Prop() public name?: string; @Prop() public name?: string;
} }
</script> </script>
<style lang = "less"> <style lang="scss">
@import './app-form.less'; @import './app-form.scss';
</style> </style>
\ No newline at end of file
.app-format-data{
display: inline-block;
}
\ No newline at end of file
...@@ -91,6 +91,6 @@ export default class AppFormatData extends Vue { ...@@ -91,6 +91,6 @@ export default class AppFormatData extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import './app-format-data.less'; @import './app-format-data.scss';
</style> </style>
\ No newline at end of file
<template> <template>
<div class="fullscren"> <div class="fullscren">
<Icon :type="fullScren == true ? 'ios-contract' : 'ios-expand'" size="22" @click="handleScreen"/> <Icon :type="fullScren == true ? 'ios-contract' : 'ios-expand'" color="#aaa" size="22" @click="handleScreen"/>
</div> </div>
</template> </template>
<script lang = 'ts'> <script lang = 'ts'>
...@@ -82,7 +82,7 @@ export default class AppFullScren extends Vue{ ...@@ -82,7 +82,7 @@ export default class AppFullScren extends Vue{
} }
</script> </script>
<style lang='less'> <style lang='scss'>
.fullscren{ .fullscren{
cursor:pointer; cursor:pointer;
padding: 0 5px; padding: 0 5px;
......
...@@ -283,7 +283,7 @@ export default class AppGroupPicker extends Vue { ...@@ -283,7 +283,7 @@ export default class AppGroupPicker extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
.ibiz-group-picker{ .ibiz-group-picker{
width: 100%; width: 100%;
height: 100%; height: 100%;
......
.ibiz-group-select {
width: 100%;
display: flex;
border: 1px solid #DCDFE6;
height: 32px;
border-radius: 4px;
.ibiz-group-content {
flex-grow: 1;
height: 32px;
.group-item-text{
padding-left: 15px;
font-size: 13px;
}
.ibiz-group-item {
display: inline-block;
border: 1px solid #bbb;
border-radius: 5px;
font-size: 12px;
height: 24px;
line-height: 22px;
margin: 2px 0px 2px 6px;
padding: 1px 3px 0 8px;
background-color: #f4f4f5;
border-color: #e9e9eb;
color: #909399;
.group-item-multiple{
margin: 0 8px 0 0;
}
.el-icon-close{
color: #909399;
background-color: #c0c4cc;
border-radius: 50%;
top: 0;
}
.el-icon-close:hover{
color: #fff;
background-color: #909399;
}
}
}
.ibiz-group-open {
display: flex;
text-align: center;
align-items: center;
padding: 0 5px;
}
}
.ibiz-group-select:hover {
border-color: #108cee;
}
\ No newline at end of file
...@@ -327,6 +327,6 @@ export default class AppGroupSelect extends Vue { ...@@ -327,6 +327,6 @@ export default class AppGroupSelect extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import './app-group-select.less'; @import './app-group-select.scss';
</style> </style>
\ No newline at end of file
.app-icon-menus{
display: flex;
flex-wrap: wrap;
.el-card{
margin: 6px 8px;
.el-card__body{
padding: 0;
width: 200px;
height: 122px;
margin: 0;
.menuIcon{
width: 100%;
height: 100%;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
border: 1px rgb(210,238,255) solid;
background-color: rgb(240,249,255);
border-radius: 3px;
cursor: pointer;
&:hover{
border-color: rgb(53,152,220) ;
}
span{
font-size: 40px;
color: rgb(55,155,222);
}
img{
width: 46px;
height: 46px;
// margin-top: 12px;
}
h4{
font-weight: 500;
font-size: 16px;
}
}
}
}
}
...@@ -74,6 +74,6 @@ export default class AppQuickMenus extends Vue { ...@@ -74,6 +74,6 @@ export default class AppQuickMenus extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import "./app-icon-menus.less"; @import "./app-icon-menus.scss";
</style> </style>
\ No newline at end of file
/*** BEGIN:图片上传 ***/
.app-picture-preview {
.preview-file-list-item{
margin: 0 8px 8px 0;
display: inline-block;
position: relative;
}
.preview-file-list-img{
display: inline-block;
position: relative;
width: 148px;
height: 148px;
.el-image{
width: 100%;
height: 100%;
.image-slot{
width: 100%;
height: 100%;
}
}
}
.preview-file-list-actions{
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
font-size: 20px;
text-align: center;
color: #fff;
opacity: 0;
transition: opacity .3s;
.action-download{
margin-left: 15px;
}
}
.preview-file-list-actions:hover{
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
font-size: 20px;
text-align: center;
color: #fff;
opacity: 1;
background-color: rgba(0,0,0,.5);
}
.preview-file-list-actions::after{
display: inline-block;
content: "";
height: 100%;
vertical-align: middle;
}
>div{
display: inline;
}
}
.app-image-preview-model {
width: 100%;
height: 100%;
text-align: center;
.ivu-modal{
top: 50%;
transform: translateY(-50%);
display: inline-block;
.ivu-modal-content{
display: inline-block;
.ivu-modal-close{
display: none;
}
.ivu-modal-body{
display: inline-block;
line-height: 0;
.el-image {
width: auto;
height: auto;
line-height: 0;
.image-slot {
width: auto;
height: auto;
line-height: 0;
img{
max-width: 1200px;
max-height: 1600px;
}
}
}
}
}
}
}
/*** END:图片上传 ***/
\ No newline at end of file
...@@ -199,6 +199,6 @@ export default class AppImagePreview extends Vue { ...@@ -199,6 +199,6 @@ export default class AppImagePreview extends Vue {
} }
</script> </script>
<style lang = "less"> <style lang="scss">
@import './app-image-preview.less'; @import './app-image-preview.scss';
</style> </style>
\ No newline at end of file
/*** BEGIN:图片上传 ***/
.app-picture-upload {
>div{
display: inline;
}
.el-upload-disabled {
.el-upload {
cursor: not-allowed;
}
}
.el-image {
.image-slot {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
background: #f5f7fa;
color: #909399;
font-size: 30px;
}
}
}
.app-image-upload-model {
.el-image {
width: 100%;
height: 100%;
.image-slot {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 300px;
background: #f5f7fa;
color: #909399;
font-size: 30px;
}
}
}
/*** END:图片上传 ***/
\ No newline at end of file
...@@ -503,6 +503,6 @@ export default class AppImageUpload extends Vue { ...@@ -503,6 +503,6 @@ export default class AppImageUpload extends Vue {
} }
} }
</script> </script>
<style lang = "less"> <style lang="scss">
@import './app-image-upload.less'; @import './app-image-upload.scss';
</style> </style>
\ No newline at end of file
.app-inpu-ip{
display: flex;
flex-wrap: nowrap;
.el-input{
margin-right: 3px;
margin-left: 3px;
}
}
\ No newline at end of file
...@@ -184,6 +184,6 @@ export default class AppInputIp extends Vue { ...@@ -184,6 +184,6 @@ export default class AppInputIp extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-input-ip.less'; @import './app-input-ip.scss';
</style> </style>
...@@ -177,7 +177,7 @@ export default { ...@@ -177,7 +177,7 @@ export default {
} }
</script> </script>
<style lang="less"> <style lang="scss">
</style> </style>
.ivu-dropdown{
cursor: pointer;
}
\ No newline at end of file
...@@ -67,6 +67,6 @@ export default class AppLang extends Vue { ...@@ -67,6 +67,6 @@ export default class AppLang extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import './app-lang.less'; @import './app-lang.scss';
</style> </style>
\ No newline at end of file
.app-list-itemlayoutpanel{
padding: 0 0 0 20px;
// margin: 10px;
.srfmajortext{
font-size: 16px;
cursor: pointer;
}
.srfdescription{
margin-bottom: 10px;
}
.el-tag{
margin: 10px 6px 10px 0;
color: #000;
padding: 0 16px;
max-height: 24px;
line-height: 24px;
background-color: rgb(250, 250, 250)
}
.srfmajortext:hover{
color: #40a9ff;
}
.user-information{
display: flex;
.srficon{
width: 28px;
height: 28px;
margin-right: 6px;
>img{
width: 100%;
border-radius: 50%;
height: 100%;
}
}
}
.app-list-item-action{
margin-top:6px;
>a{
margin:0 20px 0 0 !important;
}
}
}
<template> <template>
<div class="lockscren"> <div class="lockscren">
<span> <span>
<Icon type="md-lock" size="22" @click="handleLock"/> <Icon type="md-lock" size="22" color="#aaa" @click="handleLock"/>
<el-dialog :title="this.$t('components.lockScren.title')" <el-dialog :title="this.$t('components.lockScren.title')"
:visible.sync="box" :visible.sync="box"
width="30%" width="30%"
...@@ -91,7 +91,7 @@ export default class AppLockScren extends Vue{ ...@@ -91,7 +91,7 @@ export default class AppLockScren extends Vue{
} }
</script> </script>
<style lang='less'> <style lang='scss'>
.lockscren{ .lockscren{
cursor:pointer; cursor:pointer;
padding: 0 5px; padding: 0 5px;
......
.lock-container {
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
position: relative;
.title {
margin-bottom: 8px;
color: #333;
}
.el-icon-unlock{
font-size: 20px;
}
.el-icon-switch-button{
font-size: 20px;
}
}
.lock-container::before {
z-index: -999;
content: "";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-image: url("/assets/img/lock_login.png");
background-size: cover;
}
.lock-form {
width: 300px;
}
\ No newline at end of file
...@@ -116,6 +116,6 @@ export default class AppLockIndex extends Vue{ ...@@ -116,6 +116,6 @@ export default class AppLockIndex extends Vue{
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-lock.less'; @import './app-lock.scss';
</style> </style>
\ No newline at end of file
.app-map-position {
.map-modal {
.el-dialog {
margin-top: 60px !important;
width: 90%;
.el-dialog__header {
padding: 10px 0px 10px 40px;
}
.el-dialog__body {
padding: 6px 10px;
.search-toolbar {
display: flex;
#map__result {
position: absolute;
z-index: 20;
right: 10px;
top: 110px;
}
.el-vue-search-box-container {
border: 1px solid #DCDFE6;
height: 40px;
margin-right: 20px;
}
}
}
.amap-marker-content {
img {
width: 25px;
height: 34px;
}
.input-map__marker {
position: absolute;
top: -28px;
right: -160px;
color: #fff;
padding: 0px 10px;
-webkit-box-shadow: 1px 1px 1px rgba(10,10,10,.2);
box-shadow: 1px 1px 1px rgba(10,10,10,.2);
white-space: nowrap;
font-size: 12px;
font-family: "";
background-color: #25a5f7;
border-radius: 3px;
}
}
}
.el-vue-amap-container {
padding-top: 20px;
height: 640px;
}
}
}
\ No newline at end of file
...@@ -464,6 +464,6 @@ export default class AppMapPosition extends Vue { ...@@ -464,6 +464,6 @@ export default class AppMapPosition extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-map-position.less'; @import './app-map-position.scss';
</style> </style>
\ No newline at end of file
.app-message-popover {
height: 24px;
line-height: 24px;
padding: 0 5px 0 0;
}
.show-more {
text-align: center;
margin-top: 10px;
height: 20px;
color: #409eff;
label {
cursor: pointer;
}
}
#bellBtn {
height: 24px;
font-size: 19px;
padding-top: 2px;
padding-right: 2px;
color: #aaa;
cursor: pointer;
}
.Row {
min-height: 70px;
height: auto;
border-bottom: 1px solid lightgray;
display: flex;
align-items: center;
.column1 {
text-align: center;
border: 0px solid red;
}
.column2 {
border: 0px red solid;
.process-definition-name {
font-size: 14px;
padding-top: 5px;
}
.description {
margin-top: 6px;
margin-bottom: 6px;
max-width: 95%;
}
.createtime {
padding-bottom: 5px;
}
.el-row {
display: flex;
.el-col {
flex-grow: 1;
div:first-child {
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
div:nth-child(n+2) {
font-size: 12px;
}
}
}
}
}
...@@ -224,6 +224,6 @@ export default class AppMessagePopover extends Vue { ...@@ -224,6 +224,6 @@ export default class AppMessagePopover extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import "app-message-popover.less"; @import "app-message-popover.scss";
</style> </style>
\ No newline at end of file
...@@ -386,6 +386,6 @@ export default class AppMpicker extends Vue { ...@@ -386,6 +386,6 @@ export default class AppMpicker extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import './app-mpicker.less'; @import './app-mpicker.scss';
</style> </style>
\ No newline at end of file
.app-org-select {
width: 100%;
.el-input__inner{
height: 32px !important;
line-height: 32px !important;
}
.el-input__icon{
line-height: 32px;
}
}
\ No newline at end of file
...@@ -320,6 +320,6 @@ export default class AppOrgSelect extends Vue { ...@@ -320,6 +320,6 @@ export default class AppOrgSelect extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import "./app-org-select.less"; @import "./app-org-select.scss";
</style> </style>
\ No newline at end of file
.app-org-sector {
.orgsector{
font-size: 15px;
cursor: pointer;
margin-right: 10px;
padding: 0 5px;
}
}
\ No newline at end of file
...@@ -151,6 +151,6 @@ export default class AppOrgSector extends Vue { ...@@ -151,6 +151,6 @@ export default class AppOrgSector extends Vue {
} }
</script> </script>
<style lang="less"> <style lang="scss">
@import "./app-orgsector.less"; @import "./app-orgsector.scss";
</style> </style>
\ No newline at end of file
...@@ -57,6 +57,6 @@ export default class AppPanelButton extends Vue { ...@@ -57,6 +57,6 @@ export default class AppPanelButton extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
</style> </style>
\ No newline at end of file
.app-panel-field {
height: 100%;
width: 100%;
display: flex;
.editor {
flex-grow: 1;
line-height: 34px;
.check-error {
.ivu-input.ivu-input-default {
border-color: red;
}
}
.error-info {
color: red;
}
}
.app-panel-field-label {
line-height: 22px;
flex-shrink: 0;
}
}
.app-panel-field.label-top {
flex-flow: column;
}
.app-panel-field.label-bottom {
flex-flow: column-reverse;
}
.app-panel-field.label-left {
.app-panel-field-label {
text-align: right;
}
}
.app-panel-field.label-right {
flex-flow: row-reverse;
.app-panel-field-label {
padding: 6px 0px 6px 10px;
}
}
.app-panel-field.label-none {
.app-panel-field-label {
display: none;
}
}
\ No newline at end of file
...@@ -201,6 +201,6 @@ export default class AppPanelField extends Vue { ...@@ -201,6 +201,6 @@ export default class AppPanelField extends Vue {
} }
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import "./app-panel-field.less"; @import "./app-panel-field.scss";
</style> </style>
\ No newline at end of file
.app-picker-select-view {
.ivu-dropdown{
.ivu-dropdown-rel{
.tree-input{
.ivu-input-suffix{
width: auto;
text-align: right;
.icon-arrow{
margin-right: 4px;
}
}
.el-icon-circle-close{
display: none;
}
}
.tree-input:hover{
.el-icon-circle-close{
display: inline-block;
}
}
}
.ivu-select-dropdown{
max-height: 200px;
overflow: scroll;
margin: 0;
padding: 0;
.ivu-dropdown-menu{
.view-container{
margin: 0;
padding: 0;
}
}
.tree-contant{
overflow:inherit;
}
}
}
}
.select-no-dropdown.el-select-dropdown{
display: none;
}
\ No newline at end of file
...@@ -586,6 +586,6 @@ export default class AppPickerSelectView extends Vue { ...@@ -586,6 +586,6 @@ export default class AppPickerSelectView extends Vue {
} }
</script> </script>
<style lang='less'> <style lang='scss'>
@import './app-picker-select-view.less'; @import './app-picker-select-view.scss';
</style> </style>
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册