prod
lily.zhang 3 years ago
parent 92ec662c7f
commit 07ee94ccb3

12491
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -1,14 +1,14 @@
/*
* @Author: your name
* @Date: 2021-10-20 16:36:08
* @LastEditTime: 2021-10-22 10:15:00
* @LastEditTime: 2021-10-22 13:08:08
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/api/comm/index.js
*/
import httpService from "@/request"
// 获取顶部选择项
// 获取顶部选择项 无自选
export function getOneTime(params) {
let obj = Object.assign({action: 'getTime', sType: 0}, params)
return httpService({
@ -18,7 +18,7 @@ export function getOneTime(params) {
})
}
// 获取顶部选择项
// 获取顶部选择项 有自选
export function getTwoTime(params) {
let obj = Object.assign({action: 'getTime',sType: 1}, params)
return httpService({

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-20 16:17:39
* @LastEditTime: 2021-10-21 17:32:22
* @LastEditTime: 2021-10-22 15:45:32
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/api/home/index.js
@ -140,7 +140,23 @@ export function getHomeList0528(params) {
let obj = Object.assign({action: 'getHomeList0528',sType: 'Home'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'get',
params: obj
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}
// 首页_行业数据
export function getListHome(params) {
let obj = Object.assign({action: 'getListHome',sType: 'Home'}, params)
return httpService({
url: `/api/v6.ashx`,
method: 'post',
data: obj,
headers: {
'content-type': 'application/x-www-form-urlencoded'
}
})
}

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-08 19:12:07
* @LastEditTime: 2021-10-21 17:03:11
* @LastEditTime: 2021-10-22 18:23:49
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edi
* @FilePath: /data-show/src/components/v-echars/index.vue
@ -12,39 +12,66 @@
</template>
<script>
import * as echarts from 'echarts';
import * as echarts from "echarts";
export default {
name: "v-echarts",
props: {
opt: {
type: Object,
default: () => {
return {}
}
}
return {};
},
},
},
watch: {
opt: {
handler(val) {
if(JSON.stringify(val) != "{}") {
if (JSON.stringify(val) != "{}") {
this.$nextTick(() => {
if(!this.myChart) {
this.drawFun(val)
if (!this.myChart) {
this.drawFun(val);
} else {
this.myChart.setOption(val);
}
this.myChart.off("click");
//
this.myChart.getZr().on("click", (params) => {
//param.name x,param.data y
let pointInPixel = [params.offsetX, params.offsetY];
if (
this.myChart.containPixel("grid", pointInPixel)
) {
let pointInGrid = this.myChart.convertFromPixel(
{
seriesIndex: 0,
},
pointInPixel
);
let xIndex = pointInGrid[0]; //
let handleIndex = Number(xIndex);
// let seriesObj = this.myChart.getOption(); //object
let obj = this.myChart._componentsViews[1]._cbParamsList;
console.log(handleIndex, obj);
this.$emit('getData', obj);
}
});
//
this.myChart.getZr().on("mousemove", () => {
this.myChart.getZr().setCursorStyle("pointer");
});
this.roundDefaultSelect(this.myChart);
this.$emit('echarsUpdate', this.myChart)
})
this.$emit("echarsUpdate", this.myChart);
});
}
},
immediate: true
}
immediate: true,
},
},
data() {
return {
myChart: null
}
myChart: null,
};
},
methods: {
//
@ -55,7 +82,7 @@ export default {
},
//
roundDefaultSelect(myChart) {
if(myChart.getOption().series[0].type != 'pie') {
if (myChart.getOption().series[0].type != "pie") {
return;
}
let index = 0;
@ -81,9 +108,9 @@ export default {
dataIndex: e.dataIndex,
});
});
}
}
}
},
},
};
</script>
<style lang="less" scoped>

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-09 18:16:42
* @LastEditTime: 2021-10-11 10:22:42
* @LastEditTime: 2021-10-22 14:28:45
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/components/v-table/index.vue
@ -64,7 +64,7 @@ export default {
)
})
const table = (
<a-table props={props} scopedSlots={this.$scopedSlots} on={on} row-class-name={isRedRow} >
<a-table props={props} scopedSlots={this.$scopedSlots} on={on} row-class-name={isRedRow} row-key='id'>
{slots}
</a-table>
)

