| | |
| | | <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"> 机车号:</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"> 车次:</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"> 车站号:</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="正常"></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">正常</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> </div> |
| | | <div> </div> |
| | | <div> </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" |
| | |
| | | :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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | | <!–<el-button size="mini" @click="manySelect">多选<i class="el-icon-plus"></i></el-button>–> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <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> |
| | |
| | | <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="正常"></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="正常"></el-option> |
| | | <el-option :value="4" label="异常"></el-option> |
| | | </el-select>–> |
| | | </div> |
| | | <div class="icon"> |
| | | <div @click="audioListType='table'" :class="{'border-cla':audioListType==='table'}"> |
| | |
| | | </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> |
| | |
| | | <div class="body"> |
| | | <div class="carNo"> |
| | | <div> |
| | | 车号:SS4B115<br/> |
| | | 车次:8040<br> |
| | | 时间:2020-09-21 20:45:08<br/> |
| | | 司机:A20<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> |
| | | <!–<span v-if="audio.audioStatus===0">上传中</span> |
| | | <span v-else-if="audio.audioStatus===1" style="color: green">正常</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"></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>火车鸣笛</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> </div> |
| | | <div> </div> |
| | | <div> </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> |
| | |
| | | </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:{ |
| | |
| | | }, |
| | | 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, |
| | |
| | | }, |
| | | carTimeBtn:false, |
| | | carStateBtn:false, |
| | | whereCar:{ |
| | | whereTrain:{ |
| | | keyword:'', |
| | | date:'' |
| | | // audioStatus:'', |
| | | isFollowed:0 |
| | | }, |
| | | tagList:[ |
| | | {filterType:'车次',value:'全部'}, |
| | | {filterType:'车号',value:'全部'}, |
| | | {filterType:'车站号',value:'全部'} |
| | | ], |
| | | searchDateTime:[], |
| | | tagList:[], |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | |
| | | } |
| | | }] |
| | | }, |
| | | 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:{ |
| | |
| | | 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; |
| | | }, |
| | |
| | | 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; |
| | |
| | | }, |
| | | 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; |
| | |
| | | } |
| | | } |
| | | .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; |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |