You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
275 lines
7.4 KiB
275 lines
7.4 KiB
<!--
|
|
@ 作者: 鲁智强
|
|
@ 时间: 2023-08-15 11:34:38
|
|
@ 备注: 岗位指标添加
|
|
-->
|
|
<template>
|
|
<el-dialog :model-value="true" :title="title" @close="handleClose">{{formData.yrb}}
|
|
<el-form ref="ruleFormRef" :model="formData" label-width="120px" class="demo-ruleForm">
|
|
<el-form-item label="指标名称:" prop="name">
|
|
<el-input v-model="formData.title" placeholder="请输入指标名称"></el-input>
|
|
</el-form-item>
|
|
<el-form-item v-model="formData.otherposttarget" label="岗位/人员:" prop="name">
|
|
<div>
|
|
{{formData.gov}}
|
|
<el-tree-select ref="orgTreeRef" v-model="iop[0].orgid" clearable show-checkbox check-strictly=true node-key="id" :data="lzq" :props="orgTreeProps" :render-after-expand="false" @check="position"/>
|
|
<el-tree-select ref="orgTreeRef" v-model="iop[0].postid" clearable multiple show-checkbox node-key="id" :data="zjr" :props="orgTreeProps" :render-after-expand="false" @check="chl"/>
|
|
<el-tree-select ref="orgTreeRef" v-model="iop[0].operator" clearable multiple show-checkbox node-key="key" :data="tablea" :props="orgTreeProps" :render-after-expand="false" @check="lll"/>
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item label="指标维度:" prop="sex">
|
|
<el-tree-select ref="orgTreeRef" v-model="formData.dimension" clearable multiple node-key="id" :data="tables" :props="orgTreeProp" :render-after-expand="false"/>
|
|
</el-form-item>
|
|
<el-form-item label="指标性质:" prop="state">
|
|
<el-select v-model="formData.cycleattr">
|
|
<el-option label="定性指标" :value="1" />
|
|
<el-option label="定量指标" :value="2" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="计量单位:" prop="unites">
|
|
<el-input v-model="formData.unit" placeholder="请输入计量单位"/>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="计分方式:" prop="iop">
|
|
<el-select v-model="formData.cycleattr">
|
|
<el-option label="自动计分" :value="1" />
|
|
<el-option label="手动计分" :value="2" />
|
|
</el-select>
|
|
</el-form-item><el-form-item label="考核周期:" prop="uio">
|
|
<el-select v-model="formData.scoringmethod">
|
|
<el-option label="月" :value="1" />
|
|
<el-option label="季度" :value="2" />
|
|
<el-option label="年" :value="3" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="辅助计数:" prop="state">
|
|
<el-input-number v-model="num" :min="1"/>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" @click="submitForm()">确定</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-dialog>
|
|
</template>
|
|
<script lang="ts" setup>
|
|
import { reactive } from "vue";
|
|
import {tarlist,addPostCont,addtarget,getgroupuser,addposttargetcont,search_orgpost,positionlist} from '@/api/opk/api'
|
|
import {editPostCont} from '@/api/opk/pulic/api'
|
|
import {govthree} from '@/api/opk/opk/api'
|
|
|
|
interface FormInfo {
|
|
id: string;
|
|
age: string;
|
|
name: string;
|
|
sex: string;
|
|
ccc: string;
|
|
ade: string;
|
|
sort: number;
|
|
title: string;
|
|
type: number;
|
|
}
|
|
const isshow = ref(false)
|
|
const props= defineProps( {
|
|
title: {
|
|
type: String,
|
|
default: "",
|
|
},
|
|
adddPostBox: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
addrowInfo: {
|
|
type: Object as () => FormInfo,
|
|
default() {
|
|
return {};
|
|
},
|
|
},
|
|
arrayNum: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
});
|
|
const num =ref(1);
|
|
const orgTreeLoadings = ref([]); //加载行政组织树
|
|
const orgTreeProps ={
|
|
label: 'name',
|
|
children:'child',
|
|
}
|
|
const orgTreeProp = {
|
|
label:'title',
|
|
children:'children'
|
|
}
|
|
const emit = defineEmits(["update:adddPostBox","editRow","addRow"])
|
|
const formData = reactive({
|
|
"title": "", // 1
|
|
"acceptdepartmentid": [] as String[], //1
|
|
"userlist": [] as String[],
|
|
"dimension":"", //1
|
|
"unit": "", // 1
|
|
"cycle": 4,
|
|
"cycleattr": 1,
|
|
"otherposttarget":[] as String[],
|
|
"type":1,
|
|
"scoringmethod": 1,
|
|
"name":"",
|
|
"gov":"",
|
|
"lzq":"",
|
|
"zjr":"",
|
|
"yrb":"",
|
|
})
|
|
const iop = reactive([{
|
|
orgid:"",
|
|
postid:"",
|
|
operator:[
|
|
|
|
]
|
|
}])
|
|
const tableData = ref<any>([])
|
|
function jjjs(){
|
|
addPostCont("/hrapi/org/govthree","post")
|
|
.then(data => {
|
|
tableData.value = data.data[3].child[14].child;
|
|
})
|
|
.catch(error => {
|
|
console.error('Error fetching data:', error);
|
|
});
|
|
}
|
|
jjjs()
|
|
const tables = ref([])
|
|
function editPost(){
|
|
editPostCont()
|
|
.then(data => {
|
|
tables.value = data.data.list;
|
|
})
|
|
}
|
|
editPost()
|
|
const tablee = ref([])
|
|
function orgpost(){
|
|
search_orgpost({name:"1",orgid:"309"})
|
|
.then(data =>{
|
|
tablee.value = data.data;
|
|
})
|
|
.finally(()=>{
|
|
isshow.value = false
|
|
})
|
|
}
|
|
orgpost()
|
|
const chl = ()=>{
|
|
formData.departmentPostOther = zjr
|
|
}
|
|
const tablea = ref([])
|
|
function getgrou(){
|
|
getgroupuser({id:309,level:4})
|
|
.then(data => {
|
|
tablea.value = data.data;
|
|
console.log(tablea.value)
|
|
})
|
|
}
|
|
getgrou()
|
|
const lzq = ref([])
|
|
function govthrees(){
|
|
govthree({id:309,all:1})
|
|
.then(data=>{
|
|
lzq.value = data.data
|
|
})
|
|
}
|
|
govthrees()
|
|
const zjr = ref([])
|
|
const position = ()=>{
|
|
const add = iop[0].orgid.toString()
|
|
positionlist({page:1,pagesize:100000,organization:add})
|
|
.then(data=>{
|
|
zjr.value = data.data.list;
|
|
})
|
|
}
|
|
const lll = ()=>{
|
|
formData.otherposttarget = tablea[this.tablea.findIndex(item => item.key===formData.yrb)]
|
|
}
|
|
// 关闭弹窗
|
|
const handleClose = ()=> {
|
|
emit("update:adddPostBox", false);
|
|
}
|
|
const handleDel = (val:any) => {
|
|
const dictTypeIds = [val.outID || postIds.value].join(",");
|
|
let dictTypeIdAry = dictTypeIds.split(",")
|
|
ElMessageBox.confirm("你确定删除这条信息吗?", "提示", {
|
|
confirmButtonText: "确认",
|
|
cancelButtonText: "取消",
|
|
type: "warning",
|
|
})
|
|
handleSure(val)
|
|
console.log(val.id)
|
|
};
|
|
const handleSure = (val:any)=> {
|
|
const index = tableData.value.findIndex((item:any) => item.id === val.id);
|
|
if(index!=-1){
|
|
tableData.value.splice(index, 1);
|
|
}
|
|
}
|
|
const submitForm=()=> {
|
|
handleClose()
|
|
const add = formData.acceptdepartmentid.toString()
|
|
formData.acceptdepartmentid = add.split(',')
|
|
formData.dimension = formData.dimension.toString()
|
|
const edd = formData.userlist.toString()
|
|
formData.userlist = edd.split(',')
|
|
const www = Number(iop[0].postid)
|
|
iop[0].postid = www
|
|
if (props.addrowInfo.name) {
|
|
// 修改
|
|
const id = props.addrowInfo; // 假设你有一个唯一的ID来识别要修改的项
|
|
emit("editRow", formData);
|
|
} else {
|
|
// 新增
|
|
addposttargetcont({title:formData.title,type:1,unit:formData.unit,scoringmethod:1,dimension:formData.dimension,cycle:4,cycleattr:1,
|
|
departmentPostOther:formData.departmentPostOther,otherposttarget:iop})
|
|
.then((response:any) => {
|
|
// 处理新增成功的情况
|
|
if (response.code === 200) {
|
|
ElMessage.success("新增成功");
|
|
emit("addRow", formData);
|
|
} else {
|
|
// 处理新增失败的情况
|
|
ElMessage.error("新增成功");
|
|
}
|
|
})
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
|
|
.avatar-uploader .avatar {
|
|
display: block;
|
|
width: 178px;
|
|
height: 178px;
|
|
}
|
|
</style>
|
|
|
|
<style lang="scss">
|
|
.avatar-uploader .el-upload {
|
|
position: relative;
|
|
overflow: hidden;
|
|
cursor: pointer;
|
|
border: 1px dashed var(--el-border-color);
|
|
border-radius: 6px;
|
|
transition: var(--el-transition-duration-fast);
|
|
}
|
|
|
|
.avatar-uploader .el-upload:hover {
|
|
border-color: var(--el-color-primary);
|
|
}
|
|
|
|
.el-icon.avatar-uploader-icon {
|
|
width: 178px;
|
|
height: 178px;
|
|
font-size: 28px;
|
|
color: #8c939d;
|
|
text-align: center;
|
|
}
|
|
.el-dialog{
|
|
width:1200px;
|
|
}
|
|
</style>
|
|
|