31 changed files with 6619 additions and 408 deletions
@ -0,0 +1,65 @@ |
|||
import request from '@/utils/requestFile' |
|||
// 载体类型列表
|
|||
export function carrierlist(data) { |
|||
return request({ |
|||
url: '/honors/carrierlist', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
// 添加载体类型
|
|||
export function addcarrier(data) { |
|||
return request({ |
|||
url: '/honors/addcarrier', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
// 编辑载体类型
|
|||
export function eidycarrier(data) { |
|||
return request({ |
|||
url: '/honors/eidycarrier', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
// 编辑载体类型状态
|
|||
export function eidycarrierstate(data) { |
|||
return request({ |
|||
url: '/honors/eidycarrierstate', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
// 荣誉列表
|
|||
export function honorlist(data) { |
|||
return request({ |
|||
url: '/honors/honorlist', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
// 添加荣誉
|
|||
export function addhonorcont(data) { |
|||
return request({ |
|||
url: '/honors/addhonorcont', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
// 编辑荣誉
|
|||
export function eidyhonorcont(data) { |
|||
return request({ |
|||
url: '/honors/eidyhonorcont', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
// 编辑荣誉状态
|
|||
export function eidyhonorcontstate(data) { |
|||
return request({ |
|||
url: '/honors/eidyhonorcontstate', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
@ -0,0 +1,89 @@ |
|||
import axios from 'axios' |
|||
import { MessageBox, Message } from 'element-ui' |
|||
import store from '@/store' |
|||
import { getToken,getKey } from '@/utils/auth' |
|||
|
|||
// create an axios instance
|
|||
const service = axios.create({ |
|||
baseURL: process.env.VUE_APP_BASE_API2, // url = base url + request url
|
|||
// withCredentials: true, // send cookies when cross-domain requests
|
|||
timeout: 180000 // request timeout
|
|||
}) |
|||
|
|||
// request interceptor
|
|||
service.interceptors.request.use( |
|||
config => { |
|||
// do something before request is sent
|
|||
|
|||
if (store.getters.token) { |
|||
// let each request carry token
|
|||
// ['X-Token'] is a custom headers key
|
|||
// please modify it according to the actual situation
|
|||
config.headers['user-token'] = getToken() |
|||
config.headers['user-key'] = getKey() |
|||
} |
|||
return config |
|||
}, |
|||
error => { |
|||
// do something with request error
|
|||
console.log(error) // for debug
|
|||
return Promise.reject(error) |
|||
} |
|||
) |
|||
|
|||
// response interceptor
|
|||
service.interceptors.response.use( |
|||
/** |
|||
* If you want to get http information such as headers or status |
|||
* Please return response => response |
|||
*/ |
|||
|
|||
/** |
|||
* Determine the request status by custom code |
|||
* Here is just an example |
|||
* You can also judge the status by HTTP Status Code |
|||
*/ |
|||
response => { |
|||
const res = response.data |
|||
|
|||
// if the custom code is not 20000, it is judged as an error.
|
|||
if (res.code !== 0) { |
|||
if(res.code === 7){ |
|||
store.commit('user/loginOut') |
|||
} |
|||
Message({ |
|||
message: res.msg || 'Error', |
|||
type: 'error', |
|||
duration: 5 * 1000 |
|||
}) |
|||
|
|||
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
|
|||
if (res.code === 50008 || res.code === 50012 || res.code === 50014) { |
|||
// to re-login
|
|||
MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { |
|||
confirmButtonText: 'Re-Login', |
|||
cancelButtonText: 'Cancel', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
store.dispatch('user/resetToken').then(() => { |
|||
location.reload() |
|||
}) |
|||
}) |
|||
} |
|||
return Promise.reject(new Error(res.msg || 'Error')) |
|||
} else { |
|||
return res |
|||
} |
|||
}, |
|||
error => { |
|||
console.log('err' + error) // for debug
|
|||
Message({ |
|||
message: error.msg, |
|||
type: 'error', |
|||
duration: 5 * 1000 |
|||
}) |
|||
return Promise.reject(error) |
|||
} |
|||
) |
|||
|
|||
export default service |
|||
File diff suppressed because it is too large
@ -0,0 +1,889 @@ |
|||
<template> |
|||
<!-- 岗位考核指标录入 --> |
|||
<div class="dashboard-container"> |
|||
<div class="gva-search-box"> |
|||
<el-form ref="searchForm" :inline="true" :model="searchInfo"> |
|||
<el-form-item label="考核指标"> |
|||
<el-input |
|||
placeholder="请输入名称" |
|||
v-model="searchInfo.title" |
|||
clearable |
|||
> |
|||
</el-input> |
|||
</el-form-item> |
|||
<!-- <el-form-item label="是否通用" prop="share"> |
|||
<el-select v-model="searchInfo.share" placeholder="请选择是否通用"> |
|||
<el-option label="通用指标" :value=1></el-option> |
|||
<el-option label="个性指标" :value=2></el-option> |
|||
</el-select> |
|||
</el-form-item> --> |
|||
<!-- <el-form-item v-if="searchInfo.share==2" label="关联部门" prop="relevantdepartments"> |
|||
<el-cascader clearable v-model="searchInfo.relevantdepartments" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader> |
|||
</el-form-item> --> |
|||
<!-- <el-form-item label="关联部门" prop="relevantdepartments"> |
|||
<el-cascader filterable clearable v-model="searchInfo.relevantdepartments" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader> |
|||
</el-form-item> --> |
|||
<el-form-item label="指标维度" prop="dimension"> |
|||
<el-select |
|||
v-model="searchInfo.dimension" |
|||
clearable |
|||
placeholder="请选择考核维度" |
|||
> |
|||
<el-option |
|||
v-for="item in dutyclasslist" |
|||
:key="item.outId" |
|||
:label="item.title" |
|||
:value="item.outId" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="指标性质" prop="type"> |
|||
<el-select v-model="searchInfo.type" placeholder="请选择指标性质"> |
|||
<el-option label="定性指标" :value="1"></el-option> |
|||
<el-option label="定量指标" :value="2"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<!-- <el-form-item label="状态"> |
|||
<el-select v-model="searchInfo.state" clearable placeholder="请选择状态"> |
|||
<el-option :value=1 label="正常">正常</el-option> |
|||
<el-option :value=2 label="禁止">禁止</el-option> |
|||
</el-select> |
|||
</el-form-item> --> |
|||
<el-form-item> |
|||
<el-button |
|||
size="mini" |
|||
type="primary" |
|||
icon="el-icon-search" |
|||
@click="onSubmit" |
|||
>查询</el-button |
|||
> |
|||
<el-button size="mini" icon="el-icon-refresh" @click="onReset" |
|||
>重置</el-button |
|||
> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<div class="gva-table-box"> |
|||
<div class="gva-btn-list"> |
|||
<el-button |
|||
size="mini" |
|||
type="primary" |
|||
icon="el-icon-plus" |
|||
@click="showAdd()" |
|||
>新增</el-button |
|||
> |
|||
</div> |
|||
<el-container> |
|||
<!-- 左侧内容 --> |
|||
<el-aside |
|||
width="300px" |
|||
|
|||
style="border-right: 1px solid rgb(220, 223, 230);height: 750px" |
|||
> |
|||
<el-tree |
|||
:data="GovthreeList2" |
|||
:props="defaultProps1" |
|||
@node-click="handleNodeClick" |
|||
></el-tree> |
|||
</el-aside> |
|||
<el-aside |
|||
width="200px" |
|||
style="border-right: 1px solid rgb(220, 223, 230);height: 750px" |
|||
> |
|||
<el-tree |
|||
:data="postList" |
|||
:props="defaultProps1" |
|||
@node-click="NodePostClick" |
|||
></el-tree> |
|||
</el-aside> |
|||
<!-- 右侧内容 --> |
|||
<el-main style="padding: 10px"> |
|||
<div v-if="tableGWShow"> |
|||
<project></project> |
|||
</div> |
|||
<div v-if="tableBMShow"> |
|||
<el-table :data="tableData"> |
|||
<el-table-column align="left" label="考核指标" prop="title" /> |
|||
<el-table-column |
|||
align="left" |
|||
label="考核维度" |
|||
prop="dimensionname" |
|||
/> |
|||
<el-table-column align="left" label="指标性质"> |
|||
<template #default="scope"> |
|||
<div v-if="scope.row.type == 1">定性指标</div> |
|||
<div v-if="scope.row.type == 2">定量指标</div> |
|||
</template> |
|||
</el-table-column> |
|||
<!-- <el-table-column align="left" label="是否通用"> |
|||
<template #default="scope"> |
|||
<div v-if="scope.row.share==1">通用指标</div> |
|||
<div v-if="scope.row.share==2">个性指标</div> |
|||
</template> |
|||
</el-table-column> --> |
|||
<el-table-column align="left" label="单位" prop="unit" /> |
|||
<el-table-column align="left" label="考核周期" prop="outId"> |
|||
<template #default="scope"> |
|||
<el-tag v-if="scope.row.cycle == 1">班</el-tag> |
|||
<el-tag v-if="scope.row.cycle == 2">天</el-tag> |
|||
<el-tag v-if="scope.row.cycle == 3">周</el-tag> |
|||
<el-tag v-if="scope.row.cycle == 4">月</el-tag> |
|||
<el-tag v-if="scope.row.cycle == 5">季度</el-tag> |
|||
<el-tag v-if="scope.row.cycle == 6">年</el-tag> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="left" label="计分方式" prop="outId"> |
|||
<template #default="scope"> |
|||
<el-tag v-if="scope.row.scoringmethod == 1">自动计分</el-tag> |
|||
<el-tag v-if="scope.row.scoringmethod == 2">手动计分</el-tag> |
|||
</template> |
|||
</el-table-column> |
|||
|
|||
<el-table-column align="left" label="关联岗位"> |
|||
<template #default="scope"> |
|||
<el-collapse> |
|||
<el-collapse-item title="详情" name="1"> |
|||
<div v-for="(iteam, index) in scope.row.postary"> |
|||
{{ iteam.name }} |
|||
</div> |
|||
</el-collapse-item> |
|||
</el-collapse> |
|||
<!-- <div v-for="item in scope.row.relevantdepartmentsmap" :key="item.key">{{item.title}}</div> --> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="left" label="数据提交"> |
|||
<template #default="scope"> |
|||
<div v-for="item in scope.row.reportary" :key="item.key"> |
|||
{{ item.name }} |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="left" label="辅助计数" prop="cycleattr" /> |
|||
<el-table-column align="left" label="状态"> |
|||
<template #default="scope"> |
|||
<el-switch |
|||
inline-prompt |
|||
v-model="scope.row.state" |
|||
active-color="#13ce66" |
|||
inactive-color="#ff4949" |
|||
:active-value="1" |
|||
:inactive-value="2" |
|||
@change="changeVal($event, scope.row.id)" |
|||
/> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="操作" width="200"> |
|||
<template #default="scope"> |
|||
<el-button |
|||
icon="el-icon-edit" |
|||
size="small" |
|||
type="text" |
|||
@click="showEdit(scope.row)" |
|||
>编辑</el-button |
|||
> |
|||
<el-button |
|||
icon="el-icon-delete" |
|||
size="small" |
|||
type="text" |
|||
@click="deleteOperate(scope.row)" |
|||
>删除</el-button |
|||
> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div class="gva-pagination"> |
|||
<el-pagination |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange" |
|||
:page-sizes="[10, 30, 50, 100]" |
|||
:page-size="searchInfo.pagesize" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
:total="total" |
|||
> |
|||
</el-pagination> |
|||
</div> |
|||
</div> |
|||
</el-main> |
|||
</el-container> |
|||
</div> |
|||
<!-- 新增弹框 --> |
|||
<el-dialog |
|||
:close-on-click-modal="false" |
|||
:visible.sync="dialogFormVisible" |
|||
:before-close="closeDialog" |
|||
title="新增" |
|||
width="30%" |
|||
> |
|||
<el-form ref="addForm" :model="form" label-width="150px"> |
|||
<el-form-item label="指标名称" prop="title"> |
|||
<el-input v-model="form.title" autocomplete="off" /> |
|||
</el-form-item> |
|||
<!-- <el-form-item label="是否通用" prop="share"> |
|||
<el-select v-model="form.share" placeholder="请选择是否通用"> |
|||
<el-option label="通用指标" :value=1></el-option> |
|||
<el-option label="个性指标" :value=2></el-option> |
|||
</el-select> |
|||
</el-form-item> --> |
|||
<!-- <el-form-item v-if="form.share==2" label="关联部门" prop="relevantdepartments"> |
|||
<el-cascader clearable v-model="form.relevantdepartments" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader> |
|||
</el-form-item> --> |
|||
<el-form-item label="关联部门" prop="relevantDepartments"> |
|||
<el-cascader |
|||
filterable |
|||
clearable |
|||
v-model="form.relevantDepartments" |
|||
:options="grouplist" |
|||
:show-all-levels="false" |
|||
:props="props" |
|||
@change="departChange" |
|||
></el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="相关岗位" prop="departmentsPost"> |
|||
<el-select |
|||
clearable |
|||
multiple |
|||
v-model="form.departmentsPost" |
|||
filterable |
|||
placeholder="请选择" |
|||
> |
|||
<el-option |
|||
v-for="item in postListAdd" |
|||
:key="item.id" |
|||
:label="item.name" |
|||
:value="item.id" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="指标维度" prop="dimension"> |
|||
<el-select |
|||
v-model="form.dimension" |
|||
clearable |
|||
placeholder="请选择考核维度" |
|||
> |
|||
<el-option |
|||
v-for="item in dutyclasslist" |
|||
:key="item.outId" |
|||
:label="item.title" |
|||
:value="item.outId" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="指标性质" prop="type"> |
|||
<el-select v-model="form.type" placeholder="请选择指标性质"> |
|||
<el-option label="定性指标" :value="1"></el-option> |
|||
<el-option label="定量指标" :value="2"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="计量单位" prop="unites"> |
|||
<el-input v-model="form.unit" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="数据提交" prop="report"> |
|||
<!-- <el-cascader clearable v-model="form.report" :options="grouplistBackup" :show-all-levels="false" :props="userProps"></el-cascader> --> |
|||
<el-cascader |
|||
filterable |
|||
clearable |
|||
v-model="form.report" |
|||
:options="grouplistBackup" |
|||
:show-all-levels="false" |
|||
:props="userProps" |
|||
></el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="辅助计数" prop="cycleattr"> |
|||
<el-input v-model="form.cycleattr" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="计分方式" prop="type"> |
|||
<el-select v-model="form.scoringmethod" placeholder="请选择指标性质"> |
|||
<el-option label="自动计分" :value="1"></el-option> |
|||
<el-option label="手动计分" :value="2"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="考核周期" prop="cycle"> |
|||
<el-select v-model="form.cycle" placeholder="请选择考核周期"> |
|||
<el-option |
|||
v-for="item in options" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="closeDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="enterDialog" |
|||
>确 定</el-button |
|||
> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
<!-- 编辑弹框 --> |
|||
<el-dialog |
|||
:close-on-click-modal="false" |
|||
:visible.sync="editDialogFormVisible" |
|||
:before-close="editCloseDialog" |
|||
title="修改" |
|||
width="20%" |
|||
> |
|||
<el-form |
|||
ref="editForm" |
|||
:model="editAdd" |
|||
:rules="editRules" |
|||
label-width="150px" |
|||
> |
|||
<el-form-item label="指标名称" prop="title"> |
|||
<el-input v-model="editAdd.title" autocomplete="off" /> |
|||
</el-form-item> |
|||
<!-- <el-form-item label="是否通用" prop="share"> |
|||
<el-select v-model="editAdd.share" placeholder="请选择是否通用"> |
|||
<el-option label="通用指标" :value=1></el-option> |
|||
<el-option label="个性指标" :value=2></el-option> |
|||
</el-select> |
|||
</el-form-item> --> |
|||
|
|||
<!-- <el-form-item v-if="editAdd.share==2" label="关联部门" prop="relevantdepartmentsmap"> |
|||
<el-cascader clearable v-model="editAdd.relevantdepartmentsmap" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader> |
|||
</el-form-item> --> |
|||
<el-form-item label="关联部门" prop="relevantdepartmentsmap"> |
|||
<el-cascader |
|||
filterable |
|||
clearable |
|||
v-model="editAdd.relevantdepartmentsmap" |
|||
:options="grouplist" |
|||
:show-all-levels="false" |
|||
:props="props" |
|||
></el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="指标维度" prop="dimensionidstr"> |
|||
<el-select |
|||
v-model="editAdd.dimensionidstr" |
|||
clearable |
|||
placeholder="请选择考核维度" |
|||
> |
|||
<el-option |
|||
v-for="item in dutyclasslist" |
|||
:key="item.outId" |
|||
:label="item.title" |
|||
:value="item.outId" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="指标性质" prop="type"> |
|||
<el-select v-model="editAdd.type" placeholder="请选择指标性质"> |
|||
<el-option label="定性指标" :value="1"></el-option> |
|||
<el-option label="定量指标" :value="2"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="计量单位" prop="unites"> |
|||
<el-input v-model="editAdd.unites" autocomplete="off" /> |
|||
</el-form-item> |
|||
|
|||
<el-form-item label="数据提交" prop="report"> |
|||
<el-cascader |
|||
filterable |
|||
clearable |
|||
v-model="editAdd.reportmap" |
|||
:options="grouplistBackup" |
|||
:show-all-levels="false" |
|||
:props="userProps" |
|||
></el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="辅助计数" prop="cycleattr"> |
|||
<el-input v-model="editAdd.cycleattr" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="计分方式" prop="type"> |
|||
<el-select |
|||
v-model="editAdd.scoringmethod" |
|||
placeholder="请选择指标性质" |
|||
> |
|||
<el-option label="自动计分" :value="1"></el-option> |
|||
<el-option label="手动计分" :value="2"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="考核周期" prop="cycle"> |
|||
<el-select v-model="editAdd.cycle" placeholder="请选择考核周期"> |
|||
<el-option |
|||
v-for="item in options" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="editCloseDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="editEnterDialog" |
|||
>确 定</el-button |
|||
> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { govthree, positionlist } from "@/api/personnel/post"; |
|||
import { dutyclasslist } from "@/api/duty/dimension"; |
|||
import project from "@/views/basicInfo/project.vue"; |
|||
import { |
|||
posttargetlist, |
|||
addtarget, |
|||
gettargetinfo, |
|||
eiteassessinfo, |
|||
eitetarget, |
|||
deltarget, |
|||
editposttarget, |
|||
editstate, |
|||
addposttarget, |
|||
} from "@/api/duty/project"; |
|||
import { getgroupdepartmap, getgroupuser } from "@/api/duty/group"; |
|||
export default { |
|||
components: { |
|||
project, |
|||
}, |
|||
name: "Dashboard", |
|||
props:['gwId'], |
|||
data() { |
|||
return { |
|||
tableGWShow: true, |
|||
tableBMShow: false, |
|||
GovthreeList2: [], |
|||
defaultProps1: { |
|||
children: "child", |
|||
label: "name", |
|||
}, |
|||
grouplistBackup: [], |
|||
grouplist: [], |
|||
// 1:班;2:天;3:周;4:月;5:季度;6:年 |
|||
options: [ |
|||
// { |
|||
// value: 1, |
|||
// label: '班' |
|||
// }, { |
|||
// value: 2, |
|||
// label: '天' |
|||
// }, { |
|||
// value: 3, |
|||
// label: '周' |
|||
// }, |
|||
{ |
|||
value: 4, |
|||
label: "月", |
|||
}, |
|||
{ |
|||
value: 5, |
|||
label: "季度", |
|||
}, |
|||
{ |
|||
value: 6, |
|||
label: "年", |
|||
}, |
|||
], |
|||
props: { |
|||
checkStrictly: true, |
|||
value: "id", |
|||
label: "name", |
|||
children: "children", |
|||
emitPath: false, |
|||
// multiple: true |
|||
}, |
|||
userProps: { |
|||
value: "key", |
|||
label: "name", |
|||
children: "govlist", |
|||
emitPath: false, |
|||
multiple: true, |
|||
}, |
|||
dutyclasslist: {}, |
|||
searchList: { |
|||
page: 1, |
|||
pagesize: 10000, |
|||
}, |
|||
// 查询详情的数据 |
|||
editFrom: {}, |
|||
// 修改状态提交数据 |
|||
switchFrom: {}, |
|||
// 删除数据提交 |
|||
deleFrom: {}, |
|||
// 编辑时数据 |
|||
editAdd: { |
|||
unittitle: "", |
|||
parentId: "", |
|||
}, |
|||
assessList: {}, |
|||
// 添加数据 |
|||
form: { |
|||
share: 2, |
|||
cycleattr: 1, |
|||
scoringmethod: 1, |
|||
}, |
|||
// 弹窗变量 |
|||
dialogFormVisible: false, |
|||
// 修改弹窗 |
|||
editDialogFormVisible: false, |
|||
total: 0, |
|||
postListAdd: [], |
|||
postList: [], |
|||
tableData: [], |
|||
// 条件查询变量 |
|||
searchInfo: { |
|||
page: 1, |
|||
pagesize: 10, |
|||
}, |
|||
// 条件查询变量 |
|||
abc: { |
|||
aaa: "111", |
|||
bbb: "222", |
|||
}, |
|||
// 添加时验证规则 |
|||
rules: { |
|||
title: [{ required: true, message: "必填", trigger: "blur" }], |
|||
type: [{ required: true, message: "必填", trigger: "blur" }], |
|||
// share: [{ required: true, message: '必填', trigger: 'blur' }], |
|||
relevantdepartments: [ |
|||
{ required: true, message: "必填", trigger: "blur" }, |
|||
], |
|||
dimension: [{ required: true, message: "必填", trigger: "blur" }], |
|||
report: [{ required: true, message: "必填", trigger: "blur" }], |
|||
unites: [{ required: true, message: "必填", trigger: "blur" }], |
|||
cycle: [{ required: true, message: "必填", trigger: "blur" }], |
|||
cycleattr: [{ required: true, message: "必填", trigger: "blur" }], |
|||
}, |
|||
editRules: { |
|||
title: [{ required: true, message: "必填", trigger: "blur" }], |
|||
type: [{ required: true, message: "必填", trigger: "blur" }], |
|||
// share: [{ required: true, message: '必填', trigger: 'blur' }], |
|||
relevantdepartments: [ |
|||
{ required: true, message: "必填", trigger: "blur" }, |
|||
], |
|||
dimension: [{ required: true, message: "必填", trigger: "blur" }], |
|||
report: [{ required: true, message: "必填", trigger: "blur" }], |
|||
unites: [{ required: true, message: "必填", trigger: "blur" }], |
|||
cycle: [{ required: true, message: "必填", trigger: "blur" }], |
|||
cycleattr: [{ required: true, message: "必填", trigger: "blur" }], |
|||
}, |
|||
}; |
|||
}, |
|||
created() { |
|||
console.log(this.$store.state.user.token); |
|||
if (this.$store.state.user.token == "") { |
|||
this.$router.push("/login"); |
|||
} |
|||
// 页面渲染时获取初始数据 |
|||
this.getDataList(); |
|||
this.getDutyclasslist(); |
|||
this.getSystemadminlist(); |
|||
this.getGrouplist(); |
|||
this.getGovthree2(); |
|||
console.log("this.gwId") |
|||
console.log(this.gwId) |
|||
}, |
|||
methods: { |
|||
// 点击岗位列表 |
|||
NodePostClick(val) { |
|||
console.log(val); |
|||
}, |
|||
// 获取岗位 |
|||
async getPost(val) { |
|||
const from = { |
|||
organization: val.toString(), |
|||
page: 1, |
|||
pagesize: 10, |
|||
}; |
|||
const res = await positionlist(from); |
|||
this.postList = res.data.list; |
|||
}, |
|||
// 点击行政组织树 |
|||
handleNodeClick(val) { |
|||
// this.searchInfo.organization=val.id |
|||
// this.searchInfo.organization=this.searchInfo.organization.toString() |
|||
this.getPost(val.id); |
|||
console.log(val); |
|||
}, |
|||
// 添加时点击行政组织 |
|||
async departChange(val) { |
|||
console.log(val); |
|||
// this.searchInfo.organization=val.id |
|||
// this.searchInfo.organization=this.searchInfo.organization.toString() |
|||
const from = { |
|||
organization: val.toString(), |
|||
page: 1, |
|||
pagesize: 10, |
|||
}; |
|||
const res = await positionlist(from); |
|||
this.postListAdd = res.data.list; |
|||
console.log(val); |
|||
}, |
|||
// 获取行政组织二级树 |
|||
async getGovthree2() { |
|||
const res = await govthree(); |
|||
this.GovthreeList2 = res.data[0].child; |
|||
console.log("this.GovthreeList2"); |
|||
console.log(res.data[0].child); |
|||
}, |
|||
// 获取员工列表 |
|||
async getSystemadminlist() { |
|||
const from = { |
|||
level: 4, |
|||
}; |
|||
const res = await getgroupuser(from); |
|||
this.grouplistBackup = res.data; |
|||
this.grouplistBackup.forEach((item) => { |
|||
if (item.govlist != null) { |
|||
// 即:this.digui(item);在这地方添加的 |
|||
item.govlist.forEach((items) => { |
|||
// 下面的就是执行递归的方法,因为我是从第二层才开始需要往下挖的,所以这里多了个forEach,如果从第一层起,从item就好了,即:this.digui(item);在上面添加 |
|||
this.digui(items); // 这里是源头,把一个对象开始递归,开始循环 |
|||
// 如果想看完整数据,那么是在这里打印数据哦 |
|||
console.log(items, "看我查看完整的数据哦"); |
|||
// 因为上一步递归时,就已经把循环children的动作做完了,这里是验收递归方法的地方。 |
|||
}); |
|||
} else { |
|||
item.govlist = item.child; |
|||
// 如果第一层没有子项做的操作。。。。。 |
|||
} |
|||
}); |
|||
console.log(this.grouplistBackup); |
|||
}, |
|||
// 获取部门 |
|||
async getGrouplist() { |
|||
const res = await getgroupdepartmap(); |
|||
this.grouplist = res.data; |
|||
}, |
|||
// 获取考核纬度列表 |
|||
async getDutyclasslist() { |
|||
const res = await dutyclasslist(this.searchList); |
|||
this.dutyclasslist = res.data.list; |
|||
}, |
|||
//删除操作 |
|||
async deleteOperate(row) { |
|||
this.$confirm("此操作将永久删除, 是否继续?", "提示", { |
|||
confirmButtonText: "确定", |
|||
cancelButtonText: "取消", |
|||
type: "warning", |
|||
}).then(async () => { |
|||
this.deleFrom.state = 3; |
|||
this.deleFrom.id = row.id; |
|||
this.deleFrom.id = this.deleFrom.id.toString(); |
|||
const res = await editstate(this.deleFrom); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "删除成功!", |
|||
}); |
|||
|
|||
this.getDataList(); |
|||
} |
|||
}); |
|||
}, |
|||
// 树形结构递归 |
|||
digui(item) { |
|||
// 一层一层往下面执行,循环,直到不满足情况的条件下,会自动跳出这个递归方法,然后又到上面方法的源头处,开始执行下一个对象。。。 |
|||
if (item.govlist != null) { |
|||
// 因为三级联动的数据格式是value和label,所以需要自己手动添加,没有的忽略。 |
|||
item.govlist.forEach((ff) => { |
|||
// 这里就是判断他的children下面还有没有值,有的话我就要往下挖,就又开始自己调用自己了 |
|||
this.digui(ff); |
|||
}); |
|||
} else { |
|||
// 这里就是判断,如果我这一层的children下面没有东西的时候该做什么操作 |
|||
// 要添加value和label,否则会看不到标签名字和值 |
|||
// --------------------------分割线--------------------------------- |
|||
|
|||
item.govlist = item.child; |
|||
} |
|||
// 到这里为止,不能在这里打印数据,不然数据就是个断层的,因为在这里打印的数据是当前循环的这一层的数据,如果想看完整数据效果,那么就需要在递归方法第一次调用的地方打印需要递归的值,即上一个方法中。 |
|||
}, |
|||
// 新增按钮 |
|||
showAdd() { |
|||
this.dialogFormVisible = true; |
|||
console.log(this.dialogFormVisible); |
|||
}, |
|||
// 编辑按钮 |
|||
async showEdit(row) { |
|||
this.editFrom.outid = row.outid; |
|||
const res = await gettargetinfo(this.editFrom); |
|||
this.editAdd = res.data; |
|||
console.log("this.editAdd"); |
|||
console.log(this.editAdd); |
|||
this.editDialogFormVisible = true; |
|||
}, |
|||
// 开关状态监听 |
|||
async changeVal(val, id) { |
|||
this.switchFrom.id = id; |
|||
this.switchFrom.id = this.switchFrom.id.toString(); |
|||
if (val == 1) { |
|||
this.switchFrom.state = 1; |
|||
const res = await editstate(this.switchFrom); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "修改状态成功", |
|||
showClose: true, |
|||
}); |
|||
this.getDataList(); |
|||
} |
|||
} else { |
|||
this.switchFrom.state = 2; |
|||
const res = await editstate(this.switchFrom); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "修改状态成功", |
|||
showClose: true, |
|||
}); |
|||
this.getDataList(); |
|||
} |
|||
} |
|||
}, |
|||
// 重置搜索条件 |
|||
onReset() { |
|||
this.searchInfo = {}; |
|||
}, |
|||
// 条件搜索 |
|||
onSubmit() { |
|||
this.searchInfo.page = 1; |
|||
this.searchInfo.pagesize = 10; |
|||
this.getDataList(); |
|||
}, |
|||
// 日期时间戳转日期格式 |
|||
formatDate(nS) { |
|||
return new Date(parseInt(nS) * 1000) |
|||
.toLocaleString() |
|||
.replace(/:\d{1,2}$/, " "); |
|||
}, |
|||
|
|||
// 提交按钮 |
|||
async enterDialog() { |
|||
this.$refs.addForm.validate(async (valid) => { |
|||
if (valid) { |
|||
this.form.relevantDepartments = |
|||
this.form.relevantDepartments.toString(); |
|||
if (this.form.departmentsPost != null) { |
|||
this.form.departmentsPost = this.form.departmentsPost.map(String); |
|||
} |
|||
this.form.cycleattr = parseInt(this.form.cycleattr); |
|||
const res = await addposttarget(this.form); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "添加成功", |
|||
showClose: true, |
|||
}); |
|||
} |
|||
this.getDataList(); |
|||
this.closeDialog(); |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
// 编辑提交按钮 |
|||
async editEnterDialog() { |
|||
this.$refs.editForm.validate(async (valid) => { |
|||
if (valid) { |
|||
if (this.editAdd.relevantdepartmentsmap != null) { |
|||
this.editAdd.relevantdepartments = |
|||
this.editAdd.relevantdepartmentsmap.map(String); |
|||
} |
|||
if (this.editAdd.relevantdepartmentsmap == null) { |
|||
this.editAdd.relevantdepartments = |
|||
this.editAdd.relevantdepartments.split(","); |
|||
} |
|||
if (this.editAdd.visiblerangedepartmap == null) { |
|||
this.editAdd.visiblerange = this.editAdd.visiblerange.split(","); |
|||
} |
|||
if (this.editAdd.visiblerangegroupmap == null) { |
|||
this.editAdd.visiblerangegroup = |
|||
this.editAdd.visiblerangegroup.split(","); |
|||
} |
|||
console.log(this.editAdd.relevantdepartments); |
|||
if (this.editAdd.share == 1) { |
|||
this.editAdd.relevantdepartments = []; |
|||
this.editAdd.relevantdepartmentsmap = []; |
|||
this.$delete(this.editAdd, "relevantdepartments"); |
|||
this.$delete(this.editAdd, "relevantdepartmentsmap"); |
|||
} |
|||
this.editAdd.report = this.editAdd.reportmap; |
|||
this.editAdd.dimension = this.editAdd.dimensionidstr; |
|||
this.editAdd.cycleattr = parseInt(this.editAdd.cycleattr); |
|||
const res = await eitetarget(this.editAdd); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "编辑成功", |
|||
showClose: true, |
|||
}); |
|||
} |
|||
this.getDataList(); |
|||
this.editCloseDialog(); |
|||
} |
|||
}); |
|||
}, |
|||
// 添加框关闭 |
|||
closeDialog() { |
|||
console.log("closeDialog"); |
|||
this.initForm(); |
|||
this.dialogFormVisible = false; |
|||
}, |
|||
// 修改框关闭 |
|||
editCloseDialog() { |
|||
this.editInitForm(); |
|||
this.editDialogFormVisible = false; |
|||
}, |
|||
// 添加重置表单 |
|||
initForm() { |
|||
console.log("initForm"); |
|||
this.$refs.addForm.resetFields(); |
|||
this.form = {}; |
|||
console.log(this.form); |
|||
}, |
|||
// 修改重置表单 |
|||
editInitForm() { |
|||
this.$refs.editForm.resetFields(); |
|||
this.editAdd = {}; |
|||
}, |
|||
// 改变pageSize |
|||
handleSizeChange(val) { |
|||
this.searchInfo.pagesize = val; |
|||
this.getDataList(this.searchInfo); |
|||
}, |
|||
// 改变page |
|||
handleCurrentChange(val) { |
|||
this.searchInfo.page = val; |
|||
this.getDataList(this.searchInfo); |
|||
}, |
|||
// 获取初始数据 |
|||
async getDataList() { |
|||
if (this.searchInfo.relevantdepartments != null) { |
|||
this.searchInfo.relevantdepartments = |
|||
this.searchInfo.relevantdepartments.map(String); |
|||
} |
|||
const res = await posttargetlist(this.searchInfo); |
|||
this.tableData = res.data.list; |
|||
this.total = res.data.total; |
|||
this.searchInfo.page = res.data.page; |
|||
this.searchInfo.pagesize = res.data.pageSize; |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.dashboard { |
|||
&-container { |
|||
margin: 30px; |
|||
} |
|||
&-text { |
|||
font-size: 30px; |
|||
line-height: 46px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,456 @@ |
|||
<template> |
|||
<!-- 考核指标录入 --> |
|||
<div class="dashboard-container"> |
|||
|
|||
<div class="gva-table-box"> |
|||
<el-container> |
|||
<!-- 左侧内容 --> |
|||
<el-aside |
|||
width="300px" |
|||
|
|||
style="border-right: 1px solid rgb(220, 223, 230);height: 750px" |
|||
> |
|||
<el-tree |
|||
:data="GovthreeList2" |
|||
:props="defaultProps1" |
|||
@node-click="handleNodeClick" |
|||
></el-tree> |
|||
</el-aside> |
|||
<el-aside |
|||
width="200px" |
|||
style="border-right: 1px solid rgb(220, 223, 230);height: 750px" |
|||
> |
|||
<el-tree |
|||
:data="postList" |
|||
:props="defaultProps1" |
|||
@node-click="NodePostClick" |
|||
></el-tree> |
|||
</el-aside> |
|||
<!-- 右侧内容 --> |
|||
<el-main style="padding: 10px"> |
|||
<div v-if="tableGWShow"> |
|||
<gwProject :gwId="gwId"></gwProject> |
|||
</div> |
|||
<div v-if="tableBMShow"> |
|||
<project :bmId="bmId"></project> |
|||
</div> |
|||
</el-main> |
|||
</el-container> |
|||
</div> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { govthree, positionlist } from "@/api/personnel/post"; |
|||
import { dutyclasslist } from "@/api/duty/dimension"; |
|||
import project from "@/views/basicInfo/project.vue"; |
|||
// import gwProject from "@/views/basicInfo/gwProject.vue"; |
|||
import { |
|||
posttargetlist, |
|||
addtarget, |
|||
gettargetinfo, |
|||
eiteassessinfo, |
|||
eitetarget, |
|||
deltarget, |
|||
editposttarget, |
|||
editstate, |
|||
addposttarget, |
|||
} from "@/api/duty/project"; |
|||
import { getgroupdepartmap, getgroupuser } from "@/api/duty/group"; |
|||
export default { |
|||
components: { |
|||
project, |
|||
// gwProject |
|||
}, |
|||
name: "Dashboard", |
|||
data() { |
|||
return { |
|||
tableGWShow: false, |
|||
tableBMShow: true, |
|||
gwId:1, |
|||
bmId:1, |
|||
GovthreeList2: [], |
|||
defaultProps1: { |
|||
children: "child", |
|||
label: "name", |
|||
}, |
|||
grouplistBackup: [], |
|||
grouplist: [], |
|||
props: { |
|||
checkStrictly: true, |
|||
value: "id", |
|||
label: "name", |
|||
children: "children", |
|||
emitPath: false, |
|||
// multiple: true |
|||
}, |
|||
userProps: { |
|||
value: "key", |
|||
label: "name", |
|||
children: "govlist", |
|||
emitPath: false, |
|||
multiple: true, |
|||
}, |
|||
dutyclasslist: {}, |
|||
searchList: { |
|||
page: 1, |
|||
pagesize: 10000, |
|||
}, |
|||
// 查询详情的数据 |
|||
editFrom: {}, |
|||
// 修改状态提交数据 |
|||
switchFrom: {}, |
|||
// 删除数据提交 |
|||
deleFrom: {}, |
|||
// 编辑时数据 |
|||
editAdd: { |
|||
unittitle: "", |
|||
parentId: "", |
|||
}, |
|||
assessList: {}, |
|||
// 添加数据 |
|||
form: { |
|||
share: 2, |
|||
cycleattr: 1, |
|||
scoringmethod: 1, |
|||
}, |
|||
// 弹窗变量 |
|||
dialogFormVisible: false, |
|||
// 修改弹窗 |
|||
editDialogFormVisible: false, |
|||
total: 0, |
|||
postListAdd: [], |
|||
postList: [], |
|||
tableData: [], |
|||
// 条件查询变量 |
|||
searchInfo: { |
|||
page: 1, |
|||
pagesize: 10, |
|||
}, |
|||
// 条件查询变量 |
|||
abc: { |
|||
aaa: "111", |
|||
bbb: "222", |
|||
}, |
|||
}; |
|||
}, |
|||
created() { |
|||
console.log(this.$store.state.user.token); |
|||
if (this.$store.state.user.token == "") { |
|||
this.$router.push("/login"); |
|||
} |
|||
// 页面渲染时获取初始数据 |
|||
this.getDataList(); |
|||
this.getDutyclasslist(); |
|||
this.getSystemadminlist(); |
|||
this.getGrouplist(); |
|||
this.getGovthree2(); |
|||
}, |
|||
methods: { |
|||
// 点击岗位列表 |
|||
NodePostClick(val) { |
|||
this.gwId=val.id |
|||
this.tableGWShow=true |
|||
this.tableBMShow=false |
|||
console.log(val); |
|||
}, |
|||
// 获取岗位 |
|||
async getPost(val) { |
|||
const from = { |
|||
organization: val.toString(), |
|||
page: 1, |
|||
pagesize: 10, |
|||
}; |
|||
const res = await positionlist(from); |
|||
this.postList = res.data.list; |
|||
}, |
|||
// 点击行政组织树 |
|||
handleNodeClick(val) { |
|||
// this.searchInfo.organization=val.id |
|||
// this.searchInfo.organization=this.searchInfo.organization.toString() |
|||
this.getPost(val.id); |
|||
this.bmId=val.id |
|||
this.tableGWShow=false |
|||
this.tableBMShow=true |
|||
console.log(val); |
|||
}, |
|||
// 添加时点击行政组织 |
|||
async departChange(val) { |
|||
console.log(val); |
|||
// this.searchInfo.organization=val.id |
|||
// this.searchInfo.organization=this.searchInfo.organization.toString() |
|||
const from = { |
|||
organization: val.toString(), |
|||
page: 1, |
|||
pagesize: 10, |
|||
}; |
|||
const res = await positionlist(from); |
|||
this.postListAdd = res.data.list; |
|||
console.log(val); |
|||
}, |
|||
// 获取行政组织二级树 |
|||
async getGovthree2() { |
|||
const res = await govthree(); |
|||
this.GovthreeList2 = res.data[0].child; |
|||
console.log("this.GovthreeList2"); |
|||
console.log(res.data[0].child); |
|||
}, |
|||
// 获取员工列表 |
|||
async getSystemadminlist() { |
|||
const from = { |
|||
level: 4, |
|||
}; |
|||
const res = await getgroupuser(from); |
|||
this.grouplistBackup = res.data; |
|||
this.grouplistBackup.forEach((item) => { |
|||
if (item.govlist != null) { |
|||
// 即:this.digui(item);在这地方添加的 |
|||
item.govlist.forEach((items) => { |
|||
// 下面的就是执行递归的方法,因为我是从第二层才开始需要往下挖的,所以这里多了个forEach,如果从第一层起,从item就好了,即:this.digui(item);在上面添加 |
|||
this.digui(items); // 这里是源头,把一个对象开始递归,开始循环 |
|||
// 如果想看完整数据,那么是在这里打印数据哦 |
|||
console.log(items, "看我查看完整的数据哦"); |
|||
// 因为上一步递归时,就已经把循环children的动作做完了,这里是验收递归方法的地方。 |
|||
}); |
|||
} else { |
|||
item.govlist = item.child; |
|||
// 如果第一层没有子项做的操作。。。。。 |
|||
} |
|||
}); |
|||
console.log(this.grouplistBackup); |
|||
}, |
|||
// 获取部门 |
|||
async getGrouplist() { |
|||
const res = await getgroupdepartmap(); |
|||
this.grouplist = res.data; |
|||
}, |
|||
// 获取考核纬度列表 |
|||
async getDutyclasslist() { |
|||
const res = await dutyclasslist(this.searchList); |
|||
this.dutyclasslist = res.data.list; |
|||
}, |
|||
//删除操作 |
|||
async deleteOperate(row) { |
|||
this.$confirm("此操作将永久删除, 是否继续?", "提示", { |
|||
confirmButtonText: "确定", |
|||
cancelButtonText: "取消", |
|||
type: "warning", |
|||
}).then(async () => { |
|||
this.deleFrom.state = 3; |
|||
this.deleFrom.id = row.id; |
|||
this.deleFrom.id = this.deleFrom.id.toString(); |
|||
const res = await editstate(this.deleFrom); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "删除成功!", |
|||
}); |
|||
|
|||
this.getDataList(); |
|||
} |
|||
}); |
|||
}, |
|||
// 树形结构递归 |
|||
digui(item) { |
|||
// 一层一层往下面执行,循环,直到不满足情况的条件下,会自动跳出这个递归方法,然后又到上面方法的源头处,开始执行下一个对象。。。 |
|||
if (item.govlist != null) { |
|||
// 因为三级联动的数据格式是value和label,所以需要自己手动添加,没有的忽略。 |
|||
item.govlist.forEach((ff) => { |
|||
// 这里就是判断他的children下面还有没有值,有的话我就要往下挖,就又开始自己调用自己了 |
|||
this.digui(ff); |
|||
}); |
|||
} else { |
|||
// 这里就是判断,如果我这一层的children下面没有东西的时候该做什么操作 |
|||
// 要添加value和label,否则会看不到标签名字和值 |
|||
// --------------------------分割线--------------------------------- |
|||
|
|||
item.govlist = item.child; |
|||
} |
|||
// 到这里为止,不能在这里打印数据,不然数据就是个断层的,因为在这里打印的数据是当前循环的这一层的数据,如果想看完整数据效果,那么就需要在递归方法第一次调用的地方打印需要递归的值,即上一个方法中。 |
|||
}, |
|||
// 新增按钮 |
|||
showAdd() { |
|||
this.dialogFormVisible = true; |
|||
console.log(this.dialogFormVisible); |
|||
}, |
|||
// 编辑按钮 |
|||
async showEdit(row) { |
|||
this.editFrom.outid = row.outid; |
|||
const res = await gettargetinfo(this.editFrom); |
|||
this.editAdd = res.data; |
|||
console.log("this.editAdd"); |
|||
console.log(this.editAdd); |
|||
this.editDialogFormVisible = true; |
|||
}, |
|||
// 开关状态监听 |
|||
async changeVal(val, id) { |
|||
this.switchFrom.id = id; |
|||
this.switchFrom.id = this.switchFrom.id.toString(); |
|||
if (val == 1) { |
|||
this.switchFrom.state = 1; |
|||
const res = await editstate(this.switchFrom); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "修改状态成功", |
|||
showClose: true, |
|||
}); |
|||
this.getDataList(); |
|||
} |
|||
} else { |
|||
this.switchFrom.state = 2; |
|||
const res = await editstate(this.switchFrom); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "修改状态成功", |
|||
showClose: true, |
|||
}); |
|||
this.getDataList(); |
|||
} |
|||
} |
|||
}, |
|||
// 重置搜索条件 |
|||
onReset() { |
|||
this.searchInfo = {}; |
|||
}, |
|||
// 条件搜索 |
|||
onSubmit() { |
|||
this.searchInfo.page = 1; |
|||
this.searchInfo.pagesize = 10; |
|||
this.getDataList(); |
|||
}, |
|||
// 日期时间戳转日期格式 |
|||
formatDate(nS) { |
|||
return new Date(parseInt(nS) * 1000) |
|||
.toLocaleString() |
|||
.replace(/:\d{1,2}$/, " "); |
|||
}, |
|||
|
|||
// 提交按钮 |
|||
async enterDialog() { |
|||
this.$refs.addForm.validate(async (valid) => { |
|||
if (valid) { |
|||
this.form.relevantDepartments = |
|||
this.form.relevantDepartments.toString(); |
|||
if (this.form.departmentsPost != null) { |
|||
this.form.departmentsPost = this.form.departmentsPost.map(String); |
|||
} |
|||
this.form.cycleattr = parseInt(this.form.cycleattr); |
|||
const res = await addposttarget(this.form); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "添加成功", |
|||
showClose: true, |
|||
}); |
|||
} |
|||
this.getDataList(); |
|||
this.closeDialog(); |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
// 编辑提交按钮 |
|||
async editEnterDialog() { |
|||
this.$refs.editForm.validate(async (valid) => { |
|||
if (valid) { |
|||
if (this.editAdd.relevantdepartmentsmap != null) { |
|||
this.editAdd.relevantdepartments = |
|||
this.editAdd.relevantdepartmentsmap.map(String); |
|||
} |
|||
if (this.editAdd.relevantdepartmentsmap == null) { |
|||
this.editAdd.relevantdepartments = |
|||
this.editAdd.relevantdepartments.split(","); |
|||
} |
|||
if (this.editAdd.visiblerangedepartmap == null) { |
|||
this.editAdd.visiblerange = this.editAdd.visiblerange.split(","); |
|||
} |
|||
if (this.editAdd.visiblerangegroupmap == null) { |
|||
this.editAdd.visiblerangegroup = |
|||
this.editAdd.visiblerangegroup.split(","); |
|||
} |
|||
console.log(this.editAdd.relevantdepartments); |
|||
if (this.editAdd.share == 1) { |
|||
this.editAdd.relevantdepartments = []; |
|||
this.editAdd.relevantdepartmentsmap = []; |
|||
this.$delete(this.editAdd, "relevantdepartments"); |
|||
this.$delete(this.editAdd, "relevantdepartmentsmap"); |
|||
} |
|||
this.editAdd.report = this.editAdd.reportmap; |
|||
this.editAdd.dimension = this.editAdd.dimensionidstr; |
|||
this.editAdd.cycleattr = parseInt(this.editAdd.cycleattr); |
|||
const res = await eitetarget(this.editAdd); |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: "success", |
|||
message: "编辑成功", |
|||
showClose: true, |
|||
}); |
|||
} |
|||
this.getDataList(); |
|||
this.editCloseDialog(); |
|||
} |
|||
}); |
|||
}, |
|||
// 添加框关闭 |
|||
closeDialog() { |
|||
console.log("closeDialog"); |
|||
this.initForm(); |
|||
this.dialogFormVisible = false; |
|||
}, |
|||
// 修改框关闭 |
|||
editCloseDialog() { |
|||
this.editInitForm(); |
|||
this.editDialogFormVisible = false; |
|||
}, |
|||
// 添加重置表单 |
|||
initForm() { |
|||
console.log("initForm"); |
|||
this.$refs.addForm.resetFields(); |
|||
this.form = {}; |
|||
console.log(this.form); |
|||
}, |
|||
// 修改重置表单 |
|||
editInitForm() { |
|||
this.$refs.editForm.resetFields(); |
|||
this.editAdd = {}; |
|||
}, |
|||
// 改变pageSize |
|||
handleSizeChange(val) { |
|||
this.searchInfo.pagesize = val; |
|||
this.getDataList(this.searchInfo); |
|||
}, |
|||
// 改变page |
|||
handleCurrentChange(val) { |
|||
this.searchInfo.page = val; |
|||
this.getDataList(this.searchInfo); |
|||
}, |
|||
// 获取初始数据 |
|||
async getDataList() { |
|||
if (this.searchInfo.relevantdepartments != null) { |
|||
this.searchInfo.relevantdepartments = |
|||
this.searchInfo.relevantdepartments.map(String); |
|||
} |
|||
const res = await posttargetlist(this.searchInfo); |
|||
this.tableData = res.data.list; |
|||
this.total = res.data.total; |
|||
this.searchInfo.page = res.data.page; |
|||
this.searchInfo.pagesize = res.data.pageSize; |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.dashboard { |
|||
&-container { |
|||
margin: 30px; |
|||
} |
|||
&-text { |
|||
font-size: 30px; |
|||
line-height: 46px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,363 @@ |
|||
<template> |
|||
<!-- 课件管理 --> |
|||
<div class="dashboard-container"> |
|||
<div class="gva-search-box"> |
|||
<el-form ref="searchForm" :inline="true" :model="searchInfo"> |
|||
<el-form-item label="考核维度名称"> |
|||
<el-input |
|||
placeholder="请输入名称" |
|||
v-model="searchInfo.title" |
|||
clearable> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item label="考核维度状态"> |
|||
<el-select v-model="searchInfo.state" clearable placeholder="请选择状态"> |
|||
<el-option :value=1 label="正常">正常</el-option> |
|||
<el-option :value=2 label="禁止">禁止</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button> |
|||
<el-button size="mini" icon="el-icon-refresh" @click="onReset">重置</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<div class="gva-table-box"> |
|||
<div class="gva-btn-list"> |
|||
<el-button size="mini" type="primary" icon="el-icon-plus" @click="showAdd()">新增</el-button> |
|||
</div> |
|||
<el-table :data="tableData"> |
|||
<el-table-column align="left" label="编码" prop="outId"/> |
|||
<el-table-column align="left" label="名称" prop="title"/> |
|||
<el-table-column align="left" label="分类" prop="sort"/> |
|||
<el-table-column align="left" label="状态"> |
|||
<template #default="scope"> |
|||
<el-switch |
|||
inline-prompt |
|||
active-text="正常" |
|||
inactive-text="禁止" |
|||
v-model="scope.row.state" |
|||
active-color="#13ce66" |
|||
inactive-color="#ff4949" |
|||
:active-value=1 |
|||
:inactive-value=2 |
|||
@change="changeVal($event,scope.row.outId)" |
|||
/> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="left" label="学时" prop="sort"/> |
|||
<el-table-column align="left" label="学分" prop="sort"/> |
|||
<el-table-column align="left" label="描述" prop="sort"/> |
|||
<el-table-column align="left" fixed="right" label="操作" width="200"> |
|||
<template #default="scope"> |
|||
<el-button |
|||
icon="el-icon-edit" |
|||
size="small" |
|||
type="text" |
|||
@click="showEdit(scope.row)" |
|||
>编辑</el-button> |
|||
<el-button |
|||
icon="el-icon-delete" |
|||
size="small" |
|||
type="text" |
|||
@click="deleteOperate(scope.row)" |
|||
>删除</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div class="gva-pagination"> |
|||
<el-pagination |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange" |
|||
:page-sizes="[10, 30, 50, 100]" |
|||
:page-size="searchInfo.pagesize" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
:total="total"> |
|||
</el-pagination> |
|||
</div> |
|||
</div> |
|||
<!-- 新增弹框 --> |
|||
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="20%"> |
|||
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px"> |
|||
<el-form-item label="课件编码" prop="title"> |
|||
<el-input v-model="form.title" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="课件名称" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="课件分类" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="课件状态" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="学时" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="学分" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="课件类型" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="裁剪状态" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="课件" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="学习时长(分)" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="描述" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="closeDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="enterDialog">确 定</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
<!-- 编辑弹框 --> |
|||
<el-dialog :visible.sync="editDialogFormVisible" :before-close="editCloseDialog" title="修改" width="20%"> |
|||
<el-form ref="editForm" :model="editAdd" :rules="editRules" label-width="150px"> |
|||
<el-form-item label="考核维度名称" prop="title"> |
|||
<el-input v-model="editAdd.title" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="排序" prop="sort"> |
|||
<el-input v-model.number="editAdd.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="editCloseDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="editEnterDialog">确 定</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { dutyclasslist,statedutyclass,eitedutyclassinfo,getdutyclassinfo,adddutyclass } from '@/api/duty/dimension' |
|||
export default { |
|||
name: 'Dashboard', |
|||
data() { |
|||
return { |
|||
// 查询详情的数据 |
|||
editFrom:{}, |
|||
// 修改状态提交数据 |
|||
switchFrom:{}, |
|||
// 删除数据提交 |
|||
deleFrom:{}, |
|||
// 编辑时数据 |
|||
editAdd:{}, |
|||
assessList:{}, |
|||
// 添加数据 |
|||
form:{}, |
|||
// 弹窗变量 |
|||
dialogFormVisible:false, |
|||
// 修改弹窗 |
|||
editDialogFormVisible:false, |
|||
total: 0, |
|||
tableData:[], |
|||
// 条件查询变量 |
|||
searchInfo: { |
|||
page: 1, |
|||
pagesize: 10 |
|||
}, |
|||
// 条件查询变量 |
|||
abc:{ |
|||
aaa:"111", |
|||
bbb:"222" |
|||
}, |
|||
// 添加时验证规则 |
|||
rules: { |
|||
title: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
|||
}, |
|||
editRules:{ |
|||
title: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
console.log(this.$store.state.user.token) |
|||
if (this.$store.state.user.token=='') { |
|||
this.$router.push('/login') |
|||
} |
|||
// 页面渲染时获取初始数据 |
|||
this.getDataList() |
|||
}, |
|||
methods: { |
|||
// 删除操作 |
|||
//删除操作 |
|||
async deleteOperate(row) { |
|||
this.$confirm('此操作将永久删除, 是否继续?', '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}) |
|||
.then(async() => { |
|||
this.deleFrom.state=3; |
|||
this.deleFrom.outid=row.outId; |
|||
const res = await statedutyclass(this.deleFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '删除成功!' |
|||
}) |
|||
|
|||
this.getDataList() |
|||
} |
|||
}) |
|||
}, |
|||
// 新增按钮 |
|||
showAdd(){ |
|||
this.dialogFormVisible=true; |
|||
console.log(this.dialogFormVisible) |
|||
}, |
|||
// 编辑按钮 |
|||
async showEdit(row){ |
|||
this.editFrom.outid=row.outId |
|||
const res = await getdutyclassinfo(this.editFrom) |
|||
this.editAdd = res.data |
|||
this.editDialogFormVisible=true; |
|||
|
|||
}, |
|||
// 开关状态监听 |
|||
async changeVal(val,id){ |
|||
console.log(val) |
|||
this.switchFrom.outid=id |
|||
if (val==1) { |
|||
this.switchFrom.state=1; |
|||
const res = await statedutyclass(this.switchFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '修改状态成功', |
|||
showClose: true |
|||
}) |
|||
this.getDataList() |
|||
} |
|||
} else { |
|||
this.switchFrom.state=2; |
|||
const res = await statedutyclass(this.switchFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '修改状态成功', |
|||
showClose: true |
|||
}) |
|||
this.getDataList() |
|||
} |
|||
} |
|||
}, |
|||
// 重置搜索条件 |
|||
onReset() { |
|||
this.searchInfo = {} |
|||
}, |
|||
// 条件搜索 |
|||
onSubmit() { |
|||
this.searchInfo.page = 1 |
|||
this.searchInfo.pagesize = 10 |
|||
this.getDataList() |
|||
}, |
|||
// 日期时间戳转日期格式 |
|||
formatDate(nS) { |
|||
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); |
|||
}, |
|||
|
|||
// 提交按钮 |
|||
async enterDialog(){ |
|||
|
|||
this.$refs.addForm.validate(async valid => { |
|||
if (valid) { |
|||
const res = await adddutyclass(this.form) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '添加成功', |
|||
showClose: true |
|||
}) |
|||
} |
|||
this.getDataList(); |
|||
this.closeDialog(); |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 编辑提交按钮 |
|||
async editEnterDialog(){ |
|||
this.$refs.editForm.validate(async valid => { |
|||
if (valid) { |
|||
const res = await eitedutyclassinfo(this.editAdd) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '编辑成功', |
|||
showClose: true |
|||
}) |
|||
} |
|||
this.getDataList(); |
|||
this.editCloseDialog(); |
|||
} |
|||
}) |
|||
}, |
|||
// 添加框关闭 |
|||
closeDialog() { |
|||
console.log("closeDialog") |
|||
this.initForm() |
|||
this.dialogFormVisible = false |
|||
}, |
|||
// 修改框关闭 |
|||
editCloseDialog() { |
|||
this.editInitForm() |
|||
this.editDialogFormVisible = false |
|||
}, |
|||
// 添加重置表单 |
|||
initForm() { |
|||
console.log("initForm") |
|||
this.$refs.addForm.resetFields() |
|||
this.form = {} |
|||
console.log(this.form) |
|||
}, |
|||
// 修改重置表单 |
|||
editInitForm() { |
|||
this.$refs.editForm.resetFields() |
|||
this.editAdd = {} |
|||
}, |
|||
// 改变pageSize |
|||
handleSizeChange(val) { |
|||
this.searchInfo.pagesize=val |
|||
this.getDataList(this.searchInfo) |
|||
}, |
|||
// 改变page |
|||
handleCurrentChange(val) { |
|||
this.searchInfo.page=val |
|||
this.getDataList(this.searchInfo) |
|||
}, |
|||
// 获取初始数据 |
|||
async getDataList() { |
|||
const res = await dutyclasslist(this.searchInfo) |
|||
this.tableData = res.data.list |
|||
this.total = res.data.total |
|||
this.searchInfo.page = res.data.page |
|||
this.searchInfo.pagesize = res.data.pageSize |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.dashboard { |
|||
&-container { |
|||
margin: 30px; |
|||
} |
|||
&-text { |
|||
font-size: 30px; |
|||
line-height: 46px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,655 @@ |
|||
<template> |
|||
<!-- 荣誉档案管理 --> |
|||
<div class="dashboard-container"> |
|||
<div class="gva-search-box"> |
|||
<el-form ref="searchForm" :inline="true" :model="searchInfo"> |
|||
<el-form-item label="名称"> |
|||
<el-input |
|||
placeholder="请输入名称" |
|||
v-model="searchInfo.title" |
|||
clearable> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item label="发放单位"> |
|||
<el-input |
|||
placeholder="请输入单位名称" |
|||
v-model="searchInfo.unit" |
|||
clearable> |
|||
</el-input> |
|||
</el-form-item> |
|||
<!-- <el-form-item label="考核维度状态"> |
|||
<el-select v-model="searchInfo.state" clearable placeholder="请选择状态"> |
|||
<el-option :value=1 label="正常">正常</el-option> |
|||
<el-option :value=2 label="禁止">禁止</el-option> |
|||
</el-select> |
|||
</el-form-item> --> |
|||
<el-form-item> |
|||
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button> |
|||
<el-button size="mini" icon="el-icon-refresh" @click="onReset">重置</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<div class="gva-table-box"> |
|||
<div class="gva-btn-list"> |
|||
<el-button size="mini" type="primary" icon="el-icon-plus" @click="showAdd()">新增</el-button> |
|||
</div> |
|||
<el-table :data="tableData"> |
|||
<el-table-column align="left" label="名称" prop="name"/> |
|||
<el-table-column align="left" label="发放单位" prop="issuingunit"/> |
|||
<el-table-column align="left" label="载体" prop="carrier"/> |
|||
<el-table-column align="left" label="获奖时间" prop="awardtimebegin"> |
|||
<template #default="scope"> |
|||
{{scope.row.awardtimeend}} |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="left" label="有效期限" prop="awardtimeend"/> |
|||
<el-table-column align="left" label="图片" prop="sort"> |
|||
<template #default="scope"> |
|||
<el-button |
|||
icon="el-icon-view" |
|||
size="small" |
|||
type="text" |
|||
@click="showDetails(scope.row)" |
|||
>查看</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="left" label="备注" prop="remark"/> |
|||
<el-table-column align="left" label="状态"> |
|||
<template #default="scope"> |
|||
<el-switch |
|||
inline-prompt |
|||
active-text="正常" |
|||
inactive-text="禁止" |
|||
v-model="scope.row.state" |
|||
active-color="#13ce66" |
|||
inactive-color="#ff4949" |
|||
:active-value=1 |
|||
:inactive-value=2 |
|||
@change="changeVal($event,scope.row.id)" |
|||
/> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="left" fixed="right" label="操作" width="200"> |
|||
<template #default="scope"> |
|||
<el-button |
|||
icon="el-icon-edit" |
|||
size="small" |
|||
type="text" |
|||
@click="showEdit(scope.row)" |
|||
>编辑</el-button> |
|||
|
|||
<el-button |
|||
icon="el-icon-delete" |
|||
size="small" |
|||
type="text" |
|||
@click="deleteOperate(scope.row)" |
|||
>删除</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div class="gva-pagination"> |
|||
<el-pagination |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange" |
|||
:page-sizes="[10, 30, 50, 100]" |
|||
:page-size="searchInfo.pagesize" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
:total="total"> |
|||
</el-pagination> |
|||
</div> |
|||
</div> |
|||
<!-- 新增弹框 --> |
|||
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="30%"> |
|||
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px"> |
|||
<el-form-item label="名称" prop="name"> |
|||
<el-input v-model="form.name" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="载体" prop="sort"> |
|||
<el-select v-model="form.carrier" filterable placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in carrierList" |
|||
:key="item.id" |
|||
:label="item.name" |
|||
:value="item.id"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="发放单位" prop="sort"> |
|||
<el-input v-model="form.issuingagency" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="获奖部门" prop="sort"> |
|||
<el-cascader filterable clearable v-model="form.organize" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="获奖人员" prop="report"> |
|||
<el-cascader filterable clearable v-model="form.userkey" :options="grouplistBackup" :show-all-levels="false" :props="userProps"></el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="获奖时间" prop="sort"> |
|||
<el-date-picker |
|||
v-model="form.awardtime" |
|||
type="date" |
|||
placeholder="选择日期" |
|||
format="yyyy 年 MM 月 dd 日" |
|||
value-format="yyyy-MM-dd"> |
|||
</el-date-picker> |
|||
<!-- <el-input v-model="form.getTime" autocomplete="off" /> --> |
|||
</el-form-item> |
|||
<el-form-item label="有效期限" prop="sort"> |
|||
<el-date-picker |
|||
v-model="form.efficientDate" |
|||
type="date" |
|||
format="yyyy 年 MM 月 dd 日" |
|||
value-format="yyyy-MM-dd" |
|||
placeholder="选择日期"> |
|||
</el-date-picker> |
|||
<!-- <el-input v-model="form.efficientDate" autocomplete="off" /> --> |
|||
</el-form-item> |
|||
<el-form-item label="图片" prop="sort"> |
|||
<el-upload |
|||
:on-change="(file, fileList) => {handleChange(file, fileList, scope);} " |
|||
:on-preview="clickpj(file)" |
|||
list-type="picture" |
|||
:on-remove="(file, fileList, index) => {handleRemove(file, fileList, index)}" |
|||
:action="uploadActionUrl" |
|||
multiple |
|||
:on-success="uploadSuccess" |
|||
:file-list="fileList"> |
|||
<el-button size="small" type="primary">点击上传</el-button> |
|||
</el-upload> |
|||
</el-form-item> |
|||
<el-form-item label="备注" prop="sort"> |
|||
<el-input v-model="form.remark" autocomplete="off" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="closeDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="enterDialog">确 定</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
<!-- 编辑弹框 --> |
|||
<el-dialog :visible.sync="editDialogFormVisible" :before-close="editCloseDialog" title="修改" width="20%"> |
|||
<!-- <el-form ref="editForm" :model="editAdd" :rules="editRules" label-width="150px"> |
|||
<el-form-item label="名称" prop="title"> |
|||
<el-input v-model="editForm.title" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="载体" prop="sort"> |
|||
<el-input v-model="editForm.carrier" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="发放单位" prop="sort"> |
|||
<el-input v-model="editForm.unit" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="发放单位" prop="sort"> |
|||
<el-input v-model="editForm.unit" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="获奖时间" prop="sort"> |
|||
<el-input v-model="editForm.unit" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="有效期限" prop="sort"> |
|||
<el-input v-model="editForm.efficientDate" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="图片" prop="sort"> |
|||
<el-upload |
|||
:on-change="(file, fileList) => {handleChange(file, fileList, scope);} " |
|||
:on-preview="clickpj(file)" |
|||
list-type="picture" |
|||
:on-remove="(file, fileList, index) => {handleRemove(file, fileList, index)}" |
|||
:action="uploadActionUrl" |
|||
multiple |
|||
:on-success="uploadSuccess" |
|||
:file-list="fileList"> |
|||
<el-button size="small" type="primary">点击上传</el-button> |
|||
</el-upload> |
|||
</el-form-item> |
|||
<el-form-item label="备注" prop="sort"> |
|||
<el-input v-model="editForm.remark" autocomplete="off" /> |
|||
</el-form-item> |
|||
</el-form> --> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="editCloseDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="editEnterDialog">确 定</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
getgroupdepartmap, |
|||
getgroupuser |
|||
} from '@/api/duty/group' |
|||
import { carrierlist,honorlist,addhonorcont,eidyhonorcont,eidyhonorcontstate } from '@/api/honer' |
|||
export default { |
|||
name: 'Dashboard', |
|||
filters: {//与data同级 |
|||
dataFormat(val) {//val是传递过来的时间戳 |
|||
let data = new Date(val); |
|||
let y = data.getFullYear(); |
|||
let m = data.getMonth() + 1; |
|||
let d = data.getDay(); |
|||
let s = data.getHours(); |
|||
let f = data.getMinutes(); |
|||
let mi = data.getSeconds(); |
|||
return `${y}-${m}-${d} ${s}:${f}:${mi} `; |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
fileList:[], |
|||
uploadActionUrl:'/api/upordown', |
|||
// 详情数据 |
|||
detailsData:{}, |
|||
// 详情弹窗 |
|||
detailsDialogFormVisible:false, |
|||
// 查询详情的数据 |
|||
editFrom:{}, |
|||
// 修改状态提交数据 |
|||
switchFrom:{}, |
|||
// 删除数据提交 |
|||
deleFrom:{}, |
|||
// 编辑时数据 |
|||
editAdd:{}, |
|||
assessList:{}, |
|||
// 添加数据 |
|||
form:{ |
|||
imgurl:[], |
|||
}, |
|||
// 弹窗变量 |
|||
dialogFormVisible:false, |
|||
// 修改弹窗 |
|||
editDialogFormVisible:false, |
|||
total: 0, |
|||
tableData:[ |
|||
// { |
|||
// title:'守合同重信用企业',//名称 |
|||
// unit:'泰安市工商行政管理局泰安市企业信用协会',//发放单位 |
|||
// carrier:'奖牌',//载体 |
|||
// getTime:'2004/11/30',//获奖时间 |
|||
// efficientDate:'无',//有效期限 |
|||
// imgUrl:'',//图片 |
|||
// remark:'焦化转入'//备注 |
|||
// }, |
|||
// { |
|||
// title:'职业卫生“四个一”工程先进单位',//名称 |
|||
// unit:'山东省卫生厅卫生监督所',//发放单位 |
|||
// carrier:'奖牌',//载体 |
|||
// getTime:'2009/12/1',//获奖时间 |
|||
// efficientDate:'无',//有效期限 |
|||
// imgUrl:'',//图片 |
|||
// remark:'焦化转入'//备注 |
|||
// }, |
|||
// { |
|||
// title:'泰安市劳动关系和谐企业',//名称 |
|||
// unit:'泰安市创建劳动关系和谐企业活动领导小组',//发放单位 |
|||
// carrier:'奖牌',//载体 |
|||
// getTime:'2010/3/1',//获奖时间 |
|||
// efficientDate:'无',//有效期限 |
|||
// imgUrl:'',//图片 |
|||
// remark:'焦化转入'//备注 |
|||
// }, |
|||
// { |
|||
// title:'工人先锋号',//名称 |
|||
// unit:'泰安市总工会',//发放单位 |
|||
// carrier:'奖牌',//载体 |
|||
// getTime:'2013/3/1',//获奖时间 |
|||
// efficientDate:'无',//有效期限 |
|||
// imgUrl:'',//图片 |
|||
// remark:'焦化转入'//备注 |
|||
// }, |
|||
], |
|||
carrierList:[], |
|||
// 条件查询变量 |
|||
searchInfo: { |
|||
page: 1, |
|||
pagesize: 10 |
|||
}, |
|||
// 条件查询变量 |
|||
abc:{ |
|||
aaa:"111", |
|||
bbb:"222" |
|||
}, |
|||
props: { |
|||
checkStrictly: true, |
|||
value: "id", |
|||
label: "name", |
|||
children: "children", |
|||
emitPath:false, |
|||
// multiple: true |
|||
}, |
|||
userProps: { |
|||
value: "id", |
|||
label: "name", |
|||
children: "govlist", |
|||
emitPath:false, |
|||
// multiple: true |
|||
}, |
|||
grouplistBackup:[], |
|||
grouplist:[], |
|||
// 添加时验证规则 |
|||
rules: { |
|||
title: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
|||
}, |
|||
editRules:{ |
|||
title: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
console.log(this.$store.state.user.token) |
|||
if (this.$store.state.user.token=='') { |
|||
this.$router.push('/login') |
|||
} |
|||
|
|||
// 页面渲染时获取初始数据 |
|||
this.getDataList() |
|||
this.getCarrierList() |
|||
this.getSystemadminlist() |
|||
this.getGrouplist() |
|||
}, |
|||
methods: { |
|||
formatDate(nS) { |
|||
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); |
|||
}, |
|||
// 获取部门 |
|||
async getGrouplist(){ |
|||
const res = await getgroupdepartmap() |
|||
this.grouplist=res.data |
|||
|
|||
}, |
|||
// 获取员工列表 |
|||
async getSystemadminlist(){ |
|||
const from = { |
|||
level: 4 |
|||
} |
|||
const res = await getgroupuser(from) |
|||
this.grouplistBackup=res.data |
|||
this.grouplistBackup.forEach(item => { |
|||
if (item.govlist != null) { |
|||
// 即:this.digui(item);在这地方添加的 |
|||
item.govlist.forEach(items => { |
|||
// 下面的就是执行递归的方法,因为我是从第二层才开始需要往下挖的,所以这里多了个forEach,如果从第一层起,从item就好了,即:this.digui(item);在上面添加 |
|||
this.digui(items); // 这里是源头,把一个对象开始递归,开始循环 |
|||
// 如果想看完整数据,那么是在这里打印数据哦 |
|||
// console.log(items, '看我查看完整的数据哦') |
|||
// 因为上一步递归时,就已经把循环children的动作做完了,这里是验收递归方法的地方。 |
|||
}) |
|||
} else { |
|||
item.govlist=item.child |
|||
// 如果第一层没有子项做的操作。。。。。 |
|||
} |
|||
}) |
|||
console.log(this.grouplistBackup) |
|||
}, |
|||
// 树形结构递归 |
|||
digui (item) { |
|||
// 一层一层往下面执行,循环,直到不满足情况的条件下,会自动跳出这个递归方法,然后又到上面方法的源头处,开始执行下一个对象。。。 |
|||
if (item.govlist != null) { |
|||
// 因为三级联动的数据格式是value和label,所以需要自己手动添加,没有的忽略。 |
|||
item.govlist.forEach(ff => { |
|||
// 这里就是判断他的children下面还有没有值,有的话我就要往下挖,就又开始自己调用自己了 |
|||
this.digui(ff) |
|||
}) |
|||
} else { |
|||
// 这里就是判断,如果我这一层的children下面没有东西的时候该做什么操作 |
|||
// 要添加value和label,否则会看不到标签名字和值 |
|||
// --------------------------分割线--------------------------------- |
|||
|
|||
item.govlist=item.child |
|||
|
|||
} |
|||
// 到这里为止,不能在这里打印数据,不然数据就是个断层的,因为在这里打印的数据是当前循环的这一层的数据,如果想看完整数据效果,那么就需要在递归方法第一次调用的地方打印需要递归的值,即上一个方法中。 |
|||
}, |
|||
// 获取载体分类 |
|||
async getCarrierList(){ |
|||
const searchInfo = { |
|||
page:1, |
|||
pagesize:1000000, |
|||
} |
|||
const res = await carrierlist(searchInfo) |
|||
this.carrierList = res.data.list |
|||
}, |
|||
clickpj(file){ |
|||
console.log("file") |
|||
console.log(file) |
|||
}, |
|||
// 减清除 |
|||
handleRemove(file, fileList,index){ |
|||
this.jianForm.enclosure=[] |
|||
|
|||
fileList.forEach((a) => { |
|||
const data = { |
|||
filename: a.response.data.name, //文件名称 |
|||
filepath: a.response.data.url, //文件地址 |
|||
type: a.response.data.type //文件类型(1:图片;2:视频;3:office相关文档;4:压缩包;5:其他文件) |
|||
} |
|||
this.jianForm.enclosure.push(data) |
|||
}); |
|||
|
|||
|
|||
}, |
|||
// 上传成功 |
|||
uploadSuccess(response,file,fileList){ |
|||
if (response.code==0) { |
|||
console.log(response.data.url) |
|||
const data = { |
|||
name: response.data.name, //文件名称 |
|||
url: response.data.url, //文件地址 |
|||
imgpath: response.data.physicspath, |
|||
filesize:response.data.filesize |
|||
} |
|||
this.form.imgurl.push(data) |
|||
}else{ |
|||
this.$message.error('上传失败') |
|||
} |
|||
}, |
|||
handlejiaRemove(file, fileList,index){ |
|||
this.form.enclosure=[] |
|||
fileList.forEach((a) => { |
|||
const data = { |
|||
filename: a.response.data.name, //文件名称 |
|||
filepath: a.response.data.url, //文件地址 |
|||
type: a.response.data.type //文件类型(1:图片;2:视频;3:office相关文档;4:压缩包;5:其他文件) |
|||
} |
|||
this.form.enclosure.push(data) |
|||
}); |
|||
|
|||
|
|||
}, |
|||
// 限制上传大小 |
|||
handleChange(file, fileList, scope) { |
|||
//获取上传文件大小 |
|||
let imgSize = Number(file.size / 1024 / 1024); |
|||
|
|||
if (imgSize > 100) { |
|||
this.$msgbox({ |
|||
title: "", |
|||
message: "文件大小不能超过100MB,请重新上传。", |
|||
type: "warning", |
|||
}); |
|||
this.materialList[scope.$index].fileList.splice(scope.index, 1); |
|||
return; |
|||
} |
|||
|
|||
}, |
|||
// 查看详情操作 |
|||
async showDetails(row){ |
|||
const from = { |
|||
id:row.id |
|||
} |
|||
const res = await getdutyclassinfo(from) |
|||
this.detailsData = res.data |
|||
this.detailsDialogFormVisible=true; |
|||
}, |
|||
//删除操作 |
|||
async deleteOperate(row) { |
|||
this.$confirm('此操作将永久删除, 是否继续?', '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}) |
|||
.then(async() => { |
|||
this.deleFrom.state=3; |
|||
this.deleFrom.id=row.id; |
|||
this.deleFrom.id=this.deleFrom.id.toString() |
|||
const res = await eidyhonorcontstate(this.deleFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '删除成功!' |
|||
}) |
|||
|
|||
this.getDataList() |
|||
} |
|||
}) |
|||
}, |
|||
// 新增按钮 |
|||
showAdd(){ |
|||
this.dialogFormVisible=true; |
|||
console.log(this.dialogFormVisible) |
|||
}, |
|||
// 编辑按钮 |
|||
async showEdit(row){ |
|||
this.editFrom.outid=row.outId |
|||
const res = await getdutyclassinfo(this.editFrom) |
|||
this.editAdd = res.data |
|||
this.editDialogFormVisible=true; |
|||
|
|||
}, |
|||
// 开关状态监听 |
|||
async changeVal(val,id){ |
|||
console.log(id) |
|||
this.switchFrom.id=id |
|||
this.switchFrom.id=this.switchFrom.id.toString() |
|||
if (val==1) { |
|||
this.switchFrom.state=1; |
|||
const res = await eidyhonorcontstate(this.switchFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '修改状态成功', |
|||
showClose: true |
|||
}) |
|||
this.getDataList() |
|||
} |
|||
} else { |
|||
this.switchFrom.state=2; |
|||
const res = await eidyhonorcontstate(this.switchFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '修改状态成功', |
|||
showClose: true |
|||
}) |
|||
this.getDataList() |
|||
} |
|||
} |
|||
}, |
|||
// 重置搜索条件 |
|||
onReset() { |
|||
this.searchInfo = {} |
|||
}, |
|||
// 条件搜索 |
|||
onSubmit() { |
|||
this.searchInfo.page = 1 |
|||
this.searchInfo.pagesize = 10 |
|||
this.getDataList() |
|||
}, |
|||
// 日期时间戳转日期格式 |
|||
formatDate(nS) { |
|||
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); |
|||
}, |
|||
|
|||
// 提交按钮 |
|||
async enterDialog(){ |
|||
|
|||
this.$refs.addForm.validate(async valid => { |
|||
if (valid) { |
|||
const res = await addhonorcont(this.form) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '添加成功', |
|||
showClose: true |
|||
}) |
|||
} |
|||
this.getDataList(); |
|||
this.closeDialog(); |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 编辑提交按钮 |
|||
async editEnterDialog(){ |
|||
this.$refs.editForm.validate(async valid => { |
|||
if (valid) { |
|||
const res = await eitedutyclassinfo(this.editAdd) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '编辑成功', |
|||
showClose: true |
|||
}) |
|||
} |
|||
this.getDataList(); |
|||
this.editCloseDialog(); |
|||
} |
|||
}) |
|||
}, |
|||
// 添加框关闭 |
|||
closeDialog() { |
|||
console.log("closeDialog") |
|||
this.initForm() |
|||
this.dialogFormVisible = false |
|||
}, |
|||
// 修改框关闭 |
|||
editCloseDialog() { |
|||
this.editInitForm() |
|||
this.editDialogFormVisible = false |
|||
}, |
|||
// 添加重置表单 |
|||
initForm() { |
|||
console.log("initForm") |
|||
this.$refs.addForm.resetFields() |
|||
this.form = {} |
|||
console.log(this.form) |
|||
}, |
|||
// 修改重置表单 |
|||
editInitForm() { |
|||
this.$refs.editForm.resetFields() |
|||
this.editAdd = {} |
|||
}, |
|||
// 改变pageSize |
|||
handleSizeChange(val) { |
|||
this.searchInfo.pagesize=val |
|||
this.getDataList(this.searchInfo) |
|||
}, |
|||
// 改变page |
|||
handleCurrentChange(val) { |
|||
this.searchInfo.page=val |
|||
this.getDataList(this.searchInfo) |
|||
}, |
|||
// 获取初始数据 |
|||
async getDataList() { |
|||
const res = await honorlist(this.searchInfo) |
|||
this.tableData = res.data.list |
|||
this.total = res.data.total |
|||
this.searchInfo.page = res.data.page |
|||
this.searchInfo.pagesize = res.data.pageSize |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.dashboard { |
|||
&-container { |
|||
margin: 30px; |
|||
} |
|||
&-text { |
|||
font-size: 30px; |
|||
line-height: 46px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,333 @@ |
|||
<template> |
|||
<!-- 载体类型 --> |
|||
<div class="dashboard-container"> |
|||
<div class="gva-search-box"> |
|||
<el-form ref="searchForm" :inline="true" :model="searchInfo"> |
|||
<el-form-item label="名称"> |
|||
<el-input |
|||
placeholder="请输入名称" |
|||
v-model="searchInfo.name" |
|||
clearable> |
|||
</el-input> |
|||
</el-form-item> |
|||
<!-- <el-form-item label="考核维度状态"> |
|||
<el-select v-model="searchInfo.state" clearable placeholder="请选择状态"> |
|||
<el-option :value=1 label="正常">正常</el-option> |
|||
<el-option :value=2 label="禁止">禁止</el-option> |
|||
</el-select> |
|||
</el-form-item> --> |
|||
<el-form-item> |
|||
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button> |
|||
|
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<div class="gva-table-box"> |
|||
<div class="gva-btn-list"> |
|||
<el-button size="mini" type="primary" icon="el-icon-plus" @click="showAdd()">新增</el-button> |
|||
</div> |
|||
<el-table :data="tableData"> |
|||
<el-table-column align="left" label="ID" prop="id"/> |
|||
<el-table-column align="left" label="名称" prop="name"/> |
|||
<el-table-column align="left" label="状态"> |
|||
<template #default="scope"> |
|||
<el-switch |
|||
inline-prompt |
|||
active-text="正常" |
|||
inactive-text="禁止" |
|||
v-model="scope.row.state" |
|||
active-color="#13ce66" |
|||
inactive-color="#ff4949" |
|||
:active-value=1 |
|||
:inactive-value=2 |
|||
@change="changeVal($event,scope.row.id)" |
|||
/> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="left" fixed="right" label="操作" width="200"> |
|||
<template #default="scope"> |
|||
<el-button |
|||
icon="el-icon-edit" |
|||
size="small" |
|||
type="text" |
|||
@click="showEdit(scope.row)" |
|||
>编辑</el-button> |
|||
<el-button |
|||
icon="el-icon-delete" |
|||
size="small" |
|||
type="text" |
|||
@click="deleteOperate(scope.row)" |
|||
>删除</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div class="gva-pagination"> |
|||
<el-pagination |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange" |
|||
:page-sizes="[10, 30, 50, 100]" |
|||
:page-size="searchInfo.pagesize" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
:total="total"> |
|||
</el-pagination> |
|||
</div> |
|||
</div> |
|||
<!-- 新增弹框 --> |
|||
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="20%"> |
|||
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px"> |
|||
<el-form-item label="名称" prop="name"> |
|||
<el-input v-model="form.name" autocomplete="off" /> |
|||
</el-form-item> |
|||
<!-- <el-form-item label="排序" prop="sort"> |
|||
<el-input v-model.number="form.sort" autocomplete="off" /> |
|||
</el-form-item> --> |
|||
</el-form> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="closeDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="enterDialog">确 定</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
<!-- 编辑弹框 --> |
|||
<el-dialog :visible.sync="editDialogFormVisible" :before-close="editCloseDialog" title="修改" width="20%"> |
|||
<el-form ref="editForm" :model="editAdd" :rules="editRules" label-width="150px"> |
|||
<el-form-item label="名称" prop="name"> |
|||
<el-input v-model="editAdd.name" autocomplete="off" /> |
|||
</el-form-item> |
|||
|
|||
</el-form> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="editCloseDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="editEnterDialog">确 定</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { carrierlist,addcarrier,eidycarrier,eidycarrierstate } from '@/api/honer' |
|||
export default { |
|||
name: 'Dashboard', |
|||
data() { |
|||
return { |
|||
// 查询详情的数据 |
|||
editFrom:{}, |
|||
// 修改状态提交数据 |
|||
switchFrom:{}, |
|||
// 删除数据提交 |
|||
deleFrom:{}, |
|||
// 编辑时数据 |
|||
editAdd:{}, |
|||
assessList:{}, |
|||
// 添加数据 |
|||
form:{}, |
|||
// 弹窗变量 |
|||
dialogFormVisible:false, |
|||
// 修改弹窗 |
|||
editDialogFormVisible:false, |
|||
total: 0, |
|||
tableData:[], |
|||
// 条件查询变量 |
|||
searchInfo: { |
|||
page: 1, |
|||
pagesize: 10 |
|||
}, |
|||
// 条件查询变量 |
|||
abc:{ |
|||
aaa:"111", |
|||
bbb:"222" |
|||
}, |
|||
// 添加时验证规则 |
|||
rules: { |
|||
title: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
|||
}, |
|||
editRules:{ |
|||
title: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
console.log(this.$store.state.user.token) |
|||
if (this.$store.state.user.token=='') { |
|||
this.$router.push('/login') |
|||
} |
|||
// 页面渲染时获取初始数据 |
|||
this.getDataList() |
|||
}, |
|||
methods: { |
|||
// 删除操作 |
|||
//删除操作 |
|||
async deleteOperate(row) { |
|||
this.$confirm('此操作将永久删除, 是否继续?', '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}) |
|||
.then(async() => { |
|||
this.deleFrom.state=3; |
|||
this.deleFrom.id=row.id.toString(); |
|||
const res = await eidycarrierstate(this.deleFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '删除成功!' |
|||
}) |
|||
|
|||
this.getDataList() |
|||
} |
|||
}) |
|||
}, |
|||
// 新增按钮 |
|||
showAdd(){ |
|||
this.dialogFormVisible=true; |
|||
console.log(this.dialogFormVisible) |
|||
}, |
|||
// 编辑按钮 |
|||
async showEdit(row){ |
|||
this.editFrom.id=row.id |
|||
|
|||
this.editAdd = row |
|||
this.editDialogFormVisible=true; |
|||
|
|||
}, |
|||
// 开关状态监听 |
|||
async changeVal(val,id){ |
|||
console.log(val) |
|||
this.switchFrom.id=id |
|||
this.switchFrom.id=this.switchFrom.id.toString() |
|||
if (val==1) { |
|||
this.switchFrom.state=1; |
|||
const res = await eidycarrierstate(this.switchFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
|
|||
type: 'success', |
|||
message: '修改状态成功', |
|||
showClose: true |
|||
}) |
|||
this.getDataList() |
|||
} |
|||
} else { |
|||
this.switchFrom.state=2; |
|||
const res = await eidycarrierstate(this.switchFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '修改状态成功', |
|||
showClose: true |
|||
}) |
|||
this.getDataList() |
|||
} |
|||
} |
|||
}, |
|||
// 重置搜索条件 |
|||
onReset() { |
|||
this.searchInfo = {} |
|||
}, |
|||
// 条件搜索 |
|||
onSubmit() { |
|||
this.searchInfo.page = 1 |
|||
this.searchInfo.pagesize = 10 |
|||
this.getDataList() |
|||
}, |
|||
// 日期时间戳转日期格式 |
|||
formatDate(nS) { |
|||
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); |
|||
}, |
|||
|
|||
// 提交按钮 |
|||
async enterDialog(){ |
|||
|
|||
this.$refs.addForm.validate(async valid => { |
|||
if (valid) { |
|||
const res = await addcarrier(this.form) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '添加成功', |
|||
showClose: true |
|||
}) |
|||
} |
|||
this.getDataList(); |
|||
this.closeDialog(); |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 编辑提交按钮 |
|||
async editEnterDialog(){ |
|||
this.$refs.editForm.validate(async valid => { |
|||
if (valid) { |
|||
this.editAdd.id=this.editAdd.id.toString() |
|||
const res = await eidycarrier(this.editAdd) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '编辑成功', |
|||
showClose: true |
|||
}) |
|||
} |
|||
this.getDataList(); |
|||
this.editCloseDialog(); |
|||
} |
|||
}) |
|||
}, |
|||
// 添加框关闭 |
|||
closeDialog() { |
|||
console.log("closeDialog") |
|||
this.initForm() |
|||
this.dialogFormVisible = false |
|||
}, |
|||
// 修改框关闭 |
|||
editCloseDialog() { |
|||
this.editInitForm() |
|||
this.editDialogFormVisible = false |
|||
}, |
|||
// 添加重置表单 |
|||
initForm() { |
|||
console.log("initForm") |
|||
this.$refs.addForm.resetFields() |
|||
this.form = {} |
|||
console.log(this.form) |
|||
}, |
|||
// 修改重置表单 |
|||
editInitForm() { |
|||
this.$refs.editForm.resetFields() |
|||
this.editAdd = {} |
|||
}, |
|||
// 改变pageSize |
|||
handleSizeChange(val) { |
|||
this.searchInfo.pagesize=val |
|||
this.getDataList(this.searchInfo) |
|||
}, |
|||
// 改变page |
|||
handleCurrentChange(val) { |
|||
this.searchInfo.page=val |
|||
this.getDataList(this.searchInfo) |
|||
}, |
|||
// 获取初始数据 |
|||
async getDataList() { |
|||
const res = await carrierlist(this.searchInfo) |
|||
this.tableData = res.data.list |
|||
this.total = res.data.total |
|||
this.searchInfo.page = res.data.page |
|||
this.searchInfo.pagesize = res.data.pageSize |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.dashboard { |
|||
&-container { |
|||
margin: 30px; |
|||
} |
|||
&-text { |
|||
font-size: 30px; |
|||
line-height: 46px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,323 @@ |
|||
<template> |
|||
<!-- 班组 --> |
|||
<div class="dashboard-container"> |
|||
<div class="gva-search-box"> |
|||
<el-form ref="searchForm" :inline="true" :model="searchInfo"> |
|||
<el-form-item label="班组名称"> |
|||
<el-input |
|||
placeholder="请输入名称" |
|||
v-model="searchInfo.name" |
|||
clearable> |
|||
</el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<div class="gva-table-box"> |
|||
<div class="gva-btn-list"> |
|||
<el-button size="mini" type="primary" icon="el-icon-plus" @click="showAdd()">新增</el-button> |
|||
</div> |
|||
<el-table :data="tableData"> |
|||
<el-table-column align="left" label="班组ID" prop="id"/> |
|||
<el-table-column align="left" label="班组名称" prop="name"/> |
|||
<el-table-column align="left" label="状态"> |
|||
<template #default="scope"> |
|||
<el-switch |
|||
inline-prompt |
|||
active-text="正常" |
|||
inactive-text="禁止" |
|||
v-model="scope.row.state" |
|||
active-color="#13ce66" |
|||
inactive-color="#ff4949" |
|||
:active-value=1 |
|||
:inactive-value=2 |
|||
@change="changeVal($event,scope.row.id)" |
|||
/> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="left" fixed="right" label="操作" width="200"> |
|||
<template #default="scope"> |
|||
<el-button |
|||
icon="el-icon-edit" |
|||
size="small" |
|||
type="text" |
|||
@click="showEdit(scope.row)" |
|||
>编辑</el-button> |
|||
<el-button |
|||
icon="el-icon-delete" |
|||
size="small" |
|||
type="text" |
|||
@click="deleteOperate(scope.row)" |
|||
>删除</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div class="gva-pagination"> |
|||
<el-pagination |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange" |
|||
:page-sizes="[10, 30, 50, 100]" |
|||
:page-size="searchInfo.pagesize" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
:total="total"> |
|||
</el-pagination> |
|||
</div> |
|||
</div> |
|||
<!-- 新增弹框 --> |
|||
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="20%"> |
|||
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px"> |
|||
<el-form-item label="班组名称" prop="title"> |
|||
<el-input v-model="form.name" autocomplete="off" /> |
|||
</el-form-item> |
|||
|
|||
</el-form> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="closeDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="enterDialog">确 定</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
<!-- 编辑弹框 --> |
|||
<el-dialog :visible.sync="editDialogFormVisible" :before-close="editCloseDialog" title="修改" width="20%"> |
|||
<el-form ref="editForm" :model="editAdd" :rules="editRules" label-width="150px"> |
|||
<el-form-item label="考核维度名称" prop="title"> |
|||
<el-input v-model="editAdd.title" autocomplete="off" /> |
|||
</el-form-item> |
|||
<el-form-item label="排序" prop="sort"> |
|||
<el-input v-model.number="editAdd.sort" autocomplete="off" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template #footer> |
|||
<div class="dialog-footer"> |
|||
<el-button size="small" @click="editCloseDialog">取 消</el-button> |
|||
<el-button size="small" type="primary" @click="editEnterDialog">确 定</el-button> |
|||
</div> |
|||
</template> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { dutyclasslist,statedutyclass,eitedutyclassinfo,getdutyclassinfo,adddutyclass } from '@/api/duty/dimension' |
|||
import { addteamcont,getteamcont,eidtdelteamcont,teamcontlist,eiteteamcont } from '@/api/personnel/post' |
|||
export default { |
|||
name: 'Dashboard', |
|||
data() { |
|||
return { |
|||
// 查询详情的数据 |
|||
editFrom:{}, |
|||
// 修改状态提交数据 |
|||
switchFrom:{}, |
|||
// 删除数据提交 |
|||
deleFrom:{}, |
|||
// 编辑时数据 |
|||
editAdd:{}, |
|||
assessList:{}, |
|||
// 添加数据 |
|||
form:{}, |
|||
// 弹窗变量 |
|||
dialogFormVisible:false, |
|||
// 修改弹窗 |
|||
editDialogFormVisible:false, |
|||
total: 0, |
|||
tableData:[], |
|||
// 条件查询变量 |
|||
searchInfo: { |
|||
page: 1, |
|||
pagesize: 10 |
|||
}, |
|||
// 条件查询变量 |
|||
abc:{ |
|||
aaa:"111", |
|||
bbb:"222" |
|||
}, |
|||
// 添加时验证规则 |
|||
rules: { |
|||
name: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
|||
}, |
|||
editRules:{ |
|||
name: [{ required: true, message: '请输入名称', trigger: 'blur' }], |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
console.log(this.$store.state.user.token) |
|||
if (this.$store.state.user.token=='') { |
|||
this.$router.push('/login') |
|||
} |
|||
// 页面渲染时获取初始数据 |
|||
this.getDataList() |
|||
}, |
|||
methods: { |
|||
//删除操作 |
|||
async deleteOperate(row) { |
|||
this.$confirm('此操作将永久删除, 是否继续?', '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}) |
|||
.then(async() => { |
|||
this.deleFrom.state=3; |
|||
this.deleFrom.id=row.id; |
|||
const res = await eidtdelteamcont(this.deleFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '删除成功!' |
|||
}) |
|||
|
|||
this.getDataList() |
|||
} |
|||
}) |
|||
}, |
|||
// 新增按钮 |
|||
showAdd(){ |
|||
this.dialogFormVisible=true; |
|||
console.log(this.dialogFormVisible) |
|||
}, |
|||
// 编辑按钮 |
|||
async showEdit(row){ |
|||
this.editFrom.idstr=row.id.toString() |
|||
const res = await eiteteamcont(this.editFrom) |
|||
this.editAdd = res.data |
|||
this.editDialogFormVisible=true; |
|||
|
|||
}, |
|||
// 开关状态监听 |
|||
async changeVal(val,id){ |
|||
console.log(val) |
|||
this.switchFrom.id=id |
|||
if (val==1) { |
|||
this.switchFrom.state=1; |
|||
const res = await eidtdelteamcont(this.switchFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '修改状态成功', |
|||
showClose: true |
|||
}) |
|||
this.getDataList() |
|||
} |
|||
} else { |
|||
this.switchFrom.state=2; |
|||
const res = await eidtdelteamcont(this.switchFrom) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '修改状态成功', |
|||
showClose: true |
|||
}) |
|||
this.getDataList() |
|||
} |
|||
} |
|||
}, |
|||
// 重置搜索条件 |
|||
onReset() { |
|||
this.searchInfo = {} |
|||
}, |
|||
// 条件搜索 |
|||
onSubmit() { |
|||
this.searchInfo.page = 1 |
|||
this.searchInfo.pagesize = 10 |
|||
this.getDataList() |
|||
}, |
|||
// 日期时间戳转日期格式 |
|||
formatDate(nS) { |
|||
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' '); |
|||
}, |
|||
|
|||
// 提交按钮 |
|||
async enterDialog(){ |
|||
|
|||
this.$refs.addForm.validate(async valid => { |
|||
if (valid) { |
|||
const res = await addteamcont(this.form) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '添加成功', |
|||
showClose: true |
|||
}) |
|||
} |
|||
this.getDataList(); |
|||
this.closeDialog(); |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 编辑提交按钮 |
|||
async editEnterDialog(){ |
|||
this.$refs.editForm.validate(async valid => { |
|||
if (valid) { |
|||
const res = await eitedutyclassinfo(this.editAdd) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '编辑成功', |
|||
showClose: true |
|||
}) |
|||
} |
|||
this.getDataList(); |
|||
this.editCloseDialog(); |
|||
} |
|||
}) |
|||
}, |
|||
// 添加框关闭 |
|||
closeDialog() { |
|||
console.log("closeDialog") |
|||
this.initForm() |
|||
this.dialogFormVisible = false |
|||
}, |
|||
// 修改框关闭 |
|||
editCloseDialog() { |
|||
this.editInitForm() |
|||
this.editDialogFormVisible = false |
|||
}, |
|||
// 添加重置表单 |
|||
initForm() { |
|||
console.log("initForm") |
|||
this.$refs.addForm.resetFields() |
|||
this.form = {} |
|||
console.log(this.form) |
|||
}, |
|||
// 修改重置表单 |
|||
editInitForm() { |
|||
this.$refs.editForm.resetFields() |
|||
this.editAdd = {} |
|||
}, |
|||
// 改变pageSize |
|||
handleSizeChange(val) { |
|||
this.searchInfo.pagesize=val |
|||
this.getDataList(this.searchInfo) |
|||
}, |
|||
// 改变page |
|||
handleCurrentChange(val) { |
|||
this.searchInfo.page=val |
|||
this.getDataList(this.searchInfo) |
|||
}, |
|||
// 获取初始数据 |
|||
async getDataList() { |
|||
const res = await teamcontlist(this.searchInfo) |
|||
this.tableData = res.data.list |
|||
this.total = res.data.total |
|||
this.searchInfo.page = res.data.page |
|||
this.searchInfo.pagesize = res.data.pageSize |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.dashboard { |
|||
&-container { |
|||
margin: 30px; |
|||
} |
|||
&-text { |
|||
font-size: 30px; |
|||
line-height: 46px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,61 @@ |
|||
<template> |
|||
<el-carousel height="" :interval="5000" arrow="always"> |
|||
<el-carousel-item style="height:100%" v-for="item in 4" :key="item"> |
|||
<h3>{{ item }}</h3> |
|||
</el-carousel-item> |
|||
</el-carousel> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
data(){ |
|||
return{ |
|||
windowWidth: document.documentElement.clientWidth, //实时屏幕宽度 |
|||
windowHeight: document.documentElement.clientHeight, //实时屏幕高度 |
|||
} |
|||
}, |
|||
// <!--在watch中监听实时宽高--> |
|||
// watch: { |
|||
// windowHeight (val) { |
|||
// let that = this; |
|||
// console.log("实时屏幕高度:",val, that.windowHeight ); |
|||
// }, |
|||
// windowWidth (val) { |
|||
// let that = this; |
|||
// console.log("实时屏幕宽度:",val, that.windowHeight ); |
|||
// } |
|||
// }, |
|||
created(){ |
|||
console.log(document.documentElement.clientHeight) |
|||
}, |
|||
mounted() { |
|||
var that = this; |
|||
// <!--把window.onresize事件挂在到mounted函数上--> |
|||
window.onresize = () => { |
|||
return (() => { |
|||
window.fullHeight = document.documentElement.clientHeight; |
|||
window.fullWidth = document.documentElement.clientWidth; |
|||
that.windowHeight = window.fullHeight; // 高 |
|||
that.windowWidth = window.fullWidth; // 宽 |
|||
})() |
|||
}; |
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
.el-carousel__item h3 { |
|||
color: #475669; |
|||
font-size: 18px; |
|||
opacity: 0.75; |
|||
line-height: 300px; |
|||
margin: 0; |
|||
} |
|||
|
|||
.el-carousel__item:nth-child(2n) { |
|||
background-color: #99a9bf; |
|||
} |
|||
|
|||
.el-carousel__item:nth-child(2n+1) { |
|||
background-color: #d3dce6; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,287 @@ |
|||
<template> |
|||
<!-- 权限配置 --> |
|||
<div class="dashboard-container" style="padding:20px"> |
|||
<el-container> |
|||
<!-- 左侧内容 --> |
|||
<el-aside width="250px"> |
|||
<div> |
|||
<el-input |
|||
|
|||
placeholder="搜索" |
|||
v-model="filterText"> |
|||
</el-input> |
|||
<el-tree |
|||
class="filter-tree" |
|||
:data="data" |
|||
:props="defaultProps" |
|||
default-expand-all |
|||
@node-click="treeClick" |
|||
:filter-node-method="filterNode" |
|||
ref="tree"> |
|||
</el-tree> |
|||
</div> |
|||
|
|||
</el-aside> |
|||
<!-- 右侧内容 --> |
|||
<el-main style="padding:10px"> |
|||
<div style=""> |
|||
<div style="width: 180px;float: left;"> |
|||
<div class="tabletop" style="width:180px;border: 1px solid #DCDFE6;padding: 5px;height: 48px;padding: 12px 0;font-weight: 500;text-overflow: ellipsis;text-align: left;color: #909399;font-size: 14px;padding-left: 10px;">主菜单</div> |
|||
<div style="width:180px;border: 1px solid #DCDFE6;padding: 5px;"> |
|||
<el-checkbox-group v-model="menu"> |
|||
<el-checkbox style="margin-bottom:3px" label="绩效考核" name="type"></el-checkbox> |
|||
<el-checkbox style="margin-bottom:3px" label="hr系统" name="type"></el-checkbox> |
|||
<el-checkbox style="margin-bottom:3px" label="基础信息" name="type"></el-checkbox> |
|||
<el-checkbox style="margin-bottom:3px" label="数据提报" name="type"></el-checkbox> |
|||
</el-checkbox-group> |
|||
</div> |
|||
</div> |
|||
<div style="width: 180px;float: left;"> |
|||
<div class="tabletop" style="width:180px;border: 1px solid #DCDFE6;padding: 5px;height: 48px;padding: 12px 0;font-weight: 500;text-overflow: ellipsis;text-align: left;color: #909399;font-size: 14px;padding-left: 10px;"> |
|||
<el-checkbox v-model="checked">全选</el-checkbox> |
|||
</div> |
|||
<div v-for="(iteam,index) in tableData" style="width:180px;border: 0.5px solid #DCDFE6;height: 104px;font-weight: 500;text-overflow: ellipsis;text-align: left;font-size: 14px;padding-left: 10px;padding: 12px 5px;line-height: 4.15;padding-left: 10px;"> |
|||
<el-checkbox v-model="checked">{{iteam.name}}</el-checkbox> |
|||
</div> |
|||
</div> |
|||
<el-table |
|||
:data="tableData" |
|||
border |
|||
style="width:1000px"> |
|||
<el-table-column |
|||
prop="date" |
|||
label="表单权限"> |
|||
<template slot-scope="scope"> |
|||
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox> |
|||
<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange"> |
|||
<el-checkbox v-for="city in cities" :label="city" :key="city">{{city}}</el-checkbox> |
|||
</el-checkbox-group> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="date" |
|||
label="列表权限"> |
|||
<template slot-scope="scope"> |
|||
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox> |
|||
<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange"> |
|||
<el-checkbox v-for="iteam in listQuan" :label="iteam" :key="iteam">{{iteam}}</el-checkbox> |
|||
</el-checkbox-group> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="name" |
|||
label="数据权限"> |
|||
<template slot-scope="scope"> |
|||
<el-radio-group v-model="radio"> |
|||
<el-radio :label="3">本人</el-radio> |
|||
<el-radio :label="6">服务部门</el-radio> |
|||
<el-radio :label="9">全部</el-radio> |
|||
</el-radio-group> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</el-main> |
|||
</el-container> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
const cityOptions = ['暂存', '提交', '打印', '删除']; |
|||
import { dutieslist,positionlist } from '@/api/personnel/post' |
|||
import { dutyclasslist,statedutyclass,eitedutyclassinfo,getdutyclassinfo,adddutyclass } from '@/api/duty/dimension' |
|||
export default { |
|||
name: 'Dashboard', |
|||
data() { |
|||
return { |
|||
radio:'', |
|||
checkAll: false, |
|||
checkedCities: ['暂存', '提交', '打印'], |
|||
cities: cityOptions, |
|||
listQuan:['新增','导入','导出','删除','打印二维码'], |
|||
isIndeterminate: true, |
|||
checked:'', |
|||
tableData: [{ |
|||
date: '2016-05-02', |
|||
name: '期初向导', |
|||
address: '上海市普陀区金沙江路 1518 弄' |
|||
}, { |
|||
date: '2016-05-04', |
|||
name: '初始设置', |
|||
address: '上海市普陀区金沙江路 1517 弄' |
|||
}, { |
|||
date: '2016-05-01', |
|||
name: '编码规则', |
|||
address: '上海市普陀区金沙江路 1519 弄' |
|||
}, { |
|||
date: '2016-05-03', |
|||
name: '清除数据', |
|||
address: '上海市普陀区金沙江路 1516 弄' |
|||
}], |
|||
menu:'', |
|||
// 职务列表 |
|||
dutiesList:[], |
|||
positionList:[], |
|||
// 查询详情的数据 |
|||
editFrom:{}, |
|||
filterText: '', |
|||
data: [{ |
|||
id: 1, |
|||
name: '角色', |
|||
children: [{ |
|||
id: 4, |
|||
name: '超级管理员', |
|||
},{ |
|||
id: 66, |
|||
name: '管理员', |
|||
}] |
|||
}, { |
|||
id: 2, |
|||
name: '职务', |
|||
children: [] |
|||
}, { |
|||
id: 3, |
|||
name: '岗位', |
|||
children: [] |
|||
}], |
|||
defaultProps: { |
|||
children: 'children', |
|||
label: 'name' |
|||
} |
|||
} |
|||
}, |
|||
watch: { |
|||
filterText(val) { |
|||
this.$refs.tree.filter(val); |
|||
} |
|||
}, |
|||
created() { |
|||
console.log(this.$store.state.user.token) |
|||
if (this.$store.state.user.token=='') { |
|||
this.$router.push('/login') |
|||
} |
|||
// 页面渲染时获取初始数据 |
|||
// this.getDataList() |
|||
this.getDutiesList() |
|||
this.getPositionlistList() |
|||
}, |
|||
methods: { |
|||
|
|||
// 点击左侧树回调函数 |
|||
treeClick(val){ |
|||
console.log("val") |
|||
console.log(val) |
|||
}, |
|||
handleCheckAllChange(val) { |
|||
this.checkedCities = val ? cityOptions : []; |
|||
this.isIndeterminate = false; |
|||
}, |
|||
handleCheckedCitiesChange(value) { |
|||
let checkedCount = value.length; |
|||
this.checkAll = checkedCount === this.cities.length; |
|||
this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length; |
|||
}, |
|||
// el 自带过滤函数 |
|||
filterNode(value, data) { |
|||
if (!value) return true; |
|||
return data.label.indexOf(value) !== -1; |
|||
}, |
|||
// 获取职务列表数据 |
|||
async getDutiesList() { |
|||
const searchInfo = { |
|||
page: 1, //分页页码,数字类型 |
|||
pagesize: 1000000, //每页显示多少条数据 |
|||
} |
|||
const res = await dutieslist(searchInfo) |
|||
this.dutiesList = res.data.list |
|||
this.data[1].children=this.dutiesList |
|||
}, |
|||
// 获取岗位列表数据 |
|||
async getPositionlistList() { |
|||
const searchInfo = { |
|||
page: 1, //分页页码,数字类型 |
|||
pagesize: 1000000, //每页显示多少条数据 |
|||
} |
|||
const res = await positionlist(searchInfo) |
|||
this.positionList = res.data.list |
|||
this.data[2].children=this.positionList |
|||
}, |
|||
// 获取初始数据 |
|||
// async getDataList() { |
|||
// const res = await dutyclasslist(this.searchInfo) |
|||
// this.tableData = res.data.list |
|||
// this.total = res.data.total |
|||
// this.searchInfo.page = res.data.page |
|||
// this.searchInfo.pagesize = res.data.pageSize |
|||
// } |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.el-table__header .el-table-column--selection .cell .el-checkbox:after { |
|||
color: #333; |
|||
content: "全选" !important; |
|||
font-size: 16px; |
|||
margin-left: 12px; |
|||
font-weight: bold; |
|||
} |
|||
.tabletop{ |
|||
padding: 12px 0; |
|||
min-width: 0; |
|||
-webkit-box-sizing: border-box; |
|||
box-sizing: border-box; |
|||
text-overflow: ellipsis; |
|||
vertical-align: middle; |
|||
position: relative; |
|||
text-align: left; |
|||
} |
|||
// .el-aside::-webkit-scrollbar { |
|||
// display: none; |
|||
// } |
|||
// .el-input { |
|||
// width: 200px; |
|||
// } |
|||
// .el-header, .el-footer { |
|||
// background-color: #B3C0D1; |
|||
// color: #333; |
|||
// text-align: center; |
|||
// line-height: 60px; |
|||
// } |
|||
|
|||
// .el-aside { |
|||
// background-color: #D3DCE6; |
|||
// color: #333; |
|||
// text-align: center; |
|||
// line-height: 200px; |
|||
// } |
|||
|
|||
// .el-main { |
|||
// background-color: #E9EEF3; |
|||
// color: #333; |
|||
// text-align: center; |
|||
// line-height: 160px; |
|||
// } |
|||
|
|||
// body > .el-container { |
|||
// margin-bottom: 40px; |
|||
// } |
|||
|
|||
// .el-container:nth-child(5) .el-aside, |
|||
// .el-container:nth-child(6) .el-aside { |
|||
// line-height: 260px; |
|||
// } |
|||
|
|||
// .el-container:nth-child(7) .el-aside { |
|||
// line-height: 320px; |
|||
// } |
|||
// .dashboard { |
|||
// &-container { |
|||
// margin: 30px; |
|||
// } |
|||
// &-text { |
|||
// font-size: 30px; |
|||
// line-height: 46px; |
|||
// } |
|||
// } |
|||
</style> |
|||
Loading…
Reference in new issue