|
@@ -11,7 +11,7 @@
|
|
|
placeholder="请输入搜索关键词"
|
|
|
/>
|
|
|
<van-tabs :color="theme" :background="background">
|
|
|
- <van-tab title="网络短视频">
|
|
|
+ <van-tab :title="i" v-for="(v, i) in orilist" :key="i">
|
|
|
<van-row gutter="8">
|
|
|
<van-col
|
|
|
span="12"
|
|
@@ -19,46 +19,7 @@
|
|
|
position: 'relative',
|
|
|
display: item.noShow ? 'none' : 'inline-block',
|
|
|
}"
|
|
|
- v-for="item in list"
|
|
|
- :key="item.id"
|
|
|
- >
|
|
|
- <van-image
|
|
|
- :width="width"
|
|
|
- :height="height"
|
|
|
- fit="cover"
|
|
|
- @click="() => clickShowVideo(item)"
|
|
|
- position="left"
|
|
|
- :src="
|
|
|
- item.workTitle +
|
|
|
- '?x-oss-process=video/snapshot,t_4000,f_jpg,m_fast'
|
|
|
- "
|
|
|
- />
|
|
|
- <van-row>
|
|
|
- <van-col
|
|
|
- span="24"
|
|
|
- style="text-align: center"
|
|
|
- class="van-ellipsis--l2"
|
|
|
- >{{ item.name }}</van-col
|
|
|
- >
|
|
|
- </van-row>
|
|
|
- <br />
|
|
|
- <van-checkbox
|
|
|
- class="act"
|
|
|
- v-model="ids[item.phone].select"
|
|
|
- :checked-color="theme"
|
|
|
- />
|
|
|
- </van-col>
|
|
|
- </van-row>
|
|
|
- </van-tab>
|
|
|
- <van-tab title="优秀宣讲员">
|
|
|
- <van-row gutter="8">
|
|
|
- <van-col
|
|
|
- span="12"
|
|
|
- :style="{
|
|
|
- position: 'relative',
|
|
|
- display: item.noShow ? 'none' : 'inline-block',
|
|
|
- }"
|
|
|
- v-for="item in list_self"
|
|
|
+ v-for="item in v"
|
|
|
:key="item.id"
|
|
|
>
|
|
|
<van-image
|
|
@@ -102,30 +63,11 @@
|
|
|
<van-dialog v-model:show="showPaihang" confirm-button-text="关闭">
|
|
|
<div style="height: 50vh">
|
|
|
<van-tabs :color="theme">
|
|
|
- <van-tab title="网络短视频">
|
|
|
+ <van-tab :title="key" v-for="(v, key) in rankList" :key="key">
|
|
|
<div class="SilkList">
|
|
|
<van-cell-group inset>
|
|
|
<van-cell title="名称" value="投票量"></van-cell>
|
|
|
- <van-row v-for="item in rankList" :key="item.id + 'team'">
|
|
|
- <van-col span="16"
|
|
|
- ><p class="text van-ellipsis--l2" v-text="item.name"></p
|
|
|
- ></van-col>
|
|
|
- <van-col span="8"
|
|
|
- ><p
|
|
|
- class="text"
|
|
|
- style="text-align: right"
|
|
|
- v-text="formmate(item.votes)"
|
|
|
- ></p
|
|
|
- ></van-col>
|
|
|
- </van-row>
|
|
|
- </van-cell-group>
|
|
|
- </div>
|
|
|
- </van-tab>
|
|
|
- <van-tab title="优秀宣讲员">
|
|
|
- <div class="SilkList">
|
|
|
- <van-cell-group inset>
|
|
|
- <van-cell title="名称" value="投票量"></van-cell>
|
|
|
- <van-row v-for="item in rankList_slef" :key="item.id + 'team'">
|
|
|
+ <van-row v-for="item in v" :key="item.id + 'team'">
|
|
|
<van-col span="16"
|
|
|
><p class="text van-ellipsis--l2" v-text="item.name"></p
|
|
|
></van-col>
|
|
@@ -202,10 +144,10 @@ const width = (w - 16) / 2;
|
|
|
const height = width * 0.57;
|
|
|
const showPaihang = ref(false);
|
|
|
const showLogin = ref(false);
|
|
|
-const list = ref([]);
|
|
|
-const rankList = ref([]);
|
|
|
-const list_self = ref([]);
|
|
|
-const rankList_self = ref([]);
|
|
|
+
|
|
|
+const rankList = ref({});
|
|
|
+const orilist = ref({});
|
|
|
+
|
|
|
const ids = ref({});
|
|
|
const codePhoen = ref(0);
|
|
|
const config = reactive({
|
|
@@ -223,22 +165,19 @@ const login = reactive({
|
|
|
code: '',
|
|
|
});
|
|
|
const getList = call => {
|
|
|
- Promise.all([
|
|
|
- getEnrollList({
|
|
|
- type: '网络短视频',
|
|
|
- operateId,
|
|
|
- }),
|
|
|
- getEnrollList({
|
|
|
- type: '优秀宣讲员',
|
|
|
- operateId,
|
|
|
- }),
|
|
|
- ]).then(resList => {
|
|
|
- list.value = resList[0] || [];
|
|
|
- list_self.value = resList[1] || [];
|
|
|
- const l = [...resList[0], ...resList[1]];
|
|
|
+ getEnrollList({
|
|
|
+ type: '网络短视频',
|
|
|
+ operateId,
|
|
|
+ }).then(r => {
|
|
|
+ const array = r || [];
|
|
|
+ const obj = {};
|
|
|
const ids_list = [];
|
|
|
- for (let i = 0; i < l.length; i++) {
|
|
|
- const v = l[i];
|
|
|
+ for (let i = 0; i < array.length; i++) {
|
|
|
+ const v = array[i];
|
|
|
+ v.noShow = false;
|
|
|
+ if (obj[v.type]) obj[v.type].push(v);
|
|
|
+ else obj[v.type] = [v];
|
|
|
+
|
|
|
ids_list[v.phone] = {
|
|
|
select: false,
|
|
|
name: v.name,
|
|
@@ -246,41 +185,41 @@ const getList = call => {
|
|
|
};
|
|
|
}
|
|
|
ids.value = ids_list;
|
|
|
+ orilist.value = obj;
|
|
|
call && call();
|
|
|
});
|
|
|
};
|
|
|
getList();
|
|
|
|
|
|
const getRankList = Call => {
|
|
|
- Promise.all([
|
|
|
- getEnrollRank({
|
|
|
- type: '网络短视频',
|
|
|
- operateId,
|
|
|
- }),
|
|
|
- getEnrollRank({
|
|
|
- type: '优秀宣讲员',
|
|
|
- operateId,
|
|
|
- }),
|
|
|
- ]).then(resList => {
|
|
|
- rankList.value = resList[0] || [];
|
|
|
- rankList_self.value = resList[1] || [];
|
|
|
+ getEnrollRank({
|
|
|
+ operateId,
|
|
|
+ }).then(r => {
|
|
|
+ const l = r || [];
|
|
|
+ const obj = {};
|
|
|
+ for (let i = 0; i < l.length; i++) {
|
|
|
+ const v = l[i];
|
|
|
+ if (obj[v.type]) obj[v.type].push(v);
|
|
|
+ else obj[v.type] = [v];
|
|
|
+ }
|
|
|
+ rankList.value = obj;
|
|
|
+ console.log(obj);
|
|
|
Call && Call();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
let time = null;
|
|
|
watch(search, res => {
|
|
|
- console.log(res);
|
|
|
if (time) clearTimeout(time);
|
|
|
time = setTimeout(() => {
|
|
|
const rex = res ? new RegExp(res) : /[.\n]*/;
|
|
|
- for (let i = 0; i < list.value.length; i++) {
|
|
|
- const v = list.value[i];
|
|
|
- list.value[i].noShow = !rex.test(v.name);
|
|
|
- }
|
|
|
- for (let i = 0; i < list_self.value.length; i++) {
|
|
|
- const v = list_self.value[i];
|
|
|
- list_self.value[i].noShow = !rex.test(v.name);
|
|
|
+ for (const key in orilist.value) {
|
|
|
+ if (!Object.hasOwnProperty.call(orilist.value, key)) continue;
|
|
|
+ const v = orilist.value[key];
|
|
|
+ for (let i = 0; i < v.length; i++) {
|
|
|
+ const vv = v[i];
|
|
|
+ vv.noShow = !rex.test(vv.name);
|
|
|
+ }
|
|
|
}
|
|
|
clearTimeout(time);
|
|
|
time = null;
|