From fefe4a3011fb472788abb2e7ffdbbc5a4f58623c Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期三, 05 六月 2024 14:10:16 +0800
Subject: [PATCH] feat:更新ui界面

---
 src/views/home/components/audioAnalysis/index.vue |  557 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 478 insertions(+), 79 deletions(-)

diff --git a/src/views/home/components/audioAnalysis/index.vue b/src/views/home/components/audioAnalysis/index.vue
index c980ae0..89cb735 100644
--- a/src/views/home/components/audioAnalysis/index.vue
+++ b/src/views/home/components/audioAnalysis/index.vue
@@ -1,13 +1,246 @@
 <template>
     <div>
+      <el-card class="top-container">
         <div class="search">
+          <el-form :inline="true" class="demo-form-inline">
+            <el-form-item label="">
+              <el-date-picker
+                  v-model="searchDateTime"
+                  type="daterange"
+                  size="small"
+                  align="right"
+                  unlink-panels
+                  range-separator="鑷�"
+                  start-placeholder="寮�濮嬫棩鏈�"
+                  end-placeholder="缁撴潫鏃ユ湡"
+                  :picker-options="pickerOptions">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="">
+              <el-input v-model="whereTrain.keyword" size="small" placeholder="璇疯緭鍏ュ徃鏈猴紝杞︽锛岃溅鍙风瓑鍏抽敭瀛楄繘琛屾悳绱�" style="width: 340px;position: relative;top:5px">
+                <el-button slot="append" @click="searchCar" icon="el-icon-search" type="primary"></el-button>
+              </el-input>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="show-sel-tag">
+          <div>
+            <span style="font-size: 14px">宸茬瓫閫夋潯浠�:</span>
+            <span v-if="tagList.length>0">
+                    <el-tag  class="tag-cla" effect="plain" closable v-for="(tag,index) in tagList" @close="closeTag(index)">
+                        <span>{{tag.label}}:</span> <span style="color: red">{{tag.value}}</span>
+                    </el-tag>
+                </span>
+            <span v-else style="color: lightgray;font-size: 12px">杩樻湭閫夋嫨绛涢�夋潯浠�</span>
+          </div>
+          <div>
+            <el-button size="mini" @click="cancelSel">鍙栨秷閫夋嫨</el-button>
+          </div>
+        </div>
+        <div class="sel-filter-body1">
+          <div class="sel-filter">
+            <div class="item-car-no">
+              <div>
+                <img src="@/assets/locomotiveNumber.svg" style="vertical-align: middle;width: 26px">
+                <span class="title">&nbsp;&nbsp;鏈鸿溅鍙�:</span>
+              </div>
+              <div class="list">
+                <div class="default">
+                  <div  @click="selTrain(carNo)" v-for="(carNo,index) in carNoList" v-if="index<=(carNoBtn.moreStatus?carNoList.length-1:9)">
+                    <el-checkbox v-show="carNoBtn.manySel" checked/>{{carNo.name}}
+                  </div>
+                  <div style="width: 100%;text-align: center" v-show="carNoBtn.manySel">
+                    <el-button type="primary" size="mini">纭畾</el-button>
+                    <el-button size="mini" @click="cancelManySel">鍙栨秷</el-button>
+                  </div>
+                </div>
+                <div class="btn">
+                  <el-button size="mini" :disabled="carNoList.length<=10" @click="carNoBtn.moreStatus=!carNoBtn.moreStatus">鏇村<i :class="carNoBtn.moreStatus?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
+<!--                  <el-button size="mini" @click="manySelect">澶氶��<i class="el-icon-plus"></i></el-button>-->
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="sel-filter">
+            <div class="item-car-no">
+              <div class="title">
+                <div>
+                  <img src="@/assets/locomotiveNumber.svg" style="vertical-align: middle;width: 26px">
+                  <span class="title">&nbsp;&nbsp;杞︽:</span>
+                </div>
+              </div>
+              <div class="list" style="border-top: none">
+                <div class="default">
+                  <div @click="selTrain(carTime)"  v-for="(carTime,index) in carTimeList" v-if="index<=(carTimeBtn?carTimeList.length-1:9)">
+                    {{carTime.name}}
+                  </div>
+                </div>
+                <div class="btn">
+                  <el-button size="mini" :disabled="carTimeList.length<=10" @click="carTimeBtn=!carTimeBtn">鏇村<i :class="carTimeBtn?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="sel-filter">
+            <div class="item-car-no">
+              <div class="title">
+                <div>
+                  <img src="@/assets/locomotiveNumber.svg" style="vertical-align: middle;width: 26px">
+                  <span class="title">&nbsp;&nbsp;杞︾珯鍙�:</span>
+                </div>
+              </div>
+              <div class="list" style="border-top: none">
+                <div class="default">
+                  <div @click="selTrain(carState)" v-for="(carState,index) in carStateList" v-if="index<=(carStateBtn?carStateList.length-1:9)">{{carState.name}}</div>
+                </div>
+                <div class="btn">
+                  <el-button size="mini" :disabled="carStateList.length<=10" @click="carStateBtn=!carStateBtn">鏇村<i :class="carStateBtn?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
+                </div>
+              </div>
+            </div>
+          </div>
+<!--            <div class="item-car-no">
+              <div class="title">杞︽:</div>
+              <div class="list" style="border-top: none">
+                <div class="default">
+                  <div @click="selTrain(carTime)"  v-for="(carTime,index) in carTimeList" v-if="index<=(carTimeBtn?carTimeList.length-1:9)">
+                    {{carTime.name}}
+                  </div>
+                </div>
+                <div class="btn">
+                  <el-button size="mini" :disabled="carTimeList.length<=10" @click="carTimeBtn=!carTimeBtn">鏇村<i :class="carTimeBtn?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
+                </div>
+              </div>
+            </div>-->
+<!--            <div class="item-car-no">
+              <div class="title">杞︾珯鍙�:</div>
+              <div class="list" style="border-top: none">
+                <div class="default">
+                  <div @click="selTrain(carState)" v-for="(carState,index) in carStateList" v-if="index<=(carStateBtn?carStateList.length-1:9)">{{carState.name}}</div>
+                </div>
+                <div class="btn">
+                  <el-button size="mini" :disabled="carStateList.length<=10" @click="carStateBtn=!carStateBtn">鏇村<i :class="carStateBtn?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
+                </div>
+              </div>
+
+            </div>-->
+
+        </div>
+      </el-card>
+      <el-card class="bottom-container">
+        <div class="audio-filter">
+          <div>
+            <el-select size="mini" v-model="whereTrain.isFollowed">
+              <el-option :value="0" label="鍏ㄩ儴"></el-option>
+              <el-option :value="1" label="宸插叧娉�"></el-option>
+              <el-option :value="2" label="鏈叧娉�"></el-option>
+            </el-select>
+<!--           <el-select size="mini" style="margin-left: 10px" v-model="whereTrain.audioStatus">
+            <el-option :value="0" label="鍏ㄩ儴"></el-option>
+            <el-option :value="1" label="姝e父"></el-option>
+            <el-option :value="4" label="寮傚父"></el-option>
+          </el-select>-->
+          </div>
+          <div class="icon">
+            <div @click="audioListType='table'" :class="{'border-cla':audioListType==='table'}">
+              <img :src="`${publicPath}images/audio/u167.png`" width="13px"/>
+            </div>
+            <div @click="audioListType='menu'" :class="{'border-cla':audioListType==='menu'}">
+              <img :src="`${publicPath}images/audio/u168.png`" />
+            </div>
+          </div>
+        </div>
+        <div v-if="audioListType=='table'" class="audio-list-table">
+          <div class="item"   v-for="audio in pageInfo.audioList" :key="audio.ID">
+            <div class="head" @click="processAudio(audio)">
+              <img :src="`${publicPath}images/audio/u230.png`"/>
+<!--              <img :src="`${publicPath}images/audio/u231.png`" class="player"/>-->
+<!--              <div class="time">06:20</div>-->
+            </div>
+            <div class="body">
+              <div class="carNo">
+                <div class="carNo-body">
+                  <div><span class="carNo-sty1">杞﹀彿:</span><span class="carNo-sty2">{{audio.locomotiveNumber}}</span></div>
+                  <div><span class="carNo-sty1">杞︽:</span><span class="carNo-sty2">{{audio.trainNumber}}</span></div>
+                  <div><span class="carNo-sty1">鏃堕棿:</span><span class="carNo-sty2">{{audio.occurrenceTime}}</span></div>
+                  <div><span class="carNo-sty1">鍙告満:</span><span class="carNo-sty2">{{audio.driverNumber}}</span></div>
+                </div>
+<!--                <div>
+                  杞﹀彿锛歿{audio.locomotiveNumber}}<br/>
+                  杞︽锛歿{audio.trainNumber}}<br>
+                  鏃堕棿锛歿{audio.occurrenceTime}}<br/>
+                  鍙告満锛歿{audio.driverNumber}}<br>
+                </div>-->
+<!--                <div class="status">
+                  <span>{{audio.score}}</span>
+                  <span v-if="audio.audioStatus===0">涓婁紶涓�</span>
+                  <span v-else-if="audio.audioStatus===1" style="color: green">姝e父</span>
+                  <span v-else-if="audio.audioStatus===2">澶勭悊涓�</span>
+                  <span v-else-if="audio.audioStatus===3">寮傚父</span>
+                </div>-->
+              </div>
+              <div style="text-align: right;margin-right: 10px;">
+                <el-rate :max="1" :value="audio.IsFollowed===1?1:0" @change="isFollowChange(audio)"></el-rate>
+              </div>
+              <div class="tag" v-if="Array.isArray(audio.words)">
+                <div v-for="item in audio.words">{{item}}</div>
+              </div>
+              <div class="tag-no" v-else>
+                <div>&nbsp;</div>
+                <div>&nbsp;</div>
+                <div>&nbsp;</div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div v-else class="audio-list-menu">
+          <el-table :data="pageInfo.audioList">
+            <el-table-column prop="name" label="鍚嶇О" align="center" min-width="220px"></el-table-column>
+            <el-table-column prop="size" label="澶у皬" align="center" width="100px"></el-table-column>
+            <el-table-column prop="tag" label="鏍囩" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.words">{{scope.row.words.join(',')}}</span>
+                <span v-else>鏆傛棤鏍囩</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="UpdatedAt" label="淇敼鏃堕棿" align="center">
+              <template slot-scope="scope">
+                {{$moment(scope.row.UpdateAt).format('YYYY-MM-DD HH:mm:ss')}}
+              </template>
+            </el-table-column>
+            <el-table-column prop="CreatedAt" label="鍒涘缓鏃堕棿" align="center">
+              <template slot-scope="scope">
+                {{$moment(scope.row.CreateAt).format('YYYY-MM-DD HH:mm:ss')}}
+              </template>
+            </el-table-column>
+            <el-table-column  label="鎿嶄綔" align="center">
+              <template slot-scope="scope">
+                <el-rate :max="1" :value="scope.row.IsFollowed===1?1:0" @change="isFollowChange(scope.row)"></el-rate>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <div class="audio-pagination">
+          <div class="total">鍏辫{{pageInfo.total}}鏉¤褰� 绗瑊{pageData.page}}/{{lastPage}}椤�</div>
+          <div class="page">
+            <el-pagination
+                background
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+                :current-page.sync="pageData.page"
+                :page-size="pageData.pageSize"
+                layout="prev, pager, next,sizes, jumper"
+                :total="pageInfo.total">
+            </el-pagination>
+          </div>
+        </div>
+        <Analysis ref="analysis" :modal-audio.sync="modalAudio" :look-audio="lookAudio"></Analysis>
+      </el-card>
+<!--        <div class="search">
             <el-form :inline="true" class="demo-form-inline">
                 <el-form-item label="">
