liyongli 1 年間 前
コミット
883d5da564
1 ファイル変更62 行追加4 行削除
  1. 62 4
      src/views/RealOnline/index.vue

+ 62 - 4
src/views/RealOnline/index.vue

@@ -38,6 +38,23 @@
             </el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="来源">
+          <el-select
+            collapse-tags
+            clearable
+            v-model="form.client"
+            placeholder="请选择来源"
+          >
+            <el-option
+              v-for="item in client"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+              :disabled="item.disabled"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item style="float: right">
           <el-button type="primary" @click="regularData">查询</el-button>
         </el-form-item>
@@ -109,12 +126,14 @@ export default {
       form: {
         app: '',
         lidu: '',
+        client: -1
       },
       total: {},
       tableData: [],
       cycle: [],
       lidu: [],
       realForm: {},
+      client: [],
     };
   },
   mounted() {
@@ -124,7 +143,8 @@ export default {
   methods: {
     async init() {
       if (chart && chart.dispose) chart.dispose();
-      const { source, appli, lidu } = await this.getAppListFunc();
+      const { source, appli, lidu, clentli, clentV } =
+        await this.getAppListFunc();
       appli.map(v => {
         if ((length.length && source[v.mcode]) || source.length === 0)
           this.cycle.push({
@@ -138,18 +158,44 @@ export default {
           label: v.mname,
         };
       });
+      this.client = this.verifyList(
+        clentli,
+        clentV,
+        {
+          value: 'mcode',
+          label: 'mname',
+        },
+        true
+      );
       this.form = {
         // app: (this.cycle[0] || { value: "" }).value,
         app: defaultAppNameFunc(this.cycle),
         lidu: '60',
+        client: -1
       };
       this.regularData();
     },
+    verifyList(list, verify, obj, more) {
+      if (!obj) return;
+      let li = list || [];
+      const out = [];
+      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;
+        out.push({
+          value: v[obj.value],
+          label: v[obj.label],
+        });
+      }
+      return out;
+    },
     regularData() {
       if (time) clearInterval(time);
       this.realForm = {
         appName: this.form.app,
         minute: this.form.lidu,
+        lib: this.form.client == -1 ? undefined : this.form.client,
       };
       this.onSubmit();
       time = setInterval(this.onSubmit, 5000);
@@ -306,22 +352,28 @@ export default {
       });
     },
     async getAppListFunc() {
-      const { r, li, lidu } = await this.getAppListOri();
+      const { r, li, lidu, clientList } = await this.getAppListOri();
       let source = {
           length: 0,
         },
         appli = [];
-      let prvList = r.output.data.prvRolectrl || [];
+      let clentV = { length: 0 },
+        clentli = [];
+      let prvList =
+        r && 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')
           (source[v.detid] = true), (source.length = source.length + 1);
       }
       if (li.status === '0') appli = li.output.data || [];
+      if (clientList.length) clentli = clientList || [];
       return {
         source,
         appli,
         lidu,
+        clentV,
+        clentli,
       };
     },
     async getAppListOri() {
@@ -334,19 +386,25 @@ export default {
         menuid: 400,
         roleid,
       });
+      // 端列表
       const li = await getAppList({
         exportMark: '0',
         gcode: 'SOURCE',
         pageid: 1,
         pagesize: 1000,
       });
+      const cycle = li.output ? li.output.data || [] : [];
+      const clientList = await getSearchData({
+        gcode: 'CLIENT_TYPE',
+        source: defaultAppNameFunc(cycle, 'mname'),
+      });
 
       const defaultAppName = li.status == '0' ? li.output.data[0].mname : '';
       const lidu = await getSearchData({
         gcode: 'TIME_MINUTE',
         source: defaultAppName,
       });
-      return { r, li, lidu };
+      return { r, li, lidu, clientList };
     },
   },
   components: { countTo },