Browse Source

优化11

shibei_master
dai 3 years ago
parent
commit
4e63fcd35b
  1. 34
      src/views/modules/communityService/sqzzz/cpts/edit.vue
  2. 274
      src/views/modules/visual/communityGovern/cpt/project-info.vue
  3. 6
      src/views/modules/visual/heart/index.vue

34
src/views/modules/communityService/sqzzz/cpts/edit.vue

@ -134,23 +134,6 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item
label="备注"
prop="remark"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过1000字"
v-model="dataForm.remark"
></el-input>
</el-form-item>
<el-form-item <el-form-item
label="创建时间" label="创建时间"
prop="organizationCreatedTime" prop="organizationCreatedTime"
@ -207,6 +190,23 @@
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item
label="备注"
prop="remark"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="500"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过500字"
v-model="dataForm.remark"
></el-input>
</el-form-item>
</el-form> </el-form>
</div> </div>
<div class="div_btn resi-btns"> <div class="div_btn resi-btns">

274
src/views/modules/visual/communityGovern/cpt/project-info.vue

@ -7,8 +7,7 @@
<span>项目详情</span> <span>项目详情</span>
</div> </div>
<div class="btn-close" <div class="btn-close" @click="handleClose">
@click="handleClose">
<img src="@/assets/img/shuju/people/close.png" /> <img src="@/assets/img/shuju/people/close.png" />
</div> </div>
<div class="m-top"> <div class="m-top">
@ -33,36 +32,33 @@
<span>当前处理部门</span> <span>当前处理部门</span>
<span>{{ projectInfo.departmentNameList.join("、") }}</span> <span>{{ projectInfo.departmentNameList.join("、") }}</span>
</div> </div>
<div class="info-prop" <div class="info-prop" v-if="projectCate.length > 0">
v-if="projectCate.length > 0">
<span>分类</span> <span>分类</span>
<fold-text :row="3"> <fold-text :row="3">
<div :key="item.name" <div :key="item.name" v-for="item in projectCate">
v-for="item in projectCate">
{{ item.name }} {{ item.name }}
</div> </div>
</fold-text> </fold-text>
</div> </div>
<div class="info-prop" <div class="info-prop" v-if="projectTag.length > 0">
v-if="projectTag.length > 0">
<span>标签</span> <span>标签</span>
<fold-text :row="3"> <fold-text :row="3">
<div :key="item.name" <div :key="item.name" v-for="item in projectTag">
v-for="item in projectTag">
{{ item.name }} {{ item.name }}
</div> </div>
</fold-text> </fold-text>
</div> </div>
</div> </div>
<div class="m-process" <div class="m-process" v-if="projectProcess.length > 0">
v-if="projectProcess.length > 0">
<div class="process-title">处理进展</div> <div class="process-title">处理进展</div>
<div class="list"> <div class="list">
<div class="item" <div
class="item"
:class="index === 0 ? 'z-on' : ''" :class="index === 0 ? 'z-on' : ''"
:key="item.processId" :key="item.processId"
v-for="(item, index) in projectProcess"> v-for="(item, index) in projectProcess"
>
<div class="item-row"> <div class="item-row">
<div class="name">{{ item.processName }}</div> <div class="name">{{ item.processName }}</div>
<div class="date"> <div class="date">
@ -75,29 +71,33 @@
<div class="detail-value">{{ item.departmentName }}</div> <div class="detail-value">{{ item.departmentName }}</div>
</div> </div>
<div class="detail" <div
v-if="item.processName != '转项目' && item.publicReply"> class="detail"
v-if="item.processName != '转项目' && item.publicReply"
>
<div class="detail-field"> </div> <div class="detail-field"> </div>
<div class="detail-value"> <div class="detail-value">
<fold-text :row="3">{{ item.publicReply }}</fold-text> <fold-text :row="3">{{ item.publicReply }}</fold-text>
</div> </div>
</div> </div>
<div class="detail" <div
v-if="item.processName != '转项目' && item.internalRemark"> class="detail"
v-if="item.processName != '转项目' && item.internalRemark"
>
<div class="detail-field">内部备注</div> <div class="detail-field">内部备注</div>
<div class="detail-value"> <div class="detail-value">
<fold-text :row="3">{{ <fold-text :row="3">{{ item.internalRemark }}</fold-text>
item.internalRemark
}}</fold-text>
</div> </div>
</div> </div>
<div class="detail"> <div class="detail">
<div class="attachement-list"> <div class="attachement-list">
<a :href="att.url" <a
:href="att.url"
target="_blank" target="_blank"
:key="att.url" :key="att.url"
v-for="att in item.internalFile"> v-for="att in item.internalFile"
>
<i class="el-icon-folder-opened"></i> <i class="el-icon-folder-opened"></i>
{{ att.name }} {{ att.name }}
</a> </a>
@ -107,56 +107,64 @@
</div> </div>
</div> </div>
</div> </div>
<div v-if="projectInfo.origin!=='agency'" <div v-if="projectInfo.origin !== 'agency'" class="tabs">
class="tabs"> <div
<div class="tab-btn" class="tab-btn"
@click="subStartGroupIndex" @click="subStartGroupIndex"
v-if="groupList.length > 9"> v-if="groupList.length > 9"
>
<img src="@/assets/img/shuju/people/arrow-double-left.png" /> <img src="@/assets/img/shuju/people/arrow-double-left.png" />
</div> </div>
<div v-show="index >= startGroupIndex && index < startGroupIndex + 9" <div
v-show="index >= startGroupIndex && index < startGroupIndex + 9"
class="tab" class="tab"
:class="groupIndex % groupList.length == index ? 'z-on' : ''" :class="groupIndex % groupList.length == index ? 'z-on' : ''"
:key="'tab' + index" :key="'tab' + index"
@click="groupIndex = index" @click="groupIndex = index"
v-for="(item, index) in groupList"> v-for="(item, index) in groupList"
>
{{ item.label }} {{ item.label }}
</div> </div>
<div class="tab-btn" <div
class="tab-btn"
@click="addStartGroupIndex" @click="addStartGroupIndex"
v-if="groupList.length > 9"> v-if="groupList.length > 9"
>
<img src="@/assets/img/shuju/people/arrow-double-right.png" /> <img src="@/assets/img/shuju/people/arrow-double-right.png" />
</div> </div>
</div> </div>
<div class="m-case" <div class="m-case" v-if="projectInfo.origin !== 'agency'">
v-if="projectInfo.origin!=='agency'"> <div class="m-yanpan" v-if="groupIndex == 0">
<div class="m-yanpan" <div v-if="projectId || true">
v-if="groupIndex == 0"> <screen-loading v-if="!yanPan.loading">加载中</screen-loading>
<div v-if="projectId"> <analyse
<analyse v-if="yanPan.loading" v-else-if="yanPan.singleTitle"
singleTitle="楼院小组" :singleTitle="yanPan.singleTitle"
:moreTitle="yanPan.moreTitle"
:userList="yanPan.homeUserList" :userList="yanPan.homeUserList"
:userName="yanPan.icUserName" :userName="yanPan.icUserName"
:singleList="yanPan.singleList" :singleList="yanPan.singleList"
:hasEvent="yanPan.hasEvent" :hasEvent="yanPan.hasEvent"
:moreList="yanPan.moreList" :moreList="yanPan.moreList"
@user="toUserInfo" @user="toUserInfo"
@project="toProjectInfo" /> @project="toProjectInfo"
<screen-loading v-else>加载中</screen-loading> />
<div v-else class="m-hint">
<img
src="@/assets/img/modules/visual/noData.png"
class="no-data-img"
/>
</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 v-if="groupIndex == 1"> <div v-if="groupIndex == 1">
<div class="m-row" <div
v-if="projectInfo.originId"> class="m-row"
<div v-if="projectInfo.origin==='issue'" v-if="projectInfo.originId && projectInfo.origin !== 'work_event'"
class="m-info"> >
<div v-if="projectInfo.origin === 'issue'" class="m-info">
<div class="info-prop"> <div class="info-prop">
<span>议题标题</span> <span>议题标题</span>
<span>{{ issueInfo.issueTitle }}</span> <span>{{ issueInfo.issueTitle }}</span>
@ -173,8 +181,10 @@
<span>议题发起人</span> <span>议题发起人</span>
<span>{{ issueInfo.issueInitiator }}</span> <span>{{ issueInfo.issueInitiator }}</span>
</div> </div>
<div v-if="issueInfo.topicInfo&&issueInfo.topicInfo.groupName" <div
class="info-prop"> v-if="issueInfo.topicInfo && issueInfo.topicInfo.groupName"
class="info-prop"
>
<span>议题来源</span> <span>议题来源</span>
<span>{{ issueInfo.topicInfo.groupName }}</span> <span>{{ issueInfo.topicInfo.groupName }}</span>
</div> </div>
@ -183,15 +193,16 @@
<span>{{ issueInfo.shiftIssueTime }}</span> <span>{{ issueInfo.shiftIssueTime }}</span>
</div> </div>
</div> </div>
<div v-if="projectInfo.origin==='resi_event'" <div v-if="projectInfo.origin === 'resi_event'" class="m-info">
class="m-info">
<div class="info-title">事件内容</div> <div class="info-title">事件内容</div>
<div class="info-content">{{ info.eventContent }}</div> <div class="info-content">{{ info.eventContent }}</div>
<div class="info-pics"> <div class="info-pics">
<img :src="src" <img
:src="src"
:key="src" :key="src"
v-for="src in info.eventImgs" v-for="src in info.eventImgs"
@click="watchImg(src)" /> @click="watchImg(src)"
/>
</div> </div>
<div class="info-prop"> <div class="info-prop">
<span class="info-title-2">提交时间</span> <span class="info-title-2">提交时间</span>
@ -208,16 +219,15 @@
<div class="info-prop"> <div class="info-prop">
<span class="info-title-2">提报给</span> <span class="info-title-2">提报给</span>
<div> <div>
<div>{{ info.eventPersonShow}}</div> <div>{{ info.eventPersonShow }}</div>
<div>{{ info.eventOrgShow}}</div> <div>{{ info.eventOrgShow }}</div>
</div> </div>
<!-- <span>{{ info.eventPerson.join("、") || "--" }}</span> --> <!-- <span>{{ info.eventPerson.join("、") || "--" }}</span> -->
</div> </div>
</div> </div>
<div v-if="projectInfo.origin==='issue'" <div v-if="projectInfo.origin === 'issue'" class="m-line">
class="m-line">
<div class="stat"> <div class="stat">
<div class="stat-item"> <div class="stat-item">
<div> <div>
@ -237,17 +247,19 @@
</div> </div>
</div> </div>
<line-chart v-if="issueChartData.length > 0" <line-chart
:list="issueChartData" /> v-if="issueChartData.length > 0"
:list="issueChartData"
/>
</div> </div>
</div> </div>
<div v-else <div v-else class="m-hint">
class="m-hint"> <img
<img src="@/assets/img/modules/visual/noData.png" src="@/assets/img/modules/visual/noData.png"
class="no-data-img" /> class="no-data-img"
/>
</div> </div>
</div> </div>
</div> </div>
</cpt-card> </cpt-card>
</div> </div>
@ -264,13 +276,10 @@ 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 {
projectIdCopy: this.projectId, projectIdCopy: this.projectId,
groupList: [ groupList: [{ label: "研判分析" }, { label: "项目来源" }],
{ label: "研判分析" },
{ label: "项目来源" },
],
groupIndex: 0, groupIndex: 0,
startGroupIndex: 0, startGroupIndex: 0,
@ -352,7 +361,6 @@ function iniData () {
// icUserName: '', // icUserName: '',
// } // }
], ],
singleList: [],//
projectData: [ projectData: [
// { // {
// firstCategoryCode: '', // firstCategoryCode: '',
@ -361,8 +369,10 @@ function iniData () {
// } // }
], ],
hasEvent: false, hasEvent: false,
moreList: [],// singleTitle: "",
moreTitle: "",
singleList: [], //
moreList: [], //
}, },
}; };
} }
@ -382,7 +392,6 @@ export default {
type: Array, type: Array,
default: [], default: [],
}, },
}, },
components: { components: {
@ -399,7 +408,7 @@ export default {
computed: {}, computed: {},
watch: { watch: {
projectId () { projectId() {
let data = iniData(); let data = iniData();
Object.keys(data).forEach((k) => { Object.keys(data).forEach((k) => {
this[k] = data[k]; this[k] = data[k];
@ -408,21 +417,20 @@ export default {
}, },
// projectIdCopy () { // projectIdCopy () {
// }, // },
}, },
mounted () { mounted() {
console.log(this.projectIdCopy) console.log(this.projectIdCopy);
this.getApiData(); this.getApiData();
}, },
methods: { methods: {
watchImg (src) { watchImg(src) {
window.open(src); window.open(src);
}, },
addStartGroupIndex () { addStartGroupIndex() {
const { startGroupIndex, groupList } = this; const { startGroupIndex, groupList } = this;
if (startGroupIndex < groupList.length - 9) { if (startGroupIndex < groupList.length - 9) {
this.startGroupIndex = startGroupIndex + 1; this.startGroupIndex = startGroupIndex + 1;
@ -430,7 +438,7 @@ export default {
this.startGroupIndex = groupList.length - 9; this.startGroupIndex = groupList.length - 9;
} }
}, },
subStartGroupIndex () { subStartGroupIndex() {
const { startGroupIndex, groupList } = this; const { startGroupIndex, groupList } = this;
if (startGroupIndex > 0) { if (startGroupIndex > 0) {
this.startGroupIndex = startGroupIndex - 1; this.startGroupIndex = startGroupIndex - 1;
@ -438,30 +446,27 @@ export default {
this.startGroupIndex = 0; this.startGroupIndex = 0;
} }
}, },
handleClose () { handleClose() {
this.$emit("close"); this.$emit("close");
}, },
async getApiData () { async getApiData() {
await this.getProjectInfo();
await this.getProjectInfo()
this.getProjectCate(); this.getProjectCate();
this.getProjectProcess(); this.getProjectProcess();
if (this.projectInfo.origin === 'issue') { if (this.projectInfo.origin === "issue") {
this.getIssueInfo(); this.getIssueInfo();
this.getIssueTrend(); this.getIssueTrend();
} else if (this.projectInfo.origin === 'resi_event') { } else if (this.projectInfo.origin === "resi_event") {
this.getEventInfo() this.getEventInfo();
} }
if (this.projectInfo.origin !== 'agency') { if (this.projectInfo.origin !== "agency") {
await this.getYanPan(); await this.getYanPan();
} }
}, },
// //
async getProjectInfo () { async getProjectInfo() {
const url = "/gov/project/trace/projectdetail"; const url = "/gov/project/trace/projectdetail";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
@ -470,16 +475,13 @@ export default {
if (code === 0) { if (code === 0) {
this.projectInfo = data; this.projectInfo = data;
} else { } else {
this.$message.error(msg); this.$message.error(msg);
} }
}, },
// //
async getIssueInfo () { async getIssueInfo() {
const url = "/resi/hall/issue/detail"; const url = "/resi/hall/issue/detail";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
@ -494,8 +496,7 @@ export default {
}, },
// //
async getIssueTrend () { async getIssueTrend() {
const url = "/resi/hall/issue/votingtrend"; const url = "/resi/hall/issue/votingtrend";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
@ -507,7 +508,7 @@ export default {
let chartData = []; let chartData = [];
data.polyLine.forEach((item) => { data.polyLine.forEach((item) => {
let date = dateFormat(new Date(item.voteDate * 1000), "yyyy-MM-dd"); let date = dateFormat(new Date(item.voteDate * 1000), "yyyy-MM-dd");
console.log("date:" + date); // console.log("date:" + date);
chartData.push( chartData.push(
{ {
date, date,
@ -528,7 +529,7 @@ export default {
}, },
// //
async getEventInfo () { async getEventInfo() {
const url = "/gov/project/resievent/eventdetail-icdata"; const url = "/gov/project/resievent/eventdetail-icdata";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
@ -536,23 +537,20 @@ export default {
}); });
if (code === 0) { if (code === 0) {
if (data.eventOrg && data.eventOrg.length > 0) { if (data.eventOrg && data.eventOrg.length > 0) {
data.eventOrgShow = data.eventOrg.join('、') data.eventOrgShow = data.eventOrg.join("、");
} }
if (data.eventPerson && data.eventPerson.length > 0) { if (data.eventPerson && data.eventPerson.length > 0) {
data.eventPersonShow = data.eventPerson.join('、') data.eventPersonShow = data.eventPerson.join("、");
} }
this.info = { ...data }; this.info = { ...data };
} else { } else {
this.$message.error(msg); this.$message.error(msg);
} }
}, },
// //
async getProjectProcess () { async getProjectProcess() {
const url = "/gov/project/trace/processlist-v2"; const url = "/gov/project/trace/processlist-v2";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
@ -572,8 +570,7 @@ export default {
} }
}, },
async getProjectCate () { async getProjectCate() {
const url = "/gov/project/projectcategory/categorytaglist"; const url = "/gov/project/projectcategory/categorytaglist";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
@ -589,39 +586,52 @@ export default {
}, },
// //
async getYanPan () { async getYanPan() {
const url = "/data/aggregator/project/projectanalysis"; const url = "/data/aggregator/project/projectanalysis";
if (!this.userId) return (this.yanPan.loading = true);
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
categoryCodeList: this.categoryCodes, categoryCodeList: this.categoryCodes,
userId: this.userId, userId: this.userId,
projectId: this.projectIdCopy projectId: this.projectIdCopy,
}); });
if (code === 0) { if (code === 0) {
data.icResiUserId = data.icUserId data.icResiUserId = data.icUserId;
data.homeUserList.forEach(item => { data.homeUserList.forEach((item) => {
item.icResiUserId = item.icUserId item.icResiUserId = item.icUserId;
}); });
let array1 = [] let array1 = [];
let array2 = [] let array2 = [];
// //
if (data.groupProjectList && data.groupProjectList.length > 0 && data.eventProjectList && data.eventProjectList.length > 0) { if (
this.yanPan.hasEvent = true data.groupProjectList &&
array1 = [...data.groupProjectList] data.groupProjectList.length > 0 &&
array2 = [...data.eventProjectList] data.eventProjectList &&
data.eventProjectList.length > 0
) {
this.yanPan.hasEvent = true;
this.yanPan.singleTitle = "楼院小组";
this.yanPan.moreTitle = "事件上报";
array1 = [...data.groupProjectList];
array2 = [...data.eventProjectList];
} else { } else {
this.yanPan.hasEvent = false this.yanPan.hasEvent = false;
if (data.groupProjectList && data.groupProjectList.length > 0) { if (data.groupProjectList && data.groupProjectList.length > 0) {
array1 = [...data.groupProjectList] array1 = [...data.groupProjectList];
} else if (data.eventProjectList && data.eventProjectList.length > 0) { this.yanPan.singleTitle = "楼院小组";
array1 = [...data.eventProjectList] } else if (
data.eventProjectList &&
data.eventProjectList.length > 0
) {
array1 = [...data.eventProjectList];
this.yanPan.singleTitle = "事件上报";
} else { } else {
array1 = [] array1 = [];
} }
} }
if (array1.length > 0) { if (array1.length > 0) {
@ -634,8 +644,7 @@ export default {
return { return {
title: subItem.title, title: subItem.title,
status: subItem.status, status: subItem.status,
statusName: statusName: subItem.status == "pending" ? "待处理" : "结案",
subItem.status == "pending" ? "待处理" : "结案",
projectId: subItem.projectId, projectId: subItem.projectId,
}; };
}), }),
@ -652,8 +661,7 @@ export default {
return { return {
title: subItem.title, title: subItem.title,
status: subItem.status, status: subItem.status,
statusName: statusName: subItem.status == "pending" ? "待处理" : "结案",
subItem.status == "pending" ? "待处理" : "结案",
projectId: subItem.projectId, projectId: subItem.projectId,
}; };
}), }),
@ -661,23 +669,21 @@ export default {
}); });
} }
this.yanPan = { ...this.yanPan, ...data }; this.yanPan = { ...this.yanPan, ...data };
console.log(this.yanPan) console.log(this.yanPan);
this.yanPan.loading = true; this.yanPan.loading = true;
} else { } else {
this.$message.error(msg); 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}`,
}); });
}, },
toProjectInfo (item) { toProjectInfo(item) {
console.log(item); console.log(item);
this.projectIdCopy = item.projectId; this.projectIdCopy = item.projectId;
// let data = iniData(); // let data = iniData();

6
src/views/modules/visual/heart/index.vue

@ -266,7 +266,8 @@ export default {
this.tb2.list = data.map((item) => { this.tb2.list = data.map((item) => {
return [ return [
{ type: "index" }, { type: "index" },
{ type: "people", name: item.userName, uid: item.userId }, item.userName,
// { type: "people", name: item.userName, uid: item.userId },
item.gridName, item.gridName,
item.pointTotal, item.pointTotal,
]; ];
@ -296,7 +297,8 @@ export default {
this.tb3.list = data.map((item) => { this.tb3.list = data.map((item) => {
return [ return [
{ type: "index" }, { type: "index" },
{ type: "people", name: item.userName, uid: item.userId }, item.userName,
// { type: "people", name: item.userName, uid: item.userId },
item.gridName, item.gridName,
item.pointTotal, item.pointTotal,
]; ];

Loading…
Cancel
Save