|
@@ -1,4 +1,4 @@
|
|
|
-<script setup lang="ts">
|
|
|
+<script lang="ts" setup>
|
|
|
import { onMounted, ref, watch } from 'vue';
|
|
|
import { getOperationSelect, getTasks, getTasksId } from '/@/views/reportManage/TaskManage/api';
|
|
|
|
|
@@ -17,6 +17,7 @@ const operationList = ref(localStorage.getItem('operationList') || '');
|
|
|
const usersList = ref(JSON.parse(localStorage.getItem('usersList') || '[]'));
|
|
|
const countryList = ref(JSON.parse(localStorage.getItem('countryList') || '[]'));
|
|
|
const brandNameList = ref(JSON.parse(localStorage.getItem('brandNameList') || '[]'));
|
|
|
+const platformList = ref(JSON.parse(localStorage.getItem('platformList') || '[]'));
|
|
|
|
|
|
const platformNumberOptions = ref([]);
|
|
|
const platformNameOptions = ref([]);
|
|
@@ -24,6 +25,7 @@ const usersOptions = ref([]);
|
|
|
const operationOptions = ref([]);
|
|
|
const countryOptions = ref([]);
|
|
|
const brandNameOptions = ref([]);
|
|
|
+const platformOptions = ref([]);
|
|
|
|
|
|
function sortCountriesByInitial(countries) {
|
|
|
return countries.sort((a, b) => a.localeCompare(b));
|
|
@@ -53,6 +55,7 @@ async function fetchAllTasks() {
|
|
|
operationOptions.value = [...new Set(allData.map(item => item.operater))];
|
|
|
countryOptions.value = sortCountriesByInitial([...new Set(allData.map(item => item.country))]);
|
|
|
brandNameOptions.value = [...new Set(allData.map(item => item.brandName))];
|
|
|
+ platformOptions.value = [...new Set(allData.map(item => item.platform).filter(platform => platform !== null && platform !== undefined && platform !== ''))];
|
|
|
}
|
|
|
|
|
|
async function fetchUsersSelect() {
|
|
@@ -90,6 +93,7 @@ async function fetchFilteredData() {
|
|
|
processFilterSingle(operationList.value, 'operater');
|
|
|
processFilterMultiple(countryList, 'country', 'countrys');
|
|
|
processFilterMultiple(brandNameList, 'brandName', 'brandNames');
|
|
|
+ processFilterMultiple(platformList, 'platform', 'platforms');
|
|
|
if (usersList.value.length > 0) {
|
|
|
filters.users = usersList.value.join(',');
|
|
|
}
|
|
@@ -115,9 +119,10 @@ async function emitChange() {
|
|
|
//localStorage.setItem('usersList', JSON.stringify(usersList.value));
|
|
|
localStorage.setItem('countryList', JSON.stringify(countryList.value));
|
|
|
localStorage.setItem('brandNameList', JSON.stringify(brandNameList.value));
|
|
|
+ localStorage.setItem('platformList', JSON.stringify(platformList.value));
|
|
|
}
|
|
|
|
|
|
-watch([countryList, brandNameList, usersList], () => {
|
|
|
+watch([countryList, brandNameList, usersList, platformList], () => {
|
|
|
emitChange();
|
|
|
});
|
|
|
|
|
@@ -132,18 +137,27 @@ defineExpose({ fetchFilteredData, filteredData, updateData });
|
|
|
|
|
|
<template>
|
|
|
<div class="flex-container">
|
|
|
- <el-input v-model="platformNumberList" @change="emitChange" placeholder="平台编号" class="flex-item" clearable></el-input>
|
|
|
- <el-input v-model="platformNameList" @change="emitChange" placeholder="平台名称" class="flex-item" clearable></el-input>
|
|
|
- <el-input v-model="operationList" @change="emitChange" placeholder="运营" class="flex-item" clearable></el-input>
|
|
|
- <el-select v-if="props.showOperationSearch" v-model="usersList" multiple collapse-tags collapse-tags-tooltip placeholder="填写人" class="flex-item">
|
|
|
+ <el-input v-model="platformNumberList" class="flex-item" clearable placeholder="平台编号"
|
|
|
+ @change="emitChange"></el-input>
|
|
|
+ <el-input v-model="platformNameList" class="flex-item" clearable placeholder="平台名称"
|
|
|
+ @change="emitChange"></el-input>
|
|
|
+ <el-input v-model="operationList" class="flex-item" clearable placeholder="运营" @change="emitChange"></el-input>
|
|
|
+ <el-select v-if="props.showOperationSearch" v-model="usersList" class="flex-item" collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ multiple placeholder="填写人">
|
|
|
<el-option v-for="item in usersOptions" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
- <el-select v-model="countryList" multiple collapse-tags collapse-tags-tooltip placeholder="国家" class="flex-item">
|
|
|
+ <el-select v-model="countryList" class="flex-item" collapse-tags collapse-tags-tooltip multiple placeholder="国家">
|
|
|
<el-option v-for="item in countryOptions" :key="item" :label="item" :value="item" />
|
|
|
</el-select>
|
|
|
- <el-select v-model="brandNameList" multiple collapse-tags collapse-tags-tooltip placeholder="品牌" class="flex-item">
|
|
|
+ <el-select v-model="brandNameList" class="flex-item" collapse-tags collapse-tags-tooltip multiple
|
|
|
+ placeholder="品牌">
|
|
|
<el-option v-for="item in brandNameOptions" :key="item" :label="item" :value="item" />
|
|
|
</el-select>
|
|
|
+ <el-select v-model="platformList" class="flex-item" collapse-tags collapse-tags-tooltip multiple
|
|
|
+ placeholder="平台">
|
|
|
+ <el-option v-for="item in platformOptions" :key="item" :label="item" :value="item" />
|
|
|
+ </el-select>
|
|
|
</div>
|
|
|
</template>
|
|
|
|