优化前端代码

This commit is contained in:
kuaifan 2022-01-21 21:02:17 +08:00
parent 7a4bdd0ada
commit 902f35d21b
12 changed files with 464 additions and 311 deletions

View File

@ -187,7 +187,7 @@
<DrawerOverlay
v-model="allUserShow"
placement="right"
:size="900">
:size="1100">
<TeamManagement v-if="allUserShow"/>
</DrawerOverlay>
@ -195,7 +195,7 @@
<DrawerOverlay
v-model="allProjectShow"
placement="right"
:size="900">
:size="1100">
<ProjectManagement v-if="allProjectShow"/>
</DrawerOverlay>
@ -203,7 +203,7 @@
<DrawerOverlay
v-model="archivedProjectShow"
placement="right"
:size="900">
:size="1100">
<ProjectArchived v-if="archivedProjectShow"/>
</DrawerOverlay>

View File

@ -7,7 +7,7 @@
<Icon v-else type="ios-refresh" @click="refresh"/>
</div>
</div>
<div class="search-container auto">
<div class="search-container lr">
<ul>
<li>
<div class="search-label">

View File

@ -1,7 +1,7 @@
<template>
<div class="project-management">
<div class="management-title">{{$L('所有项目')}}</div>
<div class="search-container auto">
<div class="search-container lr">
<ul>
<li>
<div class="search-label">

View File

