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

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-10-20 16:17:39 * @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 * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/api/home/index.js * @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) let obj = Object.assign({action: 'getHomeList0528',sType: 'Home'}, params)
return httpService({ return httpService({
url: `/api/v6.ashx`, url: `/api/v6.ashx`,
method: 'get', method: 'post',
params: obj 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 * @Author: your name
* @Date: 2021-10-08 19:12:07 * @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 * @LastEditors: Please set LastEditors
* @Description: In User Settings Edi * @Description: In User Settings Edi
* @FilePath: /data-show/src/components/v-echars/index.vue * @FilePath: /data-show/src/components/v-echars/index.vue
@ -12,39 +12,66 @@
</template> </template>
<script> <script>
import * as echarts from 'echarts'; import * as echarts from "echarts";
export default { export default {
name: "v-echarts", name: "v-echarts",
props: { props: {
opt: { opt: {
type: Object, type: Object,
default: () => { default: () => {
return {} return {};
} },
} },
}, },
watch: { watch: {
opt: { opt: {
handler(val) { handler(val) {
if(JSON.stringify(val) != "{}") { if (JSON.stringify(val) != "{}") {
this.$nextTick(() => { this.$nextTick(() => {
if(!this.myChart) { if (!this.myChart) {
this.drawFun(val) this.drawFun(val);
} else { } else {
this.myChart.setOption(val); 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.roundDefaultSelect(this.myChart);
this.$emit('echarsUpdate', this.myChart) this.$emit("echarsUpdate", this.myChart);
}) });
} }
}, },
immediate: true immediate: true,
} },
}, },
data() { data() {
return { return {
myChart: null myChart: null,
} };
}, },
methods: { methods: {
// //
@ -55,7 +82,7 @@ export default {
}, },
// //
roundDefaultSelect(myChart) { roundDefaultSelect(myChart) {
if(myChart.getOption().series[0].type != 'pie') { if (myChart.getOption().series[0].type != "pie") {
return; return;
} }
let index = 0; let index = 0;
@ -81,9 +108,9 @@ export default {
dataIndex: e.dataIndex, dataIndex: e.dataIndex,
}); });
}); });
} },
} },
} };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-10-09 18:16:42 * @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 * @LastEditors: Please set LastEditors
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: /data-show/src/components/v-table/index.vue * @FilePath: /data-show/src/components/v-table/index.vue
@ -64,7 +64,7 @@ export default {
) )
}) })
const table = ( 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} {slots}
</a-table> </a-table>
) )

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

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

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

