Commit eac8d62c authored by 姬鋆屾's avatar 姬鋆屾

tui

parent 7690a390
<template> <template>
<div class='page layout-form'> <div class="page layout-form">
<slot name='breadcrumb'> <slot name="breadcrumb">
<Breadcrumb /> <Breadcrumb />
</slot> </slot>
<slot></slot> <slot></slot>
...@@ -8,64 +8,67 @@ ...@@ -8,64 +8,67 @@
</template> </template>
<style lang="less"> <style lang="less">
@media screen and (max-width: 1440px){ @media screen and (max-width: 1440px) {
.layout-form{ .layout-form {
form{ form {
width: 100%!important; width: 100% !important;
} }
.el-col-12{ .el-col-12 {
width: 100%; width: 100%;
} }
} }
} }
.layout-form{ .layout-form {
.el-breadcrumb{ .el-breadcrumb {
padding-bottom: 12px; padding-bottom: 12px;
margin-bottom: 12px; margin-bottom: 12px;
border-bottom: 1px solid #ededed; border-bottom: 1px solid #ededed;
} }
form{ form {
width: 1440px; width: 1440px;
&[loading]{ &[loading] {
pointer-events: none; pointer-events: none;
.el-button{ .el-button {
background: #eee; background: #eee;
color: transparent; color: transparent;
border-color: #eee; border-color: #eee;
} }
input, input,
textarea{ textarea {
background: #eee; background: #eee;
color: transparent; color: transparent;
border-color: #eee; border-color: #eee;
} }
span, input, button, li, label{ span,
input,
button,
li,
label {
color: #eee; color: #eee;
} }
} }
.el-input-group--append{ .el-input-group--append {
.el-select .el-input { .el-select .el-input {
width: 80px; width: 80px;
} }
} }
// 自定义的field组件 // 自定义的field组件
.my-form-field{ .my-form-field {
.el-select{ .el-select {
width: 100%; width: 100%;
} }
.el-date-editor.el-input{ .el-date-editor.el-input {
width: 100%; width: 100%;
} }
.form-el-radio-group{ .form-el-radio-group {
label{ label {
width: 160px; width: 160px;
} }
.el-radio-button__inner{ .el-radio-button__inner {
border: 0; border: 0;
} }
} }
} }
} }
} }
</style> </style>
// 表单节点封装,支持 input textarea select radio checkbox 及slot方式 // 表单节点封装,支持 input textarea select radio checkbox 及slot方式
<template> <template>
<el-col :span='span'> <el-col :span="span">
<el-form-item :label="label" :prop="prop" class="my-form-field">
<el-form-item :label="label" :prop="prop" class='my-form-field'>
<slot> <slot>
<el-input show-word-limit :maxlength="maxLength" :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" v-if='type === "text"' :class="inputClass" :clearable='clearable'></el-input> <el-input
<el-input show-word-limit :maxlength="maxLength" :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" type='password' v-if='type === "password"'></el-input> show-word-limit
:maxlength="maxLength"
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
@change="emit"
@input="emit"
v-if="type === 'text'"
:class="inputClass"
:clearable="clearable"
></el-input>
<el-input
show-word-limit
:maxlength="maxLength"
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
@change="emit"
@input="emit"
type="password"
v-if="type === 'password'"
></el-input>
<el-input-number :disabled='disabled' v-model="field" size="small" :placeholder='placeholder' @change="emit" @input="emit" v-if='type === "num"'></el-input-number> <el-input-number
:disabled="disabled"
v-model="field"
size="small"
:placeholder="placeholder"
@change="emit"
@input="emit"
v-if="type === 'num'"
></el-input-number>
<el-input show-word-limit :disabled='disabled' :placeholder='placeholder' v-model="field" :maxlength="maxLength" <el-input
@change="emit" :rows='rows' @input="emit" v-if='type === "textarea"' type='textarea' :autosize="textareaSize" :class="inputClass"></el-input> show-word-limit
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
:maxlength="maxLength"
@change="emit"
:rows="rows"
@input="emit"
v-if="type === 'textarea'"
type="textarea"
:autosize="textareaSize"
:class="inputClass"
></el-input>
<!-- 一级 --> <!-- 一级 -->
<el-select :disabled='disabled' v-model="field" @change="emit" :multiple='multiple' :filterable='filterable' :clearable='clearable' v-if='type === "select"'> <el-select
:disabled="disabled"
v-model="field"
@change="emit"
:multiple="multiple"
:filterable="filterable"
:clearable="clearable"
v-if="type === 'select'"
style="width: 100%;"
>
<el-option <el-option
v-for="($label, $value) in enumData" v-for="($label, $value) in enumData"
:key="$value" :key="$value"
...@@ -23,34 +72,78 @@ ...@@ -23,34 +72,78 @@
</el-select> </el-select>
<!-- 多级 --> <!-- 多级 -->
<el-cascader :disabled='disabled' v-model="field" @change="emit" :options="enumData" :clearable='clearable' <el-cascader
:props="{label:'label',value:'id',multiple:multiple}" :disabled="disabled"
v-if='type === "cascader"'> v-model="field"
@change="emit"
:options="enumData"
:clearable="clearable"
:props="{ label: 'label', value: 'id', multiple: multiple }"
v-if="type === 'cascader'"
>
</el-cascader> </el-cascader>
<!-- 联级选择 --> <!-- 联级选择 -->
<el-cascader-panel :disabled='disabled' v-model="field" @change="emit" :options="enumData" :clearable='clearable' <el-cascader-panel
:props="{label:'label',value:'id',multiple:multiple}" v-if='type === "cascaderpanel"'></el-cascader-panel> :disabled="disabled"
v-model="field"
@change="emit"
:options="enumData"
:clearable="clearable"
:props="{ label: 'label', value: 'id', multiple: multiple }"
v-if="type === 'cascaderpanel'"
></el-cascader-panel>
<el-radio-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "radio"'> <el-radio-group
:disabled="disabled"
v-model="field"
@change="emit"
v-if="type === 'radio'"
>
<el-radio <el-radio
v-for='($label, $value) in enumData' v-for="($label, $value) in enumData"
:key='$value' :key="$value"
:label="$value" :label="$value"
>{{$label}}</el-radio> >{{ $label }}</el-radio
>
</el-radio-group> </el-radio-group>
<el-checkbox-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "checkbox"'> <el-checkbox-group
:disabled="disabled"
v-model="field"
@change="emit"
v-if="type === 'checkbox'"
>
<el-checkbox <el-checkbox
v-for='($label, $value) in enumData' v-for="($label, $value) in enumData"
:key='$value' :key="$value"
:label="$value" :label="$value"
>{{$label}}</el-checkbox> >{{ $label }}</el-checkbox
>
</el-checkbox-group> </el-checkbox-group>
<el-date-picker :disabled='disabled' type="date" value-format="yyyy-MM-dd HH:mm:ss" v-model="field" @change="emit" @input="emit" placeholder="选择日期" v-if='type === "date"'></el-date-picker> <el-date-picker
<el-date-picker :disabled='disabled' type="datetime" value-format="yyyy-MM-dd HH:mm:ss" v-model="field" @change="emit" @input="emit" placeholder="选择日期" v-if='type === "datetime"'></el-date-picker> :disabled="disabled"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="field"
@change="emit"
@input="emit"
placeholder="选择日期"
style="width: 100%;"
v-if="type === 'date'"
></el-date-picker>
<el-date-picker
:disabled="disabled"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="field"
@change="emit"
@input="emit"
placeholder="选择日期"
v-if="type === 'datetime'"
style="width: 100%;"
></el-date-picker>
</slot> </slot>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -59,7 +152,7 @@ ...@@ -59,7 +152,7 @@
<script> <script>
export default { export default {
props: { props: {
// 字段值 // 字段值
value: { value: {
type: [String, Number, Array], type: [String, Number, Array],
}, },
...@@ -71,17 +164,17 @@ export default { ...@@ -71,17 +164,17 @@ export default {
// 字段类型: text,password,textarea,select,radio,checkbox,date,datetime // 字段类型: text,password,textarea,select,radio,checkbox,date,datetime
type: { type: {
type: String, type: String,
default: 'text', default: "text",
}, },
// 字段name // 字段name
prop: { prop: {
type: String, type: String,
default: '', default: "",
}, },
// 字段中文标题 // 字段中文标题
label: { label: {
type: String, type: String,
default: '', default: "",
}, },
// 是否禁用 // 是否禁用
disabled: { disabled: {
...@@ -91,17 +184,17 @@ export default { ...@@ -91,17 +184,17 @@ export default {
// 是否提示 // 是否提示
placeholder: { placeholder: {
type: String, type: String,
default: '', default: "",
}, },
// 字段所需的枚举类型 // 字段所需的枚举类型
enumData: { enumData: {
type: Object, type: Object,
default: ()=>{}, default: () => {},
}, },
// textarea专用-自适应内容高度 // textarea专用-自适应内容高度
textareaSize: { textareaSize: {
type: Object, type: Object,
default: ()=>{}, default: () => {},
}, },
// select专用-是否可搜索 // select专用-是否可搜索
filterable: { filterable: {
...@@ -121,44 +214,43 @@ export default { ...@@ -121,44 +214,43 @@ export default {
// 字段所需的枚举类型 // 字段所需的枚举类型
options: { options: {
type: Array, type: Array,
default: ()=>[], default: () => [],
}, },
children: { children: {
type: Array, type: Array,
default: ()=>[], default: () => [],
}, },
inputClass: { inputClass: {
type: String, type: String,
default: '', default: "",
},
maxLength: {
type: Number,
default: 256,
}, },
maxLength:{
type:Number,
default:256,
}
}, },
methods: { methods: {
emit() { emit() {
this.$emit('input', this.newVal) this.$emit("input", this.newVal);
this.$emit('change', this.newVal) this.$emit("change", this.newVal);
//this.$emit('focus', this.newVal) //this.$emit('focus', this.newVal)
this.$emit('cascaderChange',this.newVal) this.$emit("cascaderChange", this.newVal);
} },
}, },
computed: { computed: {
field: { field: {
get() { get() {
return this.value return this.value;
}, },
set(val) { set(val) {
this.newVal = val; this.newVal = val;
} },
} },
}, },
data() { data() {
return { return {
newVal: this.value, newVal: this.value,
} };
} },
} };
</script> </script>
...@@ -9,11 +9,16 @@ ...@@ -9,11 +9,16 @@
<i class="el-icon-menu" @click="showMobileMenu = !showMobileMenu"> <i class="el-icon-menu" @click="showMobileMenu = !showMobileMenu">
</i> </i>
<router-link to="/"> <router-link to="/">
<!-- <img src="../assets/images/logo.png" style="margin-bottom:5px" height="40" alt=""> --> <img
<b style="color:white;font-size:20px;" src="../assets/images/logo.png"
>&nbsp;&nbsp;&nbsp; 智慧政务绩效管理系统 style="margin-bottom:5px;margin-left: 24px;"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b height="40"
> alt=""
/>
<b style="color:white;font-size:20px;">
&nbsp;&nbsp;&nbsp;智慧政务绩效管理系统
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</b>
</router-link> </router-link>
</div> </div>
<!-- 一级菜单 --> <!-- 一级菜单 -->
...@@ -183,9 +188,9 @@ export default { ...@@ -183,9 +188,9 @@ export default {
.layout-menu-wrapper { .layout-menu-wrapper {
height: 72px; height: 72px;
line-height: 72px; line-height: 72px;
font-size: 16px; font-size: 14px;
color: #eee; color: #eee;
background: #1848c8; background: linear-gradient(90deg, #1845c6, #2999ff) !important;
.layout-logo { .layout-logo {
height: 50px; height: 50px;
.el-icon-menu { .el-icon-menu {
...@@ -207,13 +212,14 @@ export default { ...@@ -207,13 +212,14 @@ export default {
height: 100%; height: 100%;
color: #eee; color: #eee;
cursor: pointer; cursor: pointer;
margin-right: 10px; margin-right: 20px;
} }
.active { .active {
color: #fff; color: #fff;
list-style-type: none; list-style-type: none;
border-bottom: 3px solid #fff; // border-bottom: 3px solid #fff;
padding-bottom: 2px; // padding-bottom: 2px;
background-color: #1890ff;
} }
} }
} }
......
...@@ -4,6 +4,11 @@ ...@@ -4,6 +4,11 @@
<div class="left_top"> <div class="left_top">
<div class="title"> <div class="title">
部门绩效总分排名TOP10 部门绩效总分排名TOP10
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
</div> </div>
<dv-scroll-ranking-board <dv-scroll-ranking-board
:config="config" :config="config"
...@@ -11,6 +16,11 @@ ...@@ -11,6 +16,11 @@
/> />
</div> </div>
<div class="left_mid"> <div class="left_mid">
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
<div id="leida" style="width: 100%;height: 100%;"></div> <div id="leida" style="width: 100%;height: 100%;"></div>
</div> </div>
<div class="left_down"> <div class="left_down">
...@@ -176,6 +186,11 @@ ...@@ -176,6 +186,11 @@
</div> </div>
<div class="right"> <div class="right">
<div class="right_top"> <div class="right_top">
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
<div class="title"> <div class="title">
个人绩效总分排名TOP10 个人绩效总分排名TOP10
</div> </div>
...@@ -185,6 +200,11 @@ ...@@ -185,6 +200,11 @@
/> />
</div> </div>
<div class="right_mid"> <div class="right_mid">
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
<div id="shensuPie" style="width: 100%;height: 100%;"></div> <div id="shensuPie" style="width: 100%;height: 100%;"></div>
</div> </div>
<div class="right_down"> <div class="right_down">
...@@ -326,6 +346,8 @@ export default { ...@@ -326,6 +346,8 @@ export default {
legend: { legend: {
data: ["加分", "扣分"], data: ["加分", "扣分"],
right: 0, right: 0,
bottom: "50px",
orient: "vertical",
}, },
radar: [ radar: [
{ {
...@@ -843,6 +865,7 @@ export default { ...@@ -843,6 +865,7 @@ export default {
.right_top, .right_top,
.right_mid, .right_mid,
.right_down { .right_down {
position: relative;
width: 100%; width: 100%;
height: 33%; height: 33%;
background: #fff; background: #fff;
...@@ -864,5 +887,39 @@ export default { ...@@ -864,5 +887,39 @@ export default {
height: 30%; height: 30%;
margin: 15px 0; margin: 15px 0;
} }
.button_box {
position: absolute;
top: 8px;
right: 10px;
display: flex;
span {
border-width: 0px;
width: 40px;
height: 24px;
display: flex;
font-family: "微软雅黑", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 12px;
color: #797979;
background-color: rgba(28, 117, 221, 0.0980392156862745);
border: none;
border-radius: 4px;
justify-content: center;
align-items: center;
margin-right: 5px;
cursor: pointer;
}
.check {
background: linear-gradient(
90deg,
rgba(23, 67, 198, 1) 0%,
rgba(31, 116, 223, 1) 50%,
rgba(44, 140, 240, 1) 99%
);
font-size: 12px;
color: #ffffff;
}
}
} }
</style> </style>
...@@ -255,7 +255,7 @@ export default { ...@@ -255,7 +255,7 @@ export default {
overflow: hidden; overflow: hidden;
/deep/.el-tabs__item { /deep/.el-tabs__item {
width: 120px; width: 120px;
font-size: 18px; font-size: 14px;
text-align: center; text-align: center;
} }
.content { .content {
......
...@@ -23,9 +23,22 @@ ...@@ -23,9 +23,22 @@
<div class="right_box"> <div class="right_box">
<h3>规则管理</h3> <h3>规则管理</h3>
<div class="search_box"> <div class="search_box">
<el-button type="primary" style="margin:20px 0" @click="addRules"> <div class="left_search">
+ 新增规则</el-button <el-button type="primary" style="margin:20px 0" @click="addRules">
> + 新增规则</el-button
>
<el-switch
v-model="switchValue"
active-color="#13ce66"
inactive-color="#1890ff"
active-value="100"
inactive-value="0"
inactive-text="按分值排序"
active-text="按更新时间排序"
style="margin-left: 10px;"
>
</el-switch>
</div>
<div class="search"> <div class="search">
<el-input <el-input
placeholder="请输入考核内容关键字搜索" placeholder="请输入考核内容关键字搜索"
...@@ -70,6 +83,7 @@ export default { ...@@ -70,6 +83,7 @@ export default {
}, },
data() { data() {
return { return {
switchValue: "0",
index: -1, index: -1,
dataArr: [], dataArr: [],
config: { config: {
......
...@@ -46,7 +46,7 @@ export default { ...@@ -46,7 +46,7 @@ export default {
overflow: hidden; overflow: hidden;
/deep/.el-tabs__item { /deep/.el-tabs__item {
width: 180px; width: 180px;
font-size: 18px; font-size: 14px;
text-align: center; text-align: center;
} }
} }
......
...@@ -218,7 +218,7 @@ export default { ...@@ -218,7 +218,7 @@ export default {
overflow: hidden; overflow: hidden;
/deep/.el-tabs__item { /deep/.el-tabs__item {
width: 120px; width: 120px;
font-size: 18px; font-size: 14px;
text-align: center; text-align: center;
} }
.content { .content {
......
<template> <template>
<!-- 弹出框表单 --> <!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="180px">
<el-row> <el-row>
<Field <Field
label="负责人id号" label="负责人id号"
......
...@@ -3,11 +3,27 @@ ...@@ -3,11 +3,27 @@
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="目标看板" name="1"> <el-tab-pane label="目标看板" name="1">
<div class="content"> <div class="content">
<div class="top"> <div class="top search_top">
<el-radio-group v-model="type"> <el-radio-group v-model="type">
<el-radio-button label="1">按部门</el-radio-button> <el-radio-button label="1">按部门</el-radio-button>
<el-radio-button label="2">按个人</el-radio-button> <el-radio-button label="2">按个人</el-radio-button>
</el-radio-group> </el-radio-group>
<div class="search_box">
<el-select
v-model="dateValue"
placeholder="请选择"
style="margin: 0 10px;"
>
<el-option
v-for="item in optionsMonths"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-button type="primary">搜索</el-button>
</div>
</div> </div>
<div class="mid"> <div class="mid">
<div class="mid_top"> <div class="mid_top">
...@@ -326,7 +342,7 @@ export default { ...@@ -326,7 +342,7 @@ export default {
overflow: hidden; overflow: hidden;
/deep/.el-tabs__item { /deep/.el-tabs__item {
width: 120px; width: 120px;
font-size: 18px; font-size: 14px;
text-align: center; text-align: center;
} }
.content { .content {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment