Browse Source

Merge branch 'master' of git.taauav.net:gitadmin/jndz_admin_web

master
yangzhou-cyber 3 years ago
parent
commit
e4915e606f
14 changed files with 580 additions and 424 deletions
  1. +7
    -0
      src/api/assessingTarget/commonquotatask.js
  2. +6
    -0
      src/api/summary/basicTarget.js
  3. +6
    -0
      src/api/summary/constraint.js
  4. +6
    -0
      src/api/summary/reward.js
  5. BIN
      src/assets/dashboard.jpg
  6. +111
    -0
      src/views/assessingTarget/commonquotatask.vue
  7. +47
    -15
      src/views/basicTable/category.vue
  8. +2
    -5
      src/views/basicTable/conventional.vue
  9. +5
    -384
      src/views/dashboard/workplace.vue
  10. +122
    -2
      src/views/summary/basicTarget.vue
  11. +116
    -2
      src/views/summary/constraint.vue
  12. +8
    -1
      src/views/summary/department.vue
  13. +117
    -12
      src/views/summary/reward.vue
  14. +27
    -3
      src/views/system/user/index.vue

+ 7
- 0
src/api/assessingTarget/commonquotatask.js View File

@@ -0,0 +1,7 @@
import axios from "@/config/axios"
export default{
getList(params){
console.log(params)
return axios.get("/commonquotatask/index",{params})
}
}

+ 6
- 0
src/api/summary/basicTarget.js View File

@@ -0,0 +1,6 @@
import axios from "@/config/axios"
export default{
getList(params){
return axios.get("/statistics/basicTask",{params})
}
}

+ 6
- 0
src/api/summary/constraint.js View File

@@ -0,0 +1,6 @@
import axios from "@/config/axios"
export default{
getList(params){
return axios.get("/statistics/rigidityConstraint",{params})
}
}

+ 6
- 0
src/api/summary/reward.js View File

@@ -0,0 +1,6 @@
import axios from "@/config/axios"
export default{
getList(params){
return axios.get("/statistics/specialPower",{params})
}
}

BIN
src/assets/dashboard.jpg View File

Before After
Width: 1677  |  Height: 843  |  Size: 379KB

+ 111
- 0
src/views/assessingTarget/commonquotatask.vue View File

@@ -0,0 +1,111 @@
<template>
<div class="basic-target ele-body">
<el-card shadow="never">
<el-table
:data="dataList"
border
highlight-current-row
:height="tableHeight"
v-loading="loading"
>
<el-table-column
label="类别"
min-width="80"
align="center"
prop="categoryName"
></el-table-column>
<el-table-column type="index" label="序号" align="center">
</el-table-column>
<el-table-column
label="指标名称"
min-width="150"
align="center"
prop="quotaName"
></el-table-column>
<el-table-column
label="单位"
min-width="60"
align="center"
prop="quotaUnit"
></el-table-column>
<el-table-column
label="江宁开发区"
min-width="80"
align="center"
prop="jiangningDevzone"
></el-table-column>
<el-table-column
label="江宁高新区"
min-width="80"
align="center"
prop="jiangningHighzone"
></el-table-column>
<el-table-column
label="滨江开发区"
min-width="80"
align="center"
prop="binjiangDevzone"
></el-table-column>
</el-table>
<el-pagination
:current-page.sync="page.page"
:page-size="page.limit"
:total="count"
:background="true"
layout="total, prev, pager, next, jumper"
:pager-count="5"
class="ele-pagination-circle"
@current-change="getDataList()"
/>
</el-card>
</div>
</template>

<script>
import api from "@/api/assessingTarget/commonquotatask";
export default {
components: {

},
data() {
return {
dataList: [],
loading: false,
count: 0,
tableHeight:document.documentElement.clientHeight - 470,
page: {
page: 1,
limit: Math.floor(
(document.documentElement.clientHeight - 470 - 45) / 45
),
},
};
},
created() {
this.getDataList();
},
methods: {
getDataList(params) {
this.loading = true;
api
.getList(params ? Object.assign(this.page, params) : this.page)
.then((res) => {
console.log(res.data);
this.loading = false;
let data = res.data.data
this.dataList = data;
this.count = res.data.data.total;
})
.catch(() => {
this.loading = false;
this.dataList = [];
this.count = 0;
});
},
},
};
</script>

<style>
</style>

+ 47
- 15
src/views/basicTable/category.vue View File

@@ -66,6 +66,13 @@
></el-table-column>
<el-table-column label="操作" min-width="120" align="center">
<template slot-scope="{ row }">
<el-link
@click="look(row)"
icon="el-icon-view"
type="primary"
:underline="false"
>查看</el-link
>
<el-link
@click="edit(row)"
icon="el-icon-edit"
@@ -100,8 +107,8 @@
@current-change="getDataList()"
/>
</el-card>
<el-dialog
title="添加表"
<el-dialog
:title="dialogTitle"
:visible.sync="showAdd"
width="400px"
custom-class="ele-dialog-form"
@@ -118,19 +125,21 @@
ref="editForm"
:rules="rules"
>
<el-form-item label="考核年度:" prop="year">
<el-date-picker
type="year"
placeholder="选择考核年度"
style="width: 100%"
v-model="form.year"
format="yyyy"
value-format="yyyy"
>
</el-date-picker>
<el-form-item label="考核年度:" prop="createTime">
<el-date-picker
:disabled='ischecked=="look"'
type="year"
placeholder="选择考核年度"
style="width: 100%"
v-model="form.createTime"
format="yyyy"
value-format="yyyy"
>
</el-date-picker>
</el-form-item>
<el-form-item label="表格名称:" prop="name">
<el-input
:disabled='ischecked=="look"'
placeholder="请输入如表格名称"
clearable
v-model="form.name"
@@ -138,18 +147,28 @@
</el-form-item>
<el-form-item label="表编号:" prop="code">
<el-input
:disabled='ischecked=="look"'
placeholder="请输入表编号"
clearable
v-model="form.code"
></el-input>
</el-form-item>
<el-form-item v-if="ischecked == 'look'" label="创建人:" prop='createUser'>
<el-input
:disabled='ischecked=="look"'
placeholder="请输入创建人"
clearable
v-model="form.createUser"
></el-input>
</el-form-item>
<el-form-item label="备注:">
<el-input type="textarea" :rows="4" v-model="form.note"></el-input>
<el-input :disabled='ischecked=="look"' type="textarea" :rows="4" v-model="form.note"></el-input>
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="showAdd = false">取消</el-button>&nbsp;
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" @click="save" v-if="ischecked !== 'look'">保存</el-button>
</div>
</el-dialog>
</div>
@@ -168,6 +187,8 @@ export default {
loading: false,
dataList: [],
count: 0,
dialogTitle:'添加表',
ischecked: 'edit',
page: {
page: 1,
limit: Math.floor(
@@ -229,12 +250,23 @@ export default {
});
},
add() {
this.dialogTitle = '添加表'
this.form = { code: "", name: "", note: "", year: "" };
this.showAdd = true;
this.ischecked = 'add'
},
look(row) {
console.log(row);
this.form = Object.assign({}, row)
this.dialogTitle = '查看表'
this.showAdd = true
this.ischecked = 'look'
},
edit(row) {
this.form = Object.assign({}, row);
this.form = Object.assign({}, row)
this.showAdd = true;
this.dialogTitle = '编辑表'
this.ischecked = 'edit'
},
remove(row) {
if (!row) {

+ 2
- 5
src/views/basicTable/conventional.vue View File

@@ -58,11 +58,7 @@
min-width="80"
prop="num"
></el-table-column>
<!-- <el-table-column
label="操作"
min-width="150"
align="center"
></el-table-column> -->
</el-table>
<el-pagination
:current-page.sync="page.page"
@@ -207,6 +203,7 @@ export default {
.getList(Object.assign({}, this.searchParams, this.page))
.then((res) => {
this.loading = false;
console.log(res.data.data.records);
let data = res.data.data.records;
data = data.map((item) => {
item.year = item.year + "";

+ 5
- 384
src/views/dashboard/workplace.vue View File

@@ -1,268 +1,18 @@
<template>
<div class="ele-body">
<!-- 顶部卡片 -->
<el-card shadow="never" body-style="padding: 20px;">
<div class="ele-cell workplace-user-card">
<div class="ele-cell-content ele-cell">
<el-avatar :size="68" :src="$store.state.user.user.avatar"/>
<div class="ele-cell-content" style="overflow: hidden;">
<h4 class="ele-elip">早安,{{ $store.state.user.user.nickname }},开始您一天的工作吧!</h4>
<div class="ele-text-secondary ele-elip" style="margin-top: 8px;">
<i class="el-icon-heavy-rain"></i><s/><s/>今日阴转小雨,22℃ - 32℃,出门记得带伞哦。
</div>
</div>
</div>
<div class="workplace-count-group">
<div class="workplace-count-item">
<div class="workplace-count-header">
<el-tag size="small" class="ele-tag-round"><i class="el-icon-menu"></i></el-tag>
<span class="workplace-count-name">项目数</span>
</div>
<div class="workplace-count-num">3</div>
</div>
<div class="workplace-count-item">
<div class="workplace-count-header">
<el-tag type="warning" size="small" class="ele-tag-round"><i class="el-icon-finished"></i></el-tag>
<span class="workplace-count-name">待办项</span>
</div>
<div class="workplace-count-num">6 / 24</div>
</div>
<div class="workplace-count-item">
<div class="workplace-count-header">
<el-tag type="success" size="small" class="ele-tag-round"><i class="el-icon-bell"></i></el-tag>
<span class="workplace-count-name">消息</span>
</div>
<div class="workplace-count-num">1,689</div>
</div>
</div>
</div>
</el-card>
<el-row :gutter="15">
<el-col :md="3" :sm="6" :xs="12">
<el-card shadow="hover" body-style="padding:0;">
<div class="app-link-block" @click="$router.push('/system/user')">
<i class="app-link-icon el-icon-user"></i>
<div class="app-link-title">用户</div>
</div>
</el-card>
</el-col>
<el-col :md="3" :sm="6" :xs="12">
<el-card shadow="hover" body-style="padding:0;">
<div class="app-link-block">
<i class="app-link-icon el-icon-data-line" style="color: #95de64;"></i>
<div class="app-link-title">分析</div>
</div>
</el-card>
</el-col>
<el-col :md="3" :sm="6" :xs="12">
<el-card shadow="hover" body-style="padding:0;">
<div class="app-link-block">
<i class="app-link-icon el-icon-shopping-cart-2" style="color: #ff9c6e;"></i>
<div class="app-link-title">商品</div>
</div>
</el-card>
</el-col>
<el-col :md="3" :sm="6" :xs="12">
<el-card shadow="hover" body-style="padding:0;">
<div class="app-link-block">
<i class="app-link-icon el-icon-tickets" style="color: #b37feb;"></i>
<div class="app-link-title">订单</div>
</div>
</el-card>
</el-col>
<el-col :md="3" :sm="6" :xs="12">
<el-card shadow="hover" body-style="padding:0;">
<div class="app-link-block">
<i class="app-link-icon el-icon-bank-card" style="color: #ffd666;"></i>
<div class="app-link-title">票据</div>
</div>
</el-card>
</el-col>
<el-col :md="3" :sm="6" :xs="12">
<el-card shadow="hover" body-style="padding:0;">
<div class="app-link-block">
<i class="app-link-icon el-icon-message" style="color: #5cdbd3;"></i>
<div class="app-link-title">消息</div>
</div>
</el-card>
</el-col>
<el-col :md="3" :sm="6" :xs="12">
<el-card shadow="hover" body-style="padding:0;">
<div class="app-link-block">
<i class="app-link-icon el-icon-discount" style="color: #ff85c0;"></i>
<div class="app-link-title">标签</div>
</div>
</el-card>
</el-col>
<el-col :md="3" :sm="6" :xs="12">
<el-card shadow="hover" body-style="padding:0;">
<div class="app-link-block">
<i class="app-link-icon el-icon-s-operation" style="color: #ffc069;"></i>
<div class="app-link-title">配置</div>
</div>
</el-card>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :sm="8">
<el-card shadow="never" header="最新动态" body-style="padding:0;">
<el-scrollbar style="height:318px;" wrapStyle="overflow-x:hidden;" viewStyle="padding:20px 10px;">
<el-timeline :reverse="false" class="ele-timeline ele-timeline-act">
<el-timeline-item v-for="(act,index) in activities" :key="index" :timestamp="act.timestamp"
:type="act.primary?'primary':''">{{ act.title }}
</el-timeline-item>
</el-timeline>
</el-scrollbar>
</el-card>
</el-col>
<el-col :sm="8">
<el-card class="workplace-table-card" shadow="never" header="我的任务" body-style="padding: 0;">
<el-table-draggable handle=".sort-handle" :animate="300">
<el-table :data="taskList" :height="318" class="ele-table-default-head">
<el-table-column width="38" align="center">
<template>
<i class="sort-handle el-icon-_nav ele-text-placeholder"></i>
</template>
</el-table-column>
<el-table-column label="优先级" width="65">
<template slot-scope="{row}">
<el-tag :type="['danger','warning','primary'][row.priority-1]"
size="mini" class="ele-tag-round">{{ row.priority }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="任务名称">
<template slot-scope="{row}">
<el-link type="primary" :underline="false">{{ row.taskName }}</el-link>
</template>
</el-table-column>
<el-table-column label="状态" width="70" align="center">
<template slot-scope="{row}">
<span :class="['ele-text-warning','ele-text-success','ele-text-info ele-text-delete'][row.state]">
{{ ['未开始', '进行中', '已完成'][row.state] }}
</span>
</template>
</el-table-column>
</el-table>
</el-table-draggable>
</el-card>
</el-col>
<el-col :sm="8">
<el-card shadow="never" header="本月目标">
<div class="workplace-goal-group">
<el-progress type="dashboard" :percentage="80" :width="170" :format="()=>{return ''}"/>
<div class="workplace-goal-content">
<el-tag size="large" class="ele-tag-round"><i class="el-icon-s-data"></i></el-tag>
<div class="workplace-goal-num">285</div>
</div>
<div class="workplace-goal-text">恭喜,本月目标已达标!</div>
</div>
</el-card>
</el-col>
<el-col :sm="16">
<el-card class="workplace-table-card" shadow="never" header="项目进度" body-style="padding:12px;">
<el-table :data="projectList" height="358">
<el-table-column type="index" width="35" min-width="35" align="right"/>
<el-table-column label="项目名称" min-width="110">
<template slot-scope="{row}">
<el-link type="primary" :underline="false">{{ row.projectName }}</el-link>
</template>
</el-table-column>
<el-table-column prop="startDate" label="开始时间" width="95" min-width="80" align="center"/>
<el-table-column prop="endDate" label="结束时间" width="95" min-width="80" align="center"/>
<el-table-column label="状态" width="70" min-width="60" align="center">
<template slot-scope="{row}">
<span
:class="['ele-text-success','ele-text-danger','ele-text-warning','ele-text-info ele-text-delete'][row.state]">
{{ ['进行中', '已延期', '未开始', '已结束'][row.state] }}
</span>
</template>
</el-table-column>
<el-table-column label="进度" width="160" min-width="100" align="center">
<template slot-scope="{row}">
<el-progress :percentage="row.progress" class="ele-text-small"/>
</template>
</el-table-column>
</el-table>
</el-card>
</el-col>
<el-col :sm="8">
<el-card shadow="never" header="小组成员" body-style="padding:19px 0;">
<div v-for="(item,index) in userList" :key="index" class="ele-cell user-list-item">
<el-avatar :size="42" :src="item.avatar"/>
<div class="ele-cell-content">
<div class="ele-cell-title">{{ item.name }}</div>
<div class="ele-cell-desc">{{ item.desc }}</div>
</div>
<el-tag size="mini" :type="['success','danger'][item.state]">{{ ['在线', '离线'][item.state] }}</el-tag>
</div>
</el-card>
</el-col>
</el-row>
<img class="showImg" src="@/assets/dashboard.jpg" alt="">
</div>
</template>

<script>
import ElTableDraggable from '@/components/Sortable/ElTableDraggable'

export default {
name: "Workplace",
components: {ElTableDraggable},
components: {},
data() {
return {
activities: [
{title: 'SunSmile 解决了bug 登录提示操作失败', timestamp: '20:30', primary: false},
{title: 'Jasmine 解决了bug 按钮颜色与设计不符', timestamp: '19:30', primary: false},
{title: '项目经理 指派了任务 解决项目一的bug', timestamp: '18:30', primary: true},
{title: '项目经理 指派了任务 解决项目二的bug', timestamp: '17:30', primary: true},
{title: '项目经理 指派了任务 解决项目三的bug', timestamp: '16:30', primary: true},
{title: '项目经理 指派了任务 解决项目四的bug', timestamp: '15:30', primary: false},
{title: '项目经理 指派了任务 解决项目五的bug', timestamp: '14:30', primary: false},
{title: '项目经理 指派了任务 解决项目六的bug', timestamp: '12:30', primary: false},
{title: '项目经理 指派了任务 解决项目七的bug', timestamp: '11:30', primary: true},
{title: '项目经理 指派了任务 解决项目八的bug', timestamp: '10:30', primary: false},
{title: '项目经理 指派了任务 解决项目九的bug', timestamp: '09:30', primary: false},
{title: '项目经理 指派了任务 解决项目十的bug', timestamp: '08:30', primary: false}
],
taskList: [
{id: 1, priority: 1, taskName: '解决项目一的bug', state: 0},
{id: 2, priority: 2, taskName: '解决项目二的bug', state: 0},
{id: 3, priority: 2, taskName: '解决项目三的bug', state: 1},
{id: 4, priority: 3, taskName: '解决项目四的bug', state: 1},
{id: 5, priority: 3, taskName: '解决项目五的bug', state: 2},
{id: 6, priority: 3, taskName: '解决项目六的bug', state: 2}
],
projectList: [
{projectName: '项目0000001', state: 0, startDate: '2020-03-01', endDate: '2020-06-01', progress: 30},
{projectName: '项目0000002', state: 0, startDate: '2020-03-01', endDate: '2020-08-01', progress: 10},
{projectName: '项目0000003', state: 1, startDate: '2020-01-01', endDate: '2020-05-01', progress: 60},
{projectName: '项目0000004', state: 1, startDate: '2020-06-01', endDate: '2020-10-01', progress: 0},
{projectName: '项目0000005', state: 2, startDate: '2020-01-01', endDate: '2020-03-01', progress: 100},
{projectName: '项目0000006', state: 3, startDate: '2020-01-01', endDate: '2020-03-01', progress: 100},
{projectName: '项目0000007', state: 3, startDate: '2020-01-01', endDate: '2020-03-01', progress: 100}
],
userList: [
{
name: 'SunSmile', desc: 'UI设计师、交互专家', state: 0,
avatar: 'https://cdn.eleadmin.com/20200609/c184eef391ae48dba87e3057e70238fb.jpg'
},
{
name: '你的名字很好听', desc: '前端工程师', state: 0,
avatar: 'https://cdn.eleadmin.com/20200609/b6a811873e704db49db994053a5019b2.jpg'
},
{
name: '全村人的希望', desc: '前端工程师', state: 0,
avatar: 'https://cdn.eleadmin.com/20200609/948344a2a77c47a7a7b332fe12ff749a.jpg'
},
{
name: 'Jasmine', desc: '产品经理、项目经理', state: 1,
avatar: 'https://cdn.eleadmin.com/20200609/f6bc05af944a4f738b54128717952107.jpg'
},
{
name: '酷酷的大叔', desc: '组长、后端工程师', state: 1,
avatar: 'https://cdn.eleadmin.com/20200609/2d98970a51b34b6b859339c96b240dcd.jpg'
}
]
}
},
mounted() {
@@ -275,138 +25,9 @@ export default {
.ele-body {
padding-bottom: 0;
}

.el-card {
margin-bottom: 15px;
}

/** 顶部统计 */
.workplace-count-group {
white-space: nowrap;
}

.workplace-count-item {
padding: 0 5px 0 25px;
box-sizing: border-box;
display: inline-block;
text-align: right;
}

.workplace-count-name {
padding-left: 5px;
}

.workplace-count-num {
font-size: 23px;
margin-top: 6px;
}

@media screen and (max-width: 992px) {
.workplace-count-item {
padding: 0 5px 0 10px;
}
}

@media screen and (max-width: 768px) {
.workplace-user-card, .workplace-count-group {
display: block;
}

.workplace-count-group {
margin-top: 15px;
text-align: right;
}
}

/** 快捷方式 */
.app-link-block {
cursor: pointer;
text-align: center;
padding: 15px 0;
}

.app-link-block .app-link-icon {
color: #69c0ff;
font-size: 30px;
margin-top: 5px;
}

.app-link-block .app-link-title {
margin-top: 8px;
}

/** 最新动态时间轴 */
.ele-timeline-act {
padding-left: 50px;
}

.ele-timeline-act >>> .el-timeline-item__timestamp {
margin: 0;
position: absolute;
top: 3px;
left: -45px;
}

.ele-timeline-act >>> .el-timeline-item {
padding-bottom: 19px;
}

.ele-timeline-act >>> .el-timeline-item:last-child {
padding-bottom: 0;
}

/** 表格 */
.workplace-table-card >>> .el-table tbody > .el-table__row:last-child td {
border-bottom: none;
}

.workplace-table-card >>> .el-table:before {
display: none;
}

.sort-handle {
cursor: move;
font-size: 18px;
vertical-align: middle;
}

.ele-body >>> .el-table__row.sortable-chosen {
background-color: hsla(0, 0%, 60%, .1);
}

.ele-body >>> .el-table__row.sortable-chosen td {
background-color: transparent;
}

/** 本月目标 */
.workplace-goal-group {
text-align: center;
position: relative;
padding: 48px 0;
}

.workplace-goal-group .workplace-goal-content {
position: absolute;
top: 90px;
left: 0;
.showImg {
width: 100%;
height: auto;
}

.workplace-goal-group .workplace-goal-num {
font-size: 40px;
margin-top: 15px;
}

/** 小组成员 */
.user-list-item {
padding: 13px 18px;
}

.user-list-item + .user-list-item {
border-top: 1px solid hsla(0, 0%, 60%, .15);
}

.user-list-item .ele-cell-desc {
margin-top: 5px;
}
</style>

+ 122
- 2
src/views/summary/basicTarget.vue View File

@@ -1,10 +1,130 @@
<template>
<div class="basic-target ele-body"></div>
<div class="basic-target ele-body">
<el-card>
<search></search>
<el-table
highlight-current-row
:data="dataList"
border
:height="tableHeight"
@selection-change="selectionChange"
v-loading="loading"
>
<el-table-column
type="index"
width="50"
align="center"
label="编号"
></el-table-column>
<el-table-column
label="考核内容和计分规则"
min-width="80"
align="center"
prop="content"
></el-table-column>
<el-table-column
label="分值"
min-width="100"
align="center"
prop="points"
></el-table-column>
<el-table-column
label="预计得分"
min-width="100"
align="center"
prop="expectedPoints"
></el-table-column>
<el-table-column
label="区牵头单位"
min-width="100"
align="center"
prop="leaderUnit"
></el-table-column>
<el-table-column
label="牵头部门"
min-width="80"
align="center"
prop="leaderDeptList"
></el-table-column>
<el-table-column
label="责任领导"
min-width="100"
align="center"
prop="leaderPrincipal"
></el-table-column>
<el-table-column
label="得分说明"
min-width="80"
align="center"
prop="note"
></el-table-column>
</el-table>
<el-pagination
:current-page.sync="page.page"
:page-size="page.limit"
:total="count"
:background="true"
layout="total, prev, pager, next, jumper"
:pager-count="5"
class="ele-pagination-circle"
@current-change="getDataList()"
/>
</el-card>
</div>
</template>

<script>
import search from '../assessingTarget/search'
import api from '../../api/summary/basicTarget'
export default {

name: 'basic-target',
data() {
return {
loading:false,
tableHeight: document.documentElement.clientHeight - 360,
dataList: [],
count: 0,
page: {
page: 1,
limit: Math.floor(
(document.documentElement.clientHeight - 360 - 45) / 45
),
},
}
},
components: {
search,
},
created() {
this.getDataList();
this.$store.dispatch('base/getQuota1List',1)
},
methods: {
selectionChange(rows) {
this.multipleSelection = rows;
},
getDataList(params) {
this.loading=true
api
.getList(params ? Object.assign(this.page, params) : this.page)
.then((res) => {
this.loading=false
let data = res.data.data.records;
data = data.map((item) => {
item.year = item.year + "";
return item;
});
this.dataList = data;
this.count = res.data.data.total;
console.log(res.data);
})
.catch(() => {
this.loading=false
this.dataList = [];
this.count = 0;
});
}
}
}
</script>


+ 116
- 2
src/views/summary/constraint.vue View File

@@ -1,10 +1,124 @@
<template>
<div class="constraint ele-body"></div>
<div class="constraint ele-body">
<el-card>
<search></search>
<el-table
highlight-current-row
:data="dataList"
border
:height="tableHeight"
@selection-change="selectionChange"
v-loading="loading"
>
<el-table-column
type="index"
width="50"
align="center"
label="编号"
></el-table-column>
<el-table-column
label="考核内容和计分规则"
min-width="80"
align="center"
prop="content"
></el-table-column>
<el-table-column
label="预计扣分"
min-width="100"
align="center"
prop="expectedPoints"
></el-table-column>
<el-table-column
label="区牵头单位"
min-width="100"
align="center"
prop="leaderUnit"
></el-table-column>
<el-table-column
label="牵头部门"
min-width="80"
align="center"
prop="leaderDept"
></el-table-column>
<el-table-column
label="责任领导"
min-width="100"
align="center"
prop="leaderPrincipal"
></el-table-column>
<el-table-column
label="扣分说明"
min-width="80"
align="center"
prop="note"
></el-table-column>
</el-table>
<el-pagination
:current-page.sync="page.page"
:page-size="page.limit"
:total="count"
:background="true"
layout="total, prev, pager, next, jumper"
:pager-count="5"
class="ele-pagination-circle"
@current-change="getDataList()"
/>
</el-card>
</div>
</template>

<script>
import search from '../assessingTarget/search'
import api from '../../api/summary/constraint'
export default {

name: 'constraint',
data() {
return {
loading:false,
tableHeight: document.documentElement.clientHeight - 360,
dataList: [],
count: 0,
page: {
page: 1,
limit: Math.floor(
(document.documentElement.clientHeight - 360 - 45) / 45
),
},
}
},
components: {
search,
},
created() {
this.getDataList();
this.$store.dispatch('base/getQuota1List',1)
},
methods: {
selectionChange(rows) {
this.multipleSelection = rows;
},
getDataList(params) {
this.loading=true
api
.getList(params ? Object.assign(this.page, params) : this.page)
.then((res) => {
this.loading=false
let data = res.data.data.records;
data = data.map((item) => {
item.year = item.year + "";
return item;
});
this.dataList = data;
this.count = res.data.data.total;
console.log(res.data);
})
.catch(() => {
this.loading=false
this.dataList = [];
this.count = 0;
});
}
}
}
</script>


+ 8
- 1
src/views/summary/department.vue View File

@@ -80,7 +80,14 @@
</template>

<script>
export default {};
export default {
name: 'department',
data () {
return {
dataList: [],
}
}
};
</script>

<style scoped>

+ 117
- 12
src/views/summary/reward.vue View File

@@ -1,23 +1,128 @@
<template>
<div class="reward ele-body">
<el-table :data="dataList" style="width:500px;">
<el-table-column label="测试">
<template slot-scope="{row}">
<el-input type="textarea" resize="none" v-model="row.name"></el-input>
<!-- <span>{{row.name}}</span> -->
</template>
</el-table-column>
</el-table>
<el-card>
<search></search>
<el-table
highlight-current-row
:data="dataList"
border
:height="tableHeight"
@selection-change="selectionChange"
v-loading="loading"
>
<el-table-column
type="index"
width="50"
align="center"
label="编号"
></el-table-column>
<el-table-column
label="考核内容和计分规则"
min-width="80"
align="center"
prop="content"
></el-table-column>
<el-table-column
label="封顶分值"
min-width="100"
align="center"
prop="points"
></el-table-column>
<el-table-column
label="预计加分"
min-width="100"
align="center"
prop="expectedPoints"
></el-table-column>
<el-table-column
label="区牵头单位"
min-width="100"
align="center"
prop="leaderUnit"
></el-table-column>
<el-table-column
label="牵头部门"
min-width="80"
align="center"
prop="leaderDept"
></el-table-column>
<el-table-column
label="责任领导"
min-width="100"
align="center"
prop="leaderPrincipal"
></el-table-column>
<el-table-column
label="得分说明"
min-width="80"
align="center"
prop="note"
></el-table-column>
</el-table>
<el-pagination
:current-page.sync="page.page"
:page-size="page.limit"
:total="count"
:background="true"
layout="total, prev, pager, next, jumper"
:pager-count="5"
class="ele-pagination-circle"
@current-change="getDataList()"
/>
</el-card>
</div>
</template>

<script>
import search from '../assessingTarget/search';
import api from '../../api/summary/reward'
export default {
data(){
name: '',
data() {
return {
dataList:[
{name:"zhou"}
]
loading:false,
tableHeight: document.documentElement.clientHeight - 360,
dataList: [],
count: 0,
page: {
page: 1,
limit: Math.floor(
(document.documentElement.clientHeight - 360 - 45) / 45
),
},
}
},
components: {
search,
},
created() {
this.getDataList();
this.$store.dispatch('base/getQuota1List',1)
},
methods: {
selectionChange(rows) {
this.multipleSelection = rows;
},
getDataList(params) {
this.loading=true
api
.getList(params ? Object.assign(this.page, params) : this.page)
.then((res) => {
this.loading=false
let data = res.data.data.records;
data = data.map((item) => {
item.year = item.year + "";
return item;
});
this.dataList = data;
this.count = res.data.data.total;
console.log(res.data);
})
.catch(() => {
this.loading=false
this.dataList = [];
this.count = 0;
});
}
}
}

+ 27
- 3
src/views/system/user/index.vue View File

@@ -61,6 +61,7 @@
</el-tag>
</template>
</el-table-column>
<el-table-column prop="deptId" label="部门" sortable="custom" show-overflow-tooltip min-width="100"/>
<el-table-column prop="levelName" label="职级" sortable="custom" show-overflow-tooltip min-width="100"/>
<el-table-column prop="positionName" label="岗位" sortable="custom" show-overflow-tooltip min-width="100"/>
<el-table-column label="创建时间" sortable="custom" show-overflow-tooltip min-width="160">
@@ -111,11 +112,12 @@
<el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item label="角色:" prop="roleIds">
<el-select v-model="editForm.roleIds" placeholder="请选择角色" class="ele-block" clearable multiple>
<el-option v-for="(item,index) in roleList" :key="index" :label="item.name" :value="item.id"/>
<el-form-item label="部门:" prop="roleIds">
<el-select v-model="editForm.roleIds" placeholder="请选择部门" class="ele-block" clearable multiple>
<el-option v-for="(item,index) in departmentsList" :key="index" :label="item.name" :value="item.id"/>
</el-select>
</el-form-item>
</el-col>
<el-col :sm="12">
<el-form-item label="手机号:">
@@ -137,6 +139,11 @@
<el-form-item label="登录密码:" prop="password" v-if="!editForm.id">
<el-input v-model="editForm.password" placeholder="请输入登录密码" show-password/>
</el-form-item>
<el-form-item label="角色:" prop="roleIds">
<el-select v-model="editForm.roleIds" placeholder="请选择角色" class="ele-block" clearable multiple>
<el-option v-for="(item,index) in roleList" :key="index" :label="item.name" :value="item.id"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
@@ -179,6 +186,7 @@ export default {
roleList: [], // 角色列表
levelList:[], // 职级列表
positionList:[], // 岗位列表
departmentsList: [], // 部门列表

}
},
@@ -187,6 +195,7 @@ export default {
this.queryRoles(); // 查询角色列表
this.getLevelList(); // 查询职级列表
this.getPositionList(); // 查询岗位列表
this.getDepList(); // 查询部门列表
},
methods: {
/* 显示编辑 */
@@ -311,6 +320,21 @@ export default {
}).catch(e => {
this.$message.error(e.message);
});
},
/**
* 获取部门列表
*/
getDepList() {
this.$http.get('/dept/getDeptList/1').then(res => {
if (res.data.code === 0) {
this.departmentsList = res.data.data;
console.log(this.departmentsList);
} else {
this.$message.error(res.data.msg);
}
}).catch(e => {
this.$message.error(e.message);
});
}
}
}

Loading…
Cancel
Save