-                    <el-input v-model="whereCar.keyword" size="small" placeholder="璇疯緭鍏ュ徃鏈猴紝杞︽锛岃溅鍙风瓑鍏抽敭瀛楄繘琛屾悳绱�" style="width: 300px"></el-input>
-                </el-form-item>
-                <el-form-item label="">
                     <el-date-picker
-                            v-model="whereCar.date"
+                            v-model="searchDateTime"
                             type="daterange"
                             size="small"
                             align="right"
@@ -18,17 +251,20 @@
                             :picker-options="pickerOptions">
                     </el-date-picker>
                 </el-form-item>
-                <el-form-item>
-                    <el-button  @click="searchCar" size="mini" type="primary" style="border:none;background-color: rgba(24, 144, 255, 1)">鎼滅储</el-button>
+                <el-form-item label="">
+                    <el-input v-model="whereTrain.keyword" size="small" placeholder="璇疯緭鍏ュ徃鏈猴紝杞︽锛岃溅鍙风瓑鍏抽敭瀛楄繘琛屾悳绱�" style="width: 340px;position: relative;top:5px">
+                        <el-button slot="append" @click="searchCar" icon="el-icon-search" type="primary"></el-button>
+                    </el-input>
                 </el-form-item>
             </el-form>
         </div>
