Browse Source

2022.0811

main
renguanyu111 3 years ago
parent
commit
2e8407cabf
  1. 1
      .env.development
  2. 3
      src/App.vue
  3. 1
      src/__layout/components/Navbar.vue
  4. 8
      src/api/api/dutys.js
  5. 72
      src/api/duty/project.js
  6. 16
      src/api/echarts/echarts.js
  7. 65
      src/api/honer.js
  8. 40
      src/api/personnel/post.js
  9. 1
      src/permission.js
  10. 71
      src/router/index.js
  11. 1
      src/store/modules/user.js
  12. 5
      src/utils/request.js
  13. 89
      src/utils/requestFile.js
  14. 136
      src/views/assessmentProgram/departmentalAssessment.vue
  15. 2083
      src/views/assessmentProgram/gwQualitativeIndicators.vue
  16. 6
      src/views/assessmentProgram/qualitativeIndicators.vue
  17. 1
      src/views/basicInfo/assessmentDimension.vue
  18. 889
      src/views/basicInfo/gwProject.vue
  19. 23
      src/views/basicInfo/project.vue
  20. 456
      src/views/basicInfo/projectBase.vue
  21. 2
      src/views/basicInfo/qualitativeIndicators.vue
  22. 19
      src/views/basicInfo/target.vue
  23. 363
      src/views/course/courseware.vue
  24. 379
      src/views/echarts/table.vue
  25. 655
      src/views/honor/index.vue
  26. 333
      src/views/honor/type.vue
  27. 479
      src/views/hr/personnel.vue
  28. 323
      src/views/hr/team.vue
  29. 61
      src/views/lunbo/index.vue
  30. 287
      src/views/permission/permissionSetting.vue
  31. 159
      src/views/personnel/post/index.vue

1
.env.development

@ -4,3 +4,4 @@ ENV = 'development'
# base api
VUE_APP_BASE_API = 'http://vue.admin.net/api'
VUE_APP_BASE_API1 = 'http://vue.admin.net/hrapi'
VUE_APP_BASE_API2 = 'http://vue.admin.net/fileapi'

3
src/App.vue

@ -48,7 +48,8 @@ window.addEventListener('hashchange',()=>{
var currentPath = window.location.hash.slice(1); //
if(this.$router.path !== currentPath){
this.$router.push(currentPath); //
console.log('动态跳转')
// this.$router.push(currentPath); //
}

1
src/__layout/components/Navbar.vue

@ -57,6 +57,7 @@ export default {
},
created () {
if (JSON.parse(sessionStorage.getItem('userinfo'))==null) {
console.log('Navbarr Login')
this.$router.push('/login')
}
this.userInfo=JSON.parse(sessionStorage.getItem('userinfo'));

8
src/api/api/dutys.js

@ -262,4 +262,12 @@ export const sanction = (data) => {
data: data
})
}
//汇总详情
export const summarydetails = (data) => {
return request({
url: '/quan/summarydetails',
method: 'post',
data: data
})
}

72
src/api/duty/project.js

@ -80,3 +80,75 @@ export const eitetarget = (data) => {
data: data
})
}
//汇总详情
export const summarydetails = (data) => {
return request({
url: '/quant/summarydetails',
method: 'post',
data: data
})
}
//岗位考核指标列表
export const posttargetlist = (data) => {
return request({
url: '/postkpi/posttargetlist',
method: 'post',
data: data
})
}
//编辑岗位指标
export const editposttarget = (data) => {
return request({
url: '/postkpi/editposttarget',
method: 'post',
data: data
})
}
//编辑岗位指标状态
export const editstate = (data) => {
return request({
url: '/postkpi/editstate',
method: 'post',
data: data
})
}
//添加岗位考核指标
export const addposttarget = (data) => {
return request({
url: '/postkpi/addposttarget',
method: 'post',
data: data
})
}
//修改定性指标关联岗位
export const editposttargetaual = (data) => {
return request({
url: '/postkpi/editposttargetaual',
method: 'post',
data: data
})
}
//添加岗位细则
export const addposttargetcont = (data) => {
return request({
url: '/postkpi/addposttargetcont',
method: 'post',
data: data
})
}
//岗位定性考核列表
export const posttargetsunlist = (data) => {
return request({
url: '/postkpi/posttargetsunlist',
method: 'post',
data: data
})
}
//获取指标关联的岗位
export const targetorglist = (data) => {
return request({
url: '/postkpi/targetorglist',
method: 'post',
data: data
})
}

16
src/api/echarts/echarts.js

@ -30,4 +30,20 @@ export const departmenttranscript = (data) => {
method: 'post',
data: data
})
}
//汇总详情定性历史记录
export const summarydetailsxinglog = (data) => {
return request({
url: '/quant/summarydetailsxinglog',
method: 'post',
data: data
})
}
//汇总详情定量历史记录
export const summarydetailslianglog = (data) => {
return request({
url: '/quant/summarydetailslianglog',
method: 'post',
data: data
})
}

65
src/api/honer.js

@ -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
})
}

40
src/api/personnel/post.js

@ -248,5 +248,45 @@ export const archivescont = (data) => {
data: data
})
}
//获取班组
export const getteamcont = (data) => {
return request({
url: '/org/getteamcont',
method: 'post',
data: data
})
}
//编辑班组状态或删除
export const eidtdelteamcont = (data) => {
return request({
url: '/org/eidtdelteamcont',
method: 'post',
data: data
})
}
//班组列表
export const teamcontlist = (data) => {
return request({
url: '/org/teamcontlist',
method: 'post',
data: data
})
}
//添加班组
export const addteamcont = (data) => {
return request({
url: '/org/addteamcont',
method: 'post',
data: data
})
}
//编辑班组
export const eiteteamcont = (data) => {
return request({
url: '/org/eiteteamcont',
method: 'post',
data: data
})
}

1
src/permission.js

