YF-yuan 3 years ago
parent
commit
2d1cbd5a19
10 changed files with 913 additions and 129 deletions
  1. +30
    -39
      src/views/assessingTarget/basicTarget.vue
  2. +19
    -32
      src/views/assessingTarget/constraint.vue
  3. +29
    -32
      src/views/assessingTarget/reward.vue
  4. +0
    -13
      src/views/chain/assessmentContent/index.vue
  5. +287
    -0
      src/views/chain/assessmentContent/software.vue
  6. +134
    -0
      src/views/chain/coordinationManage/applyCooperation.vue
  7. +164
    -0
      src/views/chain/coordinationManage/approvalCooperation.vue
  8. +151
    -0
      src/views/chain/coordinationManage/cooperateList.vue
  9. +0
    -13
      src/views/chain/coordinationManage/index.vue
  10. +99
    -0
      src/views/chain/search.vue

+ 30
- 39
src/views/assessingTarget/basicTarget.vue View File

<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;
}); });
}, },
}, },

+ 19
- 32
src/views/assessingTarget/constraint.vue View File

<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;
}); });
}, },
}, },

+ 29
- 32
src/views/assessingTarget/reward.vue View File

<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;
}); });
}, },
}, },

+ 0
- 13
src/views/chain/assessmentContent/index.vue View File

<template>
</template>

<script>
export default {

}
</script>

<style>

</style>

+ 287
- 0
src/views/chain/assessmentContent/software.vue View File

<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>&nbsp;
</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>

+ 134
- 0
src/views/chain/coordinationManage/applyCooperation.vue View File

<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>&nbsp;
<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>

+ 164
- 0
src/views/chain/coordinationManage/approvalCooperation.vue View File

<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>&nbsp;
<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>

+ 151
- 0
src/views/chain/coordinationManage/cooperateList.vue View File

<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>&nbsp;
<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>

+ 0
- 13
src/views/chain/coordinationManage/index.vue View File

<template>
</template>

<script>
export default {

}
</script>

<style>

</style>

+ 99
- 0
src/views/chain/search.vue View File

<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>

Loading…
Cancel
Save