+
         <div class="show-sel-tag">
             <div>
                 宸查�夋潯浠�:
                 <span v-if="tagList.length>0">
                     <el-tag  class="tag-cla" effect="plain" closable v-for="(tag,index) in tagList" @close="closeTag(index)">
-                        <span>{{tag.filterType}}:</span> <span style="color: red">{{tag.value}}</span>
+                        <span>{{tag.label}}:</span> <span style="color: red">{{tag.value}}</span>
                     </el-tag>
                 </span>
                 <span v-else style="color: lightgray;font-size: 12px">杩樻湭閫夋嫨绛涢�夋潯浠�</span>
@@ -37,13 +273,14 @@
                 <el-button size="mini" @click="cancelSel">鍙栨秷閫夋嫨</el-button>
             </div>
         </div>
+
         <div class="sel-filter">
             <div class="item-car-no">
                 <div class="title">杞﹀彿:</div>
                 <div class="list">
                     <div class="default">
-                        <div v-for="(carNo,index) in carNoList" v-if="index<=(carNoBtn.moreStatus?carNoList.length-1:9)">
-                            <el-checkbox v-show="carNoBtn.manySel" checked/>{{carNo}}
+                        <div  @click="selTrain(carNo)" v-for="(carNo,index) in carNoList" v-if="index<=(carNoBtn.moreStatus?carNoList.length-1:9)">
+                            <el-checkbox v-show="carNoBtn.manySel" checked/>{{carNo.name}}
                         </div>
                         <div style="width: 100%;text-align: center" v-show="carNoBtn.manySel">
                             <el-button type="primary" size="mini">纭畾</el-button>
