You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							683 lines
						
					
					
						
							19 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							683 lines
						
					
					
						
							19 KiB
						
					
					
				
								<template>
							 | 
						|
								  <div class="m-pop">
							 | 
						|
								    <div class="wrap">
							 | 
						|
								      <cpt-card>
							 | 
						|
								        <div class="title">
							 | 
						|
								          <img src="@/assets/img/shuju/title-tip.png" />
							 | 
						|
								          <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="info-prop">
							 | 
						|
								              <span>项目标题:</span>
							 | 
						|
								              <span>{{ projectInfo.projectTitle }}</span>
							 | 
						|
								            </div>
							 | 
						|
								            <div class="info-prop">
							 | 
						|
								              <span>项目背景:</span>
							 | 
						|
								              <span>{{ projectInfo.backGround }}</span>
							 | 
						|
								            </div>
							 | 
						|
								            <div class="info-prop">
							 | 
						|
								              <span>项目方案:</span>
							 | 
						|
								              <span>{{ projectInfo.projectTitle }}</span>
							 | 
						|
								            </div>
							 | 
						|
								            <div class="info-prop">
							 | 
						|
								              <span>内部备注:</span>
							 | 
						|
								              <span>{{ projectInfo.internalRemark || "--" }}</span>
							 | 
						|
								            </div>
							 | 
						|
								            <div class="info-prop">
							 | 
						|
								              <span>当前处理部门:</span>
							 | 
						|
								              <span>{{ projectInfo.departmentNameList.join("、") }}</span>
							 | 
						|
								            </div>
							 | 
						|
								            <div class="info-prop"
							 | 
						|
								                 v-if="projectCate.length > 0">
							 | 
						|
								              <span>分类:</span>
							 | 
						|
								              <fold-text :row="3">
							 | 
						|
								                <div :key="item.name"
							 | 
						|
								                     v-for="item in projectCate">
							 | 
						|
								                  {{ item.name }}
							 | 
						|
								                </div>
							 | 
						|
								              </fold-text>
							 | 
						|
								            </div>
							 | 
						|
								            <div class="info-prop"
							 | 
						|
								                 v-if="projectTag.length > 0">
							 | 
						|
								              <span>标签:</span>
							 | 
						|
								              <fold-text :row="3">
							 | 
						|
								                <div :key="item.name"
							 | 
						|
								                     v-for="item in projectTag">
							 | 
						|
								                  {{ item.name }}
							 | 
						|
								                </div>
							 | 
						|
								              </fold-text>
							 | 
						|
								            </div>
							 | 
						|
								          </div>
							 | 
						|
								
							 | 
						|
								          <div class="m-process"
							 | 
						|
								               v-if="projectProcess.length > 0">
							 | 
						|
								            <div class="process-title">处理进展</div>
							 | 
						|
								            <div class="list">
							 | 
						|
								              <div class="item"
							 | 
						|
								                   :class="index === 0 ? 'z-on' : ''"
							 | 
						|
								                   :key="item.processId"
							 | 
						|
								                   v-for="(item, index) in projectProcess">
							 | 
						|
								                <div class="item-row">
							 | 
						|
								                  <div class="name">{{ item.processName }}</div>
							 | 
						|
								                  <div class="date">
							 | 
						|
								                    {{ item.processTime }}
							 | 
						|
								                  </div>
							 | 
						|
								                </div>
							 | 
						|
								
							 | 
						|
								                <div class="detail">
							 | 
						|
								                  <div class="detail-field">处理部门:</div>
							 | 
						|
								                  <div class="detail-value">{{ item.departmentName }}</div>
							 | 
						|
								                </div>
							 | 
						|
								
							 | 
						|
								                <div class="detail"
							 | 
						|
								                     v-if="item.processName != '转项目' && item.publicReply">
							 | 
						|
								                  <div class="detail-field">说 明:</div>
							 | 
						|
								                  <div class="detail-value">
							 | 
						|
								                    <fold-text :row="3">{{ item.publicReply }}</fold-text>
							 | 
						|
								                  </div>
							 | 
						|
								                </div>
							 | 
						|
								
							 | 
						|
								                <div class="detail"
							 | 
						|
								                     v-if="item.processName != '转项目' && item.internalRemark">
							 | 
						|
								                  <div class="detail-field">内部备注:</div>
							 | 
						|
								                  <div class="detail-value">
							 | 
						|
								                    <fold-text :row="3">{{
							 | 
						|
								                          item.internalRemark
							 | 
						|
								                        }}</fold-text>
							 | 
						|
								                  </div>
							 | 
						|
								                </div>
							 | 
						|
								                <div class="detail">
							 | 
						|
								                  <div class="attachement-list">
							 | 
						|
								                    <a :href="att.url"
							 | 
						|
								                       target="_blank"
							 | 
						|
								                       :key="att.url"
							 | 
						|
								                       v-for="att in item.internalFile">
							 | 
						|
								                      <i class="el-icon-folder-opened"></i>
							 | 
						|
								                      {{ att.name }}
							 | 
						|
								                    </a>
							 | 
						|
								                  </div>
							 | 
						|
								                </div>
							 | 
						|
								              </div>
							 | 
						|
								            </div>
							 | 
						|
								          </div>
							 | 
						|
								        </div>
							 | 
						|
								        <div v-if="projectInfo.origin!=='agency'"
							 | 
						|
								             class="tabs">
							 | 
						|
								          <div class="tab-btn"
							 | 
						|
								               @click="subStartGroupIndex"
							 | 
						|
								               v-if="groupList.length > 9">
							 | 
						|
								            <img src="@/assets/img/shuju/people/arrow-double-left.png" />
							 | 
						|
								          </div>
							 | 
						|
								          <div v-show="index >= startGroupIndex && index < startGroupIndex + 9"
							 | 
						|
								               class="tab"
							 | 
						|
								               :class="groupIndex % groupList.length == index ? 'z-on' : ''"
							 | 
						|
								               :key="'tab' + index"
							 | 
						|
								               @click="groupIndex = index"
							 | 
						|
								               v-for="(item, index) in groupList">
							 | 
						|
								            {{ item.label }}
							 | 
						|
								          </div>
							 | 
						|
								          <div class="tab-btn"
							 | 
						|
								               @click="addStartGroupIndex"
							 | 
						|
								               v-if="groupList.length > 9">
							 | 
						|
								            <img src="@/assets/img/shuju/people/arrow-double-right.png" />
							 | 
						|
								          </div>
							 | 
						|
								        </div>
							 | 
						|
								
							 | 
						|
								        <div class="m-case"
							 | 
						|
								             v-if="projectInfo.origin!=='agency'">
							 | 
						|
								          <div class="m-yanpan"
							 | 
						|
								               v-if="groupIndex == 0">
							 | 
						|
								            <div v-if="projectId">
							 | 
						|
								              <analyse v-if="yanPan.loading"
							 | 
						|
								                       singleTitle="楼院小组"
							 | 
						|
								                       :userList="yanPan.homeUserList"
							 | 
						|
								                       :userName="yanPan.icUserName"
							 | 
						|
								                       :singleList="yanPan.singleList"
							 | 
						|
								                       :hasEvent="yanPan.hasEvent"
							 | 
						|
								                       :moreList="yanPan.moreList"
							 | 
						|
								                       @user="toUserInfo"
							 | 
						|
								                       @project="toProjectInfo" />
							 | 
						|
								              <screen-loading v-else>加载中</screen-loading>
							 | 
						|
								            </div>
							 | 
						|
								            <div v-else
							 | 
						|
								                 class="m-hint">
							 | 
						|
								              <img src="@/assets/img/modules/visual/noData.png"
							 | 
						|
								                   class="no-data-img" />
							 | 
						|
								            </div>
							 | 
						|
								          </div>
							 | 
						|
								
							 | 
						|
								          <div v-if="groupIndex == 1">
							 | 
						|
								            <div class="m-row"
							 | 
						|
								                 v-if="projectInfo.originId">
							 | 
						|
								              <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 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>提交时间:</span>
							 | 
						|
								                  <span>{{ info.eventTime }}</span>
							 | 
						|
								                </div>
							 | 
						|
								                <div class="info-prop">
							 | 
						|
								                  <span>报事人:</span>
							 | 
						|
								                  <span>{{ info.eventPeopleName }}</span>
							 | 
						|
								                </div>
							 | 
						|
								                <div class="info-prop">
							 | 
						|
								                  <span>所属网格:</span>
							 | 
						|
								                  <span>{{ info.gridName }}</span>
							 | 
						|
								                </div>
							 | 
						|
								                <div class="info-prop">
							 | 
						|
								                  <span>提报给:</span>
							 | 
						|
								                  <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>
							 | 
						|
								      </cpt-card>
							 | 
						|
								    </div>
							 | 
						|
								  </div>
							 | 
						|
								</template>
							 | 
						|
								
							 | 
						|
								<script>
							 | 
						|
								import cptCard from "@/views/modules/visual/cpts/card";
							 | 
						|
								import screenLoading from "@/views/modules/visual/cpts/loading";
							 | 
						|
								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 dateFormat from "dai-js/tools/dateFormat";
							 | 
						|
								
							 | 
						|
								function iniData () {
							 | 
						|
								  return {
							 | 
						|
								    projectIdCopy: this.projectId,
							 | 
						|
								    groupList: [
							 | 
						|
								      { label: "研判分析" },
							 | 
						|
								      { label: "项目来源" },
							 | 
						|
								    ],
							 | 
						|
								    groupIndex: 0,
							 | 
						|
								    startGroupIndex: 0,
							 | 
						|
								
							 | 
						|
								    projectProcess: [],
							 | 
						|
								
							 | 
						|
								    projectInfo: {
							 | 
						|
								      backGround: "",
							 | 
						|
								      departmentList: [
							 | 
						|
								        //   { departmentName: "南宁社区-南宁第二网格", staffList: ["周相成"] },
							 | 
						|
								      ],
							 | 
						|
								      departmentNameList: [],
							 | 
						|
								      internalRemark: "",
							 | 
						|
								      isSend: false,
							 | 
						|
								      locateAddress: "",
							 | 
						|
								      locateDimension: "",
							 | 
						|
								      locateLongitude: "",
							 | 
						|
								      origin: "",
							 | 
						|
								      originId: "",
							 | 
						|
								      platformIds: [],
							 | 
						|
								      processable: false,
							 | 
						|
								      projectId: "",
							 | 
						|
								      projectStatus: "pending",
							 | 
						|
								      projectTitle: "",
							 | 
						|
								      publicReply: "",
							 | 
						|
								      returnable: false,
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    issueInfo: {
							 | 
						|
								      attitude: "",
							 | 
						|
								      belongsGridName: "",
							 | 
						|
								      issueIdea: "",
							 | 
						|
								      issueInitiator: "",
							 | 
						|
								      issueStatus: "",
							 | 
						|
								      issueSuggestion: "",
							 | 
						|
								      issueTitle: "",
							 | 
						|
								      joinVote: true,
							 | 
						|
								      projectId: "",
							 | 
						|
								      projectStatus: false,
							 | 
						|
								      publishIdeaFlag: false,
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    issueTrend: {},
							 | 
						|
								    issueChartData: [],
							 | 
						|
								
							 | 
						|
								    eventInfo: {
							 | 
						|
								      eventTime: "",
							 | 
						|
								      eventContent: "",
							 | 
						|
								      eventAddress: "",
							 | 
						|
								      gridName: "",
							 | 
						|
								      isClosed: true,
							 | 
						|
								      isResolve: true,
							 | 
						|
								      isRollback: true,
							 | 
						|
								      eventImgs: [],
							 | 
						|
								      eventPerson: [],
							 | 
						|
								      eventOrg: [],
							 | 
						|
								      eventPeopleName: "",
							 | 
						|
								      projectInfo: {
							 | 
						|
								        projectId: "",
							 | 
						|
								        operationName: "",
							 | 
						|
								        operationTime: "",
							 | 
						|
								        projectDeclare: "",
							 | 
						|
								      },
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    projectCate: [],
							 | 
						|
								    projectTag: [],
							 | 
						|
								
							 | 
						|
								    yanPan: {
							 | 
						|
								      loading: false,
							 | 
						|
								
							 | 
						|
								      icResiUserId: "",
							 | 
						|
								      houseId: "",
							 | 
						|
								      icUserName: "",
							 | 
						|
								
							 | 
						|
								      homeUserList: [
							 | 
						|
								        // {
							 | 
						|
								        //   homeId: '',
							 | 
						|
								        //   icUserId: '',
							 | 
						|
								        //   icUserName: '',
							 | 
						|
								        // }
							 | 
						|
								      ],
							 | 
						|
								      singleList: [],//楼院小组
							 | 
						|
								      projectData: [
							 | 
						|
								        // {
							 | 
						|
								        //   firstCategoryCode: '',
							 | 
						|
								        //   firstCategoryName: '',
							 | 
						|
								        //   projectList: [],
							 | 
						|
								        // }
							 | 
						|
								      ],
							 | 
						|
								      hasEvent: false,
							 | 
						|
								      moreList: [],//
							 | 
						|
								
							 | 
						|
								    },
							 | 
						|
								  };
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								export default {
							 | 
						|
								  name: "demandInfo",
							 | 
						|
								  props: {
							 | 
						|
								    projectId: {
							 | 
						|
								      type: String,
							 | 
						|
								      default: "",
							 | 
						|
								    },
							 | 
						|
								    userId: {
							 | 
						|
								      type: String,
							 | 
						|
								      default: "",
							 | 
						|
								    },
							 | 
						|
								    categoryCodes: {
							 | 
						|
								      type: Array,
							 | 
						|
								      default: [],
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  components: {
							 | 
						|
								    cptCard,
							 | 
						|
								    cptTb,
							 | 
						|
								    analyse,
							 | 
						|
								    screenLoading,
							 | 
						|
								    lineChart,
							 | 
						|
								    foldText,
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  data: iniData,
							 | 
						|
								
							 | 
						|
								  computed: {},
							 | 
						|
								
							 | 
						|
								  watch: {
							 | 
						|
								    projectId () {
							 | 
						|
								      let data = iniData();
							 | 
						|
								      Object.keys(data).forEach((k) => {
							 | 
						|
								        this[k] = data[k];
							 | 
						|
								      });
							 | 
						|
								      this.getApiData();
							 | 
						|
								    },
							 | 
						|
								    // projectIdCopy () {
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								    // },
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  mounted () {
							 | 
						|
								    console.log(this.projectIdCopy)
							 | 
						|
								    this.getApiData();
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  methods: {
							 | 
						|
								    watchImg (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 () {
							 | 
						|
								      this.$emit("close");
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    async getApiData () {
							 | 
						|
								
							 | 
						|
								      await this.getProjectInfo()
							 | 
						|
								      this.getProjectCate();
							 | 
						|
								      this.getProjectProcess();
							 | 
						|
								      if (this.projectInfo.origin === 'issue') {
							 | 
						|
								        this.getIssueInfo();
							 | 
						|
								        this.getIssueTrend();
							 | 
						|
								      } else if (this.projectInfo.origin === 'resi_event') {
							 | 
						|
								        this.getEventInfo()
							 | 
						|
								      }
							 | 
						|
								      if (this.projectInfo.origin !== 'agency') {
							 | 
						|
								        await this.getYanPan();
							 | 
						|
								
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //加载组织数据
							 | 
						|
								    async getProjectInfo () {
							 | 
						|
								
							 | 
						|
								      const url = "/gov/project/trace/projectdetail";
							 | 
						|
								
							 | 
						|
								      const { data, code, msg } = await requestPost(url, {
							 | 
						|
								        projectId: this.projectIdCopy,
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      if (code === 0) {
							 | 
						|
								        this.projectInfo = data;
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								      } else {
							 | 
						|
								        this.$message.error(msg);
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //加载组织数据
							 | 
						|
								    async getIssueInfo () {
							 | 
						|
								
							 | 
						|
								      const url = "/resi/hall/issue/detail";
							 | 
						|
								
							 | 
						|
								      const { data, code, msg } = await requestPost(url, {
							 | 
						|
								        issueId: this.projectInfo.originId,
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      if (code === 0) {
							 | 
						|
								        this.issueInfo = data;
							 | 
						|
								      } else {
							 | 
						|
								        this.$message.error(msg);
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //加载组织数据
							 | 
						|
								    async getIssueTrend () {
							 | 
						|
								
							 | 
						|
								      const url = "/resi/hall/issue/votingtrend";
							 | 
						|
								
							 | 
						|
								      const { data, code, msg } = await requestPost(url, {
							 | 
						|
								        issueId: this.projectInfo.originId,
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      if (code === 0) {
							 | 
						|
								        this.issueTrend = data;
							 | 
						|
								        let chartData = [];
							 | 
						|
								        data.polyLine.forEach((item) => {
							 | 
						|
								          let date = dateFormat(new Date(item.voteDate * 1000), "yyyy-MM-dd");
							 | 
						|
								          console.log("date:" + date);
							 | 
						|
								          chartData.push(
							 | 
						|
								            {
							 | 
						|
								              date,
							 | 
						|
								              value: item.supportIncrement,
							 | 
						|
								              type: "支持",
							 | 
						|
								            },
							 | 
						|
								            {
							 | 
						|
								              date,
							 | 
						|
								              value: item.oppositionIncrement,
							 | 
						|
								              type: "反对",
							 | 
						|
								            }
							 | 
						|
								          );
							 | 
						|
								        });
							 | 
						|
								        this.issueChartData = chartData;
							 | 
						|
								      } else {
							 | 
						|
								        this.$message.error(msg);
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //加载组织数据
							 | 
						|
								    async getEventInfo () {
							 | 
						|
								      const url = "/gov/project/resievent/eventdetail-icdata";
							 | 
						|
								
							 | 
						|
								      const { data, code, msg } = await requestPost(url, {
							 | 
						|
								        resiEventId: this.projectInfo.originId,
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      if (code === 0) {
							 | 
						|
								        this.info = data;
							 | 
						|
								      } else {
							 | 
						|
								        this.$message.error(msg);
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //加载组织数据
							 | 
						|
								    async getProjectProcess () {
							 | 
						|
								
							 | 
						|
								      const url = "/gov/project/trace/processlist-v2";
							 | 
						|
								
							 | 
						|
								      const { data, code, msg } = await requestPost(url, {
							 | 
						|
								        projectId: this.projectIdCopy,
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      if (code === 0) {
							 | 
						|
								        this.projectProcess = data.map((item) => {
							 | 
						|
								          item.processTime = dateFormat(
							 | 
						|
								            new Date(item.processTime * 1000),
							 | 
						|
								            "yyyy-MM-dd hh:mm"
							 | 
						|
								          );
							 | 
						|
								          return item;
							 | 
						|
								        });
							 | 
						|
								      } else {
							 | 
						|
								        this.$message.error(msg);
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    async getProjectCate () {
							 | 
						|
								
							 | 
						|
								      const url = "/gov/project/projectcategory/categorytaglist";
							 | 
						|
								
							 | 
						|
								      const { data, code, msg } = await requestPost(url, {
							 | 
						|
								        projectId: this.projectIdCopy,
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      if (code === 0) {
							 | 
						|
								        this.projectCate = data.categoryList;
							 | 
						|
								        this.projectTag = data.tagList;
							 | 
						|
								      } else {
							 | 
						|
								        this.$message.error(msg);
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //加载组织数据
							 | 
						|
								    async getYanPan () {
							 | 
						|
								      const url = "/data/aggregator/project/projectanalysis";
							 | 
						|
								
							 | 
						|
								      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 = []
							 | 
						|
								        // debugger
							 | 
						|
								        //楼院小组、居民上报都存在是,研判分析显示两个分支
							 | 
						|
								        if (data.groupProjectList && data.groupProjectList.length > 0 && data.eventProjectList && data.eventProjectList.length > 0) {
							 | 
						|
								          this.yanPan.hasEvent = true
							 | 
						|
								          array1 = [...data.groupProjectList]
							 | 
						|
								          array2 = [...data.eventProjectList]
							 | 
						|
								        } else {
							 | 
						|
								          this.yanPan.hasEvent = false
							 | 
						|
								          if (data.groupProjectList && data.groupProjectList.length > 0) {
							 | 
						|
								            array1 = [...data.groupProjectList]
							 | 
						|
								          } else if (data.eventProjectList && data.eventProjectList.length > 0) {
							 | 
						|
								            array1 = [...data.eventProjectList]
							 | 
						|
								          } 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) {
							 | 
						|
								      this.$router.push({
							 | 
						|
								        path: `/main-shuju/visual-basicinfo-people/${item.icResiUserId}`,
							 | 
						|
								      });
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    toProjectInfo (item) {
							 | 
						|
								      console.log(item);
							 | 
						|
								      this.projectIdCopy = item.projectId;
							 | 
						|
								      // let data = iniData();
							 | 
						|
								      // Object.keys(data).forEach((k) => {
							 | 
						|
								      //   this[k] = data[k];
							 | 
						|
								      // });
							 | 
						|
								      this.getApiData();
							 | 
						|
								    },
							 | 
						|
								  },
							 | 
						|
								};
							 | 
						|
								</script>
							 | 
						|
								
							 | 
						|
								<style
							 | 
						|
								  lang="scss"
							 | 
						|
								  src="@/assets/scss/modules/visual/incident-info.scss"
							 | 
						|
								  scoped
							 | 
						|
								></style>
							 | 
						|
								
							 |