Browse Source

21234

shibei_master
dai 3 years ago
parent
commit
412430bdb2
  1. 604
      src/assets/scss/modules/shequzhili/project-info.scss
  2. 425
      src/views/modules/shequzhili/xiangmu/cpts/project-info.vue
  3. 102
      src/views/modules/shequzhili/xiangmu/index.vue

604
src/assets/scss/modules/shequzhili/project-info.scss

@ -1,384 +1,324 @@
@import '../../c/config'; @import "../../c/config";
@import '../../c/function'; @import "../../c/function";
@import './c/common';
.m-pop { .g-page {
@include shield; display: flex;
background-color: rgba(#000, 0.9); .g-left {
overflow-y: auto; box-sizing: border-box;
width: 65%;
.wrap { padding: 5px 10px;
position: relative;
margin: 120px auto;
width: 1020px;
.title {
padding: 10px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
display: flex;
align-items: center;
img {
display: block;
margin-right: 5px;
}
span {
display: block;
}
} }
.g-right {
.btn-close { box-sizing: border-box;
position: absolute; width: 35%;
top: -15px; padding: 5px 10px;
right: -15px;
cursor: pointer;
} }
}
.line { .m-card {
margin: 20px auto; overflow-x: auto;
width: 900px; }
height: 1px;
border: 1px dashed #1257c9;
}
.tabs { .m-fm{
margin-top: 30px;
display: flex; }
align-items: center;
padding-left: 20px; .m-btns {
padding-left: 58px; display: flex;
justify-content: center;
.tab-btn {
width: 30px;
text-align: center;
cursor: pointer;
}
.tab {
margin: 0 5px;
min-width: 76px;
padding: 0 5px;
height: 30px;
background: rgba(255, 255, 255, 0);
border: 1px solid #1257c9;
box-shadow: 0 0 10px 0 inset #1257c9;
border-radius: 2px;
text-align: center;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 30px;
cursor: pointer;
transition: all ease 0.5s;
&.z-on {
background: linear-gradient(90deg, #1a5afd, #009cff);
box-shadow: none;
}
}
}
}
} }
.m-info { .m-info {
padding-left: 62px; padding-left: 10px;
font-size: 14px; font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 24px;
width: 500px;
.info-title {
margin-top: 30px;
font-size: 20px;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: bold; font-weight: 400;
color: #ffffff; color: #333;
line-height: 30px; line-height: 24px;
} // width: 500px;
.info-content {
margin: 20px 0; .info-title {
} margin-top: 30px;
.info-pics { font-size: 20px;
display: flex; font-family: PingFang SC;
margin: 20px 0; font-weight: bold;
img { color: #333;
display: block; line-height: 30px;
width: 32%;
height: 90px;
margin-right: 9px;
object-fit: cover;
} }
} .info-content {
margin: 20px 0;
.info-prop {
position: relative;
margin: 10px 0;
display: flex;
padding-left: 15px;
.info-title-2 {
width: 70px;
flex: 0 0 1;
font-size: 14px;
} }
.info-pics {
> span, display: flex;
> div { margin: 20px 0;
display: block; img {
max-width: 300px; display: block;
width: 32%;
height: 90px;
margin-right: 9px;
object-fit: cover;
}
} }
&::before { .info-prop {
content: ''; position: relative;
display: block; margin: 10px 0;
position: absolute; display: flex;
top: 9px; padding-left: 15px;
left: 0; .info-title-2 {
width: 7px; width: 70px;
height: 7px; flex: 0 0 1;
background: #0c81fe; font-size: 14px;
border-radius: 3px; }
margin-right: 10px;
> span,
> div {
display: block;
// max-width: 300px;
}
&::before {
content: "";
display: block;
position: absolute;
top: 9px;
left: 0;
width: 7px;
height: 7px;
background: #0c81fe;
border-radius: 3px;
margin-right: 10px;
}
} }
}
} }
.m-case { .m-case {
@include scrollBar; height: 600px;
height: 600px; padding: 20px 0 20px 0;
padding: 20px 0 20px 0; overflow-y: auto;
overflow-y: auto;
} }
.m-row { .m-row {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
}
.m-yanpan {
padding-left: 62px;
padding-right: 0;
min-height: 300px;
} }
.m-hint { .m-hint {
position: relative; position: relative;
height: 300px; height: 300px;
// 暂无数据 // 暂无数据
img { img {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
right: 0; right: 0;
bottom: 0; bottom: 0;
margin: auto; margin: auto;
} }
} }
.m-line { .m-line {
min-width: 400px; min-width: 400px;
.stat { .stat {
margin: 20px 0 10px; margin: 20px 0 10px;
display: flex; display: flex;
.stat-item { .stat-item {
width: 33%; width: 33%;
text-align: center; text-align: center;
div { div {
font-size: 17px; font-size: 17px;
font-family: Source Han Serif SC; font-family: Source Han Serif SC;
font-weight: 500; font-weight: 500;
color: rgba(#fff, 0.5); color: rgba(#000, 0.5);
line-height: 24px; line-height: 24px;
&.z-weak { &.z-weak {
font-size: 12px; font-size: 12px;
font-family: Source Han Serif SC; font-family: Source Han Serif SC;
font-weight: 500; font-weight: 500;
color: rgba(#fff, 0.5); color: rgba(#000, 0.5);
line-height: 24px; line-height: 24px;
}
}
} }
}
} }
}
} }
.m-tb { .m-tb {
padding-left: 62px; padding-left: 62px;
padding-right: 40px; padding-right: 40px;
} }
.m-pagination { .m-pagination {
box-sizing: border-box; box-sizing: border-box;
margin-top: 20px; margin-top: 20px;
width: 100%; width: 100%;
height: 40px; height: 40px;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
background: #0266d1;
color: #000d3f;
}
/deep/ .el-pagination .el-pager li {
background: #002e74;
}
/deep/ .el-pagination .btn-prev {
background: #002e74;
}
/deep/ .el-pagination .btn-next {
background: #002e74;
}
}
.m-process {
width: 400px;
.process-title { /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
margin-bottom: 25px; background: #0266d1;
margin-left: -5px; color: #000d3f;
font-size: 16px; }
font-family: PingFang SC;
font-weight: bold;
color: #ffffff;
line-height: 18px;
}
.list { /deep/ .el-pagination .el-pager li {
position: relative; background: #002e74;
box-sizing: border-box;
margin-top: 30px/2;
margin-left: 50px/2;
padding: 0 0 0 30px/2;
width: 680px/2;
border-left: 3px solid #0c81fe;
padding-right: 10px;
&::before {
content: '';
position: absolute;
z-index: 1;
display: block;
top: -2px/2;
left: -2px/2;
width: 5px/2;
height: 20px/2;
background-color: #ffffff;
} }
.item { /deep/ .el-pagination .btn-prev {
position: relative; background: #002e74;
z-index: 2; }
margin-bottom: 8px;
padding-bottom: 8px;
font-size: 16px;
font-family: PingFang SC;
font-weight: 400;
color: #fefefe;
line-height: 24px;
padding-left: 20px;
padding-top: 1px;
&::before {
content: '';
display: block;
position: absolute;
top: -5px;
left: -11px;
width: 18px;
height: 18px;
background: #0c81fe;
border: 4px solid lighten(#0c81fe, 15);
border-radius: 100%;
}
&.z-on {
&::before {
background: #e08400;
border-color: lighten(#e08400, 15);
}
}
&:last-child { /deep/ .el-pagination .btn-next {
margin-bottom: 0; background: #002e74;
padding-bottom: 0; }
border-bottom: none; }
}
.item-row { .m-process {
margin-top: -10px; margin-top: 30px;
margin-bottom: 10px; margin-left: 15px;
display: flex; // min-width: 400px;
}
.name { .process-title {
position: relative; margin-bottom: 25px;
padding: 0 10px; margin-left: -5px;
font-size: 12px; font-size: 16px;
font-family: PingFang SC;
font-weight: 500;
color: #fefefe;
line-height: 22px;
height: 22px;
border-radius: 10px 0 10px 0;
background-color: #0c81fe;
// background-color: #e08400;
}
.date {
margin-left: 10px;
font-size: 12px;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 500; font-weight: bold;
color: #7ca1d2; color: #333;
line-height: 25px; line-height: 18px;
} }
.detail { .list {
@include cs; position: relative;
font-size: 16px; box-sizing: border-box;
line-height: 20px; margin-top: 30px/2;
margin-bottom: 5px; margin-left: 50px/2;
display: flex; padding: 0 0 0 30px/2;
width: 680px/2;
border-left: 3px solid #0c81fe;
padding-right: 10px;
.detail-field { &::before {
width: 22%; content: "";
text-align: justify; position: absolute;
text-align-last: justify; z-index: 1;
} display: block;
.detail-value { top: -2px/2;
width: 78%; left: -2px/2;
.detail-link { width: 5px/2;
display: inline; height: 20px/2;
} background-color: #333;
} }
}
.item {
.attachement-list { position: relative;
padding-left: 80px; z-index: 2;
a { margin-bottom: 8px;
display: block; padding-bottom: 8px;
cursor: pointer; font-size: 16px;
color: #4df0ff; font-family: PingFang SC;
font-size: 14px; font-weight: 400;
color: #333;
i { line-height: 24px;
color: #fff; padding-left: 20px;
} padding-top: 1px;
&::before {
content: "";
display: block;
position: absolute;
top: -5px;
left: -11px;
width: 18px;
height: 18px;
background: #0c81fe;
border: 4px solid lighten(#0c81fe, 15);
border-radius: 100%;
}
&.z-on {
&::before {
background: #e08400;
border-color: lighten(#e08400, 15);
}
}
&:last-child {
margin-bottom: 0;
padding-bottom: 0;
border-bottom: none;
}
.item-row {
margin-top: -10px;
margin-bottom: 10px;
display: flex;
}
.name {
position: relative;
padding: 0 10px;
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: #fff;
line-height: 22px;
height: 22px;
border-radius: 10px 0 10px 0;
background-color: #0c81fe;
// background-color: #e08400;
}
.date {
margin-left: 10px;
font-size: 12px;
font-family: PingFang SC;
font-weight: 500;
color: #7ca1d2;
line-height: 25px;
}
.detail {
@include cs;
font-size: 14px;
line-height: 20px;
margin-bottom: 5px;
display: flex;
.detail-field {
width: 80px;
text-align: justify;
text-align-last: justify;
}
.detail-value {
// width: 78%;
.detail-link {
display: inline;
}
}
}
.attachement-list {
padding-left: 80px;
a {
display: block;
cursor: pointer;
color: #4df0ff;
font-size: 14px;
i {
color: #333;
}
}
}
} }
}
} }
}
} }
.m-top { .m-top {
display: flex; display: flex;
} }

425
src/views/modules/shequzhili/xiangmu/cpts/project-info.vue

@ -1,16 +1,10 @@
<template> <template>
<div class="m-pop"> <div class="">
<div class="wrap"> <div class="g-page" v-show="pageType == 'info'">
<cpt-card> <div class="g-left">
<div class="title"> <el-card>
<img src="@/assets/img/shuju/title-tip.png" /> <h3>项目详情</h3>
<span>项目详情</span>
</div>
<div class="btn-close" @click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<div class="m-top">
<div class="m-info"> <div class="m-info">
<div class="info-prop"> <div class="info-prop">
<span>项目标题</span> <span>项目标题</span>
@ -34,7 +28,7 @@
</div> </div>
<div class="info-prop" v-if="projectCate.length > 0"> <div class="info-prop" v-if="projectCate.length > 0">
<span>分类</span> <span>分类</span>
<fold-text :row="3"> <fold-text style="width: 300px" :row="3">
<div :key="item.name" v-for="item in projectCate"> <div :key="item.name" v-for="item in projectCate">
{{ item.name }} {{ item.name }}
</div> </div>
@ -42,7 +36,7 @@
</div> </div>
<div class="info-prop" v-if="projectTag.length > 0"> <div class="info-prop" v-if="projectTag.length > 0">
<span>标签</span> <span>标签</span>
<fold-text :row="3"> <fold-text style="width: 300px" :row="3">
<div :key="item.name" v-for="item in projectTag"> <div :key="item.name" v-for="item in projectTag">
{{ item.name }} {{ item.name }}
</div> </div>
@ -50,8 +44,49 @@
</div> </div>
</div> </div>
<div class="m-process" v-if="projectProcess.length > 0"> <div class="m-btns" v-if="type == 'info'">
<div class="process-title">处理进展</div> <el-button size="" style="margin-right: 50px" @click="handleClose"
>关闭</el-button
>
<el-button size="" type="danger" @click="handleClose"
>确定</el-button
>
</div>
</el-card>
<el-card v-if="type == 'edit'">
<h3>处理</h3>
<div class="m-fm">
<el-form
:inline="true"
:model="fmData"
:rules="dataRule"
label-position="left"
label-width="100px"
>
<el-form-item label="处理:" prop="operateType">
<el-radio-group v-model="fmData.operateType">
<el-radio :label="3">处理/响应</el-radio>
<el-radio :label="6">结案</el-radio>
<el-radio :label="9">转其他机关/科室</el-radio>
<el-radio :label="9">退回</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</div>
<div class="m-btns">
<el-button size="" style="margin-right: 50px" @click="handleClose"
>关闭</el-button
>
<el-button size="" type="danger" @click="handleClose"
>确定</el-button
>
</div>
</el-card>
</div>
<div class="g-right">
<el-card class="m-card" v-if="projectProcess.length > 0">
<h3>处理进展</h3>
<div class="m-process">
<div class="list"> <div class="list">
<div <div
class="item" class="item"
@ -106,182 +141,60 @@
</div> </div>
</div> </div>
</div> </div>
</div> </el-card>
<div v-if="projectInfo.origin !== 'agency'" class="tabs"> </div>
<div </div>
class="tab-btn"
@click="subStartGroupIndex" <div class="g-page" v-show="pageType == 'issue-info'">
v-if="groupList.length > 9" <div class="g-left">
> <div v-if="projectInfo.origin === 'issue'" class="m-info">
<img src="@/assets/img/shuju/people/arrow-double-left.png" /> <div class="info-prop">
<span>议题标题</span>
<span>{{ issueInfo.issueTitle }}</span>
</div> </div>
<div <div class="info-prop">
v-show="index >= startGroupIndex && index < startGroupIndex + 9" <span>议题建议</span>
class="tab" <span>{{ issueInfo.issueSuggestion }}</span>
:class="groupIndex % groupList.length == index ? 'z-on' : ''" </div>
:key="'tab' + index" <div class="info-prop">
@click="groupIndex = index" <span>所属网格</span>
v-for="(item, index) in groupList" <span>{{ issueInfo.belongsGridName || "--" }}</span>
> </div>
{{ item.label }} <div class="info-prop">
<span>议题发起人</span>
<span>{{ issueInfo.issueInitiator }}</span>
</div> </div>
<div <div
class="tab-btn" v-if="issueInfo.topicInfo && issueInfo.topicInfo.groupName"
@click="addStartGroupIndex" class="info-prop"
v-if="groupList.length > 9"
> >
<img src="@/assets/img/shuju/people/arrow-double-right.png" /> <span>议题来源</span>
<span>{{ issueInfo.topicInfo.groupName }}</span>
</div> </div>
</div> <div class="info-prop">
<span>转议题时间</span>
<div class="m-case" v-if="projectInfo.origin !== 'agency'"> <span>{{ issueInfo.shiftIssueTime }}</span>
<div class="m-yanpan" v-if="groupIndex == 0">
<div v-if="projectId || true">
<screen-loading v-if="!yanPan.loading">加载中</screen-loading>
<analyse
v-else-if="yanPan.singleTitle"
:singleTitle="yanPan.singleTitle"
:moreTitle="yanPan.moreTitle"
:userList="yanPan.homeUserList"
:userName="yanPan.icUserName"
:singleList="yanPan.singleList"
:hasEvent="yanPan.hasEvent"
:moreList="yanPan.moreList"
@user="toUserInfo"
@project="toProjectInfo"
/>
<div v-else class="m-hint">
<img
src="@/assets/img/modules/visual/noData.png"
class="no-data-img"
/>
</div>
</div>
</div>
<div v-if="groupIndex == 1">
<div
class="m-row"
v-if="projectInfo.originId && projectInfo.origin !== 'work_event'"
>
<div v-if="projectInfo.origin === 'issue'" class="m-info">
<div class="info-prop">
<span>议题标题</span>
<span>{{ issueInfo.issueTitle }}</span>
</div>
<div class="info-prop">
<span>议题建议</span>
<span>{{ issueInfo.issueSuggestion }}</span>
</div>
<div class="info-prop">
<span>所属网格</span>
<span>{{ issueInfo.belongsGridName || "--" }}</span>
</div>
<div class="info-prop">
<span>议题发起人</span>
<span>{{ issueInfo.issueInitiator }}</span>
</div>
<div
v-if="issueInfo.topicInfo && issueInfo.topicInfo.groupName"
class="info-prop"
>
<span>议题来源</span>
<span>{{ issueInfo.topicInfo.groupName }}</span>
</div>
<div class="info-prop">
<span>转议题时间</span>
<span>{{ issueInfo.shiftIssueTime }}</span>
</div>
</div>
<div v-if="projectInfo.origin === 'resi_event'" class="m-info">
<div class="info-title">事件内容</div>
<div class="info-content">{{ info.eventContent }}</div>
<div class="info-pics">
<img
:src="src"
:key="src"
v-for="src in info.eventImgs"
@click="watchImg(src)"
/>
</div>
<div class="info-prop">
<span class="info-title-2">提交时间</span>
<span>{{ info.eventTime }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">报事人</span>
<span>{{ info.eventPeopleName }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">所属网格</span>
<span>{{ info.gridName }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">提报给</span>
<div>
<div>{{ info.eventPersonShow }}</div>
<div>{{ info.eventOrgShow }}</div>
</div>
<!-- <span>{{ info.eventPerson.join("、") || "--" }}</span> -->
</div>
</div>
<div v-if="projectInfo.origin === 'issue'" class="m-line">
<div class="stat">
<div class="stat-item">
<div>
{{ issueTrend.realityVoteCount }}/{{
issueTrend.shouldVoteCount
}}
</div>
<div class="z-weak">已表决/应表决</div>
</div>
<div class="stat-item">
<div>{{ issueTrend.supportAmount }}</div>
<div class="z-weak">支持</div>
</div>
<div class="stat-item">
<div>{{ issueTrend.oppositionAmount }}</div>
<div class="z-weak">反对</div>
</div>
</div>
<line-chart
v-if="issueChartData.length > 0"
:list="issueChartData"
/>
</div>
</div>
<div v-else class="m-hint">
<img
src="@/assets/img/modules/visual/noData.png"
class="no-data-img"
/>
</div>
</div> </div>
</div> </div>
</cpt-card> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import cptCard from "@/views/modules/visual/cpts/card";
import screenLoading from "@/views/modules/visual/cpts/loading";
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import cptTb from "@/views/modules/visual/cpts/tb";
import lineChart from "@/views/modules/visual/cpts/line-chart";
import analyse from "@/views/modules/visual/cpts/analyse";
import foldText from "@/views/components/foldText"; import foldText from "@/views/components/foldText";
import dateFormat from "dai-js/tools/dateFormat"; import dateFormat from "dai-js/tools/dateFormat";
function iniData() { function iniData() {
return { return {
pageType: "info",
projectIdCopy: this.projectId, projectIdCopy: this.projectId,
groupList: [{ label: "研判分析" }, { label: "项目来源" }],
groupIndex: 0, fmData: {
startGroupIndex: 0, operateType: "",
},
projectProcess: [], projectProcess: [],
@ -346,66 +259,37 @@ function iniData() {
projectCate: [], projectCate: [],
projectTag: [], projectTag: [],
yanPan: {
loading: false,
icResiUserId: "",
houseId: "",
icUserName: "",
homeUserList: [
// {
// homeId: '',
// icUserId: '',
// icUserName: '',
// }
],
projectData: [
// {
// firstCategoryCode: '',
// firstCategoryName: '',
// projectList: [],
// }
],
hasEvent: false,
singleTitle: "",
moreTitle: "",
singleList: [], //
moreList: [], //
},
}; };
} }
export default { export default {
name: "demandInfo", name: "projectInfo",
props: { props: {
projectId: { projectId: {
type: String, type: String,
default: "", default: "64502a8f1048a7240295527a9b32e513",
}, },
userId: { type: {
type: String, type: String,
default: "", default: "info",
},
categoryCodes: {
type: Array,
default: [],
}, },
}, },
components: { components: {
cptCard,
cptTb,
analyse,
screenLoading,
lineChart,
foldText, foldText,
}, },
data: iniData, data: iniData,
computed: {}, computed: {
dataRule() {
return {
operateType: [
{ required: true, message: "处理方式不能为空", trigger: "blur" },
],
};
},
},
watch: { watch: {
projectId() { projectId() {
@ -430,22 +314,6 @@ export default {
window.open(src); window.open(src);
}, },
addStartGroupIndex() {
const { startGroupIndex, groupList } = this;
if (startGroupIndex < groupList.length - 9) {
this.startGroupIndex = startGroupIndex + 1;
} else {
this.startGroupIndex = groupList.length - 9;
}
},
subStartGroupIndex() {
const { startGroupIndex, groupList } = this;
if (startGroupIndex > 0) {
this.startGroupIndex = startGroupIndex - 1;
} else {
this.startGroupIndex = 0;
}
},
handleClose() { handleClose() {
this.$emit("close"); this.$emit("close");
}, },
@ -460,9 +328,6 @@ export default {
} else if (this.projectInfo.origin === "resi_event") { } else if (this.projectInfo.origin === "resi_event") {
this.getEventInfo(); this.getEventInfo();
} }
if (this.projectInfo.origin !== "agency") {
await this.getYanPan();
}
}, },
// //
@ -585,98 +450,6 @@ export default {
} }
}, },
//
async getYanPan() {
const url = "/data/aggregator/project/projectanalysis";
if (!this.userId) return (this.yanPan.loading = true);
const { data, code, msg } = await requestPost(url, {
categoryCodeList: this.categoryCodes,
userId: this.userId,
projectId: this.projectIdCopy,
});
if (code === 0) {
data.icResiUserId = data.icUserId;
data.homeUserList.forEach((item) => {
item.icResiUserId = item.icUserId;
});
let array1 = [];
let array2 = [];
//
if (
data.groupProjectList &&
data.groupProjectList.length > 0 &&
data.eventProjectList &&
data.eventProjectList.length > 0
) {
this.yanPan.hasEvent = true;
this.yanPan.singleTitle = "楼院小组";
this.yanPan.moreTitle = "事件上报";
array1 = [...data.groupProjectList];
array2 = [...data.eventProjectList];
} else {
this.yanPan.hasEvent = false;
if (data.groupProjectList && data.groupProjectList.length > 0) {
array1 = [...data.groupProjectList];
this.yanPan.singleTitle = "楼院小组";
} else if (
data.eventProjectList &&
data.eventProjectList.length > 0
) {
array1 = [...data.eventProjectList];
this.yanPan.singleTitle = "事件上报";
} else {
array1 = [];
}
}
if (array1.length > 0) {
data.singleList = array1.map((item) => {
return {
categoryCode: item.categoryCode,
categoryName: item.categoryName,
showItem: true,
projectList: item.projectList.map((subItem) => {
return {
title: subItem.title,
status: subItem.status,
statusName: subItem.status == "pending" ? "待处理" : "结案",
projectId: subItem.projectId,
};
}),
};
});
}
if (array2.length > 0) {
data.moreList = array2.map((item) => {
return {
categoryCode: item.categoryCode,
categoryName: item.categoryName,
showItem: true,
projectList: item.projectList.map((subItem) => {
return {
title: subItem.title,
status: subItem.status,
statusName: subItem.status == "pending" ? "待处理" : "结案",
projectId: subItem.projectId,
};
}),
};
});
}
this.yanPan = { ...this.yanPan, ...data };
console.log(this.yanPan);
this.yanPan.loading = true;
} else {
this.$message.error(msg);
}
},
toUserInfo(item) { toUserInfo(item) {
this.$router.push({ this.$router.push({
path: `/main-shuju/visual-basicinfo-people/${item.icResiUserId}`, path: `/main-shuju/visual-basicinfo-people/${item.icResiUserId}`,
@ -698,6 +471,6 @@ export default {
<style <style
lang="scss" lang="scss"
src="@/assets/scss/modules/visual/incident-info.scss" src="@/assets/scss/modules/shequzhili/project-info.scss"
scoped scoped
></style> ></style>

102
src/views/modules/shequzhili/xiangmu/index.vue

@ -10,9 +10,9 @@
class="demo-form-inline" class="demo-form-inline"
> >
<div> <div>
<el-form-item label="项目标题" prop="titleTemp"> <el-form-item label="项目标题" prop="title">
<el-input <el-input
v-model="fmData.titleTemp" v-model="fmData.title"
class="resi-cell-input" class="resi-cell-input"
size="small" size="small"
clearable clearable
@ -21,9 +21,9 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="转项目时间" prop="birthdayTime"> <el-form-item label="转项目时间" prop="date">
<el-date-picker <el-date-picker
v-model="fmData.birthdayTime" v-model="fmData.date"
type="daterange" type="daterange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
@ -33,9 +33,9 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="remark"> <el-form-item label="状态" prop="status">
<el-select <el-select
v-model.trim="fmData.statusTemp" v-model.trim="fmData.status"
placeholder="请选择" placeholder="请选择"
size="small" size="small"
clearable clearable
@ -128,15 +128,6 @@
align="center" align="center"
width="50" width="50"
/> />
<el-table-column prop="name" fixed="left" label="姓名" align="center">
<template slot-scope="scope">
<a class="name-a" @click="handleWatch(scope.$index)">
{{ scope.row.name }}
</a>
</template>
</el-table-column>
<el-table-column <el-table-column
prop="gridName" prop="gridName"
align="center" align="center"
@ -146,80 +137,50 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="home" prop="title"
label="所属房屋" label="项目标题"
align="center" align="center"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="mobile" prop="shiftProjectTime"
width="100" width="100"
align="center" align="center"
label="手机号" label="转项目时间"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="idCard" prop="projectScheme"
align="center" align="center"
label="身份证号" label="项目方案"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
</el-table-column> </el-table-column>
<el-table-column prop="gender" align="center" label="性别">
</el-table-column>
<el-table-column <el-table-column
prop="birthday" prop="internalRemark"
align="center" align="center"
label="出生日期" label="内部备注"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="birthplace" prop="departmentNameList"
align="center" align="center"
label="出生地" label="当前处理部门 "
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="parentName" prop="detentionDays"
align="center" align="center"
label="出生人父/母姓名" label="滞留工作日 "
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column prop="count" align="center" label="胎次">
</el-table-column>
<el-table-column
prop="reportDate"
align="center"
label="申报户口日期"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
prop="householderName"
align="center"
label="户主姓名"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column
prop="householderRelation"
align="center"
label="与户主关系"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
> >
</el-table-column> </el-table-column>
@ -232,18 +193,20 @@
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@click="handleWatch(scope.$index)" v-if="scope.status == 'pending'"
@click="handleEdit(scope.$index)"
type="text" type="text"
size="small" size="small"
>查看</el-button class="div-table-button--edit"
>处理</el-button
> >
<el-button <el-button
@click="handleEdit(scope.$index)" v-else
@click="handleWatch(scope.$index)"
type="text" type="text"
size="small" size="small"
class="div-table-button--edit" >查看</el-button
>处理</el-button
> >
<el-popconfirm <el-popconfirm
@ -285,8 +248,8 @@
ref="eleEditForm" ref="eleEditForm"
:type="pageType" :type="pageType"
:projectId="currentProject.projectId" :projectId="currentProject.projectId"
@dialogCancle="handleClose" @close="handleClose"
@dialogOk="handleEditSuccess" @afterEdit="handleEditSuccess"
/> />
</div> </div>
</div> </div>
@ -326,9 +289,9 @@ export default {
fmData: { fmData: {
title: "", title: "",
status: "", status: "",
birthdayStart: "", startDate: "",
birthdayEnd: "", endDate: "",
birthdayTime: ["", ""], date: ["", ""],
}, },
importBtnTitle: "导入", importBtnTitle: "导入",
@ -350,7 +313,7 @@ export default {
...mapGetters(["clientHeight", "iframeHeight"]), ...mapGetters(["clientHeight", "iframeHeight"]),
}, },
watch: { watch: {
"fmData.birthdayTime": function (val) { "fmData.date": function (val) {
if (Array.isArray(val) && val.length == 2) { if (Array.isArray(val) && val.length == 2) {
this.fmData.birthdayStart = val[0]; this.fmData.birthdayStart = val[0];
this.fmData.birthdayEnd = val[1]; this.fmData.birthdayEnd = val[1];
@ -589,7 +552,8 @@ export default {
}, },
async getTableData() { async getTableData() {
const url = "/epmetuser/icBirthRecord/page"; // const url = "/epmetuser/icBirthRecord/page";
const url = "/gov/project/project/project-list";
const { pageSize, pageNo, fmData } = this; const { pageSize, pageNo, fmData } = this;
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
pageSize, pageSize,

Loading…
Cancel
Save