@@ -51,8 +288,8 @@
                         </div>
                     </div>
                     <div class="btn">
-                        <el-button size="mini" @click="carNoBtn.moreStatus=!carNoBtn.moreStatus">鏇村<i :class="carNoBtn.moreStatus?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
-                        <el-button size="mini" @click="manySelect">澶氶��<i class="el-icon-plus"></i></el-button>
+                        <el-button size="mini" :disabled="carNoList.length<=10" @click="carNoBtn.moreStatus=!carNoBtn.moreStatus">鏇村<i :class="carNoBtn.moreStatus?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
+                        &lt;!&ndash;<el-button size="mini" @click="manySelect">澶氶��<i class="el-icon-plus"></i></el-button>&ndash;&gt;
                     </div>
                 </div>
             </div>
@@ -60,12 +297,12 @@
                 <div class="title">杞︽:</div>
                 <div class="list" style="border-top: none">
                     <div class="default">
-                        <div v-for="(carTime,index) in carTimeList" v-if="index<=(carTimeBtn?carTimeList.length-1:9)">
-                            {{carTime}}
+                        <div @click="selTrain(carTime)"  v-for="(carTime,index) in carTimeList" v-if="index<=(carTimeBtn?carTimeList.length-1:9)">
+                            {{carTime.name}}
                         </div>
                     </div>
                     <div class="btn">
-                        <el-button size="mini" @click="carTimeBtn=!carTimeBtn">鏇村<i :class="carTimeBtn?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
+                        <el-button size="mini" :disabled="carTimeList.length<=10" @click="carTimeBtn=!carTimeBtn">鏇村<i :class="carTimeBtn?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
                     </div>
                 </div>
             </div>
@@ -73,27 +310,28 @@
                 <div class="title">杞︾珯鍙�:</div>
                 <div class="list" style="border-top: none">
                     <div class="default">
-                        <div v-for="(carState,index) in carStateList" v-if="index<=(carStateBtn?carStateList.length-1:9)">{{carState}}</div>
+                        <div @click="selTrain(carState)" v-for="(carState,index) in carStateList" v-if="index<=(carStateBtn?carStateList.length-1:9)">{{carState.name}}</div>
                     </div>
                     <div class="btn">
