jiangyy 3 years ago
parent
commit
8b599f3ca2
  1. 93
      src/views/modules/shequzhili/issue/cpts/issue-detail.vue
  2. 49
      src/views/modules/shequzhili/issue/cptsAudit/issue-detail.vue
  3. 6
      src/views/modules/shequzhili/issue/issueAuditList.vue
  4. 6
      src/views/modules/shequzhili/issue/issueList.vue

93
src/views/modules/shequzhili/issue/cpts/issue-detail.vue

@ -11,26 +11,6 @@
<span>{{ issueInfo.issueTitle }}</span> <span>{{ issueInfo.issueTitle }}</span>
</div> </div>
<!-- <div v-if="info.imageList&&info.imageList.length>0"
:class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">图片</span>
<img :src="src"
:key="src"
style="width:150px;height:150px;padding-right:10px"
v-for="src in info.imageList"
@click="watchImg(src)" />
</div>
<div v-if="info.voiceList&&info.voiceList.length>0"
:class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">语音</span>
<audio controls>
<source :src="item.url"
type=""
:key="item.url"
v-for="item in info.voiceList" />
</audio>
</div> -->
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]"> <div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">处理意见</span> <span class="info-title-2">处理意见</span>
<span>{{ issueInfo.issueSuggestion||'--' }}</span> <span>{{ issueInfo.issueSuggestion||'--' }}</span>
@ -176,6 +156,32 @@
</div> </div>
</div> </div>
<div 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>
<div v-if="issueChartData.length > 0"
class="m-chart">
<line-chart :list="issueChartData" />
</div>
</div>
</div> </div>
<!-- <!--
显示关闭 显示关闭
@ -199,6 +205,7 @@ import { requestPost } from "@/js/dai/request";
import foldText from "@/views/components/foldText"; import foldText from "@/views/components/foldText";
import projectInfo from "../../xiangmu/cpts/project-info"; import projectInfo from "../../xiangmu/cpts/project-info";
import dateFormat from "dai-js/tools/dateFormat"; import dateFormat from "dai-js/tools/dateFormat";
import lineChart from "@/views/modules/visual/cpts/line-chart";
function iniData () { function iniData () {
return { return {
@ -218,6 +225,9 @@ function iniData () {
visibleTagPanel: false, visibleTagPanel: false,
selectedTagData: [], selectedTagData: [],
issueTrend: {},
issueChartData: [],
}; };
} }
@ -247,7 +257,7 @@ export default {
}, },
components: { components: {
foldText, projectInfo foldText, projectInfo, lineChart
}, },
data: iniData, data: iniData,
@ -304,6 +314,7 @@ export default {
this.issueInfo = JSON.parse(JSON.stringify(this.issueDetailData)); this.issueInfo = JSON.parse(JSON.stringify(this.issueDetailData));
} }
this.getChartInfo();
this.getIssueCate(); this.getIssueCate();
}, },
@ -338,6 +349,41 @@ export default {
this.$emit("handleToEvaluation") this.$emit("handleToEvaluation")
}, },
async getChartInfo () {
const url = "/gov/issue/manage/votingtrend";
const { data, code, msg } = await requestPost(url, {
issueId: this.issueId,
});
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 getIssueCate () { async getIssueCate () {
const url = "/gov/issue/issuecategory/categorytaglist"; const url = "/gov/issue/issuecategory/categorytaglist";
@ -436,6 +482,11 @@ export default {
}, },
}; };
</script> </script>
<style
lang="scss"
src="@/assets/scss/modules/shequzhili/project-info.scss"
scoped
></style>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@/assets/scss/modules/shequzhili/event-info.scss"; @import "@/assets/scss/modules/shequzhili/event-info.scss";
</style> </style>

49
src/views/modules/shequzhili/issue/cptsAudit/issue-detail.vue

