<template> | <template> | ||||
<div class="basic-target ele-body"> | <div class="basic-target ele-body"> | ||||
<el-card shadow="never" v-loading="loading" element-loading-background="rgba(255, 255, 255, 1)"> | |||||
<el-card | |||||
shadow="never" | |||||
v-loading="loading" | |||||
element-loading-background="rgba(255, 255, 255, 1)" | |||||
> | |||||
<tab @update:type="updateType($event)" /> | <tab @update:type="updateType($event)" /> | ||||
<search :type="1" @search:task="updateParams($event)" /> | <search :type="1" @search:task="updateParams($event)" /> | ||||
<el-table | <el-table | ||||
:span-method="arraySpanMethod" | :span-method="arraySpanMethod" | ||||
ref="table" | ref="table" | ||||
> | > | ||||
<el-table-column | |||||
type="index" | |||||
label="序号" | |||||
align="center" | |||||
min-width="50" | |||||
> | |||||
<el-table-column type="index" label="序号" align="center" width="50"> | |||||
</el-table-column> | </el-table-column> | ||||
<el-table-column | <el-table-column | ||||
label="一级指标" | label="一级指标" | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
prop="quota1" | prop="quota1" | ||||
:key="Math.random()" | |||||
:key="1" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
prop="quota2" | prop="quota2" | ||||
:key="Math.random()" | |||||
:key="2" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
align="center" | align="center" | ||||
min-width="400" | min-width="400" | ||||
prop="content" | prop="content" | ||||
:key="Math.random()" | |||||
:key="3" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
min-width="60" | min-width="60" | ||||
align="center" | align="center" | ||||
prop="points" | prop="points" | ||||
:key="Math.random()" | |||||
:key="4" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
v-if="type.type == 1" | v-if="type.type == 1" | ||||
:key="Math.random()" | |||||
:key="5" | |||||
> | > | ||||
<template slot-scope="{ row, $index }"> | <template slot-scope="{ row, $index }"> | ||||
<div @dblclick="showText($index, true)" style="height: 100%"> | <div @dblclick="showText($index, true)" style="height: 100%"> | ||||
min-width="95 " | min-width="95 " | ||||
align="center" | align="center" | ||||
prop="leaderUnit" | prop="leaderUnit" | ||||
:key="Math.random()" | |||||
:key="6" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
label="牵头部门" | label="牵头部门" | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
:key="Math.random()" | |||||
:key="7" | |||||
> | > | ||||
<template slot-scope="{ row }"> | <template slot-scope="{ row }"> | ||||
<span>{{ row.leaderDeptList | formatList }}</span> | <span>{{ row.leaderDeptList | formatList }}</span> | ||||
label="责任领导" | label="责任领导" | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
:key="Math.random()" | |||||
:key="8" | |||||
> | > | ||||
<template slot-scope="{ row }"> | <template slot-scope="{ row }"> | ||||
{{ row.leaderPrincipalList | formatList }} | {{ row.leaderPrincipalList | formatList }} | ||||
min-width="100" | min-width="100" | ||||
prop="note" | prop="note" | ||||
v-if="type.type == 1" | v-if="type.type == 1" | ||||
:key="Math.random()" | |||||
:key="9" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | |||||
label="操作" | |||||
width="125" | |||||
align="center" | |||||
:key="Math.random()" | |||||
> | |||||
<el-table-column label="操作" width="125" align="center" :key="10"> | |||||
<template slot-scope="{ row }"> | <template slot-scope="{ row }"> | ||||
<el-link | <el-link | ||||
slot="reference" | slot="reference" | ||||
search, | search, | ||||
Treeselect, | Treeselect, | ||||
}, | }, | ||||
mixins: [mergeSpan([ | |||||
{name: 'quota1', col: [1]}, | |||||
{name: 'quota2', col: [2]}, | |||||
])], | |||||
mixins: [ | |||||
mergeSpan([ | |||||
{ name: "quota1", col: [1] }, | |||||
{ name: "quota2", col: [2] }, | |||||
]), | |||||
], | |||||
data() { | data() { | ||||
return { | return { | ||||
dataList: [], | dataList: [], | ||||
this.getDataList(); | this.getDataList(); | ||||
}); | }); | ||||
}, | }, | ||||
showLeaderDept(data) { | |||||
showLeaderDept(row) { | |||||
let data = JSON.parse(JSON.stringify(row)); | |||||
this.showDep = true; | this.showDep = true; | ||||
data.leaderDept = (data.leaderDept && data.leaderDept.split(",")) || []; | data.leaderDept = (data.leaderDept && data.leaderDept.split(",")) || []; | ||||
data.leaderDept = data.leaderDept.map((item) => { | data.leaderDept = data.leaderDept.map((item) => { | ||||
return parseInt(item); | return parseInt(item); | ||||
}); | }); | ||||
this.updateData = data; | this.updateData = data; | ||||
console.log(this.formatDep, data); | |||||
}, | }, | ||||
updateParams(data) { | updateParams(data) { | ||||
this.searchParams = data; | this.searchParams = data; | ||||
row.deptPoints > row.points || | row.deptPoints > row.points || | ||||
!row.deptPoints.trim() | !row.deptPoints.trim() | ||||
) { | ) { | ||||
this.$message({ type: "warning", message: "请输入数值0~" + row.points }); | |||||
this.$message({ | |||||
type: "warning", | |||||
message: "请输入数值0~" + row.points, | |||||
}); | |||||
let data = this.dataList; | let data = this.dataList; | ||||
data[index].deptPoints = this.preValue; | data[index].deptPoints = this.preValue; | ||||
this.dataList = data; | this.dataList = data; | ||||
this.dataList = this.reduceData(data); | this.dataList = this.reduceData(data); | ||||
console.log(this.dataList); | console.log(this.dataList); | ||||
this.count = res.data.data.total; | this.count = res.data.data.total; | ||||
this.$nextTick(() => { | |||||
setTimeout(() => { | |||||
this.loading = false; | |||||
}, 300); | |||||
}); | |||||
this.loading = false; | |||||
}) | }) | ||||
.catch(() => { | .catch(() => { | ||||
this.dataList = []; | this.dataList = []; | ||||
this.count = 0; | this.count = 0; | ||||
this.$nextTick(() => { | |||||
setTimeout(() => { | |||||
this.loading = false; | |||||
}, 300); | |||||
}); | |||||
this.loading = false; | |||||
}); | }); | ||||
}, | }, | ||||
}, | }, |
<template> | <template> | ||||
<div class="reward ele-body"> | <div class="reward ele-body"> | ||||
<el-card shadow="never" v-loading="loading" element-loading-background="rgba(255, 255, 255, 1)"> | |||||
<el-card | |||||
shadow="never" | |||||
v-loading="loading" | |||||
element-loading-background="rgba(255, 255, 255, 1)" | |||||
> | |||||
<tab @update:type="updateType($event)" /> | <tab @update:type="updateType($event)" /> | ||||
<search :type="3" @search:task="updateParams($event)" /> | <search :type="3" @search:task="updateParams($event)" /> | ||||
<el-table | <el-table | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
prop="quota" | prop="quota" | ||||
:key="Math.random()" | |||||
:key="1" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
label="考核内容和计分细则" | label="考核内容和计分细则" | ||||
min-width="550" | min-width="550" | ||||
align="center" | align="center" | ||||
prop="content" | prop="content" | ||||
:key="Math.random()" | |||||
:key="2" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
label="预计扣分" | label="预计扣分" | ||||
width="80" | width="80" | ||||
align="center" | align="center" | ||||
v-if="type.type == 1" | v-if="type.type == 1" | ||||
:key="Math.random()" | |||||
:key="3" | |||||
> | > | ||||
<template slot-scope="{ row, $index }"> | <template slot-scope="{ row, $index }"> | ||||
<div @dblclick="showText($index, true)" style="height: 100%"> | <div @dblclick="showText($index, true)" style="height: 100%"> | ||||
min-width="95" | min-width="95" | ||||
align="center" | align="center" | ||||
prop="leaderUnit" | prop="leaderUnit" | ||||
:key="Math.random()" | |||||
:key="4" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
label="牵头部门" | label="牵头部门" | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
:key="Math.random()" | |||||
:key="5" | |||||
> | > | ||||
<template slot-scope="{ row }"> | <template slot-scope="{ row }"> | ||||
<span>{{ row.leaderDeptList | formatList }}</span> | <span>{{ row.leaderDeptList | formatList }}</span> | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
prop="leaderPrincipal" | prop="leaderPrincipal" | ||||
:key="Math.random()" | |||||
:key="6" | |||||
> | > | ||||
<template slot-scope="{ row }"> | <template slot-scope="{ row }"> | ||||
{{ row.leaderPrincipalList | formatList }} | {{ row.leaderPrincipalList | formatList }} | ||||
min-width="100" | min-width="100" | ||||
prop="note" | prop="note" | ||||
v-if="type.type == 1" | v-if="type.type == 1" | ||||
:key="Math.random()" | |||||
:key="7" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | |||||
label="操作" | |||||
width="125" | |||||
align="center" | |||||
:key="Math.random()" | |||||
> | |||||
<el-table-column label="操作" width="125" align="center" :key="8"> | |||||
<template slot-scope="{ row }"> | <template slot-scope="{ row }"> | ||||
<el-link | <el-link | ||||
slot="reference" | slot="reference" | ||||
search, | search, | ||||
Treeselect, | Treeselect, | ||||
}, | }, | ||||
mixins: [mergeSpan([ | |||||
{name: 'quota', col: [1]} | |||||
])], | |||||
mixins: [mergeSpan([{ name: "quota", col: [1] }])], | |||||
data() { | data() { | ||||
return { | return { | ||||
dataList: [], | dataList: [], | ||||
this.getDataList(); | this.getDataList(); | ||||
}); | }); | ||||
}, | }, | ||||
showLeaderDept(data) { | |||||
showLeaderDept(row) { | |||||
let data = JSON.parse(JSON.stringify(row)); | |||||
this.showDep = true; | this.showDep = true; | ||||
data.leaderDept = (data.leaderDept && data.leaderDept.split(",")) || []; | data.leaderDept = (data.leaderDept && data.leaderDept.split(",")) || []; | ||||
data.leaderDept = data.leaderDept.map((item) => { | data.leaderDept = data.leaderDept.map((item) => { | ||||
if (row.deptPoints == this.preValue) { | if (row.deptPoints == this.preValue) { | ||||
return; | return; | ||||
} | } | ||||
if ( | |||||
row.deptPoints < 0 || | |||||
!row.deptPoints.trim() | |||||
) { | |||||
if (row.deptPoints < 0 || !row.deptPoints.trim()) { | |||||
this.$message({ type: "warning", message: "请输入数值0~" }); | this.$message({ type: "warning", message: "请输入数值0~" }); | ||||
let data = this.dataList; | let data = this.dataList; | ||||
data[index].deptPoints = this.preValue; | data[index].deptPoints = this.preValue; | ||||
}); | }); | ||||
this.dataList = this.reduceData(data); | this.dataList = this.reduceData(data); | ||||
this.count = res.data.data.total; | this.count = res.data.data.total; | ||||
this.$nextTick(() => { | |||||
setTimeout(() => { | |||||
this.loading = false; | |||||
}, 300); | |||||
}); | |||||
this.loading = false; | |||||
}) | }) | ||||
.catch(() => { | .catch(() => { | ||||
this.dataList = []; | this.dataList = []; | ||||
this.count = 0; | this.count = 0; | ||||
this.$nextTick(() => { | |||||
setTimeout(() => { | |||||
this.loading = false; | |||||
}, 300); | |||||
}); | |||||
this.loading = false; | |||||
}); | }); | ||||
}, | }, | ||||
}, | }, |
<template> | <template> | ||||
<div class="reward ele-body"> | <div class="reward ele-body"> | ||||
<el-card shadow="never" v-loading="loading" element-loading-background="rgba(255, 255, 255, 1)"> | |||||
<el-card | |||||
shadow="never" | |||||
v-loading="loading" | |||||
element-loading-background="rgba(255, 255, 255, 1)" | |||||
> | |||||
<tab @update:type="updateType($event)" /> | <tab @update:type="updateType($event)" /> | ||||
<search :type="2" @search:task="updateParams($event)" /> | <search :type="2" @search:task="updateParams($event)" /> | ||||
<el-table | <el-table | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
prop="quota1" | prop="quota1" | ||||
:key="Math.random()" | |||||
:key="1" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
label="二级指标" | label="二级指标" | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
prop="quota2" | prop="quota2" | ||||
:key="Math.random()" | |||||
:key="2" | |||||
></el-table-column> | ></el-table-column> | ||||
</template> | </template> | ||||
<el-table-column | <el-table-column | ||||
align="center" | align="center" | ||||
min-width="400" | min-width="400" | ||||
prop="content" | prop="content" | ||||
:key="Math.random()" | |||||
:key="3" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
label="封顶分值" | label="封顶分值" | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
prop="points" | prop="points" | ||||
:key="Math.random()" | |||||
:key="4" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
label="预计加分" | label="预计加分" | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
v-if="type.type == 1" | v-if="type.type == 1" | ||||
:key="Math.random()" | |||||
:key="5" | |||||
> | > | ||||
<template slot-scope="{ row, $index }"> | <template slot-scope="{ row, $index }"> | ||||
<div @dblclick="showText($index, true)" style="height: 100%"> | <div @dblclick="showText($index, true)" style="height: 100%"> | ||||
min-width="95" | min-width="95" | ||||
align="center" | align="center" | ||||
prop="leaderUnit" | prop="leaderUnit" | ||||
:key="Math.random()" | |||||
:key="6" | |||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | <el-table-column | ||||
label="牵头部门" | label="牵头部门" | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
:key="Math.random()" | |||||
:key="7" | |||||
> | > | ||||
<template slot-scope="{ row }"> | <template slot-scope="{ row }"> | ||||
<span>{{ row.leaderDeptList | formatList }}</span> | <span>{{ row.leaderDeptList | formatList }}</span> | ||||
min-width="80" | min-width="80" | ||||
align="center" | align="center" | ||||
prop="leaderPrincipal" | prop="leaderPrincipal" | ||||
:key="Math.random()" | |||||
:key="8" | |||||
> | > | ||||
<template slot-scope="{ row }"> | <template slot-scope="{ row }"> | ||||
{{ row.leaderPrincipalList | formatList }} | {{ row.leaderPrincipalList | formatList }} | ||||
align="center" | align="center" | ||||
min-width="100" | min-width="100" | ||||
prop="note" | prop="note" | ||||
:key="Math.random()" | |||||
:key="9" | |||||
v-if="type.type == 1" | v-if="type.type == 1" | ||||
></el-table-column> | ></el-table-column> | ||||
<el-table-column | |||||
label="操作" | |||||
width="125" | |||||
align="center" | |||||
:key="Math.random()" | |||||
> | |||||
<el-table-column label="操作" width="125" align="center" :key="10"> | |||||
<template slot-scope="{ row }"> | <template slot-scope="{ row }"> | ||||
<el-link | <el-link | ||||
slot="reference" | slot="reference" | ||||
search, | search, | ||||
Treeselect, | Treeselect, | ||||
}, | }, | ||||
mixins: [mergeSpan([ | |||||
{name: 'quota1', col: [1]}, | |||||
{name: 'quota2', col: [2]}, | |||||
])], | |||||
mixins: [ | |||||
mergeSpan([ | |||||
{ name: "quota1", col: [1] }, | |||||
{ name: "quota2", col: [2] }, | |||||
]), | |||||
], | |||||
data() { | data() { | ||||
return { | return { | ||||
dataList: [], | dataList: [], | ||||
this.getDataList(); | this.getDataList(); | ||||
}); | }); | ||||
}, | }, | ||||
showLeaderDept(data) { | |||||
showLeaderDept(row) { | |||||
let data = JSON.parse(JSON.stringify(row)); | |||||
this.showDep = true; | this.showDep = true; | ||||
data.leaderDept = (data.leaderDept && data.leaderDept.split(",")) || []; | data.leaderDept = (data.leaderDept && data.leaderDept.split(",")) || []; | ||||
data.leaderDept = data.leaderDept.map((item) => { | data.leaderDept = data.leaderDept.map((item) => { | ||||
row.deptPoints > row.points || | row.deptPoints > row.points || | ||||
!row.deptPoints.trim() | !row.deptPoints.trim() | ||||
) { | ) { | ||||
this.$message({ type: "warning", message: "请输入数值0~" + row.points }); | |||||
this.$message({ | |||||
type: "warning", | |||||
message: "请输入数值0~" + row.points, | |||||
}); | |||||
let data = this.dataList; | let data = this.dataList; | ||||
data[index].deptPoints = this.preValue; | data[index].deptPoints = this.preValue; | ||||
this.dataList = data; | this.dataList = data; | ||||
this.dataList = this.reduceData(data); | this.dataList = this.reduceData(data); | ||||
console.log(this.dataList); | console.log(this.dataList); | ||||
this.count = res.data.data.total; | this.count = res.data.data.total; | ||||
this.$nextTick(() => { | |||||
setTimeout(() => { | |||||
this.loading = false; | |||||
}, 300); | |||||
}); | |||||
this.loading = false; | |||||
}) | }) | ||||
.catch(() => { | .catch(() => { | ||||
this.dataList = []; | this.dataList = []; | ||||
this.count = 0; | this.count = 0; | ||||
this.$nextTick(() => { | |||||
setTimeout(() => { | |||||
this.loading = false; | |||||
}, 300); | |||||
}); | |||||
this.loading = false; | |||||
}); | }); | ||||
}, | }, | ||||
}, | }, |
<template> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
} | |||||
</script> | |||||
<style> | |||||
</style> |
<template> | |||||
<div class="software ele-body"> | |||||
<el-card | |||||
shadow="never" | |||||
element-loading-background="rgba(255, 255, 255, 1)" | |||||
> | |||||
<search @search:task="updateParams($event)" /> | |||||
<div class="operating"> | |||||
<el-button size="small" type="primary" @click="edit()" | |||||
>新增考核内容</el-button | |||||
> | |||||
</div> | |||||
<div class="table" v-loading="loading"> | |||||
<div class="header"> | |||||
<el-row type="flex"> | |||||
<el-col :span="2" align="center" class="thead td" | |||||
><span class="cell">编号</span></el-col | |||||
> | |||||
<el-col :span="5" align="center" class="thead td" | |||||
><span class="cell">指标名称与全年目标</span></el-col | |||||
> | |||||
<el-col :span="2" align="center" class="thead td" | |||||
><span class="cell">分值</span></el-col | |||||
> | |||||
<el-col :span="2" align="center" class="thead td" | |||||
><span class="cell">得分</span></el-col | |||||
> | |||||
<el-col :span="3" align="center" class="thead td" | |||||
><span class="cell">牵头部门</span></el-col | |||||
> | |||||
<el-col :span="3" align="center" class="thead td" | |||||
><span class="cell">配合部门</span></el-col | |||||
> | |||||
<el-col :span="3" align="center" class="thead td" | |||||
><span class="cell">打分操作记录</span></el-col | |||||
> | |||||
<el-col :span="4" align="center" class="thead td" | |||||
><span class="cell">操作</span></el-col | |||||
> | |||||
</el-row> | |||||
</div> | |||||
<div class="body" :style="{ height: tableHeight + 'px' }"> | |||||
<div v-for="(data, index) of dataList" :key="index"> | |||||
<div class="title">121212</div> | |||||
<el-row | |||||
type="flex" | |||||
style="border-left: 1px solid rgb(237, 237, 237)" | |||||
v-for="(item, ind) of data" | |||||
:key="ind" | |||||
> | |||||
<el-col :span="2" align="center" class="td" | |||||
><span class="cell">编号</span></el-col | |||||
> | |||||
<el-col :span="5" align="center" class="td" | |||||
><span class="cell">指标名称与全年目标</span></el-col | |||||
> | |||||
<el-col :span="2" align="center" class="td" | |||||
><span class="cell">分值</span></el-col | |||||
> | |||||
<el-col :span="2" align="center" class="td" | |||||
><span class="cell">得分</span></el-col | |||||
> | |||||
<el-col :span="3" align="center" class="td" | |||||
><span class="cell">牵头部门</span></el-col | |||||
> | |||||
<el-col :span="3" align="center" class="td" | |||||
><span class="cell">配合部门</span></el-col | |||||
> | |||||
<el-col :span="3" align="center" class="td" | |||||
><span class="cell">打分操作记录</span></el-col | |||||
> | |||||
<el-col :span="4" align="center" class="td" | |||||
><span class="cell" | |||||
><el-link | |||||
@click="edit(index, ind)" | |||||
icon="el-icon-edit" | |||||
type="primary" | |||||
:underline="false" | |||||
>修改</el-link | |||||
> | |||||
<el-link | |||||
slot="reference" | |||||
icon="el-icon-delete" | |||||
type="danger" | |||||
:underline="false" | |||||
>删除</el-link | |||||
></span | |||||
></el-col | |||||
> | |||||
</el-row> | |||||
</div> | |||||
</div> | |||||
<div class="line"></div> | |||||
</div> | |||||
<el-dialog | |||||
:title="dialogTitle" | |||||
:visible.sync="showEdit" | |||||
width="400px" | |||||
custom-class="ele-dialog-form" | |||||
:lock-scroll="false" | |||||
:destroy-on-close="true" | |||||
@closed="form = {}" | |||||
> | |||||
<el-form | |||||
:model="form" | |||||
label-width="82px" | |||||
@keyup.enter.native="save" | |||||
@submit.native.prevent | |||||
:rules="rules" | |||||
> | |||||
<el-form-item label="考核指标:" prop=""> | |||||
<el-select placeholder="请选择考核指标"> | |||||
<el-option></el-option> | |||||
</el-select> | |||||
</el-form-item> | |||||
<el-form-item label="指标内容:" prop=""> | |||||
<el-input | |||||
type="textarea" | |||||
:rows="5" | |||||
placeholder="请输入考核内容" | |||||
></el-input> | |||||
</el-form-item> | |||||
<el-form-item label="分值:" prop=""> | |||||
<el-input placeholder="请输入分值"></el-input> | |||||
</el-form-item> | |||||
<el-form-item label="牵头部门:" prop=""> | |||||
<treeselect | |||||
:flat="true" | |||||
:options="formatDep" | |||||
:multiple="true" | |||||
placeholder="请选择牵头部门" | |||||
:defaultExpandLevel="2" | |||||
:normalizer=" | |||||
(d) => { | |||||
return { | |||||
id: d.id, | |||||
label: d.name, | |||||
children: | |||||
d.children && d.children.length > 0 | |||||
? d.children | |||||
: undefined, | |||||
}; | |||||
} | |||||
" | |||||
/> | |||||
</el-form-item> | |||||
<el-form-item label="配合部门:" prop=""> | |||||
<treeselect | |||||
:flat="true" | |||||
:options="formatDep" | |||||
:multiple="true" | |||||
placeholder="请选择牵头部门" | |||||
:defaultExpandLevel="2" | |||||
:normalizer=" | |||||
(d) => { | |||||
return { | |||||
id: d.id, | |||||
label: d.name, | |||||
children: | |||||
d.children && d.children.length > 0 | |||||
? d.children | |||||
: undefined, | |||||
}; | |||||
} | |||||
" | |||||
/> | |||||
</el-form-item> | |||||
</el-form> | |||||
<div slot="footer"> | |||||
<el-button type="primary" @click="save">保存</el-button> | |||||
<el-button @click="showEdit = false">取消</el-button> | |||||
</div> | |||||
</el-dialog> | |||||
</el-card> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import search from "../search"; | |||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | |||||
import Treeselect from "@riophae/vue-treeselect"; // 下拉树 | |||||
import { mapGetters } from "vuex"; | |||||
export default { | |||||
components: { | |||||
search, | |||||
Treeselect, | |||||
}, | |||||
data() { | |||||
return { | |||||
searchParams: {}, | |||||
dataList: [ | |||||
[[], [], [], [], [], [], []], | |||||
[[], [], [], [], [], []], | |||||
[[], [], [], []], | |||||
], | |||||
tableHeight: document.documentElement.clientHeight - 310, | |||||
showEdit: false, | |||||
title: "", | |||||
form: {}, | |||||
rules: {}, | |||||
loading: false, | |||||
}; | |||||
}, | |||||
methods: { | |||||
edit(index, ind) { | |||||
this.showEdit = true; | |||||
let title = "新增考核内容"; | |||||
if (index && ind) { | |||||
console.log("编辑"); | |||||
title = "编辑考核内容"; | |||||
} | |||||
this.dialogTitle = title; | |||||
}, | |||||
}, | |||||
computed: { | |||||
...mapGetters(["formatDep"]), | |||||
}, | |||||
}; | |||||
</script> | |||||
<style scoped> | |||||
/* .table { | |||||
border-bottom: 1px solid rgb(237, 237, 237); | |||||
position: relative; | |||||
} */ | |||||
.el-row { | |||||
align-items: stretch; | |||||
} | |||||
.header { | |||||
border-top: 1px solid rgb(237, 237, 237); | |||||
border-left: 1px solid rgb(237, 237, 237); | |||||
margin-right: 8px; | |||||
} | |||||
.title { | |||||
padding: 10px; | |||||
font-weight: 700; | |||||
} | |||||
.td { | |||||
padding: 10px; | |||||
font-size: 14px; | |||||
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", | |||||
"Microsoft YaHei", "微软雅黑", Arial, sans-serif; | |||||
border-bottom: 1px solid rgb(237, 237, 237); | |||||
border-right: 1px solid rgb(237, 237, 237); | |||||
vertical-align: middle; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
} | |||||
.thead { | |||||
font-weight: 700; | |||||
color: #262626; | |||||
background-color: #fafafa; | |||||
} | |||||
.cell { | |||||
cursor: default; | |||||
} | |||||
.title { | |||||
border-bottom: 1px solid rgb(237, 237, 237); | |||||
border-right: 1px solid rgb(237, 237, 237); | |||||
border-left: 1px solid rgb(237, 237, 237); | |||||
} | |||||
.body { | |||||
overflow-y: scroll; | |||||
overflow-x: hidden; | |||||
position: relative; | |||||
width: calc(100%+16px); | |||||
box-sizing: border-box; | |||||
} | |||||
.body::-webkit-scrollbar { | |||||
position: absolute; | |||||
top: 0; | |||||
right: 0; | |||||
} | |||||
.line { | |||||
height: 1px; | |||||
background: rgb(237, 237, 237); | |||||
margin-top: -1px; | |||||
margin-right: 8px; | |||||
} | |||||
/deep/ .vue-treeselect__multi-value-label , /deep/ .vue-treeselect__input{ | |||||
line-height: 25px; | |||||
} | |||||
/deep/ .vue-treeselect__multi-value{ | |||||
margin-bottom:0; | |||||
} | |||||
</style> |
<template> | |||||
<div class="apply-cooperation ele-body"> | |||||
<el-card shadow="never" element-loading-background="rgba(255, 255, 255, 1)"> | |||||
<search @search:task="updateParams($event)" /> | |||||
<el-table | |||||
border | |||||
highlight-current-row | |||||
:data="dataList" | |||||
:height="tableHeight" | |||||
v-loading="loading" | |||||
> | |||||
<el-table-column | |||||
type="index" | |||||
width="50" | |||||
align="center" | |||||
label="序号" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="产业链名称" | |||||
align="center" | |||||
min-width="150" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="类型" | |||||
align="center" | |||||
min-width="100" | |||||
prop="type" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="指标名称" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="分值" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="牵头部门" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="配合部门" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column label="操作" align="center" min-width="100"> | |||||
<el-link | |||||
@click="edit" | |||||
icon="el-icon-edit" | |||||
type="primary" | |||||
:underline="false" | |||||
>申请</el-link | |||||
> | |||||
</el-table-column> | |||||
</el-table> | |||||
<el-pagination | |||||
:current-page.sync="page.page" | |||||
:page-size="page.limit" | |||||
:total="count" | |||||
:background="true" | |||||
layout="total, prev, pager, next, jumper" | |||||
:pager-count="5" | |||||
class="ele-pagination-circle" | |||||
@current-change="getDataList()" | |||||
/> | |||||
<el-dialog | |||||
title="申请成为配合部门" | |||||
:visible.sync="showEdit" | |||||
width="400px" | |||||
custom-class="ele-dialog-form" | |||||
:lock-scroll="false" | |||||
:destroy-on-close="true" | |||||
@closed="form = {}" | |||||
> | |||||
<el-form | |||||
:model="form" | |||||
label-width="82px" | |||||
width="400px" | |||||
:lock-scroll="false" | |||||
:destroy-on-close="true" | |||||
@closed="form = {}" | |||||
> | |||||
<el-form-item label="申请理由:"> | |||||
<el-input type="textarea" placeholder="请输入申请理由" :rows="5"></el-input> | |||||
</el-form-item> | |||||
</el-form> | |||||
<div slot="footer"> | |||||
<el-button @click="showEdit = false">取消</el-button> | |||||
<el-button type="primary" @click="save" | |||||
>保存</el-button | |||||
> | |||||
</div> | |||||
</el-dialog> | |||||
</el-card> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import search from "../search"; | |||||
export default { | |||||
components: { | |||||
search, | |||||
}, | |||||
data() { | |||||
return { | |||||
dataList: [[]], | |||||
count: 0, | |||||
page: { | |||||
page: 1, | |||||
limit: Math.floor( | |||||
(document.documentElement.clientHeight - 260 - 45) / 45 | |||||
), | |||||
}, | |||||
tableHeight: document.documentElement.clientHeight - 260, | |||||
loading: false, | |||||
form: {}, | |||||
showEdit: false, | |||||
}; | |||||
}, | |||||
methods: { | |||||
getDataList() {}, | |||||
edit() { | |||||
this.showEdit = true; | |||||
}, | |||||
save(){}, | |||||
}, | |||||
}; | |||||
</script> | |||||
<style> | |||||
</style> |
<template> | |||||
<div class="approval-cooperation ele-body"> | |||||
<el-card shadow="never" element-loading-background="rgba(255, 255, 255, 1)"> | |||||
<search @search:task="updateParams($event)" /> | |||||
<el-table | |||||
border | |||||
highlight-current-row | |||||
:data="dataList" | |||||
:height="tableHeight" | |||||
v-loading="loading" | |||||
> | |||||
<el-table-column | |||||
type="index" | |||||
width="50" | |||||
align="center" | |||||
label="序号" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="申请部门" | |||||
align="center" | |||||
min-width="150" | |||||
></el-table-column | |||||
><el-table-column | |||||
label="申请时间" | |||||
align="center" | |||||
min-width="150" | |||||
></el-table-column | |||||
><el-table-column | |||||
label="申请理由" | |||||
align="center" | |||||
min-width="150" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="产业链名称" | |||||
align="center" | |||||
min-width="150" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="类型" | |||||
align="center" | |||||
min-width="100" | |||||
prop="type" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="指标名称" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="分值" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="牵头部门" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="配合部门" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column label="操作" align="center" min-width="120"> | |||||
<el-link @click="edit(true)" type="primary" :underline="false" | |||||
>同意</el-link | |||||
> | |||||
<el-link @click="edit(false)" type="primary" :underline="false" | |||||
>不同意</el-link | |||||
> | |||||
</el-table-column> | |||||
</el-table> | |||||
<el-pagination | |||||
:current-page.sync="page.page" | |||||
:page-size="page.limit" | |||||
:total="count" | |||||
:background="true" | |||||
layout="total, prev, pager, next, jumper" | |||||
:pager-count="5" | |||||
class="ele-pagination-circle" | |||||
@current-change="getDataList()" | |||||
/> | |||||
<el-dialog | |||||
title="审核配合申请" | |||||
:visible.sync="showEdit" | |||||
width="400px" | |||||
custom-class="ele-dialog-form" | |||||
:lock-scroll="false" | |||||
:destroy-on-close="true" | |||||
@closed="form = {}" | |||||
> | |||||
<div class="warning"> | |||||
<span | |||||
class="el-icon-warning-outline" | |||||
style="color: #f7ac2c; font-size: 25px; margin-right: 20px" | |||||
></span> | |||||
<div class="right"> | |||||
<h5>{{ warning.title }}</h5> | |||||
<p>{{ warning.info }}</p> | |||||
</div> | |||||
</div> | |||||
<div slot="footer"> | |||||
<el-button @click="showEdit = false">取消</el-button> | |||||
<el-button type="primary" @click="save">保存</el-button> | |||||
</div> | |||||
</el-dialog> | |||||
</el-card> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import search from "../search"; | |||||
export default { | |||||
components: { | |||||
search, | |||||
}, | |||||
data() { | |||||
return { | |||||
dataList: [[]], | |||||
count: 0, | |||||
page: { | |||||
page: 1, | |||||
limit: Math.floor( | |||||
(document.documentElement.clientHeight - 260 - 45) / 45 | |||||
), | |||||
}, | |||||
tableHeight: document.documentElement.clientHeight - 260, | |||||
loading: false, | |||||
form: {}, | |||||
showEdit: false, | |||||
warning: { | |||||
title: "确定同意此申请?", | |||||
info: "点击确定后,该部门将添加至考核任务配合部门中", | |||||
}, | |||||
}; | |||||
}, | |||||
methods: { | |||||
getDataList() {}, | |||||
edit(flag) { | |||||
this.showEdit = true; | |||||
if (flag) { | |||||
this.warning = { | |||||
title: "确定同意此申请?", | |||||
info: "点击确定后,该部门将添加至考核任务配合部门中", | |||||
}; | |||||
} else { | |||||
this.warning = { | |||||
title: "确定不同意此申请?", | |||||
info: | |||||
"点击确定后,该部门申请将驳回,如需再次添加,则有管理员确认后增加", | |||||
}; | |||||
} | |||||
}, | |||||
save() {}, | |||||
}, | |||||
}; | |||||
</script> | |||||
<style scoped> | |||||
.warning { | |||||
display: flex; | |||||
margin-bottom: 20px; | |||||
} | |||||
</style> |
<template> | |||||
<div class="cooperate-list ele-body"> | |||||
<el-card shadow="never" element-loading-background="rgba(255, 255, 255, 1)"> | |||||
<search @search:task="updateParams($event)" /> | |||||
<el-table | |||||
border | |||||
highlight-current-row | |||||
:data="dataList" | |||||
:height="tableHeight" | |||||
v-loading="loading" | |||||
> | |||||
<el-table-column | |||||
type="index" | |||||
width="50" | |||||
align="center" | |||||
label="序号" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="产业链名称" | |||||
align="center" | |||||
min-width="150" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="申请部门" | |||||
align="center" | |||||
min-width="150" | |||||
></el-table-column | |||||
><el-table-column | |||||
label="申请时间" | |||||
align="center" | |||||
min-width="150" | |||||
></el-table-column | |||||
><el-table-column | |||||
label="申请理由" | |||||
align="center" | |||||
min-width="150" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="类型" | |||||
align="center" | |||||
min-width="100" | |||||
prop="type" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="指标名称" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="分值" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="牵头部门" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column | |||||
label="配合部门" | |||||
align="center" | |||||
min-width="100" | |||||
></el-table-column> | |||||
<el-table-column label="操作" align="center" min-width="100"> | |||||
<el-link | |||||
@click="edit" | |||||
icon="el-icon-edit" | |||||
type="primary" | |||||
:underline="false" | |||||
>申请</el-link | |||||
> | |||||
</el-table-column> | |||||
</el-table> | |||||
<el-pagination | |||||
:current-page.sync="page.page" | |||||
:page-size="page.limit" | |||||
:total="count" | |||||
:background="true" | |||||
layout="total, prev, pager, next, jumper" | |||||
:pager-count="5" | |||||
class="ele-pagination-circle" | |||||
@current-change="getDataList()" | |||||
/> | |||||
<el-dialog | |||||
title="申请成为配合部门" | |||||
:visible.sync="showEdit" | |||||
width="400px" | |||||
custom-class="ele-dialog-form" | |||||
:lock-scroll="false" | |||||
:destroy-on-close="true" | |||||
@closed="form = {}" | |||||
> | |||||
<el-form | |||||
:model="form" | |||||
label-width="82px" | |||||
width="400px" | |||||
:lock-scroll="false" | |||||
:destroy-on-close="true" | |||||
@closed="form = {}" | |||||
> | |||||
<el-form-item label="申请理由:"> | |||||
<el-input | |||||
type="textarea" | |||||
placeholder="请输入申请理由" | |||||
:rows="5" | |||||
></el-input> | |||||
</el-form-item> | |||||
</el-form> | |||||
<div slot="footer"> | |||||
<el-button @click="showEdit = false">取消</el-button> | |||||
<el-button type="primary" @click="save">保存</el-button> | |||||
</div> | |||||
</el-dialog> | |||||
</el-card> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import search from "../search"; | |||||
export default { | |||||
components: { | |||||
search, | |||||
}, | |||||
data() { | |||||
return { | |||||
dataList: [[]], | |||||
count: 0, | |||||
page: { | |||||
page: 1, | |||||
limit: Math.floor( | |||||
(document.documentElement.clientHeight - 260 - 45) / 45 | |||||
), | |||||
}, | |||||
tableHeight: document.documentElement.clientHeight - 260, | |||||
loading: false, | |||||
form: {}, | |||||
showEdit: false, | |||||
}; | |||||
}, | |||||
methods: { | |||||
getDataList() {}, | |||||
edit() { | |||||
this.showEdit = true; | |||||
}, | |||||
save() {}, | |||||
}, | |||||
}; | |||||
</script> | |||||
<style> | |||||
</style> |
<template> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
} | |||||
</script> | |||||
<style> | |||||
</style> |
<template> | |||||
<div class="search"> | |||||
<el-form :inline="true" :model="searchParams" size="small"> | |||||
<el-form-item label="考核指标"> | |||||
<el-select v-model="searchParams.quota"> | |||||
<el-option></el-option> | |||||
</el-select> | |||||
</el-form-item> | |||||
<el-form-item label="考核内容:"> | |||||
<el-input | |||||
placeholder="请输入考核内容" | |||||
clearable | |||||
v-model="searchParams.content" | |||||
></el-input> | |||||
</el-form-item> | |||||
<el-form-item label="参与部门:"> | |||||
<treeselect | |||||
v-model="searchParams.leaderDept" | |||||
:options="formatDep" | |||||
placeholder="请选择参与部门" | |||||
:defaultExpandLevel="1" | |||||
:normalizer=" | |||||
(d) => { | |||||
return { | |||||
id: d.id, | |||||
label: d.name, | |||||
children: | |||||
d.children && d.children.length > 0 ? d.children : undefined, | |||||
}; | |||||
} | |||||
" | |||||
/> | |||||
</el-form-item> | |||||
<el-button type="primary" size="small" @click="search">查询</el-button> | |||||
<el-button | |||||
type="default" | |||||
size="small" | |||||
@click=" | |||||
clear(); | |||||
search(); | |||||
" | |||||
>清空</el-button | |||||
> | |||||
</el-form> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | |||||
import Treeselect from "@riophae/vue-treeselect"; // 下拉树 | |||||
import { mapGetters, mapActions } from "vuex"; | |||||
export default { | |||||
props: { | |||||
type: { | |||||
type: Number, | |||||
default() { | |||||
return 1; | |||||
}, | |||||
}, | |||||
}, | |||||
components: { | |||||
Treeselect, | |||||
}, | |||||
data() { | |||||
return { | |||||
searchParams: { | |||||
department:'', | |||||
quota: "", | |||||
content: "", | |||||
}, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.getDepartment(1); | |||||
}, | |||||
methods: { | |||||
...mapActions({ | |||||
getDepartment: "base/getDepartment", | |||||
}), | |||||
clear() { | |||||
this.searchParams = { | |||||
quota: "", | |||||
content: "", | |||||
department: "", | |||||
}; | |||||
}, | |||||
search() { | |||||
this.$emit("search:task", this.searchParams); | |||||
}, | |||||
}, | |||||
computed: { | |||||
...mapGetters(["formatDep"]), | |||||
}, | |||||
}; | |||||
</script> | |||||
<style scoped> | |||||
</style> |