-                        <el-button size="mini" @click="carStateBtn=!carStateBtn">鏇村<i :class="carStateBtn?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
+                        <el-button size="mini" :disabled="carStateList.length<=10" @click="carStateBtn=!carStateBtn">鏇村<i :class="carStateBtn?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
                     </div>
                 </div>
 
             </div>
         </div>
-        <div class="audio-filter">
+      -->
+<!--        <div class="audio-filter">
             <div>
-                <el-select size="mini" v-model="whereAudio.isState">
-                    <el-option value="0" label="鏈叧娉�"></el-option>
-                    <el-option value="1" label="宸插叧娉�"></el-option>
-                    <el-option value="2" label="鍏ㄩ儴"></el-option>
+                <el-select size="mini" v-model="whereTrain.isFollowed">
+                    <el-option :value="0" label="鍏ㄩ儴"></el-option>
+                    <el-option :value="1" label="宸插叧娉�"></el-option>
+                    <el-option :value="2" label="鏈叧娉�"></el-option>
                 </el-select>
-                <el-select size="mini" style="margin-left: 10px" v-model="whereAudio.status">
-                    <el-option value="0" label="姝e父"></el-option>
-                    <el-option value="1" label="寮傚父"></el-option>
-                    <el-option value="2" label="鍏ㄩ儴"></el-option>
-                </el-select>
+               &lt;!&ndash; <el-select size="mini" style="margin-left: 10px" v-model="whereTrain.audioStatus">
+                    <el-option :value="0" label="鍏ㄩ儴"></el-option>
+                    <el-option :value="1" label="姝e父"></el-option>
+                    <el-option :value="4" label="寮傚父"></el-option>
+                </el-select>&ndash;&gt;
             </div>
             <div class="icon">
                 <div @click="audioListType='table'" :class="{'border-cla':audioListType==='table'}">
@@ -105,8 +343,8 @@
             </div>
         </div>
         <div v-if="audioListType=='table'" class="audio-list-table">
-            <div class="item"   v-for="i in 8">
-                <div class="head" @click="modalAudio=true">
+            <div class="item"   v-for="audio in pageInfo.audioList" :key="audio.ID">
+                <div class="head" @click="processAudio(audio)">
                     <img :src="`${publicPath}images/audio/u230.png`"/>
                     <img :src="`${publicPath}images/audio/u231.png`" class="player"/>
                     <div class="time">06:20</div>
@@ -114,33 +352,57 @@
                 <div class="body">
                     <div class="carNo">
                         <div>
-                            杞﹀彿锛歋S4B115<br/>
-                            杞︽锛�8040<br>
-                            鏃堕棿锛�2020-09-21 20:45:08<br/>
-                            鍙告満锛欰20<br>
+                            杞﹀彿锛歿{audio.locomotiveNumber}}<br/>
+                            杞︽锛歿{audio.trainNumber}}<br>
+                            鏃堕棿锛歿{audio.occurrenceTime}}<br/>
+                            鍙告満锛歿{audio.driverNumber}}<br>
                         </div>
-                        <div class="status">寮傚父</div>
+                        <div class="status">
+                            <span>{{audio.score}}</span>
+                            &lt;!&ndash;<span v-if="audio.audioStatus===0">涓婁紶涓�</span>
+                            <span v-else-if="audio.audioStatus===1" style="color: green">姝e父</span>
+                            <span v-else-if="audio.audioStatus===2">澶勭悊涓�</span>
+                            <span v-else-if="audio.audioStatus===3">寮傚父</span>&ndash;&gt;
+                        </div>
                     </div>
-                    <div style="text-align: right;margin-right: 10px">
-                        <el-rate :max="1"></el-rate>
+                    <div style="text-align: right;margin-right: 10px;">
+                        <el-rate :max="1" :value="audio.IsFollowed===1?1:0" @change="isFollowChange(audio)"></el-rate>
                     </div>
