Explorar el Código

提交-排序

liyongli hace 2 años
padre
commit
48043fad67

+ 7 - 3
src/views/Channle/index.vue

@@ -158,6 +158,7 @@
           align="center"
           label="本渠道新用户"
           show-overflow-tooltip
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -173,6 +174,7 @@
           align="center"
           label="启动次数"
           show-overflow-tooltip
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -188,6 +190,7 @@
           align="center"
           label="启动户数"
           show-overflow-tooltip
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -203,6 +206,7 @@
           align="center"
           label="平均使用时长"
           show-overflow-tooltip
+          sortable
         >
           <template #default="scope">
             {{ timeFormat(scope.row.duration) }}
@@ -423,7 +427,7 @@ export default {
         appVLi = [];
       let appC = { length: 0 },
         appCLi = [];
-      let prvList = r.output.data.prvRolectrl || [];
+      let prvList = r.output.data ? r.output.data.prvRolectrl || [] : [];
       for (let i = 0; i < prvList.length; i++) {
         const v = prvList[i];
         if (v.controlid == 'RMT_SOURCE')
@@ -660,7 +664,7 @@ export default {
 .btn-prev i {
   margin: 0 auto;
 }
-.caret-wrapper .ascending {
+/* .caret-wrapper .ascending {
   display: none;
-}
+} */
 </style>

+ 1 - 0
src/views/Department/index.vue

@@ -94,6 +94,7 @@
                   item.sortable ? ['ascending', 'descending', null] : []
                 "
               >
+              
                 <template #default="scope">
                   {{
                     item.type == 'number'

+ 6 - 6
src/views/History/index.vue

@@ -140,7 +140,7 @@
         :header-cell-style="{ backgroundColor: '#f4f5f7', color: '#606266' }"
       >
         <el-table-column prop="dt" label="日期" />
-        <el-table-column prop="activeUser" label="活跃用户">
+        <el-table-column prop="activeUser" sortable label="活跃用户">
           <template #default="scope">
             <countTo
               :startVal="scope.row.activeUser"
@@ -149,7 +149,7 @@
             ></countTo>
           </template>
         </el-table-column>
-        <el-table-column prop="newUser" label="新增用户">
+        <el-table-column prop="newUser" sortable label="新增用户">
           <template #default="scope">
             <countTo
               :startVal="scope.row.newUser"
@@ -158,7 +158,7 @@
             ></countTo>
           </template>
         </el-table-column>
-        <el-table-column prop="totalUser" label="累计用户">
+        <el-table-column prop="totalUser" sortable label="累计用户">
           <template #default="scope">
             <countTo
               :startVal="scope.row.totalUser"
@@ -167,7 +167,7 @@
             ></countTo>
           </template>
         </el-table-column>
-        <el-table-column prop="startTimes" label="启动次数">
+        <el-table-column prop="startTimes" sortable label="启动次数">
           <template #default="scope">
             <countTo
               :startVal="scope.row.startTimes"
@@ -176,12 +176,12 @@
             ></countTo>
           </template>
         </el-table-column>
-        <el-table-column prop="duration" label="人均使用时长">
+        <el-table-column prop="duration" sortable label="人均使用时长">
           <template #default="scope">
             {{ timeFormat(scope.row.durationUser) }}
           </template>
         </el-table-column>
-        <el-table-column prop="duration" label="次均使用时长">
+        <el-table-column prop="duration" sortable label="次均使用时长">
           <template #default="scope">
             {{ timeFormat(scope.row.durationTimes) }}
           </template>

+ 78 - 61
src/views/LiveRoom/index.vue

@@ -130,6 +130,7 @@
           backgroundColor: '#f4f5f7',
           color: '#606266',
         }"
+        @sort-change="sort_change"
       >
         <el-table-column
           prop="liveId"
@@ -161,7 +162,7 @@
           align="center"
         >
           <template #default>
-            <span>{{ lastParams.app || "-" }}</span>
+            <span>{{ lastParams.app || '-' }}</span>
           </template>
         </el-table-column>
         <!-- <el-table-column
@@ -194,6 +195,7 @@
           header-align="center"
           align="center"
           prop="userCount"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -208,6 +210,7 @@
           header-align="center"
           align="center"
           prop="duration"
+          sortable
         >
           <template #default="scope">
             {{ timeFormat(scope.row.duration) }}
@@ -217,9 +220,10 @@
           label="累计观看次数"
           header-align="center"
           align="center"
+          sortable
           prop="pv"
         >
-          <template #default="scope">   
+          <template #default="scope">
             <countTo
               :startVal="scope.row.pv || 0"
               :endVal="scope.row.pv || 0"
@@ -232,6 +236,7 @@
           header-align="center"
           align="center"
           prop="comments"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -246,6 +251,7 @@
           header-align="center"
           align="center"
           prop="support"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -284,27 +290,27 @@
 </template>
 <script>
 // @ is an alias to /src
-import { getRule, getAppList, getSearchData, getLivePage } from "@/api/index";
+import { getRule, getAppList, getSearchData, getLivePage } from '@/api/index';
 
-import countTo from "@/components/counto/vue-countTo.vue";
+import countTo from '@/components/counto/vue-countTo.vue';
 import { defaultAppNameFunc } from '@/utils/tool.js';
 
-import config from "@/config/index";
+import config from '@/config/index';
 export default {
-  name: "Version",
+  name: 'Version',
   data() {
     return {
       lastParams: {},
       table: {},
-      numType: "newUser",
+      numType: 'newUser',
       form: {
-        app: "",
+        app: '',
         version: [],
         channel: [],
         date: [],
-        liveId: "",
-        liveTitle: "",
-        publisherName: "",
+        liveId: '',
+        liveTitle: '',
+        publisherName: '',
         page: 1,
         size: 20,
       },
@@ -318,8 +324,8 @@ export default {
     const { source, appV, appC, appli, appVLi, appCLi } =
       await this.getAppListFunc();
     const keys = {
-      value: "mname",
-      label: "mname",
+      value: 'mname',
+      label: 'mname',
     };
     this.cycle = this.verifyList(appli, source, keys, false);
     this.channel = this.verifyList(appCLi, appC, keys, true);
@@ -327,12 +333,12 @@ export default {
     this.form = {
       //   app: (this.cycle[0] || { value: "" }).value,
       app: defaultAppNameFunc(this.cycle),
-      version: [(this.version[0] || { value: "" }).value],
-      channel: [(this.channel[0] || { value: "" }).value],
+      version: [(this.version[0] || { value: '' }).value],
+      channel: [(this.channel[0] || { value: '' }).value],
       date: [new Date(Date.now() - 604800000), new Date(Date.now() - 86400000)],
-      liveId: "",
-      liveTitle: "",
-      publisherName: "",
+      liveId: '',
+      liveTitle: '',
+      publisherName: '',
     };
     this.onSubmit();
   },
@@ -342,7 +348,7 @@ export default {
       if (!obj) return;
       let li = list || [];
       const out = [];
-      more && out.push({ value: -1, label: "不限" });
+      more && out.push({ value: -1, label: '不限' });
       for (let i = 0; i < li.length; i++) {
         const v = li[i];
         if (verify.length !== 0 && !verify[v.mcode]) continue;
@@ -362,6 +368,8 @@ export default {
     },
     onSubmit() {
       this.lastParams = {
+        order: this.form.order,
+        sortBy: this.form.sortBy || undefined,
         app: this.form.app,
         start: this.FormData(this.form.date[0]),
         end: this.FormData(this.form.date[1]),
@@ -373,6 +381,7 @@ export default {
         page: this.form.page,
         pageSize: this.form.size,
       };
+        console.log(this.lastParams.sortBy, this.lastParams.order)
       getLivePage(this.lastParams).then(r => (this.table = r || {}));
     },
     async getAppListFunc() {
@@ -383,17 +392,18 @@ export default {
         appVLi = [];
       let appC = { length: 0 },
         appCLi = [];
-      let prvList = r.output && r.output.data && r.output.data.prvRolectrl || [];
+      let prvList =
+        (r.output && r.output.data && r.output.data.prvRolectrl) || [];
       for (let i = 0; i < prvList.length; i++) {
         const v = prvList[i];
-        if (v.controlid == "RMT_SOURCE")
+        if (v.controlid == 'RMT_SOURCE')
           (source[v.detid] = true), (source.length = source.length + 1);
-        if (v.controlid == "APP_VERSION")
+        if (v.controlid == 'APP_VERSION')
           (appV[v.detid] = true), (appV.length = appV.length + 1);
-        if (v.controlid == "CHANNEL")
+        if (v.controlid == 'CHANNEL')
           (appC[v.detid] = true), (appC.length = appC.length + 1);
       }
-      if (li.status === "0") appli = li.output.data || [];
+      if (li.status === '0') appli = li.output.data || [];
       if (appVersion.length) appVLi = appVersion || [];
       if (channel.length) appCLi = channel || [];
       return {
@@ -407,37 +417,37 @@ export default {
     },
     async getAppListOri() {
       const roleid = JSON.parse(
-        window.parent.localStorage.userinfo || "{}"
+        window.parent.localStorage.userinfo || '{}'
       ).roleid;
       const r = await getRule({
-        db: "authplat",
-        exportMark: "0",
+        db: 'authplat',
+        exportMark: '0',
         menuid: 399,
         roleid,
       });
       //   应用列表
 
       const li = await getAppList({
-        exportMark: "0",
-        gcode: "SOURCE",
+        exportMark: '0',
+        gcode: 'SOURCE',
         pageid: 1,
         pagesize: 1000,
       });
       const cycle = li.output ? li.output.data || [] : [];
       //   应用版本列表
       const appVersion = await getSearchData({
-        gcode: "APP_VERSION",
+        gcode: 'APP_VERSION',
         source: defaultAppNameFunc(cycle, 'mname'),
       });
       //   应用渠道列表
       const channel = await getSearchData({
-        gcode: "CHANNEL",
+        gcode: 'CHANNEL',
         source: defaultAppNameFunc(cycle, 'mname'),
       });
       return { r, li, appVersion, channel };
     },
     disabledDate(time) {
-      const first = new Date("2021-06-21 00:00:00");
+      const first = new Date('2021-06-21 00:00:00');
       return (
         time.getTime() > Date.now() - 86400000 ||
         time.getTime() < first.getTime()
@@ -447,9 +457,9 @@ export default {
       const d = new Date(date || Date.now() - 86400000);
       const year = d.getFullYear();
       const month =
-        d.getMonth() <= 8 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1;
-      const day = d.getDate() <= 9 ? "0" + d.getDate() : d.getDate();
-      return [year, month, day].join("-");
+        d.getMonth() <= 8 ? '0' + (d.getMonth() + 1) : d.getMonth() + 1;
+      const day = d.getDate() <= 9 ? '0' + d.getDate() : d.getDate();
+      return [year, month, day].join('-');
     },
     timeFormat(t) {
       const Time = t || 0;
@@ -457,40 +467,42 @@ export default {
       let hour = (Time - mH) / 3600;
       let min = (mH - (mH % 60)) / 60;
       let son = Number(mH % 60).toFixed(0);
-      hour = hour <= 9 ? "0" + hour : hour;
-      min = min <= 9 ? "0" + min : min;
-      son = son <= 9 ? "0" + son : son;
+      hour = hour <= 9 ? '0' + hour : hour;
+      min = min <= 9 ? '0' + min : min;
+      son = son <= 9 ? '0' + son : son;
       let out = [];
       if (hour * 1 > 0) out.push(hour);
       out.push(...[min, son]);
-      return out.join(":");
+      return out.join(':');
     },
     change() {
       const roleid = JSON.parse(
-        window.parent.localStorage.userinfo || "{}"
+        window.parent.localStorage.userinfo || '{}'
       ).roleid;
       const appV = {
         length: 0,
       };
       getRule({
-        db: "authplat",
-        exportMark: "0",
+        db: 'authplat',
+        exportMark: '0',
         menuid: 399,
         roleid,
       }).then(rule => {
-        let prvList = rule.output && rule.output.data && rule.output.data.prvRolectrl || [];
+        let prvList =
+          (rule.output && rule.output.data && rule.output.data.prvRolectrl) ||
+          [];
         for (let i = 0; i < prvList.length; i++) {
           const v = prvList[i];
-          if (v.controlid == "APP_VERSION")
+          if (v.controlid == 'APP_VERSION')
             (appV[v.detid] = true), (appV.length = appV.length + 1);
         }
         getSearchData({
-          gcode: "APP_VERSION",
+          gcode: 'APP_VERSION',
           source: this.form.app,
         }).then(r => {
           let version = [
             {
-              label: "不限",
+              label: '不限',
               value: -1,
             },
           ];
@@ -508,12 +520,12 @@ export default {
           };
         });
         getSearchData({
-          gcode: "CHANNEL",
+          gcode: 'CHANNEL',
           source: this.form.app,
         }).then(r => {
           let channel = [
             {
-              label: "不限",
+              label: '不限',
               value: -1,
             },
           ];
@@ -565,29 +577,34 @@ export default {
         : undefined;
       const app = this.lastParams.app || this.form.app;
       const version =
-        this.form.version == -1 ? undefined : this.form.version.join(",");
+        this.form.version == -1 ? undefined : this.form.version.join(',');
       const manufacturer =
-        this.lastParams.manufacturer || this.form.channel.join(",");
+        this.lastParams.manufacturer || this.form.channel.join(',');
       let url =
         config.base.leverAudience +
-        "/cxzx-program/new-media/live/export?start=" +
+        '/cxzx-program/new-media/live/export?start=' +
         S +
-        "&end=" +
+        '&end=' +
         E +
-        "&app=" +
+        '&app=' +
         app;
-      version && (url += "&version=" + version);
-      version && (url += "&version=" + version);
-      this.lastParams.liveId && (url += "&liveId=" + this.lastParams.liveId);
+      version && (url += '&version=' + version);
+      version && (url += '&version=' + version);
+      this.lastParams.liveId && (url += '&liveId=' + this.lastParams.liveId);
       this.lastParams.liveTitle &&
-        (url += "&liveTitle=" + this.lastParams.liveTitle);
+        (url += '&liveTitle=' + this.lastParams.liveTitle);
       this.lastParams.publisherName &&
-        (url += "&publisherName=" + this.lastParams.publisherName);
+        (url += '&publisherName=' + this.lastParams.publisherName);
       manufacturer &&
         manufacturer !== -1 &&
-        (url += "&manufacturer=" + manufacturer);
+        (url += '&manufacturer=' + manufacturer);
       window.open(url);
     },
+    sort_change(type) {
+      this.form.sortBy = type.prop;
+      this.form.order = type.order === "ascending" ?  0 : type.order === "descending" ? 1 : undefined;
+      this.onSubmit();
+    },
   },
   components: {
     countTo,
@@ -608,7 +625,7 @@ export default {
 .btn-prev i {
   margin: 0 auto;
 }
-.caret-wrapper .ascending {
+/* .caret-wrapper .ascending {
   display: none;
-}
+} */
 </style>

+ 4 - 2
src/views/NMedia/column/index.vue

@@ -127,6 +127,7 @@
           header-align="center"
           align="center"
           prop="pv"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -141,6 +142,7 @@
           header-align="center"
           align="center"
           prop="uv"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -387,9 +389,9 @@ export default {
 .btn-prev i {
   margin: 0 auto;
 }
-.caret-wrapper .ascending {
+/* .caret-wrapper .ascending {
   display: none;
-}
+} */
 .head {
   display: flex;
   font-weight: 500;

+ 6 - 2
src/views/NMedia/contentDay/index.vue

@@ -109,6 +109,7 @@
           header-align="center"
           align="center"
           prop="pv"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -123,6 +124,7 @@
           header-align="center"
           align="center"
           prop="uv"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -149,6 +151,7 @@
             header-align="center"
             align="center"
             prop="cpv"
+            sortable
           >
             <template #default="scope">
               <countTo
@@ -163,6 +166,7 @@
             header-align="center"
             align="center"
             prop="cuser"
+            sortable
           >
             <template #default="scope">
               <countTo
@@ -411,7 +415,7 @@ export default {
 .btn-prev i {
   margin: 0 auto;
 }
-.caret-wrapper .ascending {
+/* .caret-wrapper .ascending {
   display: none;
-}
+} */
 </style>

+ 14 - 3
src/views/Search/index.vue

@@ -117,6 +117,7 @@
           backgroundColor: '#f4f5f7',
           color: '#606266',
         }"
+        @sort-change="sort_change"
       >
         <el-table-column
           prop="keyWord"
@@ -155,6 +156,7 @@
           header-align="center"
           align="center"
           prop="searchTimes"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -169,6 +171,7 @@
           header-align="center"
           align="center"
           prop="clickTimes"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -183,6 +186,7 @@
           header-align="center"
           align="center"
           prop="clickUser"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -278,6 +282,7 @@ export default {
     },
     onSubmit() {
       this.lastParams = {
+        order: this.form.order,
         app: this.form.app,
         start: this.FormData(this.form.date[0]),
         end: this.FormData(this.form.date[1]),
@@ -302,7 +307,7 @@ export default {
         appli = [];
       let appV = { length: 0 },
         appVLi = [];
-      let prvList = r.output.data.prvRolectrl || [];
+      let prvList = r.output.data ? r.output.data.prvRolectrl || [] : [];
       for (let i = 0; i < prvList.length; i++) {
         const v = prvList[i];
         if (v.controlid == "RMT_SOURCE")
@@ -451,6 +456,12 @@ export default {
       version && (url += "&version=" + version);
       window.open(url);
     },
+    
+    sort_change(type) {
+      this.form.sortBy = type.prop;
+      this.form.order = type.order === "ascending" ?  0 : type.order === "descending" ? 1 : undefined;
+      this.onSubmit();
+    },
   },
   components: {
     countTo,
@@ -471,7 +482,7 @@ export default {
 .btn-prev i {
   margin: 0 auto;
 }
-.caret-wrapper .ascending {
+/* .caret-wrapper .ascending {
   display: none;
-}
+} */
 </style>

+ 12 - 6
src/views/Version/index.vue

@@ -94,18 +94,18 @@
         <el-button-group>
           <el-button
             size="small"
-            :type="numType === 'newUser' ? 'primary' : 'plain'"
+            :type="numType === 'newUser' ? 'primary' : ''"
             @click="() => selectNumType('newUser')"
           >
             新用户数
           </el-button>
           <el-button
             size="small"
-            :type="numType === 'startTimes' ? 'primary' : 'plain'"
+            :type="numType === 'startTimes' ? 'primary' : ''"
             @click="() => selectNumType('startTimes')"
           >
             启动次数
-          </el-button>
+          </el-button> 
         </el-button-group>
       </div>
       <br />
@@ -157,6 +157,7 @@
           header-align="center"
           align="center"
           label="升级用户数"
+          sortable
           show-overflow-tooltip
         >
           <template #default="scope">
@@ -172,6 +173,7 @@
           header-align="center"
           align="center"
           prop="newUser"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -186,6 +188,7 @@
           header-align="center"
           align="center"
           prop="activeUser"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -200,6 +203,7 @@
           header-align="center"
           align="center"
           prop="startTimes"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -214,6 +218,7 @@
           header-align="center"
           align="center"
           prop="distribution"
+          sortable
         >
           <template #default="scope">
             <countTo
@@ -229,6 +234,7 @@
           header-align="center"
           align="center"
           prop="duration"
+          sortable
         >
           <template #default="scope">
             {{ timeFormat(scope.row.duration) }}
@@ -454,7 +460,7 @@ export default {
         appVLi = [];
       let appC = { length: 0 },
         appCLi = [];
-      let prvList = r.output.data.prvRolectrl || [];
+      let prvList = r.output.data?  r.output.data.prvRolectrl || [] : [];
       for (let i = 0; i < prvList.length; i++) {
         const v = prvList[i];
         if (v.controlid == "RMT_SOURCE")
@@ -694,7 +700,7 @@ export default {
 .btn-prev i {
   margin: 0 auto;
 }
-.caret-wrapper .ascending {
+/* .caret-wrapper .ascending {
   display: none;
-}
+} */
 </style>