Browse Source

修改岗位指标提交

dev
超级管理员 3 years ago
parent
commit
3a7c61e5d3
  1. 26
      src/api/systemaccredit/systemapi.js
  2. 3
      src/router/index.js
  3. 3
      src/store/getters.js
  4. 49
      src/store/index.js
  5. 3
      src/store/modules/settings.js
  6. 11
      src/views/basicCont/targetLayout.vue
  7. 269
      src/views/basicInfo/gwProject.vue
  8. 112
      src/views/echarts/table.vue
  9. 20
      src/views/workflow/flow1.vue

26
src/api/systemaccredit/systemapi.js

@ -130,3 +130,29 @@ export const createSchemeForDeparment = (data) => {
data: data
})
}
//搜索岗位列表
export const searchPostListCont = (data) => {
return request({
url: '/postpc/search_orgpost_list',
method: 'post',
data: data
})
}
export const getorgary = (data) => {
return request({
url: '/postpc/get_orgary',
method: 'post',
data: data
})
}
//添加岗位
export const newAddPostTarget = (data) => {
return request({
url: '/postpc/new_add_posttarget',
method: 'post',
data: data
})
}

3
src/router/index.js

@ -506,7 +506,8 @@ export const constantRoutes = [
children: [
{
path: 'flow',
component: () => import('@/views/workflow/flow'),
// component: () => import('@/views/workflow/flow'),
component: () => import('@/views/workflow/flow1'),
meta: { title: '设置工作时段'}
},
],

3
src/store/getters.js

@ -3,6 +3,7 @@ const getters = {
device: state => state.app.device,
token: state => state.user.token,
avatar: state => state.user.avatar,
name: state => state.user.name
name: state => state.user.name,
}
export default getters

49
src/store/index.js

@ -11,9 +11,56 @@ const store = new Vuex.Store({
modules: {
app,
settings,
user
user,
tableId: '',
isTried: false,
promoterDrawer: false,
flowPermission1: {},
approverDrawer: false,
approverConfig1: {},
copyerDrawer: false,
copyerConfig1: {},
conditionDrawer: false,
conditionsConfig1: {
conditionNodes: [],
},
},
getters,
mutations: {
setTableId(status, payload) {
console.log("验证store----------------->",status, payload)
status.tableId = payload
},
setIsTried(status, payload) {
status.isTried = payload
},
setPromoter(status, payload) {
status.promoterDrawer = payload
},
setFlowPermission(status, payload) {
status.flowPermission1 = payload
},
setApprover(status, payload) {
status.approverDrawer = payload
},
setApproverConfig(status, payload) {
status.approverConfig1 = payload
},
setCopyer(status, payload) {
status.copyerDrawer = payload
},
setCopyerConfig(status, payload) {
status.copyerConfig1 = payload
},
setCondition(status, payload) {
console.log("Vuex.Store----------->setCondition",status, payload)
status.conditionDrawer = payload
},
setConditionsConfig(status, payload) {
status.conditionsConfig1 = payload
},
},
})
export default store

3
src/store/modules/settings.js

@ -5,7 +5,8 @@ const { showSettings, fixedHeader, sidebarLogo } = defaultSettings
const state = {
showSettings: showSettings,
fixedHeader: fixedHeader,
sidebarLogo: sidebarLogo
sidebarLogo: sidebarLogo,
}
const mutations = {

11
src/views/basicCont/targetLayout.vue

@ -124,10 +124,13 @@ export default {
console.log('岗位',val,checked.checkedNodes)
console.log(this.gwFromList);
if(checked.checkedNodes.length <= 0){
this.$refs.postTree.setCheckedKeys([val.id]);
console.log("----------------->",[val.id]);
this.gwFromList.postId = [val.id]
this.gwFromList.gwId=val.id
this.postList = []
this.postShow=false
this.departShow=true
// this.$refs.postTree.setCheckedKeys([val.id]);
// console.log("----------------->",[val.id]);
// this.gwFromList.postId = [val.id]
// this.gwFromList.gwId=val.id
}else{
this.gwFromList.postId = [];
checked.checkedNodes.forEach(item => {

269
src/views/basicInfo/gwProject.vue

@ -182,7 +182,7 @@
:visible.sync="dialogFormVisible"
:before-close="closeDialog"
title="新增"
width="40%"
width="50%"
>
<el-form ref="addForm" :model="form" label-width="150px">
<el-form-item label="指标名称" prop="title">
@ -216,7 +216,7 @@
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="岗位/人员" prop="departmentsPost">
<!-- <el-form-item label="岗位/人员" prop="departmentsPost">
<el-table
:data="relevantpostsman"
style="width: 100%">
@ -253,6 +253,7 @@
:options="grouplistBackup"
:show-all-levels="false"
:props="userProps"
collapse-tags
></el-cascader>
</template>
@ -271,6 +272,79 @@
</template>
</el-table-column>
</el-table>
</el-form-item> -->
<el-form-item label="岗位/人员" prop="departmentsPostOther">
<el-row>
<el-col :span="14">
<el-input
placeholder="请输入岗位名称"
prefix-icon="el-icon-search"
v-model="searchPostName">
</el-input>
</el-col>
<el-col :span="10">
<el-button type="primary" @click="searchpostlist">搜索岗位</el-button>
</el-col>
</el-row>
<el-table :data="otherOrgList" style="width: 100%">
<el-table-column label="行政组织">
<template slot-scope="scope">
<el-cascader v-model="scope.row.orgId" :options="orgThree" :props="orgProps" @change="getOrgPost(scope)"></el-cascader>
</template>
</el-table-column>
<el-table-column label="相关岗位">
<template slot-scope="scope">
<el-select
clearable
v-model="scope.row.postId"
filterable
placeholder="请选择"
>
<el-option
v-for="item in scope.row.postList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="提报人">
<template slot-scope="scope">
<el-cascader
filterable
clearable
v-model="scope.row.operator"
:options="grouplistBackup"
:show-all-levels="false"
:props="userProps"
collapse-tags
></el-cascader>
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<el-button @click="jiaOrgPostArr" type="primary" icon="el-icon-plus" circle size="mini"></el-button>
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="deleteOrgPostRulesList(scope)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item label="指标维度" prop="dimension">
<el-select
@ -411,6 +485,9 @@
</el-table-column>
</el-table>
</el-form-item>
<el-form-item label="指标维度" prop="dimension">
<el-select
v-model="editAdd.dimensionstr"
@ -472,7 +549,7 @@
</template>
<script>
import { govthree, positionlist } from "@/api/personnel/post";
import { govthree, positionlist,orgThreeList } from "@/api/personnel/post";
import { dutyclasslist } from "@/api/duty/dimension";
import project from "@/views/basicInfo/project.vue";
import department from "@/views/basicCont/departTarget.vue";
@ -489,7 +566,8 @@ import {
} from "@/api/duty/project";
import { getgroupdepartmap, getgroupuser } from "@/api/duty/group";
import { add_post_target,dit_post_target } from "@/api/duty/gwDingXing";
import { get_post_target } from '@/api/duty/projectNew'
import { get_post_target } from '@/api/duty/projectNew';
import { searchPostListCont,getorgary,newAddPostTarget } from '@/api/systemaccredit/systemapi';
export default {
components: {
project,
@ -499,6 +577,19 @@ export default {
props:['gwId','gwFromList'],
data() {
return {
searchPostName:"", //
//
orgThree: {},
otherOrgList:[
{
orgId:0,
postId:"",
postList:[],
//
operator:[]
}
],
//
relevantpostsman:[{
@ -556,6 +647,12 @@ export default {
emitPath: false,
multiple: true,
},
orgProps: {
value: "id",
label: "name",
children: "child",
checkStrictly: true
},
dutyclasslist: {},
searchList: {
page: 1,
@ -639,6 +736,7 @@ export default {
this.getGrouplist();
this.getGovthree2();
this.getPost(this.gwFromList.bmId)
this.getOrgList()
},
watch:{
gwFromList:{
@ -679,7 +777,48 @@ export default {
},
},
methods: {
//
async getOrgList(){
const sendData = {
id:309,
all:1
}
const orgList = await orgThreeList(sendData)
this.orgThree = orgList.data
console.log("获取行政组织树--------------------->",orgList)
},
//
async getOrgPost(val){
console.log("获取行政组织岗位--------------------->",val.row,val.row.orgId)
let orgId = 0
if(val.row.orgId){
if(val.row.orgId.length > 0){
orgId = val.row.orgId[val.row.orgId.length -1]
}
}
console.log("获取行政组织岗位---------------12213------>",orgId)
const from = {
organization: orgId.toString(),
page: 1,
pagesize: 1000000,
};
const res = await positionlist(from);
val.row.postList = res.data.list
},
//
jiaOrgPostArr(){
this.otherOrgList.push({
orgId:0,
postId:"",
postList:[],
//
operator:[]
})
},
//
deleteOrgPostRulesList(row){
this.otherOrgList.splice(row.$index,1);
},
//
async selectPostlist(){
const from = {
@ -765,6 +904,7 @@ export default {
//
async getSystemadminlist() {
const from = {
id:309,
level: 4,
};
const res = await getgroupuser(from);
@ -836,15 +976,43 @@ export default {
//
},
//
showAdd() {
async showAdd() {
this.dialogFormVisible = true;
this.relevantpostsman =[];
this.gwFromList.postId.forEach(items=>{
this.relevantpostsman.push({
id:items.toString(),
operator:[]
})
});
this.otherOrgList = []
console.log("新增按钮--------->",this.gwFromList)
let sendCont = {
id:this.gwFromList.bmId.toString()
}
const res = await getorgary(sendCont)
let lastId = this.gwFromList.gwId
this.gwFromList.postId.forEach(items=>{
// this.relevantpostsman.push({
// id:items.toString(),
// operator:[]
// })
lastId = items
this.otherOrgList.push(
{
orgId:res.data,
postId:items,
postList:this.postList,
//
operator:[]
}
)
});
this.postList.forEach(item=>{
if(item.id == lastId){
this.searchPostName = item.name
}
});
console.log("新增按钮------------->",this.relevantpostsman);
},
//
@ -917,7 +1085,35 @@ export default {
console.log(this.relevantpostsman)
this.form.relevantpostsman=this.relevantpostsman
this.form.cycleattr = parseInt(this.form.cycleattr);
const res = await add_post_target(this.form);
console.log("this.form-------------->",this.form,this.otherOrgList)
let otherOrgPostList = new Array
if(this.otherOrgList.length > 0){
this.otherOrgList.forEach(item=>{
if(item.orgId.length > 0 && item.orgId != 0 && item.postId != ""){
otherOrgPostList.push({
orgid:item.orgId[item.orgId.length -1],
postid:item.postId,
operator:item.operator.map(String)
})
}
})
}
this.form.otherposttarget = otherOrgPostList
console.log("this.form------Other-------->",this.form,this.otherOrgList)
// otherOrgList:[
// {
// orgId:0,
// postId:"",
// postList:[],
// //
// operator:[]
// }
// ],
const res = await newAddPostTarget(this.form);
console.log("this.form------res-------->",res)
if (res.code === 0) {
this.$message({
type: "success",
@ -925,8 +1121,8 @@ export default {
showClose: true,
});
}
this.getDataList();
this.closeDialog();
// this.getDataList();
// this.closeDialog();
}
});
},
@ -976,6 +1172,15 @@ export default {
operator:[]
}
]
this.otherOrgList = [
{
orgId:0,
postId:"",
postList:[],
//
operator:[]
}
]
this.initForm();
this.dialogFormVisible = false;
},
@ -1019,6 +1224,40 @@ export default {
this.searchInfo.page = res.data.page;
this.searchInfo.pagesize = res.data.pageSize;
},
//
async searchpostlist(){
if(this.searchPostName == ""){
this.$notify.error({
title: '错误',
message: '请输入岗位名称'
});
}else{
const sendData = {
orgid:"309",
name:this.searchPostName
}
const res = await searchPostListCont(sendData)
// this.otherOrgList=[];
res.data.forEach(item=>{
this.otherOrgList.push({
orgId:item.orgid,
postId:item.postid,
postList:item.postlist,
//
operator:[]
})
})
console.log("搜索全部岗位------1232--->",res)
}
console.log("搜索全部岗位--------->",this.searchPostName)
},
},
};
</script>

112
src/views/echarts/table.vue

@ -124,8 +124,8 @@
<el-table-column prop="dimensionweight" label="维度权重" align="center"></el-table-column>
<el-table-column prop="targetname" align="center" label="考核指标">
<template slot-scope="scope">
<el-link v-if="scope.row.type==1" type="primary" @click="clickOld(scope.row)">{{scope.row.targetname}}</el-link>
<div v-if="scope.row.type==2" @click="clickOld(scope.row)">{{scope.row.targetname}}</div>
<el-link v-if="scope.row.type==1" type="primary" >{{scope.row.targetname}}</el-link>
<div v-if="scope.row.type==2">{{scope.row.targetname}}</div>
</template>
</el-table-column>
<el-table-column prop="targetweight" label="指标权重" align="center"></el-table-column>
@ -205,10 +205,10 @@
<div style='border-bottom: 1px solid #EBEEF5;'>
{{scope.row.score[index].achievement}}
</div> -->
<div v-if="scope.row.manualgear==1" style="">
<div v-if="scope.row.manualgear==1" style="" @click="clickOldMonth(scope.row,index+1)">
{{scope.row.score[index].actualscore}}
</div>
<div v-if="scope.row.manualgear==2" style="color: blue;">
<div v-if="scope.row.manualgear==2" style="color: blue;" @click="clickOldMonth(scope.row,index+1)">
{{scope.row.score[index].actualscore}}
</div>
</template>
@ -270,8 +270,8 @@
<el-table-column prop="dimensionweight" label="维度权重" align="center" width="80"></el-table-column>
<el-table-column prop="targetname" align="center" label="考核指标" width="120">
<template slot-scope="scope">
<el-link v-if="scope.row.type==1" type="primary" @click="clickOld(scope.row)">{{scope.row.targetname}}</el-link>
<div v-if="scope.row.type==2" @click="clickOld(scope.row)">{{scope.row.targetname}}</div>
<el-link v-if="scope.row.type==1" type="primary" >{{scope.row.targetname}}</el-link>
<div v-if="scope.row.type==2" >{{scope.row.targetname}}</div>
</template>
</el-table-column>
<el-table-column prop="targetweight" label="指标权重" align="center" width="80"></el-table-column>
@ -349,28 +349,47 @@
<template slot-scope="scope">
<div style="border-bottom: 1px solid #EBEEF5;">
<span v-if="scope.row.type==2">{{scope.row.score[index].allprize}}</span>
<span v-if="scope.row.type==1&&scope.row.score[index].allprize==0"> - </span>
<span v-if="scope.row.type==1">
<span v-if="scope.row.score[index].allprize==0"> - </span>
<span v-if="scope.row.score[index].allprize!=0">{{scope.row.score[index].allprize}}</span>
</span>
</div>
<div style="border-bottom: 1px solid #EBEEF5;">
<span v-if="scope.row.type==2">{{scope.row.score[index].zeroprize}}</span>
<span v-if="scope.row.type==1&&scope.row.score[index].zeroprize==0"> - </span>
<span v-if="scope.row.type==1">
<span v-if="scope.row.score[index].zeroprize==0"> - </span>
<span v-if="scope.row.score[index].zeroprize!=0">{{scope.row.score[index].zeroprize}}</span>
</span>
</div>
<div style="border-bottom: 1px solid #EBEEF5;">
<span v-if="scope.row.type==2">{{scope.row.score[index].cappingval}}</span>
<span v-if="scope.row.type==1&&scope.row.score[index].cappingval==0"> - </span>
<span v-if="scope.row.type==1">
<span v-if="scope.row.score[index].cappingval==0"> - </span>
<span v-if="scope.row.score[index].cappingval!=0">{{scope.row.score[index].cappingval}}</span>
</span>
</div>
<div style="border-bottom: 1px solid #EBEEF5;">
<span v-if="scope.row.type==2">{{scope.row.score[index].scoreval}}</span>
<span v-if="scope.row.type==1&&scope.row.score[index].scoreval==0"> - </span>
{{scope.row.score[index].scoreval}}
<!-- <span v-if="scope.row.type==2">{{scope.row.score[index].scoreval}}</span>
<span v-if="scope.row.type==1">
<span v-if="scope.row.score[index].scoreval==0"> - </span>
<span v-if="scope.row.score[index].scoreval!=0">{{scope.row.score[index].scoreval}}</span>
</span> -->
</div>
<div style="border-bottom: 1px solid #EBEEF5;">
<span v-if="scope.row.type==2">{{scope.row.score[index].achievement}}</span>
<span v-if="scope.row.type==1&&scope.row.score[index].achievement==0"> - </span>
<span v-if="scope.row.type==2">
<span v-if="scope.row.score[index].achievement=='-'">{{scope.row.score[index].achievement}}</span>
<span v-if="scope.row.score[index].achievement!='-'">{{scope.row.score[index].achievement}}%</span>
</span>
<span v-if="scope.row.type==1">
<span v-if="scope.row.score[index].achievement=='-'">{{scope.row.score[index].achievement}}</span>
<span v-if="scope.row.score[index].achievement!='-'"> - </span>
</span>
</div>
<div v-if="scope.row.manualgear==1" style="border-bottom: 1px solid #EBEEF5;">
<div v-if="scope.row.manualgear==1" style="border-bottom: 1px solid #EBEEF5;color: blue;" @click="clickOldMonth(scope.row,index+1)">
{{scope.row.score[index].actualscore}}
</div>
<div v-if="scope.row.manualgear==2" style="border-bottom: 1px solid #EBEEF5;color: blue;">
<div v-if="scope.row.manualgear==2" style="border-bottom: 1px solid #EBEEF5;color: blue;" @click="clickOldMonth(scope.row,index+1)">
{{scope.row.score[index].actualscore}}
</div>
</template>
@ -521,6 +540,7 @@ export default {
dingliangOldData:[],
rowOldData:{},
chengjiYue:'',
chengjiNian:'',
showDetails:false,
props2: {
checkStrictly: true,
@ -662,7 +682,9 @@ export default {
liePos:'',
transcript:"",
transcript_hui:"",
searchChengji:{}
searchChengji:{
year:0
}
}
},
created(){
@ -671,9 +693,11 @@ export default {
this.getGrouplist()
this.initialDepartment()
this.getscoreTable()
// const timeOne = new Date()
// const year = timeOne.getFullYear()
const timeOne = new Date()
const year = timeOne.getFullYear()
// this.transcript_hui = year
this.searchChengji.year = year
this.chengjiNian = year
},
//
watch: {
@ -721,6 +745,7 @@ export default {
if(this.transcript != ""){
this.searchChengji.year = this.transcript.getFullYear().toString()
}
this.chengjiNian = this.transcript.getFullYear()
console.log("成绩表查询",this.searchChengji)
const res = await departmenttranscript(this.searchChengji)
this.scoreTableList=res.data
@ -743,7 +768,7 @@ export default {
let nowDate = new Date()
const from = {
department:this.rowOldData.departmentid,
year:nowDate.getFullYear(),
year:this.chengjiNian,
month:parseInt(this.chengjiYue),
targetid:this.rowOldData.targetid
}
@ -756,7 +781,7 @@ export default {
let nowDate = new Date()
const from = {
department:this.rowOldData.departmentid,
year:nowDate.getFullYear(),
year:this.chengjiNian,
month:parseInt(this.chengjiYue),
targetid:this.rowOldData.targetid
}
@ -766,14 +791,13 @@ export default {
},
//
async clickYue(row,yue){
let nowDate = new Date()
const from = {
department:row.departmentid,
year:nowDate.getFullYear(),
year:parseInt(this.searchChengji.year),
month:yue
}
console.log("点击成绩表后-->",this.searchChengji.year)
this.chengjiYue=yue
const res = await summarydetails(from)
this.detailsList=res.data
@ -789,6 +813,7 @@ export default {
// this.searchInfo.page = 1
// this.searchInfo.pagesize = 10
// this.searchInfo.parentId=this.childInfo.outId
// this.chengjiNian =
this.getData()
},
//
@ -1079,7 +1104,45 @@ export default {
// }
// }
},
//
clickOldMonth(row,monthVal){
console.log("点击得分详情后调取历史记录-->",row);
this.rowOldData=row
//
if (row.type==1) {
this.dingxingOldMonth(monthVal)
}
//
if (row.type==2) {
this.dingliangOldMonth(monthVal)
}
},
//
async dingxingOldMonth(val){
let nowDate = new Date()
const from = {
department:this.rowOldData.departmentid,
year:this.chengjiNian,
month:val,
targetid:this.rowOldData.targetid
}
const res = await summarydetailsxinglog(from)
this.dingxingOldData=res.data
this.dxdialogFormVisible=true
},
//
async dingliangOldMonth(val){
let nowDate = new Date()
const from = {
department:this.rowOldData.departmentid,
year:this.chengjiNian,
month:val,
targetid:this.rowOldData.targetid
}
const res = await summarydetailslianglog(from)
this.dingliangOldData=res.data
this.dldialogFormVisible=true
},
//
// onSubmit(){
@ -1103,6 +1166,7 @@ export default {
}
if(this.transcript_hui != ""){
this.searchVersion.year = this.transcript_hui.getFullYear().toString()
this.chengjiNian = this.transcript_hui.getFullYear()
}
console.log("this.searchVersion")

20
src/views/workflow/flow1.vue

@ -0,0 +1,20 @@
<template>
</template>
<script>
import { mapMutations } from 'vuex'
export default {
data() {
return {}
},
created(){
this.setTableId(1)
},
methods:{
...mapMutations(['setTableId', 'setIsTried']),
}
}
</script>
<style>
</style>
Loading…
Cancel
Save