-                    <div class="tag">
-                        <div>鐏溅鍒扮珯</div>
-                        <div>鐏溅鍚姩</div>
-                        <div>鐏溅楦g瑳</div>
+                    <div class="tag" v-if="Array.isArray(audio.words)">
+                        <div v-for="item in audio.words">{{item}}</div>
+                    </div>
+                    <div class="tag-no" v-else>
+                        <div>&nbsp;</div>
+                        <div>&nbsp;</div>
+                        <div>&nbsp;</div>
                     </div>
                 </div>
             </div>
         </div>
         <div v-else class="audio-list-menu">
-            <el-table :data="audioList">
-                <el-table-column prop="name" label="鍚嶇О" align="center"></el-table-column>
-                <el-table-column prop="size" label="澶у皬" align="center"></el-table-column>
-                <el-table-column prop="tag" label="鏍囩" align="center"></el-table-column>
-                <el-table-column prop="editDate" label="淇敼鏃堕棿" align="center"></el-table-column>
-                <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center"></el-table-column>
+            <el-table :data="pageInfo.audioList">
+                <el-table-column prop="name" label="鍚嶇О" align="center" min-width="220px"></el-table-column>
+                <el-table-column prop="size" label="澶у皬" align="center" width="100px"></el-table-column>
+                <el-table-column prop="tag" label="鏍囩" align="center">
+                    <template slot-scope="scope">
+                        <span v-if="scope.row.words">{{scope.row.words.join(',')}}</span>
+                        <span v-else>鏆傛棤鏍囩</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="UpdatedAt" label="淇敼鏃堕棿" align="center">
+                    <template slot-scope="scope">
+                        {{$moment(scope.row.UpdateAt).format('YYYY-MM-DD HH:mm:ss')}}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="CreatedAt" label="鍒涘缓鏃堕棿" align="center">
+                    <template slot-scope="scope">
+                        {{$moment(scope.row.CreateAt).format('YYYY-MM-DD HH:mm:ss')}}
+                    </template>
+                </el-table-column>
                 <el-table-column  label="鎿嶄綔" align="center">
-                    <el-rate max="1"></el-rate>
+                    <template slot-scope="scope">
+                        <el-rate :max="1" :value="scope.row.IsFollowed===1?1:0" @change="isFollowChange(scope.row)"></el-rate>
+                    </template>
                 </el-table-column>
             </el-table>
         </div>
@@ -158,12 +420,13 @@
                 </el-pagination>
             </div>
         </div>
-        <Analysis :modal-audio.sync="modalAudio"></Analysis>
+        <Analysis ref="analysis" :modal-audio.sync="modalAudio" :look-audio="lookAudio"></Analysis>-->
     </div>
 </template>
 
 <script>
     import Analysis from './components/Analysis.vue';
+    import {audioListApi,trainListApi,followAudioApi,processAudioApi,audioInfoApi} from '@/api';
     export default {
         name: "audioAnalysis",
         components:{
@@ -171,17 +434,15 @@
         },
         data(){
             return {
+                lookAudio:{},
                 publicPath: process.env.BASE_URL,
                 modalAudio:false,
                 pageInfo:{
                     total:100,
-                    textList:[]
+                    audioList:[]
                 },
                 pageData:{page:1,pageSize:10},
-                whereAudio:{
-                  status:'2',
-                  isState:'2'
-                },
+                trainPageData:{page:1,pageSize:500},
                 audioListType:'table',
                 carNoBtn:{
                   moreStatus:false,
@@ -189,15 +450,13 @@
                 },
                 carTimeBtn:false,
                 carStateBtn:false,
-                whereCar:{
+                whereTrain:{
                     keyword:'',
-                    date:''
+                   // audioStatus:'',
+                    isFollowed:0
                 },
-                tagList:[
-                    {filterType:'杞︽',value:'鍏ㄩ儴'},
-                    {filterType:'杞﹀彿',value:'鍏ㄩ儴'},
-                    {filterType:'杞︾珯鍙�',value:'鍏ㄩ儴'}
-                ],
+                searchDateTime:[],
+                tagList:[],
                 pickerOptions: {
                     shortcuts: [
                         {
@@ -226,18 +485,9 @@
                         }
                     }]
                 },
-                carNoList:['鍏ㄩ儴','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24'],
-                carTimeList:['鍏ㄩ儴','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24'],
-                carStateList:['鍏ㄩ儴','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24','K24'],
-                audioList:[
-                    {name: '鐜嬪皬铏�1', size:'100MB', tag:'鐏溅鍑虹珯', createDate: '2016-05-02', editDate:'2016-05-02'},
-                    {name: '鐜嬪皬铏�2', size:'100MB', tag:'鐏溅鍑虹珯', createDate: '2016-05-02', editDate:'2016-05-02'},
-                    {name: '鐜嬪皬铏�3', size:'100MB', tag:'鐏溅鍑虹珯', createDate: '2016-05-02', editDate:'2016-05-02'},
-                    {name: '鐜嬪皬铏�4', size:'100MB', tag:'鐏溅鍑虹珯', createDate: '2016-05-02', editDate:'2016-05-02'},
-                    {name: '鐜嬪皬铏�5', size:'100MB', tag:'鐏溅鍑虹珯', createDate: '2016-05-02', editDate:'2016-05-02'},
-                    {name: '鐜嬪皬铏�6', size:'100MB', tag:'鐏溅鍑虹珯', createDate: '2016-05-02', editDate:'2016-05-02'},
-                    {name: '鐜嬪皬铏�7', size:'100MB', tag:'鐏溅鍑虹珯', createDate: '2016-05-02', editDate:'2016-05-02'}
-                ]
+                carNoList:[],
+                carTimeList:[],
+                carStateList:[],
             }
         },
         computed:{
@@ -245,7 +495,70 @@
                 return Math.ceil(this.pageInfo.total/this.pageData.pageSize)
             }
         },
