Browse Source

后台(0411)

main
renguanyu111 4 years ago
parent
commit
81056c5fe5
  1. 2
      .env.development
  2. 208
      src/api/duty/duty.js
  3. 2
      src/router/index.js
  4. 4
      src/utils/request.js
  5. 1204
      src/views/assessmentProgram/departmentalAssessment copy.vue
  6. 574
      src/views/assessmentProgram/departmentalAssessment.vue
  7. 852
      src/views/assessmentProgram/qualitativeIndicators.vue
  8. 47
      src/views/basicInfo/project.vue
  9. 290
      src/views/basicInfo/target.vue
  10. 2
      src/views/login/index.vue
  11. 10
      src/workspace.code-workspace
  12. 5
      workspace.code-workspace

2
.env.development

@ -2,4 +2,4 @@
ENV = 'development'
# base api
VUE_APP_BASE_API = 'http://gin.vueadmin.net/api'
VUE_APP_BASE_API = 'http://vue.admin.net/api'

208
src/api/duty/duty.js

@ -176,4 +176,212 @@ export const selectdutylist = (data) => {
data: data
})
}
//根据指标ID获取列表信息
export const idtotargetsunlist = (data) => {
return request({
url: '/admin/idtotargetsunlist',
method: 'post',
data: data
})
}
//修改子栏目名称
export const eitesuntargetname = (data) => {
return request({
url: '/admin/eitesuntargetname',
method: 'post',
data: data
})
}
////获取定性指标->指标细则修改回显
export const getdetailedtargetcallback = (data) => {
return request({
url: '/admin/getdetailedtargetcallback',
method: 'post',
data: data
})
}
////获取定性指标->指标细则修改回显与新增
export const eitedetailedtargetcallback = (data) => {
return request({
url: '/admin/eitedetailedtargetcallback',
method: 'post',
data: data
})
}
////删除定性考核指标
export const deldutytarget = (data) => {
return request({
url: '/admin/deldutytarget',
method: 'post',
data: data
})
}
////删除定性考核指标子栏目
export const delsuntardimeat = (data) => {
return request({
url: '/admin/delsuntardimeat',
method: 'post',
data: data
})
}
//获取定性考核指标关系指定列表
export const getdutyrelationlist = (data) => {
return request({
url: '/admin/getdutyrelationlist',
method: 'post',
data: data
})
}
//获取定性考核子栏目
export const lookdutytargetinfo = (data) => {
return request({
url: '/admin/lookdutytargetinfo',
method: 'post',
data: data
})
}
//添加 定性考核指标关系指定
export const adddutyrelation = (data) => {
return request({
url: '/admin/adddutyrelation',
method: 'post',
data: data
})
}
//删除定性考核指标(NEW)
export const newdeltarget = (data) => {
return request({
url: '/admin/newdeltarget',
method: 'post',
data: data
})
}
//获取被修改指标细则的详情(NEW)
export const getneweitedetailedtarget = (data) => {
return request({
url: '/admin/getneweitedetailedtarget',
method: 'post',
data: data
})
}
//删除指标细则内容(NEW)
export const newdeldetailedtarget = (data) => {
return request({
url: '/admin/newdeldetailedtarget',
method: 'post',
data: data
})
}
//删除指标子栏目内容(NEW)
export const newdelsuntarget = (data) => {
return request({
url: '/admin/newdelsuntarget',
method: 'post',
data: data
})
}
//修改或添加定性考核指标细则内容(NEW)
export const neweitedetailedtarget = (data) => {
return request({
url: '/admin/neweitedetailedtarget',
method: 'post',
data: data
})
}
//部门考核添加。NEW
export const newadddepartduty = (data) => {
return request({
url: '/admin/newadddepartduty',
method: 'post',
data: data
})
}
//新的部门考核指标获取列表
export const newgerderpattarlist = (data) => {
return request({
url: '/admin/newgerderpattarlist',
method: 'post',
data: data
})
}
//删除部门考核(New)
export const deldepartduty = (data) => {
return request({
url: '/admin/deldepartduty',
method: 'post',
data: data
})
}
//删除部门考核指标(New)
export const deldepartdutytarger = (data) => {
return request({
url: '/admin/deldepartdutytarger',
method: 'post',
data: data
})
}
//获取定性考核相关部门
export const getdepartforduty = (data) => {
return request({
url: '/admin/getdepartforduty',
method: 'post',
data: data
})
}
//修改已知定性考核指标关联部门
export const eitedepartforduty = (data) => {
return request({
url: '/admin/eitedepartforduty',
method: 'post',
data: data
})
}
//部门考核方案版本列表
export const departdutyplanversion = (data) => {
return request({
url: '/admin/departdutyplanversion',
method: 'post',
data: data
})
}
//添加部门考核方案(待版本号的版本)
export const adddepartdutyversio = (data) => {
return request({
url: '/admin/adddepartdutyversio',
method: 'post',
data: data
})
}
//查看考核方案(待版本号的版本)
export const lookdepartdutyversio = (data) => {
return request({
url: '/admin/lookdepartdutyversio',
method: 'post',
data: data
})
}
//启用禁用删除(待版本号的版本)
export const onoffdepartdutyversio = (data) => {
return request({
url: '/admin/onoffdepartdutyversio',
method: 'post',
data: data
})
}
//修改部门考核方案内的说明(待版本号的版本)
export const eitedepartexplain = (data) => {
return request({
url: '/admin/eitedepartexplain',
method: 'post',
data: data
})
}
//获取考核方法要修改的数据
export const geteitesuntarterinfo = (data) => {
return request({
url: '/admin/geteitesuntarterinfo',
method: 'post',
data: data
})
}