@ -1,7 +1,7 @@
<!-- <!--
* @Author: xw * @Author: xw
* @Date: 2021-10-11 14:11:04 * @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 * @LastEditors: Please set LastEditors
* @Description: 行业数据导出 * @Description: 行业数据导出
* @FilePath: /data-show/src/views/IndustryDataExport/index.vue * @FilePath: /data-show/src/views/IndustryDataExport/index.vue
@ -16,18 +16,18 @@
<div class="ide-d1"> <div class="ide-d1">
<div class="ide-d1-dd1"> <div class="ide-d1-dd1">
<span class="s1">时间</span> <span class="s1">时间</span>
<v-tab-group :style="{ background: 'transparent' }" :btns="['24小时', '近7天', '近30天', '自定义时间']"></v-tab-group> <v-tab-group :style="{ background: 'transparent' }" :btns="btnTimes" @change="handlerTime"></v-tab-group>
<a-range-picker :size="$vuiSize" valueFormat="YYYY-MM-DD" v-if="sTimeType === selVal" @change="handlerChangeTime"> <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-icon slot="suffixIcon" type="calendar" />
</a-range-picker> </a-range-picker>
</div> </div>
<div class="ide-d1-dd1" style="margin-top: 24px"> <div class="ide-d1-dd1" style="margin-top: 24px">
<span class="s1">渠道</span> <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>
<div class="ide-d1-dd1" style="margin-top: 24px"> <div class="ide-d1-dd1" style="margin-top: 24px">
<span class="s1">情感</span> <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>
<div class="ide-d1-dd1" style="margin-top: 24px"> <div class="ide-d1-dd1" style="margin-top: 24px">
<span class="s1">负面等级</span> <span class="s1">负面等级</span>
@ -35,13 +35,14 @@
</div> </div>
</div> </div>
<div class="ide-d2"> <div class="ide-d2">
<span class="s1">共计<span class="ss1">10119</span>条数据已选中<span class="ss1">0</span>条数据</span> <span class="s1">共计<span class="ss1">{{totalNum}}</span>条数据</span>
<a-button type="primary" @click="handlerExport"></a-button> <!-- <span class="s1">共计<span class="ss1">{{totalNum}}</span>条数据已选中<span class="ss1">0</span>条数据</span> -->
<!-- <a-button type="primary" @click="handlerExport"></a-button> -->
</div> </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>
</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"> <div slot="body" style="padding: 0px 24px 24px 24px">
<a-form :label-col="{ span: 2 }" :wrapper-col="{ span: 8 }"> <a-form :label-col="{ span: 2 }" :wrapper-col="{ span: 8 }">
<a-form-item label="文件名称"> <a-form-item label="文件名称">
@ -58,12 +59,13 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
</div> </div>
</v-modal> </v-modal> -->
</div> </div>
</template> </template>
<script> <script>
import { getQuDao, getQingGan, getCrisis } from "@/api/comm"; import { getQuDao, getQingGan, getCrisis, getTwoTime } from "@/api/comm";
import { getListHome } from "@/api/home";
export default { export default {
name: "IndustryDataExport", name: "IndustryDataExport",
data() { data() {
@ -72,79 +74,91 @@ export default {
qingGan: [], qingGan: [],
crisis: [], crisis: [],
value3: [], value3: [],
selVal: 4,
form: { form: {
sStartTime: "", sStartTime: "",
sEndTime: "", sEndTime: "",
sQingGan: "", sQingGan: "",
sCrisis: "", sCrisis: "",
isSourcetype: [], sTimeType: "",
iPageIndex: 1,
iPageSize: 20,
}, },
modalObj: { modalObj: {
title: "导出选项", title: "导出选项",
visible: false, visible: false,
}, },
btnTimes: [],
timesSel: [],
plainOptions: [], plainOptions: [],
plainOptions1: [], plainOptions1: [],
plainOptions2: [], plainOptions2: [],
plainOptions3: [ 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" },
],
columns: [ columns: [
{ {
title: "标题及内容", title: "标题及内容",
dataIndex: "a", dataIndex: "title",
key: "a", key: "title",
}, },
{ {
title: "来源", title: "来源",
dataIndex: "address", dataIndex: "source",
key: "address", key: "source",
}, },
{ {
title: "作者", title: "作者",
dataIndex: "age", dataIndex: "user_author",
key: "age", key: "user_author",
}, },
{ {
title: "发布时间", title: "发布时间",
dataIndex: "d", dataIndex: "sourcetime",
key: "d", key: "sourcetime",
width: 200,
}, },
], ],
pagination: {
total: 0,
current: 1,
pageSize: 20,
},
tbData: [], tbData: [],
tableLoading: false,
noClick: false,
totalNum: 0,
}; };
}, },
created() { 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: { 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() { handlerExport() {
this.modalObj.visible = true; this.modalObj.visible = true;
}, },
@ -152,6 +166,88 @@ export default {
handlerBack() { handlerBack() {
this.$router.go(-1); 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() { getQuDao() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@ -198,7 +294,7 @@ export default {
}, },
// //
getCrisis() { getCrisis() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
getCrisis() getCrisis()
.then((res) => { .then((res) => {
let data = res.data; let data = res.data;
@ -217,7 +313,7 @@ export default {
reject(false); reject(false);
}); });
}); });
} },
}, },
}; };
</script> </script>

Loading…
Cancel
Save