+        watch:{
+          pageData:{
+              handler(){
+                  this.searchCar();
+              },
+              deep:true,
+              immediate:true
+          }
+        },
+        mounted(){
+            this.trainList();
+        },
         methods:{
+            isFollowChange(item){
+                this.$confirm(`${item.IsFollowed===1?'纭畾鍙栨秷鍏虫敞鍚�?':'纭畾鍏虫敞鍚�?'}`, `${item.IsFollowed===1?'鏄惁鍙栨秷鍏虫敞?':'鏄惁鍏虫敞?'}`, {
+                    confirmButtonText: '纭畾',
+                    cancelButtonText: '鍙栨秷',
+                    type: `${item.IsFollowed===1?'warning':'info'}`
+                }).then(async () => {
+                    const {code,data}=await followAudioApi(item.ID);
+                    if(code===200){
+                        if(item.IsFollowed===1){
+                            this.$message.success('鍙栨秷鍏虫敞鎴愬姛');
+                        }else{
+                            this.$message.success('鍏虫敞鎴愬姛');
+                        }
+                        this.searchCar();
+                    }
+                }).catch(()=>{});
+            },
+            selTrain(car){
+                let searchIndex=-1;
+                this.tagList.forEach((item,index)=>{
+                   if((car.class===1&&item.label==='鏈鸿溅')||(car.class===2&&item.label==='杞︽')||(car.class===3&&item.label==='杞︾珯鍙�')){
+                       searchIndex=index;
+                   }
+                });
+                const obj ={value:car.name}
+                if(car.class===1){//鏈鸿溅鍙�
+                    obj.label='鏈鸿溅'
+                }else if(car.class===2){//杞︽
+                   obj.label='杞︽'
+                }else if(car.class===3){//杞︾珯鍙�
+                    obj.label='杞︾珯鍙�'
+                }
+                if(searchIndex==-1){
+                    this.tagList.push(obj);
+                }else{
+                    this.tagList.splice(searchIndex,1,obj);
+                }
+                this.searchCar();
+            },
+            async processAudio(audio){
+                const {code,data} =await audioInfoApi(audio.ID);
+                if(code===200){
+                    this.$refs.analysis.audio[0].title=data.name;
+                    this.$refs.analysis.audio[0].artist=data.driverNumber;
+                    this.$refs.analysis.audio[0].url=`http://smartai.com:7013/api-sa/v1/audio/download?id=${audio.ID}`;
+                    this.modalAudio=true;
+                    this.lookAudio={...data};
+                }else{
+                    this.lookAudio={...audio};
+                }
+            },
             handleSizeChange(pageSize){
                 this.pageData.pageSize=pageSize;
             },
@@ -256,8 +569,51 @@
               this.carNoBtn.manySel=true;
               this.carNoBtn.moreStatus=true;
             },