@ -22,6 +22,7 @@ router.beforeEach(async(to, from, next) => {
if (hasToken!='') {
next({path:'/index'})
} else {
console.log("permission login")
next({path:'/login'})
}
if (hasToken) {

71
src/router/index.js

@ -31,15 +31,33 @@ import Layout from '@/layout'
*/
export const constantRoutes = [
{
path: '/ceshi',
component: () => import('@/views/ce/index'),
// hidden: true
path: '/',
component: Layout,
redirect: '/frontPage',
children: [{
path: 'frontPage',
name: 'frontPage',
component: () => import('@/views/frontPage/index'),
meta: { title: '首页'}
}]
},
{
path: '/login',
component: () => import('@/views/login/wxLogin'),
hidden: true
},
// 扫码登录中间件
{
path: '/ceshi',
component: () => import('@/views/ce/index'),
// hidden: true
},
{
path: '/lunbo',
component: () => import('@/views/lunbo/index'),
// hidden: true
},
{
path: '/approval',
component: () => import('@/views/approval/index'),
@ -60,15 +78,15 @@ export const constantRoutes = [
component: () => import('@/views/404'),
hidden: true
},
{
path: '/',
path: '/permissionSetting',
component: Layout,
redirect: '/frontPage',
redirect: '/permissionSetting',
children: [{
path: 'frontPage',
name: 'frontPage',
component: () => import('@/views/frontPage/index'),
meta: { title: '首页'}
path: 'permissionSetting',
component: () => import('@/views/permission/permissionSetting'),
meta: { title: '权限配置'}
}]
},
// /setsystem/systemmenulist
@ -153,6 +171,11 @@ export const constantRoutes = [
path: 'organization',
component: () => import('@/views/hr/organization.vue'),
},
{
path: 'team',
component: () => import('@/views/hr/team.vue'),
meta: { title: '班组管理'}
},
],
},
// 数据提报
@ -174,6 +197,25 @@ export const constantRoutes = [
},
],
},
// 荣誉档案
{
path: '/honer',
component: Layout,
children: [
// 当 /user/:id 匹配成功
// UserHome 将被渲染到 User 的 <router-view> 内部
{
path: 'index',
component: () => import('@/views/honor/index'),
meta: { title: '荣誉档案'}
},
{
path: 'type',
component: () => import('@/views/honor/type'),
meta: { title: '载体类型'}
},
],
},
// 审核记录
{
path: '/approvalData',
@ -224,6 +266,11 @@ export const constantRoutes = [
component: () => import('@/views/basicInfo/project'),
meta: { title: '考核指标'}
},
{
path: 'gwproject',
component: () => import('@/views/basicInfo/projectBase'),
meta: { title: '岗位指标'}
},
{
path: 'Target',
component: () => import('@/views/basicInfo/target'),
@ -327,6 +374,12 @@ export const constantRoutes = [
component: () => import('@/views/assessmentProgram/qualitativeIndicators'),
meta: { title: '定性考核', icon: 'tree' }
},
{
path: 'gwQualitativeIndicators',
name: 'gwQualitativeIndicators',
component: () => import('@/views/assessmentProgram/gwQualitativeIndicators'),
meta: { title: '定性考核', icon: 'tree' }
},
// {
// path: 'quantitativeIndicators',
// name: 'quantitativeIndicators',

1
src/store/modules/user.js

@ -18,6 +18,7 @@ const state = getDefaultState()
const mutations = {
loginOut(state) {
console.log('user.js loginOut')
state.userInfo = {}
state.token = ''
state.key = ''

5
src/utils/request.js

@ -58,11 +58,13 @@ service.interceptors.response.use(
*/
response => {
const res = response.data
console.log("res.code")
console.log(res.code)
// if the custom code is not 20000, it is judged as an error.
if (res.code !== 0) {
endLoading()
if(res.code === 7){
console.log('res.code === 7')
store.commit('user/loginOut')
}
Message({
@ -88,6 +90,7 @@ service.interceptors.response.use(
// return Promise.reject(Error).catch(Error=>{console.log(Error)})
// return Promise.reject(new Error(res.msg || 'Error'))
} else {
console.log("成功")
return res
}
},

89
src/utils/requestFile.js

@ -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

136
src/views/assessmentProgram/departmentalAssessment.vue

@ -46,57 +46,67 @@
<!-- <el-button size="mini" type="primary" icon="el-icon-setting" @click="showDimension()">设置维度权重</el-button> -->
<el-button size="mini" type="primary" icon="el-icon-setting" @click="showIndex()">生成部门考核方案</el-button>
</div>
<el-table border :data="versionData" :span-method="versionSpanMethod">
<el-table-column align="left" label="部门">
<template #default="scope">
{{scope.row.groupname}}{{scope.row.deaprtname}}
</template>
</el-table-column>
<el-table-column align="left" label="年度" prop="year"/>
<el-table-column align="left" label="版本号">
<template #default="scope">
{{scope.row.key}}
</template>
</el-table-column>
<el-table-column align="left" label="时间" prop="time"/>
<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.key)"
/>
</template>
</el-table-column>
<el-table-column align="left" fixed="right" label="操作" width="200">
<template #default="scope">
<el-button
icon="el-icon-view"
size="small"
type="text"
@click="showDetails(scope.row)"
>查看详情</el-button>
<el-button
icon="el-icon-document-checked"
size="small"
type="text"
@click="copyShow(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>
<el-container>
<!-- 左侧内容 -->
<el-aside width="300px">
<el-tree :data="GovthreeList2" :props="defaultProps1" @node-click="handleNodeClick"></el-tree>
</el-aside>
<!-- 右侧内容 -->
<el-main style="padding:10px">
<el-table border :data="versionData" :span-method="versionSpanMethod">
<el-table-column align="left" label="部门">
<template #default="scope">
{{scope.row.groupname}}{{scope.row.deaprtname}}
</template>
</el-table-column>
<el-table-column align="left" label="年度" prop="year"/>
<el-table-column align="left" label="版本号">
<template #default="scope">
{{scope.row.key}}
</template>
</el-table-column>
<el-table-column align="left" label="时间" prop="time"/>
<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.key)"
/>
</template>
</el-table-column>
<el-table-column align="left" fixed="right" label="操作" width="200">
<template #default="scope">
<el-button
icon="el-icon-view"
size="small"
type="text"
@click="showDetails(scope.row)"
>查看详情</el-button>
<el-button
icon="el-icon-document-checked"
size="small"
type="text"
@click="copyShow(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>
</el-main>
</el-container>
</div>
<!-- 新增弹框 -->
@ -282,7 +292,6 @@
<el-col :span="6">
<el-form-item label="所属部门" prop="title" v-if="form.group!=''">
<el-cascader filterable clearable v-model="form.parentid" :options="departmentList" :show-all-levels="false" :props="props1" @change="shouWei"></el-cascader>
</el-form-item>
</el-col>
<el-col :span="6">
@ -303,7 +312,6 @@
</div>
</el-col>
</el-row>
<el-form-item v-if="form.parentid!=''">
<!-- 表格表单提交 -->
<el-card class="box-card" v-for="(item,index) in weiDuList" :key="item.id">
@ -610,7 +618,6 @@
<!-- <div v-if="scope.row.istrue==2">{{scope.row.referencescore}}</div> -->
</template>
</el-table-column>
<el-table-column
label="状态"
align="center"
@ -640,6 +647,7 @@
</template>
<script>
import { govthree } from '@/api/personnel/post'
import { dutyclasslist } from '@/api/duty/dimension'
import { gettasktarget,gettasktargetsun,gettasktargetcontary,addqualeval,
addration,departmenttasklist,addqubatch,bumenList,departmentlistnew,adddepartmentdutyinfo,
@ -661,6 +669,11 @@ export default {
},
data() {
return {
GovthreeList2:[],
defaultProps1: {
children: 'child',
label: 'name'
},
copyDialogFormVisible:false,
weiduFractionCopy:0,
weiDuCopyList:[],
@ -862,6 +875,7 @@ export default {
this.getGrouplist()
this.getDutyclasslist()
this.getSystemadminlist()
this.getGovthree2()
},
//
watch: {
@ -901,6 +915,20 @@ export default {
},
},
methods: {
//
handleNodeClick(val){
this.searchInfo.organization=val.id
this.searchInfo.organization=this.searchInfo.organization.toString()
this.getDataList()
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)
},
getVersionSpanArr(data) {
// data
for (var i = 0; i < data.length; i++) {

2083
src/views/assessmentProgram/gwQualitativeIndicators.vue

File diff suppressed because it is too large

6
src/views/assessmentProgram/qualitativeIndicators.vue

@ -1093,9 +1093,9 @@ export default {
}
},
created() {
if (this.$store.state.user.token=='') {
this.$router.push('/login')
}
// if (this.$store.state.user.token=='') {
// this.$router.push('/login')
// }
//
this.getDataList()
this.getGrouplist()

1
src/views/basicInfo/assessmentDimension.vue

@ -155,6 +155,7 @@ export default {
created() {
console.log(this.$store.state.user.token)
if (this.$store.state.user.token=='') {
console.log("跳转login")
this.$router.push('/login')
}
//

889
src/views/basicInfo/gwProject.vue

@ -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: [],
// 123456
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,itemthis.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) {
// valuelabel,
item.govlist.forEach((ff) => {
// children
this.digui(ff);
});
} else {
// children西
// valuelabel,
// --------------------------线---------------------------------
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>

23
src/views/basicInfo/project.vue

@ -19,9 +19,9 @@
<!-- <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-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> -->
<el-form-item label="指标维度" prop="dimension">
<el-select v-model="searchInfo.dimension" clearable placeholder="请选择考核维度">
<el-option
@ -46,7 +46,7 @@
</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-button size="mini" icon="el-icon-refresh" @click="onReset">重置</el-button> -->
</el-form-item>
</el-form>
</div>
@ -84,7 +84,6 @@
<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>
@ -296,6 +295,7 @@ import {
} from '@/api/duty/group'
export default {
name: 'Dashboard',
props:['bmId'],
data() {
return {
grouplistBackup:[],
@ -413,10 +413,23 @@ export default {
this.getGrouplist()
},
watch:{
bmId(){
console.log("bmid变化")
console.log(this.bmId)
const list = []
list.push(this.bmId)
this.searchInfo.relevantdepartments=list
this.getDataList()
},
},
methods: {
//
async getSystemadminlist(){
const res = await getgroupuser()
const from = {
level: 4
}
const res = await getgroupuser(from)
this.grouplistBackup=res.data
this.grouplistBackup.forEach(item => {
if (item.govlist != null) {

456
src/views/basicInfo/projectBase.vue

@ -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,itemthis.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) {
// valuelabel,
item.govlist.forEach((ff) => {
// children
this.digui(ff);
});
} else {
// children西
// valuelabel,
// --------------------------线---------------------------------
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>

2
src/views/basicInfo/qualitativeIndicators.vue

@ -91,7 +91,7 @@
<el-form-item label="定性指标名称" prop="title">
<el-input v-model="form.title" autocomplete="off" />
</el-form-item>
<el-form-item v-if="" label="关联部门" prop="userid">
<el-form-item label="关联部门" prop="userid">
<el-cascader clearable v-model="form.groupId" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader>
</el-form-item>
<el-form-item label="数据提交" prop="userid">

19
src/views/basicInfo/target.vue

@ -4,7 +4,7 @@
<div class="gva-search-box">
<el-form ref="searchForm" :inline="true" :model="searchInfo">
<el-form-item label="部门">
<el-cascader filterable clearable v-model.string="searchInfo.departmentid" :options="buMenList" :show-all-levels="false" :props="props1"></el-cascader>
<el-cascader filterable clearable v-model.string="searchInfo.departmentid" :options="chuBuMenList" :show-all-levels="false" :props="props1"></el-cascader>
<!-- <el-select filterable v-model.string="searchInfo.departmentid" clearable placeholder="请选择">
<el-option
v-for="item in buMenList"
@ -729,6 +729,7 @@ export default {
aaa:"111",
bbb:"222"
},
chuBuMenList:[],
zhibiaoList:[],
zhibiaoShow:false,
//
@ -751,6 +752,7 @@ export default {
// this.selectGroup()
this.getDutyclasslist()
this.buMen()
this.chuBuMen()
},
watch:{
tableData() {
@ -846,6 +848,21 @@ export default {
// const res = await departmentlist(departmentFrom)
// this.buMenList=res.data
},
//
async chuBuMen(){
// const departmentFrom={
// outid:this.searchInfo.groupid
// }
const departmentFrom={
id:309
// level:3
}
const res = await departmentlist(departmentFrom)
this.chuBuMenList=res.data
// const res = await departmentlist(departmentFrom)
// this.buMenList=res.data
},
//
async showJiangZhi(row){

363
src/views/course/courseware.vue

@ -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>

379
src/views/echarts/table.vue

@ -4,78 +4,78 @@
<div class="Echarts">
<el-tabs stretch background-color="#545c64">
<el-tab-pane label="成绩表" style="padding:20px">
<el-table :data="scoreTableList.readStatisticsData" border style="width: 100%">
<el-table :data="scoreTableList.readStatisticsData" border style="width: 100%" :cell-style="{padding:'5px'}">
<el-table-column prop="department" label="部门" align="center"></el-table-column>
<el-table-column prop="a" label="1月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.a==-10000">-</div>
<div v-else>{{scope.row.a}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,1)" v-else>{{scope.row.a}}</div>
</template>
</el-table-column>
<el-table-column prop="b" label="2月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.b==-10000">-</div>
<div v-else>{{scope.row.b}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,2)" v-else>{{scope.row.b}}</div>
</template>
</el-table-column>
<el-table-column prop="C" label="3月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.C==-10000">-</div>
<div v-else>{{scope.row.C}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,3)" v-else>{{scope.row.C}}</div>
</template>
</el-table-column>
<el-table-column prop="d" label="4月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.d==-10000">-</div>
<div v-else>{{scope.row.d}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,4)" v-else>{{scope.row.d}}</div>
</template>
</el-table-column>
<el-table-column prop="e" label="5月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.e==-10000">-</div>
<div v-else>{{scope.row.e}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,5)" v-else>{{scope.row.e}}</div>
</template>
</el-table-column>
<el-table-column prop="f" label="6月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.f==-10000">-</div>
<div v-else>{{scope.row.f}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,6)" v-else>{{scope.row.f}}</div>
</template>
</el-table-column>
<el-table-column prop="g" label="7月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.g==-10000">-</div>
<div v-else>{{scope.row.g}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,7)" v-else>{{scope.row.g}}</div>
</template>
</el-table-column>
<el-table-column prop="h" label="8月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.h==-10000">-</div>
<div v-else>{{scope.row.h}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,8)" v-else>{{scope.row.h}}</div>
</template>
</el-table-column>
<el-table-column prop="i" label="9月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.i==-10000">-</div>
<div v-else>{{scope.row.i}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,9)" v-else>{{scope.row.i}}</div>
</template>
</el-table-column>
<el-table-column prop="J" label="10月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.J==-10000">-</div>
<div v-else>{{scope.row.J}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,10)" v-else>{{scope.row.J}}</div>
</template>
</el-table-column>
<el-table-column prop="K" label="11月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.K==-10000">-</div>
<div v-else>{{scope.row.K}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,11)" v-else>{{scope.row.K}}</div>
</template>
</el-table-column>
<el-table-column prop="L" label="12月份" align="center">
<template slot-scope="scope">
<div v-if="scope.row.L==-10000">-</div>
<div v-else>{{scope.row.L}}</div>
<div style="color:blue;cursor:pointer" @click="clickYue(scope.row,12)" v-else>{{scope.row.L}}</div>
</template>
</el-table-column>
</el-table>
@ -93,7 +93,6 @@
<el-form-item label="所属公司">
<el-cascader filterable clearable v-model="searchVersion.group" :options="companyList" :show-all-levels="false" :props="props2" @change="selectGroup"></el-cascader>
<!-- <el-select filterable v-model="searchVersion.group" clearable placeholder="请选择" @change="selectGroup">
<el-option
v-for="item in companyList"
:key="item.id"
@ -163,7 +162,6 @@
</div>
</template>
</el-table-column> -->
<!-- <el-table-column align="center" v-for="(iteam,index) in yueList" :key="index" :label="iteam">
<template slot-scope="scope">
<el-descriptions direction="vertical" :column="1" border>
@ -214,7 +212,6 @@
</el-table>
</div>
</el-tab-pane>
<el-tab-pane label="明细表">
<div v-if="echartsShow==2" style="padding:50px;">
<div class="gva-search-box">
@ -335,11 +332,9 @@
<!-- <el-table-column
v-for="(iteam1,index1) in iteam.child"
:key="index1"
:label="iteam1.title"
>
<template slot-scope="scope">
<template v-for="(g,index2) in scope.row.score" >
{{g.class[1]}}
</template>
@ -354,6 +349,9 @@
<div style='border-bottom: 1px solid #EBEEF5;'>
{{scope.row.score[index].zeroprize}}
</div>
<div style='border-bottom: 1px solid #EBEEF5;'>
{{scope.row.score[index].cappingval}}
</div>
<div style='border-bottom: 1px solid #EBEEF5;'>
{{scope.row.score[index].scoreval}}
</div>
@ -366,7 +364,6 @@
<div v-if="scope.row.manualgear==2" style='border-bottom: 1px solid #EBEEF5;color: blue;'>
{{scope.row.score[index].actualscore}}
</div>
</template>
<!-- <el-descriptions :column="1" border>
<el-descriptions-item ></el-descriptions-item>
@ -382,52 +379,140 @@
</el-tabs>
<!-- 得分弹框 -->
<!-- <el-dialog :visible.sync="showUser" title="得分详情" width="50%">
<!-- 详情弹框 -->
<el-dialog :visible.sync="showDetails" title="得分详情" width="50%">
<el-table style="width: 100%" :data="detailsList" border :span-method="detailsSpanMethod" :cell-style="{padding:'0px'}" >
<el-table-column prop="departmentname" align="center" label="部门"></el-table-column>
<el-table-column prop="dimensionname" align="center" label="考核维度"></el-table-column>
<el-table-column prop="dimensionweight" label="维度权重" align="center"></el-table-column>
<el-table-column prop="targetname" align="center" label="考核指标">
<template slot-scope="scope">
<el-link v-if="scope.row.type==1" type="primary" >{{scope.row.targetname}}</el-link>
<div v-if="scope.row.type==2">{{scope.row.targetname}}</div>
</template>
</el-table-column>
<el-table-column prop="targetweight" label="指标权重" align="center"></el-table-column>
<el-table
:data="userlistary"
style="width: 100%">
<el-table-column
prop="date"
label="头像">
<template slot-scope="scope">
<el-avatar shape="square" size="large" :src="scope.row.icon"></el-avatar>
<el-table-column prop="unit" label="单位" align="center"/>
<el-table-column prop="cycle" label="周期" align="center">
<template slot-scope="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>
<el-tag v-if="scope.row.cycle==7">半年</el-tag>
</template>
</el-table-column>
<el-table-column align="center" prop="cycleattr" label="频次">
<template slot-scope="scope">
<div v-if="scope.row.cycle==1">每班{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==2">每天{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==3">每周{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==4">每月{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==5">每季度{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==6">每年{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==7">每半年{{scope.row.cycleattr}}</div>
</template>
</el-table-column>
<el-table-column align="center" label="执行部门">
<template #default="scope">
<el-collapse>
<el-collapse-item title="详情">
<div v-for="(iteam,index) in scope.row.executivedepartment">
{{iteam}}
</div>
</el-collapse-item>
</el-collapse>
</template>
</el-table-column>
<el-table-column prop="score" label="得分" align="center">
<template #default="scope">
<div style="color:blue;cursor:pointer" @click="clickOld(scope.row)">{{scope.row.score}}</div>
</template>
</el-table-column>
</el-table>
</el-dialog>
<!-- 定性详情历史记录 -->
<el-dialog :visible.sync="dxdialogFormVisible" title="详情" width="40%">
<el-table :data="dingxingOldData" border style="width: 100%">
<el-table-column align="center" prop="addorsubtract" label="得分类型">
<template #default="scope">
<div v-if="scope.row.addorsubtract==1">加分</div>
<div v-if="scope.row.addorsubtract==2">减分</div>
</template>
</el-table-column>
<el-table-column
prop="number"
label="工号">
<el-table-column align="center" prop="score" label="得分">
</el-table-column>
<el-table-column
prop="address"
label="部门">
<template slot-scope="scope">
{{scope.row.groupname}}{{scope.row.departmentname}}
<el-table-column align="center" prop="count" label="原因">
</el-table-column>
<el-table-column align="center" prop="evalusercont[0].department" label="测评部门">
</el-table-column>
<el-table-column align="center" prop="evalusercont[0].username" label="测评人">
</el-table-column>
<el-table-column align="center" prop="time" label="时间">
</el-table-column>
</el-table>
</el-dialog>
<!-- 定量详情历史记录 -->
<el-dialog :visible.sync="dldialogFormVisible" title="详情" width="45%">
<el-table :data="dingliangOldData" border style="width: 100%">
<el-table-column align="center" prop="zeroprize" label="零奖值">
</el-table-column>
<el-table-column align="center" prop="allprize" label="全奖值">
</el-table-column>
<el-table-column align="center" prop="capping" label="封顶值">
</el-table-column>
<el-table-column align="center" prop="actual" label="实际值">
</el-table-column>
<el-table-column align="center" prop="completionrate" label="达成率">
</el-table-column>
<el-table-column align="center" prop="score" label="得 分">
</el-table-column>
<el-table-column align="center" prop="score" label="类 型">
<template #default="scope">
<div v-if="scope.row.mtorat==1">自动</div>
<div v-if="scope.row.mtorat==2">手动</div>
</template>
</el-table-column>
<el-table-column
prop="name"
label="姓名">
<el-table-column align="center" prop="count" label="备 注">
</el-table-column>
</el-table>
</el-dialog> -->
<!-- <el-descriptions border title="">
<el-descriptions-item label="零奖值">{{dingliangOldData.zeroprize}}</el-descriptions-item>
<el-descriptions-item label="全奖值">{{dingliangOldData.allprize}}</el-descriptions-item>
<el-descriptions-item label="封顶值">{{dingliangOldData.capping}}</el-descriptions-item>
<el-descriptions-item label="实际值">{{dingliangOldData.actual}}</el-descriptions-item>
<el-descriptions-item label="达成率">{{dingliangOldData.completionrate}}%</el-descriptions-item>
<el-descriptions-item label="得 分">{{dingliangOldData.score}}</el-descriptions-item>
</el-descriptions> -->
</el-dialog>
</div>
</template>
<script>
import {getquantechartorgandyear,getplanversionvalid,departmenttranscript} from '@/api/echarts/echarts'
import {getquantechartorgandyear,getplanversionvalid,departmenttranscript,summarydetailslianglog,summarydetailsxinglog} from '@/api/echarts/echarts'
import {
grouplist,
departmentlist,
getgroupdepartmap,
getgroupuser
} from '@/api/duty/group'
import { gettarget,addtarget,gettargetinfo,eiteassessinfo,eitetarget,deltarget } from '@/api/duty/project'
import { gettarget,addtarget,gettargetinfo,eiteassessinfo,eitetarget,deltarget,summarydetails } from '@/api/duty/project'
export default {
name: 'Echarts',
data(){
return{
dldialogFormVisible:false,
dxdialogFormVisible:false,
dingxingOldData:[],
dingliangOldData:[],
rowOldData:{},
chengjiYue:'',
showDetails:false,
props2: {
checkStrictly: true,
value: "wxId",
@ -542,6 +627,7 @@ export default {
value: '2030',
label: '2030'
}],
detailsList:[],
//
companyList:[],
departmentList:[],
@ -554,6 +640,12 @@ export default {
pos:'',
pos1:'',
pos2:'',
detailspos:'',
detailspos1:'',
detailspos2:'',
detailsSpanArr:[],
detailsspanArr1:[],
detailsspanArr2:[],
spanArr:[],
spanArr1:[],
spanArr2:[],
@ -573,6 +665,9 @@ export default {
data() {
this.$nextTick(() => {
this.detailsspanArr1=[],
this.detailsspanArr=[],
this.detailsspanArr2=[],
this.spanArr=[],
this.spanArr1=[],
this.spanArr2=[],
@ -588,8 +683,77 @@ export default {
// this.getLieArr(this.data);
});
},
detailsList() {
console.log("detailsList数据更新")
this.$nextTick(() => {
this.detailsspanArr1=[],
this.detailsspanArr=[],
this.detailsspanArr2=[],
this.detailspos2='',
this.detailspos='',
this.detailspos1='',
//createddataList
this.getdetailsSpanArr(this.detailsList);
this.getdetailsSpanArr1(this.detailsList);
// this.getLieArr(this.data);
});
},
},
methods: {
//
clickOld(row){
this.rowOldData=row
//
if (row.type==1) {
this.dingxingOld()
}
//
if (row.type==2) {
this.dingliangOld()
}
},
//
async dingxingOld(){
let nowDate = new Date()
const from = {
department:this.rowOldData.departmentid,
year:nowDate.getFullYear(),
month:parseInt(this.chengjiYue),
targetid:this.rowOldData.targetid
}
const res = await summarydetailsxinglog(from)
this.dingxingOldData=res.data
this.dxdialogFormVisible=true
},
//
async dingliangOld(){
let nowDate = new Date()
const from = {
department:this.rowOldData.departmentid,
year:nowDate.getFullYear(),
month:parseInt(this.chengjiYue),
targetid:this.rowOldData.targetid
}
const res = await summarydetailslianglog(from)
this.dingliangOldData=res.data
this.dldialogFormVisible=true
},
//
async clickYue(row,yue){
let nowDate = new Date()
const from = {
department:row.departmentid,
year:nowDate.getFullYear(),
month:yue
}
this.chengjiYue=yue
const res = await summarydetails(from)
this.detailsList=res.data
this.showDetails=true
},
//
async getscoreTable(){
const res = await departmenttranscript()
@ -604,7 +768,6 @@ export default {
},
//
async initialDepartment(){
const departmentFrom={
id:309
}
@ -619,7 +782,6 @@ export default {
}
const res = await getgroupdepartmap(idFrom)
this.companyList=res.data
},
//
async selectGroup(val){
@ -682,6 +844,26 @@ export default {
console.log("hangArr")
console.log(this.spanArr)
},
//
getdetailsSpanArr(data) {
console.log("部门合并")
// data
for (var i = 0; i < data.length; i++) {
if (i === 0) {
this.detailsspanArr.push(1);
this.detailspos = 0;
} else {
//
if (data[i].departmentid === data[i - 1].departmentid) {
this.detailsspanArr[this.detailspos] += 1;
this.detailsspanArr.push(0);
} else {
this.detailsspanArr.push(1);
this.detailspos = i;
}
}
}
},
//
getSpanArr1(data) {
// data
@ -701,6 +883,29 @@ export default {
}
}
},
//
getdetailsSpanArr1(data) {
console.log("纬度合并")
console.log(data)
// data
for (var i = 0; i < data.length; i++) {
if (i === 0) {
this.detailsspanArr1.push(1);
this.detailspos1 = 0;
} else {
//
if (data[i].dimensionname === data[i - 1].dimensionname) {
console.log("相同")
console.log(i)
this.detailsspanArr1[this.detailspos1] += 1;
this.detailsspanArr1.push(0);
} else {
this.detailsspanArr1.push(1);
this.detailspos1 = i;
}
}
}
},
//
getSpanArr2(data) {
// data
@ -732,7 +937,6 @@ export default {
// }
// },
// spanMethod({ row, column, rowIndex, columnIndex }) {
// if (columnIndex === 0) {
// const _row = this.lieArr[rowIndex];
// const _col = _row > 0 ? 1 : 0;
@ -743,6 +947,36 @@ export default {
// }
// },
//
// detailsSpanMethod({ row, column, rowIndex, columnIndex }) {
// if (columnIndex === 0) {
// const _row = this.spanArr[rowIndex];
// const _col = _row > 0 ? 1 : 0;
// return {
// // [0,0] [2,1]
// rowspan: _row,
// colspan: _col
// };
// }
// if (columnIndex === 1||columnIndex === 2) {
// const _row = this.spanArr1[rowIndex];
// const _col = _row > 0 ? 1 : 0;
// return {
// // [0,0] [2,1]
// rowspan: _row,
// colspan: _col
// };
// }
// if (columnIndex === 3) {
// const _row = this.spanArr2[rowIndex];
// const _col = _row > 0 ? 1 : 0;
// return {
// // [0,0] [2,1]
// rowspan: _row,
// colspan: _col
// };
// }
// },
//
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
@ -781,6 +1015,45 @@ export default {
// }
// }
},
//
detailsSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.detailsspanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
// [0,0] [2,1]
rowspan: _row,
colspan: _col
};
}
if (columnIndex === 1||columnIndex === 2) {
const _row = this.detailsspanArr1[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
// [0,0] [2,1]
rowspan: _row,
colspan: _col
};
}
// if (columnIndex === 3||columnIndex === 4||columnIndex === 5||columnIndex === 6||columnIndex === 7||columnIndex === 8||columnIndex === 9) {
// const _row = this.detailsspanArr2[rowIndex];
// const _col = _row > 0 ? 1 : 0;
// return {
// // [0,0] [2,1]
// rowspan: _row,
// colspan: _col
// };
// }
// if (columnIndex === 10||columnIndex === 11||columnIndex === 12||columnIndex === 13) {
// const _col = this.lieArr[rowIndex];
// const _row = _col > 0 ? 1 : 0;
// return {
// rowspan: _row,
// colspan: _col
// }
// }
},
//
// onSubmit(){
@ -972,13 +1245,13 @@ export default {
legend: {
data: [
"恒信高科 用电单耗达成率总值",
"恒信高科 用电单耗达成率平均值",
"恒信高科生产部 用电单耗达成率总值",
"恒信高科生产部 用电单耗达成率平均值",
"恒信高科 蒸汽单耗达成率总值",
"恒信高科 蒸汽单耗达成率平均值",
"恒信高科生产部 蒸汽单耗达成率总值",
"恒信高科生产部 蒸汽单耗达成率平均值"
"恒信高科 用电单耗达成率平均值",
"恒信高科生产部 用电单耗达成率总值",
"恒信高科生产部 用电单耗达成率平均值",
"恒信高科 蒸汽单耗达成率总值",
"恒信高科 蒸汽单耗达成率平均值",
"恒信高科生产部 蒸汽单耗达成率总值",
"恒信高科生产部 蒸汽单耗达成率平均值"
]
},
series: [

655
src/views/honor/index.vue

@ -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,itemthis.digui(item);
this.digui(items); //
//
// console.log(items, '')
// children
})
} else {
item.govlist=item.child
//
}
})
console.log(this.grouplistBackup)
},
//
digui (item) {
//
if (item.govlist != null) {
// valuelabel,
item.govlist.forEach(ff => {
// children
this.digui(ff)
})
} else {
// children西
// valuelabel,
// --------------------------线---------------------------------
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 //123office45
}
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 //123office45
}
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>

333
src/views/honor/type.vue

@ -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>

479
src/views/hr/personnel.vue

@ -17,9 +17,9 @@
clearable>
</el-input>
</el-form-item>
<el-form-item label="行政组织">
<!-- <el-form-item label="行政组织">
<el-cascader filterable clearable v-model="searchInfo.adminorg" :options="searchDepartmentList" :show-all-levels="false" :props="props1"></el-cascader>
</el-form-item>
</el-form-item> -->
<!-- <el-form-item label="考核维度状态">
<el-select v-model="searchInfo.state" clearable placeholder="请选择状态">
@ -47,18 +47,25 @@
<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="number"/>
<el-table-column align="left" label="姓名" prop="name"/>
<el-container>
<!-- 左侧内容 -->
<el-aside width="300px">
<el-tree :data="GovthreeList2" :props="defaultProps1" @node-click="handleNodeClick"></el-tree>
</el-aside>
<!-- 右侧内容 -->
<el-main style="padding:10px">
<el-table :data="tableData">
<el-table-column width="100" align="left" label="工号" prop="number"/>
<el-table-column width="100" align="left" label="姓名" prop="name"/>
<el-table-column align="left" label="公司" prop="companyname"/>
<el-table-column align="left" label="部门" prop="deparmentname"/>
<el-table-column align="left" label="职位" prop="positionname"/>
<el-table-column align="left" label="头像" prop="">
<el-table-column align="left" label="部门" prop="maindeparmentname"/>
<el-table-column width="200" align="left" label="职位" prop="positionname"/>
<!-- <el-table-column align="left" label="头像" prop="">
<template #default="scope">
<el-avatar shape="square" size="large" :src="scope.row.icon"></el-avatar>
</template>
</el-table-column>
<el-table-column align="left" fixed="right" label="操作" width="200">
</el-table-column> -->
<el-table-column align="left" fixed="right" label="操作">
<template #default="scope">
<el-button
icon="el-icon-view"
@ -103,6 +110,9 @@
:total="total">
</el-pagination>
</div>
</el-main>
</el-container>
</div>
<!-- 新增弹框 -->
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="80%">
@ -121,14 +131,20 @@
<el-descriptions-item>
<template slot="label">用工关系</template>
<el-select v-model="form.emptype" clearable placeholder="请选择">
<el-option label="实习生" :value=1></el-option>
<el-option label="待分配" :value=2></el-option>
<el-option label="试用员工" :value=3></el-option>
<el-option label="正式员工" :value=4></el-option>
<el-option label="停薪留职" :value=5></el-option>
<el-option label="退休" :value=6></el-option>
<el-option label="辞退" :value=7></el-option>
<el-option label="离职" :value=8></el-option>
<el-option label="临时工" :value=1></el-option>
<el-option label="编外人员" :value=2></el-option>
<el-option label="实习&实习生" :value=3></el-option>
<el-option label="试用员工" :value=4></el-option>
<el-option label="待分配" :value=5></el-option>
<el-option label="待岗" :value=6></el-option>
<el-option label="临时调入" :value=7></el-option>
<el-option label="正式员工" :value=8></el-option>
<el-option label="长期病假" :value=9></el-option>
<el-option label="停薪留职" :value=10></el-option>
<el-option label="退休" :value=11></el-option>
<el-option label="辞职" :value=12></el-option>
<el-option label="辞退" :value=13></el-option>
<el-option label="离职" :value=14></el-option>
</el-select>
<!-- <div v-if="staffInfo.emptype==1">实习生</div>
@ -743,14 +759,20 @@
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">用工关系</template>
<div v-if="staffInfo.emptype==1">实习生</div>
<div v-if="staffInfo.emptype==2">待分配</div>
<div v-if="staffInfo.emptype==3">试用员工</div>
<div v-if="staffInfo.emptype==4">正式员工</div>
<div v-if="staffInfo.emptype==5">停薪留职</div>
<div v-if="staffInfo.emptype==6">退休</div>
<div v-if="staffInfo.emptype==7">辞退</div>
<div v-if="staffInfo.emptype==8">离职</div>
<div v-show="staffInfo.emptype==1">临时工</div>
<div v-show="staffInfo.emptype==2">编外人员</div>
<div v-show="staffInfo.emptype==3">实习&实习生</div>
<div v-show="staffInfo.emptype==4">试用员工</div>
<div v-show="staffInfo.emptype==5">待分配</div>
<div v-show="staffInfo.emptype==6">待岗</div>
<div v-show="staffInfo.emptype==7">临时调入</div>
<div v-show="staffInfo.emptype==8">正式员工</div>
<div v-show="staffInfo.emptype==9">长期病假</div>
<div v-show="staffInfo.emptype==10">停薪留职</div>
<div v-show="staffInfo.emptype==11">退休</div>
<div v-show="staffInfo.emptype==12">辞职</div>
<div v-show="staffInfo.emptype==13">辞退</div>
<div v-show="staffInfo.emptype==14">离职</div>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">照片</template>
@ -927,188 +949,188 @@
<div v-if="staffInfo.isdoubleworker==2"></div>
</el-descriptions-item>
</el-descriptions>
<!-- 双职工 -->
<el-table :data="staffInfo.doubleworkerlist" border style="width: 100%">
<el-table-column header-align="center" label="双职工">
<el-table-column prop="number" label="工号">
</el-table-column>
<el-table-column prop="name" label="姓名">
</el-table-column>
<el-table-column prop="company" label="公司">
</el-table-column>
<el-table-column prop="department" label="部门">
</el-table-column>
<el-table-column prop="position" label="岗位">
</el-table-column>
<el-table-column prop="mobilephone" label="联系电话">
</el-table-column>
</el-table-column>
</el-table>
<!-- 紧急联系人 -->
<el-table :data="staffInfo.emergencycontact" border style="width: 100%">
<el-table-column header-align="center" label="紧急联系人">
<el-table-column prop="name" label="姓名">
</el-table-column>
<el-table-column prop="relationship" label="与本人关系">
</el-table-column>
<el-table-column prop="mobilephone" label="联系电话">
</el-table-column>
<!-- <el-table-column
label="操作">
<template #default="scope">
<el-button
v-if="scope.$index!=0"
plain
icon="el-icon-delete"
size="mini"
type="danger"
@click="deleteRulesList(scope)"
>删除</el-button>
</template>
</el-table-column> -->
</el-table-column>
</el-table>
<!-- 家庭成员 -->
<el-table :data="staffInfo.memberoffamily" border style="width: 100%">
<el-table-column header-align="center" label="家庭成员">
<el-table-column prop="relationship" label="亲属关系">
</el-table-column>
<el-table-column prop="name" label="姓名">
</el-table-column>
<el-table-column prop="company" label="公司">
</el-table-column>
<el-table-column prop="department" label="部门">
</el-table-column>
<el-table-column prop="position" label="岗位">
</el-table-column>
<el-table-column prop="mobilephone" label="联系电话">
</el-table-column>
<el-table-column prop="politicaloutlook" label="政治面貌">
<template #default="scope">
<div v-if="scope.row.politicaloutlook==1">群众</div>
<div v-if="scope.row.politicaloutlook==2">无党派</div>
<div v-if="scope.row.politicaloutlook==3">台盟会</div>
<div v-if="scope.row.politicaloutlook==4">九三社</div>
<div v-if="scope.row.politicaloutlook==5">致公党员</div>
<div v-if="scope.row.politicaloutlook==6">农工党员</div>
<div v-if="scope.row.politicaloutlook==7">民进会员</div>
<div v-if="scope.row.politicaloutlook==8">民建会员</div>
<div v-if="scope.row.politicaloutlook==9">民盟盟员</div>
<div v-if="scope.row.politicaloutlook==10">民革会员</div>
<div v-if="scope.row.politicaloutlook==11">共青团员</div>
<div v-if="scope.row.politicaloutlook==12">预备党员</div>
<div v-if="scope.row.politicaloutlook==13">中共党员</div>
</template>
</el-table-column>
</el-table-column>
</el-table>
<!-- 教育经历 -->
<el-table :data="staffInfo.educationalexperience" border style="width: 100%">
<el-table-column header-align="center" label="教育经历">
<el-table-column prop="graduationschool" label="毕业院校">
</el-table-column>
<el-table-column prop="subject" label="专业">
</el-table-column>
<el-table-column prop="company" label="学历">
<template #default="scope">
<div v-if="scope.row.education==1">初中以下</div>
<div v-if="scope.row.education==2">中专</div>
<div v-if="scope.row.education==3">高中</div>
<div v-if="scope.row.education==4">中技</div>
<div v-if="scope.row.education==5">高技</div>
<div v-if="scope.row.education==6">函授专科</div>
<div v-if="scope.row.education==7">大学专科</div>
<div v-if="scope.row.education==8">函授本科</div>
<div v-if="scope.row.education==9">大学本科</div>
<div v-if="scope.row.education==10">硕士研究生</div>
<div v-if="scope.row.education==11">博士研究生</div>
<div v-if="scope.row.education==12">专家教授</div>
</template>
</el-table-column>
<el-table-column prop="admissiontime" label="入学时间">
</el-table-column>
<el-table-column prop="graduationtime" label="毕业时间">
</el-table-column>
<el-table-column prop="academicdegree" label="学位">
<!-- <template #default="scope">
<div v-if="scope.row.academicdegree==0"></div>
<div v-if="scope.row.academicdegree==1">学士</div>
<div v-if="scope.row.academicdegree==2">硕士</div>
<div v-if="scope.row.academicdegree==3">博士</div>
</template> -->
</el-table-column>
<el-table-column prop="level" label="学历类型">
<!-- <template #default="scope">
<div v-if="scope.row.level==1">普通</div>
<div v-if="scope.row.level==2">第一学历</div>
<div v-if="scope.row.level==3">最高学历</div>
</template> -->
</el-table-column>
</el-table-column>
</el-table>
<!-- 工作履历 -->
<el-table :data="staffInfo.workhistorylist" border style="width: 100%">
<el-table-column header-align="center" label="工作履历">
<el-table-column prop="company" label="公司">
</el-table-column>
<el-table-column prop="department" label="部门">
</el-table-column>
<el-table-column prop="entrytime" label="入职时间">
</el-table-column>
<el-table-column prop="leavedate" label="离职日期">
</el-table-column>
<el-table-column prop="witness" label="证明人">
</el-table-column>
<el-table-column prop="witnesstel" label="证明人电话">
</el-table-column>
<el-table-column prop="remarks" label="备注">
</el-table-column>
</el-table-column>
</el-table>
<!-- 集团内部工作履历 -->
<el-table :data="staffInfo.groupworkhistorylist" border style="width: 100%">
<el-table-column header-align="center" label="集团内部工作履历">
<el-table-column prop="group" label="集团">
</el-table-column>
<el-table-column prop="company" label="公司">
</el-table-column>
<el-table-column prop="department" label="部门">
</el-table-column>
<el-table-column prop="workshopsection" label="岗位">
</el-table-column>
<el-table-column prop="position" label="职位">
</el-table-column>
<el-table-column prop="position" label="职位">
</el-table-column>
<el-table-column prop="starttime" label="开始日期">
</el-table-column>
<el-table-column prop="endtime" label="结束日期">
</el-table-column>
<el-table-column prop="changetype" label="变动类型">
<template #default="scope">
<div v-if="scope.row.changetype==1">预入职</div>
<div v-if="scope.row.changetype==2">雇佣入职</div>
<div v-if="scope.row.changetype==3">转正</div>
<div v-if="scope.row.changetype==4">晋升</div>
<div v-if="scope.row.changetype==5">降级</div>
<div v-if="scope.row.changetype==6">职等调整</div>
<div v-if="scope.row.changetype==7">调动调入</div>
<div v-if="scope.row.changetype==8">跨公司调动调入</div>
<div v-if="scope.row.changetype==9">借调</div>
<div v-if="scope.row.changetype==10">平调</div>
<div v-if="scope.row.changetype==11"></div>
<div v-if="scope.row.changetype==12">预离职</div>
<div v-if="scope.row.changetype==13">离职</div>
<div v-if="scope.row.changetype==14">退休</div>
<div v-if="scope.row.changetype==15">返聘</div>
<div v-if="scope.row.changetype==16">员工初始化</div>
</template>
</el-table-column>
</el-table-column>
</el-table>
<el-tabs stretch background-color="#545c64">
<el-tab-pane label="双职工">
<!-- 双职工 -->
<el-table :data="staffInfo.doubleworkerlist" border style="width: 100%">
<el-table-column header-align="center" label="双职工">
<el-table-column prop="number" label="工号">
</el-table-column>
<el-table-column prop="name" label="姓名">
</el-table-column>
<el-table-column prop="company" label="公司">
</el-table-column>
<el-table-column prop="department" label="部门">
</el-table-column>
<el-table-column prop="position" label="岗位">
</el-table-column>
<el-table-column prop="mobilephone" label="联系电话">
</el-table-column>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="紧急联系人" style="padding:20px">
<!-- 紧急联系人 -->
<el-table :data="staffInfo.emergencycontact" border style="width: 100%">
<el-table-column header-align="center" label="紧急联系人">
<el-table-column prop="name" label="姓名">
</el-table-column>
<el-table-column prop="relationship" label="与本人关系">
</el-table-column>
<el-table-column prop="mobilephone" label="联系电话">
</el-table-column>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="家庭成员" style="padding:20px">
<!-- 家庭成员 -->
<el-table :data="staffInfo.memberoffamily" border style="width: 100%">
<el-table-column header-align="center" label="家庭成员">
<el-table-column prop="relationship" label="亲属关系">
</el-table-column>
<el-table-column prop="name" label="姓名">
</el-table-column>
<el-table-column prop="company" label="公司">
</el-table-column>
<el-table-column prop="department" label="部门">
</el-table-column>
<el-table-column prop="position" label="岗位">
</el-table-column>
<el-table-column prop="mobilephone" label="联系电话">
</el-table-column>
<el-table-column prop="politicaloutlook" label="政治面貌">
<template #default="scope">
<div v-if="scope.row.politicaloutlook==1">群众</div>
<div v-if="scope.row.politicaloutlook==2">无党派</div>
<div v-if="scope.row.politicaloutlook==3">台盟会员</div>
<div v-if="scope.row.politicaloutlook==4">九三社员</div>
<div v-if="scope.row.politicaloutlook==5">致公党员</div>
<div v-if="scope.row.politicaloutlook==6">农工党员</div>
<div v-if="scope.row.politicaloutlook==7">民进会员</div>
<div v-if="scope.row.politicaloutlook==8">民建会员</div>
<div v-if="scope.row.politicaloutlook==9">民盟盟员</div>
<div v-if="scope.row.politicaloutlook==10">民革会员</div>
<div v-if="scope.row.politicaloutlook==11">共青团</div>
<div v-if="scope.row.politicaloutlook==12">预备党</div>
<div v-if="scope.row.politicaloutlook==13">中共党员</div>
</template>
</el-table-column>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="教育经历" style="padding:20px">
<!-- 教育经历 -->
<el-table :data="staffInfo.educationalexperience" border style="width: 100%">
<el-table-column header-align="center" label="教育经历">
<el-table-column prop="graduationschool" label="毕业院校">
</el-table-column>
<el-table-column prop="subject" label="专业">
</el-table-column>
<el-table-column prop="company" label="学历">
<template #default="scope">
<div v-if="scope.row.education==1">初中以下</div>
<div v-if="scope.row.education==2">中专</div>
<div v-if="scope.row.education==3">高中</div>
<div v-if="scope.row.education==4">中技</div>
<div v-if="scope.row.education==5">高技</div>
<div v-if="scope.row.education==6">函授专科</div>
<div v-if="scope.row.education==7">大学专科</div>
<div v-if="scope.row.education==8">函授本科</div>
<div v-if="scope.row.education==9">大学本科</div>
<div v-if="scope.row.education==10">硕士研究生</div>
<div v-if="scope.row.education==11">博士研究生</div>
<div v-if="scope.row.education==12">专家教授</div>
</template>
</el-table-column>
<el-table-column prop="admissiontime" label="入学时间">
</el-table-column>
<el-table-column prop="graduationtime" label="毕业时间">
</el-table-column>
<el-table-column prop="academicdegree" label="学位">
<!-- <template #default="scope">
<div v-if="scope.row.academicdegree==0"></div>
<div v-if="scope.row.academicdegree==1">学士</div>
<div v-if="scope.row.academicdegree==2">硕士</div>
<div v-if="scope.row.academicdegree==3">博士</div>
</template> -->
</el-table-column>
<el-table-column prop="level" label="学历类型">
<!-- <template #default="scope">
<div v-if="scope.row.level==1">普通</div>
<div v-if="scope.row.level==2">第一学历</div>
<div v-if="scope.row.level==3">最高学历</div>
</template> -->
</el-table-column>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="工作履历" style="padding:20px">
<!-- 工作履历 -->
<el-table :data="staffInfo.workhistorylist" border style="width: 100%">
<el-table-column header-align="center" label="工作履历">
<el-table-column prop="company" label="公司">
</el-table-column>
<el-table-column prop="department" label="部门">
</el-table-column>
<el-table-column prop="entrytime" label="入职时间">
</el-table-column>
<el-table-column prop="leavedate" label="离职日期">
</el-table-column>
<el-table-column prop="witness" label="证明人">
</el-table-column>
<el-table-column prop="witnesstel" label="证明人电话">
</el-table-column>
<el-table-column prop="remarks" label="备注">
</el-table-column>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="集团内部工作履历" style="padding:20px">
<!-- 集团内部工作履历 -->
<el-table :data="staffInfo.groupworkhistorylist" border style="width: 100%">
<el-table-column header-align="center" label="集团内部工作履历">
<el-table-column prop="group" label="集团">
</el-table-column>
<el-table-column prop="company" label="公司">
</el-table-column>
<el-table-column prop="department" label="部门">
</el-table-column>
<el-table-column prop="workshopsection" label="岗位">
</el-table-column>
<el-table-column prop="position" label="职位">
</el-table-column>
<el-table-column prop="position" label="职位">
</el-table-column>
<el-table-column prop="starttime" label="开始日期">
</el-table-column>
<el-table-column prop="endtime" label="结束日期">
</el-table-column>
<el-table-column prop="changetype" label="变动类型">
<template #default="scope">
<div v-if="scope.row.changetype==1">预入职</div>
<div v-if="scope.row.changetype==2">雇佣入职</div>
<div v-if="scope.row.changetype==3">转正</div>
<div v-if="scope.row.changetype==4">晋升</div>
<div v-if="scope.row.changetype==5">降级</div>
<div v-if="scope.row.changetype==6">职等调整</div>
<div v-if="scope.row.changetype==7">调动调入</div>
<div v-if="scope.row.changetype==8">跨公司调动调入</div>
<div v-if="scope.row.changetype==9">借调</div>
<div v-if="scope.row.changetype==10">平调</div>
<div v-if="scope.row.changetype==11">兼职</div>
<div v-if="scope.row.changetype==12">预离职</div>
<div v-if="scope.row.changetype==13"></div>
<div v-if="scope.row.changetype==14">退休</div>
<div v-if="scope.row.changetype==15">返聘</div>
<div v-if="scope.row.changetype==16">员工初始化</div>
</template>
</el-table-column>
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</el-dialog>
<!-- 编辑基础信息 -->
<el-dialog :visible.sync="editBaseDialogFormVisible" title="人员档案" width="75%">
@ -1126,14 +1148,20 @@
<el-descriptions-item>
<template slot="label">用工关系</template>
<el-select v-model="baseInfo.emptype" clearable placeholder="请选择">
<el-option label="实习生" :value=1></el-option>
<el-option label="待分配" :value=2></el-option>
<el-option label="试用员工" :value=3></el-option>
<el-option label="正式员工" :value=4></el-option>
<el-option label="停薪留职" :value=5></el-option>
<el-option label="退休" :value=6></el-option>
<el-option label="辞退" :value=7></el-option>
<el-option label="离职" :value=8></el-option>
<el-option label="临时工" :value=1></el-option>
<el-option label="编外人员" :value=2></el-option>
<el-option label="实习&实习生" :value=3></el-option>
<el-option label="试用员工" :value=4></el-option>
<el-option label="待分配" :value=5></el-option>
<el-option label="待岗" :value=6></el-option>
<el-option label="临时调入" :value=7></el-option>
<el-option label="正式员工" :value=8></el-option>
<el-option label="长期病假" :value=9></el-option>
<el-option label="停薪留职" :value=10></el-option>
<el-option label="退休" :value=11></el-option>
<el-option label="辞职" :value=12></el-option>
<el-option label="辞退" :value=13></el-option>
<el-option label="离职" :value=14></el-option>
</el-select>
<!-- <div v-if="staffInfo.emptype==1">实习生</div>
@ -1696,6 +1724,7 @@
</template>
<script>
import { dutyclasslist,statedutyclass,eitedutyclassinfo,getdutyclassinfo,adddutyclass } from '@/api/duty/dimension'
import { stafflist,archiveslist,archivescont,govthree,positionlist,dutieslist } from '@/api/personnel/post'
import {
@ -1721,6 +1750,11 @@ export default {
},
data() {
return {
GovthreeList2:[],
defaultProps1: {
children: 'child',
label: 'name'
},
//
emptypeList:[
{
@ -2105,8 +2139,21 @@ export default {
this.getPositionlist()
this.getDutieslist()
this.getGroup()
this.getGovthree2()
},
methods: {
//
handleNodeClick(val){
this.searchInfo.adminorg=val.id
this.searchInfo.adminorg=this.searchInfo.adminorg
this.getDataList()
console.log(val)
},
//
async getGovthree2(){
const res = await govthree()
this.GovthreeList2 = res.data[0].child
},
//
async getGroup(){
const res = await departmentlist()

323
src/views/hr/team.vue

@ -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>

61
src/views/lunbo/index.vue

@ -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.onresizemounted-->
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>

287
src/views/permission/permissionSetting.vue

@ -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>

159
src/views/personnel/post/index.vue

@ -23,71 +23,82 @@
</el-form>
</div>
<div class="gva-table-box">
<div class="gva-btn-list">
<div class="gva-btn-list" style="width: 100%">
<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="编号" min-width="100" prop="number" />
<el-table-column align="left" label="职务名称" prop="name" />
<el-table-column align="left" label="归属行政组织名称">
<template #default="scope">
{{scope.row.departmentname}} / {{scope.row.aoname}}
</template>
</el-table-column>
<el-table-column align="left" label="归属职务类别" prop="jobname" />
<el-table-column align="left" label="权限设置" prop="jobname">
<template #default="scope">
<el-button icon="el-icon-s-tools" @click="setting(scope.row)"></el-button>
</template>
</el-table-column>
<el-table-column align="left" label="状态" min-width="140" prop="authorityName">
<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="300">
<template #default="scope">
<!-- <el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="addSonMenu(scope.row)"
>添加子菜单</el-button> -->
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="editMenu(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="deleteMenu(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>
<el-container>
<!-- 左侧内容 -->
<el-aside width="300px">
<el-tree :data="GovthreeList2" :props="defaultProps1" @node-click="handleNodeClick"></el-tree>
</el-aside>
<!-- 右侧内容 -->
<el-main style="padding:10px">
<el-table :data="tableData">
<el-table-column align="left" label="编号" min-width="100" prop="number" />
<el-table-column align="left" label="职位(岗位)名称" prop="name" />
<el-table-column align="left" label="归属行政组织名称">
<template #default="scope">
{{scope.row.departmentname}} / {{scope.row.aoname}}
</template>
</el-table-column>
<el-table-column align="left" label="归属职务类别" prop="jobname" />
<el-table-column align="left" label="权限清单" prop="jobname">
<template #default="scope">
<el-button icon="el-icon-s-tools" @click="setting(scope.row)"></el-button>
</template>
</el-table-column>
<el-table-column align="left" label="状态" min-width="140" prop="authorityName">
<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="300">
<template #default="scope">
<!-- <el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="addSonMenu(scope.row)"
>添加子菜单</el-button> -->
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="editMenu(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="deleteMenu(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>
</el-main>
</el-container>
</div>
<!-- 新增弹框 -->
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" :close-on-click-modal="false" title="新增" width="20%">
@ -250,6 +261,11 @@ export default {
name: 'Dashboard',
data() {
return {
defaultProps1: {
children: 'child',
label: 'name'
},
GovthreeList2:[],
//
checkList:[],
//
@ -340,9 +356,17 @@ export default {
this.getDataList()
this.getJobTitleList()
this.getGovthree()
this.getGovthree2()
this.getBuMenthree()
},
methods: {
//
handleNodeClick(val){
this.searchInfo.organization=val.id
this.searchInfo.organization=this.searchInfo.organization.toString()
this.getDataList()
console.log(val)
},
//
async settingFrom(){
const from = {
@ -419,11 +443,18 @@ export default {
//
async getGovthree(){
const searchData = {
}
const res = await govthree()
this.GovthreeList = res.data
},
//
async getGovthree2(){
const res = await govthree()
this.GovthreeList2 = res.data[0].child
console.log("this.GovthreeList2")
console.log(res.data[0].child)
},
//
async getBuMenthree(){
const searchData = {

Loading…
Cancel
Save