|
|
|
<!--
|
|
|
|
* @Descripttion:
|
|
|
|
* @version:
|
|
|
|
* @Author: JC9527
|
|
|
|
* @Date: 2023-09-04 10:20:06
|
|
|
|
* @LastEditors: JC9527
|
|
|
|
* @LastEditTime: 2023-09-15 09:40:29
|
|
|
|
-->
|
|
|
|
<template>
|
|
|
|
<div class="plan-management">
|
|
|
|
<div class="plan-topBox">
|
|
|
|
<div class="drup-downs">
|
|
|
|
<div class="year">
|
|
|
|
<div class="year-span">年份:</div>
|
|
|
|
<!-- <el-select v-model="value" placeholder="请选择">
|
|
|
|
<el-option
|
|
|
|
v-for="item in optionsyear"
|
|
|
|
:key="item.value"
|
|
|
|
:label="item.label"
|
|
|
|
:value="item.value">
|
|
|
|
</el-option>
|
|
|
|
</el-select> -->
|
|
|
|
<el-date-picker
|
|
|
|
v-model="form.plannedYear"
|
|
|
|
type="month"
|
|
|
|
format="yyyy-MM"
|
|
|
|
:clearable="false"
|
|
|
|
value-format="yyyy-MM"
|
|
|
|
placeholder="请选择年份">
|
|
|
|
</el-date-picker>
|
|
|
|
</div>
|
|
|
|
<div class="area">
|
|
|
|
<div class="area-span">区划:</div>
|
|
|
|
<!-- <el-select v-model="value2" placeholder="请选择">
|
|
|
|
<el-option
|
|
|
|
v-for="item in options"
|
|
|
|
:key="item.value"
|
|
|
|
:label="item.label"
|
|
|
|
:value="item.value">
|
|
|
|
</el-option>
|
|
|
|
</el-select> -->
|
|
|
|
<!-- <div class="block">
|
|
|
|
<span class="demonstration">默认 click 触发子菜单</span> -->
|
|
|
|
<el-cascader
|
|
|
|
v-model="form.district"
|
|
|
|
placeholder="请选择"
|
|
|
|
:options="options"
|
|
|
|
:props="props"
|
|
|
|
@change="handleChange"></el-cascader>
|
|
|
|
<!-- </div> -->
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="btns">
|
|
|
|
<div class="export" @click="exportFile">
|
|
|
|
<img src="@/assets/images/export.png" alt="">
|
|
|
|
<span>导出excel</span>
|
|
|
|
</div>
|
|
|
|
<div class="newProject" @click="newProject">
|
|
|
|
<img src="@/assets/images/newProject.png" alt="">
|
|
|
|
<span>新增计划</span>
|
|
|
|
</div>
|
|
|
|
<div class="select-btn reset" @click="reset">重置</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="plan-bottomBox">
|
|
|
|
<div class="tables">
|
|
|
|
<el-table
|
|
|
|
:data="tableData"
|
|
|
|
:border="false"
|
|
|
|
:height="484"
|
|
|
|
v-loading="loading"
|
|
|
|
tooltip-effect="light"
|
|
|
|
@selection-change="handleSelectionChange"
|
|
|
|
row-key="id"
|
|
|
|
:row-class-name="tableRowClassName"
|
|
|
|
>
|
|
|
|
<el-table-column
|
|
|
|
type="selection"
|
|
|
|
reserve-selection
|
|
|
|
width="55"
|
|
|
|
header-align="center"
|
|
|
|
>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
|
|
prop="plannedYear"
|
|
|
|
label="计划年份"
|
|
|
|
width="180"
|
|
|
|
header-align="center"
|
|
|
|
>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
|
|
prop="district"
|
|
|
|
label="行政区划"
|
|
|
|
show-overflow-tooltip
|
|
|
|
width="180"
|
|
|
|
header-align="center"
|
|
|
|
>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
|
|
prop="planNumb"
|
|
|
|
label="计划企业数量"
|
|
|
|
header-align="center"
|
|
|
|
>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
|
|
prop="keyCount"
|
|
|
|
label="省重点数"
|
|
|
|
header-align="center"
|
|
|
|
>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
|
|
prop="createTime"
|
|
|
|
label="创建时间"
|
|
|
|
header-align="center"
|
|
|
|
>
|
|
|
|
<template slot-scope="scope">
|
|
|
|
<span>{{ scope.row.createTime ? scope.row.createTime.split(' ')[0] : scope.row.createTime }}</span>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
|
|
label="操作"
|
|
|
|
width="250"
|
|
|
|
header-align="center"
|
|
|
|
>
|
|
|
|
<template slot-scope="scope">
|
|
|
|
<div class="tabs-btns">
|
|
|
|
<div class="look" @click="look(scope.row)">
|
|
|
|
<img src="@/assets/images/look.png" alt="">
|
|
|
|
<span>查看</span>
|
|
|
|
</div>
|
|
|
|
<div class="change" @click="change(scope.row)">
|
|
|
|
<img src="@/assets/images/change.png" alt="">
|
|
|
|
<span>修改</span>
|
|
|
|
</div>
|
|
|
|
<div class="delete" @click="deleteItem(scope.row)">
|
|
|
|
<img src="@/assets/images/delete.png" alt="">
|
|
|
|
<span>删除</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table>
|
|
|
|
</div>
|
|
|
|
<div class="pagination">
|
|
|
|
<my-pagination :total="total" @pagesChange="pagesChange"></my-pagination>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<my-dialog ref="myDialog" v-on:close="padlock"></my-dialog>
|
|
|
|
<my-dialogtwo ref="myDialogTwo"></my-dialogtwo>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import myPagination from "@/views/components/myPagination/index.vue"
|
|
|
|
import myDialog from "@/views/components/dialog/index.vue"
|
|
|
|
import myDialogtwo from "@/views/components/dialogTwo/index.vue"
|
|
|
|
import { Loading } from "element-ui";
|
|
|
|
export default {
|
|
|
|
components:{myPagination,myDialog,myDialogtwo},
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
optionsyear:[],
|
|
|
|
options:[
|
|
|
|
|
|
|
|
],
|
|
|
|
form:{
|
|
|
|
district:'',
|
|
|
|
plannedYear:''
|
|
|
|
},
|
|
|
|
props:{
|
|
|
|
value:'county',
|
|
|
|
label:'institutionName'
|
|
|
|
},
|
|
|
|
value:'2022',
|
|
|
|
value2:'苏州',
|
|
|
|
tableData: [],
|
|
|
|
multipleSelection: [],
|
|
|
|
pages:{
|
|
|
|
pageSize:10,
|
|
|
|
pageNum:1
|
|
|
|
},
|
|
|
|
total:0,
|
|
|
|
loading:true,
|
|
|
|
}
|
|
|
|
},
|
|
|
|
watch:{
|
|
|
|
form:{
|
|
|
|
handler(newForm) {
|
|
|
|
let { district, plannedYear} = newForm
|
|
|
|
district = district[1]
|
|
|
|
let obj = {...this.pages,district,plannedYear}
|
|
|
|
this.getList(obj)
|
|
|
|
},
|
|
|
|
deep:true
|
|
|
|
}
|
|
|
|
},
|
|
|
|
methods:{
|
|
|
|
// 页码,当前页切换事件
|
|
|
|
pagesChange(pages){
|
|
|
|
// console.log(pages)
|
|
|
|
this.getList(pages)
|
|
|
|
},
|
|
|
|
// 选中的数据
|
|
|
|
handleSelectionChange(val) {
|
|
|
|
// 选中的数组
|
|
|
|
this.multipleSelection = val;
|
|
|
|
},
|
|
|
|
// 导出
|
|
|
|
exportFile(){
|
|
|
|
console.log(this.multipleSelection)
|
|
|
|
},
|
|
|
|
// 新增计划
|
|
|
|
newProject(){
|
|
|
|
this.$refs.myDialog.open('newlyIncreased')
|
|
|
|
},
|
|
|
|
// 重置筛选
|
|
|
|
reset(){
|
|
|
|
Object.keys(this.form).forEach(key=>this.form[key]='')
|
|
|
|
this.getList(this.pages)
|
|
|
|
},
|
|
|
|
// 新增成功后关闭dialog事件触发
|
|
|
|
padlock(){
|
|
|
|
this.getList(this.pages);
|
|
|
|
},
|
|
|
|
// 区划级联选择器选择触发
|
|
|
|
handleChange(value){
|
|
|
|
console.log(value)
|
|
|
|
},
|
|
|
|
// 查看
|
|
|
|
look(row){
|
|
|
|
this.$refs.myDialogTwo.open(row);
|
|
|
|
},
|
|
|
|
// 修改
|
|
|
|
change(row){
|
|
|
|
this.$refs.myDialog.open(row)
|
|
|
|
},
|
|
|
|
// 删除
|
|
|
|
deleteItem(row){
|
|
|
|
let idList = [];
|
|
|
|
idList.push(row.id)
|
|
|
|
this.$modal.confirm("你确认要删除该条数据吗?", "提示", {
|
|
|
|
confirmButtonText: "确定",
|
|
|
|
cancelButtonText: "取消",
|
|
|
|
type: "warning",
|
|
|
|
})
|
|
|
|
.then(async() => {
|
|
|
|
this.loading = true;
|
|
|
|
try {
|
|
|
|
let downloadLoadingInstance = Loading.service({
|
|
|
|
text: "正在删除计划,请稍候",
|
|
|
|
spinner: "el-icon-loading",
|
|
|
|
background: "rgba(0, 0, 0, 0.7)",
|
|
|
|
});
|
|
|
|
let data = await this.$api.yingji.bPlanManage('delete',_,{idList:idList.join(',')})
|
|
|
|
if(data.code == 200) {
|
|
|
|
this.loading = false;
|
|
|
|
downloadLoadingInstance.close();
|
|
|
|
this.$message({
|
|
|
|
message: '删除成功',
|
|
|
|
type: 'success'
|
|
|
|
});
|
|
|
|
this.getList();
|
|
|
|
}
|
|
|
|
} catch (error) {
|
|
|
|
downloadLoadingInstance.close();
|
|
|
|
console.log(error)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.catch(() => {
|
|
|
|
console.log('取消删除')
|
|
|
|
});
|
|
|
|
},
|
|
|
|
tableRowClassName({row, rowIndex}) {
|
|
|
|
if (rowIndex % 2 !== 0) {
|
|
|
|
return 'success-row';
|
|
|
|
}
|
|
|
|
return '';
|
|
|
|
},
|
|
|
|
// 获取list表
|
|
|
|
async getList(pages){
|
|
|
|
this.loading = true;
|
|
|
|
let res = await this.$api.yingji.bPlanManage('get',_,pages);
|
|
|
|
console.log(res);
|
|
|
|
if(res.code == 200) {
|
|
|
|
this.loading = false;
|
|
|
|
}
|
|
|
|
this.tableData = res.data.list;
|
|
|
|
this.total = res.data.total
|
|
|
|
},
|
|
|
|
commentData(item){
|
|
|
|
if(item instanceof Array) {
|
|
|
|
item.map((item)=>{
|
|
|
|
if(item.children instanceof Array && item.children.length == 0){
|
|
|
|
delete item.children;
|
|
|
|
} else {
|
|
|
|
this.props.value = 'subdistrict'
|
|
|
|
this.commentData(item.children)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
this.options = item
|
|
|
|
}
|
|
|
|
},
|
|
|
|
async created() {
|
|
|
|
this.checkListTwo = this.checkList;
|
|
|
|
// this.$nextTick(()=>{
|
|
|
|
// let dom = document.getElementsByClassName('tables');
|
|
|
|
// let height = dom[0].getBoundingClientRect();
|
|
|
|
// let windowHeight = window.innerHeight;
|
|
|
|
// let relativeHeight = windowHeight - height.top
|
|
|
|
// this.main.height = relativeHeight - 80
|
|
|
|
// console.log(this.main.height)
|
|
|
|
// })
|
|
|
|
let data = await this.$api.yingji.tree();
|
|
|
|
this.commentData(data.data)
|
|
|
|
this.getList(this.pages);
|
|
|
|
},
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.plan-management {
|
|
|
|
padding: 0 20px;
|
|
|
|
background-color: #fff;
|
|
|
|
height: 100%;
|
|
|
|
.plan-topBox {
|
|
|
|
display: flex;
|
|
|
|
justify-content: space-between;
|
|
|
|
padding: 31px 0 12px 0;
|
|
|
|
// background-color: yellow;
|
|
|
|
.drup-downs {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
.year {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
margin-right: 81px;
|
|
|
|
.year-span {
|
|
|
|
font-size: 14px;
|
|
|
|
font-family: 'Alibaba PuHuiTi';
|
|
|
|
font-weight: 400;
|
|
|
|
color: #525966;
|
|
|
|
line-height: 40px;
|
|
|
|
margin-right: 10px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.area {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
.area-span {
|
|
|
|
font-size: 14px;
|
|
|
|
font-family: 'Alibaba PuHuiTi';
|
|
|
|
font-weight: 400;
|
|
|
|
color: #525966;
|
|
|
|
line-height: 40px;
|
|
|
|
margin-right: 10px;
|
|
|
|
}
|
|
|
|
::v-deep .el-cascader {
|
|
|
|
background-color: transparent;
|
|
|
|
width: 276px;
|
|
|
|
.el-input__inner {
|
|
|
|
height: 33px;
|
|
|
|
}
|
|
|
|
.el-input .el-input__suffix .el-input__suffix-inner .el-icon-arrow-down::before {
|
|
|
|
content: "";
|
|
|
|
background: url(../../assets/images/down2.png) center center no-repeat;
|
|
|
|
background-size: cover;
|
|
|
|
position: absolute;
|
|
|
|
width: 10px;
|
|
|
|
height: 7px;
|
|
|
|
top: 50%;
|
|
|
|
left: 50%;
|
|
|
|
transform: translate(-50%, -50%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
::v-deep .el-select {
|
|
|
|
background-color: transparent;
|
|
|
|
width: 276px;
|
|
|
|
.el-input__inner {
|
|
|
|
height: 33px;
|
|
|
|
}
|
|
|
|
.el-input .el-input__suffix .el-input__suffix-inner .el-icon-arrow-up {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
}
|
|
|
|
// border-radius: 2px;
|
|
|
|
.el-input .el-input__suffix .el-input__suffix-inner .el-icon-arrow-up::before {
|
|
|
|
content: "";
|
|
|
|
background: url(../../assets/images/down2.png) center center no-repeat;
|
|
|
|
background-size: cover;
|
|
|
|
position: absolute;
|
|
|
|
width: 10px;
|
|
|
|
height: 7px;
|
|
|
|
// top: 50%;
|
|
|
|
// left: 50%;
|
|
|
|
// transform: translate(-50%, -50%);
|
|
|
|
transform: rotate(180deg);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.btns {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
.export,.newProject {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
padding: 6px 19px;
|
|
|
|
cursor: pointer;
|
|
|
|
img {
|
|
|
|
width: 22px;
|
|
|
|
margin-right: 10px;
|
|
|
|
}
|
|
|
|
span {
|
|
|
|
color: #ffffff;
|
|
|
|
font-size: 14px;
|
|
|
|
font-family: 'Alibaba PuHuiTi';
|
|
|
|
font-weight: 400;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.select-btn {
|
|
|
|
width: 120px;
|
|
|
|
height: 34px;
|
|
|
|
border-radius: 2px;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
font-size: 15px;
|
|
|
|
font-family: 'Alibaba PuHuiTi';
|
|
|
|
font-weight: 500;
|
|
|
|
color: #ffffff;
|
|
|
|
cursor: pointer;
|
|
|
|
background: #FDAB5B;
|
|
|
|
margin-left: 20px;
|
|
|
|
}
|
|
|
|
.export {
|
|
|
|
background-color: #2378EC;
|
|
|
|
margin-right: 30px;
|
|
|
|
}
|
|
|
|
.newProject {
|
|
|
|
background-color: #28B384;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.plan-bottomBox {
|
|
|
|
margin-top: 10px;
|
|
|
|
.tables {
|
|
|
|
::v-deep .el-table {
|
|
|
|
.success-row {
|
|
|
|
background-color: rgba(234, 242, 253, 0.25);
|
|
|
|
}
|
|
|
|
td {
|
|
|
|
height: 42px;
|
|
|
|
box-sizing: border-box;
|
|
|
|
text-align: center;
|
|
|
|
font-size: 14px;
|
|
|
|
font-family: 'Alibaba PuHuiTi';
|
|
|
|
font-weight: 400;
|
|
|
|
color: #525966;
|
|
|
|
}
|
|
|
|
th {
|
|
|
|
height: 45px;
|
|
|
|
background-color: #EAF2FD;
|
|
|
|
font-size: 15px;
|
|
|
|
font-family: 'Alibaba PuHuiTi';
|
|
|
|
font-weight: bold;
|
|
|
|
color: #525966;
|
|
|
|
.el-checkbox {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
::v-deep .el-table::before {
|
|
|
|
height: 0;
|
|
|
|
}
|
|
|
|
.tabs-btns {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
.look,.change,.delete {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
margin-right: 30px;
|
|
|
|
cursor: pointer;
|
|
|
|
img {
|
|
|
|
width: 20px;
|
|
|
|
margin-right: 5px;
|
|
|
|
}
|
|
|
|
span {
|
|
|
|
font-size: 15px;
|
|
|
|
font-family: Alibaba PuHuiTi;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #045FFD;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.delete {
|
|
|
|
margin-right: 0;
|
|
|
|
span {
|
|
|
|
color: #F71052;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.pagination {
|
|
|
|
margin-top: 40px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
|