-            searchCar(){
-
+            async searchCar(){
+                const params={...this.pageData,keyword:this.whereTrain.keyword}
+                if(this.whereTrain.isFollowed){
+                    params.isFollowed=this.whereTrain.isFollowed;
+                }
+                if(Array.isArray(this.searchDateTime)&&this.searchDateTime.length>1){
+                    params.beginTime=this.$moment(this.searchDateTime[0]).format('YYYY-MM-DDTHH:mm:ss.ms+08:00');
+                    params.endTime=this.$moment(this.searchDateTime[1]).format('YYYY-MM-DDTHH:mm:ss.ms+08:00');
+                }
+                // if(this.whereTrain.audioStatus){
+                //     params.audioStatus=this.whereTrain.audioStatus;
+                // }
+                this.tagList.forEach(item=>{
+                    if(item.label==='鏈鸿溅'){
+                        params.locomotiveNumber=item.value;
+                    }else if(item.label==='杞︽'){
+                        params.trainNumber =item .value;
+                    }else if(item.label === '杞︾珯鍙�'){
+                        params.stationNumber=item.value;
+                    }
+                })
+                const {code,data,total}=await audioListApi(params)
+                if(code===200){
+                    this.pageInfo.audioList=data;
+                    this.pageInfo.total=total;
+                }
+            },
+            async trainList(){
+              const {code,data} =await trainListApi({...this.trainPageData});
+              if(code===200){
+                  this.carNoList=[];
+                  this.carTimeList=[];
+                  this.carStateList=[];
+                  if(Array.isArray(data)){
+                      data.forEach(item=>{
+                          if(item.class===1){//鏈鸿溅鍙�
+                              this.carNoList.push(item);
+                          }else if(item.class===2){//杞︽
+                              this.carTimeList.push(item);
+                          }else if(item.class===3){//鏈鸿溅绔�
+                              this.carStateList.push(item)
+                          }
+                      });
+                  }
+              }
             },
             cancelManySel(){
               this.carNoBtn.manySel=false;
@@ -265,15 +621,50 @@
             },
             cancelSel(){
                 this.tagList=[];
+                this.searchCar();
             },
             closeTag(index){
                 this.tagList.splice(index,1);
+                this.searchCar();
             }
         }
     }
 </script>
 
 <style scoped lang="scss">
+.top-container  {
+  margin: 20px;
+  min-height: 30vh
+}
+.search{
+  ::v-deep .el-input-group__append button.el-button {
+    background-color: #2d52d7;
+    height: 34px;
+  }
+}
+.bottom-container{
+  margin: 20px;
+  min-height: 40vh;
+}
+.carNo-body{
+  margin-top: 10px;
+}
+.carNo-body div{
+  margin-top: 3px;
+}
+.carNo-sty1{
+  color:#95a0b9;
+}
+.carNo-sty2{
+  color: #425277;
+  font-weight: bold;
+  padding-left: 6px;
+}
+
+
+
+    /*   */
+
     .show-sel-tag{
         display: flex;
         justify-content: space-between;
@@ -282,20 +673,24 @@
         }
     }
     .sel-filter{
+      border-bottom: 1px solid lightgray;
+      padding-bottom: 10px;
         margin-top: 20px;
         .item-car-no{
             display: flex;
             justify-content: space-between;
             line-height: 40px;
             .title{
-                padding-left: 20px;
+                //padding-left: 5px;
                 width: 10%;
-                background-color: lightgray;
+              color:  #2d52d7;
+              font-weight: bold;
+                //background-color: lightgray;
             }
             .list{
                 display: flex;
                 width: 90%;
-                border:1px solid lightgray ;
+                //border:1px solid lightgray ;
                 .default{
                     width: 80%;
                     display: flex;
@@ -389,19 +784,23 @@
                         color: red;
                     }
                 }
-                .tag{
+                .tag,.tag-no{
                     display: flex;
                     justify-content: start;
-                    margin-bottom: 30px;
+                    margin-bottom: 20px;
                     div{
                         width: 70px;
                         font-size: 12px;
-                        background-color: rgba(242, 242, 242, 1);
                         margin-left: 10px;
                         text-align: center;
                         color: gray;
                     }
                 }
+                .tag{
+                    div{
+                        background-color: rgba(242, 242, 242, 1);
+                    }
+                }
             }
         }
     }

--
Gitblit v1.8.0