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>
</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'}]">
<span class="info-title-2">处理意见</span>
<span>{{ issueInfo.issueSuggestion||'--' }}</span>
@ -176,6 +156,32 @@
</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>
<!--
显示关闭
@ -199,6 +205,7 @@ import { requestPost } from "@/js/dai/request";
import foldText from "@/views/components/foldText";
import projectInfo from "../../xiangmu/cpts/project-info";
import dateFormat from "dai-js/tools/dateFormat";
import lineChart from "@/views/modules/visual/cpts/line-chart";
function iniData () {
return {
@ -218,6 +225,9 @@ function iniData () {
visibleTagPanel: false,
selectedTagData: [],
issueTrend: {},
issueChartData: [],
};
}
@ -247,7 +257,7 @@ export default {
},
components: {
foldText, projectInfo
foldText, projectInfo, lineChart
},
data: iniData,
@ -304,6 +314,7 @@ export default {
this.issueInfo = JSON.parse(JSON.stringify(this.issueDetailData));
}
this.getChartInfo();
this.getIssueCate();
},
@ -338,6 +349,41 @@ export default {
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 () {
const url = "/gov/issue/issuecategory/categorytaglist";
@ -436,6 +482,11 @@ export default {
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/shequzhili/project-info.scss"
scoped
></style>
<style lang="scss" scoped>
@import "@/assets/scss/modules/shequzhili/event-info.scss";
</style>

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

@ -21,6 +21,40 @@
</div>
<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>
<div v-if="issueInfo.sourceType==='resi_topic'"
class="line"
@ -28,11 +62,11 @@
<div v-else-if="issueInfo.sourceType==='ic_event'"
class="line"
@click="handleToEvent">查看事件</div>
<!-- <div v-else>--</div> -->
<div v-else
class="line"
@click="handleToTopic">查看话题</div>
</div>
</div> -->
</div>
</div>
@ -65,10 +99,9 @@ function iniData () {
projectPageType: 'info',
issueInfo: {},
topicInfo: {},
showType: '',
};
}
@ -114,7 +147,13 @@ export default {
this.user = this.$store.state.user
if (this.issueId) {
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 () {
const url = "/gov/project/icEvent/export";
const url = "/gov/issue/issueaudit/auditListExport";
const { pageSize, pageNo, formData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
method: "post",
data: {
pageSize,
pageNo,
// pageSize,
// pageNo,
...formData,
},
responseType: "blob",

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

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

Loading…
Cancel
Save