@ -38,6 +38,7 @@ export default {
DrawerOverlay,
ReportEdit, ReportMy, ReportReceive, ReportDetail
},
props: {
reportUnreadNumber: {
type: Number,
@ -47,6 +48,7 @@ export default {
default: "my"
}
},
data() {
return {
reportTabs: "my",
@ -56,20 +58,27 @@ export default {
reportId: 0
}
},
mounted() {
this.reportTabs = this.reportType;
},
methods: {
tabRebder(data) {
tabRebder(num) {
return h => {
if (data > 0) {
if (num > 0) {
return h('div', [
h('span', {class: 'navbar-item-content'}, this.$L('收到的汇报')),
h('Badge', {class: 'manage-box-report'}, data),
h('Badge', {
class: 'manage-box-report',
props: {
count: num
}
}),
])
} else {
return h('div', [
h('span', {class: 'navbar-item-content'}, this.$L('收到的汇报')),
h('span', {class: 'navbar-item-content'}, this.$L('收到的汇报')),
])
}
}
@ -83,10 +92,12 @@ export default {
this.$emit("read");
}, 1500);
},
editReport(id) {
this.reportId = id;
this.showEditDrawer = true;
},
saveSuccess() {
this.reportId = 0;
this.reportTabs = "my";

View File

@ -1,12 +1,13 @@
<template>
<div class="report-detail">
<div class="report-title">{{ data.title }}</div>
<div class="report-detail-context">
<div class="report-profile">
<Row>
<Col span="2">
<div class="report-submitter"><p>{{ $L('汇报人') }} </p></div>
<div class="report-submitter">
<p>{{ $L('汇报人') }}</p>
</div>
</Col>
<Col span="6">
<div class="report-submitter">
@ -14,7 +15,9 @@
</div>
</Col>
<Col span="2">
<div class="report-submitter"> <p>{{ $L('提交时间') }}</p></div>
<div class="report-submitter">
<p>{{ $L('提交时间') }}</p>
</div>
</Col>
<Col span="6">
<div class="report-submitter">
@ -22,26 +25,28 @@
</div>
</Col>
<Col span="2">
<div class="report-submitter"><p>{{ $L('汇报对象') }}</p></div>
<div class="report-submitter">
<p>{{ $L('汇报对象') }}</p>
</div>
</Col>
<Col span="6">
<div class="report-submitter">
<UserAvatar v-for="item in data.receives_user" :key="item" :userid="item.userid" :size="28"/>
<UserAvatar v-for="item in data.receives_user" :key="item.userid" :userid="item.userid" :size="28"/>
</div>
</Col>
</Row>
</div>
<Row class="report-main">
<Col span="2">
<div class="report-submitter"><p>{{ $L('汇报内容') }}</p></div>
<div class="report-submitter">
<p>{{ $L('汇报内容') }}</p>
</div>
</Col>
<Col span="22">
<div class="report-content" v-html="data.content">
</div>
<div class="report-content" v-html="data.content"></div>
</Col>
</Row>
</div>
</div>
</template>
@ -55,7 +60,6 @@ export default {
},
mounted() {
if (this.data.id > 0) this.sendRead();
// console.log(this.data)
},
watch: {
data() {

View File

@ -1,7 +1,9 @@
<template>
<Form class="report-box" label-position="top" @submit.native.prevent>
<Row class="report-row report-row-header" >
<Col span="2"><p class="report-titles">{{ $L("汇报类型") }}</p></Col>
<Row class="report-row">
<Col span="2">
<p class="report-titles">{{ $L("汇报类型") }}</p>
</Col>
<Col span="12">
<RadioGroup type="button" button-style="solid" v-model="reportData.type" @on-change="typeChange" class="report-radiogroup" :readonly="id > 0">
<Radio label="weekly" :disabled="id > 0">{{ $L("周报") }}</Radio>
@ -9,27 +11,31 @@
</RadioGroup>
<ButtonGroup class="report-buttongroup">
<Tooltip class="report-poptip" trigger="hover" :disabled="id > 0" :content="prevCycleText" placement="bottom">
<Button type="primary" @click="prevCycle" :disabled="id > 0">
<Button type="primary" @click="prevCycle" :disabled="id > 0">
<Icon type="ios-arrow-back" />
</Button>
</Tooltip>
<div class="report-buttongroup-shu"></div>
<div class="report-buttongroup-vertical"></div>
<Tooltip class="report-poptip" trigger="hover" :disabled="reportData.offset >= 0 || id > 0" :content="nextCycleText" placement="bottom">
<Button type="primary" @click="nextCycle" :disabled="reportData.offset >= 0 || id > 0">
<Button type="primary" @click="nextCycle" :disabled="reportData.offset >= 0 || id > 0">
<Icon type="ios-arrow-forward" />
</Button>
</Tooltip>
</ButtonGroup>
</Col>
</Row>
<Row class="report-row report-row-header">
<Col span="2"><p class="report-titles">{{ $L("汇报名称") }}</p></Col>
<Row class="report-row">
<Col span="2">
<p class="report-titles">{{ $L("汇报名称") }}</p>
</Col>
<Col span="22">
<Input v-model="reportData.title" disabled placeholder=""></Input>
<Input v-model="reportData.title" disabled/>
</Col>
</Row>
<Row class="report-row report-row-header">
<Col span="2"><p class="report-titles">{{ $L("汇报对象") }}</p></Col>
<Row class="report-row">
<Col span="2">
<p class="report-titles">{{ $L("汇报对象") }}</p>
</Col>
<Col span="22">
<div class="report-users">
<UserInput
@ -37,12 +43,16 @@
v-model="reportData.receive"
:disabledChoice="[userId]"
:placeholder="$L('选择接收人')" />
<a class="report-row-a" href="javascript:void(0);" @click="getLastSubmitter"><Icon class="report-row-a-icon" type="ios-share-outline" />{{ $L("使用我上次的汇报对象") }}</a>
<a class="report-row-a" href="javascript:void(0);" @click="getLastSubmitter">
<Icon class="report-row-a-icon" type="ios-share-outline" />{{ $L("使用我上次的汇报对象") }}
</a>
</div>
</Col>
</Row>
<Row class="report-row report-row-content">
<Col span="2"><p class="report-titles">{{ $L("汇报内容") }}</p></Col>
<Col span="2">
<p class="report-titles">{{ $L("汇报内容") }}</p>
</Col>
<Col span="22">
<FormItem class="report-row-content-editor">
<TEditor v-model="reportData.content" height="100%"/>
@ -52,9 +62,7 @@
<Row class="report-row report-row-foot">
<Col span="2"></Col>
<Col span="4">
<FormItem>
<Button type="primary" @click="handleSubmit" class="report-bottom">提交</Button>
</FormItem>
<Button type="primary" @click="handleSubmit" class="report-bottom">提交</Button>
</Col>
</Row>
</Form>
@ -109,6 +117,7 @@ export default {
this.prevCycleText = this.$L("上一周");
this.nextCycleText = this.$L("下一周");
},
handleSubmit: function () {
let id = this.reportData.id;
if (this.id === 0 && id > 1) {
@ -116,6 +125,7 @@ export default {
title: '覆盖提交',
content: '是否覆盖提交',
loading: true,
zIndex: 2000,
onOk: () => {
this.doSubmit();
}
@ -125,6 +135,7 @@ export default {
}
},
doSubmit() {
this.$store.dispatch("call", {
url: 'report/store',
@ -144,6 +155,7 @@ export default {
$A.messageError(msg);
});
},
getTemplate() {
this.$store.dispatch("call", {
url: 'report/template',
@ -166,6 +178,7 @@ export default {
$A.messageError(msg);
});
},
typeChange(value) {
//
this.reportData.offset = 0;
@ -180,6 +193,7 @@ export default {
if (this.id <= 0)
this.getTemplate();
},
getDetail(reportId) {
this.userInputShow = false;
this.$store.dispatch("call", {
@ -204,12 +218,14 @@ export default {
this.userInputShow = true;
});
},
prevCycle() {
this.reportData.offset -= 1;
this.disabledType = false;
this.reReportData();
this.getTemplate();
},
nextCycle() {
// 0
if ( this.reportData.offset < 0 ) {
@ -219,6 +235,7 @@ export default {
this.reReportData();
this.getTemplate();
},
//
getLastSubmitter() {
this.userInputShow = false;
@ -236,6 +253,7 @@ export default {
this.userInputShow = true;
});
},
reReportData() {
this.reportData.title = "";
this.reportData.content = "";

View File

@ -1,39 +1,71 @@
<template>
<div class="report-list-wrap">
<Row class="reportmy-row report-row-header">
<Col span="3"><Button type="primary" @click="addReport">{{ $L("新增报告") }}</Button></Col>
<Col span="2"><p class="reportmy-titles">{{ $L("汇报类型") }}</p></Col>
<Col span="5">
<Select
v-model="reportType"
style="width:95%"
:placeholder="this.$L('全部')"
@on-change="typePick"
>
<Option v-for="item in reportTypeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</Col>
<Col span="1"></Col>
<Col span="2"><p class="reportmy-titles">{{ $L("汇报时间") }}</p></Col>
<Col span="6">
<DatePicker
type="daterange"
split-panels
:placeholder="this.$L('请选择时间')"
style="width: 95%;"
@on-change="timePick"
></DatePicker>
</Col>
<Col span="1"></Col>
<Col span="4"><Button type="primary" icon="ios-search" @click="searchTab">{{ $L("搜索") }}</Button></Col>
</Row>
<Table class="tableFill report-row-content" ref="tableRef"
:columns="columns" :data="lists"
:loading="loadIng > 0"
:no-data-text="$L(noDataText)" stripe></Table>
<Page class="page-box report-row-foot" :total="listTotal" :current="listPage" :disabled="loadIng > 0"
@on-change="setPage" @on-page-size-change="setPageSize" :page-size-opts="[10,20,30,50,100]"
placement="top" show-elevator show-sizer show-total transfer />
<div class="search-expand">
<div class="search-container lr">
<ul>
<li>
<div class="search-label">
{{ $L("汇报类型") }}
</div>
<div class="search-content">
<Select
v-model="reportType"
:placeholder="$L('全部')">
<Option v-for="item in reportTypeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</div>
</li>
<li>
<div class="search-label">
{{ $L("汇报时间") }}
</div>
<div class="search-content">
<DatePicker
v-model="createAt"
type="daterange"
split-panels
:placeholder="$L('请选择时间')"/>
</div>
</li>
<li class="search-button">
<Tooltip
theme="light"
placement="right"
transfer-class-name="search-button-clear"
transfer>
<Button :loading="loadIng > 0" type="primary" icon="ios-search" @click="searchTab">{{$L('搜索')}}</Button>
<div slot="content">
<Button :loading="loadIng > 0" type="text" @click="getLists">{{$L('刷新')}}</Button>
</div>
</Tooltip>
</li>
</ul>
</div>
<div class="expand-button-group">
<Button type="primary" icon="md-add" @click="addReport">{{ $L("新增报告") }}</Button>
</div>
</div>
<Table
class="tableFill report-row-content"
ref="tableRef"
:columns="columns" :data="lists"
:loading="loadIng > 0"
:no-data-text="$L(noDataText)"
stripe/>
<Page
class="page-box report-row-foot"
:total="listTotal"
:current="listPage"
:disabled="loadIng > 0"
@on-change="setPage"
@on-page-size-change="setPageSize"
:page-size-opts="[10,20,30,50,100]"
placement="top"
show-elevator
show-sizer
show-total
transfer/>
</div>
</template>
@ -50,12 +82,8 @@ export default {
listPageSize: 10,
noDataText: "",
createAt: [],
reportType:'',
reportTypeList:[
{value:"",label:'全部' },
{value:"weekly",label:'周报' },
{value:"daily",label:'日报' },
],
reportType: '',
reportTypeList: [],
}
},
mounted() {
@ -65,37 +93,37 @@ export default {
initLanguage() {
this.noDataText = this.noDataText || "数据加载中.....";
this.columns = [{
"title": this.$L("名称"),
"key": 'title',
"sortable": true,
"minWidth": 120,
title: this.$L("名称"),
key: 'title',
sortable: true,
minWidth: 120,
}, {
"title": this.$L("类型"),
"key": 'type',
"align": 'center',
"sortable": true,
"maxWidth": 80,
title: this.$L("类型"),
key: 'type',
align: 'center',
sortable: true,
maxWidth: 80,
}, {
"title": this.$L("汇报时间"),
"key": 'created_at',
"align": 'center',
"sortable": true,
"maxWidth": 180,
title: this.$L("汇报时间"),
key: 'created_at',
align: 'center',
sortable: true,
maxWidth: 180,
}, {
"title": "操作",
"key": 'action',
"align": 'right',
"width": 80,
title: this.$L("操作"),
align: 'center',
width: 100,
minWidth: 100,
render: (h, params) => {
if (!params.row.id) {
return null;
}
let arr = [
const vNodes = [
h('ETooltip', {
props: { content: this.$L('编辑'), transfer: true, delay: 600 }
props: {content: this.$L('编辑'), transfer: true, delay: 600}
}, [h('Icon', {
props: { type: 'md-create', size: 16 },
style: { margin: '0 3px', cursor: 'pointer' },
props: {type: 'md-create', size: 16},
style: {margin: '0 3px', cursor: 'pointer'},
on: {
click: () => {
this.$emit("edit", params.row.id);
@ -103,11 +131,11 @@ export default {
}
})]),
h('ETooltip', {
props: { content: this.$L('查看'), transfer: true, delay: 600 },
style: { position: 'relative' },
props: {content: this.$L('查看'), transfer: true, delay: 600},
style: {position: 'relative', marginLeft: '6px'},
}, [h('Icon', {
props: { type: 'md-eye', size: 16 },
style: { margin: '0 3px', cursor: 'pointer' },
props: {type: 'md-eye', size: 16},
style: {margin: '0 3px', cursor: 'pointer'},
on: {
click: () => {
this.$emit("detail", params.row);
@ -115,10 +143,20 @@ export default {
}
})]),
];
return h('div', arr);
return h('TableAction', {
props: {
column: params.column
}
}, vNodes);
},
}];
this.reportTypeList = [
{value: "", label: this.$L('全部')},
{value: "weekly", label: this.$L('周报')},
{value: "daily", label: this.$L('日报')},
]
},
getLists() {
this.loadIng = 1;
this.$store.dispatch("call", {
@ -134,34 +172,29 @@ export default {
// data
this.lists = data.data;
this.listTotal = data.total;
if ( this.lists.length <= 0 ) {
if (this.lists.length <= 0) {
this.noDataText = this.$L("无数据");
}
// msg
}).catch(({msg}) => {
// msg
$A.messageError(msg);
}).finally( () => {
}).finally(() => {
this.loadIng = 0;
} );
});
},
setPage(page) {
this.listPage = page;
this.getLists();
},
setPageSize(size) {
if (Math.max($A.runNum(this.listPageSize), 10) !== size) {
this.listPageSize = size;
this.getLists();
}
},
timePick(e){
// console.log(e)
this.createAt = e;
},
typePick(e){
// console.log(e)
},
searchTab() {
this.getLists();

View File

@ -1,47 +1,80 @@
<template>
<div class="report-list-wrap">
<Row class="reportmy-row report-row-header">
<Col span="2"><p class="reportmy-titles">{{ $L("汇报人") }}</p></Col>
<Col span="4">
<Input style="width:100%" v-model="username" :placeholder="$L('请输入用户名')"/>
</Col>
<Col span="1"></Col>
<Col span="2"><p class="reportmy-titles">{{ $L("汇报类型") }}</p></Col>
<Col span="4">
<Select
v-model="reportType"
style="width:100%"
:placeholder="this.$L('全部')"
@on-change="typePick"
>
<Option v-for="item in reportTypeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</Col>
<Col span="1"></Col>
<Col span="2"><p class="reportmy-titles">{{ $L("汇报时间") }}</p></Col>
<Col span='4'>
<DatePicker
type="daterange"
split-panels
:placeholder="this.$L('请选择时间')"
style="width: 100%;"
@on-change="timePick"
></DatePicker>
</Col>
<Col span="1"></Col>
<Col span="3"><Button type="primary" icon="ios-search" @click="searchTab">{{ $L("搜索") }}</Button></Col>
</Row>
<Table class="tableFill report-row-content" ref="tableRef"
:columns="columns" :data="lists"
:loading="loadIng > 0"
:no-data-text="$L(noDataText)" stripe></Table>
<Page class="page-box report-row-foot" :total="listTotal" :current="listPage" :disabled="loadIng > 0"
@on-change="setPage" @on-page-size-change="setPageSize" :page-size-opts="[10,20,30,50,100]"
placement="top" show-elevator show-sizer show-total transfer />
<div class="search-container lr">
<ul>
<li>
<div class="search-label">
{{ $L("汇报人") }}
</div>
<div class="search-content">
<Input v-model="username" :placeholder="$L('请输入用户名')"/>
</div>
</li>
<li>
<div class="search-label">
{{ $L("汇报类型") }}
</div>
<div class="search-content">
<Select
v-model="reportType"
:placeholder="$L('全部')">
<Option v-for="item in reportTypeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</div>
</li>
<li>
<div class="search-label">
{{ $L("汇报时间") }}
</div>
<div class="search-content">
<DatePicker
v-model="createAt"
type="daterange"
split-panels
:placeholder="$L('请选择时间')"/>
</div>
</li>
<li class="search-button">
<Tooltip
theme="light"
placement="right"
transfer-class-name="search-button-clear"
transfer>
<Button :loading="loadIng > 0" type="primary" icon="ios-search" @click="searchTab">{{$L('搜索')}}</Button>
<div slot="content">
<Button :loading="loadIng > 0" type="text" @click="getLists">{{$L('刷新')}}</Button>
</div>
</Tooltip>
</li>
</ul>
</div>
<Table
class="tableFill report-row-content"
ref="tableRef"
:columns="columns" :data="lists"
:loading="loadIng > 0"
:no-data-text="$L(noDataText)"
stripe/>
<Page
class="page-box report-row-foot"
:total="listTotal"
:current="listPage"
:disabled="loadIng > 0"
@on-change="setPage"
@on-page-size-change="setPageSize"
:page-size-opts="[10,20,30,50,100]"
placement="top"
show-elevator
show-sizer
show-total
transfer/>
</div>
</template>
<script>
import {mapState} from "vuex";
export default {
name: "ReportReceive",
data() {
@ -57,16 +90,15 @@ export default {
username: '',
reportType: '',
createAt: [],
reportTypeList: [
{value: "", label: '全部'},
{value: "weekly", label: '周报'},
{value: "daily", label: '日报'},
],
reportTypeList: [],
}
},
mounted() {
this.getLists();
},
computed: {
...mapState(['userId'])
},
methods: {
initLanguage() {
this.noDataText = this.noDataText || "数据加载中.....";
@ -77,7 +109,8 @@ export default {
"minWidth": 120,
render: (h, params) => {
let arr = []
if (params.row.receives_user[0].pivot.read == 0) {
const myUser = params.row.receives_user.find(({userid}) => userid == this.userId)
if (myUser && myUser.pivot.read == 0) {
arr.push(
h('Tag', {
props: { //
@ -107,15 +140,15 @@ export default {
"sortable": true,
"maxWidth": 180,
}, {
"title": " ",
"key": 'action',
"align": 'right',
"width": 40,
title: this.$L("操作"),
align: 'center',
width: 100,
minWidth: 100,
render: (h, params) => {
if (!params.row.id) {
return null;
}
let arr = [
const vNodes = [
h('ETooltip', {
props: {content: this.$L('查看'), transfer: true, delay: 600},
style: {position: 'relative'},
@ -125,14 +158,26 @@ export default {
on: {
click: () => {
this.$emit("detail", params.row)
this.lists[params.index].receives_user[0].pivot.read = 1
const myUser = params.row.receives_user.find(({userid}) => userid == this.userId)
if (myUser) {
this.$set(myUser, 'pivot.read', 1)
}
}
}
})])
];
return h('div', arr);
return h('TableAction', {
props: {
column: params.column
}
}, vNodes);
},
}];
this.reportTypeList = [
{value: "", label: this.$L('全部')},
{value: "weekly", label: this.$L('周报')},
{value: "daily", label: this.$L('日报')},
]
},
getLists() {
@ -162,10 +207,12 @@ export default {
this.loadIng = 0;
});
},
setPage(page) {
this.listPage = page;
this.getLists();
},
setPageSize(size) {
if (Math.max($A.runNum(this.listPageSize), 10) !== size) {
this.listPageSize = size;
@ -173,12 +220,6 @@ export default {
}
},
timePick(e) {
this.createAt = e;
},
typePick(e) {
// console.log(e)
},
searchTab() {
this.getLists();
},

View File

@ -7,7 +7,7 @@
<Icon v-else type="ios-refresh" @click="refresh"/>
</div>
</div>
<div class="search-container auto">
<div class="search-container lr">
<ul>
<li>
<div class="search-label">

View File

@ -1,7 +1,7 @@
<template>
<div class="team-management">
<div class="management-title">{{$L('团队管理')}}</div>
<div class="search-container">
<div class="search-container lr">
<ul>
<li>
<div class="search-label">

View File

@ -11,7 +11,7 @@
flex-direction: column;
position: absolute;
.report-row-header, .report-row-foot {
.report-row-foot {
flex: 0 0 auto;
}
@ -29,31 +29,9 @@
}
}
.manage-box-report{
font-family: "Monospaced Number";
line-height: 1;
vertical-align: middle;
position: absolute;
-webkit-transform: translateX(50%);
-ms-transform: translateX(50%);
transform: translateX(50%);
right: 0;
height: 20px;
border-radius: 10px;
min-width: 20px;
background: #ed4014;
border: 1px solid transparent;
color: #fff;
line-height: 18px;
text-align: center;
padding: 0 6px;
font-size: 12px;
white-space: nowrap;
-webkit-transform-origin: -10% center;
-ms-transform-origin: -10% center;
transform-origin: -10% center;
z-index: 10;
-webkit-box-shadow: 0 0 0 1px #fff;
box-shadow: 0 0 0 1px #fff;
margin-left: 4px;
transform: scale(0.8);
vertical-align: top;
}
.page-box {
@ -85,7 +63,12 @@
}
.report-detail {
display: flex;
flex-direction: column;
height: 100%;
.report-title {
flex-shrink: 0;
font-size: 16px;
font-weight: bold;
margin-bottom: 12px;
@ -94,11 +77,28 @@
}
.report-detail-context {
padding: 12px 24px;
flex: 1;
padding: 12px 0 12px 24px;
display: flex;
flex-direction: column;
height: 0;
.report-main {
flex: 1;
overflow: auto;
margin-top: 12px;
}
.report-submitter {
p {
opacity: 0.8;
}
}
}
.report-profile {
font-size: 14px;
padding-right: 24px;
}
.report-submitter {
@ -130,7 +130,6 @@
}
.report-content {
margin-top: 12px;
width: 100%;
h2 {
@ -155,7 +154,7 @@
height: 100%;
padding: 24px;
.report-row-header, .report-row-foot {
.report-row-foot {
flex: 0 0 auto;
}
@ -180,6 +179,98 @@
.report-row-foot {
margin-bottom: 0;
}
.report-titles {
line-height: 32px;
}
.report-poptip {
.ivu-tooltip-inner {
min-width: 60px !important;
font-size: 12px !important;
}
}
.report-users {
display: flex;
align-items: center;
.common-user {
flex: 1;
margin-right: 12px;
}
.report-row-a {
flex-shrink: 0;
}
}
.report-radiogroup {
background: #F4F5F7 !important;
padding: 2px !important;
border-radius: 4px !important;
.ivu-radio-wrapper {
padding: 0 30px !important;
background: #F4F5F7 !important;
color: #515A6E !important;
box-shadow: none !important;
border: none !important;
&:before {
width: 0 !important;
}
&:after {
width: 0 !important;
}
}
.ivu-radio-focus {
box-shadow: none !important;
border: none !important;
&:after {
background: none !important;
}
}
.ivu-radio-wrapper-checked:not(.ivu-radio-wrapper-disabled) {
background: #fff !important;
color: #8BCF70 !important;
box-shadow: none !important;
border: none !important;
border-radius: 4px !important;
}
}
.report-buttongroup {
margin-left: 20px;
background: #F4F5F7 !important;
border-radius: 4px;
.report-buttongroup-vertical {
position: absolute;
left: 47px;
width: 1px;
height: 23px;
background-color: #E5E5E5;
top: 5px;
}
.ivu-btn-primary {
background: #F4F5F7 !important;
box-shadow: none !important;
border: none !important;
color: #8BCF70 !important;
height: 36px;
line-height: 34px;
&[disabled] {
color: #515A6E !important;
}
}
}
}
.report-row {
@ -197,9 +288,9 @@
}
.report-bottom {
height: 36px;
line-height: 34px;
min-width: 110px;
height: 38px;
line-height: 36px;
min-width: 120px;
}
.ivu-input[disabled] {
@ -207,109 +298,3 @@
}
}
.report-titles {
line-height: 32px;
}
.report-users {
display: flex;
align-items: center;
.common-user {
flex: 1;
margin-right: 12px;
}
.report-row-a {
flex-shrink: 0;
}
}
.report-radiogroup {
background: #F4F5F7 !important;
padding: 2px !important;
border-radius: 4px !important;
.ivu-radio-wrapper {
padding: 0 30px !important;
background: #F4F5F7 !important;
color: #515A6E !important;
box-shadow: none !important;
border: none !important;
&:before {
width: 0 !important;
}
&:after {
width: 0 !important;
}
}
.ivu-radio-focus {
box-shadow: none !important;
border: none !important;
&:after {
background: none !important;
}
}
.ivu-radio-wrapper-checked:not(.ivu-radio-wrapper-disabled) {
background: #fff !important;
color: #8BCF70 !important;
box-shadow: none !important;
border: none !important;
border-radius: 4px !important;
}
}
.report-buttongroup {
margin-left: 20px;
background: #F4F5F7 !important;
border-radius: 4px;
.report-buttongroup-shu {
position: absolute;
left: 47px;
width: 1px;
height: 23px;
background-color: #E5E5E5;
top: 5px;
}
.ivu-btn-primary {
background: #F4F5F7 !important;
box-shadow: none !important;
border: none !important;
color: #8BCF70 !important;
height: 36px;
line-height: 34px;
&[disabled] {
color: #515A6E !important;
}
}
}
.report-poptip {
.ivu-tooltip-inner {
min-width: 60px !important;
font-size: 12px !important;
}
}
.reportmy-row {
margin-bottom: 20px;
.reportmy-titles {
line-height: 32px;
}
}
.report-main {
.report-submitter {
padding-top: 13px;
}
}

View File

@ -359,14 +359,16 @@ body {
}
.search-container {
margin-bottom: 24px;
margin-bottom: 12px;
> ul {
display: flex;
align-items: flex-end;
flex-wrap: wrap;
> li {
flex: 1;
flex-shrink: 0;
margin-right: 12px;
margin-bottom: 12px;
list-style: none;
display: flex;
flex-direction: column;
@ -381,18 +383,77 @@ body {
}
&.search-button {
flex: none;
display: flex;
align-items: center;
flex-direction: row;
> button + button {
margin-left: 8px;
}
}
}
}
&.lr {
> ul {
> li:not(.search-button) {
flex: none;
flex-direction: row;
align-items: center;
margin-right: 18px;
.search-label {
flex-shrink: 0;
}
.search-content {
margin-top: 0;
margin-left: 6px;
.ivu-input-wrapper,
.ivu-select {
width: 168px;
max-width: 100%;
}
}
}
}
}
&.auto {
display: flex;
> ul {
> li:not(.search-button) {
min-width: 180px;
flex: none;
.search-content {
margin-top: 0;
margin-left: 6px;
.ivu-input-wrapper,
.ivu-select {
width: 150px;
max-width: 100%;
}
}
}
}
}
}
.search-expand {
display: flex;
align-items: flex-end;
.search-container {
flex: 1;
}
.expand-button-group {
flex-shrink: 0;
margin-left: 24px;
margin-bottom: 24px;
}
}
.search-button-clear {
.ivu-tooltip-inner {
padding: 0;
display: flex;
align-items: center;
.ivu-btn {
min-width: 80px;
font-size: 13px;
}
}
}
.icon-loading {
animation: icon-loading-load 0.6s infinite linear;