@ -21,6 +21,40 @@
</div> </div>
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]"> <div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">话题内容</span>
<span>{{ topicInfo.topicContent||'--' }}</span>
</div>
<div v-if="topicInfo.photoList&&topicInfo.photoList.length>0"
:class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">图片</span>
<img :src="src.url"
:key="src.url"
style="width:150px;height:150px;padding-right:10px"
v-for="src in topicInfo.photoList"
@click="watchImg(src.url)" />
</div>
<div v-if="topicInfo.voiceList&&topicInfo.voiceList.length>0"
:class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">语音</span>
<audio controls>
<source :src="item.url"
type=""
:key="item.url"
v-for="item in topicInfo.voiceList" />
</audio>
</div>
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">发布人</span>
<span>{{ topicInfo.publishedUser||'--' }}</span>
</div>
<div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">发布时间</span>
<span>{{ topicInfo.publishedTime||'--' }}</span>
</div>
<!-- <div :class="['info-prop',{'info-prop-vis':source==='visiual'}]">
<span class="info-title-2">议题来源</span> <span class="info-title-2">议题来源</span>
<div v-if="issueInfo.sourceType==='resi_topic'" <div v-if="issueInfo.sourceType==='resi_topic'"
class="line" class="line"
@ -28,11 +62,11 @@
<div v-else-if="issueInfo.sourceType==='ic_event'" <div v-else-if="issueInfo.sourceType==='ic_event'"
class="line" class="line"
@click="handleToEvent">查看事件</div> @click="handleToEvent">查看事件</div>
<!-- <div v-else>--</div> -->
<div v-else <div v-else
class="line" class="line"
@click="handleToTopic">查看话题</div> @click="handleToTopic">查看话题</div>
</div> </div> -->
</div> </div>
</div> </div>
@ -65,10 +99,9 @@ function iniData () {
projectPageType: 'info', projectPageType: 'info',
issueInfo: {}, issueInfo: {},
topicInfo: {},
showType: '', showType: '',
}; };
} }
@ -114,7 +147,13 @@ export default {
this.user = this.$store.state.user this.user = this.$store.state.user
if (this.issueId) { if (this.issueId) {
this.issueInfo = JSON.parse(JSON.stringify(this.issueDetailData)); this.issueInfo = JSON.parse(JSON.stringify(this.issueDetailData));
this.topicInfo = JSON.parse(JSON.stringify(this.issueDetailData.topicInfo));
if (this.topicInfo.publishedTime) {
this.topicInfo.publishedTime = dateFormat(
new Date(this.topicInfo.publishedTime * 1000),
"yyyy-MM-dd hh:mm"
);
}
} }
}, },

6
src/views/modules/shequzhili/issue/issueAuditList.vue

@ -338,14 +338,14 @@ export default {
}, },
async handleExport () { async handleExport () {
const url = "/gov/project/icEvent/export"; const url = "/gov/issue/issueaudit/auditListExport";
const { pageSize, pageNo, formData } = this; const { pageSize, pageNo, formData } = this;
axios({ axios({
url: window.SITE_CONFIG["apiURL"] + url, url: window.SITE_CONFIG["apiURL"] + url,
method: "post", method: "post",
data: { data: {
pageSize, // pageSize,
pageNo, // pageNo,
...formData, ...formData,
}, },
responseType: "blob", responseType: "blob",

6
src/views/modules/shequzhili/issue/issueList.vue

@ -359,14 +359,14 @@ export default {
}, },
async handleExport () { async handleExport () {
const url = "/gov/project/icEvent/export"; const url = "/gov/issue/issue/allIssueListExport";
const { pageSize, pageNo, formData } = this; const { pageSize, pageNo, formData } = this;
axios({ axios({
url: window.SITE_CONFIG["apiURL"] + url, url: window.SITE_CONFIG["apiURL"] + url,
method: "post", method: "post",
data: { data: {
pageSize, // pageSize,
pageNo, // pageNo,
...formData, ...formData,
}, },
responseType: "blob", responseType: "blob",

Loading…
Cancel
Save