|
@@ -11,17 +11,16 @@ export default {
|
|
availableLicenses: null,
|
|
availableLicenses: null,
|
|
activatedDevices: null,
|
|
activatedDevices: null,
|
|
},
|
|
},
|
|
- codeList: ['com.brother.pdfreaderpro.mac.product_3'],
|
|
|
|
|
|
+ productList: [],
|
|
overviewProduct: {
|
|
overviewProduct: {
|
|
totalLicenses: null,
|
|
totalLicenses: null,
|
|
availableLicenses: null,
|
|
availableLicenses: null,
|
|
- activedLicenses: null,
|
|
|
|
|
|
+ activatedDevices: null,
|
|
validPeriod: null,
|
|
validPeriod: null,
|
|
expireDate: null,
|
|
expireDate: null,
|
|
timeLeft: null
|
|
timeLeft: null
|
|
},
|
|
},
|
|
dataFilterProductSelect: '',
|
|
dataFilterProductSelect: '',
|
|
- dataFilterPlanSelect: '',
|
|
|
|
chartData: {
|
|
chartData: {
|
|
date: [],
|
|
date: [],
|
|
assignedLicensesYData: [],
|
|
assignedLicensesYData: [],
|
|
@@ -38,9 +37,9 @@ export default {
|
|
assignedMember: null,
|
|
assignedMember: null,
|
|
teamAvailableLicense: null
|
|
teamAvailableLicense: null
|
|
},
|
|
},
|
|
|
|
+ teamList: [],
|
|
teamSelect: '',
|
|
teamSelect: '',
|
|
- teamFilterProductSelect: '',
|
|
|
|
- teamFilterPlanSelect: ''
|
|
|
|
|
|
+ teamFilterProductSelect: ''
|
|
}
|
|
}
|
|
},
|
|
},
|
|
created () {
|
|
created () {
|
|
@@ -49,6 +48,8 @@ export default {
|
|
this.getChartStatistics(1)
|
|
this.getChartStatistics(1)
|
|
this.getTeamData()
|
|
this.getTeamData()
|
|
this.getTeamMemberData()
|
|
this.getTeamMemberData()
|
|
|
|
+ this.getProductList()
|
|
|
|
+ this.getTeamList()
|
|
},
|
|
},
|
|
mounted () {
|
|
mounted () {
|
|
this.drawLine()
|
|
this.drawLine()
|
|
@@ -68,12 +69,12 @@ export default {
|
|
// 获取全局预览数据,区分产品
|
|
// 获取全局预览数据,区分产品
|
|
getOverviewProduct () {
|
|
getOverviewProduct () {
|
|
get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getOverviewProduct', {
|
|
get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getOverviewProduct', {
|
|
- codeList: this.codeList + ''
|
|
|
|
|
|
+ codeList: this.dataFilterProductSelect
|
|
}).then((res) => {
|
|
}).then((res) => {
|
|
if (res.data.code === 200) {
|
|
if (res.data.code === 200) {
|
|
this.overviewProduct.totalLicenses = res.data.result.totalLicenses
|
|
this.overviewProduct.totalLicenses = res.data.result.totalLicenses
|
|
this.overviewProduct.availableLicenses = res.data.result.availableLicenses
|
|
this.overviewProduct.availableLicenses = res.data.result.availableLicenses
|
|
- this.overviewProduct.activedLicenses = res.data.result.activedLicenses
|
|
|
|
|
|
+ this.overviewProduct.activatedDevices = res.data.result.activatedDevices
|
|
this.overviewProduct.validPeriod = res.data.result.validPeriod
|
|
this.overviewProduct.validPeriod = res.data.result.validPeriod
|
|
this.overviewProduct.expireDate = res.data.result.expireDate
|
|
this.overviewProduct.expireDate = res.data.result.expireDate
|
|
this.overviewProduct.timeLeft = res.data.result.timeLeft
|
|
this.overviewProduct.timeLeft = res.data.result.timeLeft
|
|
@@ -84,6 +85,8 @@ export default {
|
|
getChartStatistics (type) {
|
|
getChartStatistics (type) {
|
|
if (this.chartSelectValue !== '') {
|
|
if (this.chartSelectValue !== '') {
|
|
type = this.chartSelectValue
|
|
type = this.chartSelectValue
|
|
|
|
+ } else {
|
|
|
|
+ type = 1
|
|
}
|
|
}
|
|
get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getChartStatistics/' + type).then((res) => {
|
|
get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getChartStatistics/' + type).then((res) => {
|
|
if (res.data.code === 200) {
|
|
if (res.data.code === 200) {
|
|
@@ -114,8 +117,8 @@ export default {
|
|
// 获取团队成员数据
|
|
// 获取团队成员数据
|
|
getTeamMemberData () {
|
|
getTeamMemberData () {
|
|
get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getTeamMemberData', {
|
|
get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getTeamMemberData', {
|
|
- teamId: '1',
|
|
|
|
- codeList: this.codeList + ''
|
|
|
|
|
|
+ teamId: this.teamSelect,
|
|
|
|
+ codeList: this.teamFilterProductSelect
|
|
}).then((res) => {
|
|
}).then((res) => {
|
|
if (res.data.code === 200) {
|
|
if (res.data.code === 200) {
|
|
this.teamMemberData.teamMember = res.data.result.teamMember
|
|
this.teamMemberData.teamMember = res.data.result.teamMember
|
|
@@ -229,6 +232,31 @@ export default {
|
|
window.onresize = function () {
|
|
window.onresize = function () {
|
|
myChart.resize()
|
|
myChart.resize()
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ // 获取所有产品
|
|
|
|
+ getProductList () {
|
|
|
|
+ get('http://81.68.234.235:8032/pdf-tech/product/listWithAdmin').then((res) => {
|
|
|
|
+ if (res.data.code === 200) {
|
|
|
|
+ this.productList = res.data.result
|
|
|
|
+ console.log(this.productList)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 获取所有团队
|
|
|
|
+ getTeamList() {
|
|
|
|
+ get('http://81.68.234.235:8032/pdf-tech/vppTeam/getManageTeamList', {
|
|
|
|
+ teamId: '',
|
|
|
|
+ keyword: ''
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ if (res.data.code === 200) {
|
|
|
|
+ res.data.result.list.forEach(item => {
|
|
|
|
+ this.teamList.push({
|
|
|
|
+ label: item.name,
|
|
|
|
+ value: item.id
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -273,16 +301,9 @@ export default {
|
|
<div class="flex">
|
|
<div class="flex">
|
|
<select v-model="dataFilterProductSelect" name="dataFilterProduct" class="min-w-180px mr-16px">
|
|
<select v-model="dataFilterProductSelect" name="dataFilterProduct" class="min-w-180px mr-16px">
|
|
<option value="">Product</option>
|
|
<option value="">Product</option>
|
|
- <option value="PDF Reader Pro Win">PDF Reader Pro Win</option>
|
|
|
|
- <option value="PDF Reader Pro Mac">PDF Reader Pro Mac</option>
|
|
|
|
- <option value="PDF Reader Pro">PDF Reader Pro(无版本则为一码双端)</option>
|
|
|
|
- </select>
|
|
|
|
- <select v-model="dataFilterPlanSelect" name="dataFilterPlan" class="min-w-140px mr-16px">
|
|
|
|
- <option value="">Plan</option>
|
|
|
|
- <option value="Premiun">Premiun</option>
|
|
|
|
- <option value="Permanent">Permanent</option>
|
|
|
|
|
|
+ <option v-for="item in productList" :key="item.id" :value="item.code">{{ item.name }}</option>
|
|
</select>
|
|
</select>
|
|
- <div class="w-70px h-28px border-[#1460F3] border-1px rounded-4px px-10px py-4px text-14px leading-20px text-[#1460F3] cursor-pointer">Confirm</div>
|
|
|
|
|
|
+ <div @click="getOverviewProduct" class="w-70px h-28px border-[#1460F3] border-1px rounded-4px px-10px py-4px text-14px leading-20px text-[#1460F3] cursor-pointer">Confirm</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex flex-wrap justify-between mt-24px">
|
|
<div class="flex flex-wrap justify-between mt-24px">
|
|
<div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between items-center mr-24px">
|
|
<div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between items-center mr-24px">
|
|
@@ -295,7 +316,7 @@ export default {
|
|
</div>
|
|
</div>
|
|
<div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between items-center">
|
|
<div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between items-center">
|
|
<span class="text-14px font-bold text-[#505258]">Actived Licenses</span>
|
|
<span class="text-14px font-bold text-[#505258]">Actived Licenses</span>
|
|
- <span class="text-16px font-bold text-[#232A40]">{{ overviewProduct.activedLicenses }}</span>
|
|
|
|
|
|
+ <span class="text-16px font-bold text-[#232A40]">{{ overviewProduct.activatedDevices }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex flex-wrap justify-between mt-24px">
|
|
<div class="flex flex-wrap justify-between mt-24px">
|
|
@@ -361,20 +382,13 @@ export default {
|
|
<div class="flex">
|
|
<div class="flex">
|
|
<select v-model="teamSelect" name="team" class="min-w-140px mr-16px">
|
|
<select v-model="teamSelect" name="team" class="min-w-140px mr-16px">
|
|
<option value="">Team</option>
|
|
<option value="">Team</option>
|
|
- <option value="2">2</option>
|
|
|
|
|
|
+ <option v-for="item in teamList" :key="item.value" :value="item.value">{{ item.label }}</option>
|
|
</select>
|
|
</select>
|
|
<select v-model="teamFilterProductSelect" name="teamFilterProduct" class="min-w-180px mr-16px">
|
|
<select v-model="teamFilterProductSelect" name="teamFilterProduct" class="min-w-180px mr-16px">
|
|
<option value="">Product</option>
|
|
<option value="">Product</option>
|
|
- <option value="PDF Reader Pro Win">PDF Reader Pro Win</option>
|
|
|
|
- <option value="PDF Reader Pro Mac">PDF Reader Pro Mac</option>
|
|
|
|
- <option value="PDF Reader Pro">PDF Reader Pro(无版本则为一码双端)</option>
|
|
|
|
- </select>
|
|
|
|
- <select v-model="teamFilterPlanSelect" name="teamFilterPlan" class="min-w-140px mr-16px">
|
|
|
|
- <option value="">Plan</option>
|
|
|
|
- <option value="Premiun">Premiun</option>
|
|
|
|
- <option value="Permanent">Permanent</option>
|
|
|
|
|
|
+ <option v-for="item in productList" :key="item.id" :value="item.code">{{ item.name }}</option>
|
|
</select>
|
|
</select>
|
|
- <div class="w-70px h-28px border-[#1460F3] border-1px rounded-4px px-10px py-4px text-14px leading-20px text-[#1460F3] cursor-pointer">Confirm</div>
|
|
|
|
|
|
+ <div @click="getTeamMemberData" class="w-70px h-28px border-[#1460F3] border-1px rounded-4px px-10px py-4px text-14px leading-20px text-[#1460F3] cursor-pointer">Confirm</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex flex-wrap justify-between mt-24px">
|
|
<div class="flex flex-wrap justify-between mt-24px">
|
|
<div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between items-center mr-24px">
|
|
<div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between items-center mr-24px">
|