2
src/router/index.js

@ -217,7 +217,7 @@ export const constantRoutes = [
path: 'Target',
name: 'Target',
component: () => import('@/views/basicInfo/target'),
meta: { title: '指标目标', icon: 'tree' }
meta: { title: '考核目标', icon: 'tree' }
},
// {
// path: 'jobEntry',

4
src/utils/request.js

@ -7,7 +7,7 @@ import { getToken,getKey } from '@/utils/auth'
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests
timeout: 5000 // request timeout
timeout: 180000 // request timeout
})
// request interceptor
@ -53,7 +53,7 @@ service.interceptors.response.use(
type: 'error',
duration: 5 * 1000
})
if(res.data.code === 3){
if(res.code === 7){
store.commit('user/loginOut')

1204
src/views/assessmentProgram/departmentalAssessment copy.vue

File diff suppressed because it is too large

574
src/views/assessmentProgram/departmentalAssessment.vue

@ -1,25 +1,36 @@
<template>
<!-- 部门考核录入 -->
<div class="dashboard-container">
<!-- <div class="gva-search-box">
<el-form ref="searchForm" :inline="true" :model="searchInfo">
<el-form-item label="所属定量考核">
<span>
<el-tag v-if="childInfo.title!=''">{{childInfo.title}}</el-tag>
<projectDialog @checkedInfo="getCheckedInfo"></projectDialog>
</span>
<div class="gva-search-box">
<el-form ref="searchForm" :inline="true" :model="searchVersion">
<el-form-item label="所属公司">
<el-select v-model="searchVersion.group" clearable placeholder="请选择" @change="selectGroup">
<el-option
v-for="item in companyList"
:key="item.wxId"
:label="item.name"
:value="item.wxId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="定性指标名称">
<el-input
placeholder="请输入名称"
v-model="searchInfo.title"
clearable>
</el-input>
<el-form-item label="所属部门">
<el-select v-model="searchVersion.deaprtid" clearable placeholder="请选择">
<el-option
v-for="item in departmentList"
:key="item.id"
:label="item.name"
:value="item.id">
</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-form-item label="年度">
<el-select v-model="searchVersion.year" placeholder="请选择">
<el-option
v-for="item in yearList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
@ -27,13 +38,64 @@
<el-button size="mini" icon="el-icon-refresh" @click="onReset">重置</el-button>
</el-form-item>
</el-form>
</div> -->
</div>
<div class="gva-table-box">
<div class="gva-btn-list">
<!-- <el-button size="mini" type="primary" icon="el-icon-setting" @click="showDimension()">设置维度权重</el-button> -->
<el-button size="mini" type="primary" icon="el-icon-setting" @click="showIndex()">生成部门考核方案</el-button></el-button>
</div>
<el-table :data="tableData" border :span-method="objectSpanMethod">
<el-table border :data="versionData" :span-method="versionSpanMethod">
<el-table-column align="left" label="部门">
<template #default="scope">
{{scope.row.groupname}}{{scope.row.deaprtname}}
</template>
</el-table-column>
<el-table-column align="left" label="年度" prop="year"/>
<el-table-column align="left" label="版本号">
<template #default="scope">
{{scope.row.key}}
</template>
</el-table-column>
<el-table-column align="left" label="时间" prop="time"/>
<el-table-column align="left" label="状态">
<template #default="scope">
<el-switch
inline-prompt
active-text="正常"
inactive-text="禁止"
v-model="scope.row.state"
active-color="#13ce66"
inactive-color="#ff4949"
:active-value=1
:inactive-value=2
@change="changeVal($event,scope.row.key)"
/>
</template>
</el-table-column>
<el-table-column align="left" fixed="right" label="操作" width="200">
<template #default="scope">
<el-button
icon="el-icon-view"
size="small"
type="text"
@click="showDetails(scope.row)"
>查看详情</el-button>
<!-- <el-button
icon="el-icon-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>
<!-- <el-table :data="tableData" border :span-method="objectSpanMethod">
<el-table-column prop="parentname" label="部门"></el-table-column>
<el-table-column prop="dimensionname" label="考核维度"></el-table-column>
<el-table-column prop="dimensionweight" label="维度权重"></el-table-column>
@ -45,7 +107,6 @@
</el-table-column>
<el-table-column prop="targetweight" label="指标权重"></el-table-column>
<el-table-column prop="unit" label="单位"/>
<!-- <el-table-column prop="referencescore" label="分值"/> -->
<el-table-column prop="cycle" label="周期">
<template slot-scope="scope">
<el-tag v-if="scope.row.cycle==1"></el-tag>
@ -76,11 +137,30 @@
>查看</el-button>
</template>
</el-table-column>
</el-table>
<el-table-column prop="userlist" label="操作">
<template slot-scope="scope">
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="deldepTarger(scope.row)"
>删除</el-button>
</template>
</el-table-column>
<el-table-column prop="userlist" label="操作">
<template slot-scope="scope">
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="deldetePartDuty(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table> -->
</div>
<!-- 新增弹框 -->
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="100%">
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px">
<el-row>
<el-col :span="12">
@ -211,7 +291,7 @@
</el-dialog>
<!-- 人员弹框 -->
<el-dialog :visible.sync="showUser" title="执行人" width="30%">
<el-descriptions class="margin-top" :column="3" size="medium" border>
<!-- <el-descriptions class="margin-top" :column="3" size="medium" border>
<el-descriptions-item v-for="item in userlistary" :key="item.key">
<template slot="label">
<i class="el-icon-user"></i>
@ -219,13 +299,39 @@
</template>
{{item.name}}
</el-descriptions-item>
</el-descriptions>
</el-descriptions> -->
<el-table
:data="userlistary"
style="width: 100%">
<el-table-column
prop="date"
label="头像">
<template slot-scope="scope">
<el-avatar shape="square" size="large" :src="scope.row.icon"></el-avatar>
</template>
</el-table-column>
<el-table-column
prop="number"
label="工号">
</el-table-column>
<el-table-column
prop="address"
label="部门">
<template slot-scope="scope">
{{scope.row.groupname}}{{scope.row.departmentname}}
</template>
</el-table-column>
<el-table-column
prop="name"
label="姓名">
</el-table-column>
</el-table>
</el-dialog>
<!-- 指标权重弹框 -->
<el-dialog :close-on-click-modal="false" :visible.sync="demDialogFormVisible" title="指标组合" width="70%">
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px">
<el-row>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="所属公司" prop="title">
<el-select v-model="form.group" clearable placeholder="请选择" @change="selectGroup">
<el-option
@ -237,7 +343,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="所属部门" prop="title" v-if="form.group!=''">
<el-select v-model="form.parentid" clearable placeholder="请选择" @change="shouWei">
<el-option
@ -249,8 +355,22 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="年度">
<el-select v-model="form.year" placeholder="请选择">
<el-option
v-for="item in yearList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<div style="width: 200px;height: 40px;line-height: 40px;margin: 0 auto;">
纬度合计分{{weiduFraction}}
</div>
</el-col>
</el-row>
@ -259,7 +379,6 @@
<el-card class="box-card" v-for="(item,index) in weiDuList" :key="item.id">
<el-row>
<el-col :span="8">
<span>考核纬度{{item.name}}</span>
</el-col>
<el-col :span="8">
@ -280,7 +399,6 @@
border
:data="item.child"
style="width: 100%">
<el-table-column
label="指标名称"
align="center"
@ -298,13 +416,14 @@
</template>
</el-table-column>
<el-table-column
label="分值"
label="指标权重"
align="center"
prop="referencescore"
>
<template slot-scope="scope">
<el-input v-if="scope.row.istrue==1" v-model.number="scope.row.referencescore" autocomplete="off" @change="zhibiaofen" />
<div v-if="scope.row.istrue==2">{{scope.row.referencescore}}</div>
<el-input v-model.number="scope.row.referencescore" autocomplete="off" @change="zhibiaofen" />
<!-- <el-input v-if="scope.row.istrue==1" v-model.number="scope.row.referencescore" autocomplete="off" @change="zhibiaofen" /> -->
<!-- <div v-if="scope.row.istrue==2">{{scope.row.referencescore}}</div> -->
</template>
</el-table-column>
@ -363,22 +482,118 @@
</el-dialog>
<!-- 考核办法弹框 -->
<el-dialog :visible.sync="methodShow" title="考核办法" width="60%">
<el-table :data="methodList" border :span-method="methodSpanMethod">
<el-table-column prop="targetsunname" label="考核项目"></el-table-column>
<el-table :data="methodList" border :span-method="methodSpanMethod" :cell-style="{padding:'0px'}">
<el-table-column prop="targetsunname" label="考核项目" width="85"></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="content" label="考核办法"></el-table-column>
<!-- <el-table-column prop="unit" label="单位"/> -->
<el-table-column prop="referencescore" label="标准分"/>
<el-table-column prop="detailedtargetname" label="考核内容"></el-table-column>
<el-table-column prop="score" label="考核标准" width="85"></el-table-column>
<el-table-column prop="unit" label="单位" width="85"/>
<el-table-column prop="content" label="备注说明" width="200"/>
<!-- <el-table-column prop="referencescore" label="标准分"/> -->
</el-table>
</el-dialog>
<!-- 部门考核详情弹框 -->
<el-dialog :visible.sync="detailsShow" title="考核方案" width="75%" @close="detailsClose">
<el-table :data="tableData" border :span-method="objectSpanMethod" :cell-style="{padding:'0px'}">
<!-- <el-table-column prop="parentname" label="部门"></el-table-column> -->
<el-table-column prop="dimensionname" label="考核维度" width="80"></el-table-column>
<el-table-column prop="dimensionweight" label="维度权重" align="center" width="80"></el-table-column>
<el-table-column prop="targetname" label="考核指标" width="140">
<template slot-scope="scope">
<el-link v-if="scope.row.type==1" type="primary" @click="showMethod(scope.row)">{{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>
<el-table-column prop="content" label="说明"></el-table-column>
<el-table-column prop="unit" label="单位" align="center" width="80"/>
<el-table-column prop="cycle" label="周期" align="center" width="80">
<template slot-scope="scope">
<el-tag v-if="scope.row.cycle==1"></el-tag>
<el-tag v-if="scope.row.cycle==2"></el-tag>
<el-tag v-if="scope.row.cycle==3"></el-tag>
<el-tag v-if="scope.row.cycle==4"></el-tag>
<el-tag v-if="scope.row.cycle==5">季度</el-tag>
<el-tag v-if="scope.row.cycle==6"></el-tag>
</template>
</el-table-column>
<el-table-column prop="cycleattr" label="频次" width="80">
<template slot-scope="scope">
<div v-if="scope.row.cycle==1">每班{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==2">每天{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==3">每周{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==4">每月{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==5">每季度{{scope.row.cycleattr}}</div>
<div v-if="scope.row.cycle==6">每年{{scope.row.cycleattr}}</div>
</template>
</el-table-column>
<el-table-column prop="userlist" label="执行人" width="80">
<template slot-scope="scope">
<el-button
icon="el-icon-view"
size="small"
type="text"
@click="showUserList(scope.row)"
>查看</el-button>
</template>
</el-table-column>
<el-table-column prop="userlist" label="操作" width="120">
<template slot-scope="scope">
<el-button
icon="el-icon-edit"
size="small"
type="text"
@click="editTarger(scope.row)"
>修改</el-button>
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="deldepTarger(scope.row)"
>删除</el-button>
</template>
</el-table-column>
<!-- <el-table-column prop="userlist" label="操作">
<template slot-scope="scope">
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="deldetePartDuty(scope.row)"
>删除</el-button>
</template>
</el-table-column> -->
</el-table>
</el-dialog>
<!-- 修改指标说明 -->
<el-dialog :visible.sync="contentShow" title="修改" width="40%">
<el-form :model="editTargerFrom" label-width="150px">
<el-form-item label="说明" prop="content">
<el-input
type="textarea"
autosize
placeholder="请输入内容"
v-model="editTargerFrom.content">
</el-input>
<!-- <el-input v-model="editTargerFrom.content"/> -->
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button size="small" type="primary" @click="xiuShuoMing"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script>
import { dutyclasslist } from '@/api/duty/dimension'
import { gettasktarget,gettasktargetsun,gettasktargetcontary,addqualeval,addration,departmenttasklist,addqubatch,bumenList,departmentlistnew,adddepartmentdutyinfo } from '@/api/duty/duty'
import { gettasktarget,gettasktargetsun,gettasktargetcontary,addqualeval,
addration,departmenttasklist,addqubatch,bumenList,departmentlistnew,adddepartmentdutyinfo,
newgerderpattarlist,newadddepartduty,deldepartdutytarger,deldepartduty,departdutyplanversion,adddepartdutyversio,
lookdepartdutyversio,onoffdepartdutyversio,eitedepartexplain
} from '@/api/duty/duty'
import projectDialog from '@/components/projectDialog/index.vue'
import { dutylist,getdutyinfo,eitedutyinfo,eitedutystate } from '@/api/duty/quantitativeIndicators'
import {
@ -394,6 +609,9 @@ export default {
},
data() {
return {
contentShow:false,
editTargerFrom:{},
detailsShow:false,
//
weiduFraction:0,
//
@ -456,6 +674,7 @@ export default {
},
//
departmentList:[],
versionSpanArr1:[],
//
companyList:[],
editChildInfo:{},
@ -489,26 +708,71 @@ export default {
parentid:'',
child:[]
},
searchDepartmentList:[],
//
dialogFormVisible:false,
//
editDialogFormVisible:false,
total: 0,
tableData:[],
yearList:[{
value: '2021',
label: '2021'
}, {
value: '2022',
label: '2022'
}, {
value: '2023',
label: '2023'
}, {
value: '2024',
label: '2024'
}, {
value: '2025',
label: '2025'
}, {
value: '2026',
label: '2026'
}, {
value: '2027',
label: '2027'
}, {
value: '2028',
label: '2028'
}, {
value: '2029',
label: '2029'
}, {
value: '2030',
label: '2030'
}],
pos:'',
pos1:'',
pos2:'',
versionPos:'',
spanArr:[],
spanArr1:[],
spanArr2:[],
versionSpanArr:[],
methodSpanArr:[],
methodList:[],
methodPos:'',
methodShow:false,
versionData:[],
//
searchInfo: {
// group: "3",
type: 0,
group: "3",
departmentid:'',
},
//
searchVersion: {
group: "3",
deaprtid:'',
year: "", //
},
showDetailsRow:{},
//
abc:{
aaa:"111",
@ -529,7 +793,9 @@ export default {
this.$router.push('/login')
}
//
this.getDataList()
this.initialDepartment()
this.getVersionDataList()
// this.getDataList()
this.getGrouplist()
this.getDutyclasslist()
this.getSystemadminlist()
@ -544,6 +810,17 @@ export default {
this.getMethodSpanArr(this.methodList);
});
},
versionData() {
this.$nextTick(() => {
this.versionSpanArr=[],
this.versionPos='',
// this.methodSpanArr1=[],
// this.methodPos1='',
//createddataList
this.getVersionSpanArr(this.versionData);
// this.getMethodSpanArr1(this.methodList);
});
},
tableData() {
this.$nextTick(() => {
this.spanArr=[],
@ -561,6 +838,117 @@ export default {
},
},
methods: {
getVersionSpanArr(data) {
// data
for (var i = 0; i < data.length; i++) {
if (i === 0) {
this.versionSpanArr.push(1);
this.versionPos = 0;
} else {
//
if (data[i].department === data[i - 1].department) {
this.versionSpanArr[this.versionPos] += 1;
this.versionSpanArr.push(0);
} else {
this.versionSpanArr.push(1);
this.versionPos = i;
}
}
}
},
versionSpanMethod({ row, column, rowIndex, columnIndex }){
if (columnIndex === 0) {
const _row = this.versionSpanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
// [0,0] [2,1]
rowspan: _row,
colspan: _col
};
}
},
//
detailsClose(){
this.tableData=[]
},
async showDetails(row){
this.showDetailsRow=row
this.getDataList()
this.detailsShow=true
},
//
async deldetePartDuty(row){
const deleFrom = {
group: row.group,
deaprtid: row.parentid
}
const res = await deldepartduty(deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '删除成功!'
})
this.getDataList()
}
},
//
async xiuShuoMing(){
const res = await eitedepartexplain(this.editTargerFrom)
this.editTargerFrom={}
this.getDataList()
this.contentShow=false
},
//
async editTarger(row){
this.editTargerFrom={
content:row.content,
group:row.group,
qualevalid:row.qualevalid,
deaprtid:row.parentid,
dimension:row.dimension,
targetid:row.target
},
// this.editTargerFrom.content=row.content
// this.editTargerFrom.group=row.group
// this.editTargerFrom.qualevalid=row.qualevalid
// this.editTargerFrom.deaprtid=row.parentid
// this.editTargerFrom.dimension=row.dimension
// this.editTargerFrom.targetid=row.target
this.contentShow=true
// const deleFrom = {
// group: row.group,
// deaprtid: row.parentid,
// dimension: "1", //
// targetid: "1" //
// }
// const res = await deldepartdutytarger(deleFrom)
// if (res.code === 0) {
// this.$message({
// type: 'success',
// message: '!'
// })
// this.getDataList()
// }
},
//
async deldepTarger(row){
const deleFrom = {
group: row.group,
deaprtid: row.parentid,
dimension: "1", //
targetid: "1" //
}
const res = await deldepartdutytarger(deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '删除成功!'
})
this.getDataList()
}
},
//
zhibiaofen(){
const that=this
@ -590,7 +978,9 @@ export default {
this.form.group=this.form.group.toString()
this.form.parentid=this.form.parentid.toString()
this.form.child=this.weiDuList
const res = await adddepartmentdutyinfo(this.form)
// const res = await adddepartmentdutyinfo(this.form)
// const res = await newadddepartduty(this.form)
const res = await adddepartdutyversio(this.form)
if (res.code === 0) {
this.$message({
type: 'success',
@ -741,7 +1131,16 @@ export default {
},
//
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
// if (columnIndex === 0||columnIndex === 10) {
// const _row = this.spanArr[rowIndex];
// const _col = _row > 0 ? 1 : 0;
// return {
// // [0,0] [2,1]
// rowspan: _row,
// colspan: _col
// };
// }
if (columnIndex === 10) {
const _row = this.spanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
@ -750,7 +1149,7 @@ export default {
colspan: _col
};
}
if (columnIndex === 1||columnIndex === 2) {
if (columnIndex === 0||columnIndex === 1) {
const _row = this.spanArr1[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
@ -759,7 +1158,7 @@ export default {
colspan: _col
};
}
if (columnIndex === 3||columnIndex === 4||columnIndex === 5||columnIndex === 6||columnIndex === 7||columnIndex === 8||columnIndex === 9) {
if (columnIndex === 2||columnIndex === 3||columnIndex === 4||columnIndex === 5||columnIndex === 6||columnIndex === 7||columnIndex === 8||columnIndex === 9) {
const _row = this.spanArr2[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
@ -806,7 +1205,8 @@ export default {
parentid:this.form.parentid.toString(),
}
const that = this
const res = await departmentlistnew(From)
// const res = await departmentlistnew(From)
const res = await newgerderpattarlist(From)
this.weiDuList=JSON.parse(JSON.stringify(res.data))
this.weiDuList.forEach(function(element) {
that.$set(element, 'ordering', '')
@ -816,7 +1216,6 @@ export default {
that.$set(iteam, 'status', 1)
})
}
});
console.log(this.weiDuList)
}
@ -842,12 +1241,34 @@ export default {
async selectGroup(val){
if (val!='') {
const departmentFrom={
id:val
id:parseInt(val)
}
const res = await departmentlist(departmentFrom)
this.departmentList=res.data
}
},
//
async searchSelectGroup(val){
if (val!='') {
const departmentFrom={
id:val
}
const res = await departmentlist(departmentFrom)
this.searchDepartmentList=res.data
}
},
//
async initialDepartment(){
const departmentFrom={
id:3
}
const res = await departmentlist(departmentFrom)
this.departmentList=res.data
},
//
getEditCheckedfrom(data){
@ -882,15 +1303,15 @@ export default {
})
.then(async() => {
this.deleFrom.state=3;
this.deleFrom.outid=row.outId;
const res = await statedutyclass(this.deleFrom)
this.deleFrom.key=row.key;
const res = await onoffdepartdutyversio(this.deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '删除成功!'
})
this.getDataList()
this.getVersionDataList()
}
})
},
@ -911,28 +1332,28 @@ export default {
//
async changeVal(val,id){
console.log(val)
this.switchFrom.outid=id
this.switchFrom.key=id
if (val==1) {
this.switchFrom.state=1;
const res = await eitedutystate(this.switchFrom)
const res = await onoffdepartdutyversio(this.switchFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '修改状态成功',
showClose: true
})
this.getDataList()
this.getVersionDataList()
}
} else {
this.switchFrom.state=2;
const res = await eitedutystate(this.switchFrom)
const res = await onoffdepartdutyversio(this.switchFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '修改状态成功',
showClose: true
})
this.getDataList()
this.getVersionDataList()
}
}
},
@ -949,10 +1370,10 @@ export default {
},
//
onSubmit() {
this.page = 1
this.pageSize = 10
this.searchInfo.parentId=this.childInfo.outId
this.getDataList()
// this.page = 1
// this.pageSize = 10
// this.searchInfo.parentId=this.childInfo.outId
this.getVersionDataList()
},
//
formatDate(nS) {
@ -1042,8 +1463,37 @@ export default {
},
//
async getDataList() {
const res = await departmenttasklist(this.searchInfo)
// let searchInfoFrom = {}
// searchInfoFrom=JSON.parse(JSON.stringify(this.searchInfo));
// searchInfoFrom.departmentid=searchInfoFrom.departmentid.toString()
// const res = await departmenttasklist(searchInfoFrom)
// if (res.data==null) {
// this.tableData=[]
// }
// this.tableData = res.data
const from = {
key:this.showDetailsRow.key
}
const res = await lookdepartdutyversio(from)
if (res.code === 0) {
this.tableData=res.data
}
},
//
async getVersionDataList() {
this.searchVersion.deaprtid=this.searchVersion.deaprtid.toString()
const res = await departdutyplanversion(this.searchVersion)
if (res.data==null) {
this.versionData=[]
}
this.versionData = res.data
this.searchVersion={
group: "3",
deaprtid:'',
year: "", //
}
// this.searchVersion.deaprtid=parseInt(this.searchVersion.deaprtid )
}
}
}

852
src/views/assessmentProgram/qualitativeIndicators.vue

File diff suppressed because it is too large

47
src/views/basicInfo/project.vue

@ -10,13 +10,16 @@
clearable>
</el-input>
</el-form-item>
<el-form-item label="是否通用" prop="share">
<!-- <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-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 clearable v-model="searchInfo.relevantdepartments" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader>
</el-form-item>
<el-form-item label="指标维度" prop="dimension">
@ -60,12 +63,12 @@
<div v-if="scope.row.type==2">定量指标</div>
</template>
</el-table-column>
<el-table-column align="left" label="是否通用">
<!-- <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> -->
<el-table-column align="left" label="计量单位" prop="unites"/>
<el-table-column align="left" label="考核周期" prop="outId">
<template #default="scope">
@ -81,7 +84,14 @@
<el-table-column align="left" label="关联部门">
<template #default="scope">
<div v-for="item in scope.row.relevantdepartmentsmap" :key="item.key">{{item.title}}</div>
<el-collapse>
<el-collapse-item title="详情" name="1">
<div v-for="(iteam,index) in scope.row.relevantdepartmentsmap">
{{iteam.title}}
</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="数据提交">
@ -103,7 +113,7 @@
/>
</template>
</el-table-column>
<el-table-column align="left" fixed="right" label="操作" width="200">
<el-table-column label="操作" width="200">
<template #default="scope">
<el-button
icon="el-icon-edit"
@ -137,13 +147,16 @@
<el-form-item label="指标名称" prop="title">
<el-input v-model="form.title" autocomplete="off" />
</el-form-item>
<el-form-item label="是否通用" prop="share">
<!-- <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-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 clearable v-model="form.relevantdepartments" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader>
</el-form-item>
<el-form-item label="指标维度" prop="dimension">
@ -196,14 +209,17 @@
<el-form-item label="指标名称" prop="title">
<el-input v-model="editAdd.title" autocomplete="off" />
</el-form-item>
<el-form-item label="是否通用" prop="share">
<!-- <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> -->
<el-form-item v-if="editAdd.share==2" label="关联部门" prop="relevantdepartmentsmap">
<!-- <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 clearable v-model="editAdd.relevantdepartmentsmap" :options="grouplist" :show-all-levels="false" :props="props"></el-cascader>
</el-form-item>
<el-form-item label="指标维度" prop="dimensionidstr">
@ -319,6 +335,7 @@ export default {
assessList:{},
//
form:{
share:2,
cycleattr:1,
},
//
@ -341,7 +358,7 @@ export default {
rules: {
title: [{ required: true, message: '必填', trigger: 'blur' }],
type: [{ required: true, message: '必填', trigger: 'blur' }],
share: [{ 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' }],
@ -352,7 +369,7 @@ export default {
editRules:{
title: [{ required: true, message: '必填', trigger: 'blur' }],
type: [{ required: true, message: '必填', trigger: 'blur' }],
share: [{ 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' }],

290
src/views/basicInfo/target.vue

@ -4,9 +4,9 @@
<div class="gva-search-box">
<el-form ref="searchForm" :inline="true" :model="searchInfo">
<el-form-item label="部门">
<el-select v-model.string="searchInfo.departmentid" clearable placeholder="请选择" @change="shouWei">
<el-select v-model.string="searchInfo.departmentid" clearable placeholder="请选择">
<el-option
v-for="item in departmentList"
v-for="item in buMenList"
:key="item.id"
:label="item.name"
:value="item.id">
@ -67,16 +67,20 @@
<!-- 新增弹框 -->
<el-dialog :close-on-click-modal="false" :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增" width="60%">
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px">
<el-form-item label="年度">
<el-select v-model.number="form.year" placeholder="请选择">
<el-row>
<el-col :span="12">
<el-form-item label="所属公司">
<el-select v-model="form.group" clearable placeholder="请选择" @change="selectGroup">
<el-option
v-for="item in yearList"
:key="item.value"
:label="item.label"
:value="item.value">
v-for="item in companyList"
:key="item.wxId"
:label="item.name"
:value="item.wxId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属部门">
<el-select v-model="form.department" clearable placeholder="请选择">
<el-option
@ -87,6 +91,10 @@
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="考核维度">
<el-select v-model="form.dimension" clearable placeholder="请选择" @change="shouZhi">
<el-option
@ -97,6 +105,8 @@
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考核指标" v-if="form.dimension!=''">
<el-select v-model="form.target" clearable placeholder="请选择">
<el-option
@ -107,6 +117,22 @@
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="年度">
<el-select v-model.number="form.year" placeholder="请选择">
<el-option
v-for="item in yearList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="周期">
<el-select v-model="form.cycle" placeholder="请选择" @change="selectZhou">
<el-option
@ -117,6 +143,56 @@
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-card class="box-card" style="width:85%;margin: 0 auto;">
<div slot="header" class="clearfix">
<span>批量添加目标值</span>
</div>
<!-- <div v-for="o in 4" :key="o" class="text item">
{{'列表内容 ' + o }}
</div> -->
<div>
<el-row :gutter="20">
<el-col :span="6">
<el-input
placeholder="零奖值"
v-model="lingJiang"
clearable>
<template slot="prepend">零奖值</template>
</el-input>
</el-col>
<el-col :span="6">
<el-input
placeholder="全奖值"
v-model="quanJiang"
clearable>
<template slot="prepend">全奖值</template>
</el-input>
</el-col>
<el-col :span="6">
<el-input
placeholder="封顶值"
v-model="fengDing"
clearable>
<template slot="prepend">封顶值</template>
</el-input>
</el-col>
<el-col :span="6">
<el-button type="primary" round @click="batch">确定</el-button>
</el-col>
</el-row>
</div>
</el-card>
<!-- <el-row>
<el-col :span="12">
</el-col>
<el-col :span="12">
</el-col>
</el-row> -->
<el-form-item label="" v-if="form.cycle==1">
<el-table
border
@ -138,6 +214,14 @@
<el-input v-model.number="scope.row.allprize" autocomplete="off" />
</template>
</el-table-column>
<el-table-column
label="封顶值"
align="center"
>
<template slot-scope="scope">
<el-input v-model.number="scope.row.capping" autocomplete="off" />
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item label="" v-if="form.cycle==2">
@ -169,6 +253,14 @@
<el-input v-model.number="scope.row.allprize" autocomplete="off" />
</template>
</el-table-column>
<el-table-column
label="封顶值"
align="center"
>
<template slot-scope="scope">
<el-input v-model.number="scope.row.capping" autocomplete="off" />
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item label="" v-if="form.cycle==3">
@ -200,6 +292,14 @@
<el-input v-model.number="scope.row.allprize" autocomplete="off" />
</template>
</el-table-column>
<el-table-column
label="封顶值"
align="center"
>
<template slot-scope="scope">
<el-input v-model.number="scope.row.capping" autocomplete="off" />
</template>
</el-table-column>
</el-table>
</el-form-item>
@ -272,13 +372,16 @@ import {
getgroupdepartmap,
getgroupuser
} from '@/api/duty/group'
// import { forEach } from 'mock/user'
export default {
name: 'Dashboard',
data() {
return {
fengDing:0,
//
jiangZhiDialogFormVisible:false,
lingJiang:'',
quanJiang:'',
departmentList:[],
//
dutyClassFrom:{
@ -289,93 +392,110 @@ export default {
nian:[
{
id: 1, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '',//,
capping:0
},
],
jiangZhi:Number,
jidu:[
{
id: 1, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 2, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '' , //
capping:0
},
{
id: 3, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 4, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
],
yue:[
{
id: 1, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 2, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 3, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 4, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 5, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 6, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 7, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 8, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 9, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 10, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 11, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
{
id: 12, //
zeroprize: 0, //
allprize: 100 //
zeroprize: '', //
allprize: '', //
capping:0
},
],
cycleList:[{
@ -431,8 +551,9 @@ export default {
assessList:{},
//
form:{
group:3,
// group:'3',
},
buMenList:[],
//
dialogFormVisible:false,
//
@ -450,6 +571,7 @@ export default {
spanArr:[],
pos1:'',
spanArr1:[],
companyList:[],
//
abc:{
aaa:"111",
@ -473,8 +595,10 @@ export default {
}
//
this.getDataList()
this.selectGroup()
this.getGrouplist()
// this.selectGroup()
this.getDutyclasslist()
this.buMen()
},
watch:{
tableData() {
@ -490,6 +614,58 @@ export default {
},
},
methods: {
batch(){
//
if (this.form.cycle==1) {
this.nian.forEach(element => {
element.zeroprize=this.lingJiang
element.allprize=this.quanJiang
element.capping=this.fengDing
})
}
//
if (this.form.cycle==2) {
this.jidu.forEach(element => {
element.zeroprize=this.lingJiang
element.allprize=this.quanJiang
element.capping=this.fengDing
})
}
//
if (this.form.cycle==3) {
this.yue.forEach(element => {
element.zeroprize=this.lingJiang
element.allprize=this.quanJiang
element.capping=this.fengDing
})
}
},
//
async getGrouplist(){
const res = await getgroupdepartmap()
this.companyList=res.data.list
},
//
async selectGroup(val){
if (val!='') {
const departmentFrom={
outid:val
}
const res = await departmentlist(departmentFrom)
this.departmentList=res.data
}
},
//
async buMen(){
const departmentFrom={
outid:this.searchInfo.groupid
}
const res = await departmentlist(departmentFrom)
this.buMenList=res.data
},
//
async showJiang(row){
const from = {
@ -592,14 +768,14 @@ export default {
const res = await dutyclasslist(this.dutyClassFrom)
this.dutyclasslist=res.data.list
},
//
async selectGroup(){
const departmentFrom={
id:3
}
const res = await departmentlist(departmentFrom)
this.departmentList=res.data
},
// //
// async selectGroup(){
// const departmentFrom={
// id:3
// }
// const res = await departmentlist(departmentFrom)
// this.departmentList=res.data
// },
//
async shouWei(val){
const methodData={
@ -640,7 +816,6 @@ export default {
//
showAdd(){
this.dialogFormVisible=true;
console.log(this.dialogFormVisible)
},
//
async showEdit(row){
@ -709,6 +884,13 @@ export default {
if (this.form.cycle==3) {
this.form.cycleadded=this.yue
}
this.form.cycleadded.forEach(element =>{
element.allprize=Number(element.allprize)
element.zeroprize=Number(element.zeroprize)
element.capping=Number(element.capping)
})
this.form.group=parseInt(this.form.group)
const res = await setevaluationobjectives(this.form)
if (res.code === 0) {
this.$message({

2
src/views/login/index.vue

@ -14,7 +14,7 @@
ref="loginForm"
:model="loginForm"
:rules="rules"
@keyup.enter="submitForm"
@keyup.native.enter="submitForm"
>
<el-form-item prop="username">
<el-input v-model="loginForm.username" placeholder="请输入用户名">

10
src/workspace.code-workspace

@ -0,0 +1,10 @@
{
"folders": [
{
"path": ".."
}
],
"settings": {
"thiefBook.filePath": "H:\\BaiduNetdiskDownload\\二号首长1--2部.txt"
}
}

5
workspace.code-workspace

@ -3,5 +3,8 @@
{
"path": "."
}
]
],
"settings": {
"thiefBook.filePath": "H:\\BaiduNetdiskDownload\\二号首长1--2部.txt"
}
}
Loading…
Cancel
Save