You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
486 lines
13 KiB
486 lines
13 KiB
import {getTreeList, getRes} from "@/api/basicResources/tourBasic";
|
|
import {getCustomersSource} from "@/api/ticketing/sellTouristsPortrait";
|
|
import TreeBox from "@/components/CommonComponents/PublicCoponents/editTree/TreeBox";
|
|
import autoSelect from "@/components/CommonComponents/PublicCoponents/slsect/AutoSelect";
|
|
import RLocation from "@/components/CommonComponents/PublicCoponents/map/RLocation";
|
|
import NewLocation from "@/components/CommonComponents/PublicCoponents/map/NewLocation";
|
|
import TreeSelect from "@riophae/vue-treeselect";
|
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
|
|
|
|
|
|
|
import imageUpload from "@/components/ImageUpload";
|
|
import fileUpload from "@/components/FileUpload";
|
|
import Edit from '@/components/Editor/index';
|
|
import item from "@/layout/components/Sidebar/Item";
|
|
import {getRegion} from "@/api/menu";
|
|
|
|
export default {
|
|
components: {TreeBox, autoSelect, RLocation, imageUpload, fileUpload, Edit,NewLocation,TreeSelect},
|
|
dicts: ['search_drop_down','resource_info','boat_type','led_type','video_type','exhibit_category','exhibit_quality','exhibit_dynasty','flower_level','in_and_out_direction','carpark_type','toilet_type','carpark_level','toilet_level','technology_level','artgallery_level','gymnasium_type','library_type','memorialhall_type','cultural_type','artgallery_type','museum_type','parking_available','food_level','hotel_level','rural_level','led_type','broadcast_type','video_type','carpark_type','toilet_type','gymnasium_type','library_type','memorialhall_type','cultural_type','artgallery_type','museum_type','travel_type','shopping_type','food_type','homestay_type','hotel_type','fun_type','rural_type','source_of_tour_guide', 'leader_or_not', 'sys_user_sex', 'guide_languages', 'guide_level', 'car_color_dict', 'car_number_color_dict', 'bus_type', 'sys_show_hide', 'dev_brand_dict', 'operating_state', 'dev_model_dict', 'scenic_level', 'scenic_type', 'status', 'agency_type', 'cultural_center_level', 'cultural_type', 'construction', 'public_service_resource_level'],
|
|
data() {
|
|
return {
|
|
//全国省市分
|
|
region:[],
|
|
//选择的左侧类型
|
|
idType:null,
|
|
idTypes:[],
|
|
//tree数据格式
|
|
treeData: [
|
|
{
|
|
label: '一级 1',
|
|
children: [{
|
|
label: '二级 1-1',
|
|
children: [{
|
|
label: '三级 1-1-1'
|
|
}]
|
|
}]
|
|
}, {
|
|
label: '一级 2',
|
|
children: [{
|
|
label: '二级 2-1',
|
|
children: [{
|
|
label: '三级 2-1-1'
|
|
}]
|
|
}, {
|
|
label: '二级 2-2',
|
|
children: [{
|
|
label: '三级 2-2-1'
|
|
}]
|
|
}]
|
|
}, {
|
|
label: '一级 3',
|
|
children: [{
|
|
label: '二级 3-1',
|
|
children: [{
|
|
label: '三级 3-1-1'
|
|
}]
|
|
}, {
|
|
label: '二级 3-2',
|
|
children: [{
|
|
label: '三级 3-2-1'
|
|
}]
|
|
}]
|
|
}],
|
|
defaultProps: {
|
|
children: 'children',
|
|
label: 'label'
|
|
},
|
|
//左侧类型名
|
|
typeName: '',
|
|
//左侧类型
|
|
type: null,
|
|
groupData: [],
|
|
//省
|
|
provinceOptions: [],
|
|
//市
|
|
cityOptions: [],
|
|
//县
|
|
countryOptions: [],
|
|
//资源类型下拉
|
|
listByInResources: [],
|
|
|
|
rules:{
|
|
resourceName:[
|
|
{required: true,message:'资源名称不能为空',trigger:'blur'}
|
|
],
|
|
sort:[
|
|
{required: true,message:'排序编码不能为空',trigger:'blur'}
|
|
],
|
|
agency:[
|
|
{required: true,message:'注册机构不能为空',trigger:'blur'}
|
|
],
|
|
region:[
|
|
{required: true,message:'行政管理区域不能为空',trigger:'blur'}
|
|
],
|
|
maxLoad:[
|
|
{required: true,message:'最大承载量不能为空',trigger:'blur'}
|
|
],
|
|
province:[
|
|
{required: true,message:'地理区划不能为空',trigger:'change'}
|
|
],
|
|
imageUrl:[
|
|
{required: true,message:'请上传图片',trigger:'blur'}
|
|
],
|
|
grade:[
|
|
{required: true,message:'资源等级不能为空',trigger:'blur'}
|
|
],
|
|
}
|
|
}
|
|
},
|
|
filters: {
|
|
//处理资源名称
|
|
processingTypesName(val) {
|
|
switch (val) {
|
|
case 'scenic':
|
|
return '景区'
|
|
case 'rural':
|
|
return '乡村游'
|
|
case 'fun':
|
|
return '娱乐'
|
|
case 'hotel':
|
|
return '酒店'
|
|
case 'homestay':
|
|
return '民宿'
|
|
case 'food':
|
|
return '美食'
|
|
case 'shopping':
|
|
return '购物'
|
|
case 'travel':
|
|
return '旅行社'
|
|
case 'museum':
|
|
return '博物馆'
|
|
case 'artgallery':
|
|
return '美术馆'
|
|
case 'cultural':
|
|
return '文化馆'
|
|
case 'memorialhall':
|
|
return '纪念馆'
|
|
case 'library':
|
|
return '图书馆'
|
|
case 'technology':
|
|
return '科技馆'
|
|
case 'gymnasium':
|
|
return '体育馆'
|
|
case 'toilet':
|
|
return '厕所'
|
|
case 'carpark':
|
|
return '停车场'
|
|
case 'bustop':
|
|
return '汽车站'
|
|
case 'railstation':
|
|
return '火车站'
|
|
case 'airport':
|
|
return '飞机场'
|
|
case 'charging':
|
|
return '充电站'
|
|
case 'gastation':
|
|
return '加油站'
|
|
case 'traffic':
|
|
return '交通站点'
|
|
case 'wharf':
|
|
return '游船码头'
|
|
case 'tourservice':
|
|
return '游客服务中心'
|
|
case 'entrepot':
|
|
return '游客集散中心'
|
|
case 'emergmange':
|
|
return '应急管理机构'
|
|
case 'medicala':
|
|
return '医疗救援机构'
|
|
case 'fireco':
|
|
return '消防机构'
|
|
case 'takerefuge':
|
|
return '避难场所'
|
|
case 'armed':
|
|
return '武警部队'
|
|
case 'spot':
|
|
return '游玩景点'
|
|
case 'ticket':
|
|
return '售票站点'
|
|
case 'inletexit':
|
|
return '出入口'
|
|
case 'cableway':
|
|
return '索道缆车'
|
|
case 'place':
|
|
return '公共场所'
|
|
case 'building':
|
|
return '建筑物'
|
|
case 'other':
|
|
return '其他'
|
|
case 'flower':
|
|
return '景区花卉'
|
|
case 'hall':
|
|
return '展厅'
|
|
case 'exhibit':
|
|
return '展品'
|
|
case 'collection':
|
|
return '藏品'
|
|
case 'video':
|
|
return '视频监控'
|
|
case 'passflow':
|
|
return '客流监控'
|
|
case 'broadcast':
|
|
return '语音广播'
|
|
case 'led':
|
|
return 'LED大屏'
|
|
case 'wifi':
|
|
return '无线WIFI'
|
|
case 'pole':
|
|
return '智慧灯杆'
|
|
case 'patrol':
|
|
return '巡更设备'
|
|
case 'report':
|
|
return '通讯设备'
|
|
case 'sos':
|
|
return 'SOS求助'
|
|
case 'vibe':
|
|
return '环境监测'
|
|
case 'geologi':
|
|
return '地质灾害监测'
|
|
case 'fire':
|
|
return '火灾监测'
|
|
case 'intrude':
|
|
return '入侵监测'
|
|
case 'bus':
|
|
return '旅游大巴'
|
|
case 'car':
|
|
return '交通车辆'
|
|
case 'boat':
|
|
return '游船游艇'
|
|
}
|
|
},
|
|
//处理语种
|
|
languageName(val) {
|
|
let arr = val.split(',')
|
|
const Arr = [
|
|
{
|
|
id: '1',
|
|
label: '普通话'
|
|
},
|
|
{
|
|
id: '2',
|
|
label: '日语'
|
|
},
|
|
{
|
|
id: '3',
|
|
label: '英语'
|
|
},
|
|
{
|
|
id: '4',
|
|
label: '德语'
|
|
},
|
|
{
|
|
id: '5',
|
|
label: '法语'
|
|
},
|
|
{
|
|
id: '6',
|
|
label: '其他'
|
|
},
|
|
]
|
|
return arr.flatMap(id => Arr.filter(obj => obj.id === id).map(obj => obj.label)).join(',');
|
|
}
|
|
},
|
|
computed: {
|
|
typesName() {
|
|
switch (this.form.type) {
|
|
case 'scenic':
|
|
return '景区'
|
|
case 'rural':
|
|
return '乡村游'
|
|
case 'fun':
|
|
return '娱乐'
|
|
case 'hotel':
|
|
return '酒店'
|
|
case 'homestay':
|
|
return '民宿'
|
|
case 'food':
|
|
return '美食'
|
|
case 'shopping':
|
|
return '购物'
|
|
case 'travel':
|
|
return '旅行社'
|
|
case 'museum':
|
|
return '博物馆'
|
|
case 'artgallery':
|
|
return '美术馆'
|
|
case 'cultural':
|
|
return '文化馆'
|
|
case 'memorialhall':
|
|
return '纪念馆'
|
|
case 'library':
|
|
return '图书馆'
|
|
case 'technology':
|
|
return '科技馆'
|
|
case 'gymnasium':
|
|
return '体育馆'
|
|
case 'toilet':
|
|
return '厕所'
|
|
case 'carpark':
|
|
return '停车场'
|
|
case 'bustop':
|
|
return '汽车站'
|
|
case 'railstation':
|
|
return '火车站'
|
|
case 'airport':
|
|
return '飞机场'
|
|
case 'charging':
|
|
return '充电站'
|
|
case 'gastation':
|
|
return '加油站'
|
|
case 'traffic':
|
|
return '交通站点'
|
|
case 'wharf':
|
|
return '游船码头'
|
|
case 'tourservice':
|
|
return '游客服务中心'
|
|
case 'entrepot':
|
|
return '游客集散中心'
|
|
case 'emergmange':
|
|
return '应急管理机构'
|
|
case 'medicala':
|
|
return '医疗救援机构'
|
|
case 'fireco':
|
|
return '消防机构'
|
|
case 'takerefuge':
|
|
return '避难场所'
|
|
case 'armed':
|
|
return '武警部队'
|
|
case 'spot':
|
|
return '游玩景点'
|
|
case 'ticket':
|
|
return '售票站点'
|
|
case 'inletexit':
|
|
return '出入口'
|
|
case 'cableway':
|
|
return '索道缆车'
|
|
case 'place':
|
|
return '公共场所'
|
|
case 'building':
|
|
return '建筑物'
|
|
case 'other':
|
|
return '其他'
|
|
case 'flower':
|
|
return '景区花卉'
|
|
case 'hall':
|
|
return '展厅'
|
|
case 'exhibit':
|
|
return '展品'
|
|
case 'collection':
|
|
return '藏品'
|
|
case 'video':
|
|
return '视频监控'
|
|
case 'passflow':
|
|
return '客流监控'
|
|
case 'broadcast':
|
|
return '语音广播'
|
|
case 'led':
|
|
return 'LED大屏'
|
|
case 'wifi':
|
|
return '无线WIFI'
|
|
case 'pole':
|
|
return '智慧灯杆'
|
|
case 'patrol':
|
|
return '巡更设备'
|
|
case 'report':
|
|
return '通讯设备'
|
|
case 'sos':
|
|
return 'SOS求助'
|
|
case 'vibe':
|
|
return '环境监测'
|
|
case 'geologi':
|
|
return '地质灾害监测'
|
|
case 'fire':
|
|
return '火灾监测'
|
|
case 'intrude':
|
|
return '入侵监测'
|
|
case 'bus':
|
|
return '旅游大巴'
|
|
case 'car':
|
|
return '交通车辆'
|
|
case 'boat':
|
|
return '游船游艇'
|
|
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
this.getCustomersSource(-1)
|
|
this.getRes()
|
|
this.getRegion()
|
|
},
|
|
methods: {
|
|
//资源类型下拉
|
|
getRes() {
|
|
getRes().then(val => {
|
|
this.listByInResources = val.data
|
|
})
|
|
},
|
|
//查左侧菜单
|
|
getTreeList(el) {
|
|
this.loading = true;
|
|
getTreeList(el).then(response => {
|
|
this.$nextTick(() => {
|
|
this.groupData = response.data
|
|
})
|
|
});
|
|
},
|
|
//选择树
|
|
selectTree(val) {
|
|
console.log('选择的左侧数据',val)
|
|
this.idType = val.code
|
|
let this_ = this
|
|
this_.queryParams.type = val.id
|
|
this_.type = val.id
|
|
this_.typeName = val.label
|
|
this.getList(val.code)
|
|
},
|
|
//省市县
|
|
getCustomersSource(el) {
|
|
let params = {
|
|
regionId: el
|
|
}
|
|
getCustomersSource(params).then(value => {
|
|
this.provinceOptions = value.rows
|
|
})
|
|
},
|
|
getCity(el) {
|
|
let params = {
|
|
regionId: el
|
|
}
|
|
getCustomersSource(params).then(value => {
|
|
this.cityOptions = value.rows
|
|
})
|
|
},
|
|
getCountry(el) {
|
|
let params = {
|
|
regionId: el
|
|
}
|
|
getCustomersSource(params).then(value => {
|
|
this.countryOptions = value.rows
|
|
})
|
|
},
|
|
//获取全国省市县
|
|
getRegion(){
|
|
getRegion().then(response=>{
|
|
let publicArr = []
|
|
if (response.data != undefined && response.data.length > 0) {
|
|
response.data.forEach(item => {
|
|
let obj = {
|
|
id: item.id,
|
|
label: item.areaName,
|
|
children: []
|
|
}
|
|
if (item.children != undefined && item.children.length > 0) {
|
|
item.children.forEach(childItem => {
|
|
let childObj = {
|
|
id: childItem.id,
|
|
label: childItem.areaName,
|
|
children: []
|
|
}
|
|
if (childItem.children != undefined && childItem.children.length > 0) {
|
|
childItem.children.forEach(sonItem => {
|
|
let sonObj = {
|
|
id: sonItem.id,
|
|
label: sonItem.areaName,
|
|
}
|
|
childObj.children.push(sonObj)
|
|
})
|
|
}
|
|
obj.children.push(childObj)
|
|
})
|
|
}
|
|
publicArr.push(obj)
|
|
})
|
|
this.region = publicArr
|
|
}
|
|
})
|
|
},
|
|
|
|
onInput() {
|
|
this.$forceUpdate();
|
|
},
|
|
}
|
|
}
|
|
|
|
|