|
@@ -115,7 +115,7 @@
|
|
|
</div>
|
|
|
</a-tab-pane>
|
|
|
<a-tab-pane key="2" title="卡套餐信息">
|
|
|
- <a-table :columns="columnsCard" :data="dataCard" :scroll="{ x: 'auto' }" :pagination="false"/>
|
|
|
+ <a-table :columns="columnsCard" :data="dataCard" :scroll="{ x: 'auto' }" :pagination="false" />
|
|
|
</a-tab-pane>
|
|
|
<a-tab-pane key="3" title="预警信息">
|
|
|
Content of Tab Panel 3
|
|
@@ -124,7 +124,8 @@
|
|
|
<a-table :columns="columnsTopup" :data="dataTopup" />
|
|
|
</a-tab-pane>
|
|
|
<a-tab-pane key="5" title="使用量">
|
|
|
- <a-table :columns="columnsAmount" :data="dataAmount" :scroll="{ x: 'auto' }" :pagination="false"/>
|
|
|
+ <a-table :columns="columnsAmount" :data="dataAmount" :scroll="{ x: 'auto' }"
|
|
|
+ :pagination="false" />
|
|
|
</a-tab-pane>
|
|
|
<a-tab-pane key="6" title="操作记录">
|
|
|
Content of Tab Panel 3
|
|
@@ -145,7 +146,7 @@
|
|
|
</template>
|
|
|
<script setup>
|
|
|
import { onMounted, ref, nextTick } from "vue";
|
|
|
-import { getDataCDR ,getDataCDRDate} from '@/api/path/lotCard.api'
|
|
|
+import { getDataCDR, getDataCDRDate } from '@/api/path/lotCard.api'
|
|
|
import { Getdictionary } from '@/mixins/index'
|
|
|
// 图表插件
|
|
|
import * as echarts from "echarts";
|
|
@@ -310,14 +311,14 @@ const open = (data) => {
|
|
|
Card_info.value = data
|
|
|
dataPackage.value = data.dataPackage[0]
|
|
|
// 卡套餐信息
|
|
|
- dataCard.value = (data.dataPackage || []).map(val=>{
|
|
|
+ dataCard.value = (data.dataPackage || []).map(val => {
|
|
|
const status = val.status == 1 ? '已激活' : (val.status == 2 ? '关闭' :
|
|
|
- val.status == 3 ? '已过期' : '未使用')
|
|
|
- const tatal = val.dataTotal==-1?'无限流量':val.dataTotal
|
|
|
+ val.status == 3 ? '已过期' : '未使用')
|
|
|
+ const tatal = val.dataTotal == -1 ? '无限流量' : val.dataTotal
|
|
|
return {
|
|
|
...val,
|
|
|
- status:status,
|
|
|
- dataTotal:tatal
|
|
|
+ status: status,
|
|
|
+ dataTotal: tatal
|
|
|
}
|
|
|
})
|
|
|
intData()
|
|
@@ -326,23 +327,61 @@ const open = (data) => {
|
|
|
|
|
|
// 使用量
|
|
|
const intData = async () => {
|
|
|
- let sourceName = await Getdictionary('source')
|
|
|
+ let sourceName = await Getdictionary('source');
|
|
|
+
|
|
|
// 获取今天的日期
|
|
|
const today = new Date();
|
|
|
const toDay = today.toISOString().split('T')[0];
|
|
|
+
|
|
|
+ // 获取三个月前的日期
|
|
|
const pastDate = new Date(today);
|
|
|
pastDate.setMonth(today.getMonth() - 3); // 减去三个月
|
|
|
const formattedDate = pastDate.toISOString().split('T')[0];
|
|
|
- let res = await getDataCDR({ iccid: Card_info.value.iccid, source: sourceName.find(val => val.label == Card_info.value.source)?.value, startDate: formattedDate, endDate: toDay })
|
|
|
- dataAmount.value = (res.data || []).map(val => {
|
|
|
- const set = '+' + val.countryNo
|
|
|
- return {
|
|
|
- ...val,
|
|
|
- countryNo: set
|
|
|
- }
|
|
|
- })
|
|
|
+
|
|
|
+ // 获取 CDR 数据
|
|
|
+ let res = await getDataCDR({
|
|
|
+ iccid: Card_info.value.iccid,
|
|
|
+ source: sourceName.find(val => val.label == Card_info.value.source)?.value,
|
|
|
+ startDate: formattedDate,
|
|
|
+ endDate: toDay
|
|
|
+ });
|
|
|
+
|
|
|
+ option.value.series[0].data = (res.data || [])
|
|
|
+ .filter(val => val.usage !== undefined)
|
|
|
+ .map(val => val.usage);
|
|
|
+
|
|
|
+ // 打印合并后的数据
|
|
|
+ console.log(option.value.series[0].data);
|
|
|
+
|
|
|
+ // 定义季度时间段
|
|
|
+ const time = ['1-3', '4-6', '7-9', '9-12'];
|
|
|
+
|
|
|
+ // 获取当前年份
|
|
|
+ const year = today.getFullYear();
|
|
|
+ for (let val of time) {
|
|
|
+ // 拆分每个时间段,获取开始月和结束月
|
|
|
+ const [startMonth, endMonth] = val.split('-');
|
|
|
+ const startDate = `${year}-${startMonth}-01`; // 格式化开始日期
|
|
|
+ const endDate = `${year}-${endMonth}-01`; // 格式化结束日期
|
|
|
+
|
|
|
+ // 获取每个时间段的数据
|
|
|
+ let res = await getDataCDR({
|
|
|
+ iccid: Card_info.value.iccid,
|
|
|
+ source: sourceName.find(val => val.label == Card_info.value.source)?.value,
|
|
|
+ startDate: startDate,
|
|
|
+ endDate: endDate
|
|
|
+ });
|
|
|
+
|
|
|
+ // 将当前时间段的数据中的 'usage' 字段合并到 series[0].data 数组中
|
|
|
+ const usageData = (res.data || [])
|
|
|
+ .filter(val => val.usage !== undefined)
|
|
|
+ .map(val => val.usage);
|
|
|
+ option.value.series[0].data.push(...usageData);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
const evChangePage = (page) => {
|
|
|
pagination.value.current = page
|
|
|
}
|