123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- <template>
- <div class="app-container">
- <div class="search">
- <el-date-picker v-model="table.parammaps.inputDatetime" type="daterange" class="inputDatetime filter-item" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker>
- <el-input v-model="table.parammaps.tname" placeholder="推料车" style="width: 180px;" class="filter-item" clearable />
- <el-button class="successBorder" @click="handleRefresh">重置</el-button>
- <el-button class="successBorder" @click="form_search">查询</el-button>
- </div>
- <div class="table">
- <el-table
- :key="tableKey"
- ref="table"
- v-loading="listLoading"
- element-loading-text="给我一点时间"
- :data="list"
- border
- fit
- highlight-current-row
- style="width: 100%;"
- :row-style="rowStyle"
- :cell-style="cellStyle"
- class="elTable table-fixed"
- :max-height="myHeight"
- >
- <el-table-column label="序号" align="center" type="index" width="50px" />
- <el-table-column label="推料车" min-width="100px" align="center" prop="tname" />
- <el-table-column label="备注" min-width="100px" align="center" prop="remark" />
- <el-table-column label="开始时间" min-width="100px" align="center" prop="startdate" />
- <el-table-column label="结束时间" min-width="100px" align="center" prop="enddate" />
- <el-table-column label="运行时间" min-width="100px" align="center" prop="date" />
- <el-table-column label="运行轨迹" align="center" width="80" class-name="small-padding fixed-width" fixed="right">
- <template slot-scope="{row}">
- <el-button v-if="isRoleEdit" class="miniSuccess" @click="handleRunning_trajectory(row)">查看</el-button>
- </template>
- </el-table-column>
- </el-table>
- <span v-if="listLoading == false" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{total }}条</span>
- </div>
- <el-dialog :visible.sync="run.dialogFormVisible" :close-on-click-modal="false" width="50%">
- <template slot="title">
- <div class="avue-crud__dialog__header">
- <span class="el-dialog__title">
- <span style="display:inline-block;width:3px;height:20px;margin-right:5px; float: left;margin-top:2px" />
- 运行轨迹
- </span>
- <div class="avue-crud__dialog__menu" @click="dialogFull? dialogFull=false: dialogFull=true">
- <svg-icon v-if="dialogFull" icon-class="exit-fullscreen" />
- <svg-icon v-else icon-class="fullscreen" />
- </div>
- </div>
- </template>
- <div ref="map" class="map-container">
- <!-- <img src="'https://inews.gtimg.com/om_bt/OtxRSLxjDKPT0ajd72ZeQk6IrtFinjJu7g5Nb9oCkI6SoAA/641'" alt=""> -->
- </div>
- <div slot="footer" class="dialog-footer">
- <el-button class="cancelClose1" @click="run.dialogFormVisible = false;getList()">关闭</el-button>
- </div>
- </el-dialog>
- </div>
- </template>
- <script>
- import { GetDataByName, postJson,getJson, formatNum, checkButtons } from '@/api/common'
- import { parseTime} from '@/utils/index.js'
- import { MessageBox } from 'element-ui'
- import Cookies from 'js-cookie'
- import axios from 'axios'
- import { getToken } from '@/utils/auth'
- import { createApp } from 'vue';
- import AMapLoader from '@amap/amap-jsapi-loader';
- import vLoUrl from '../../../assets/images/logo.png';
- window._AMapSecurityConfig = {
- securityJsCode: '0133db0118e961029dc45a2d5039cbb1' // '「申请的安全密钥」',
- }
- export default {
- name: 'Pushingplan',
- data() {
- return {
- table: {
- name:'getTmrEqipmemtList',
- parammaps: {
- // pastureid: Cookies.get('pastureid'),
- tname:'',
- startdate:'',
- enddate: '',
- inputDatetime: null,
- // startdate: parseTime(new Date(), '{y}-{m}-{d}'),
- // enddate: parseTime(new Date(), '{y}-{m}-{d}'),
- // inputDatetime: [new Date(), new Date()],
- },
- },
- tableKey: 0,
- list: [],
- total: 0,
- listLoading: true,
- run: {
- dialogFormVisible: false,
- dialogStatus: '',
- temp:{}
- },
- dialogFull: false,
- isRoleEdit: [],
- isokDisable: false,
- rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
- cellStyle: { padding: 0 + 'px' },
- myHeight: document.documentElement.clientHeight - 85- 150,
- map: null,
- path:[],
- // path: [
- // [116.405285, 39.904989], // 示例轨迹点1
- // [116.407516, 39.904717], // 示例轨迹点2
- // [3118.407366, 39.91344], // 示例轨迹点3
- // // 添加更多轨迹点
- // ],
- index: 0,
- latitude: 40.878730, // 实景图所在位置的纬度
- longitude: 113.216553, // 实景图所在位置的经度
- zoom: 17, // 实景
- apiKey:'fb6a0e88dbad4931d96a121bcf7c4442',
- vLoUrl
- }
- },
- mounted() {
- // this.initMap();
- },
- created() {
- this.getButtons()
- this.getList()
- },
- methods: {
- getButtons() {
- const Edit = 'Pushingplan'
- const isRoleEdit = checkButtons(JSON.parse(sessionStorage.getItem('buttons')), Edit)
- this.isRoleEdit = isRoleEdit
- },
- getList() {
- this.listLoading = true
- let url = '/authdata/GetDataByName'
- let data = this.table
- if(this.table.parammaps.inputDatetime !== null){
- data.parammaps.startdate = parseTime(this.table.parammaps.inputDatetime[0], '{y}-{m}-{d}')
- data.parammaps.enddate = parseTime(this.table.parammaps.inputDatetime[1], '{y}-{m}-{d}')
- }else{
- data.parammaps.startdate = ''
- data.parammaps.enddate = ''
- }
- postJson(url,data).then(response => {
- console.log('table数据', response.data.list)
- if (response.data.list !== null) {
- this.list = response.data.list
- } else {
- this.list = []
- }
- this.total = response.data.total
- setTimeout(() => {
- this.listLoading = false
- }, 100)
- })
- },
- form_search() {
- console.log('点击了查询')
- this.getList()
- },
- handleRefresh(){
- this.table.parammaps.tname = ''
- this.table.parammaps.inputDatetime = null
- this.getList()
- },
- handleRunning_trajectory(row){
- console.log('点击了运行轨迹')
- this.run.dialogStatus = 'run'
- this.run.dialogFormVisible = true
- this.run.temp = Object.assign({}, row)
- this.getRuningList()
- },
- getRuningList(){
- let url = '/authdata/equipment/muster'
- let data = '?id='+this.run.temp.id
- getJson(url,data).then(response => {
- // path
- // console.log('table数据', response.data.list)
- if (response.data !== null) {
- let arrList = []
- for(let i=0;i<response.data.length;i++){
- let list = []
- list.push(parseFloat(response.data[i].N),parseFloat(response.data[i].A))
- arrList.push(list)
- }
- // console.log(JSON.stringify(arrList),'arrList')
- this.path = arrList
- this.longitude = this.path[0][0] // 实景图所在位置的经度
- this.latitude = this.path[0][1] // 实景图所在位置的纬度
- // zoom: 15, // 实景
- } else {
- this.path = []
- }
- this.initMap();
- })
- },
- async initMap() {
- await AMapLoader.load({
- key: 'fb6a0e88dbad4931d96a121bcf7c4442', // 替换为你的高德地图API Key
- version: '2.0',
- plugins: [],
- }).then(()=>{
- })
- this.map = new window.AMap.Map(this.$refs.map, {
- zoom: 16,
- center: this.path[0],
- // layers: [
- // new window.AMap.TileLayer.Satellite() // 使用卫星地图图层
- // ]
- });
- const startMarker = new window.AMap.Marker({
- position: this.path[0], // 起始点位置
- map: this.map,
- icon: 'https://webapi.amap.com/theme/v1.3/markers/n/start.png', // 起始点图标
- });
- const endMarker = new window.AMap.Marker({
- position: this.path[this.path.length - 1],
- map: this.map,
- icon: 'https://webapi.amap.com/theme/v1.3/markers/n/end.png', // 终点图标
- });
- // var imageLayer = new AMap.ImageLayer({
- // url: 'https://inews.gtimg.com/om_bt/OtxRSLxjDKPT0ajd72ZeQk6IrtFinjJu7g5Nb9oCkI6SoAA/641',
- // // bounds: new AMap.Bounds(
- // // [116.327911, 39.939229],
- // // [116.342659, 39.946275]
- // // ),
- // // zooms: [1, 50]
- // });
- // var imageLayers = new AMap.ImageLayer({
- // url: 'https://inews.gtimg.com/om_bt/OtxRSLxjDKPT0ajd72ZeQk6IrtFinjJu7g5Nb9oCkI6SoAA/641',
- // // url: this.vLoUrl,
- // bounds: new AMap.Bounds(
- // [121.97563085677434,27.92512942520125],
- // [131.551866454716, 36.16701972816233]
- // ),
- // zooms: [1, 50]
- // });
- // this.map.add([imageLayer,imageLayers])
- this.drawPath();
- },
- drawPath() {
- const polyline = new window.AMap.Polyline({
- path: this.path,
- strokeStyle: 'red',
- strokeColor: '#3366FF',
- strokeOpacity: 1,
- strokeWeight: 3,
- map: this.map,
- dirArrowStyle: true,
- });
- // 调整地图视图以适应轨迹
- this.map.setFitView();
- this.map.setZoom(16)
- },
- }
- }
- </script>
- <style lang="scss" scoped>
- .map-container {
- height: 400px;
- width: 800px;
- }
- .search {
- clear: both;
- }
- .table {
- margin-top: 10px;
- }
- .el-tag{margin-right: 5px;}
- </style>
- <style lang="scss">
- .red-row{
- background: #fde2e2 !important;
- }
- </style>
|