Browse Source

新增岗位绩效

main
renguanyu111 3 years ago
parent
commit
50448af5dc
  1. 2
      .env.production
  2. 5
      .env.staging
  3. 50
      src/api/duty/gwDingXing.js
  4. 91
      src/api/duty/oldGwDingXing.js
  5. 188
      src/api/duty/projectNew.js
  6. 16
      src/api/honer.js
  7. 70
      src/router/index.js
  8. 89
      src/views/assessmentProgram/gwQualitativeIndicators.vue
  9. 415
      src/views/assessmentProgram/qualitativeIndicators.vue
  10. 463
      src/views/assessmentProgram/qualitativeIndicatorsBase.vue
  11. 899
      src/views/basicInfo/gwProject copy.vue
  12. 274
      src/views/basicInfo/gwProject.vue
  13. 61
      src/views/basicInfo/project.vue
  14. 6
      src/views/basicInfo/projectBase.vue
  15. 4
      src/views/echarts/table.vue
  16. 89
      src/views/honor/index.vue
  17. 4
      src/views/hr/personnel.vue

2
.env.production

@ -4,4 +4,4 @@ ENV = 'production'
# base api
VUE_APP_BASE_API = 'http://ginadmin.hxgk.group/api'
VUE_APP_BASE_API1 = 'http://ginadmin.hxgk.group/hrapi'
VUE_APP_BASE_API2 = 'http://ginadmin.hxgk.group/fileapi'

5
.env.staging

@ -4,6 +4,7 @@ NODE_ENV = production
ENV = 'staging'
# base api
VUE_APP_BASE_API = '172.0.0.1:8888/api'
VUE_APP_BASE_API1 = '172.0.0.1:8888/hrapi'
VUE_APP_BASE_API = 'http://kpi.hxgk.net/api'
VUE_APP_BASE_API1 = 'http://kpi.hxgk.net/hrapi'
VUE_APP_BASE_API2 = 'http://kpi.hxgk.net/fileapi'

50
src/api/duty/gwDingXing.js

@ -0,0 +1,50 @@
import request from '@/utils/requestFile'
// 获取岗位方案内容列表
export function get_post_scheme(data) {
return request({
url: '/postpc/get_post_scheme',
method: 'post',
data
})
}
// 获取复制岗位考核方案
export function get_copy_sheme_infor(data) {
return request({
url: '/postpc/get_copy_sheme_infor',
method: 'post',
data
})
}
// 引用指标部门指标
export function quote_department_target(data) {
return request({
url: '/postpc/quote_department_target',
method: 'post',
data
})
}
// 提交岗位考核方案
export function submit_post_scheme(data) {
return request({
url: '/postpc/submit_post_scheme',
method: 'post',
data
})
}
// 获取岗位相关指标
export function getpostabouttarget(data) {
return request({
url: '/postpc/getpostabouttarget',
method: 'post',
data
})
}
// 添加岗位指标
export function add_post_target(data) {
return request({
url: '/postpc/add_post_target',
method: 'post',
data
})
}

91
src/api/duty/oldGwDingXing.js

@ -0,0 +1,91 @@
// 定性考核api
import request from '@/utils/request'
//岗位定性考核列表
export const posttargetsunlist = (data) => {
return request({
url: '/postkpi/posttargetsunlist',
method: 'post',
data: data
})
}
//添加岗位细则
export const addposttargetcont = (data) => {
return request({
url: '/postkpi/addposttargetcont',
method: 'post',
data: data
})
}
//修改定性指标关联岗位
export const editposttargetaual = (data) => {
return request({
url: '/postkpi/editposttargetaual',
method: 'post',
data: data
})
}
//获取指标关联的岗位
export const targetorglist = (data) => {
return request({
url: '/postkpi/targetorglist',
method: 'post',
data: data
})
}
//获取岗位考核子栏目内容
export const getsuntargetinfo = (data) => {
return request({
url: '/postkpi/getsuntargetinfo',
method: 'post',
data: data
})
}
//编辑定性考核子栏目
export const eidtsuntargetpost = (data) => {
return request({
url: '/postkpi/eidtsuntargetpost',
method: 'post',
data: data
})
}
//删除定性考核指标子栏目
export const delsuntarget = (data) => {
return request({
url: '/postkpi/delsuntarget',
method: 'post',
data: data
})
}
//添加单条定性指标细则
export const addpostdetacont = (data) => {
return request({
url: '/postkpi/addpostdetacont',
method: 'post',
data: data
})
}
//获取指标细则内容
export const getdetailscont = (data) => {
return request({
url: '/postkpi/getdetailscont',
method: 'post',
data: data
})
}
//修改定性考核指标细则
export const editdeatilscont = (data) => {
return request({
url: '/postkpi/editdeatilscont',
method: 'post',
data: data
})
}
//删除定性考核指标细则
export const eidtposttardetailsstrte = (data) => {
return request({
url: '/postkpi/eidtposttardetailsstrte',
method: 'post',
data: data
})
}

188
src/api/duty/projectNew.js

@ -0,0 +1,188 @@
import request from '@/utils/requestFile'
// 部门指标列表
export function departmenttargetlist(data) {
return request({
url: '/department_pc/departmenttargetlist',
method: 'post',
data
})
}
// 获取部门定性考核部门关联列表
export function getdepartabouttarget(data) {
return request({
url: '/department_pc/getdepartabouttarget',
method: 'post',
data
})
}
// 获取部门指标相关执行人
export function gettargetreport(data) {
return request({
url: '/department_pc/gettargetreport',
method: 'post',
data
})
}
// 修改子栏目标题名称级考核关联部门及提报人
export function editsontargetdepartmentreport(data) {
return request({
url: '/department_pc/editsontargetdepartmentreport',
method: 'post',
data
})
}
// 根据指标和部门获取相关岗位
export function basistargetdearpetmentgetpost(data) {
return request({
url: '/department_pc/basistargetdearpetmentgetpost',
method: 'post',
data
})
}
// 根据指标和部门获取相关岗位
export function delsontarget(data) {
return request({
url: '/department_pc/delsontarget',
method: 'post',
data
})
}
// 删除指标
export function deltarget(data) {
return request({
url: '/department_pc/deltarget',
method: 'post',
data
})
}
// 实验
export function shiyan(data) {
return request({
url: '/department_pc/shiyan',
method: 'post',
data
})
}
// 获取定性考核指标列表内容
export function getdepartmenttragetcontlist(data) {
return request({
url: '/department_pc/getdepartmenttragetcontlist',
method: 'post',
data
})
}
// 子栏目关联部门岗位
export function depar_son_target_about_post(data) {
return request({
url: '/department_pc/depar_son_target_about_post',
method: 'post',
data
})
}
// 获取单一指标细则内容
export function getonedetailedtarget(data) {
return request({
url: '/department_pc/getonedetailedtarget',
method: 'post',
data
})
}
// 获取部门指标岗位提交人
export function basistaegetdeparmentreport(data) {
return request({
url: '/department_pc/basistaegetdeparmentreport',
method: 'post',
data
})
}
// 根据指标栏目新增指标细则
export function basissontargetadddetailed(data) {
return request({
url: '/department_pc/basissontargetadddetailed',
method: 'post',
data
})
}
// 编辑单一部门指标
export function edit_one_target(data) {
return request({
url: '/department_pc/edit_one_target',
method: 'post',
data
})
}
// 指标细则关联部门岗位
export function depar_detaile_about_post(data) {
return request({
url: '/department_pc/depar_detaile_about_post',
method: 'post',
data
})
}
// 添加部门指标
export function add_department_target(data) {
return request({
url: '/department_pc/add_department_target',
method: 'post',
data
})
}
// 添加定性考核子栏目及细则
export function addsuntargetdetailed(data) {
return request({
url: '/department_pc/addsuntargetdetailed',
method: 'post',
data
})
}
// 获取单一指标详细内容
export function get_one_terget_info(data) {
return request({
url: '/department_pc/get_one_terget_info',
method: 'post',
data
})
}
// 指标关联岗位
export function deparment_target_about_post(data) {
return request({
url: '/department_pc/deparment_target_about_post',
method: 'post',
data
})
}
// 编辑单一指标细则内容
export function edit_one_detailed_target(data) {
return request({
url: '/department_pc/edit_one_detailed_target',
method: 'post',
data
})
}
// 获取子栏目基础信息
export function getsontargetcont(data) {
return request({
url: '/department_pc/getsontargetcont',
method: 'post',
data
})
}
// 删除单一指标细则
export function del_one_detailed_target(data) {
return request({
url: '/department_pc/del_one_detailed_target',
method: 'post',
data
})
}
// 获取岗位指标详情
export function get_post_target(data) {
return request({
url: '/postpc/get_post_target',
method: 'post',
data
})
}