@ -60,7 +60,7 @@
</template>
<script>
import {getTwoTime} from "@/api/comm"
import {getOneTime} from "@/api/comm"
export default {
name: "iHeader",
data() {
@ -144,7 +144,7 @@ export default {
//
getTime(commTime) {
let obj = {sType: commTime.sType}
getTwoTime(obj).then(res => {
getOneTime(obj).then(res => {
this.selDatas = res.data;
this.sTimeType = this.selDatas[0].key;
this.selVal = this.selDatas[this.selDatas.length - 1].key;
@ -158,7 +158,6 @@ export default {
sEndTime: val[1]
}
this.setCommTime(obj);
console.log(this.getCommTime)
}
},
};

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-13 09:28:02
* @LastEditTime: 2021-10-20 19:00:46
* @LastEditTime: 2021-10-22 15:57:18
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/request/index.js
@ -32,19 +32,13 @@ httpService.interceptors.request.use(config => {
// if(localStorage.getItem('token')){//判断浏览器中的cookie中是否存在项目的token
// config.headers.token = localStorage.getItem('token')
// }
const rqData = filterRequestData(config.data);
const rqParams = filterRequestData(config.params);
const rqData = filterRequestData(config.data);
// post 'Content-Type' === 'application/x-www-form-urlencoded'
if(config.method === 'post' && config.headers['content-type' === 'application/x-www-form-urlencoded']) {
if(config.method === 'post' && config.headers['content-type'] === 'application/x-www-form-urlencoded') {
config.data = qs.stringify(rqData);
}
// post 'Content-Type' === 'application/json'
if(config.method === 'post' && config.headers['content-type' === 'application/json']) {
} else {
config.data = rqData;
}
// get
if(config.method === 'get') {
config.params = rqParams;
}
return config;
@ -56,12 +50,16 @@ httpService.interceptors.request.use(config => {
httpService.interceptors.response.use(response => {
// TODO:具体的code对应的处理可继续添加修改
let data = null;
let data1 = null;
let msg = '';
let res = response.data;
let totalNum = 0;
if(res.Code == 1){
data = res.Data;
msg = res.Msg;
return {data, msg};
data = res.Data || [];
data1 = res.Data1 || [];
msg = res.Msg || "";
totalNum = res.totalNum || 0;
return {data,data1, msg, totalNum};
} else {
return Promise.reject(new Error(res))
}

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-09 11:28:39
* @LastEditTime: 2021-10-22 12:18:33
* @LastEditTime: 2021-10-22 16:27:01
* @LastEditors: Please set LastEditors
* @Description: 晴雨表
* @FilePath: /data-show/src/views/Index/barometer/index.vue
@ -79,7 +79,8 @@ export default {
//
handlerClick() {
this.$router.push({path: '/industryDataExport'})
}
},
}
};
</script>

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-11 14:11:04
* @LastEditTime: 2021-10-22 10:16:54
* @LastEditTime: 2021-10-22 16:15:09
* @LastEditors: Please set LastEditors
* @Description: 行业数据导出
* @FilePath: /data-show/src/views/IndustryDataExport/index.vue
@ -16,18 +16,18 @@
<div class="ide-d1">
<div class="ide-d1-dd1">
<span class="s1">时间</span>
<v-tab-group :style="{ background: 'transparent' }" :btns="['24小时', '近7天', '近30天', '自定义时间']"></v-tab-group>
<a-range-picker :size="$vuiSize" valueFormat="YYYY-MM-DD" v-if="sTimeType === selVal" @change="handlerChangeTime">
<v-tab-group :style="{ background: 'transparent' }" :btns="btnTimes" @change="handlerTime"></v-tab-group>
<a-range-picker style="margin-left: 12px" :size="$vuiSize" valueFormat="YYYY-MM-DD" v-if="form.sTimeType === selVal" @change="handlerChangeTime">
<a-icon slot="suffixIcon" type="calendar" />
</a-range-picker>
</div>
<div class="ide-d1-dd1" style="margin-top: 24px">
<span class="s1">渠道</span>
<a-checkbox-group v-model="quDao" :options="plainOptions" @change="onChange" />
<a-checkbox-group v-model="quDao" :disabled="noClick" :options="plainOptions" @change="(val) => onChange(val, 'quDao')" />
</div>
<div class="ide-d1-dd1" style="margin-top: 24px">
<span class="s1">情感</span>
<a-checkbox-group v-model="qingGan" :options="plainOptions1" @change="onChange" />
<a-checkbox-group v-model="qingGan" :options="plainOptions1" @change="(val) => onChange(val, 'qingGan')" />
</div>
<div class="ide-d1-dd1" style="margin-top: 24px">
<span class="s1">负面等级</span>
@ -35,13 +35,14 @@
</div>
</div>
<div class="ide-d2">
<span class="s1">共计<span class="ss1">10119</span>条数据已选中<span class="ss1">0</span>条数据</span>
<a-button type="primary" @click="handlerExport"></a-button>
<span class="s1">共计<span class="ss1">{{totalNum}}</span>条数据</span>
<!-- <span class="s1">共计<span class="ss1">{{totalNum}}</span>条数据已选中<span class="ss1">0</span>条数据</span> -->
<!-- <a-button type="primary" @click="handlerExport"></a-button> -->
</div>
<v-table :columns="columns" :data="tbData"></v-table>
<v-table :columns="columns" :data="tbData" :loading="tableLoading" :pagination="pagination" @change="handlerPage"></v-table>
</div>
</div>
<v-modal :title="modalObj.title" :visible.sync="modalObj.visible" :eleStyle="{ width: '1200px', height: '531px' }">
<!-- <v-modal :title="modalObj.title" :visible.sync="modalObj.visible" :eleStyle="{ width: '1200px', height: '531px' }">
<div slot="body" style="padding: 0px 24px 24px 24px">
<a-form :label-col="{ span: 2 }" :wrapper-col="{ span: 8 }">
<a-form-item label="文件名称">
@ -58,12 +59,13 @@
</a-form-item>
</a-form>
</div>
</v-modal>
</v-modal> -->
</div>
</template>
<script>
import { getQuDao, getQingGan, getCrisis } from "@/api/comm";
import { getQuDao, getQingGan, getCrisis, getTwoTime } from "@/api/comm";
import { getListHome } from "@/api/home";
export default {
name: "IndustryDataExport",
data() {
@ -72,79 +74,91 @@ export default {
qingGan: [],
crisis: [],
value3: [],
selVal: 4,
form: {
sStartTime: "",
sEndTime: "",
sQingGan: "",
sCrisis: "",
isSourcetype: [],
sTimeType: "",
iPageIndex: 1,
iPageSize: 20,
},
modalObj: {
title: "导出选项",
visible: false,
},
btnTimes: [],
timesSel: [],
plainOptions: [],
plainOptions1: [],
plainOptions2: [],
plainOptions3: [
{ label: "检测方案名称", value: "1" },
{ label: "标题", value: "2" },
{ label: "倾向性", value: "3" },
{ label: "发布媒体", value: "3" },
{ label: "链接地址", value: "4" },
{ label: "关键字", value: "5" },
{ label: "媒体类别", value: "6" },
{ label: "发表类型", value: "7" },
{ label: "作者", value: "8" },
{ label: "检测时间", value: "9" },
{ label: "发布时间", value: "10" },
{ label: "字数", value: "11" },
{ label: "浏览数", value: "12" },
{ label: "回复数", value: "13" },
{ label: "主体词词频", value: "14" },
{ label: "摘要", value: "15" },
{ label: "转载数", value: "16" },
{ label: "博文类型", value: "17" },
{ label: "博主粉丝数", value: "18" },
{ label: "阅读状态", value: "19" },
{ label: "点赞数", value: "20" },
{ label: "风险指数", value: "21" },
{ label: "影响力", value: "22" },
{ label: "分类标签", value: "23" },
{ label: "收藏数", value: "24" },
{ label: "分享数", value: "25" },
{ label: "原文标题", value: "26" },
],
plainOptions3: [],
columns: [
{
title: "标题及内容",
dataIndex: "a",
key: "a",
dataIndex: "title",
key: "title",
},
{
title: "来源",
dataIndex: "address",
key: "address",
dataIndex: "source",
key: "source",
},
{
title: "作者",
dataIndex: "age",
key: "age",
dataIndex: "user_author",
key: "user_author",
},
{
title: "发布时间",
dataIndex: "d",
key: "d",
dataIndex: "sourcetime",
key: "sourcetime",
width: 200,
},
],
pagination: {
total: 0,
current: 1,
pageSize: 20,
},
tbData: [],
tableLoading: false,
noClick: false,
totalNum: 0,
};
},
created() {
Promise.all([this.getQuDao(),this.getQingGan(), this.getCrisis()])
Promise.all([
this.getQuDao(),
this.getQingGan(),
this.getCrisis(),
this.getTime(),
]).then(() => {
this.getTable();
this.getList();
});
},
methods: {
onChange() {},
onChange(val, type) {
switch (type) {
case "quDao":
this.noClick = true;
this.getTable().then(() => {
this.noClick = false;
});
break;
case "qingGan":
this.noClick = true;
this.form.sQingGan = this.qingGan.toString();
this.getTable().then(() => {
this.noClick = false;
});
break;
default:
break;
}
},
handlerExport() {
this.modalObj.visible = true;
},
@ -152,6 +166,88 @@ export default {
handlerBack() {
this.$router.go(-1);
},
//
handlerTime(n) {
let ele = this.timesSel[n];
this.form.sTimeType = ele.key;
if (ele.key != this.selVal) {
this.getData();
}
},
//
handlerChangeTime(val) {
this.form.sStartTime = val[0];
this.form.sEndTime = val[1];
this.getData();
},
handlerPage(p) {
let iPageIndex = p.current;
this.form.iPageIndex = iPageIndex;
this.pagination.current = iPageIndex;
this.getData();
},
//
getTable() {
this.tableLoading = true;
this.getData(0).then((res) => {
let data = res.data;
this.totalNum = res.totalNum;
this.pagination.total = res.totalNum;
let arr = [];
data.forEach((ele) => {
let _source = ele._source;
arr.push(_source);
});
this.tbData = arr;
this.tableLoading = false;
});
},
//
getList() {
this.getData(1).then((res) => {
let data = res.data1;
let arr = [...this.plainOptions];
for(let i =0;i<data.length;i++) {
arr[i].label = this.plainOptions[i].label +'('+ data[i]+')';
}
this.plainOptions = arr;
});
},
//
getData(isSourcetype) {
return new Promise((resolve, reject) => {
let obj = Object.assign({}, this.form);
obj.isSourcetype = isSourcetype;
getListHome(obj)
.then((res) => {
resolve(res);
})
.catch(() => {
reject(false);
});
});
},
//
getTime() {
return new Promise((resolve, reject) => {
getTwoTime()
.then((res) => {
let data = res.data;
this.timesSel = data;
this.form.sTimeType = this.timesSel[0].key;
let arr = [];
data.forEach((ele) => {
let value = ele.value;
arr.push(value);
});
this.btnTimes = arr;
resolve(data);
})
.catch(() => {
reject(false);
});
});
},
//
getQuDao() {
return new Promise((resolve, reject) => {
@ -198,7 +294,7 @@ export default {
},
//
getCrisis() {
return new Promise((resolve, reject) => {
return new Promise((resolve, reject) => {
getCrisis()
.then((res) => {
let data = res.data;
@ -217,7 +313,7 @@ export default {
reject(false);
});
});
}
},
},
};
</script>

Loading…
Cancel
Save