Compare commits
7 Commits
4f0efb7034
...
d753972aeb
Author | SHA1 | Date | |
---|---|---|---|
d753972aeb | |||
0edaeb9761 | |||
3038670ad8 | |||
8f056bbdaa | |||
fb38a6dfa5 | |||
c8c505dbd7 | |||
f33b7208f4 |
|
@ -5,8 +5,8 @@ VUE_APP_TITLE = 共享电动车管理系统
|
|||
ENV = 'development'
|
||||
|
||||
# 共享电动车管理系统/开发环境
|
||||
VUE_APP_BASE_API = 'https://dche.ccttiot.com/prod-api'
|
||||
# VUE_APP_BASE_API = 'http://192.168.2.189:8080'
|
||||
# VUE_APP_BASE_API = 'https://dche.ccttiot.com/prod-api'
|
||||
VUE_APP_BASE_API = 'http://localhost:8080'
|
||||
|
||||
# 路由懒加载
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
|
|
@ -35,7 +35,7 @@ export function getArealist() {
|
|||
return request({
|
||||
url: '/index/getAreaList',
|
||||
method: 'get',
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
// 获取首页统计
|
||||
|
@ -43,7 +43,7 @@ export function getAdminStatistics() {
|
|||
return request({
|
||||
url: '/index/admim/statistics',
|
||||
method: 'get',
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
// 修改运营区
|
||||
|
@ -70,3 +70,19 @@ export function optionselect() {
|
|||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据运营商id获取运营商列表
|
||||
export function selectAreaListByDeptId(deptId) {
|
||||
return request({
|
||||
url: '/system/area/selectAreaListByDeptId/'+deptId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据运营区id获取运营商
|
||||
export function selectDeptByAreaId(areaId) {
|
||||
return request({
|
||||
url: '/system/area/selectDeptByAreaId/'+areaId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
|
|
@ -17,6 +17,14 @@ export function listDeptExcludeChild(classifyId) {
|
|||
})
|
||||
}
|
||||
|
||||
// 查询分类列表(排除节点)
|
||||
export function listDeptExcludeChilds(classifyIds) {
|
||||
return request({
|
||||
url: '/article/classify/list/excludes/' + classifyIds,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询分类详细
|
||||
export function getDept(classifyId) {
|
||||
return request({
|
||||
|
|
44
src/api/system/hardwareVersion.js
Normal file
44
src/api/system/hardwareVersion.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 查询硬件版本列表
|
||||
export function listHardwareVersion(query) {
|
||||
return request({
|
||||
url: '/system/hardwareVersion/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询硬件版本详细
|
||||
export function getHardwareVersion(id) {
|
||||
return request({
|
||||
url: '/system/hardwareVersion/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增硬件版本
|
||||
export function addHardwareVersion(data) {
|
||||
return request({
|
||||
url: '/system/hardwareVersion',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改硬件版本
|
||||
export function updateHardwareVersion(data) {
|
||||
return request({
|
||||
url: '/system/hardwareVersion',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除硬件版本
|
||||
export function delHardwareVersion(id) {
|
||||
return request({
|
||||
url: '/system/hardwareVersion/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
44
src/api/system/softwareVersion.js
Normal file
44
src/api/system/softwareVersion.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 查询软件版本列表
|
||||
export function listSoftwareVersion(query) {
|
||||
return request({
|
||||
url: '/system/softwareVersion/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询软件版本详细
|
||||
export function getSoftwareVersion(id) {
|
||||
return request({
|
||||
url: '/system/softwareVersion/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增软件版本
|
||||
export function addSoftwareVersion(data) {
|
||||
return request({
|
||||
url: '/system/softwareVersion',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改软件版本
|
||||
export function updateSoftwareVersion(data) {
|
||||
return request({
|
||||
url: '/system/softwareVersion',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除软件版本
|
||||
export function delSoftwareVersion(id) {
|
||||
return request({
|
||||
url: '/system/softwareVersion/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
1
src/assets/icons/svg/hardwareVersion.svg
Normal file
1
src/assets/icons/svg/hardwareVersion.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1721629464139" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4288" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M510.557091 870.4h34.746182q18.245818 0 28.322909-3.165091 63.464727-11.101091 118.551273-42.752 54.016-31.045818 94.184727-78.475636 40.238545-47.522909 61.812363-105.914182 22.225455-60.090182 22.225455-125.184 0-98.629818-40.029091-156.555636-40.96-59.298909-111.243636-59.29891-63.837091 0-107.845818 53.573819-26.437818 32.186182-54.341819 100.654545-5.655273 14.196364-17.058909 37.12l-29.277091 58.763636-84.247272-171.86909q-5.864727-14.289455-20.852364-19.851637-14.405818-5.329455-28.788364 0.465455-14.522182 5.818182-20.107636 21.061818-5.306182 14.429091 0.465455 28.834909l0.09309 0.302545 116.084364 241.850182q11.264 22.621091 34.397091 22.621091 19.479273 0 33.838545-21.620363l0.325819-0.465455 64.162909-128.884364 0.139636-0.349091q2.816-7.121455 8.541091-20.037818 5.818182-13.149091 8.773818-20.549818 25.320727-58.461091 41.844364-79.685818 21.853091-28.043636 50.967273-28.043636 43.752727 0 62.533818 54.807272 12.171636 35.467636 12.171636 84.247273 0 103.656727-65.931636 182.760727-65.768727 78.917818-166.050909 95.930182-5.073455 0.116364-12.567273 1.629091-6.353455 1.28-9.774546 1.28h-26.065454q-56.785455 0-108.846546-22.202182-50.269091-21.457455-89.157818-60.509091-38.912-39.074909-60.276363-89.553454Q230.167273 569.018182 230.167273 512v-22.760727l2.792727-25.320728q19.083636-101.632 96.744727-167.354181Q407.877818 230.4 510.533818 230.4q55.505455 0 109.405091 22.551273l0.325818 0.139636 0.325818 0.093091q16.384 5.492364 29.323637 0.139636 13.986909-5.771636 17.338182-20.852363 5.282909-14.010182 0.139636-28.043637-5.538909-15.104-19.851636-20.945454Q583.68 153.6 507.671273 153.6q-63.860364 0-123.508364 22.318545-58.065455 21.713455-105.611636 62.068364-47.592727 40.424727-78.801455 94.557091-32.116364 55.738182-43.124363 119.691636l-0.139637 0.791273v0.791273q0 3.723636-1.349818 13.242182-1.536 10.821818-1.536 15.848727V512q0 72.610909 28.16 139.170909 27.182545 64.256 76.683636 113.943273 49.477818 49.687273 113.477819 76.986182 66.327273 28.299636 138.635636 28.299636z" p-id="4289" fill="#bfbfbf"></path></svg>
|
After Width: | Height: | Size: 2.3 KiB |
1
src/assets/icons/svg/softwareVersion.svg
Normal file
1
src/assets/icons/svg/softwareVersion.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1721629499985" class="icon" viewBox="0 0 1344 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5365" xmlns:xlink="http://www.w3.org/1999/xlink" width="262.5" height="200"><path d="M878.009019 671.858244a37.969483 37.969483 0 0 0 0-50.905988 36.121411 36.121411 0 0 0-25.957014-13.860541 38.893519 38.893519 0 0 0-28.729122 8.400328l-112.90041 92.403609V424.636587a37.969483 37.969483 0 0 0-38.89352-33.601312 38.893519 38.893519 0 0 0-38.893519 38.893519v277.714848l-112.90041-92.403609a42.001641 42.001641 0 0 0-52.754061 5.544216 43.76571 43.76571 0 0 0-13.860541 27.805087 37.969483 37.969483 0 0 0 13.860541 26.88105l153.642002 129.617063a73.166858 73.166858 0 0 0 42.589663 13.860541 72.158819 72.158819 0 0 0 47.965874-17.304676z" p-id="5366" fill="#bfbfbf"></path><path d="M1241.827231 395.991468l-8.400329-8.400328a364.994258 364.994258 0 0 0-151.205906-91.227563A434.296965 434.296965 0 0 0 671.528953 0h-10.920426a431.60886 431.60886 0 0 0-398.763577 296.531583 374.990648 374.990648 0 0 0-160.614274 100.383922A364.994258 364.994258 0 0 0 0.006722 651.52945a374.066612 374.066612 0 0 0 108.616243 260.998196 364.994258 364.994258 0 0 0 262.762264 109.204265H519.147001a42.925677 42.925677 0 0 0 40.153568-46.537817 47.461854 47.461854 0 0 0-47.461854-43.76571H371.385229a273.766694 273.766694 0 0 1-197.995734-81.231173A284.435111 284.435111 0 0 1 168.013285 456.221821a273.766694 273.766694 0 0 1 139.445447-81.231173l27.385069-6.384249 9.156358-34.693356a340.381296 340.381296 0 0 1 318.45644-242.685479h9.156358a342.145365 342.145365 0 0 1 332.148974 245.457588l12.768499 35.617391 26.461034 6.384249a285.611157 285.611157 0 0 1 130.457095 72.998852l7.308286 8.400328a279.226907 279.226907 0 0 1 76.610993 192.535521 282.839048 282.839048 0 0 1-82.995242 198.91977 273.766694 273.766694 0 0 1-187.999344 81.231173H831.639208a45.613782 45.613782 0 0 0-45.613782 45.613782 46.537818 46.537818 0 0 0 45.613782 45.613782h152.381952a364.994258 364.994258 0 0 0 250.833798-111.556358A374.990648 374.990648 0 0 0 1344.059224 649.681378a364.994258 364.994258 0 0 0-102.231993-253.68991z" p-id="5367" fill="#bfbfbf"></path></svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -204,6 +204,20 @@ export const dynamicRoutes = [
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/system/guide',
|
||||
component: Layout,
|
||||
hidden: true,
|
||||
permissions: ['system:parking:list'],
|
||||
children: [
|
||||
{
|
||||
path: 'index/:areaId(\\d+)',
|
||||
component: () => import('@/views/system/area/guide'),
|
||||
name: 'Data',
|
||||
meta: { title: '导览地图', activeMenu: '/system/area' }
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/system/area-noriding',
|
||||
component: Layout,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div class="page">
|
||||
<div class="page" v-if="userName == 'admin'">
|
||||
<div class="info_li">
|
||||
<div class="card1">
|
||||
<div class="txt">运营商数</div>
|
||||
|
@ -62,7 +62,7 @@
|
|||
<img src="https://lxnapi.ccttiot.com/bike/img/static/un9hBy1mNXjAsRnrSt14" alt="">
|
||||
</div>
|
||||
<div class="card2">
|
||||
<div class="txt">待审核还车押金扣款</div>
|
||||
<div class="txt">待审核还车押金扣款</div>
|
||||
<div class="num">{{StatisticsInfo.returnOrderDeductFee }}</div>
|
||||
<div class="txt1">还车待审核订单数:{{StatisticsInfo.returnOrderCount }}</div>
|
||||
<img src="https://lxnapi.ccttiot.com/bike/img/static/uBV6yOFFWUvTValGnmfw" alt="">
|
||||
|
@ -186,7 +186,7 @@
|
|||
<img src="https://lxnapi.ccttiot.com/bike/img/static/uDOL2U9faZ5ku81NTPnU" alt="">异常排查车辆
|
||||
</div>
|
||||
<div class="cont_li_bot">
|
||||
{{ StatisticsInfo.operationVo.faultOrderCount }}
|
||||
{{ StatisticsInfo.operationVo.faultOrderCount }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="cont_li">
|
||||
|
@ -219,6 +219,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
StatisticsInfo: {},
|
||||
userName: undefined,
|
||||
chartInstance:null
|
||||
};
|
||||
},
|
||||
|
@ -226,6 +227,7 @@ export default {
|
|||
|
||||
},
|
||||
mounted() {
|
||||
this.userName = this.$store.state.user.name;
|
||||
this.AdminStatistics();
|
||||
window.addEventListener('resize', this.handleResize);
|
||||
},
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<!-- 代付款订单数 -->
|
||||
<div class="top_cont">
|
||||
<div class="cont_left">
|
||||
<div class="cont_left_top">付款订单数</div>
|
||||
<div class="cont_left_top">待付款订单数</div>
|
||||
<div class="cont_left_cent">{{StatisticsInfo.unpaidOrderCount}}</div>
|
||||
<div class="cont_left_bot">待付款订单金额:{{StatisticsInfo.unpaidOrderFee}}</div>
|
||||
</div>
|
||||
|
@ -208,7 +208,7 @@
|
|||
<div class="bot_box">
|
||||
<div class="tit">运维状态</div>
|
||||
<div class="cont_box">
|
||||
|
||||
|
||||
<div class="cont_li">
|
||||
<div class="cont_li_top">
|
||||
<img src="https://lxnapi.ccttiot.com/bike/img/static/uDOL2U9faZ5ku81NTPnU" alt="">换电工单
|
||||
|
@ -276,12 +276,12 @@ export default {
|
|||
};
|
||||
},
|
||||
created() {
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
mounted() {
|
||||
this.getAreaOptions();
|
||||
|
||||
|
||||
},
|
||||
methods: {
|
||||
handleAreaChange(newAreaId) {
|
||||
|
@ -296,7 +296,7 @@ export default {
|
|||
},
|
||||
getAreaOptions() {
|
||||
getArealist().then(response => {
|
||||
|
||||
|
||||
this.areaOptions = response.data;
|
||||
this.areaId= this.areaOptions[0].areaId
|
||||
this.getAreastatistics()
|
||||
|
@ -310,7 +310,7 @@ export default {
|
|||
setTimeout(() => {
|
||||
this.drawLine()
|
||||
}, 1000);
|
||||
|
||||
|
||||
console.log("areaOptions", this.areaOptions);
|
||||
});
|
||||
},
|
||||
|
@ -514,7 +514,7 @@ export default {
|
|||
}
|
||||
|
||||
.info_li {
|
||||
|
||||
|
||||
margin-top: 1.25rem;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
|
202
src/views/system/area/guide.vue
Normal file
202
src/views/system/area/guide.vue
Normal file
|
@ -0,0 +1,202 @@
|
|||
<template>
|
||||
<div class="container">
|
||||
<div class="input-card-right">
|
||||
<div class="img">
|
||||
<image-upload v-model="picture" />
|
||||
</div>
|
||||
|
||||
<el-button :style="topRightCoord ? buttonStyleActive : buttonStyleInactive" @click="setClickType('topRight')">
|
||||
点击右上角坐标
|
||||
</el-button>
|
||||
|
||||
<el-button :style="bottomLeftCoord ? buttonStyleActive : buttonStyleInactive" @click="setClickType('bottomLeft')">
|
||||
点击左下角坐标
|
||||
</el-button>
|
||||
|
||||
<el-button @click="generateMap" :disabled="!canGenerateMap">
|
||||
生成导览地图
|
||||
</el-button>
|
||||
</div>
|
||||
<!-- <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> -->
|
||||
<div id="amap-container" class="map-container"></div>
|
||||
|
||||
<div class="coordinates">
|
||||
<div v-if="topRightCoord">右上角: {{ topRightCoord }}</div>
|
||||
<div v-if="bottomLeftCoord">左下角: {{ bottomLeftCoord }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AMapLoader from "@amap/amap-jsapi-loader";
|
||||
import globalConfig from '@/utils/config/globalConfig';
|
||||
import {getArea, optionselect as getAreaOptionselect} from "@/api/system/area";
|
||||
export default {
|
||||
name: "NewPage",
|
||||
data() {
|
||||
return {
|
||||
map: null,
|
||||
clickType: null,
|
||||
topRightCoord: null,
|
||||
bottomLeftCoord: null,
|
||||
markers: [],
|
||||
picture: '',
|
||||
buttonStyleActive: 'background-color: #409EFF; color: white;',
|
||||
buttonStyleInactive: 'background-color: #fff; color: #409EFF;',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
canGenerateMap() {
|
||||
return this.picture && this.topRightCoord && this.bottomLeftCoord;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const areaId = this.$route.params && this.$route.params.areaId;
|
||||
this.getArea(areaId);
|
||||
// this.getAreaList();
|
||||
},
|
||||
mounted() {
|
||||
this.initMap();
|
||||
},
|
||||
methods: {
|
||||
/** 查询运营区域详细 */
|
||||
getArea(areaId) {
|
||||
getArea(areaId).then(response => {
|
||||
this.queryParams.areaId = response.data.areaId;
|
||||
this.areaLon = response.data.longitude;
|
||||
this.areaLat = response.data.latitude;
|
||||
this.defaultAreaId = response.data.areaId;
|
||||
this.getList();
|
||||
});
|
||||
},
|
||||
initMap() {
|
||||
AMapLoader.load({
|
||||
key: globalConfig.aMap.key,
|
||||
version: "2.0",
|
||||
plugins: [
|
||||
"AMap.ToolBar",
|
||||
"AMap.Driving",
|
||||
"AMap.PolygonEditor",
|
||||
"AMap.PlaceSearch",
|
||||
],
|
||||
}).then((AMap) => {
|
||||
this.map = new AMap.Map("amap-container", {
|
||||
viewMode: "3D",
|
||||
zoom: 13,
|
||||
});
|
||||
this.map.setFitView();
|
||||
this.map.on('click', this.handleMapClick);
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
});
|
||||
},
|
||||
setClickType(type) {
|
||||
this.clickType = type;
|
||||
},
|
||||
handleMapClick(event) {
|
||||
const lnglat = event.lnglat;
|
||||
|
||||
if (this.clickType === 'topRight') {
|
||||
this.topRightCoord = lnglat;
|
||||
} else if (this.clickType === 'bottomLeft') {
|
||||
this.bottomLeftCoord = lnglat;
|
||||
}
|
||||
|
||||
// 创建标记
|
||||
const marker = new AMap.Marker({
|
||||
position: lnglat,
|
||||
});
|
||||
this.map.add(marker);
|
||||
this.markers.push(marker);
|
||||
|
||||
// 清除点击类型
|
||||
this.clickType = null;
|
||||
},
|
||||
clearMarkers() {
|
||||
this.markers.forEach(marker => {
|
||||
this.map.remove(marker);
|
||||
});
|
||||
this.markers = [];
|
||||
this.topRightCoord = null;
|
||||
this.bottomLeftCoord = null;
|
||||
},
|
||||
generateMap() {
|
||||
if (!this.canGenerateMap) {
|
||||
this.$message.error('请上传图片并选择两个坐标点');
|
||||
return;
|
||||
}
|
||||
|
||||
// 确保坐标精度
|
||||
const lnglatToFixed = (lnglat) => ({
|
||||
lng: lnglat.lng.toFixed(6),
|
||||
lat: lnglat.lat.toFixed(6)
|
||||
});
|
||||
|
||||
const topRight = lnglatToFixed(this.topRightCoord);
|
||||
const bottomLeft = lnglatToFixed(this.bottomLeftCoord);
|
||||
|
||||
// 计算边界
|
||||
const bounds = new AMap.Bounds([bottomLeft.lng, bottomLeft.lat], [topRight.lng, topRight.lat]);
|
||||
|
||||
// 创建图片图层
|
||||
const imageLayer = new AMap.ImageLayer({
|
||||
url: this.picture,
|
||||
bounds: bounds,
|
||||
zooms: [15, 20]
|
||||
});
|
||||
|
||||
// 清除现有图层
|
||||
this.map.getLayers().forEach(layer => {
|
||||
if (layer instanceof AMap.ImageLayer) {
|
||||
this.map.remove(layer);
|
||||
}
|
||||
});
|
||||
|
||||
// 添加图片图层
|
||||
this.map.add(imageLayer);
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.map-container {
|
||||
width: 100%;
|
||||
height: 90vh;
|
||||
}
|
||||
|
||||
.container {
|
||||
position: relative;
|
||||
border: 1px solid rgb(204, 204, 204);
|
||||
}
|
||||
|
||||
.input-card-right {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-items: flex-end;
|
||||
// justify-content: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.img {
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.coordinates {
|
||||
position: absolute;
|
||||
bottom: 15px;
|
||||
left: 15px;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
</style>
|
|
@ -243,86 +243,58 @@
|
|||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="运营区域外断电" label-width="120">
|
||||
<el-radio-group v-model="form.areaOutOutage" style="width: 50%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-switch v-model="form.areaOutOutage" class="drawer-switch" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="停车点外还车调度" label-width="150">
|
||||
<el-radio-group v-model="form.parkingOutDispatch" style="width: 50%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<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="150">
|
||||
<el-radio-group v-model="form.areaOutDispatch" style="width: 50%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<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-radio-group v-model="form.noRidingOutage" style="width: 60%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-switch v-model="form.noRidingOutage" class="drawer-switch" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="实名认证">
|
||||
<el-radio-group v-model="form.authentication" style="width: 60%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<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-radio-group v-model="form.msgSwitch" style="width: 60%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-switch v-model="form.msgSwitch" class="drawer-switch" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="强制停车点还车" label-width="90">
|
||||
<el-radio-group v-model="form.parkingReturn" style="width: 60%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<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-radio-group v-model="form.areaOutReturn" style="width: 60%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="是否开启押金抵扣" label-width="120">
|
||||
<el-radio-group v-model="form.isDepositDeduction" style="width: 60%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="还车是否拍照审核" label-width="120">
|
||||
<el-radio-group v-model="form.returnVerify" style="width: 50%">
|
||||
<el-radio v-for="dict in dict.type.et_business_switch" :key="dict.value"
|
||||
:label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-switch v-model="form.areaOutReturn" class="drawer-switch" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -378,7 +350,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="最大预约时间" label-width="150">
|
||||
<el-form-item label="最大预约时间(分)" label-width="150">
|
||||
<el-input-number style="width: 50%" v-model="form.timeoutMinutes"
|
||||
placeholder="车辆可最长预约多少分钟"></el-input-number>
|
||||
</el-form-item>
|
||||
|
@ -638,10 +610,35 @@ export default {
|
|||
longitude: null,
|
||||
latitude: null,
|
||||
// parkingPoint: null,
|
||||
agreement: undefined,
|
||||
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");
|
||||
},
|
||||
|
@ -681,6 +678,16 @@ export default {
|
|||
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++;
|
||||
|
@ -718,11 +725,17 @@ export default {
|
|||
// 将 rest 对象中的属性赋值给 data
|
||||
let data = { ...rest };
|
||||
console.log("this.form=================",data)
|
||||
if (data.customService) {
|
||||
data.customService = "1";
|
||||
}else{
|
||||
data.customService = "0";
|
||||
}
|
||||
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";
|
||||
// console.log(data, 'data without cityList, countyList, provinceList');
|
||||
// console.log(this.form,'formformformformform');
|
||||
if (this.form.areaId != null) {
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
||||
>
|
||||
<el-table-column prop="classifyName" label="分类名称" width="260"></el-table-column>
|
||||
<el-table-column prop="deptName" label="运营商" width="260"></el-table-column>
|
||||
<el-table-column prop="deptName" label="运营商" width="260" v-if="userName == 'admin'"></el-table-column>
|
||||
<el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
|
||||
<el-table-column prop="status" label="状态" width="100">
|
||||
<template slot-scope="scope">
|
||||
|
@ -82,6 +82,7 @@
|
|||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-if="(scope.row.classifyName != '帮助中心' && scope.row.parentId != 111) || userName == 'admin'"
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
|
@ -89,6 +90,7 @@
|
|||
v-hasPermi="['system:articleClassify:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
v-if="(scope.row.classifyName != '帮助中心' && scope.row.parentId != 111) || userName == 'admin'"
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-plus"
|
||||
|
@ -96,7 +98,7 @@
|
|||
v-hasPermi="['system:articleClassify:add']"
|
||||
>新增</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.parentId != 0"
|
||||
v-if="(scope.row.parentId != 0 && scope.row.classifyName != '帮助中心' && scope.row.parentId != 111) || userName == 'admin'"
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
|
@ -186,7 +188,15 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/articleClassify";
|
||||
import {
|
||||
listDept,
|
||||
getDept,
|
||||
delDept,
|
||||
addDept,
|
||||
updateDept,
|
||||
listDeptExcludeChild,
|
||||
listDeptExcludeChilds
|
||||
} from '@/api/system/articleClassify'
|
||||
import Treeselect from "@riophae/vue-treeselect";
|
||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||
|
||||
|
@ -206,6 +216,7 @@ export default {
|
|||
deptOptions: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
userName: undefined,
|
||||
title2: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
|
@ -245,6 +256,7 @@ export default {
|
|||
};
|
||||
},
|
||||
created() {
|
||||
this.userName = this.$store.state.user.name;
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
|
@ -309,8 +321,13 @@ export default {
|
|||
}
|
||||
this.open = true;
|
||||
this.title = "添加分类";
|
||||
listDept().then(response => {
|
||||
listDeptExcludeChild(111).then(response => {
|
||||
this.deptOptions = this.handleTree(response.data, "classifyId");
|
||||
|
||||
// // 移除 classifyId 等于 111 的对象
|
||||
// this.deptOptions = this.deptOptions.filter(dept => dept.classifyId !== 111);
|
||||
//
|
||||
console.log("==============="+JSON.stringify(this.deptOptions))
|
||||
});
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
|
@ -334,7 +351,7 @@ export default {
|
|||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改分类";
|
||||
listDeptExcludeChild(row.classifyId).then(response => {
|
||||
listDeptExcludeChilds(row.classifyId+",111").then(response => {
|
||||
this.deptOptions = this.handleTree(response.data, "classifyId");
|
||||
if (this.deptOptions.length == 0) {
|
||||
const noResultsOptions = { classifyId: this.form.parentId, classifyName: this.form.parentName, children: [] };
|
||||
|
|
|
@ -122,14 +122,14 @@
|
|||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-check"
|
||||
v-if="scope.row.status == '5' && userName != 'admin'"
|
||||
v-if="scope.row.status == '5'"
|
||||
@click="handleAudit(scope.row)"
|
||||
v-hasPermi="['system:order:edit']"
|
||||
>审核</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
v-if="scope.row.status == '6' && userName != 'admin'"
|
||||
v-if="scope.row.status == '6'"
|
||||
icon="el-icon-money"
|
||||
@click="toCommunicate(scope.row)"
|
||||
v-hasPermi="['system:order:edit']"
|
||||
|
@ -528,7 +528,7 @@ export default {
|
|||
console.log("---------"+JSON.stringify(this.form5))
|
||||
authoritypass(this.form5.orderNo).then(response => {
|
||||
this.$modal.msgSuccess("操作成功");
|
||||
this.open3 = false;
|
||||
this.open5 = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -566,6 +566,8 @@ export default {
|
|||
this.title = "修改运营商";
|
||||
this.form.isProfitSharing = this.form.isProfitSharing === 'true';
|
||||
this.form.isUsePlatformApp = this.form.isUsePlatformApp === 'true';
|
||||
console.log("userName==========="+response.data.userName)
|
||||
this.form.appUserId = response.data.userName;
|
||||
listArea().then(response => {
|
||||
this.areaOptions = response.rows;
|
||||
});
|
||||
|
|
|
@ -308,39 +308,34 @@
|
|||
<!-- 添加或修改设备对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="设备名称" prop="deviceName">
|
||||
<el-input v-model="form.deviceName" placeholder="请输入设备名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="SN" prop="sn">
|
||||
<el-input v-model="form.sn" placeholder="请输入设备SN" :disabled="title=='修改设备' && userName != 'admin'"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="MAC" prop="mac">
|
||||
<el-input v-model="form.mac" placeholder="请输入设备MAC" :disabled="title=='修改设备'" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="车辆型号" prop="modelId" >
|
||||
<el-select v-model="form.modelId" clearable placeholder="请选择车辆型号">
|
||||
<el-option
|
||||
v-for="item in modelOptions"
|
||||
:key="item.modelId"
|
||||
:label="item.model"
|
||||
:value="item.modelId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="SN" prop="sn">
|
||||
<el-input v-model="form.sn" placeholder="请输入设备SN" :disabled="title=='修改设备' && userName != 'admin'"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="车牌号" prop="vehicleNum">
|
||||
<el-input v-model="form.vehicleNum" placeholder="请输入车牌号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="运营商" prop="operator">
|
||||
<el-select v-model="form.deptId" clearable placeholder="请选择运营商">
|
||||
<el-option
|
||||
v-for="item in deptOptions"
|
||||
:key="item.deptId"
|
||||
:label="item.deptName"
|
||||
:value="item.deptId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="运营区" prop="areaId" >
|
||||
<el-select v-model="form.areaId" clearable placeholder="请选择运营区">
|
||||
<el-option
|
||||
|
@ -352,26 +347,57 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="title=='修改设备'">
|
||||
<el-form-item label="剩余电量" prop="remainingPower">
|
||||
<el-input v-model="form.remainingPower" placeholder="请输入剩余电量" disabled/>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="车辆型号" prop="modelId" >
|
||||
<el-select v-model="form.modelId" clearable placeholder="请选择车辆型号">
|
||||
<el-option
|
||||
v-for="item in modelOptions"
|
||||
:key="item.modelId"
|
||||
:label="item.model"
|
||||
:value="item.modelId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="title=='修改设备'">
|
||||
<el-form-item label="电压" prop="voltage">
|
||||
<el-input v-model="form.voltage" placeholder="请输入剩余电量" disabled/>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="设备名称" prop="deviceName">
|
||||
<el-input v-model="form.deviceName" placeholder="请输入设备名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="title=='修改设备'">
|
||||
<el-form-item label="经度" prop="longitude">
|
||||
<el-input v-model="form.longitude" placeholder="请输入经度" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="title=='修改设备'">
|
||||
<el-form-item label="纬度" prop="latitude">
|
||||
<el-input v-model="form.latitude" placeholder="请输入纬度" disabled/>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="硬件版本" prop="deviceName">
|
||||
<el-select v-model="form.hardwareVersionId" clearable placeholder="请选择硬件版本">
|
||||
<el-option
|
||||
v-for="item in hardwareVersionOptions"
|
||||
:key="item.id"
|
||||
:label="item.version"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<div v-if="title=='修改设备'">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="剩余电量" prop="remainingPower">
|
||||
<el-input v-model="form.remainingPower" placeholder="请输入剩余电量" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="电压" prop="voltage">
|
||||
<el-input v-model="form.voltage" placeholder="请输入剩余电量" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="经度" prop="longitude">
|
||||
<el-input v-model="form.longitude" placeholder="请输入经度" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="纬度" prop="latitude">
|
||||
<el-input v-model="form.latitude" placeholder="请输入纬度" disabled/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</div>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
|
@ -491,15 +517,18 @@ import ReplacementRecord from "@/views/system/device/components/replacementRecor
|
|||
import PlaceSearchDialog from '@/components/Map/location/PlaceSearchDialog';
|
||||
import { parseTime } from '../../../utils/ruoyi';
|
||||
import LocationMap from '@/components/Map/location/LocationMap.vue';
|
||||
import { getModel, listModel } from '@/api/system/model'
|
||||
import { getModel, listModel } from '@/api/system/model'
|
||||
import QrCode from "@/components/QrCode/index.vue";
|
||||
import { listArea } from '@/api/system/area'
|
||||
import { listDept } from '@/api/system/dept'
|
||||
import { listArea, selectAreaListByDeptId, selectDeptByAreaId } from '@/api/system/area'
|
||||
import { listDept } from '@/api/system/dept'
|
||||
import { listHardwareVersion } from '@/api/system/hardwareVersion'
|
||||
import Treeselect from '@riophae/vue-treeselect'
|
||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||
|
||||
export default {
|
||||
name: "Device",
|
||||
dicts: ['as_online_status', 'as_device_status','et_device_lock_status'],
|
||||
components: { Map, OrderRecord, RepairRecord, ReplacementRecord, QrCode, PlaceSearchDialog, LocationMap },
|
||||
components: { Map, OrderRecord, RepairRecord, ReplacementRecord, QrCode, PlaceSearchDialog, LocationMap,Treeselect },
|
||||
props: {
|
||||
initLng: {
|
||||
type: Number,
|
||||
|
@ -541,6 +570,7 @@ export default {
|
|||
open2: false,
|
||||
// 设备型号下拉框
|
||||
modelOptions: [],
|
||||
hardwareVersionOptions: [],
|
||||
// 运营区下拉框
|
||||
areaOptions: [],
|
||||
// 通过key重新渲染area-map组件
|
||||
|
@ -600,24 +630,19 @@ export default {
|
|||
});
|
||||
this.userName = this.$store.state.user.name;
|
||||
this.getList();
|
||||
// console.log("------"+this.activeIndex)
|
||||
if(this.userName === 'admin'){
|
||||
listDept({status: '0' }).then(response => {
|
||||
this.deptOptions = response.data;
|
||||
});
|
||||
}
|
||||
listModel(this.queryParams).then(response => {
|
||||
this.modelOptions = response.rows;
|
||||
});
|
||||
listArea(this.queryParams).then(response => {
|
||||
this.areaOptions = response.rows;
|
||||
listHardwareVersion(this.queryParams).then(response => {
|
||||
this.hardwareVersionOptions = response.rows;
|
||||
});
|
||||
},
|
||||
watch: {
|
||||
'form.modelId': function(newVal) {
|
||||
if (newVal) {
|
||||
this.fetchData(newVal);
|
||||
}
|
||||
this.fetchData(newVal);
|
||||
},
|
||||
'form.deptId': function(newVal) {
|
||||
this.fetchData2(newVal);
|
||||
},
|
||||
'form.areaId': function(newVal) {
|
||||
this.fetchData3(newVal);
|
||||
},
|
||||
open2(val) {
|
||||
if (!val) {
|
||||
|
@ -638,12 +663,56 @@ export default {
|
|||
},
|
||||
/** 当选择车型时调用 */
|
||||
fetchData(modelId) {
|
||||
// console.log("根据车型id查询运营商"+modelId)
|
||||
getModel(modelId).then(response => {
|
||||
this.areaOptions = response.data.areaList;
|
||||
let areaOptions = response.data.areaList;
|
||||
areaOptions.length > 0 ? this.form.areaId = areaOptions[0].areaId : this.form.areaId = null;
|
||||
});
|
||||
if(modelId){
|
||||
getModel(modelId).then(response => {
|
||||
// console.log("根据车型id查询运营商=========",response.data)
|
||||
this.areaOptions = response.data.areaList;
|
||||
let areaOptions = response.data.areaList;
|
||||
if(response.data.operator){
|
||||
this.form.deptId = response.data.operator;
|
||||
}else{
|
||||
this.form.deptId = null;
|
||||
}
|
||||
areaOptions.length > 0 ? this.form.areaId = areaOptions[0].areaId : this.form.areaId = null;
|
||||
});
|
||||
}else{
|
||||
this.reset();
|
||||
}
|
||||
},
|
||||
/** 当选择运营商时 根据运营商id,获取运营区和型号 */
|
||||
fetchData2(deptId) {
|
||||
if(deptId){
|
||||
selectAreaListByDeptId(deptId).then(response => {
|
||||
console.log("根据运营商id,获取运营区和型号=========",response.data)
|
||||
this.areaOptions = response.data.areaList;
|
||||
let areaOptions = response.data.areaList;
|
||||
areaOptions.length > 0 ? this.form.areaId = areaOptions[0].areaId : this.form.areaId = null;
|
||||
this.modelOptions = response.data.modelList;
|
||||
let modelOptions = response.data.modelList;
|
||||
modelOptions.length > 0 ? this.form.modelId = modelOptions[0].modelId : this.form.modelId = null;
|
||||
});
|
||||
}else{
|
||||
this.reset();
|
||||
// this.form.areaId = null;
|
||||
// this.form.modelId = null;
|
||||
}
|
||||
},
|
||||
/** 当选择运营区时 根据运营区id,获取运营商和型号 */
|
||||
fetchData3(areaId) {
|
||||
if(areaId){
|
||||
selectDeptByAreaId(areaId).then(response => {
|
||||
console.log("根据运营商id,获取运营区和型号=========",response.data)
|
||||
this.form.deptId = response.data.sysDept.deptId;
|
||||
// this.areaOptions = response.data.areaList;
|
||||
// let areaOptions = response.data.areaList;
|
||||
// areaOptions.length > 0 ? this.form.areaId = areaOptions[0].areaId : this.form.areaId = null;
|
||||
this.modelOptions = response.data.modelList;
|
||||
let modelOptions = response.data.modelList;
|
||||
modelOptions.length > 0 ? this.form.modelId = modelOptions[0].modelId : this.form.modelId = null;
|
||||
});
|
||||
}else{
|
||||
this.reset();
|
||||
}
|
||||
},
|
||||
/** 排序触发事件 */
|
||||
handleSortChange(column, prop, order) {
|
||||
|
@ -767,6 +836,8 @@ export default {
|
|||
deviceName: null,
|
||||
mac: null,
|
||||
areaId: null,
|
||||
deptId: null,
|
||||
modelId: null,
|
||||
activationTime: null,
|
||||
onlineStatus: null,
|
||||
createBy: null,
|
||||
|
@ -782,6 +853,17 @@ export default {
|
|||
latitude: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
if(this.userName === 'admin'){
|
||||
listDept({status: '0' }).then(response => {
|
||||
this.deptOptions = response.data;
|
||||
});
|
||||
}
|
||||
listModel(this.queryParams).then(response => {
|
||||
this.modelOptions = response.rows;
|
||||
});
|
||||
listArea(this.queryParams).then(response => {
|
||||
this.areaOptions = response.rows;
|
||||
});
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
|
|
|
@ -160,8 +160,8 @@
|
|||
元(含
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item prop="startingTime">
|
||||
<el-input v-model="form.startingTime" placeholder="请输入起步时间" />
|
||||
<el-form-item>
|
||||
<el-input v-model="startingTime" placeholder="请输入起步时间" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="2" style="line-height: 32px;">
|
||||
|
@ -172,13 +172,13 @@
|
|||
<el-form-item label="超出价">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="4">
|
||||
<el-input v-model="form.timeoutPrice" placeholder="请输入超出价格" />
|
||||
<el-input v-model="timeoutPrice" placeholder="请输入超出价格" />
|
||||
</el-col>
|
||||
<el-col :span="2" style="line-height: 32px;">
|
||||
元/
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item prop="timeoutTime">
|
||||
<el-form-item>
|
||||
<el-input v-model="timeoutTime" placeholder="请输入超出时间" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -369,6 +369,8 @@ export default {
|
|||
chargingCycleValue: '',
|
||||
cappedAmount: '',
|
||||
rule: [{ start: '', end: '', eachUnit: '', fee: '' }],
|
||||
timeoutTime: '',
|
||||
startingTime: ''
|
||||
// chargingCycle: 1, // 默认选择第一个选项
|
||||
// chargingCycleValue: '', // 对应的值
|
||||
},
|
||||
|
@ -423,14 +425,17 @@ export default {
|
|||
sectionCharges: [
|
||||
{ required: true, message: '请输入区间收费', trigger: 'blur' },
|
||||
],
|
||||
startingTime: [
|
||||
{ required: true, message: '请输入起步时间', trigger: 'blur' },
|
||||
{ pattern: /^\d+$/, message: '起步时间必须为正整数', trigger: 'blur' }
|
||||
],
|
||||
timeoutTime: [
|
||||
{ required: true, message: '请输入超时时间', trigger: 'blur' },
|
||||
{ pattern: /^\d+$/, message: '超时时间必须为正整数', trigger: 'blur' }
|
||||
],
|
||||
areaId: [
|
||||
{ required: true, message: '请选择运营区', trigger: 'change' },
|
||||
]
|
||||
// startingTime: [
|
||||
// { required: true, message: '请输入起步时间', trigger: 'blur' },
|
||||
// { pattern: /^\d+$/, message: '起步时间必须为正整数', trigger: 'blur' }
|
||||
// ],
|
||||
// timeoutTime: [
|
||||
// { required: true, message: '请输入超时时间', trigger: 'blur' },
|
||||
// { pattern: /^\d+$/, message: '超时时间必须为正整数', trigger: 'blur' }
|
||||
// ],
|
||||
},
|
||||
};
|
||||
},
|
||||
|
@ -497,9 +502,9 @@ export default {
|
|||
this.enablelnterval = false,
|
||||
this.more = { start: '', end: '9999', eachUnit: '', fee: '' }
|
||||
this.rule = [{ start: '', end: '', eachUnit: '', fee: '' }],
|
||||
this.form.timeoutTime = '',
|
||||
this.timeoutTime = '',
|
||||
this.startingPrice = '',
|
||||
this.form.startingTime = '',
|
||||
this.startingTime = '',
|
||||
this.timeoutPrice = '',
|
||||
this.resetForm("form")
|
||||
},
|
||||
|
@ -543,9 +548,9 @@ export default {
|
|||
// delete this.form.ridingRuleJson;
|
||||
let json = JSON.parse(response.data.ridingRuleJson)
|
||||
if (this.form.ridingRule == 1) {
|
||||
this.form.timeoutTime = json.timeoutTime
|
||||
this.timeoutTime = json.timeoutTime
|
||||
this.startingPrice = json.startingPrice
|
||||
this.form.startingTime = json.startingTime
|
||||
this.startingTime = json.startingTime
|
||||
this.timeoutPrice = json.timeoutPrice
|
||||
} else {
|
||||
this.rule = json.rule.slice(0, -1);
|
||||
|
@ -567,6 +572,15 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
// 如何不是整数,弹窗提示
|
||||
if (!/^\d+$/.test(this.startingTime)) {
|
||||
this.$modal.msgError('起步时间必须为正整数');
|
||||
return;
|
||||
}
|
||||
if (!/^\d+$/.test(this.timeoutTime)) {
|
||||
this.$modal.msgError('超时时间必须为正整数');
|
||||
return;
|
||||
}
|
||||
// this.form.rule.push(this.more)
|
||||
// console.log(this.form,'mmmmmmmmmmmmm');
|
||||
let data = { ...this.form }; // 使用对象扩展运算符确保复制一个新对象,避免直接修改 this.form
|
||||
|
@ -580,9 +594,9 @@ export default {
|
|||
data.ridingRuleJson.enablelnterval = this.enablelnterval
|
||||
|
||||
} else {
|
||||
data.ridingRuleJson.timeoutTime = this.form.timeoutTime
|
||||
data.ridingRuleJson.timeoutTime = this.timeoutTime
|
||||
data.ridingRuleJson.startingPrice = this.startingPrice
|
||||
data.ridingRuleJson.startingTime = this.form.startingTime
|
||||
data.ridingRuleJson.startingTime = this.startingTime
|
||||
data.ridingRuleJson.timeoutPrice = this.timeoutPrice
|
||||
|
||||
}
|
||||
|
@ -636,9 +650,9 @@ export default {
|
|||
this.enablelnterval = false
|
||||
|
||||
this.rule = [{ start: '', end: '', eachUnit: '', fee: '' }]
|
||||
this.form.timeoutTime = ''
|
||||
this.timeoutTime = ''
|
||||
this.startingPrice = ''
|
||||
this.form.startingTime = ''
|
||||
this.startingTime = ''
|
||||
this.timeoutPrice = ''
|
||||
}
|
||||
},
|
||||
|
|
280
src/views/system/hardwareVersion/index.vue
Normal file
280
src/views/system/hardwareVersion/index.vue
Normal file
|
@ -0,0 +1,280 @@
|
|||
<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="version">
|
||||
<el-input
|
||||
v-model="queryParams.version"
|
||||
placeholder="请输入版本号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="生产时间" prop="productionTime">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.productionTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择生产时间">
|
||||
</el-date-picker>
|
||||
</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">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:hardwareVersion:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['system:hardwareVersion: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:hardwareVersion: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:hardwareVersion:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="hardwareVersionList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键" align="center" prop="id" />-->
|
||||
<el-table-column label="版本号" align="center" prop="version" />
|
||||
<el-table-column label="生产时间" align="center" prop="productionTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.productionTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="数量" align="center" prop="quantity" />
|
||||
<el-table-column label="版本说明" align="center" prop="instructions" />
|
||||
<el-table-column label="操作" align="center" 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:hardwareVersion:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:hardwareVersion: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="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="版本号" prop="version">
|
||||
<el-input v-model="form.version" placeholder="请输入版本号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="生产时间" prop="productionTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.productionTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择生产时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="数量" prop="quantity">
|
||||
<el-input v-model="form.quantity" placeholder="请输入数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="版本说明" prop="instructions">
|
||||
<el-input v-model="form.instructions" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
</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 { listHardwareVersion, getHardwareVersion, delHardwareVersion, addHardwareVersion, updateHardwareVersion } from "@/api/system/hardwareVersion";
|
||||
|
||||
export default {
|
||||
name: "HardwareVersion",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 硬件版本表格数据
|
||||
hardwareVersionList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
version: null,
|
||||
productionTime: null,
|
||||
instructions: null,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询硬件版本列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listHardwareVersion(this.queryParams).then(response => {
|
||||
this.hardwareVersionList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
version: null,
|
||||
productionTime: null,
|
||||
quantity: null,
|
||||
instructions: null,
|
||||
createTime: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加硬件版本";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getHardwareVersion(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改硬件版本";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateHardwareVersion(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addHardwareVersion(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除硬件版本编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delHardwareVersion(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('system/hardwareVersion/export', {
|
||||
...this.queryParams
|
||||
}, `hardwareVersion_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
|
@ -238,6 +238,7 @@ export default {
|
|||
reset() {
|
||||
this.form = {
|
||||
modelId: null,
|
||||
hardwareVersionId: null,
|
||||
model: null,
|
||||
brand: null,
|
||||
operator: null,
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
<el-table-column label="纬度" align="center" prop="latitude" />
|
||||
<el-table-column label="记录时间" align="center" prop="createTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
|
@ -148,7 +148,6 @@
|
|||
size="mini"
|
||||
type="text"
|
||||
v-if="scope.row.status == 1 || scope.row.status == 3"
|
||||
v-show="scope.row.isDepositDeduction == '1'"
|
||||
icon="el-icon-wallet"
|
||||
@click="deduction(scope.row)"
|
||||
v-hasPermi="['system:order:edit']"
|
||||
|
|
253
src/views/system/softwareVersion/index.vue
Normal file
253
src/views/system/softwareVersion/index.vue
Normal file
|
@ -0,0 +1,253 @@
|
|||
<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="version">
|
||||
<el-input
|
||||
v-model="queryParams.version"
|
||||
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">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:softwareVersion:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['system:softwareVersion: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:softwareVersion: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:softwareVersion:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="softwareVersionList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键" align="center" prop="id" />-->
|
||||
<el-table-column label="版本号" align="center" prop="version" />
|
||||
<el-table-column label="更新内容" align="center" prop="content" />
|
||||
<el-table-column label="操作" align="center" 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:softwareVersion:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:softwareVersion: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="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="版本号" prop="version">
|
||||
<el-input v-model="form.version" placeholder="请输入版本号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新内容">
|
||||
<editor v-model="form.content" :min-height="192"/>
|
||||
</el-form-item>
|
||||
</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 { listSoftwareVersion, getSoftwareVersion, delSoftwareVersion, addSoftwareVersion, updateSoftwareVersion } from "@/api/system/softwareVersion";
|
||||
|
||||
export default {
|
||||
name: "SoftwareVersion",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 软件版本表格数据
|
||||
softwareVersionList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
version: null,
|
||||
content: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询软件版本列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listSoftwareVersion(this.queryParams).then(response => {
|
||||
this.softwareVersionList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
version: null,
|
||||
createTime: null,
|
||||
updateTime: null,
|
||||
content: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加软件版本";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getSoftwareVersion(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改软件版本";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateSoftwareVersion(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addSoftwareVersion(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除软件版本编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delSoftwareVersion(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('system/softwareVersion/export', {
|
||||
...this.queryParams
|
||||
}, `softwareVersion_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
|
@ -141,6 +141,8 @@
|
|||
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
|
||||
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="角色" align="center" key="roleNames" prop="roleNames" v-if="columns[2].visible" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="运营区" align="center" key="areaName" prop="areaName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="运营商" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
|
||||
<el-table-column label="关联APP用户" align="center" key="appUserName" prop="appUserName" v-if="columns[5].visible" width="120" />
|
||||
|
@ -213,20 +215,27 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="归属运营商" prop="deptId">
|
||||
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属运营商" />
|
||||
<el-form-item label="手机号码" prop="phonenumber">
|
||||
<el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="手机号码" prop="phonenumber">
|
||||
<el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
|
||||
<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="email">
|
||||
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
|
||||
<el-form-item label="运营区" prop="areaId" >
|
||||
<el-select v-model="form.areaId" clearable placeholder="请选择运营区">
|
||||
<el-option
|
||||
v-for="item in areaOptions"
|
||||
:key="item.areaId"
|
||||
:label="item.areaName"
|
||||
:value="item.areaId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -262,18 +271,6 @@
|
|||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="运营区" prop="areaId" >
|
||||
<el-select v-model="form.areaId" clearable placeholder="请选择运营区">
|
||||
<el-option
|
||||
v-for="item in areaOptions"
|
||||
:key="item.areaId"
|
||||
:label="item.areaName"
|
||||
:value="item.areaId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
|
|
|
@ -37,16 +37,6 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="业务类型" prop="busType">
|
||||
<el-select style="width: 150px" v-model="queryParams.busType" placeholder="请选择业务类型" clearable>
|
||||
<el-option
|
||||
v-for="dict in dict.type.et_business_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="交易时间">
|
||||
<el-date-picker
|
||||
v-model="dateRange"
|
||||
|
@ -271,7 +261,7 @@ export default {
|
|||
orderNo: null,
|
||||
outTradeNo: null,
|
||||
type: null,
|
||||
busType: null,
|
||||
busType: '5',
|
||||
amount: null,
|
||||
handlingCharge: null,
|
||||
operatorDividend: null,
|
||||
|
|
Loading…
Reference in New Issue
Block a user