16
src/api/honer.js

@ -63,3 +63,19 @@ export function eidycarrierstate(data) {
data
})
}
// 荣誉查看图片
export function reviewimage(data) {
return request({
url: '/honors/reviewimage',
method: 'post',
data
})
}
// 查询荣誉详情
export function gethonorscont(data) {
return request({
url: '/honors/gethonorscont',
method: 'post',
data
})
}

70
src/router/index.js

@ -230,25 +230,7 @@ export const constantRoutes = [
},
],
},
// 考核方案
{
path: '/assessmentProgram',
component: Layout,
children: [
// 当 /user/:id 匹配成功
// UserHome 将被渲染到 User 的 <router-view> 内部
{
path: 'departmentalAssessment',
component: () => import('@/views/assessmentProgram/departmentalAssessment'),
meta: { title: '定量考核'}
},
{
path: 'qualitativeIndicators',
component: () => import('@/views/assessmentProgram/qualitativeIndicators'),
meta: { title: '定性考核'}
},
],
},
// 基础信息
{
path: '/basicInfo',
@ -349,56 +331,32 @@ export const constantRoutes = [
// }
// ]
// },
// 考核方案
{
path: '/assessmentProgram',
component: Layout,
redirect: '/assessmentProgram/departmentalAssessment',
name: 'Example',
meta: { title: '考核方案', icon: 'el-icon-s-help' },
children: [
// 当 /user/:id 匹配成功
// UserHome 将被渲染到 User 的 <router-view> 内部
{
path: 'departmentalAssessment',
name: 'departmentalAssessment',
component: () => import('@/views/assessmentProgram/departmentalAssessment'),
meta: { title: '部门考核', icon: 'table' }
meta: { title: '部门考核'}
},
// {
// path: 'jobAssessment',
// name: 'jobAssessment',
// component: () => import('@/views/assessmentProgram/jobAssessment'),
// meta: { title: '岗位考核', icon: 'tree' }
// },
{
path: 'qualitativeIndicators',
name: 'qualitativeIndicators',
component: () => import('@/views/assessmentProgram/qualitativeIndicators'),
meta: { title: '定性考核', icon: 'tree' }
path: 'gwQualitativeIndicators',
component: () => import('@/views/assessmentProgram/qualitativeIndicatorsBase'),
meta: { title: '定性考核'}
},
{
path: 'gwQualitativeIndicators',
name: 'gwQualitativeIndicators',
component: () => import('@/views/assessmentProgram/gwQualitativeIndicators'),
meta: { title: '定性考核', icon: 'tree' }
path: 'qualitativeIndicators',
component: () => import('@/views/assessmentProgram/qualitativeIndicators'),
meta: { title: '定性考核'}
},
// {
// path: 'quantitativeIndicators',
// name: 'quantitativeIndicators',
// component: () => import('@/views/assessmentProgram/quantitativeIndicators'),
// meta: { title: '定量考核', icon: 'tree' }
// },
// {
// path: 'subSection',
// name: 'subSection',
// component: () => import('@/views/assessmentProgram/subSection'),
// meta: { title: '定性考核子栏目', icon: 'tree' }
// },{
// path: 'rules',
// name: 'rules',
// component: () => import('@/views/assessmentProgram/rules'),
// meta: { title: '考核细则', icon: 'tree' }
// }
]
],
},
{
path: '/basicInfo',
component: Layout,

89
src/views/assessmentProgram/gwQualitativeIndicators.vue

@ -90,7 +90,6 @@
>删除</el-button>
</template>
</el-table-column>
</el-table> -->
<el-table :data="tableData" border :span-method="targetSpanMethod">
<el-table-column prop="targetname" label="考核指标">
@ -176,6 +175,17 @@
</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 :close-on-click-modal="false" :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="80%">
@ -322,7 +332,6 @@
</el-select>
</template>
</el-table-column>
<el-table-column
label="检查周期"
align="center">
@ -853,7 +862,8 @@
<script>
import { dutyclasslist } from '@/api/duty/dimension'
import { gettargetinfo,posttargetsunlist,editstate } from '@/api/duty/project'
import { gettargetinfo,editstate } from '@/api/duty/project'
import { get_post_target } from '@/api/duty/projectNew'
import { delsuntardimeat,deldutytarget,gettasktarget,
gettasktargetsun,gettasktargetcontary,addqualeval,getqualevallist,departmenttasklist,
delqualevalcont,deldepartmenttasklist,getrationlist,eitequalevalcont,getqualeval,dutydepartmentlist,selectdutylist,
@ -862,6 +872,10 @@ neweitedetailedtarget,newdelsuntarget,newdeldetailedtarget,newdeltarget,getnewei
lookdutytargetinfo,getdutyrelationlist,adddutyrelation,getdepartforduty,eitedepartforduty } from '@/api/duty/duty'
import projectDialog from '@/components/projectDialog/index.vue'
import { dutylist,getdutyinfo,eitedutyinfo,eitedutystate } from '@/api/duty/quantitativeIndicators'
import { editposttargetaual,addposttargetcont,posttargetsunlist,targetorglist,getsuntargetinfo,eidtsuntargetpost,delsuntarget,
addpostdetacont,getdetailscont,editdeatilscont,eidtposttardetailsstrte
} from '@/api/duty/oldGwDingXing'
import{ posttargetlist } from "@/api/duty/project";
import {
grouplist,
departmentlist,
@ -870,6 +884,7 @@ import {
} from '@/api/duty/group'
export default {
name: 'Dashboard',
props:['gwFromList'],
components: {
projectDialog
},
@ -1125,6 +1140,25 @@ export default {
},
watch: {
gwFromList:{
handler(newVal){
console.log("newVal");
console.log(newVal);
const list = []
list.push(this.gwFromList.gwId.toString())
this.searchInfo.postid=list
this.getDataList()
},
deep: true
},
// gwFromList(){
// console.log("gwId")
// console.log(this.gwFromList)
// const list = []
// list.push(this.gwFromList.gwId)
// this.searchInfo.postid=list
// this.getDataList()
// },
tableData() {
this.$nextTick(() => {
this.spanArr=[],
@ -1194,10 +1228,10 @@ export default {
.then(async() => {
const deleFrom={
// id: row.targetsun
id: row.targetsun, //ID
assid: row.target //Id
id: row.targetsun.toString(), //ID
istrue:2
}
const res = await newdelsuntarget(deleFrom)
const res = await delsuntarget(deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
@ -1282,8 +1316,15 @@ export default {
},
//
async selectdutylist(){
const res = await selectdutylist()
this.selectdutyList=res.data
console.log("下拉定性考核")
const from = {
page:1,
pagesize:100000,
type:1
}
const res = await posttargetlist(from)
console.log(res.data)
this.selectdutyList=res.data.list
},
//
async deleteSmall(row){
@ -1296,10 +1337,10 @@ export default {
console.log(row)
const deleFrom={
// outid: row.id
id: row.detailedtarget, //ID
assid: row.dutyassessid //ID
id: row.detailedtarget.toString(), //ID
istrue:2
}
const res = await newdeldetailedtarget(deleFrom)
const res = await eidtposttardetailsstrte(deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
@ -1383,14 +1424,15 @@ export default {
async getzhilanmuList(){
this.methodData={
//type: 1, //12
group: this.rowZhiData.group, //
//departmentid: this.rowZhiData.parentid, //
dimension: this.rowZhiData.dimension, //
targetid: this.rowZhiData.target, //
// group: this.rowZhiData.group, //
// //departmentid: this.rowZhiData.parentid, //
// dimension: this.rowZhiData.dimension, //
// targetid: this.rowZhiData.target, //
id:this.rowZhiData.id.toString()
}
console.log("this.methodData")
console.log(this.methodData)
const res = await lookdutytargetinfo(this.methodData)
const res = await getsuntargetinfo(this.methodData)
if (res.code==0) {
this.methodList=res.data
@ -1854,13 +1896,11 @@ export default {
//
async showEdit(row){
const editFrom={
group: row.group, //
dimension: row.dimension, //
targetid: row.target //
id:row.id
}
const res = await getdepartforduty(editFrom)
const res = await get_post_target(editFrom)
this.bumenEdit = res.data
this.bumenEdit.departmentid=this.bumenEdit.departmentid.map(String)
// this.bumenEdit.departmentid=this.bumenEdit.departmentid.map(String)
this.buMenEditDialog=true;
},
//
@ -2018,8 +2058,11 @@ export default {
//
async getDataList() {
const that = this
const res = await posttargetsunlist()
this.tableData = res.data
const res = await posttargetsunlist(this.searchInfo)
this.tableData = res.data.list
this.total = res.data.total;
this.searchInfo.page = res.data.page;
this.searchInfo.pagesize = res.data.pageSize;
// this.tableData.forEach(function(element, index) {
// that.$set(element,'treeData',{label:element.departmentmap[0].parentname,children:[]}),
// element.departmentmap.forEach(function(item, index) {

415
src/views/assessmentProgram/qualitativeIndicators.vue

@ -92,24 +92,29 @@
</el-table-column>
</el-table> -->
<el-table :data="tableData" border :span-method="targetSpanMethod">
<el-table-column prop="targetname" label="考核指标">
<!-- <el-table :data="tableData" border :span-method="targetSpanMethod"> -->
<el-table :data="tableData" border>
<el-table-column prop="title" label="考核指标">
<template slot-scope="scope">
<el-link type="primary" @click="showMethod(scope.row)">{{scope.row.targetname}}</el-link>
<el-link v-if="scope.row.type==1" type="primary" @click="showMethod(scope.row)">{{scope.row.title}}</el-link>
</template>
</el-table-column>
<el-table-column prop="dimensionname" label="考核维度"/>
<el-table-column prop="dimensiontitle" label="考核维度"/>
<el-table-column align="left" label="部门">
<template #default="scope">
<el-collapse>
<!-- <el-collapse>
<el-collapse-item title="详情" name="1">
<div v-for="(iteam,index) in scope.row.departmentmap">
{{iteam.parentname}}
</div>
</el-collapse-item>
</el-collapse>
</el-collapse> -->
<el-button
icon="el-icon-view"
size="small"
type="text"
@click="showDepartmentList(scope.row)"
>查看</el-button>
</template>
</el-table-column>
<el-table-column prop="cycle" label="周期">
@ -160,6 +165,17 @@
</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 :close-on-click-modal="false" :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="80%">
@ -306,7 +322,6 @@
</el-select>
</template>
</el-table-column>
<el-table-column
label="检查周期"
align="center">
@ -520,11 +535,36 @@
</el-table-column>
</el-table>
</el-dialog>
<!-- 人员弹框 -->
<el-dialog :visible.sync="showDepartabouttar" title="部门/岗位" width="45%">
<el-row>
<el-col :span="8">
<el-tree
:data="departabouttarData"
:props="defaultProps1"
@node-click="handleNodeClick"
></el-tree>
</el-col>
<el-col :span="8">
<el-tree
:data="postlist"
:props="defaultProps1"
@node-click="handlePostClick"
></el-tree>
</el-col>
<el-col :span="8">
<el-tree
:data="postUserlist"
:props="defaultProps2"
></el-tree>
</el-col>
</el-row>
</el-dialog>
<!-- 编辑部门弹框 -->
<el-dialog :close-on-click-modal="false" :visible.sync="buMenEditDialog" :before-close="bumeneditCloseDialog" title="修改" width="20%">
<el-form :model="bumenEdit" label-width="150px">
<el-form-item label="被考核部门">
<el-cascader clearable v-model="bumenEdit.departmentid" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader>
<el-cascader clearable v-model="bumenEdit.acceptdepartmentid" :options="searchDepartmentList" :show-all-levels="false" :props="props"></el-cascader>
</el-form-item>
</el-form>
<template #footer>
@ -552,7 +592,6 @@
<el-form-item label="所属部门">
<el-cascader filterable clearable v-model="methodData.departid" :options="searchDepartmentList" :show-all-levels="false" :props="props1"></el-cascader>
<!-- <el-select v-model="searchfu.deaprtid" clearable placeholder="请选择">
<el-option
v-for="item in searchDepartmentList"
:key="item.id"
@ -575,7 +614,6 @@
<el-option label="半年" :value="7"></el-option>
<el-option label="年" :value="6"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmitsearchfu">查询</el-button>
@ -590,20 +628,20 @@
</div>
</template>
</el-table-column> -->
<el-table-column prop="targetsunname" label="考核项目" width="80">
<el-table-column prop="sontargetname" label="考核项目" width="80">
<template #default="scope">
{{scope.row.targetsunname}}
{{scope.row.sontargetname}}
</template>
</el-table-column>
<!-- <el-table-column prop="targetsunname" label="权重"></el-table-column> -->
<el-table-column prop="detailedtargetname" label="考核内容"></el-table-column>
<el-table-column prop="scoreing" label="考核标准" width="80" align="center"></el-table-column>
<el-table-column prop="title" label="考核内容"></el-table-column>
<el-table-column prop="standard" label="考核标准" width="80" align="center"></el-table-column>
<el-table-column prop="unit" label="单位" width="80" align="center">
<template #default="scope">
<div v-if="scope.row.unit==0">
<div v-if="scope.row.company==0">
</div>
<div v-if="scope.row.unit!=0">
{{scope.row.unit}}
<div v-if="scope.row.company!=0">
{{scope.row.company}}
</div>
</template>
</el-table-column>
@ -619,17 +657,17 @@
<el-table-column prop="censorcont" label="客观证据" width="120" align="center"/>
<el-table-column label="检查周期" width="80" align="center">
<template #default="scope">
<div v-if="scope.row.censorrate==='0'"></div>
<div v-else-if="scope.row.cycledettar==='0'"></div>
<div v-if="scope.row.cycle==='0'"></div>
<div v-else-if="scope.row.cycle==='0'"></div>
<div v-else>
{{scope.row.censorrate}} /
<span v-if="scope.row.cycledettar==1"></span>
<span v-if="scope.row.cycledettar==2"></span>
<span v-if="scope.row.cycledettar==3"></span>
<span v-if="scope.row.cycledettar==4"></span>
<span v-if="scope.row.cycledettar==5">季度</span>
<span v-if="scope.row.cycledettar==7">半年</span>
<span v-if="scope.row.cycledettar==6"></span>
<span v-if="scope.row.cycle==1"></span>
<span v-if="scope.row.cycle==2"></span>
<span v-if="scope.row.cycle==3"></span>
<span v-if="scope.row.cycle==4"></span>
<span v-if="scope.row.cycle==5">季度</span>
<span v-if="scope.row.cycle==7">半年</span>
<span v-if="scope.row.cycle==6"></span>
</div>
</template>
@ -686,13 +724,13 @@
<el-dialog :close-on-click-modal="false" :visible.sync="showzhiming" title="修改" width="40%">
<el-form :model="nameFrom" label-width="150px">
<el-form-item label="考核项目名称" prop="title">
<el-input v-model="nameFrom.name" autocomplete="off" />
<el-input v-model="nameFrom.title" autocomplete="off" />
</el-form-item>
<el-form-item label="被考核部门">
<el-cascader filterable clearable v-model="nameFrom.departmentmap" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader>
<el-cascader filterable clearable v-model="nameFrom.departmentid" :options="searchDepartmentList" :show-all-levels="false" :props="props"></el-cascader>
</el-form-item>
<el-form-item label="执行人">
<el-cascader filterable clearable v-model="nameFrom.operator" :options="grouplistBackup" :show-all-levels="false" :props="userProps"></el-cascader>
<el-cascader filterable clearable v-model="nameFrom.userkey" :options="grouplistBackup" :show-all-levels="false" :props="userProps"></el-cascader>
</el-form-item>
</el-form>
<template #footer>
@ -709,7 +747,7 @@
type="textarea"
autosize
placeholder="请输入内容"
v-model="xizeData.detailedtargetname">
v-model="xizeData.title">
</el-input>
</el-form-item>
<el-form-item label="考核标准" prop="score">
@ -717,7 +755,7 @@
type="textarea"
autosize
placeholder="请输入内容"
v-model="xizeData.score">
v-model="xizeData.referencescore">
</el-input>
</el-form-item>
<el-form-item label="单位" prop="unit">
@ -731,7 +769,7 @@
</el-select>
</el-form-item>
<el-form-item label="操作类型" prop="addorreduce">
<el-select v-model="xizeData.addreduce" placeholder="请选择">
<el-select v-model="xizeData.addorreduce" placeholder="请选择">
<el-option label="加分" :value=2></el-option>
<el-option label="减分" :value=1></el-option>
<el-option label="加减分" :value=3></el-option>
@ -769,14 +807,14 @@
type="textarea"
autosize
placeholder="请输入内容"
v-model="xizeData.detailedtargetcontent">
v-model="xizeData.content">
</el-input>
</el-form-item>
<el-form-item label="被考核部门">
<el-cascader clearable v-model="xizeData.departmentid" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader>
<el-cascader clearable v-model="xizeData.departmentlist" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader>
</el-form-item>
<el-form-item label="执行人" prop="title">
<el-cascader filterable clearable v-model="xizeData.operator" :options="grouplistBackup" :show-all-levels="false" :props="userProps"></el-cascader>
<el-cascader filterable clearable v-model="xizeData.userlist" :options="grouplistBackup" :show-all-levels="false" :props="userProps"></el-cascader>
</el-form-item>
</el-form>
<template #footer>
@ -788,20 +826,20 @@
<!-- 新增 -->
<el-dialog :close-on-click-modal="false" :visible.sync="addbiao" title="新增" width="40%">
<el-form :model="xizeDataFrom" label-width="150px">
<el-form-item label="考核内容" prop="detailedtargetname">
<el-form-item label="考核内容" prop="title">
<el-input
type="textarea"
autosize
placeholder="请输入内容"
v-model="xizeDataFrom.detailedtargetname">
v-model="xizeDataFrom.title">
</el-input>
</el-form-item>
<el-form-item label="考核标准" prop="score">
<el-form-item label="考核标准" prop="referencescore">
<el-input
type="textarea"
autosize
placeholder="请输入内容"
v-model="xizeDataFrom.score">
v-model="xizeDataFrom.referencescore">
</el-input>
</el-form-item>
<el-form-item label="单位" prop="unit">
@ -814,16 +852,49 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="备注说明" prop="detailedtargetcontent">
<el-form-item label="备注说明" prop="content">
<el-input
type="textarea"
autosize
placeholder="请输入内容"
v-model="xizeDataFrom.content">
</el-input>
</el-form-item>
<el-form-item label="操作类型" prop="userlist">
<el-select v-model="xizeDataFrom.addorreduce" placeholder="请选择">
<el-option label="加分" :value=2></el-option>
<el-option label="减分" :value=1></el-option>
<el-option label="加减分" :value=3></el-option>
</el-select>
</el-form-item>
<el-form-item label="检查方式" prop="userlist">
<el-select multiple v-model="xizeDataFrom.censortype" clearable placeholder="请选择">
<el-option label="现场检查" :value=1></el-option>
<el-option label="资料审查" :value=2></el-option>
<el-option label="事件触发" :value=3></el-option>
</el-select>
</el-form-item>
<el-form-item label="统计周期" prop="userlist">
<el-select v-model="xizeDataFrom.cycle" clearable placeholder="请选择">
<el-option label="月" :value=4></el-option>
<el-option label="季度" :value=5></el-option>
<el-option label="半年" :value=7></el-option>
<el-option label="年" :value=6></el-option>
</el-select>
</el-form-item>
<el-form-item label="客观证据">
<el-input
type="textarea"
autosize
placeholder="请输入内容"
v-model="xizeDataFrom.detailedtargetcontent">
v-model="xizeDataFrom.censorcont">
</el-input>
</el-form-item>
<el-form-item label="执行人" prop="operator">
<el-cascader filterable clearable v-model="xizeDataFrom.operator" :options="grouplistBackup" :show-all-levels="false" :props="userProps"></el-cascader>
<el-form-item label="检查频次" prop="userlist">
<el-input v-model.number="xizeDataFrom.censorrate"></el-input>
</el-form-item>
<el-form-item label="执行人" prop="userlist">
<el-cascader filterable clearable v-model="xizeDataFrom.userlist" :options="grouplistBackup" :show-all-levels="false" :props="userProps"></el-cascader>
</el-form-item>
</el-form>
<template #footer>
@ -846,14 +917,22 @@ neweitedetailedtarget,newdelsuntarget,newdeldetailedtarget,newdeltarget,getnewei
lookdutytargetinfo,getdutyrelationlist,adddutyrelation,getdepartforduty,eitedepartforduty } from '@/api/duty/duty'
import projectDialog from '@/components/projectDialog/index.vue'
import { dutylist,getdutyinfo,eitedutyinfo,eitedutystate } from '@/api/duty/quantitativeIndicators'
import {
departmenttargetlist,getdepartabouttarget,gettargetreport,shiyan,getdepartmenttragetcontlist,basistargetdearpetmentgetpost,basistaegetdeparmentreport,
delsontarget,basissontargetadddetailed,del_one_detailed_target,
getsontargetcont,editsontargetdepartmentreport,getonedetailedtarget,
get_one_terget_info,edit_one_target
} from '@/api/duty/projectNew'
import {
grouplist,
departmentlist,
getgroupdepartmap,
getgroupuser
getgroupuser,
} from '@/api/duty/group'
export default {
name: 'Dashboard',
props:['bmId'],
components: {
projectDialog
},
@ -861,6 +940,7 @@ export default {
return {
methodData:{},
searchfu:{},
searchDepartmentList:[],
unitDataList:[
{
@ -917,6 +997,7 @@ export default {
},
],
bumenEdit:{},
postlist:[],
treeData:[],
//
treeData:{
@ -930,7 +1011,9 @@ export default {
xizeDig:false,
xizeData:'',
//
nameFrom:{},
nameFrom:{
targetsunid:''
},
//
showzhiming:false,
//
@ -1053,7 +1136,9 @@ export default {
tableData:[],
//
searchInfo: {
type:1
class:1,
page:1,
pagesize:10
},
spanArr:[],
spanArr1:[],
@ -1066,6 +1151,7 @@ export default {
methodSpanArr:[],
methodSpanArr1:[],
methodPos1:'',
postUserlist:[],
rulesObjectCopy:{},
//
rules: {
@ -1078,13 +1164,26 @@ export default {
children: "children",
emitPath:false,
},
defaultProps1: {
children: "child",
label: "name",
},
defaultProps2: {
children: "child",
label: "name"+'number',
},
postID:'',
rowZhiData:{},
methodList:[],
departabouttarData:[],
xizeDataFrom:{},
zhibiaoID:'',
pos:'',
pos1:'',
pos2:'',
parentidArr:[],
showDepartabouttar:false,
parentidpos:'',
methodPos:'',
editRules:{
@ -1092,7 +1191,7 @@ export default {
}
}
},
created() {
async created() {
// if (this.$store.state.user.token=='') {
// this.$router.push('/login')
// }
@ -1106,9 +1205,18 @@ export default {
this.getDutyclasslist()
this.getSystemadminlist()
this.selectdutylist()
},
// const res = await shiyan()
},
watch: {
bmId(){
console.log("bmid变化")
// console.log(this.bmId)
// const list = []
// list.push(this.bmId)
this.searchInfo.departmentid=this.bmId
this.getDataList()
},
tableData() {
this.$nextTick(() => {
this.spanArr=[],
@ -1140,6 +1248,47 @@ export default {
},
},
methods: {
//
async handlePostClick(val){
const from = {
targetid:this.zhibiaoID.toString(),
departmentid:this.postID,
post:val.id.toString()
}
const res = await basistaegetdeparmentreport(from)
this.postUserlist=res.data.peoplelist
},
//
async handleNodeClick(val){
this.postID=val.id.toString()
const from = {
targetid:this.zhibiaoID.toString(),
departmentid:val.id.toString()
}
const res = await basistargetdearpetmentgetpost(from)
this.postlist=res.data.postlist
},
//
async showUserList(row){
this.showUser=true
const from = {
targetid:row.id.toString()
}
const res = await gettargetreport(from)
this.userlistary=res.data.userlistary
},
// /
async showDepartmentList(row){
this.zhibiaoID=row.id
const from = {
id:row.id.toString()
}
const res = await getdepartabouttarget(from)
this.departabouttarData=res.data
this.showDepartabouttar=true
console.log("getdepartabouttargetRes")
console.log(res)
},
//
async deleteSun(row){
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
@ -1150,10 +1299,11 @@ export default {
.then(async() => {
const deleFrom={
// id: row.targetsun
id: row.targetsun, //ID
assid: row.target //Id
id: row.parentidsun.toString(), //ID
// assid: row.target //Id
}
const res = await newdelsuntarget(deleFrom)
// const res = await newdelsuntarget(deleFrom)
const res = await delsontarget(deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
@ -1162,19 +1312,20 @@ export default {
this.getzhilanmuList()
}
})
},
//
async addxize(){
const resa = await neweitedetailedtarget(this.xizeDataFrom)
this.xizeDataFrom.id=this.xizeDataFrom.id.toString()
this.xizeDataFrom.censortype=this.xizeDataFrom.censortype.map(String);
const res = await basissontargetadddetailed(this.xizeDataFrom)
this.xizeDataFrom={}
this.getzhilanmuList()
this.addbiao=false
},
//
showaddbiao(row){
this.$set(this.xizeDataFrom,'assid',row.dutyassessid)
this.$set(this.xizeDataFrom,'id','')
// this.$set(this.xizeDataFrom,'assid',row.dutyassessid)
this.$set(this.xizeDataFrom,'id',row.parentidsun)
this.addbiao=true
},
//
@ -1252,10 +1403,11 @@ export default {
console.log(row)
const deleFrom={
// outid: row.id
id: row.detailedtarget, //ID
assid: row.dutyassessid //ID
id: row.id.toString(), //ID
// assid: row.dutyassessid //ID
}
const res = await newdeldetailedtarget(deleFrom)
// const res = await newdeldetailedtarget(deleFrom)
const res = await del_one_detailed_target(deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
@ -1325,7 +1477,7 @@ export default {
}
// const res = await lookdutytargetinfo(methodData)
const res = await lookdutytargetinfo(this.methodData)
const res = await getdepartmenttragetcontlist(this.methodData)
// this.methodData.censortype=this.methodData.censortype.map(Number)
// this.$delete(this.methodData,'censorrate')
if (res.code==0) {
@ -1338,25 +1490,30 @@ export default {
//
async getzhilanmuList(){
this.methodData={
//type: 1, //12
group: this.rowZhiData.group, //
//departmentid: this.rowZhiData.parentid, //
dimension: this.rowZhiData.dimension, //
targetid: this.rowZhiData.target, //
// //type: 1, //12
// group: this.rowZhiData.group, //
// //departmentid: this.rowZhiData.parentid, //
// dimension: this.rowZhiData.dimension, //
// targetid: this.rowZhiData.target, //
// page:1,
// pagesize:200,
targetid:this.rowZhiData.id.toString(),//ID
// departmentid:this.rowZhiData.relevantdepartments,//ID
// reportperson:this.rowZhiData.report,//
// cycle:this.rowZhiData.cycle,//
// targetsunid:this.rowZhiData.group//
}
console.log("this.methodData")
console.log(this.methodData)
const res = await lookdutytargetinfo(this.methodData)
// const res = await lookdutytargetinfo(this.methodData)
const res = await getdepartmenttragetcontlist(this.methodData)
if (res.code==0) {
this.methodList=res.data
this.methodList=res.data.list
}
},
//
showUserList(row){
this.showUser=true
this.userlistary=row.userlistary
},
getMethodSpanArr(data) {
// data
for (var i = 0; i < data.length; i++) {
@ -1365,7 +1522,7 @@ export default {
this.methodPos = 0;
} else {
//
if (data[i].targetsun === data[i - 1].targetsun) {
if (data[i].parentidsun === data[i - 1].parentidsun) {
this.methodSpanArr[this.methodPos] += 1;
this.methodSpanArr.push(0);
} else {
@ -1585,6 +1742,7 @@ export default {
this.rulesList=JSON.parse(JSON.stringify(res.data))
this.rulesCopyList=JSON.parse(JSON.stringify(res.data))
this.tableShow=true
}
},
//
@ -1741,13 +1899,13 @@ export default {
.then(async() => {
const deleFrom={
// type: 1, //12
group: row.group, //
// departmentid: row.parentid, //
dimension: row.dimension, //
targetid: row.target, //
// group: row.group, //
// // departmentid: row.parentid, //
// dimension: row.dimension, //
id: row.id.toString(), //
//targetsun: row.targetsun //
}
const res = await newdeltarget(deleFrom)
const res = await deltarget(deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
@ -1766,43 +1924,49 @@ export default {
async showxize(row){
const from = {
// outid:row.id
id: row.detailedtarget, //ID
assid: row.dutyassessid //ID
id: row.id.toString(), //ID
// assid: row.dutyassessid //ID
}
const res = await getneweitedetailedtarget(from)
// const res = await getneweitedetailedtarget(from)
const res = await getonedetailedtarget(from)
this.xizeData=res.data
console.log("this.xizeData.addorreduce")
console.log(this.xizeData.addorreduce)
console.log(this.xizeData.addorreduce)
this.xizeData.censortype=this.xizeData.censortype.map(Number)
this.xizeDig=true
},
//
async showEditming(row){
// const editDataFrom={
// group: row.group, //
// dimension: row.dimension, //
// targetid: row.target, //
// suntargetid: row.targetsun //
// }
console.log("row")
console.log(row)
const editDataFrom={
group: row.group, //
dimension: row.dimension, //
targetid: row.target, //
suntargetid: row.targetsun //
}
const res = await geteitesuntarterinfo(editDataFrom)
this.nameFrom={
id:row.targetsun,
name:row.targetsunname,
group:row.group,
dimension:row.dimension,
targetid:row.target,
departmentmap:row.departidmap,
operator:res.data
}
id: row.parentidsun.toString() //
}
// const res = await geteitesuntarterinfo(editDataFrom)
const res = await getsontargetcont(editDataFrom)
this.nameFrom=res.data
this.nameFrom.targetsunid=row.parentidsun.toString()
console.log(this.nameFrom)
// this.nameFrom={
// id:row.targetsun,
// name:row.targetsunname,
// group:row.group,
// dimension:row.dimension,
// targetid:row.target,
// departmentmap:row.departidmap,
// operator:res.data
// }
this.showzhiming=true
},
//
async xiuzhiming(){
this.nameFrom.departmentmap=this.nameFrom.departmentmap.map(String)
const res = await eitesuntargetname(this.nameFrom)
this.nameFrom.acceptdepartmentid=this.nameFrom.departmentid.map(String)
this.nameFrom.userlist=this.nameFrom.userkey.map(String)
const res = await editsontargetdepartmentreport(this.nameFrom)
this.nameFrom={}
this.getzhilanmuList()
this.showzhiming=false
@ -1810,24 +1974,30 @@ export default {
//
async showEdit(row){
const editFrom={
group: row.group, //
dimension: row.dimension, //
targetid: row.target //
// group: row.group, //
// dimension: row.dimension, //
id: row.id.toString() //
}
const res = await getdepartforduty(editFrom)
// const editFrom={
// id:row.parentidsun
// }
// const res = await getdepartforduty(editFrom)
// const res = await getsontargetcont(editFrom)
const res = await get_one_terget_info(editFrom)
this.bumenEdit = res.data
this.bumenEdit.departmentid=this.bumenEdit.departmentid.map(String)
// this.bumenEdit.departmentid=this.bumenEdit.departmentid.map(String)
this.buMenEditDialog=true;
},
//
async buMenTi(){
const editFrom={
group: this.bumenEdit.group, //
dimension: this.bumenEdit.dimension, //
targetid: this.bumenEdit.target, //
departary: this.bumenEdit.departmentid.map(String)
}
const res = await eitedepartforduty(editFrom)
// const editFrom={
// group: this.bumenEdit.group, //
// dimension: this.bumenEdit.dimension, //
// targetid: this.bumenEdit.target, //
// departary: this.bumenEdit.departmentid.map(String)
// }
this.bumenEdit.acceptdepartmentid=this.bumenEdit.acceptdepartmentid.map(String)
const res = await edit_one_target(this.bumenEdit)
if (res.code === 0) {
this.$message({
type: 'success',
@ -1880,7 +2050,8 @@ export default {
this.form.parentid=this.form.parentid.map(String);
// this.form.parentid=this.form.evaluationlist.censortype.map(String);
// const res = await addqualeval(this.form)
const res = await adddutyrelation(this.form)
// const res = await adddutyrelation(this.form)
const res = await addsuntargetdetailed(this.form)
if (res.code === 0) {
this.$message({
type: 'success',
@ -1974,8 +2145,14 @@ export default {
//
async getDataList() {
const that = this
const res = await getdutyrelationlist()
this.tableData = res.data
this.searchInfo.class=1
const res = await departmenttargetlist(this.searchInfo)
this.tableData = res.data.list
console.log("this.tableData")
console.log(this.tableData)
this.total = res.data.total;
this.searchInfo.page = res.data.page;
this.searchInfo.pagesize = res.data.pageSize;
// this.tableData.forEach(function(element, index) {
// that.$set(element,'treeData',{label:element.departmentmap[0].parentname,children:[]}),
// element.departmentmap.forEach(function(item, index) {

463
src/views/assessmentProgram/qualitativeIndicatorsBase.vue

@ -0,0 +1,463 @@
<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: 850px"
>
<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: 850px"
>
<el-tree
:data="postList"
:props="defaultProps1"
@node-click="NodePostClick"
></el-tree>
</el-aside>
<!-- 右侧内容 -->
<el-main style="padding: 10px">
<div v-if="tableGWShow">
<gwQualitativeIndicators :gwFromList="gwFromList"></gwQualitativeIndicators>
</div>
<div v-if="tableBMShow">
<qualitativeIndicators :bmId="bmId"></qualitativeIndicators>
</div>
</el-main>
</el-container>
</div>
</div>
</template>
<script>
import { govthree, positionlist } from "@/api/personnel/post";
import { dutyclasslist } from "@/api/duty/dimension";
import qualitativeIndicators from "@/views/assessmentProgram/qualitativeIndicators.vue";
import gwQualitativeIndicators from "@/views/assessmentProgram/gwQualitativeIndicators.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: {
qualitativeIndicators,
gwQualitativeIndicators
},
name: "Dashboard",
data() {
return {
gwFromList:{
gwId:1,
bmId:1
},
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.gwFromList.gwId=val.id
this.tableGWShow=true
this.tableBMShow=false
console.log('岗位')
console.log(this.gwFromList);
},
//
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.gwFromList.bmId=val.id
console.log('行政组织')
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>

899
src/views/basicInfo/gwProject copy.vue

@ -0,0 +1,899 @@
<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)
},
watch:{
gwId(){
console.log("bmid变化")
console.log(this.gwId)
// const list = []
// list.push(this.gwId)
this.searchInfo.departmentsPost=this.gwId.toString()
this.getDataList()
},
},
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>

274
src/views/basicInfo/gwProject.vue

@ -39,7 +39,7 @@
</el-select>
</el-form-item>
<el-form-item label="指标性质" prop="type">
<el-select v-model="searchInfo.type" placeholder="请选择指标性质">
<el-select clearable v-model="searchInfo.type" placeholder="请选择指标性质">
<el-option label="定性指标" :value="1"></el-option>
<el-option label="定量指标" :value="2"></el-option>
</el-select>
@ -56,11 +56,7 @@
type="primary"
icon="el-icon-search"
@click="onSubmit"
>查询</el-button
>
<el-button size="mini" icon="el-icon-refresh" @click="onReset"
>重置</el-button
>
>查询</el-button>
</el-form-item>
</el-form>
</div>
@ -71,38 +67,12 @@
type="primary"
icon="el-icon-plus"
@click="showAdd()"
>新增</el-button
>
>新增</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
@ -140,7 +110,7 @@
</template>
</el-table-column>
<el-table-column align="left" label="关联岗位">
<!-- <el-table-column align="left" label="关联岗位">
<template #default="scope">
<el-collapse>
<el-collapse-item title="详情" name="1">
@ -149,9 +119,9 @@
</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> -->
<el-table-column align="left" label="数据提交">
<template #default="scope">
<div v-for="item in scope.row.reportary" :key="item.key">
@ -203,7 +173,6 @@
>
</el-pagination>
</div>
</div>
</el-main>
</el-container>
</div>
@ -213,21 +182,12 @@
:visible.sync="dialogFormVisible"
:before-close="closeDialog"
title="新增"
width="30%"
width="40%"
>
<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
@ -239,7 +199,7 @@
@change="departChange"
></el-cascader>
</el-form-item>
<el-form-item label="相关岗位" prop="departmentsPost">
<!-- <el-form-item label="相关岗位" prop="departmentsPost">
<el-select
clearable
multiple
@ -255,6 +215,62 @@
>
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="岗位/人员" prop="departmentsPost">
<el-table
:data="relevantpostsman"
style="width: 100%">
<el-table-column
prop="date"
label="关联岗位"
width="180">
<template slot-scope="scope">
<el-select
clearable
v-model="scope.row.id"
filterable
placeholder="请选择"
>
<el-option
v-for="item in postListAdd"
:key="item.idstr"
:label="item.name"
:value="item.idstr"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="name"
label="提报人"
width="180">
<template slot-scope="scope">
<el-cascader
filterable
clearable
v-model="scope.row.operator"
:options="grouplistBackup"
:show-all-levels="false"
:props="userProps"
></el-cascader>
</template>
</el-table-column>
<el-table-column
prop="address"
label="操作">
<template slot-scope="scope">
<el-button @click="jiaArr" type="primary" icon="el-icon-plus" circle size="mini"></el-button>
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="deleteRulesList(scope)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item label="指标维度" prop="dimension">
<el-select
@ -280,17 +296,6 @@
<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>
@ -327,7 +332,7 @@
:visible.sync="editDialogFormVisible"
:before-close="editCloseDialog"
title="修改"
width="20%"
width="40%"
>
<el-form
ref="editForm"
@ -335,32 +340,80 @@
: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-form-item label="关联部门" prop="relevantDepartments">
<el-cascader
filterable
clearable
v-model="editAdd.relevantdepartmentsmap"
v-model="editAdd.relevantDepartments"
:options="grouplist"
:show-all-levels="false"
:props="props"
@change="departChange"
></el-cascader>
</el-form-item>
<el-form-item label="指标维度" prop="dimensionidstr">
<el-form-item label="岗位/人员" prop="departmentsPost">
<el-table
:data="editAdd.relevantpostsman"
style="width: 100%">
<el-table-column
prop="date"
label="关联岗位"
width="180">
<template slot-scope="scope">
<el-select
clearable
v-model="scope.row.id"
filterable
placeholder="请选择"
>
<el-option
v-for="item in postListAdd"
:key="item.idstr"
:label="item.name"
:value="item.idstr"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="name"
label="提报人"
width="180">
<template slot-scope="scope">
<el-cascader
filterable
clearable
v-model="scope.row.operator"
:options="grouplistBackup"
:show-all-levels="false"
:props="userProps"
></el-cascader>
</template>
</el-table-column>
<el-table-column
prop="address"
label="操作">
<template slot-scope="scope">
<el-button @click="jiaArr" type="primary" icon="el-icon-plus" circle size="mini"></el-button>
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="deleteRulesList(scope)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item label="指标维度" prop="dimension">
<el-select
v-model="editAdd.dimensionidstr"
v-model="editAdd.dimension"
clearable
placeholder="请选择考核维度"
>
@ -380,27 +433,13 @@
</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-input v-model="editAdd.unit" autocomplete="off" />
</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-select v-model="editAdd.scoringmethod" placeholder="请选择指标性质">
<el-option label="自动计分" :value="1"></el-option>
<el-option label="手动计分" :value="2"></el-option>
</el-select>
@ -416,6 +455,9 @@
</el-option>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
@ -445,6 +487,8 @@ import {
addposttarget,
} from "@/api/duty/project";
import { getgroupdepartmap, getgroupuser } from "@/api/duty/group";
import { add_post_target } from "@/api/duty/gwDingXing";
import { get_post_target } from '@/api/duty/projectNew'
export default {
components: {
project,
@ -453,6 +497,13 @@ export default {
props:['gwId'],
data() {
return {
//
relevantpostsman:[{
// id
id:'',
//
operator:[]
}],
tableGWShow: true,
tableBMShow: false,
GovthreeList2: [],
@ -586,7 +637,30 @@ export default {
console.log("this.gwId")
console.log(this.gwId)
},
watch:{
gwId(){
console.log("bmid变化")
console.log(this.gwId)
// const list = []
// list.push(this.gwId)
this.searchInfo.departmentsPost=this.gwId.toString()
this.getDataList()
},
},
methods: {
//
jiaArr(){
this.relevantpostsman.push({
// id
id:'',
//
operator:[]
})
},
//
deleteRulesList(row){
this.relevantpostsman.splice(row.$index,1);
},
//
NodePostClick(val) {
console.log(val);
@ -616,7 +690,7 @@ export default {
const from = {
organization: val.toString(),
page: 1,
pagesize: 10,
pagesize: 10000,
};
const res = await positionlist(from);
this.postListAdd = res.data.list;
@ -709,11 +783,14 @@ export default {
},
//
async showEdit(row) {
this.editFrom.outid = row.outid;
const res = await gettargetinfo(this.editFrom);
this.editFrom.id = row.id.toString();
const res = await get_post_target(this.editFrom);
this.editAdd = res.data;
console.log("this.editAdd");
console.log(this.editAdd);
this.editAdd.relevantDepartments=this.editAdd.reledepart
this.departChange(this.editAdd.relevantDepartments)
this.editAdd.dimension=this.editAdd.dimension.toString()
this.editDialogFormVisible = true;
},
//
@ -770,8 +847,11 @@ export default {
if (this.form.departmentsPost != null) {
this.form.departmentsPost = this.form.departmentsPost.map(String);
}
console.log("this.relevantpostsman")
console.log(this.relevantpostsman)
this.form.relevantpostsman=this.relevantpostsman
this.form.cycleattr = parseInt(this.form.cycleattr);
const res = await addposttarget(this.form);
const res = await add_post_target(this.form);
if (res.code === 0) {
this.$message({
type: "success",
@ -830,6 +910,12 @@ export default {
//
closeDialog() {
console.log("closeDialog");
this.relevantpostsman=[
{
id:'',
operator:[]
}
]
this.initForm();
this.dialogFormVisible = false;
},

61
src/views/basicInfo/project.vue

@ -86,7 +86,6 @@
<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>
@ -149,8 +148,8 @@
<!-- 新增弹框 -->
<el-dialog :close-on-click-modal="false" :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="title">
<el-input v-model="form.title" autocomplete="off" />
<el-form-item label="指标名称" prop="name">
<el-input v-model="form.name" autocomplete="off" />
</el-form-item>
<!-- <el-form-item label="是否通用" prop="share">
<el-select v-model="form.share" placeholder="请选择是否通用">
@ -161,8 +160,8 @@
<!-- <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"></el-cascader>
<el-form-item label="关联部门" prop="acceptdepartmentid">
<el-cascader filterable clearable v-model="form.acceptdepartmentid" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader>
</el-form-item>
<el-form-item label="指标维度" prop="dimension">
<el-select v-model="form.dimension" clearable placeholder="请选择考核维度">
@ -174,23 +173,23 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="指标性质" prop="type">
<el-select v-model="form.type" placeholder="请选择指标性质">
<el-form-item label="指标性质" prop="nature">
<el-select v-model="form.nature" 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.unites" autocomplete="off" />
<el-form-item label="计量单位" prop="unit">
<el-input v-model="form.unit" autocomplete="off" />
</el-form-item>
<el-form-item label="数据提交" prop="report">
<el-form-item label="数据提交" prop="userlist">
<!-- <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-cascader filterable clearable v-model="form.userlist" :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-form-item label="计分方式" prop="scoringmethod">
<el-select v-model="form.scoringmethod" placeholder="请选择指标性质">
<el-option label="自动计分" :value=1></el-option>
<el-option label="手动计分" :value=2></el-option>
@ -217,8 +216,8 @@
<!-- 编辑弹框 -->
<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 label="指标名称" prop="name">
<el-input v-model="editAdd.name" autocomplete="off" />
</el-form-item>
<!-- <el-form-item label="是否通用" prop="share">
<el-select v-model="editAdd.share" placeholder="请选择是否通用">
@ -231,10 +230,10 @@
<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-cascader filterable clearable v-model="editAdd.acceptdepartmentid" :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-select v-model="editAdd.dimension" clearable placeholder="请选择考核维度">
<el-option
v-for="item in dutyclasslist"
:key="item.outId"
@ -243,23 +242,23 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="指标性质" prop="type">
<el-select v-model="editAdd.type" placeholder="请选择指标性质">
<el-form-item label="指标性质" prop="nature">
<el-select v-model="editAdd.nature" 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 label="计量单位" prop="unit">
<el-input v-model="editAdd.unit" 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-cascader filterable clearable v-model="editAdd.userlist" :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-form-item label="计分方式" prop="scoringmethod">
<el-select v-model="editAdd.scoringmethod" placeholder="请选择指标性质">
<el-option label="自动计分" :value=1></el-option>
<el-option label="手动计分" :value=2></el-option>
@ -288,6 +287,7 @@
<script>
import { dutyclasslist } from '@/api/duty/dimension'
import { add_department_target,get_one_terget_info } from '@/api/duty/projectNew'
import { gettarget,addtarget,gettargetinfo,eiteassessinfo,eitetarget,deltarget } from '@/api/duty/project'
import {
getgroupdepartmap,
@ -356,7 +356,7 @@ export default {
assessList:{},
//
form:{
share:2,
share:0,
cycleattr:1,
scoringmethod:1
},
@ -475,7 +475,6 @@ export default {
type: 'success',
message: '删除成功!'
})
this.getDataList()
}
})
@ -506,8 +505,9 @@ export default {
},
//
async showEdit(row){
this.editFrom.outid=row.outid
const res = await gettargetinfo(this.editFrom)
this.editFrom.id=row.outid
// const res = await gettargetinfo(this.editFrom)
const res = await get_one_terget_info(this.editFrom)
this.editAdd = res.data
console.log("this.editAdd")
console.log(this.editAdd)
@ -556,17 +556,16 @@ export default {
formatDate(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
},
//
async enterDialog(){
this.$refs.addForm.validate(async valid => {
if (valid) {
if(this.form.relevantdepartments!=null){
this.form.relevantdepartments=this.form.relevantdepartments.map(String)
if(this.form.acceptdepartmentid!=null){
this.form.acceptdepartmentid=this.form.acceptdepartmentid.map(String)
}
this.form.cycleattr =parseInt(this.form.cycleattr)
const res = await addtarget(this.form)
// const res = await addtarget(this.form)
const res = await add_department_target(this.form)
if (res.code === 0) {
this.$message({
type: 'success',

6
src/views/basicInfo/projectBase.vue

@ -45,7 +45,7 @@
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 gwProject from "@/views/basicInfo/gwProject.vue";
import {
posttargetlist,
addtarget,
@ -61,7 +61,7 @@ import { getgroupdepartmap, getgroupuser } from "@/api/duty/group";
export default {
components: {
project,
// gwProject
gwProject
},
name: "Dashboard",
data() {
@ -150,6 +150,7 @@ export default {
methods: {
//
NodePostClick(val) {
console.log('gangwei')
this.gwId=val.id
this.tableGWShow=true
this.tableBMShow=false
@ -170,6 +171,7 @@ export default {
// this.searchInfo.organization=val.id
// this.searchInfo.organization=this.searchInfo.organization.toString()
this.getPost(val.id);
console.log('bumen ')
this.bmId=val.id
this.tableGWShow=false
this.tableBMShow=true

4
src/views/echarts/table.vue

@ -439,13 +439,13 @@
<!-- 定性详情历史记录 -->
<el-dialog :visible.sync="dxdialogFormVisible" title="详情" width="40%">
<el-table :data="dingxingOldData" border style="width: 100%">
<el-table-column align="center" prop="addorsubtract" label="得分类型">
<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 align="center" prop="score" label="分">
<el-table-column align="center" prop="score" label="分">
</el-table-column>
<el-table-column align="center" prop="count" label="原因">
</el-table-column>

89
src/views/honor/index.vue

@ -36,13 +36,10 @@
<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 align="left" label="载体" prop="carriername"/>
<el-table-column align="left" label="获奖时间" prop="awardtimestr">
</el-table-column>
<el-table-column align="left" label="有效期限" prop="awardtimeend"/>
<el-table-column align="left" label="有效期限" prop="termvaliditytr"/>
<el-table-column align="left" label="图片" prop="sort">
<template #default="scope">
<el-button
@ -53,7 +50,7 @@
>查看</el-button>
</template>
</el-table-column>
<el-table-column align="left" label="备注" prop="remark"/>
<el-table-column align="left" label="备注" prop="contet"/>
<el-table-column align="left" label="状态">
<template #default="scope">
<el-switch
@ -99,8 +96,8 @@
</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-dialog :visible.sync="dialogFormVisible" title="新增" width="30%">
<el-form ref="form" :model="form" label-width="150px">
<el-form-item label="名称" prop="name">
<el-input v-model="form.name" autocomplete="off" />
</el-form-item>
@ -168,25 +165,48 @@
</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-dialog :visible.sync="editDialogFormVisible" title="修改" width="30%">
<el-form ref="form" :model="editAdd" label-width="150px">
<el-form-item label="名称" prop="name">
<el-input v-model="editAdd.name" autocomplete="off" />
</el-form-item>
<el-form-item label="载体" prop="sort">
<el-input v-model="editForm.carrier" autocomplete="off" />
<el-select v-model="editAdd.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="editForm.unit" autocomplete="off" />
<el-input v-model="editAdd.issuingunit" autocomplete="off" />
</el-form-item>
<el-form-item label="发放单位" prop="sort">
<el-input v-model="editForm.unit" autocomplete="off" />
<el-form-item label="获奖部门" prop="sort">
<el-cascader filterable clearable v-model="editAdd.organization" :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="editAdd.userid" :options="grouplistBackup" :show-all-levels="false" :props="userProps"></el-cascader>
</el-form-item>
<el-form-item label="获奖时间" prop="sort">
<el-input v-model="editForm.unit" autocomplete="off" />
<el-date-picker
v-model="editAdd.awardtimestr"
type="date"
placeholder="选择日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item label="有效期限" prop="sort">
<el-input v-model="editForm.efficientDate" autocomplete="off" />
<el-date-picker
v-model="editAdd.termvaliditytr"
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
@ -202,9 +222,9 @@
</el-upload>
</el-form-item>
<el-form-item label="备注" prop="sort">
<el-input v-model="editForm.remark" autocomplete="off" />
<el-input v-model="editAdd.contet" autocomplete="off" />
</el-form-item>
</el-form> -->
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button size="small" @click="editCloseDialog"> </el-button>
@ -212,6 +232,10 @@
</div>
</template>
</el-dialog>
<!-- 图片详情弹框 -->
<el-dialog :visible.sync="detailsDialogFormVisible" title="图片详情" width="40%">
<img v-for="(iteam,index) in imgData" :src="iteam.url" alt="" :key="index">
</el-dialog>
</div>
</template>
@ -220,7 +244,7 @@ import {
getgroupdepartmap,
getgroupuser
} from '@/api/duty/group'
import { carrierlist,honorlist,addhonorcont,eidyhonorcont,eidyhonorcontstate } from '@/api/honer'
import { gethonorscont,reviewimage,carrierlist,honorlist,addhonorcont,eidyhonorcont,eidyhonorcontstate } from '@/api/honer'
export default {
name: 'Dashboard',
filters: {//data
@ -238,6 +262,7 @@ export default {
data() {
return {
fileList:[],
imgData:{},
uploadActionUrl:'/api/upordown',
//
detailsData:{},
@ -476,10 +501,11 @@ export default {
//
async showDetails(row){
const from = {
id:row.id
id:row.uuid
}
const res = await getdutyclassinfo(from)
this.detailsData = res.data
const res = await reviewimage(from)
this.imgData = res.data
console.log(this.imgData)
this.detailsDialogFormVisible=true;
},
//
@ -511,11 +537,12 @@ export default {
},
//
async showEdit(row){
this.editFrom.outid=row.outId
const res = await getdutyclassinfo(this.editFrom)
this.editFrom.id=row.uuid
const res = await gethonorscont(this.editFrom)
this.editAdd = res.data
this.editDialogFormVisible=true;
},
//
async changeVal(val,id){
@ -564,8 +591,7 @@ export default {
//
async enterDialog(){
this.$refs.addForm.validate(async valid => {
if (valid) {
const res = await addhonorcont(this.form)
if (res.code === 0) {
this.$message({
@ -576,8 +602,7 @@ export default {
}
this.getDataList();
this.closeDialog();
}
})
},
//
@ -600,7 +625,7 @@ export default {
//
closeDialog() {
console.log("closeDialog")
this.initForm()
this.form={}
this.dialogFormVisible = false
},
//

4
src/views/hr/personnel.vue

@ -919,11 +919,11 @@
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">参加工作日期</template>
{{staffInfo.jobstartdate|dataFormat}}
{{staffInfo.jobstartdatestr}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">入职日期</template>
{{staffInfo.entrydatetime}}
{{staffInfo.entrydatestr}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">试用期</template>

Loading…
Cancel
Save