|  |  | @ -0,0 +1,243 @@ | 
			
		
	
		
			
				
					|  |  |  | <template> | 
			
		
	
		
			
				
					|  |  |  | <a-card :bordered="false"> | 
			
		
	
		
			
				
					|  |  |  | <!-- 查询区域 --> | 
			
		
	
		
			
				
					|  |  |  | <div class="table-page-search-wrapper"> | 
			
		
	
		
			
				
					|  |  |  | <a-form layout="inline" @keyup.enter.native="searchQuery"> | 
			
		
	
		
			
				
					|  |  |  | <a-row :gutter="24"> | 
			
		
	
		
			
				
					|  |  |  | <a-col :xl="6" :lg="7" :md="8" :sm="24"> | 
			
		
	
		
			
				
					|  |  |  | <a-form-item label="地点名字"> | 
			
		
	
		
			
				
					|  |  |  | <a-input placeholder="请输入地点名字" v-model="queryParam.spotName"></a-input> | 
			
		
	
		
			
				
					|  |  |  | </a-form-item> | 
			
		
	
		
			
				
					|  |  |  | </a-col> | 
			
		
	
		
			
				
					|  |  |  | <a-col :xl="6" :lg="7" :md="8" :sm="24"> | 
			
		
	
		
			
				
					|  |  |  | <a-form-item label="地点所属景区"> | 
			
		
	
		
			
				
					|  |  |  | <j-dict-select-tag placeholder="请选择地点所属景区" v-model="queryParam.areaId" dictCode="travel_area,area_name,id"/> | 
			
		
	
		
			
				
					|  |  |  | </a-form-item> | 
			
		
	
		
			
				
					|  |  |  | </a-col> | 
			
		
	
		
			
				
					|  |  |  | <template v-if="toggleSearchStatus"> | 
			
		
	
		
			
				
					|  |  |  | <a-col :xl="6" :lg="7" :md="8" :sm="24"> | 
			
		
	
		
			
				
					|  |  |  | <a-form-item label="地点类型"> | 
			
		
	
		
			
				
					|  |  |  | <a-input placeholder="请输入地点类型" v-model="queryParam.categoryId"></a-input> | 
			
		
	
		
			
				
					|  |  |  | </a-form-item> | 
			
		
	
		
			
				
					|  |  |  | </a-col> | 
			
		
	
		
			
				
					|  |  |  | </template> | 
			
		
	
		
			
				
					|  |  |  | <a-col :xl="6" :lg="7" :md="8" :sm="24"> | 
			
		
	
		
			
				
					|  |  |  | <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> | 
			
		
	
		
			
				
					|  |  |  | <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> | 
			
		
	
		
			
				
					|  |  |  | <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> | 
			
		
	
		
			
				
					|  |  |  | <a @click="handleToggleSearch" style="margin-left: 8px"> | 
			
		
	
		
			
				
					|  |  |  | {{ toggleSearchStatus ? '收起' : '展开' }} | 
			
		
	
		
			
				
					|  |  |  | <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> | 
			
		
	
		
			
				
					|  |  |  | </a> | 
			
		
	
		
			
				
					|  |  |  | </span> | 
			
		
	
		
			
				
					|  |  |  | </a-col> | 
			
		
	
		
			
				
					|  |  |  | </a-row> | 
			
		
	
		
			
				
					|  |  |  | </a-form> | 
			
		
	
		
			
				
					|  |  |  | </div> | 
			
		
	
		
			
				
					|  |  |  | <!-- 查询区域-END --> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | <!-- 操作按钮区域 --> | 
			
		
	
		
			
				
					|  |  |  | <div class="table-operator"> | 
			
		
	
		
			
				
					|  |  |  | <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | 
			
		
	
		
			
				
					|  |  |  | <a-button type="primary" icon="download" @click="handleExportXls('地点表')">导出</a-button> | 
			
		
	
		
			
				
					|  |  |  | <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> | 
			
		
	
		
			
				
					|  |  |  | <a-button type="primary" icon="import">导入</a-button> | 
			
		
	
		
			
				
					|  |  |  | </a-upload> | 
			
		
	
		
			
				
					|  |  |  | <!-- 高级查询区域 --> | 
			
		
	
		
			
				
					|  |  |  | <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> | 
			
		
	
		
			
				
					|  |  |  | <a-dropdown v-if="selectedRowKeys.length > 0"> | 
			
		
	
		
			
				
					|  |  |  | <a-menu slot="overlay"> | 
			
		
	
		
			
				
					|  |  |  | <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> | 
			
		
	
		
			
				
					|  |  |  | </a-menu> | 
			
		
	
		
			
				
					|  |  |  | <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> | 
			
		
	
		
			
				
					|  |  |  | </a-dropdown> | 
			
		
	
		
			
				
					|  |  |  | </div> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | <!-- table区域-begin --> | 
			
		
	
		
			
				
					|  |  |  | <div> | 
			
		
	
		
			
				
					|  |  |  | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | 
			
		
	
		
			
				
					|  |  |  | <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | 
			
		
	
		
			
				
					|  |  |  | <a style="margin-left: 24px" @click="onClearSelected">清空</a> | 
			
		
	
		
			
				
					|  |  |  | </div> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | <a-table | 
			
		
	
		
			
				
					|  |  |  | ref="table" | 
			
		
	
		
			
				
					|  |  |  | size="middle" | 
			
		
	
		
			
				
					|  |  |  | :scroll="{x:true}" | 
			
		
	
		
			
				
					|  |  |  | bordered | 
			
		
	
		
			
				
					|  |  |  | rowKey="id" | 
			
		
	
		
			
				
					|  |  |  | :columns="columns" | 
			
		
	
		
			
				
					|  |  |  | :dataSource="dataSource" | 
			
		
	
		
			
				
					|  |  |  | :pagination="ipagination" | 
			
		
	
		
			
				
					|  |  |  | :loading="loading" | 
			
		
	
		
			
				
					|  |  |  | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | 
			
		
	
		
			
				
					|  |  |  | class="j-table-force-nowrap" | 
			
		
	
		
			
				
					|  |  |  | @change="handleTableChange"> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | <template slot="htmlSlot" slot-scope="text"> | 
			
		
	
		
			
				
					|  |  |  | <div v-html="text"></div> | 
			
		
	
		
			
				
					|  |  |  | </template> | 
			
		
	
		
			
				
					|  |  |  | <template slot="imgSlot" slot-scope="text,record"> | 
			
		
	
		
			
				
					|  |  |  | <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | 
			
		
	
		
			
				
					|  |  |  | <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> | 
			
		
	
		
			
				
					|  |  |  | </template> | 
			
		
	
		
			
				
					|  |  |  | <template slot="fileSlot" slot-scope="text"> | 
			
		
	
		
			
				
					|  |  |  | <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | 
			
		
	
		
			
				
					|  |  |  | <a-button | 
			
		
	
		
			
				
					|  |  |  | v-else | 
			
		
	
		
			
				
					|  |  |  | :ghost="true" | 
			
		
	
		
			
				
					|  |  |  | type="primary" | 
			
		
	
		
			
				
					|  |  |  | icon="download" | 
			
		
	
		
			
				
					|  |  |  | size="small" | 
			
		
	
		
			
				
					|  |  |  | @click="downloadFile(text)"> | 
			
		
	
		
			
				
					|  |  |  | 下载 | 
			
		
	
		
			
				
					|  |  |  | </a-button> | 
			
		
	
		
			
				
					|  |  |  | </template> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | <span slot="action" slot-scope="text, record"> | 
			
		
	
		
			
				
					|  |  |  | <a @click="handleEdit(record)">编辑</a> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | <a-divider type="vertical" /> | 
			
		
	
		
			
				
					|  |  |  | <a-dropdown> | 
			
		
	
		
			
				
					|  |  |  | <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> | 
			
		
	
		
			
				
					|  |  |  | <a-menu slot="overlay"> | 
			
		
	
		
			
				
					|  |  |  | <a-menu-item> | 
			
		
	
		
			
				
					|  |  |  | <a @click="handleDetail(record)">详情</a> | 
			
		
	
		
			
				
					|  |  |  | </a-menu-item> | 
			
		
	
		
			
				
					|  |  |  | <a-menu-item> | 
			
		
	
		
			
				
					|  |  |  | <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> | 
			
		
	
		
			
				
					|  |  |  | <a>删除</a> | 
			
		
	
		
			
				
					|  |  |  | </a-popconfirm> | 
			
		
	
		
			
				
					|  |  |  | </a-menu-item> | 
			
		
	
		
			
				
					|  |  |  | </a-menu> | 
			
		
	
		
			
				
					|  |  |  | </a-dropdown> | 
			
		
	
		
			
				
					|  |  |  | </span> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | </a-table> | 
			
		
	
		
			
				
					|  |  |  | </div> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | <travel-spot-modal ref="modalForm" @ok="modalFormOk"></travel-spot-modal> | 
			
		
	
		
			
				
					|  |  |  | </a-card> | 
			
		
	
		
			
				
					|  |  |  | </template> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | <script> | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | import '@/assets/less/TableExpand.less' | 
			
		
	
		
			
				
					|  |  |  | import { mixinDevice } from '@/utils/mixin' | 
			
		
	
		
			
				
					|  |  |  | import { JeecgListMixin } from '@/mixins/JeecgListMixin' | 
			
		
	
		
			
				
					|  |  |  | import TravelSpotModal from './modules/TravelSpotModal' | 
			
		
	
		
			
				
					|  |  |  | import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | export default { | 
			
		
	
		
			
				
					|  |  |  | name: 'TravelSpotList', | 
			
		
	
		
			
				
					|  |  |  | mixins:[JeecgListMixin, mixinDevice], | 
			
		
	
		
			
				
					|  |  |  | components: { | 
			
		
	
		
			
				
					|  |  |  | TravelSpotModal | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | data () { | 
			
		
	
		
			
				
					|  |  |  | return { | 
			
		
	
		
			
				
					|  |  |  | description: '地点表管理页面', | 
			
		
	
		
			
				
					|  |  |  | // 表头 | 
			
		
	
		
			
				
					|  |  |  | columns: [ | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title: '#', | 
			
		
	
		
			
				
					|  |  |  | dataIndex: '', | 
			
		
	
		
			
				
					|  |  |  | key:'rowIndex', | 
			
		
	
		
			
				
					|  |  |  | width:60, | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | customRender:function (t,r,index) { | 
			
		
	
		
			
				
					|  |  |  | return parseInt(index)+1; | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title:'地点名字', | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | dataIndex: 'spotName' | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title:'地点图片', | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | dataIndex: 'spotImage', | 
			
		
	
		
			
				
					|  |  |  | scopedSlots: {customRender: 'imgSlot'} | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title:'地点坐标_经度', | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | dataIndex: 'spotLongitude' | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title:'地点坐标_纬度', | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | dataIndex: 'spotLatitude' | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title:'地点所属景区', | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | dataIndex: 'areaId_dictText' | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title:'地点类型', | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | dataIndex: 'categoryId' | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title:'地点详情', | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | dataIndex: 'spotDetail', | 
			
		
	
		
			
				
					|  |  |  | scopedSlots: {customRender: 'htmlSlot'} | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title:'语音讲解内容', | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | dataIndex: 'spotAudio' | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  | title: '操作', | 
			
		
	
		
			
				
					|  |  |  | dataIndex: 'action', | 
			
		
	
		
			
				
					|  |  |  | align:"center", | 
			
		
	
		
			
				
					|  |  |  | fixed:"right", | 
			
		
	
		
			
				
					|  |  |  | width:147, | 
			
		
	
		
			
				
					|  |  |  | scopedSlots: { customRender: 'action' } | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | ], | 
			
		
	
		
			
				
					|  |  |  | url: { | 
			
		
	
		
			
				
					|  |  |  | list: "/travelSpot/travelSpot/list", | 
			
		
	
		
			
				
					|  |  |  | delete: "/travelSpot/travelSpot/delete", | 
			
		
	
		
			
				
					|  |  |  | deleteBatch: "/travelSpot/travelSpot/deleteBatch", | 
			
		
	
		
			
				
					|  |  |  | exportXlsUrl: "/travelSpot/travelSpot/exportXls", | 
			
		
	
		
			
				
					|  |  |  | importExcelUrl: "travelSpot/travelSpot/importExcel", | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | dictOptions:{}, | 
			
		
	
		
			
				
					|  |  |  | superFieldList:[], | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | created() { | 
			
		
	
		
			
				
					|  |  |  | this.getSuperFieldList(); | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | computed: { | 
			
		
	
		
			
				
					|  |  |  | importExcelUrl: function(){ | 
			
		
	
		
			
				
					|  |  |  | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | methods: { | 
			
		
	
		
			
				
					|  |  |  | initDictConfig(){ | 
			
		
	
		
			
				
					|  |  |  | }, | 
			
		
	
		
			
				
					|  |  |  | getSuperFieldList(){ | 
			
		
	
		
			
				
					|  |  |  | let fieldList=[]; | 
			
		
	
		
			
				
					|  |  |  | fieldList.push({type:'string',value:'spotName',text:'地点名字',dictCode:''}) | 
			
		
	
		
			
				
					|  |  |  | fieldList.push({type:'string',value:'spotImage',text:'地点图片',dictCode:''}) | 
			
		
	
		
			
				
					|  |  |  | fieldList.push({type:'BigDecimal',value:'spotLongitude',text:'地点坐标_经度',dictCode:''}) | 
			
		
	
		
			
				
					|  |  |  | fieldList.push({type:'BigDecimal',value:'spotLatitude',text:'地点坐标_纬度',dictCode:''}) | 
			
		
	
		
			
				
					|  |  |  | fieldList.push({type:'string',value:'areaId',text:'地点所属景区',dictCode:"travel_area,area_name,id"}) | 
			
		
	
		
			
				
					|  |  |  | fieldList.push({type:'int',value:'categoryId',text:'地点类型',dictCode:''}) | 
			
		
	
		
			
				
					|  |  |  | fieldList.push({type:'Text',value:'spotDetail',text:'地点详情',dictCode:''}) | 
			
		
	
		
			
				
					|  |  |  | fieldList.push({type:'Text',value:'spotAudio',text:'语音讲解内容',dictCode:''}) | 
			
		
	
		
			
				
					|  |  |  | this.superFieldList = fieldList | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | </script> | 
			
		
	
		
			
				
					|  |  |  | <style scoped> | 
			
		
	
		
			
				
					|  |  |  | @import '~@assets/less/common.less'; | 
			
		
	
		
			
				
					|  |  |  | </style> |