|
@@ -40,7 +40,7 @@
|
|
:key="i + item.key"
|
|
:key="i + item.key"
|
|
class="head-item"
|
|
class="head-item"
|
|
:style="{
|
|
:style="{
|
|
- borderTopColor: type === item.key ? '#396fff' : '#fff',
|
|
|
|
|
|
+ borderTopColor: type === item.key ? '#396fff' : '#fff'
|
|
}"
|
|
}"
|
|
>
|
|
>
|
|
<div>{{ item.name }}</div>
|
|
<div>{{ item.name }}</div>
|
|
@@ -148,7 +148,7 @@
|
|
class="head-item"
|
|
class="head-item"
|
|
@click="() => changeData(item.key, item.name)"
|
|
@click="() => changeData(item.key, item.name)"
|
|
:style="{
|
|
:style="{
|
|
- borderTopColor: type === item.key ? '#396fff' : '#fff',
|
|
|
|
|
|
+ borderTopColor: type === item.key ? '#396fff' : '#fff'
|
|
}"
|
|
}"
|
|
>
|
|
>
|
|
<div>{{ item.name }}</div>
|
|
<div>{{ item.name }}</div>
|
|
@@ -240,7 +240,7 @@ import {
|
|
getAppList,
|
|
getAppList,
|
|
getHistory,
|
|
getHistory,
|
|
getSearchData,
|
|
getSearchData,
|
|
- getUserTotal,
|
|
|
|
|
|
+ getUserTotal
|
|
} from '@/api/index';
|
|
} from '@/api/index';
|
|
|
|
|
|
import countTo from '@/components/counto/vue-countTo.vue';
|
|
import countTo from '@/components/counto/vue-countTo.vue';
|
|
@@ -253,7 +253,7 @@ import {
|
|
TooltipComponent,
|
|
TooltipComponent,
|
|
GridComponent,
|
|
GridComponent,
|
|
ToolboxComponent,
|
|
ToolboxComponent,
|
|
- LegendComponent,
|
|
|
|
|
|
+ LegendComponent
|
|
} from 'echarts/components';
|
|
} from 'echarts/components';
|
|
import { CanvasRenderer } from 'echarts/renderers';
|
|
import { CanvasRenderer } from 'echarts/renderers';
|
|
|
|
|
|
@@ -264,7 +264,7 @@ echarts.use([
|
|
LineChart,
|
|
LineChart,
|
|
CanvasRenderer,
|
|
CanvasRenderer,
|
|
ToolboxComponent,
|
|
ToolboxComponent,
|
|
- LegendComponent,
|
|
|
|
|
|
+ LegendComponent
|
|
]);
|
|
]);
|
|
|
|
|
|
// import config from "@/config/index";
|
|
// import config from "@/config/index";
|
|
@@ -281,7 +281,7 @@ export default {
|
|
version: [],
|
|
version: [],
|
|
channel: [],
|
|
channel: [],
|
|
date: [],
|
|
date: [],
|
|
- client: '',
|
|
|
|
|
|
+ client: ''
|
|
},
|
|
},
|
|
cycle: [],
|
|
cycle: [],
|
|
oriData: {},
|
|
oriData: {},
|
|
@@ -289,7 +289,7 @@ export default {
|
|
version: [],
|
|
version: [],
|
|
channel: [],
|
|
channel: [],
|
|
client: [],
|
|
client: [],
|
|
- userTotalList: [],
|
|
|
|
|
|
+ userTotalList: []
|
|
};
|
|
};
|
|
},
|
|
},
|
|
async mounted() {
|
|
async mounted() {
|
|
@@ -298,7 +298,7 @@ export default {
|
|
await this.getAppListFunc();
|
|
await this.getAppListFunc();
|
|
const keys = {
|
|
const keys = {
|
|
value: 'mname',
|
|
value: 'mname',
|
|
- label: 'mname',
|
|
|
|
|
|
+ label: 'mname'
|
|
};
|
|
};
|
|
const clentliList = clentli.find(r => r.mdefault) || false;
|
|
const clentliList = clentli.find(r => r.mdefault) || false;
|
|
let client = clentliList ? clentliList.mcode.toString() : -1;
|
|
let client = clentliList ? clentliList.mcode.toString() : -1;
|
|
@@ -310,7 +310,7 @@ export default {
|
|
clentV,
|
|
clentV,
|
|
{
|
|
{
|
|
value: 'mcode',
|
|
value: 'mcode',
|
|
- label: 'mname',
|
|
|
|
|
|
+ label: 'mname'
|
|
},
|
|
},
|
|
true
|
|
true
|
|
);
|
|
);
|
|
@@ -320,7 +320,7 @@ export default {
|
|
version: [(this.version[0] || { value: '' }).value],
|
|
version: [(this.version[0] || { value: '' }).value],
|
|
client,
|
|
client,
|
|
channel: [(this.channel[0] || { value: '' }).value],
|
|
channel: [(this.channel[0] || { value: '' }).value],
|
|
- date: [new Date(Date.now() - 604800000), new Date(Date.now() - 86400000)],
|
|
|
|
|
|
+ date: [new Date(Date.now() - 604800000), new Date(Date.now() - 86400000)]
|
|
};
|
|
};
|
|
this.onSubmit();
|
|
this.onSubmit();
|
|
this.getUser();
|
|
this.getUser();
|
|
@@ -334,7 +334,7 @@ export default {
|
|
name: v.name,
|
|
name: v.name,
|
|
value: v.value,
|
|
value: v.value,
|
|
key: v.name,
|
|
key: v.name,
|
|
- isNum: isNaN(v.value),
|
|
|
|
|
|
+ isNum: isNaN(v.value)
|
|
};
|
|
};
|
|
});
|
|
});
|
|
});
|
|
});
|
|
@@ -349,7 +349,7 @@ export default {
|
|
if (verify.length !== 0 && !verify[v.mcode]) continue;
|
|
if (verify.length !== 0 && !verify[v.mcode]) continue;
|
|
out.push({
|
|
out.push({
|
|
value: v[obj.value],
|
|
value: v[obj.value],
|
|
- label: v[obj.label],
|
|
|
|
|
|
+ label: v[obj.label]
|
|
});
|
|
});
|
|
}
|
|
}
|
|
return out;
|
|
return out;
|
|
@@ -375,7 +375,7 @@ export default {
|
|
end: this.FormData(this.form.date[1]),
|
|
end: this.FormData(this.form.date[1]),
|
|
manufacturer: this.form.channel == -1 ? undefined : this.form.channel,
|
|
manufacturer: this.form.channel == -1 ? undefined : this.form.channel,
|
|
version: this.form.version == -1 ? undefined : this.form.version,
|
|
version: this.form.version == -1 ? undefined : this.form.version,
|
|
- lib: this.form.client == -1 ? undefined : this.form.client,
|
|
|
|
|
|
+ lib: this.form.client == -1 ? undefined : this.form.client
|
|
};
|
|
};
|
|
getHistory(this.lastParams)
|
|
getHistory(this.lastParams)
|
|
.then(r => {
|
|
.then(r => {
|
|
@@ -411,12 +411,12 @@ export default {
|
|
value,
|
|
value,
|
|
color: color[i % 2],
|
|
color: color[i % 2],
|
|
key: v,
|
|
key: v,
|
|
- isNum,
|
|
|
|
|
|
+ isNum
|
|
});
|
|
});
|
|
}
|
|
}
|
|
this.oriData = {
|
|
this.oriData = {
|
|
list: oriData.list || [],
|
|
list: oriData.list || [],
|
|
- total: p,
|
|
|
|
|
|
+ total: p
|
|
};
|
|
};
|
|
this.changeData(tab, tabName);
|
|
this.changeData(tab, tabName);
|
|
chart.hideLoading();
|
|
chart.hideLoading();
|
|
@@ -452,7 +452,7 @@ export default {
|
|
window.onresize = chart.resize;
|
|
window.onresize = chart.resize;
|
|
}
|
|
}
|
|
chart.resize({
|
|
chart.resize({
|
|
- height: (this.$refs.realLineChart.offsetWidth * 4) / 16,
|
|
|
|
|
|
+ height: (this.$refs.realLineChart.offsetWidth * 4) / 16
|
|
});
|
|
});
|
|
const _this = this;
|
|
const _this = this;
|
|
chart.setOption({
|
|
chart.setOption({
|
|
@@ -464,29 +464,29 @@ export default {
|
|
let val = item.data || 0;
|
|
let val = item.data || 0;
|
|
if (/duration/.test(_this.type)) val = _this.timeFormat(val);
|
|
if (/duration/.test(_this.type)) val = _this.timeFormat(val);
|
|
return item.axisValue + '<br />' + title + ':' + val;
|
|
return item.axisValue + '<br />' + title + ':' + val;
|
|
- },
|
|
|
|
|
|
+ }
|
|
},
|
|
},
|
|
toolbox: {
|
|
toolbox: {
|
|
feature: {
|
|
feature: {
|
|
saveAsImage: {
|
|
saveAsImage: {
|
|
type: 'jpg',
|
|
type: 'jpg',
|
|
- name: '趋势',
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
|
|
+ name: '趋势'
|
|
|
|
+ }
|
|
|
|
+ }
|
|
},
|
|
},
|
|
legend: {
|
|
legend: {
|
|
- data: [title],
|
|
|
|
|
|
+ data: [title]
|
|
},
|
|
},
|
|
grid: {
|
|
grid: {
|
|
left: '3%',
|
|
left: '3%',
|
|
right: '4%',
|
|
right: '4%',
|
|
bottom: '3%',
|
|
bottom: '3%',
|
|
- containLabel: true,
|
|
|
|
|
|
+ containLabel: true
|
|
},
|
|
},
|
|
xAxis: {
|
|
xAxis: {
|
|
type: 'category',
|
|
type: 'category',
|
|
boundaryGap: true,
|
|
boundaryGap: true,
|
|
- data: keyList,
|
|
|
|
|
|
+ data: keyList
|
|
},
|
|
},
|
|
yAxis: {
|
|
yAxis: {
|
|
type: 'value',
|
|
type: 'value',
|
|
@@ -504,8 +504,8 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return val;
|
|
return val;
|
|
- },
|
|
|
|
- },
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
},
|
|
},
|
|
series: [
|
|
series: [
|
|
{
|
|
{
|
|
@@ -513,7 +513,7 @@ export default {
|
|
data: valueList,
|
|
data: valueList,
|
|
symbolSize: 0,
|
|
symbolSize: 0,
|
|
lineStyle: {
|
|
lineStyle: {
|
|
- width: 1,
|
|
|
|
|
|
+ width: 1
|
|
},
|
|
},
|
|
type: 'line',
|
|
type: 'line',
|
|
smooth: true,
|
|
smooth: true,
|
|
@@ -528,18 +528,18 @@ export default {
|
|
colorStops: [
|
|
colorStops: [
|
|
{
|
|
{
|
|
offset: 0,
|
|
offset: 0,
|
|
- color: 'rgba(58,132,255, 0.8)', // 0% 处的颜色
|
|
|
|
|
|
+ color: 'rgba(58,132,255, 0.8)' // 0% 处的颜色
|
|
},
|
|
},
|
|
{
|
|
{
|
|
offset: 1,
|
|
offset: 1,
|
|
- color: 'rgba(58,132,255, 0.1)', // 100% 处的颜色
|
|
|
|
- },
|
|
|
|
|
|
+ color: 'rgba(58,132,255, 0.1)' // 100% 处的颜色
|
|
|
|
+ }
|
|
],
|
|
],
|
|
- global: false, // 缺省为 false
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
|
|
+ global: false // 缺省为 false
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
});
|
|
});
|
|
},
|
|
},
|
|
async getAppListFunc() {
|
|
async getAppListFunc() {
|
|
@@ -578,7 +578,7 @@ export default {
|
|
clentV,
|
|
clentV,
|
|
appVLi,
|
|
appVLi,
|
|
appCLi,
|
|
appCLi,
|
|
- clentli,
|
|
|
|
|
|
+ clentli
|
|
};
|
|
};
|
|
},
|
|
},
|
|
async getAppListOri() {
|
|
async getAppListOri() {
|
|
@@ -589,7 +589,7 @@ export default {
|
|
db: 'authplat',
|
|
db: 'authplat',
|
|
exportMark: '0',
|
|
exportMark: '0',
|
|
menuid: 399,
|
|
menuid: 399,
|
|
- roleid,
|
|
|
|
|
|
+ roleid
|
|
});
|
|
});
|
|
// 应用列表
|
|
// 应用列表
|
|
|
|
|
|
@@ -597,23 +597,23 @@ export default {
|
|
exportMark: '0',
|
|
exportMark: '0',
|
|
gcode: 'SOURCE',
|
|
gcode: 'SOURCE',
|
|
pageid: 1,
|
|
pageid: 1,
|
|
- pagesize: 1000,
|
|
|
|
|
|
+ pagesize: 1000
|
|
});
|
|
});
|
|
const cycle = li.output ? li.output.data || [] : [];
|
|
const cycle = li.output ? li.output.data || [] : [];
|
|
// 应用版本列表
|
|
// 应用版本列表
|
|
const appVersion = await getSearchData({
|
|
const appVersion = await getSearchData({
|
|
gcode: 'APP_VERSION',
|
|
gcode: 'APP_VERSION',
|
|
- source: defaultAppNameFunc(cycle, 'mname'),
|
|
|
|
|
|
+ source: defaultAppNameFunc(cycle, 'mname')
|
|
});
|
|
});
|
|
// 端列表
|
|
// 端列表
|
|
const clientList = await getSearchData({
|
|
const clientList = await getSearchData({
|
|
gcode: 'CLIENT_TYPE',
|
|
gcode: 'CLIENT_TYPE',
|
|
- source: defaultAppNameFunc(cycle, 'mname'),
|
|
|
|
|
|
+ source: defaultAppNameFunc(cycle, 'mname')
|
|
});
|
|
});
|
|
// 应用渠道列表
|
|
// 应用渠道列表
|
|
const channel = await getSearchData({
|
|
const channel = await getSearchData({
|
|
gcode: 'CHANNEL',
|
|
gcode: 'CHANNEL',
|
|
- source: defaultAppNameFunc(cycle, 'mname'),
|
|
|
|
|
|
+ source: defaultAppNameFunc(cycle, 'mname')
|
|
});
|
|
});
|
|
return { r, li, appVersion, channel, clientList };
|
|
return { r, li, appVersion, channel, clientList };
|
|
},
|
|
},
|
|
@@ -646,13 +646,44 @@ export default {
|
|
out.push(...[min, son]);
|
|
out.push(...[min, son]);
|
|
return out.join(':');
|
|
return out.join(':');
|
|
},
|
|
},
|
|
- change() {
|
|
|
|
|
|
+ async change() {
|
|
const roleid = JSON.parse(
|
|
const roleid = JSON.parse(
|
|
window.parent.localStorage.userinfo || '{}'
|
|
window.parent.localStorage.userinfo || '{}'
|
|
).roleid;
|
|
).roleid;
|
|
const appV = {
|
|
const appV = {
|
|
- length: 0,
|
|
|
|
|
|
+ length: 0
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+ // 端列表
|
|
|
|
+ const r = await getRule({
|
|
|
|
+ db: 'authplat',
|
|
|
|
+ exportMark: '0',
|
|
|
|
+ menuid: 399,
|
|
|
|
+ roleid
|
|
|
|
+ });
|
|
|
|
+ let prvList =
|
|
|
|
+ r.output && r.output.data ? r.output.data.prvRolectrl || [] : [];
|
|
|
|
+ const clientList =
|
|
|
|
+ (await getSearchData({
|
|
|
|
+ gcode: 'CLIENT_TYPE',
|
|
|
|
+ source: this.form.app
|
|
|
|
+ })) || [];
|
|
|
|
+ let clentV = { length: 0 };
|
|
|
|
+ for (let i = 0; i < prvList.length; i++) {
|
|
|
|
+ const v = prvList[i];
|
|
|
|
+ if (v.controlid == 'CLIENT_TYPE')
|
|
|
|
+ (clentV[v.detid] = true), (clentV.length = clentV.length + 1);
|
|
|
|
+ }
|
|
|
|
+ this.client = this.verifyList(
|
|
|
|
+ clientList,
|
|
|
|
+ clentV,
|
|
|
|
+ {
|
|
|
|
+ value: 'mcode',
|
|
|
|
+ label: 'mname'
|
|
|
|
+ },
|
|
|
|
+ true
|
|
|
|
+ );
|
|
|
|
+ this.form.client = this.client[1].value
|
|
// 如果应用选择西部网则渠道默认全部
|
|
// 如果应用选择西部网则渠道默认全部
|
|
this.form.app === '西部网' && (this.form.client = -1);
|
|
this.form.app === '西部网' && (this.form.client = -1);
|
|
this.getUser();
|
|
this.getUser();
|
|
@@ -660,7 +691,7 @@ export default {
|
|
db: 'authplat',
|
|
db: 'authplat',
|
|
exportMark: '0',
|
|
exportMark: '0',
|
|
menuid: 399,
|
|
menuid: 399,
|
|
- roleid,
|
|
|
|
|
|
+ roleid
|
|
}).then(rule => {
|
|
}).then(rule => {
|
|
let prvList =
|
|
let prvList =
|
|
rule.output && rule.output.data
|
|
rule.output && rule.output.data
|
|
@@ -673,25 +704,25 @@ export default {
|
|
}
|
|
}
|
|
getSearchData({
|
|
getSearchData({
|
|
gcode: 'APP_VERSION',
|
|
gcode: 'APP_VERSION',
|
|
- source: this.form.app,
|
|
|
|
|
|
+ source: this.form.app
|
|
}).then(r => {
|
|
}).then(r => {
|
|
let version = [
|
|
let version = [
|
|
{
|
|
{
|
|
label: '全部',
|
|
label: '全部',
|
|
- value: -1,
|
|
|
|
- },
|
|
|
|
|
|
+ value: -1
|
|
|
|
+ }
|
|
];
|
|
];
|
|
r.map(v => {
|
|
r.map(v => {
|
|
if ((appV.length && appV[v.mcode]) || appV.length === 0)
|
|
if ((appV.length && appV[v.mcode]) || appV.length === 0)
|
|
version.push({
|
|
version.push({
|
|
value: v.mname,
|
|
value: v.mname,
|
|
- label: v.mname,
|
|
|
|
|
|
+ label: v.mname
|
|
});
|
|
});
|
|
});
|
|
});
|
|
this.version = version;
|
|
this.version = version;
|
|
this.form = {
|
|
this.form = {
|
|
...this.form,
|
|
...this.form,
|
|
- version: [-1],
|
|
|
|
|
|
+ version: [-1]
|
|
};
|
|
};
|
|
});
|
|
});
|
|
});
|
|
});
|
|
@@ -736,7 +767,7 @@ export default {
|
|
end: E,
|
|
end: E,
|
|
manufacturer:
|
|
manufacturer:
|
|
this.form.channel == -1 ? undefined : this.form.channel,
|
|
this.form.channel == -1 ? undefined : this.form.channel,
|
|
- version: this.form.version == -1 ? undefined : this.form.version,
|
|
|
|
|
|
+ version: this.form.version == -1 ? undefined : this.form.version
|
|
};
|
|
};
|
|
getHistory(p).then(r => {
|
|
getHistory(p).then(r => {
|
|
// 生成数据
|
|
// 生成数据
|
|
@@ -750,7 +781,7 @@ export default {
|
|
v.totalUser,
|
|
v.totalUser,
|
|
this.timeFormat(v.durationUser) + '\t',
|
|
this.timeFormat(v.durationUser) + '\t',
|
|
this.timeFormat(v.durationTimes) + '\t',
|
|
this.timeFormat(v.durationTimes) + '\t',
|
|
- '\r\n',
|
|
|
|
|
|
+ '\r\n'
|
|
].join(',');
|
|
].join(',');
|
|
});
|
|
});
|
|
// 导出
|
|
// 导出
|
|
@@ -764,11 +795,11 @@ export default {
|
|
// document.body.appendChild(link);
|
|
// document.body.appendChild(link);
|
|
link.click();
|
|
link.click();
|
|
});
|
|
});
|
|
- },
|
|
|
|
|
|
+ }
|
|
},
|
|
},
|
|
components: {
|
|
components: {
|
|
- countTo,
|
|
|
|
- },
|
|
|
|
|
|
+ countTo
|
|
|
|
+ }
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
|
|
|