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.
177 lines
5.5 KiB
177 lines
5.5 KiB
5 years ago
|
<template>
|
||
|
<el-card shadow="never"
|
||
|
v-loading="loading"
|
||
|
class="aui-card--fill">
|
||
|
<div class="mod-news__news}">
|
||
|
<el-form :inline="true"
|
||
|
:model="dataForm"
|
||
|
:rules="dataRule"
|
||
|
ref="dataForm"
|
||
|
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'">
|
||
|
<el-row>
|
||
|
<el-form-item prop="allDeptIdsShow"
|
||
|
label="所属机构">
|
||
|
<el-cascader v-model="dataForm.allDeptIdsShow"
|
||
|
:options="options"
|
||
|
:props="{ multiple: true }"
|
||
|
clearable
|
||
|
collapse-tags></el-cascader>
|
||
|
</el-form-item>
|
||
|
</el-row>
|
||
|
<el-form-item label="时间筛选类型">
|
||
|
<template>
|
||
|
<el-radio v-model="timeFlag"
|
||
|
label="1">有效时间</el-radio>
|
||
|
<el-radio v-model="timeFlag"
|
||
|
label="0">截止时间</el-radio>
|
||
|
</template>
|
||
|
</el-form-item>
|
||
|
<el-row>
|
||
|
<el-form-item prop="newsReleaseStartTime"
|
||
|
v-if="this.timeFlag==1"
|
||
|
label="有效时间">
|
||
|
<el-date-picker @change='setRegistTime'
|
||
|
v-model="time"
|
||
|
value-format="yyyy-MM-dd"
|
||
|
type="daterange"
|
||
|
range-separator="至"
|
||
|
start-placeholder="开始日期"
|
||
|
end-placeholder="结束日期">
|
||
|
</el-date-picker>
|
||
|
</el-form-item>
|
||
|
</el-row>
|
||
|
<el-row>
|
||
|
<el-form-item prop="endTime"
|
||
|
v-if="this.timeFlag==0"
|
||
|
label="截止时间">
|
||
|
<el-date-picker v-model="dataForm.endTime"
|
||
|
type="date"
|
||
|
placeholder="选择日期">
|
||
|
</el-date-picker>
|
||
|
</el-form-item>
|
||
|
</el-row>
|
||
|
<p>导出内容包括:</p>
|
||
|
居民数(待认证居民+认证失败+认证通过+初次扫码进入网格但未认证)
|
||
|
党员数(已认证党员数)
|
||
|
新闻发布数 议题数 项目数 项目结案数
|
||
|
社群数 社群成员数 社群话题数
|
||
|
<br>
|
||
|
<br>
|
||
|
<el-row>
|
||
|
<el-form-item label-width="500px">
|
||
|
<el-button type="primary"
|
||
|
@click="this.exportHandlee">{{ $t('export') }}</el-button>
|
||
|
</el-form-item>
|
||
|
</el-row>
|
||
|
</el-form>
|
||
|
</div>
|
||
|
</el-card>
|
||
|
</template>
|
||
|
<script>
|
||
|
import mixinViewModule from '@/mixins/view-module'
|
||
|
export default {
|
||
|
data () {
|
||
|
return {
|
||
|
mixinViewModuleOptions: {
|
||
|
getDataListURL: '/analysis/user/page/dataRank',
|
||
|
getDataListIsPage: true,
|
||
|
deleteURL: '/news/news',
|
||
|
deleteIsBatch: true,
|
||
|
exportURL: '/analysis/user/export/exportOperationData'
|
||
|
},
|
||
|
dataForm: {
|
||
|
id: '',
|
||
|
operationStartTime: '',
|
||
|
operationEndTime: '',
|
||
|
allDeptIdsShow: [],
|
||
|
endTime: ''
|
||
|
},
|
||
|
time: [],
|
||
|
streetList: [],
|
||
|
communityList: [],
|
||
|
gridList: [],
|
||
|
options: [],
|
||
|
categorys: [],
|
||
|
loading: false,
|
||
|
timeFlag: '1'
|
||
|
}
|
||
|
},
|
||
|
activated () {
|
||
|
},
|
||
|
created () {
|
||
|
this.getDeptInfoList()
|
||
|
},
|
||
|
computed: {
|
||
|
dataRule () {
|
||
|
return {
|
||
|
allDeptIdsShow: [
|
||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
|
||
|
],
|
||
|
newsTitle: [
|
||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
|
||
|
],
|
||
|
newsCateroryId: [
|
||
|
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
setRegistTime () {
|
||
|
this.dataForm.operationStartTime = this.time[0]
|
||
|
this.dataForm.operationEndTime = this.time[1]
|
||
|
},
|
||
|
getDeptInfoList () {
|
||
|
this.$http.get(`/sys/user/deptOptions/getStreetByLoginUser`).then(({ data: res }) => {
|
||
|
if (res.code !== 0) {
|
||
|
return this.$message.error(res.msg)
|
||
|
}
|
||
|
this.options = res.data.options
|
||
|
}).catch(() => { })
|
||
|
},
|
||
|
export () {
|
||
|
this.$http['post'](`/analysis/user/export/exportOperationData`, this.dataForm).then(({ data: res }) => {
|
||
|
if (res.code !== 0) {
|
||
|
return this.$message.error(res.msg)
|
||
|
}
|
||
|
this.options = res.data.options
|
||
|
}).catch(() => { })
|
||
|
},
|
||
|
exportHandlee () {
|
||
|
this.loading = true
|
||
|
this.$http.post('/analysis/user/export/exportOperationData', this.dataForm, { responseType: 'arraybuffer' }).then((res) => {
|
||
|
this.loading = false
|
||
|
// if (res.code !== 0) {
|
||
|
// return this.$message.error(res.msg)
|
||
|
// }
|
||
|
let fileName = '运营数据报表.xls'
|
||
|
let blob = new Blob([res.data], { type: 'application/x-xls' })
|
||
|
if (window.navigator.msSaveOrOpenBlob) {
|
||
|
navigator.msSaveBlob(blob, fileName)
|
||
|
} else {
|
||
|
var link = document.createElement('a')
|
||
|
link.href = window.URL.createObjectURL(blob)
|
||
|
link.download = fileName
|
||
|
link.click()
|
||
|
window.URL.revokeObjectURL(link.href)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
components: {
|
||
|
},
|
||
|
mixins: [mixinViewModule],
|
||
|
watch: {
|
||
|
'timeFlag': function (val) {
|
||
|
if (val == 0) {
|
||
|
this.dataForm.operationStartTime = ''
|
||
|
this.dataForm.operationEndTime = ''
|
||
|
this.time = []
|
||
|
} else {
|
||
|
this.dataForm.endTime = ''
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|