bick_back/src/views/system/area/index.vue
2024-12-07 09:16:06 +08:00

887 lines
36 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="代理商" prop="deptId" v-if="userName == 'admin'&&!deptId" >
<el-select v-model="queryParams.deptId" filterable placeholder="选择代理商" clearable>
<el-option
v-for="item in deptOptions"
:key="item.deptId"
:label="item.deptName"
:value="item.deptId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="运营区" prop="areaName">
<el-input v-model="queryParams.areaName" placeholder="请输入运营区" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<router-link :to="'/system/areaSet/index/' " class="link-type">
<el-button type="primary" plain icon="el-icon-plus" size="mini"
v-hasPermi="['system:area:add']">新增</el-button>
</router-link>
</el-col>
<el-col :span="1.5">
<!-- <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="editArea2"
v-hasPermi="['system:area:edit']">修改</el-button> -->
<!-- <el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="openmap"
v-hasPermi="['system:area:edit']"
>电子围栏修改</el-button> -->
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:area:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:area:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="areaList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="运营区域" align="center" prop="areaName" />
<!-- <el-table-column label="代理商" align="center" prop="deptName" /> -->
<el-table-column label="代理商" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<router-link :to="'/system/deptDetail/index/' + scope.row.deptId" class="link-type">
<span>{{scope.row.deptName}}</span>
</router-link>
</template>
</el-table-column>
<el-table-column label="车数量" align="center" prop="deviceNum" />
<el-table-column label="运营区域" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
class="link-type"
@click="openmaps(scope.row)"
v-hasPermi="['system:area:edit']">修改电子围栏
</el-button>
</template>
</el-table-column>
<el-table-column label="停车区" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<router-link :to="'/system/area-parking/index/' + scope.row.areaId" class="link-type">
<span>设置({{scope.row.parkingAreaNum}})</span>
</router-link>
</template>
</el-table-column>
<el-table-column label="禁停区" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<router-link :to="'/system/area-noparking/index/' + scope.row.areaId" class="link-type">
<span>设置({{scope.row.noParkingAreaNum}})</span>
</router-link>
</template>
</el-table-column>
<el-table-column label="禁行区" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<router-link :to="'/system/area-noriding/index/' + scope.row.areaId" class="link-type">
<span>设置({{scope.row.bannedRidingAreaNum}})</span>
</router-link>
</template>
</el-table-column>
<el-table-column label="导览地图" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<router-link :to="'/system/guide/index/' + scope.row.areaId" class="link-type">
<span>去设置</span>
</router-link>
</template>
</el-table-column>
<el-table-column label="运营区区域范围设置" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<router-link :to="'/system/areaRange/index/' + scope.row.areaId" class="link-type">
<span>去设置</span>
</router-link>
</template>
</el-table-column>
<!-- <el-table-column label="收费方式" align="center" prop="ruleStr" :show-overflow-tooltip="true" />-->
<!-- <el-table-column label="联系人" align="center" prop="contact" />-->
<!-- <el-table-column label="联系人电话" align="center" prop="phone" />-->
<el-table-column label="状态" align="center" key="status">
<template slot-scope="scope">
<el-switch v-model="scope.row.status" active-value="0" inactive-value="1"
@change="handleStatusChange(scope.row)"></el-switch>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:area:edit']">修改</el-button> -->
<!-- <el-table-column label="导览地图" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<router-link :to="'/system/areaSet/index/' + scope.row.areaId" class="link-type">
<span>修改</span>
</router-link>
</template>
</el-table-column> -->
<!-- <router-link :to="'/system/areaSet/index/' + scope.row.areaId" class="link-type">
<el-button size="mini" type="text" icon="el-icon-edit"
v-hasPermi="['system:area:edit']">修改</el-button>
</router-link> -->
<el-button size="mini" type="text" icon="el-icon-edit" @click="editArea(scope.row.areaId)"
v-hasPermi="['system:area:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:area:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<el-dialog title="电子围栏" :visible.sync="mapopen" width="1200px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="电子围栏" prop="boundaryStr">
<area-map :key="key" v-model="form.boundaryStr" :dataId="form.areaId" :pathList="form.boundaryStr"
:lon="form.longitude" :lat="form.latitude" @center="center" @mapList="mapList" />
</el-form-item>
<!-- <el-row>-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="经度" prop="longitude">-->
<!-- <el-input v-model="form.longitude" placeholder="请输入经度" disabled />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="纬度" prop="latitude">-->
<!-- <el-input v-model="form.latitude" placeholder="请输入纬度" disabled />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm2">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 添加或修改运营区对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1200px" :before-close="handleClose">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12" v-if="userName == 'admin'">
<el-form-item label="代理商" prop="deptId">
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择代理商" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营区" prop="areaName">
<el-input v-model="form.areaName" placeholder="请输入运营区" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="运营个性化图片" prop="picture" label-width="140px">
<image-upload v-model="form.picture" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="运营区域">
<el-select v-model="form.province" clearable size="small" placeholder="请选择省" class="filter-item"
style="width: 90px" @change="provinceChange($event)">
<el-option v-for="item in form.provinceList" :key="item.name" :label="item.name" :value="item.name" />
</el-select>
<el-select v-model="form.city" clearable size="small" placeholder="请选择城市" class="filter-item"
style="width: 100px" @change="cityChange($event)">
<el-option v-for="item in form.cityList" :key="item.name" :label="item.name" :value="item.name" />
</el-select>
<el-select v-model="form.county" clearable size="small" placeholder="请选择区县" class="filter-item"
style="width: 100px">
<el-option v-for="item in form.countyList" :key="item.name" :label="item.name" :value="item.name" />
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item label="运营个性化标语" prop="slogan" label-width="120px">-->
<!-- <el-input v-model="form.slogan" placeholder="请输入运营个性化标语" style="" />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<!-- <el-row>-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="联系人" prop="contact">-->
<!-- <el-input v-model="form.contact" placeholder="请输入联系人" />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="联系人电话" label-width="90" prop="phone">-->
<!-- <el-input v-model="form.phone" style="width: 75%" placeholder="请输入联系人电话" />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row>
<el-col :span="12">
<el-form-item label="运营时间" prop="areaTime">
<el-select v-model="form.areaTime" placeholder="请选择运营时间" style="width: 100%;">
<el-option v-for="dict in dict.type.et_operating_area_time" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.areaTime == 2">
<el-col :span="12">
<el-form-item label="自定义运营时间">
<el-time-picker v-model="form.areaTimeStart" value-format="HH:mm:ss" placeholder="开始时间">
</el-time-picker>
<el-time-picker arrow-control v-model="form.areaTimeEnd" value-format="HH:mm:ss" placeholder="结束时间">
</el-time-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="自定义客服" prop="customService" label-width="100px">
<el-switch v-model="form.customService" class="drawer-switch" />
</el-form-item>
</el-col>
</el-row>
<div v-if="form.customService == '1'">
<el-row>
<el-col :span="8">
<el-form-item label="自定义客服名称1" prop="serviceName1" label-width="180px">
<el-input v-model="form.serviceName1" placeholder="请输入自定义客服名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电话" prop="servicePhone1">
<el-input v-model="form.servicePhone1" placeholder="请输入客服电话" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="自定义客服名称2" prop="serviceName2" label-width="180px">
<el-input v-model="form.serviceName2" placeholder="请输入自定义客服名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电话" prop="servicePhone2">
<el-input v-model="form.servicePhone2" placeholder="请输入客服电话" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="自定义客服名称3" prop="serviceName3" label-width="180px">
<el-input v-model="form.serviceName3" placeholder="请输入自定义客服名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电话" prop="servicePhone3">
<el-input v-model="form.servicePhone3" placeholder="请输入客服电话" />
</el-form-item>
</el-col>
</el-row>
</div>
<el-row>
<el-col :span="8">
<el-form-item label="运营区域外断电" label-width="120">
<el-switch v-model="form.areaOutOutage" class="drawer-switch" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否开启押金抵扣" label-width="120">
<el-switch v-model="form.isDepositDeduction" class="drawer-switch" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="还车是否拍照审核" label-width="120">
<el-switch v-model="form.returnVerify" class="drawer-switch" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="禁行区内断电" label-width="90">
<el-switch v-model="form.noRidingOutage" class="drawer-switch" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实名认证">
<el-switch v-model="form.authentication" class="drawer-switch" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="短信通知服务" label-width="90">
<el-switch v-model="form.msgSwitch" class="drawer-switch" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="强制停车点还车" label-width="90">
<el-switch v-model="form.parkingReturn" class="drawer-switch" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.parkingReturn == false" style="padding-left: 10px">
<el-col :span="8">
<el-form-item label="停车点外还车调度" label-width="150">
<el-switch v-model="form.parkingOutDispatch" class="drawer-switch" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="运营区外还车调度" label-width="150">
<el-switch v-model="form.areaOutDispatch" class="drawer-switch" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="运营区外还车" label-width="120">
<el-switch v-model="form.areaOutReturn" class="drawer-switch" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- <el-col :span="12">-->
<!-- <el-form-item label="收费方式">-->
<!-- <el-select v-model="form.ruleIds" multiple placeholder="请选择收费方式">-->
<!-- <el-option v-for="item in ruleOptions" :key="item.ruleId" :label="item.name"-->
<!-- :value="item.ruleId"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="12">
<el-form-item label="低于电量(%)不得骑行" label-width="150">
<el-input-number style="width: 50%" v-model="form.undercharge"
placeholder="低于电量(%)不得骑行"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="骑行押金" label-width="150">
<el-input-number style="width: 50%" v-model="form.deposit" placeholder="骑行前需要充值的押金"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="预约服务费" label-width="150">
<el-input-number style="width: 50%" v-model="form.appointmentServiceFee"
placeholder="预约时每十分钟的计费"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="运营区外调度费" label-width="150">
<el-input-number style="width: 50%" v-model="form.dispatchFee"
placeholder="车辆超出运行区外的调度费用"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="停车点外调度费" label-width="150">
<el-input-number style="width: 50%" v-model="form.vehicleManagementFee"
placeholder="车辆在运营区内但没在停车区产生的调度费用"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="电量低于多少值自动生成换电订单" label-width="150" prop="autoReplacementOrder">
<el-input-number style="width: 50%" v-model="form.autoReplacementOrder"
placeholder="电量低于多少值自动生成换电订单"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="还车误差(米)" label-width="100">
<el-input-number v-model="form.error" placeholder="还车误差"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="弹窗公告">
<editor v-model="form.agreement" :min-height="192" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="经度" prop="longitude">
<el-input v-model="form.longitude" placeholder="请输入经度" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="纬度" prop="latitude">
<el-input v-model="form.latitude" placeholder="请输入纬度" disabled />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listArea, getArea, delArea, addArea, updateArea, updateArea2 } from "@/api/system/area";
import AreaMap from "@/components/AreaMap";
import { listFee } from "@/api/system/fee";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { getDistrictList } from "@/api/common/common";
import { deptTreeSelect } from '@/api/system/user'
import { listDept2 } from '@/api/system/dept'
export default {
name: "Area",
dicts: ['et_operating_area_status', 'et_operating_area_time', 'et_business_switch'],
components: { AreaMap, Treeselect },
props: {
// 用户id
deptId: {
type: Number,
default: null,
}
},
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 日期范围
dateRange: [],
customService: false,
// 收费方式选项
ruleOptions: [],
provinceList: [],
cityList: [],
countyList: [],
CITY: [],
XIAN: [],
// 运营区表格数据
areaList: [],
userName: null,
// 代理商树选项
deptOptions: undefined,
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
mapopen: false,
// 通过key重新渲染area-map组件
key: 0,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 20,
deptId:this.deptId,
areaName: null,
},
// 表单参数
form: {
status: '1',
province: '',
city: '',
county: '',
provinceList: [],
cityList: [],
countyList: [],
},
// 表单校验
rules: {
areaName: [{ required: true, message: "运营区域不能为空", trigger: "blur" }],
// contact: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
// phone: [{ required: true, message: "联系人电话不能为空", trigger: "blur" }],
autoReplacementOrder: [{ required: true, message: "最低电量不能为空", trigger: "blur" }],
deptId: [{ required: true, message: "代理商不能为空", trigger: "blur" }],
},
};
},
created() {
console.log("当前用户信息:", this.$store.state.user.name)
this.userName = this.$store.state.user.name;
this.getList();
this.getDeptTree();
if(this.userName === 'admin'){
listDept2({status: '0',pageNum:1,pageSize:999 }).then(response => {
this.deptOptions = response.rows;
});
}
},
methods: {
getCityList() {
this.loading = false
getDistrictList().then(res => {
this.form.provinceList = JSON.parse(res.data)
// console.log("provinceList======"+JSON.stringify(this.form.provinceList))
// this.form.provinceList = res.data.districts[0].districts /* 省*/
/* 进行遍历赋值*/
/* 市区和县区*/
let newProvince = this.form.provinceList
for (let i = 0; i < newProvince.length; i++) { /* 省级*/
for (let j = 0; j < newProvince[i].districts.length; j++) { /* 市级*/
let city = newProvince[i].districts[j].name
this.CITY.push({ id: j + 1, name: city, code: i + 1 })
for (let k = 0; k < newProvince[i].districts[j].districts.length; k++) {/* 县级*/
let xian = newProvince[i].districts[j].districts[k].name
this.XIAN.push({ id: k + 1, name: xian, code: j + 1, cityCountyName: city })
}
}
}
for (let m = 0; m < newProvince.length; m++) {
newProvince[m] = { ...newProvince[m], ...{ code: m + 1 } }
}
// console.log("newProvince======"+JSON.stringify(newProvince))
this.form.provinceList = newProvince
// this.loading = true
console.log(console.log(this.form.provinceList, ' this.form.provinceList'))
})
},
/** 查询代理商下拉树结构 */
getDeptTree() {
deptTreeSelect().then(response => {
this.deptOptions = response.data;
});
},
handleClose() {
this.open = false
this.loading = false
},
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + row.areaName + '"运营区吗?').then(function () {
let data = {
areaId: row.areaId,
status: row.status,
deptId: row.deptId
}
updateArea(data).then(response => {
this.getList();
});
}).then(() => {
this.$modal.msgSuccess(text + "成功");
}).catch(function () {
row.status = row.status === "0" ? "1" : "0";
});
},
cityChange(that) {
let countyCode = 0
let cityname = ''
let newCountyArry = []
this.form.cityList.forEach((item, index) => {
if (item.name == that) {
countyCode = item.id
cityname = item.name
}
})
if (countyCode) {
this.form.countyList = []
this.XIAN.forEach((item, index) => {
if (item.code == countyCode && item.cityCountyName == cityname) {
this.form.countyList.push(item)
}
})
}
},
provinceChange(that) {
// 根据选中省,匹配市
let cityCode = 0
let newCityArry = []
this.form.provinceList.forEach((item, index) => {
if (item.name == that) {
cityCode = item.code
}
})
// console.log(cityCode)
if (cityCode) {
this.form.cityList = []
this.CITY.forEach((item, index) => {
if (item.code == cityCode) {
this.form.cityList.push(item)
}
}) /* 市匹配成功*/
}
},
mapList(data) {
let mapListJson = JSON.stringify(data);
console.log("mapListJson:" + mapListJson);
this.form.boundaryStr = mapListJson;
},
center(data) {
this.form.longitude = data.lng;
this.form.latitude = data.lat;
},
/** 查询运营区列表 */
getList() {
this.loading = true;
console.log(this.deptId,'deptIddeptId');
listArea(this.queryParams).then(response => {
this.areaList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.mapopen = false
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
areaId: null,
areaName: null,
boundaryStr: null,
longitude: null,
latitude: null,
// parkingPoint: null,
agreement: '<p><strong style=\\"color: rgb(68, 68, 68);\\">亲爱的用户,为了确保您的骑行安全,</strong></p><p><strong style=\\"color: rgb(68, 68, 68);\\">请务必遵守以下骑行提示: </strong></p><p><span style=\\"color: rgb(136, 136, 136);\\">仅限16岁及以上用户使用。</span></p><p><span style=\\"color: rgb(136, 136, 136);\\">为确保安全,后座不允许载人。</span></p><p><span style=\\"color: rgb(136, 136, 136);\\">请务必佩戴安全头盔,保护自身安全。 </span></p><p><span style=\\"color: rgb(136, 136, 136);\\">注意道路状况,避开坑洼,小心骑行。</span></p><p><span style=\\"color: rgb(136, 136, 136);\\">请在规定的地点还车,避免随意停放。</span></p><p><span style=\\"color: rgb(136, 136, 136);\\">不逆行、不闯红灯,遵守所有交通法规。</span></p><p><span style=\\"color: rgb(136, 136, 136);\\">骑行时不要使用手机,保持注意力集中。</span></p><p><span style=\\"color: rgb(136, 136, 136);\\">避免急刹车和急转弯,保持适当的车速。</span></p><p><span style=\\"color: rgb(136, 136, 136);\\">夜间骑行时,确保车灯和反光标识正常。</span></p><p><br></p><p><strong style=\\"color: rgb(68, 68, 68);\\">紧急情况处理:</strong></p><p><span style=\\"color: rgb(136, 136, 136);\\">如有紧急情况,请及时拨打客服电话。</span></p><p><span style=\\"color: rgb(136, 136, 136);\\">感谢您的理解与配合祝您骑行愉快</span></p>',
createBy: null,
createTime: null,
status: '1',
deptId: null,
contact: null,
phone: null,
autoReplacementOrder: null,
remark: null,
province: null,
city: null,
county: null,
provinceList: [],
cityList: [],
countyList: [],
ruleIds: [],
areaOutOutage: true,
parkingOutDispatch: true,
areaOutDispatch: true,
noRidingOutage: true,
authentication: true,
msgSwitch: false,
parkingReturn: true,
areaOutReturn: true,
isDepositDeduction: false,
returnVerify: false,
deposit: 200,
customService: false,
undercharge: 20
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.areaId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.getCityList();
listFee().then(response => {
this.ruleOptions = response.rows;
this.open = true;
this.title = "添加运营区";
this.key++;
});
},
editArea2(row){
const areaId = row.areaId || this.ids
this.$router.push(`/system/areaSet/index/${areaId}`);
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const areaId = row.areaId || this.ids
getArea(areaId).then(response => {
this.form = response.data;
this.form.ruleIds = response.ruleIds
response.data.customService == "1" ? this.form.customService = true : this.form.customService = false
response.data.areaOutOutage == "1" ? this.form.areaOutOutage = true : this.form.areaOutOutage = false
response.data.parkingOutDispatch == "1" ? this.form.parkingOutDispatch = true : this.form.parkingOutDispatch = false
response.data.areaOutDispatch == "1" ? this.form.areaOutDispatch = true : this.form.areaOutDispatch = false
response.data.noRidingOutage == "1" ? this.form.noRidingOutage = true : this.form.noRidingOutage = false
response.data.authentication == "1" ? this.form.authentication = true : this.form.authentication = false
response.data.msgSwitch == "1" ? this.form.msgSwitch = true : this.form.msgSwitch = false
response.data.parkingReturn == "1" ? this.form.parkingReturn = true : this.form.parkingReturn = false
response.data.areaOutReturn == "1" ? this.form.areaOutReturn = true : this.form.areaOutReturn = false
response.data.isDepositDeduction == "1" ? this.form.isDepositDeduction = true : this.form.isDepositDeduction = false
response.data.returnVerify == "1" ? this.form.returnVerify = true : this.form.returnVerify = false
this.open = true;
this.title = "修改运营区";
this.key++;
console.log('this.form.areaId=================', this.form.areaId)
console.log('this.form.deptId=================', this.form.deptId)
listFee({ areaId: this.form.areaId }).then(response => {
this.ruleOptions = response.rows;
this.open = true;
this.title = "修改运营区";
this.key++;
});
// this.getCityList()
this.getCityList();
});
},
editArea(areaId){
this.$router.push(`/system/areaSet/index/${areaId}`);
},
openmaps(row) {
this.reset();
const areaId = row.areaId || this.ids
getArea(areaId).then(response => {
this.form = response.data;
this.mapopen = true;
this.title = "修改运营区";
this.key++;
console.log('点击了');
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
const { cityList, countyList, provinceList, ...rest } = this.form;
// 将 rest 对象中的属性赋值给 data
let data = { ...rest };
console.log("this.form=================", data)
data.customService = data.customService ? "1" : "0";
data.areaOutOutage = data.areaOutOutage ? "1" : "0";
data.parkingOutDispatch = data.parkingOutDispatch ? "1" : "0";
data.areaOutDispatch = data.areaOutDispatch ? "1" : "0";
data.noRidingOutage = data.noRidingOutage ? "1" : "0";
data.authentication = data.authentication ? "1" : "0";
data.msgSwitch = data.msgSwitch ? "1" : "0";
data.parkingReturn = data.parkingReturn ? "1" : "0";
data.areaOutReturn = data.areaOutReturn ? "1" : "0";
data.isDepositDeduction = data.isDepositDeduction ? "1" : "0";
data.returnVerify = data.returnVerify ? "1" : "0";
if (data.isDepositDeduction === '1' && data.returnVerify === '1') {
this.$modal.msgError("押金抵扣和拍照审核不能同时开启");
return
}
// console.log(data, 'data without cityList, countyList, provinceList');
// console.log(this.form,'formformformformform');
if (this.form.areaId != null) {
updateArea(data).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.mapopen = false
this.getList();
});
} else {
addArea(data).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 提交按钮 */
submitForm2() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.areaId != null) {
updateArea2({areaId:this.form.areaId,boundary:this.form.boundary,boundaryStr:this.form.boundaryStr,longitude:this.form.longitude,
latitude:this.form.latitude}).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.mapopen = false
this.getList();
});
} else {
addArea(data).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const areaIds = row.areaId || this.ids;
this.$modal.confirm('是否确认删除运营区编号为"' + areaIds + '"的数据项?').then(function () {
return delArea(areaIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('system/area/export', {
...this.queryParams
}, `area_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style>
.el-dialog:not(.is-fullscreen) {
margin-top: 2vh !important;
}
.el-upload--picture-card {
width: 60px !important;
height: 60px !important;
line-height: 70px !important;
}
.el-upload-list--picture-card .el-upload-list__item {
width: 60px !important;
height: 60px !important;
}
</style>