提交
This commit is contained in:
parent
bf08b8b3f0
commit
901761fed6
@ -5,8 +5,8 @@ VITE_APP_TITLE = 智慧换电管理系统
|
|||||||
VITE_APP_ENV = 'development'
|
VITE_APP_ENV = 'development'
|
||||||
|
|
||||||
# 开发环境
|
# 开发环境
|
||||||
#VITE_APP_BASE_API = 'http://192.168.5.213:9100/gateway'
|
VITE_APP_BASE_API = 'http://192.168.5.213:9100/gateway'
|
||||||
VITE_APP_BASE_API = 'http://192.168.5.14:9100/gateway'
|
#VITE_APP_BASE_API = 'http://192.168.5.230:9100/gateway'
|
||||||
#VITE_APP_BASE_API = '/dev-api'
|
#VITE_APP_BASE_API = '/dev-api'
|
||||||
#VITE_APP_BASE_API = 'https://api.evo-techina.com'
|
#VITE_APP_BASE_API = 'https://api.evo-techina.com'
|
||||||
|
|
||||||
|
|||||||
18
src/App.vue
18
src/App.vue
@ -7,17 +7,22 @@ import appStore from "@/stores/app";
|
|||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
import Login from './views/components/login.vue'
|
import Login from './views/components/login.vue'
|
||||||
|
|
||||||
|
import { storeToRefs } from 'pinia'
|
||||||
|
|
||||||
const TIEM = 1000*60*10
|
const TIEM = 1000*60*10
|
||||||
let openpop = ref(false)
|
let openpop = ref(false)
|
||||||
|
|
||||||
watch(() => appStore().isEffecti,(v) => {
|
|
||||||
|
let { isEffecti,loginPage } = storeToRefs(appStore())
|
||||||
|
|
||||||
|
watch(isEffecti,(v) => {
|
||||||
openpop.value = false
|
openpop.value = false
|
||||||
if(!v && getToken() && !appStore().loginPage){
|
if(!v && getToken() && !loginPage){
|
||||||
openpop.value = true
|
openpop.value = true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(() => appStore().loginPage,(v) => {
|
watch(() => loginPage,(v) => {
|
||||||
if(v){
|
if(v){
|
||||||
openpop.value = false
|
openpop.value = false
|
||||||
}
|
}
|
||||||
@ -34,6 +39,13 @@ import Login from './views/components/login.vue'
|
|||||||
})
|
})
|
||||||
openpop.value = true
|
openpop.value = true
|
||||||
}
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
removeToken()
|
||||||
|
ElMessage({
|
||||||
|
type: 'warning',
|
||||||
|
message: '登录失效请重新登录'
|
||||||
|
})
|
||||||
|
openpop.value = true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}, TIEM)
|
}, TIEM)
|
||||||
|
|||||||
@ -163,3 +163,8 @@ export function dzdzd(params:any) {
|
|||||||
export function downdzdz(params:any) {
|
export function downdzdz(params:any) {
|
||||||
return server.download('/cloud/order/swap/bill/download',params,'电子对账单.xlsx')
|
return server.download('/cloud/order/swap/bill/download',params,'电子对账单.xlsx')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//导出订单
|
||||||
|
export function orderept(params:any) {
|
||||||
|
return server.download('/cloud/order/swap/export',params,'订单.xlsx')
|
||||||
|
}
|
||||||
|
|||||||
@ -11,9 +11,13 @@ interface Addobj{
|
|||||||
productionDate?:String //生产日期
|
productionDate?:String //生产日期
|
||||||
registrationDate?:String //注册时间
|
registrationDate?:String //注册时间
|
||||||
sourceCode?:String //站码或车牌照
|
sourceCode?:String //站码或车牌照
|
||||||
stationCode?:String //换电站编码
|
// stationCode?:String //换电站编码
|
||||||
stationName:String //换电站名称
|
// stationName:String //换电站名称
|
||||||
soc?:String|Number //当前电量
|
soc?:String|Number //当前电量
|
||||||
|
dccNo?:String //电池仓序号
|
||||||
|
pointType:String|Number //轨迹点类型 1-站,2-车
|
||||||
|
pointCode:String //轨迹点编码
|
||||||
|
pointName:String //轨迹点名称
|
||||||
}
|
}
|
||||||
|
|
||||||
export function addhdz(data:Addobj) {
|
export function addhdz(data:Addobj) {
|
||||||
@ -89,3 +93,20 @@ export function addzhuis(data:Addzs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//电池数据/
|
||||||
|
// type:1 近一周 2近半个月 3近一个月 4近半年 5 近一年
|
||||||
|
// batCode: 电池编码
|
||||||
|
export function getdcsj(batCode:any,beginTime:any,endTime:any) {
|
||||||
|
return server.request({
|
||||||
|
headers:{
|
||||||
|
'content-type':'application/json;charset=utf-8'
|
||||||
|
},
|
||||||
|
url: '/cloud/battery/station/dc/dynamic/detail',
|
||||||
|
method: 'post',
|
||||||
|
data:{
|
||||||
|
batCode,
|
||||||
|
beginTime,
|
||||||
|
endTime
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
@ -10,7 +10,7 @@ interface Addobj{
|
|||||||
eachKmFee?:String|Number //每公里收费
|
eachKmFee?:String|Number //每公里收费
|
||||||
eachSocFee?:String|Number //每SOC收费
|
eachSocFee?:String|Number //每SOC收费
|
||||||
eachKwhFee?:String|Number //每度电收费
|
eachKwhFee?:String|Number //每度电收费
|
||||||
timeServiceFee?:String|Number //谷段服务费
|
serviceFee?:String|Number //谷段服务费
|
||||||
}
|
}
|
||||||
|
|
||||||
export function addhdz(data:Addobj) {
|
export function addhdz(data:Addobj) {
|
||||||
|
|||||||
@ -17,3 +17,12 @@ export function mqttlist(params:Querydata) {
|
|||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//在线记录
|
||||||
|
export function onlinelist(params:any) {
|
||||||
|
return server.request({
|
||||||
|
url: '/cloud/mqtt/client/list',
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
51
src/api/systemSet/abnormal.ts
Normal file
51
src/api/systemSet/abnormal.ts
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
import server from '@/utils/request'
|
||||||
|
|
||||||
|
|
||||||
|
//查询
|
||||||
|
interface Query{
|
||||||
|
pageSize:string|number //每页条数
|
||||||
|
pageNo:string|number //页数
|
||||||
|
path:string //路径
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getadlist(params:Query) {
|
||||||
|
return server.request({
|
||||||
|
url: '/cloud/alarm/list',
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//新增
|
||||||
|
interface Addata{
|
||||||
|
id?:string
|
||||||
|
recipientIds:string //通知人员
|
||||||
|
path:string //路径
|
||||||
|
}
|
||||||
|
export function addyctz(data:Addata) {
|
||||||
|
return server.request({
|
||||||
|
url: '/cloud/alarm/add',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//修改
|
||||||
|
export function updateab(data:Addata) {
|
||||||
|
return server.request({
|
||||||
|
url: '/cloud/alarm/update',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除
|
||||||
|
export function delab(id:String) {
|
||||||
|
return server.request({
|
||||||
|
url: '/cloud/alarm/del',
|
||||||
|
method: 'post',
|
||||||
|
data:{
|
||||||
|
id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
@ -19,6 +19,15 @@ export function getyyslist(params:Query) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//下拉菜单查询
|
||||||
|
export function optionyyslist() {
|
||||||
|
return server.request({
|
||||||
|
url: '/resource/proxyoperater/option/list',
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
//新增
|
//新增
|
||||||
interface Addata{
|
interface Addata{
|
||||||
division:String //区划名称
|
division:String //区划名称
|
||||||
|
|||||||
@ -54,7 +54,7 @@ export function updateuser(data:User) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//删除
|
//删除
|
||||||
export function deleteuser(data:String) {
|
export function deleteuser(data:any) {
|
||||||
return server.request({
|
return server.request({
|
||||||
url: '/resource/user/del',
|
url: '/resource/user/del',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
|
|||||||
@ -2,14 +2,15 @@
|
|||||||
<div class="sidebar">
|
<div class="sidebar">
|
||||||
<!--background-color="#324157"-->
|
<!--background-color="#324157"-->
|
||||||
<!--text-color="#bfcbd9"-->
|
<!--text-color="#bfcbd9"-->
|
||||||
|
<!--:collapse="collapse"-->
|
||||||
<el-menu
|
<el-menu
|
||||||
class="sidebar-el-menu"
|
class="sidebar-el-menu"
|
||||||
:default-active="onRoutes"
|
:default-active="onRoutes"
|
||||||
:collapse="collapse"
|
|
||||||
background-color="#fff"
|
background-color="#fff"
|
||||||
text-color="#242f42"
|
text-color="#242f42"
|
||||||
active-text-color="#20a0ff"
|
active-text-color="#20a0ff"
|
||||||
unique-opened
|
unique-opened
|
||||||
|
:collapse="collapse"
|
||||||
router
|
router
|
||||||
>
|
>
|
||||||
<template v-for="item in menu">
|
<template v-for="item in menu">
|
||||||
@ -73,6 +74,8 @@ const onRoutes = computed(() => {
|
|||||||
|
|
||||||
const menu = computed(() => pStore.sidebarMenu);
|
const menu = computed(() => pStore.sidebarMenu);
|
||||||
const collapse = computed(() => pStore.sidebarIsCollapsed);
|
const collapse = computed(() => pStore.sidebarIsCollapsed);
|
||||||
|
|
||||||
|
console.log(menu.value,'menu')
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.el-menu-item:hover {
|
.el-menu-item:hover {
|
||||||
|
|||||||
@ -288,6 +288,9 @@ const store = defineStore({
|
|||||||
//this.tagsRouterPaths = getTagsRouterPath(this.tagsRouters);
|
//this.tagsRouterPaths = getTagsRouterPath(this.tagsRouters);
|
||||||
//全部路由
|
//全部路由
|
||||||
//this.routes = concatRouter(this.tagsRouters, constantRoutes);
|
//this.routes = concatRouter(this.tagsRouters, constantRoutes);
|
||||||
|
|
||||||
|
console.log(this.sidebarMenu)
|
||||||
|
|
||||||
resolve(this.routes);
|
resolve(this.routes);
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
if(err == 'S0405'){
|
if(err == 'S0405'){
|
||||||
|
|||||||
@ -299,6 +299,44 @@ export class Service {
|
|||||||
downloadLoading.close();
|
downloadLoading.close();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public downloadget<T>(url: string, params: T, filename: string, config: AxiosRequestConfig = {}) {
|
||||||
|
const downloadLoading = ElLoading.service({
|
||||||
|
text: "正在下载数据,请稍候",
|
||||||
|
spinner: "el-icon-loading",
|
||||||
|
background: "rgba(0, 0, 0, 0.7)",
|
||||||
|
});
|
||||||
|
return this.instance
|
||||||
|
.get<T, Blob>(url, {
|
||||||
|
params,
|
||||||
|
// transformRequest: [
|
||||||
|
// (params) => {
|
||||||
|
// return tansParams(params);
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||||
|
responseType: "blob",
|
||||||
|
//...config,
|
||||||
|
})
|
||||||
|
.then(async (data) => {
|
||||||
|
const isLogin = await blobValidate(data);
|
||||||
|
if (isLogin) {
|
||||||
|
const blob = new Blob([data]);
|
||||||
|
saveAs(blob, filename);
|
||||||
|
} else {
|
||||||
|
const resText = await data.text();
|
||||||
|
const rspObj = JSON.parse(resText);
|
||||||
|
const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
|
||||||
|
ElMessage.error(errMsg);
|
||||||
|
}
|
||||||
|
downloadLoading.close();
|
||||||
|
})
|
||||||
|
.catch((r) => {
|
||||||
|
console.error(r);
|
||||||
|
ElMessage.error("下载文件出现错误,请联系管理员!");
|
||||||
|
downloadLoading.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 默认导出Request实例
|
// 默认导出Request实例
|
||||||
|
|||||||
@ -584,6 +584,7 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
initChart4()
|
initChart4()
|
||||||
|
|
||||||
xdata.value = (rps.data as any).trendList.map((n:any) => {
|
xdata.value = (rps.data as any).trendList.map((n:any) => {
|
||||||
|
|||||||
@ -17,14 +17,15 @@
|
|||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-form-item label="经度">
|
<el-form-item label="经度">
|
||||||
<el-input v-model="lat" readonly style="width: 100%" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="维度">
|
|
||||||
<el-input v-model="lng" readonly style="width: 100%" />
|
<el-input v-model="lng" readonly style="width: 100%" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="5">
|
||||||
|
<el-form-item label="纬度">
|
||||||
|
<el-input v-model="lat" readonly style="width: 100%" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="4" style="padding-left:20px;">
|
<el-col :span="4" style="padding-left:20px;">
|
||||||
<el-button type="primary" @click="save">确定</el-button>
|
<el-button type="primary" @click="save">确定</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -37,11 +38,11 @@
|
|||||||
import { jsonp } from 'vue-jsonp'
|
import { jsonp } from 'vue-jsonp'
|
||||||
import {ref,nextTick } from 'vue'
|
import {ref,nextTick } from 'vue'
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
|
lng?:string|number,
|
||||||
lat?:string|number
|
lat?:string|number
|
||||||
lng?:string|number
|
|
||||||
}>(), {
|
}>(), {
|
||||||
lat:39.916527,
|
lng:116.397128,
|
||||||
lng:116.397128
|
lat:39.916527
|
||||||
})
|
})
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
chang: [latlng?:string]
|
chang: [latlng?:string]
|
||||||
@ -149,7 +150,7 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
function save() {
|
function save() {
|
||||||
emit('chang',lat.value?`${lat.value},${lng.value}`:'')
|
emit('chang',lat.value?`${lng.value},${lat.value}`:'')
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!--large / default / small-->
|
<!--large / default / small-->
|
||||||
<el-form-item prop="username" size="large">
|
<el-form-item prop="username" size="large">
|
||||||
<el-input size="large" v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
|
<el-input size="large" v-model="loginForm.username" type="text" clearable auto-complete="off" placeholder="账号">
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<myUser />
|
<myUser />
|
||||||
@ -18,7 +18,7 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item size="large" prop="password">
|
<el-form-item size="large" prop="password">
|
||||||
<el-input size="large" v-model="loginForm.password" type="password" auto-complete="off" placeholder="密码" @keyup.enter="handleLogin">
|
<el-input size="large" v-model="loginForm.password" type="password" clearable auto-complete="off" placeholder="密码" @keyup.enter="handleLogin">
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<myPassword />
|
<myPassword />
|
||||||
@ -27,7 +27,7 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item size="large" v-if="captchaEnabled" prop="code">
|
<el-form-item size="large" v-if="captchaEnabled" prop="code">
|
||||||
<el-input size="large" v-model="loginForm.code" auto-complete="off" placeholder="验证码" style="width: 63%" @keyup.enter="handleLogin">
|
<el-input size="large" v-model="loginForm.code" auto-complete="off" clearable placeholder="验证码" style="width: 63%" @keyup.enter="handleLogin">
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<myValidCode />
|
<myValidCode />
|
||||||
@ -85,8 +85,8 @@
|
|||||||
|
|
||||||
const codeUrl = ref<string>("");
|
const codeUrl = ref<string>("");
|
||||||
const loginForm = ref<LoginReq>({
|
const loginForm = ref<LoginReq>({
|
||||||
username: "admin",
|
username: "",
|
||||||
password: "admin123",
|
password: "",
|
||||||
rememberMe: false,
|
rememberMe: false,
|
||||||
code: "",
|
code: "",
|
||||||
uuid: "",
|
uuid: "",
|
||||||
@ -119,6 +119,7 @@
|
|||||||
*/
|
*/
|
||||||
let ipcode = ref<string>("");
|
let ipcode = ref<string>("");
|
||||||
const getCode = () => {
|
const getCode = () => {
|
||||||
|
loginForm.value.code = ''
|
||||||
getCodeImg().then( res => {
|
getCodeImg().then( res => {
|
||||||
let data = res.data as any
|
let data = res.data as any
|
||||||
if(data){
|
if(data){
|
||||||
|
|||||||
@ -1,18 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div style="padding:10px 0 20px;">
|
<div>
|
||||||
<!-- <el-button
|
<!-- <el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
plain
|
plain
|
||||||
icon="Plus"
|
icon="Plus"
|
||||||
@click="showpop(1)">新增</el-button> -->
|
@click="showpop(1)">新增</el-button> -->
|
||||||
<el-table
|
<el-table
|
||||||
style="width:100%;margin-top: 10px;"
|
style="width:100%;"
|
||||||
:data="yysList"
|
:data="yysList"
|
||||||
border
|
border
|
||||||
stripe
|
stripe
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
max-height="620px"
|
:max-height="total>10?'330px':'380px'"
|
||||||
>
|
>
|
||||||
<el-table-column label="交易编码" min-width="280" align="center" prop="tradeNo" :show-overflow-tooltip="true" />
|
<el-table-column label="交易编码" min-width="280" align="center" prop="tradeNo" :show-overflow-tooltip="true" />
|
||||||
|
|
||||||
@ -81,7 +81,7 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div v-if="total > 10" style="display: flex;justify-content: right;">
|
<div v-if="total > 10" style="display: flex;padding-top: 10px;justify-content: right;">
|
||||||
<el-pagination
|
<el-pagination
|
||||||
v-model:current-page="queryParams.pageNo"
|
v-model:current-page="queryParams.pageNo"
|
||||||
v-model:page-size="queryParams.pageSize"
|
v-model:page-size="queryParams.pageSize"
|
||||||
|
|||||||
@ -6,31 +6,33 @@
|
|||||||
:model="queryParams"
|
:model="queryParams"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
>
|
>
|
||||||
<el-form-item label="户主类型" prop="ownerType">
|
<!-- <el-form-item label="户主类型" prop="ownerType">
|
||||||
<el-select v-model="queryParams.ownerType" placeholder="请选择类型" style="width: 200px;">
|
<el-select v-model="queryParams.ownerType" placeholder="请选择类型" style="width: 200px;">
|
||||||
<el-option label="个人" value="1" />
|
<el-option label="个人" value="1" />
|
||||||
<el-option label="企业" value="2" />
|
<el-option label="企业" value="2" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="户主名称" prop="accName">
|
<el-form-item label="户主名称" prop="accName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.accName"
|
v-model="queryParams.accName"
|
||||||
placeholder="请输入户主名称"
|
placeholder="请输入户主名称"
|
||||||
maxlength="50"
|
maxlength="20"
|
||||||
|
clearable
|
||||||
|
style="width: 200px;"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="联系电话" prop="phone">
|
<!-- <el-form-item label="联系电话" prop="phone">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.phone"
|
v-model="queryParams.phone"
|
||||||
placeholder="请输入联系电话"
|
placeholder="请输入联系电话"
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="引入站点" prop="stationCode">
|
<!-- <el-form-item label="引入站点" prop="stationCode">
|
||||||
<el-select v-model="queryParams.stationCode" placeholder="请选择换电站" style="width: 200px;">
|
<el-select v-model="queryParams.stationCode" placeholder="请选择换电站" style="width: 200px;">
|
||||||
<el-option v-for="n in yunList" :label="n.name" :value="n.code" />
|
<el-option v-for="n in yunList" :label="n.name" :value="n.code" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="Search" @click="handBtnqu">搜索</el-button>
|
<el-button type="primary" icon="Search" @click="handBtnqu">搜索</el-button>
|
||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
@ -69,7 +71,7 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="账户编码" min-width="300" align="center" prop="code" :show-overflow-tooltip="true" />
|
<el-table-column label="账户编码" min-width="300" align="center" prop="code" :show-overflow-tooltip="true" />
|
||||||
|
|
||||||
<el-table-column label="引入站点" min-width="250" align="center" prop="stationName" :show-overflow-tooltip="true" />
|
<el-table-column label="引入站点" min-width="220" align="center" prop="stationName" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="账户总金额(元)" min-width="120" align="left" prop="totalAmount" :show-overflow-tooltip="true">
|
<el-table-column label="账户总金额(元)" min-width="120" align="left" prop="totalAmount" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.totalAmount/100}}</div>
|
<div>{{scope.row.totalAmount/100}}</div>
|
||||||
@ -334,7 +336,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
disabled
|
disabled
|
||||||
v-model="addata.totalAmount"
|
v-model="addata.totalAmount"
|
||||||
placeholder="请输入总金额"
|
placeholder=""
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -344,7 +346,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
disabled
|
disabled
|
||||||
v-model="addata.rechargeAmount"
|
v-model="addata.rechargeAmount"
|
||||||
placeholder="请输入充值金额"
|
placeholder=""
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -354,7 +356,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
disabled
|
disabled
|
||||||
v-model="addata.giftAmount"
|
v-model="addata.giftAmount"
|
||||||
placeholder="请输入赠送金额"
|
placeholder=""
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -364,7 +366,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
disabled
|
disabled
|
||||||
v-model="addata.point"
|
v-model="addata.point"
|
||||||
placeholder="请输入积分余额"
|
placeholder=""
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -374,7 +376,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
disabled
|
disabled
|
||||||
v-model="addata.deposit"
|
v-model="addata.deposit"
|
||||||
placeholder="请输入押金"
|
placeholder=""
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -393,7 +395,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
disabled
|
disabled
|
||||||
v-model="addata.rent"
|
v-model="addata.rent"
|
||||||
placeholder="请输入租金"
|
placeholder=""
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -412,7 +414,7 @@
|
|||||||
<div class="mktit">余额明细</div>
|
<div class="mktit">余额明细</div>
|
||||||
<baldetails
|
<baldetails
|
||||||
v-if="drawer"
|
v-if="drawer"
|
||||||
style="padding: 20px;"
|
style="padding: 20px 20px 0;"
|
||||||
:code='code'
|
:code='code'
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -469,7 +471,7 @@
|
|||||||
let total = ref(0)
|
let total = ref(0)
|
||||||
let yysList = ref<any>([])
|
let yysList = ref<any>([])
|
||||||
function handBtnqu(){
|
function handBtnqu(){
|
||||||
//queryParams.pageNo = 1
|
queryParams.pageNo = 1
|
||||||
getyys()
|
getyys()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
<el-input v-model="queryParams.plateNum" placeholder="请输入车牌号" clearable />
|
<el-input v-model="queryParams.plateNum" placeholder="请输入车牌号" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="订单状态" prop="status">
|
<el-form-item label="订单状态" prop="status">
|
||||||
<el-select v-model="queryParams.status" placeholder="请选择状态" style="width: 200px;">
|
<el-select v-model="queryParams.status" placeholder="请选择状态" style="width: 193px;">
|
||||||
<el-option label="已创建" value="1" />
|
<el-option label="已创建" value="1" />
|
||||||
<el-option label="换电中" value="2" />
|
<el-option label="换电中" value="2" />
|
||||||
<el-option label="换电完成" value="3" />
|
<el-option label="换电完成" value="3" />
|
||||||
@ -21,6 +21,7 @@
|
|||||||
<el-option label="充电完成" value="5" />
|
<el-option label="充电完成" value="5" />
|
||||||
<el-option label="待结算" value="6" />
|
<el-option label="待结算" value="6" />
|
||||||
<el-option label="已完成" value="7" />
|
<el-option label="已完成" value="7" />
|
||||||
|
<el-option label="支付中" value="8" />
|
||||||
<el-option label="已取消" value="9" />
|
<el-option label="已取消" value="9" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -42,8 +43,13 @@
|
|||||||
placeholder="请选择时间"
|
placeholder="请选择时间"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="运营商" prop="proCode">
|
||||||
|
<el-select v-model="queryParams.proCode" placeholder="请选择运营商" style="width: 193px;">
|
||||||
|
<el-option v-for="n in yunysList" :label="n.label" :value="n.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="换电站" prop="stationCode">
|
<el-form-item label="换电站" prop="stationCode">
|
||||||
<el-select v-model="queryParams.stationCode" placeholder="请选择换电站" style="width: 200px;">
|
<el-select v-model="queryParams.stationCode" placeholder="请选择换电站" style="width: 193px;">
|
||||||
<el-option v-for="n in yunList" :label="n.name" :value="n.code" />
|
<el-option v-for="n in yunList" :label="n.name" :value="n.code" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -53,6 +59,8 @@
|
|||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="Search" @click="handBtnqu">搜索</el-button>
|
<el-button type="primary" icon="Search" @click="handBtnqu">搜索</el-button>
|
||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
|
<el-button type="warning" plain icon="Download" @click="eptdd">导出</el-button>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -723,9 +731,14 @@
|
|||||||
delhdz,
|
delhdz,
|
||||||
jsfeiy,
|
jsfeiy,
|
||||||
gethdbz,
|
gethdbz,
|
||||||
oderdetails
|
oderdetails,
|
||||||
|
orderept
|
||||||
} from '@/api/order/replabatt'
|
} from '@/api/order/replabatt'
|
||||||
|
|
||||||
|
import {
|
||||||
|
optionyyslist
|
||||||
|
} from '@/api/systemSet/operator'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
getwxlist
|
getwxlist
|
||||||
} from '@/api/operation/wxuser'
|
} from '@/api/operation/wxuser'
|
||||||
@ -844,7 +857,8 @@
|
|||||||
stationName:'', //换电站名称
|
stationName:'', //换电站名称
|
||||||
userId:'', //换电车主ID
|
userId:'', //换电车主ID
|
||||||
tradeNo:'', //交易编码
|
tradeNo:'', //交易编码
|
||||||
status:''
|
status:'',
|
||||||
|
proCode:''
|
||||||
})
|
})
|
||||||
|
|
||||||
//查询
|
//查询
|
||||||
@ -855,10 +869,23 @@
|
|||||||
getyys()
|
getyys()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function eptdd(){
|
||||||
|
orderept(queryParams)
|
||||||
|
}
|
||||||
|
|
||||||
|
//初始查询运营商
|
||||||
|
let yunysList = ref<any>([])
|
||||||
|
optionyyslist().then(rps => {
|
||||||
|
if(rps.data){
|
||||||
|
//let list = (rps.data as any).records
|
||||||
|
yunysList.value = rps.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
//初始查询换电站
|
//初始查询换电站
|
||||||
let yunList = ref<any>([])
|
let yunList = ref<any>([])
|
||||||
gethdzlist({
|
gethdzlist({
|
||||||
pageSize:20, //每页条数
|
pageSize:200, //每页条数
|
||||||
pageNo:1, //页数
|
pageNo:1, //页数
|
||||||
proxyId:'', //归属运营商ID
|
proxyId:'', //归属运营商ID
|
||||||
name:'', //站点名称
|
name:'', //站点名称
|
||||||
|
|||||||
@ -181,7 +181,7 @@
|
|||||||
>
|
>
|
||||||
<div style="width: 100%;padding: 25px;text-align: center;">
|
<div style="width: 100%;padding: 25px;text-align: center;">
|
||||||
<div style="padding-bottom: 15px;font-size: 22px;">请打开微信扫一扫完成支付</div>
|
<div style="padding-bottom: 15px;font-size: 22px;">请打开微信扫一扫完成支付</div>
|
||||||
<div v-if="qscode" style="display: flex;padding-bottom: 15px;align-items: center;justify-content: center;">
|
<div v-if="qscode && !issx" style="display: flex;padding-bottom: 15px;align-items: center;justify-content: center;">
|
||||||
<div style="padding-right: 10px;">剩余支付时间</div>
|
<div style="padding-right: 10px;">剩余支付时间</div>
|
||||||
|
|
||||||
<div style="padding-right: 6px;color: #ff6000;"><span style="font-size: 22px;">{{tmminute}} </span>分</div>
|
<div style="padding-right: 6px;color: #ff6000;"><span style="font-size: 22px;">{{tmminute}} </span>分</div>
|
||||||
@ -436,9 +436,14 @@
|
|||||||
|
|
||||||
let qscode = ref('')
|
let qscode = ref('')
|
||||||
function zfclose() {
|
function zfclose() {
|
||||||
payqs.attach = JSON.parse(payqs.attach)
|
//payqs.attach = JSON.parse(payqs.attach)
|
||||||
|
if(timer){
|
||||||
clearInterval(timer)
|
clearInterval(timer)
|
||||||
}
|
}
|
||||||
|
if(djstimet){
|
||||||
|
clearInterval(djstimet)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//失效倒计时
|
//失效倒计时
|
||||||
@ -452,6 +457,13 @@
|
|||||||
//是否失效
|
//是否失效
|
||||||
let issx = ref(false)
|
let issx = ref(false)
|
||||||
function payment(type?:number) {
|
function payment(type?:number) {
|
||||||
|
|
||||||
|
minute.value = 29
|
||||||
|
second.value = 59
|
||||||
|
|
||||||
|
tmminute.value = 29
|
||||||
|
tmsecond.value = 59
|
||||||
|
|
||||||
// if(dzarr.value.length > 0){
|
// if(dzarr.value.length > 0){
|
||||||
|
|
||||||
//失效时间
|
//失效时间
|
||||||
@ -484,7 +496,7 @@
|
|||||||
payqs.ccode = queryParams.companyCode
|
payqs.ccode = queryParams.companyCode
|
||||||
payqs.orderTimeEnd = queryParams.orderTimeEnd
|
payqs.orderTimeEnd = queryParams.orderTimeEnd
|
||||||
if(type == 1){
|
if(type == 1){
|
||||||
payqs.attach = JSON.stringify(payqs.attach)
|
//payqs.attach = JSON.stringify(payqs.attach)
|
||||||
}else{
|
}else{
|
||||||
issx.value = false
|
issx.value = false
|
||||||
}
|
}
|
||||||
@ -500,18 +512,23 @@
|
|||||||
clearInterval(djstimet)
|
clearInterval(djstimet)
|
||||||
}
|
}
|
||||||
|
|
||||||
batchpayment(payqs).then(rps => {
|
batchpayment(Object.assign({},payqs,{
|
||||||
|
attach:JSON.stringify(payqs.attach)
|
||||||
|
}
|
||||||
|
)).then(rps => {
|
||||||
qscode.value = JSON.parse(rps.data as any).codeUrl
|
qscode.value = JSON.parse(rps.data as any).codeUrl
|
||||||
|
|
||||||
djstimet = setInterval(() => {
|
djstimet = setInterval(() => {
|
||||||
second.value--
|
second.value--
|
||||||
tmsecond.value = second.value
|
tmsecond.value = second.value
|
||||||
|
console.log(second.value,minute.value)
|
||||||
if(second.value == 0 && minute.value == 0) {
|
if(second.value == 0 && minute.value == 0) {
|
||||||
tmminute.value = '00'
|
// tmminute.value = '00'
|
||||||
tmsecond.value = '00'
|
// tmsecond.value = '00'
|
||||||
issx.value = true
|
issx.value = true
|
||||||
clearInterval(djstimet)
|
clearInterval(djstimet)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(second.value == 0) {
|
if(second.value == 0) {
|
||||||
second.value = 59
|
second.value = 59
|
||||||
|
|
||||||
@ -519,17 +536,19 @@
|
|||||||
tmsecond.value = 59
|
tmsecond.value = 59
|
||||||
|
|
||||||
minute.value--
|
minute.value--
|
||||||
if(minute.value < 10){
|
// if(minute.value < 10 && minute.value > 0){
|
||||||
tmminute.value = '0'+ minute.value
|
// tmminute.value = '0'+ minute.value
|
||||||
}else{
|
// }else{
|
||||||
|
// tmminute.value = minute.value
|
||||||
|
// }
|
||||||
tmminute.value = minute.value
|
tmminute.value = minute.value
|
||||||
}
|
}
|
||||||
}
|
// if(second.value < 10){
|
||||||
if(second.value < 10){
|
// tmsecond.value = '0' + second.value
|
||||||
tmsecond.value = '0' + second.value
|
// }else{
|
||||||
}else{
|
// tmsecond.value = second.value
|
||||||
|
// }
|
||||||
tmsecond.value = second.value
|
tmsecond.value = second.value
|
||||||
}
|
|
||||||
|
|
||||||
}, 1000)
|
}, 1000)
|
||||||
|
|
||||||
@ -538,10 +557,11 @@
|
|||||||
rps.data = JSON.parse(rps.data as any)
|
rps.data = JSON.parse(rps.data as any)
|
||||||
if((rps.data as any).tradeState == 'SUCCESS'){ //'NOTPAY' 订单未支付
|
if((rps.data as any).tradeState == 'SUCCESS'){ //'NOTPAY' 订单未支付
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'warning',
|
type: 'success',
|
||||||
message: '支付成功'
|
message: '支付成功'
|
||||||
})
|
})
|
||||||
openpop.value = false
|
openpop.value = false
|
||||||
|
zfclose()
|
||||||
handBtnqu()
|
handBtnqu()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -416,9 +416,9 @@
|
|||||||
stationCode:[
|
stationCode:[
|
||||||
{ required: true, message: "请选择换电站", trigger: "blur" }
|
{ required: true, message: "请选择换电站", trigger: "blur" }
|
||||||
],
|
],
|
||||||
swapDuration:[
|
// swapDuration:[
|
||||||
{ required: true, message: "请选择换电时间段", trigger: "blur" }
|
// { required: true, message: "请选择换电时间段", trigger: "blur" }
|
||||||
],
|
// ],
|
||||||
plateNum:[
|
plateNum:[
|
||||||
{ required: true, message: "请输入车牌号", trigger: "blur" },
|
{ required: true, message: "请输入车牌号", trigger: "blur" },
|
||||||
{ validator:carNum, trigger: "blur"}
|
{ validator:carNum, trigger: "blur"}
|
||||||
|
|||||||
@ -70,7 +70,7 @@
|
|||||||
<el-table-column label="订单数量" min-width="120" align="center" prop="orderCount" :show-overflow-tooltip="true" />
|
<el-table-column label="订单数量" min-width="120" align="center" prop="orderCount" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="交易金额(元)" min-width="120" align="center" prop="tradeAmount" :show-overflow-tooltip="true">
|
<el-table-column label="交易金额(元)" min-width="120" align="center" prop="tradeAmount" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div v-if="scope.row.tradeAmount">{{scope.row.tradeAmount?scope.row.tradeAmount/100:''}}</div>
|
<div>{{scope.row.tradeAmount?scope.row.tradeAmount/100:''}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="交易凭证" min-width="120" align="center" prop="pingz" :show-overflow-tooltip="true">
|
<el-table-column label="交易凭证" min-width="120" align="center" prop="pingz" :show-overflow-tooltip="true">
|
||||||
@ -306,7 +306,7 @@
|
|||||||
addObj.tradeMessage = ''
|
addObj.tradeMessage = ''
|
||||||
addObj.pkId = row.pkId
|
addObj.pkId = row.pkId
|
||||||
popshow.value = true
|
popshow.value = true
|
||||||
xqlist.value = row
|
xqlist.value = {...row}
|
||||||
xqlist.value.tradeAmount = xqlist.value.tradeAmount?xqlist.value.tradeAmount/100:''
|
xqlist.value.tradeAmount = xqlist.value.tradeAmount?xqlist.value.tradeAmount/100:''
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -363,9 +363,10 @@
|
|||||||
let shpopshow = ref(false)
|
let shpopshow = ref(false)
|
||||||
let shobj = ref<any>({})
|
let shobj = ref<any>({})
|
||||||
function showsh(row:any) {
|
function showsh(row:any) {
|
||||||
|
console.log(row,'row')
|
||||||
shpopshow.value = true
|
shpopshow.value = true
|
||||||
shobj.value = row
|
shobj.value = {...row}
|
||||||
shobj.value.tradeAmount = xqlist.value.tradeAmount?xqlist.value.tradeAmount/100:''
|
shobj.value.tradeAmount = shobj.value.tradeAmount?shobj.value.tradeAmount/100:''
|
||||||
}
|
}
|
||||||
function shcancel() {
|
function shcancel() {
|
||||||
shpopshow.value = false
|
shpopshow.value = false
|
||||||
|
|||||||
@ -75,11 +75,12 @@
|
|||||||
|
|
||||||
<!-- <el-table-column label="站码或车牌照" min-width="110" align="center" prop="sourceCode" :show-overflow-tooltip="true" /> -->
|
<!-- <el-table-column label="站码或车牌照" min-width="110" align="center" prop="sourceCode" :show-overflow-tooltip="true" /> -->
|
||||||
|
|
||||||
<el-table-column v-if="zjtype == 1" label="换电站" min-width="130" align="center" prop="pointName" :show-overflow-tooltip="true" />
|
<el-table-column v-if="zjtype == 1" label="当前位置" min-width="130" align="center" prop="pointName" :show-overflow-tooltip="true" />
|
||||||
<!-- <el-table-column v-if="zjtype == 1" label="换电站编码" min-width="130" align="center" prop="stationCode" :show-overflow-tooltip="true" /> -->
|
<!-- <el-table-column v-if="zjtype == 1" label="换电站编码" min-width="130" align="center" prop="stationCode" :show-overflow-tooltip="true" /> -->
|
||||||
<el-table-column label="当前电量" min-width="80" align="center" prop="soc" :show-overflow-tooltip="true" />
|
<el-table-column label="当前电量" min-width="80" align="center" prop="soc" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="操作" align="center" width="160" fixed="right">
|
<el-table-column label="操作" align="center" width="240" fixed="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" icon="SetUp" @click="dcsjhand(scope.row.batCode)">实时数据</el-button>
|
||||||
<el-button link type="primary" icon="Tickets" @click="zhuixpop(scope.row.batCode)">追溯</el-button>
|
<el-button link type="primary" icon="Tickets" @click="zhuixpop(scope.row.batCode)">追溯</el-button>
|
||||||
<el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
<el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
@ -125,14 +126,26 @@
|
|||||||
<el-input v-model="addata.batCode" placeholder="请输入电池编码" clearable />
|
<el-input v-model="addata.batCode" placeholder="请输入电池编码" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col v-if="zjtype == 1" :span="24">
|
||||||
<el-form-item label="初始来源" prop="sourceFrom">
|
<el-form-item label="初始来源" prop="sourceFrom">
|
||||||
<el-radio-group v-model="addata.sourceFrom">
|
<el-radio-group v-model="addata.sourceFrom" @input="sourcechang">
|
||||||
<el-radio value="1">站</el-radio>
|
<el-radio value="1">站</el-radio>
|
||||||
<el-radio value="2">车</el-radio>
|
<el-radio value="2">车</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col v-if="zjtype == 1 && addata.sourceFrom == '1'" :span="24">
|
||||||
|
<el-form-item label="换电站" prop="sourceCode">
|
||||||
|
<el-select v-model="addata.sourceCode" placeholder="请选择换电站">
|
||||||
|
<el-option @click.native="gethdzname(n.name)" v-for="n in yunList" :label="n.name" :value="n.code" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24" v-if="addata.sourceFrom == '2'">
|
||||||
|
<el-form-item label="车牌号" prop="sourceCode">
|
||||||
|
<el-input v-model="addata.sourceCode" placeholder="请输入车牌号" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-select v-model="addata.status" placeholder="请选择状态">
|
<el-select v-model="addata.status" placeholder="请选择状态">
|
||||||
@ -167,16 +180,9 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" v-if="addata.sourceFrom == '2'">
|
<el-col :span="24">
|
||||||
<el-form-item label="站码或车牌照" prop="sourceCode">
|
<el-form-item label="电池仓序号" prop="dccNo">
|
||||||
<el-input v-model="addata.sourceCode" placeholder="请输入站码或车牌照" clearable />
|
<el-input v-model="addata.dccNo" placeholder="请输入电池仓序号" clearable />
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col v-if="zjtype == 1" :span="24">
|
|
||||||
<el-form-item label="换电站" prop="stationCode">
|
|
||||||
<el-select v-model="addata.stationCode" placeholder="请选择换电站">
|
|
||||||
<el-option @click.native="gethdzname(n.name)" v-for="n in yunList" :label="n.name" :value="n.code" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
@ -223,11 +229,11 @@
|
|||||||
|
|
||||||
<el-form ref="dczsRef" :model="addzsdata" :rules="zsrules" label-width="130px">
|
<el-form ref="dczsRef" :model="addzsdata" :rules="zsrules" label-width="130px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<!-- <el-col :span="24">
|
||||||
<el-form-item label="电池编码" prop="batCode">
|
<el-form-item label="电池编码" prop="batCode">
|
||||||
<el-input v-model="addzsdata.batCode" placeholder="请输入电池编码" clearable />
|
<el-input v-model="addzsdata.batCode" placeholder="请输入电池编码" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="轨迹点类型" prop="pointType">
|
<el-form-item label="轨迹点类型" prop="pointType">
|
||||||
<el-radio-group v-model="addzsdata.pointType">
|
<el-radio-group v-model="addzsdata.pointType">
|
||||||
@ -280,6 +286,91 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<!--实时数据-->
|
||||||
|
<el-dialog
|
||||||
|
v-model="realdatapop"
|
||||||
|
title=""
|
||||||
|
width="850px"
|
||||||
|
fullscreen
|
||||||
|
append-to-body
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
>
|
||||||
|
<template #header>
|
||||||
|
<div style="font-size: 20px;">
|
||||||
|
电池编码:{{diancode}}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<el-date-picker
|
||||||
|
v-model="times"
|
||||||
|
type="daterange"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
@calendar-change="handleCalendarChange"
|
||||||
|
:disabled-date="disabledDate"
|
||||||
|
unlink-panels
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
@clear="cleardate"
|
||||||
|
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!--:shortcuts="shortcuts"-->
|
||||||
|
|
||||||
|
<el-button type="primary" @click="getdcdata" style="margin-left: 30px;">查询</el-button>
|
||||||
|
|
||||||
|
<el-row :gutter="30">
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart1" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart2" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart3" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart4" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart5" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart6" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart7" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart8" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart9" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart10" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart11" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart12" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="24">
|
||||||
|
<div ref="refChart13" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart14" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<div ref="refChart15" class="chart-cont2" style="height: 400px;margin-top: 20px;padding:10px;border-radius: 10px;box-shadow: 0 0 20px -5px rgba(84, 151, 232, 0.5);background: #fff;"></div>
|
||||||
|
</el-col> -->
|
||||||
|
</el-row>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts" name="UserPage">
|
<script setup lang="ts" name="UserPage">
|
||||||
@ -293,7 +384,8 @@
|
|||||||
update,
|
update,
|
||||||
delhdz,
|
delhdz,
|
||||||
getzhuis,
|
getzhuis,
|
||||||
addzhuis
|
addzhuis,
|
||||||
|
getdcsj
|
||||||
} from '@/api/swapstation/battery'
|
} from '@/api/swapstation/battery'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -302,16 +394,20 @@
|
|||||||
// import {
|
// import {
|
||||||
// getdict
|
// getdict
|
||||||
// } from '@/api/systemSet/dict'
|
// } from '@/api/systemSet/dict'
|
||||||
import { ref,reactive,computed} from 'vue'
|
import { ref,reactive,computed,watch} from 'vue'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
|
||||||
|
import * as echarts from 'echarts'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
zjtype?:string|number
|
zjtype?:string|number
|
||||||
stationCode?:string
|
stationCode?:string
|
||||||
|
stationName?:string
|
||||||
list:any[]
|
list:any[]
|
||||||
}>(), {
|
}>(), {
|
||||||
zjtype:1,
|
zjtype:1,
|
||||||
stationCode:'',
|
stationCode:'',
|
||||||
|
stationName:'',
|
||||||
list:() => []
|
list:() => []
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -319,6 +415,26 @@
|
|||||||
update: []
|
update: []
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
|
let firstSelectedDate = ref<any>('')
|
||||||
|
const handleCalendarChange = (val:any) => {
|
||||||
|
firstSelectedDate.value = val[0]
|
||||||
|
}
|
||||||
|
const disabledDate = (time:any) => {
|
||||||
|
if (!firstSelectedDate.value) return false
|
||||||
|
|
||||||
|
// 示例:限制选择范围为选中日期的前后7天
|
||||||
|
const startTime = firstSelectedDate.value.getTime() - 7 * 24 * 3600 * 1000
|
||||||
|
const endTime = firstSelectedDate.value.getTime() + 7 * 24 * 3600 * 1000
|
||||||
|
|
||||||
|
return time.getTime() < startTime || time.getTime() > endTime
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const cleardate = () => {
|
||||||
|
firstSelectedDate.value = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
let search = ref(true)
|
let search = ref(true)
|
||||||
let theight = computed(() => {
|
let theight = computed(() => {
|
||||||
if(props.zjtype == 1 && !search.value){
|
if(props.zjtype == 1 && !search.value){
|
||||||
@ -363,7 +479,6 @@
|
|||||||
|
|
||||||
//初始查询换电站
|
//初始查询换电站
|
||||||
let yunList = ref<any>([])
|
let yunList = ref<any>([])
|
||||||
if(props.zjtype == 1){
|
|
||||||
gethdzlist({
|
gethdzlist({
|
||||||
pageSize:20, //每页条数
|
pageSize:20, //每页条数
|
||||||
pageNo:1, //页数
|
pageNo:1, //页数
|
||||||
@ -380,6 +495,8 @@
|
|||||||
//getyys()
|
//getyys()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
if(props.zjtype == 1){
|
||||||
|
|
||||||
getyys()
|
getyys()
|
||||||
}else{
|
}else{
|
||||||
if(props.list.length > 0){
|
if(props.list.length > 0){
|
||||||
@ -397,6 +514,7 @@
|
|||||||
|
|
||||||
function getyys() {
|
function getyys() {
|
||||||
yysList.value.splice(0)
|
yysList.value.splice(0)
|
||||||
|
total.value = 0
|
||||||
getjqrlist(queryParams).then(rps => {
|
getjqrlist(queryParams).then(rps => {
|
||||||
if(rps.data){
|
if(rps.data){
|
||||||
yysList.value = (rps.data as any).records
|
yysList.value = (rps.data as any).records
|
||||||
@ -427,23 +545,37 @@
|
|||||||
typeCode:'', //电池型号编码
|
typeCode:'', //电池型号编码
|
||||||
typeName:'', //电池型号名称
|
typeName:'', //电池型号名称
|
||||||
batCode:'', //电池编码
|
batCode:'', //电池编码
|
||||||
sourceFrom:'', //初始来源:1-站,2-车
|
sourceFrom:'1', //初始来源:1-站,2-车
|
||||||
|
sourceCode:'', //站码或车牌照
|
||||||
status:'', //状态:1-出租中,2-充电中,3-充电完毕,4-故障,5-其它
|
status:'', //状态:1-出租中,2-充电中,3-充电完毕,4-故障,5-其它
|
||||||
pkId:'',
|
pkId:'',
|
||||||
productionDate:'', //生产日期
|
productionDate:'', //生产日期
|
||||||
registrationDate:'', //注册时间
|
registrationDate:'', //注册时间
|
||||||
sourceCode:'', //站码或车牌照
|
|
||||||
stationCode:'', //换电站编码
|
//stationCode:'', //换电站编码
|
||||||
stationName:'', //换电站名称
|
//stationName:'', //换电站名称
|
||||||
soc:'' //当前电量
|
soc:'', //当前电量
|
||||||
|
dccNo:'', //电池仓序号
|
||||||
|
pointType:'', //轨迹点类型 1-站,2-车
|
||||||
|
pointCode:'', //轨迹点编码
|
||||||
|
pointName:'' //轨迹点名称
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// watch(() => addata.sourceFrom,() => {
|
||||||
|
// addata.sourceCode = ''
|
||||||
|
// })
|
||||||
|
|
||||||
|
function sourcechang() {
|
||||||
|
addata.sourceCode = ''
|
||||||
|
console.log(addata.sourceCode,'chang')
|
||||||
|
}
|
||||||
|
|
||||||
function getdcname(n:string) {
|
function getdcname(n:string) {
|
||||||
addata.typeName = n
|
addata.typeName = n
|
||||||
}
|
}
|
||||||
|
|
||||||
function gethdzname(n:string) {
|
function gethdzname(n:string) {
|
||||||
addata.stationName = n
|
addata.pointName = n
|
||||||
}
|
}
|
||||||
|
|
||||||
const rules = ref({
|
const rules = ref({
|
||||||
@ -456,6 +588,21 @@
|
|||||||
sourceFrom:[
|
sourceFrom:[
|
||||||
{ required: true, message: "请选择初始来源", trigger: "blur" }
|
{ required: true, message: "请选择初始来源", trigger: "blur" }
|
||||||
],
|
],
|
||||||
|
sourceCode:[
|
||||||
|
{ required: true,validator:(rule:any, value:any, callback:any) => {
|
||||||
|
if(value.length == ''){
|
||||||
|
if (addata.sourceFrom == '1') {
|
||||||
|
return callback(new Error('请选择换电站'))
|
||||||
|
}
|
||||||
|
return callback(new Error('请输入车牌号'))
|
||||||
|
}
|
||||||
|
return callback()
|
||||||
|
}, trigger: "blur"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// stationCode:[
|
||||||
|
// { required: true, message: "请选择换电站", trigger: "blur" }
|
||||||
|
// ],
|
||||||
status:[
|
status:[
|
||||||
{ required: true, message: "请选择状态", trigger: "blur" }
|
{ required: true, message: "请选择状态", trigger: "blur" }
|
||||||
]
|
]
|
||||||
@ -476,26 +623,39 @@
|
|||||||
addata.pkId = row.pkId
|
addata.pkId = row.pkId
|
||||||
addata.productionDate = row.productionDate?row.productionDate:''
|
addata.productionDate = row.productionDate?row.productionDate:''
|
||||||
addata.registrationDate = row.registrationDate?row.registrationDate:''
|
addata.registrationDate = row.registrationDate?row.registrationDate:''
|
||||||
addata.sourceCode = row.sourceCode?row.sourceCode:''
|
|
||||||
addata.stationCode = row.pointCode?row.pointCode:''
|
|
||||||
addata.stationName = row.pointName?row.pointName:''
|
|
||||||
addata.soc = row.soc
|
|
||||||
|
|
||||||
|
addata.sourceCode = row.sourceCode?row.sourceCode:''
|
||||||
|
|
||||||
|
addata.pointCode = row.sourceCode?row.sourceCode:''
|
||||||
|
addata.pointName = row.pointName?row.pointName:''
|
||||||
|
|
||||||
|
// addata.stationCode = row.pointCode?row.pointCode:''
|
||||||
|
// addata.stationName = row.pointName?row.pointName:''
|
||||||
|
|
||||||
|
addata.soc = row.soc
|
||||||
|
addata.dccNo = row.dccNo?row.dccNo:''
|
||||||
}else{
|
}else{
|
||||||
addata.typeCode = ''
|
addata.typeCode = ''
|
||||||
addata.batCode = ''
|
addata.batCode = ''
|
||||||
addata.sourceFrom = ''
|
addata.sourceFrom = '1'
|
||||||
addata.status = ''
|
addata.status = ''
|
||||||
addata.pkId = ''
|
addata.pkId = ''
|
||||||
addata.productionDate = ''
|
addata.productionDate = ''
|
||||||
addata.registrationDate = ''
|
addata.registrationDate = ''
|
||||||
addata.sourceCode = ''
|
addata.sourceCode = props.zjtype == 1?'':props.stationCode
|
||||||
addata.stationCode = props.zjtype == 1?'':props.stationCode
|
// addata.stationCode = props.zjtype == 1?'':props.stationCode
|
||||||
addata.stationName = ''
|
// addata.stationName = ''
|
||||||
|
|
||||||
|
addata.pointCode = props.zjtype == 1?'':props.stationCode
|
||||||
|
addata.pointName = props.zjtype == 1?'':props.stationName
|
||||||
|
|
||||||
addata.soc = ''
|
addata.soc = ''
|
||||||
|
addata.dccNo = ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function savehand() {
|
function savehand() {
|
||||||
|
addata.pointType = addata.sourceFrom
|
||||||
|
addata.pointCode = addata.sourceCode
|
||||||
if(type.value == 1){
|
if(type.value == 1){
|
||||||
return addhdz(addata)
|
return addhdz(addata)
|
||||||
}
|
}
|
||||||
@ -507,9 +667,9 @@
|
|||||||
yysRef.value?.validate((valid:Boolean) => {
|
yysRef.value?.validate((valid:Boolean) => {
|
||||||
|
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if(addata.sourceFrom == '1'){
|
// if(addata.sourceFrom == '1'){
|
||||||
addata.sourceCode = addata.stationCode
|
// addata.sourceCode = addata.stationCode
|
||||||
}
|
// }
|
||||||
savehand().then(() => {
|
savehand().then(() => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@ -556,13 +716,7 @@
|
|||||||
let zspop = ref(false)
|
let zspop = ref(false)
|
||||||
let dccode = ref('')
|
let dccode = ref('')
|
||||||
let gjlist = ref<any[]>([])
|
let gjlist = ref<any[]>([])
|
||||||
function zhuixpop(code:string) {
|
|
||||||
dccode.value = code
|
|
||||||
getzhuis(dccode.value).then(rps => {
|
|
||||||
gjlist.value = rps.data as any
|
|
||||||
})
|
|
||||||
zspop.value = true
|
|
||||||
}
|
|
||||||
|
|
||||||
//添加追溯
|
//添加追溯
|
||||||
let dczspop = ref(false)
|
let dczspop = ref(false)
|
||||||
@ -575,6 +729,9 @@
|
|||||||
endTime:'' //结束时间,示例值(yyyy-MM-dd HH:mm:ss)
|
endTime:'' //结束时间,示例值(yyyy-MM-dd HH:mm:ss)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
watch(() => addzsdata.pointType,() => {
|
||||||
|
addzsdata.pointCode = ''
|
||||||
|
})
|
||||||
const zsrules = ref({
|
const zsrules = ref({
|
||||||
batCode:[
|
batCode:[
|
||||||
{ required: true, message: "请输入电池编码", trigger: "blur" }
|
{ required: true, message: "请输入电池编码", trigger: "blur" }
|
||||||
@ -584,13 +741,31 @@
|
|||||||
],
|
],
|
||||||
|
|
||||||
pointCode:[
|
pointCode:[
|
||||||
{ required: true, message: "请选择轨迹点", trigger: "blur" }
|
{ required: true, validator:(rule:any, value:any, callback:any) => {
|
||||||
|
if(value.length == ''){
|
||||||
|
if (addzsdata.pointType == '1') {
|
||||||
|
return callback(new Error('请选择换电站'))
|
||||||
|
}
|
||||||
|
return callback(new Error('请输入车牌号'))
|
||||||
|
}
|
||||||
|
return callback()
|
||||||
|
}, trigger: "blur" }
|
||||||
],
|
],
|
||||||
beginTime:[
|
beginTime:[
|
||||||
{ required: true, message: "请选择开始时间", trigger: "blur" }
|
{ required: true, message: "请选择开始时间", trigger: "blur" }
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
function zhuixpop(code:string) {
|
||||||
|
addzsdata.batCode = code
|
||||||
|
dccode.value = code
|
||||||
|
getzhuis(dccode.value).then(rps => {
|
||||||
|
gjlist.value = rps.data as any
|
||||||
|
})
|
||||||
|
zspop.value = true
|
||||||
|
}
|
||||||
|
|
||||||
let dczsRef = ref()
|
let dczsRef = ref()
|
||||||
|
|
||||||
function zhuishand() {
|
function zhuishand() {
|
||||||
@ -602,11 +777,15 @@
|
|||||||
|
|
||||||
dczsRef.value?.validate((valid:Boolean) => {
|
dczsRef.value?.validate((valid:Boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
if(addzsdata.pointType == '2'){
|
||||||
|
addzsdata.pointName = addzsdata.pointCode
|
||||||
|
}
|
||||||
addzhuis(addzsdata).then(() => {
|
addzhuis(addzsdata).then(() => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: '添加成功'
|
message: '添加成功'
|
||||||
})
|
})
|
||||||
|
dczspop.value = false
|
||||||
getzhuis(dccode.value).then(rps => {
|
getzhuis(dccode.value).then(rps => {
|
||||||
gjlist.value = rps.data as any
|
gjlist.value = rps.data as any
|
||||||
})
|
})
|
||||||
@ -618,6 +797,300 @@
|
|||||||
function getgjdname(name:string) {
|
function getgjdname(name:string) {
|
||||||
addzsdata.pointName = name
|
addzsdata.pointName = name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//实时数据
|
||||||
|
let realdatapop = ref(false)
|
||||||
|
let diancode = ref('')
|
||||||
|
let times = ref<any>([])
|
||||||
|
const shortcuts = [
|
||||||
|
{
|
||||||
|
text: '最近一周',
|
||||||
|
value: () => {
|
||||||
|
const end = new Date()
|
||||||
|
const start = new Date()
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
||||||
|
return [start, end]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '最近一个月',
|
||||||
|
value: () => {
|
||||||
|
const end = new Date()
|
||||||
|
const start = new Date()
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
|
||||||
|
return [start, end]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '最近三个月',
|
||||||
|
value: () => {
|
||||||
|
const end = new Date()
|
||||||
|
const start = new Date()
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
|
||||||
|
return [start, end]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
function dcsjhand(code:any){
|
||||||
|
realdatapop.value = true
|
||||||
|
firstSelectedDate.value = ''
|
||||||
|
times.value = []
|
||||||
|
diancode.value = code
|
||||||
|
let date = new Date()
|
||||||
|
let year = date.getFullYear()
|
||||||
|
let month = String(date.getMonth() + 1).padStart(2, '0')
|
||||||
|
let day = String(date.getDate()).padStart(2, '0')
|
||||||
|
|
||||||
|
let start = new Date()
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
||||||
|
|
||||||
|
let syear = start.getFullYear()
|
||||||
|
let smonth = String(start.getMonth() + 1).padStart(2, '0')
|
||||||
|
let sday = String(start.getDate()).padStart(2, '0')
|
||||||
|
|
||||||
|
|
||||||
|
getrealdata(`${syear}-${smonth}-${sday}`,`${year}-${month}-${day}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
function getdcdata() {
|
||||||
|
if(times.value){
|
||||||
|
getrealdata(times.value[0],times.value[1])
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
function getrealdata(beginTime:any,endTime:any) {
|
||||||
|
getdcsj(diancode.value,`${beginTime} 00:00:00`,`${endTime} 59:59:59`).then((rps:any) => {
|
||||||
|
if(rps.data && rps.data.batData.length > 0){
|
||||||
|
let xdata = rps.data.batData.map((n:any) => {
|
||||||
|
let time = new Date(n.id*1)
|
||||||
|
|
||||||
|
let year = time.getFullYear()
|
||||||
|
let month = String(time.getMonth() + 1).padStart(2, '0')
|
||||||
|
let day = String(time.getDate()).padStart(2, '0')
|
||||||
|
let h = String(time.getHours()).padStart(2, '0')
|
||||||
|
let m = String(time.getMinutes()).padStart(2, '0')
|
||||||
|
let s = String(time.getSeconds()).padStart(2, '0')
|
||||||
|
|
||||||
|
return `${year}-${month}-${day} ${h}:${m}:${s}`
|
||||||
|
})
|
||||||
|
|
||||||
|
//电池包SOH
|
||||||
|
let sohdata = rps.data.batData.map((n:any) => {
|
||||||
|
return n.soh
|
||||||
|
})
|
||||||
|
|
||||||
|
//电池包总电流
|
||||||
|
let batTotalcurr = rps.data.batData.map((n:any) => {
|
||||||
|
return n.batTotalCurr
|
||||||
|
})
|
||||||
|
|
||||||
|
//单体电压总个数
|
||||||
|
let batCellVoltCnt = rps.data.batData.map((n:any) => {
|
||||||
|
return n.batCellVoltCnt
|
||||||
|
})
|
||||||
|
|
||||||
|
//探针温度总个数
|
||||||
|
let probeTempCnt = rps.data.batData.map((n:any) => {
|
||||||
|
return n.probeTempCnt
|
||||||
|
})
|
||||||
|
|
||||||
|
//电池包正极绝缘值
|
||||||
|
let batPosiInsu = rps.data.batData.map((n:any) => {
|
||||||
|
return n.batPosiinsu
|
||||||
|
})
|
||||||
|
//电池包负级绝缘值
|
||||||
|
let batNegaInsu = rps.data.batData.map((n:any) => {
|
||||||
|
return n.batNegainsu
|
||||||
|
})
|
||||||
|
|
||||||
|
setdcwdchart(refChart.value,xdata,sohdata,'电池包SOH','#2363a5','%')
|
||||||
|
setdcwdchart(refChart1.value,xdata,batTotalcurr,'电池包总电流','#2363a5','A')
|
||||||
|
setdcwdchart(refChart2.value,xdata,batCellVoltCnt,'单体电压总个数','#2363a5','')
|
||||||
|
|
||||||
|
setdcwdchart(refChart3.value,xdata,probeTempCnt,'探针温度总个数','#2363a5','')
|
||||||
|
setdcwdchart(refChart4.value,xdata,batPosiInsu,'电池包正极绝缘值','#2363a5','Kohm')
|
||||||
|
|
||||||
|
setdcwdchart(refChart5.value,xdata,batNegaInsu,'电池包负极绝缘值','#2363a5','Kohm')
|
||||||
|
|
||||||
|
// setdcwdchart(refChart4.value,xdata,testdata,'出水温度','#2363a5','℃')
|
||||||
|
// setdcwdchart(refChart5.value,xdata,testdata,'回水温度','#2363a5','℃')
|
||||||
|
// setdcwdchart(refChart6.value,xdata,testdata,'最低单体电压组','#2363a5','')
|
||||||
|
|
||||||
|
// setdcwdchart(refChart7.value,xdata,testdata,'最高单体温度','#2363a5','℃')
|
||||||
|
// setdcwdchart(refChart8.value,xdata,testdata,'最高单体温度组','#2363a5','')
|
||||||
|
// setdcwdchart(refChart9.value,xdata,testdata,'最低单体温度','#2363a5','℃')
|
||||||
|
|
||||||
|
// setdcwdchart(refChart10.value,xdata,testdata,'最高单体温度','#2363a5','℃')
|
||||||
|
// setdcwdchart(refChart11.value,xdata,testdata,'最高单体温度组','#2363a5','')
|
||||||
|
// setdcwdchart(refChart12.value,xdata,testdata,'最低单体温度','#2363a5','℃')
|
||||||
|
|
||||||
|
// setdcwdchart(refChart13.value,xdata,testdata,'最低单体温度组','#2363a5','')
|
||||||
|
// setdcwdchart(refChart14.value,xdata,testdata,'电池电压需求','#2363a5','V')
|
||||||
|
// setdcwdchart(refChart15.value,xdata,testdata,'电池电流需求','#2363a5','A')
|
||||||
|
}
|
||||||
|
if(rps.data && rps.data.chargingData.length > 0){
|
||||||
|
let x2data = rps.data.chargingData.map((n:any) => {
|
||||||
|
let time = new Date(n.id*1)
|
||||||
|
|
||||||
|
let year = time.getFullYear()
|
||||||
|
let month = String(time.getMonth() + 1).padStart(2, '0')
|
||||||
|
let day = String(time.getDate()).padStart(2, '0')
|
||||||
|
let h = String(time.getHours()).padStart(2, '0')
|
||||||
|
let m = String(time.getMinutes()).padStart(2, '0')
|
||||||
|
let s = String(time.getSeconds()).padStart(2, '0')
|
||||||
|
|
||||||
|
return `${year}-${month}-${day} ${h}:${m}:${s}`
|
||||||
|
|
||||||
|
})
|
||||||
|
let cddl = rps.data.chargingData.map((n:any) => {
|
||||||
|
return n.chgQty
|
||||||
|
})
|
||||||
|
|
||||||
|
let batMaxVolt = rps.data.chargingData.map((n:any) => {
|
||||||
|
return n.batMaxVolt
|
||||||
|
})
|
||||||
|
|
||||||
|
let batMinvolt = rps.data.chargingData.map((n:any) => {
|
||||||
|
return n.batMinvolt
|
||||||
|
})
|
||||||
|
|
||||||
|
let batMaxTemp = rps.data.chargingData.map((n:any) => {
|
||||||
|
return n.batMaxTemp
|
||||||
|
})
|
||||||
|
|
||||||
|
let batMinTemp = rps.data.chargingData.map((n:any) => {
|
||||||
|
return n.batMinTemp
|
||||||
|
})
|
||||||
|
|
||||||
|
let voltDemand = rps.data.chargingData.map((n:any) => {
|
||||||
|
return n.voltDemand
|
||||||
|
})
|
||||||
|
|
||||||
|
let currDemand = rps.data.chargingData.map((n:any) => {
|
||||||
|
return n.currDemand
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
setdcwdchart(refChart6.value,x2data,cddl,'充电电量','#2363a5','kWh')
|
||||||
|
setdcwdchart(refChart7.value,x2data,batMaxVolt,'最高单体电压','#2363a5','V')
|
||||||
|
setdcwdchart(refChart8.value,x2data,batMinvolt,'最低单体电压','#2363a5','V')
|
||||||
|
setdcwdchart(refChart9.value,x2data,batMaxTemp,'最高单体温度','#2363a5','℃')
|
||||||
|
setdcwdchart(refChart10.value,x2data,batMinTemp,'最低单体温度','#2363a5','℃')
|
||||||
|
setdcwdchart(refChart11.value,x2data,voltDemand,'电池电压需求','#2363a5','V')
|
||||||
|
setdcwdchart(refChart12.value,x2data,currDemand,'电池电流需求','#2363a5','A')
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
// setTimeout(() => {
|
||||||
|
// let testdata = [
|
||||||
|
// [20,65,80,60,90,100,45,20,65,80,60,90,100,45],
|
||||||
|
// [30,75,50,60,80,100,45,30,75,50,60,80,100,45],
|
||||||
|
// [80,75,100,50,20,60,35,80,75,100,50,20,60,35],
|
||||||
|
// [20,65,80,60,90,100,45,20,65,80,60,90,100,45],
|
||||||
|
// [30,75,50,60,80,100,45,30,75,50,60,80,100,45],
|
||||||
|
// [80,75,100,50,20,60,35,80,75,100,50,20,60,35],
|
||||||
|
// [10,65,90,40,10,70,55,90,85,76,60,30,40,65]
|
||||||
|
// ]
|
||||||
|
// setdcwdchart(refChart.value,testdata,'电池包SOH','#2363a5','%')
|
||||||
|
// setdcwdchart(refChart1.value,[[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35],[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35]],'单体电压','#2363a5','V')
|
||||||
|
// setdcwdchart(refChart2.value,[[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35],[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35]],'探针温度','#2363a5','℃')
|
||||||
|
// setdcwdchart(refChart3.value,[[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35],[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35]],'电池包SOH','#2363a5','%')
|
||||||
|
// setdcwdchart(refChart4.value,[[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35],[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35]],'单体电压','#2363a5','V')
|
||||||
|
// setdcwdchart(refChart5.value,[[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35],[20,65,80,60,90,100,45],[30,75,50,60,80,100,45],[80,75,100,50,20,60,35]],'探针温度','#2363a5','℃')
|
||||||
|
// },1000)
|
||||||
|
}
|
||||||
|
|
||||||
|
const refChart = ref()
|
||||||
|
const refChart1 = ref()
|
||||||
|
const refChart2 = ref()
|
||||||
|
const refChart3 = ref()
|
||||||
|
const refChart4 = ref()
|
||||||
|
const refChart5 = ref()
|
||||||
|
const refChart6 = ref()
|
||||||
|
const refChart7 = ref()
|
||||||
|
const refChart8 = ref()
|
||||||
|
const refChart9 = ref()
|
||||||
|
const refChart10 = ref()
|
||||||
|
const refChart11 = ref()
|
||||||
|
const refChart12 = ref()
|
||||||
|
const refChart13 = ref()
|
||||||
|
const refChart14 = ref()
|
||||||
|
const refChart15 = ref()
|
||||||
|
|
||||||
|
let myChart: echarts.EChartsType
|
||||||
|
|
||||||
|
function setdcwdchart(e:any,xdata:any,ydata:any,tit:any,tcol:any,dw:string) {
|
||||||
|
if (e) {
|
||||||
|
myChart = echarts.init(e)
|
||||||
|
let option
|
||||||
|
|
||||||
|
option = {
|
||||||
|
title: {
|
||||||
|
text: tit,
|
||||||
|
left: 'center',
|
||||||
|
textStyle: {
|
||||||
|
color: tcol,//'#2363a5',
|
||||||
|
fontSize: 18
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
grid: {
|
||||||
|
left: '3%',
|
||||||
|
top:'15%',
|
||||||
|
right: '4%',
|
||||||
|
bottom: '3%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
axisPointer: {
|
||||||
|
type: "shadow",
|
||||||
|
},
|
||||||
|
data:xdata
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
axisLabel: {
|
||||||
|
formatter: `{value} ${dw}`,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: "axis",
|
||||||
|
axisPointer: {
|
||||||
|
type: "cross",
|
||||||
|
crossStyle: {
|
||||||
|
color: "#999",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
|
||||||
|
data: ydata,
|
||||||
|
symbol: 'none',
|
||||||
|
type: 'line',
|
||||||
|
//smooth: true,
|
||||||
|
seriesLayoutBy: 'row',
|
||||||
|
emphasis: { focus: 'series' },
|
||||||
|
endLabel: {
|
||||||
|
show: true,
|
||||||
|
formatter: '{a}',
|
||||||
|
distance: 2000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
option && myChart.setOption(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.el-divider--horizontal{
|
.el-divider--horizontal{
|
||||||
|
|||||||
@ -94,7 +94,9 @@
|
|||||||
list:any[]
|
list:any[]
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
|
const emit = defineEmits<{
|
||||||
|
updata:[]
|
||||||
|
}>()
|
||||||
|
|
||||||
//查询
|
//查询
|
||||||
let yysList = ref<any>([])
|
let yysList = ref<any>([])
|
||||||
@ -186,6 +188,7 @@
|
|||||||
setTimeout(()=> {
|
setTimeout(()=> {
|
||||||
openpop.value = false
|
openpop.value = false
|
||||||
getyys()
|
getyys()
|
||||||
|
emit('updata')
|
||||||
},600)
|
},600)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -214,6 +217,7 @@
|
|||||||
message: '删除成功'
|
message: '删除成功'
|
||||||
})
|
})
|
||||||
getyys()
|
getyys()
|
||||||
|
emit('updata')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -188,6 +188,7 @@
|
|||||||
:stationName="stationName"
|
:stationName="stationName"
|
||||||
:strategyId="strategyId"
|
:strategyId="strategyId"
|
||||||
:list="mxlist"
|
:list="mxlist"
|
||||||
|
@updata="getyys"
|
||||||
/>
|
/>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|||||||
@ -268,7 +268,7 @@
|
|||||||
//新增、修改
|
//新增、修改
|
||||||
let type = ref(1)
|
let type = ref(1)
|
||||||
let openpop = ref(false)
|
let openpop = ref(false)
|
||||||
let ystit = ref('添加电机')
|
let ystit = ref('添加充电机')
|
||||||
let yysRef = ref()
|
let yysRef = ref()
|
||||||
let slecas = ref('')
|
let slecas = ref('')
|
||||||
let addata = reactive({
|
let addata = reactive({
|
||||||
@ -307,7 +307,7 @@
|
|||||||
function showpop(num:any,row?:any){
|
function showpop(num:any,row?:any){
|
||||||
type.value = num
|
type.value = num
|
||||||
openpop.value = true
|
openpop.value = true
|
||||||
ystit.value = num == 1?'添加电机':'修改电机'
|
ystit.value = num == 1?'添加充电机':'修改充电机'
|
||||||
yysRef.value?.resetFields()
|
yysRef.value?.resetFields()
|
||||||
if(row){
|
if(row){
|
||||||
addata.pkId = row.pkId
|
addata.pkId = row.pkId
|
||||||
|
|||||||
@ -18,22 +18,22 @@
|
|||||||
<el-table-column min-width="100" label="结束时间" align="center" prop="timeEnd" :show-overflow-tooltip="true" />
|
<el-table-column min-width="100" label="结束时间" align="center" prop="timeEnd" :show-overflow-tooltip="true" />
|
||||||
<el-table-column min-width="100" label="每公里收费(元)" align="center" prop="eachKmFee" :show-overflow-tooltip="true">
|
<el-table-column min-width="100" label="每公里收费(元)" align="center" prop="eachKmFee" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.eachKmFee/100}}</div>
|
<div>{{scope.row.eachKmFee?scope.row.eachKmFee/100:''}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column min-width="100" label="每SOC收费(元)" align="center" prop="eachSocFee" :show-overflow-tooltip="true">
|
<el-table-column min-width="100" label="每SOC收费(元)" align="center" prop="eachSocFee" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.eachSocFee/100}}</div>
|
<div>{{scope.row.eachSocFee?scope.row.eachSocFee/100:''}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column min-width="100" label="每度电收费(元)" align="center" prop="eachKwhFee" :show-overflow-tooltip="true">
|
<el-table-column min-width="100" label="每度电收费(元)" align="center" prop="eachKwhFee" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.eachKwhFee/100}}</div>
|
<div>{{scope.row.eachKwhFee?scope.row.eachKwhFee/100:''}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column min-width="100" label="谷段服务费(元)" align="center" prop="timeServiceFee" :show-overflow-tooltip="true">
|
<el-table-column min-width="100" label="谷段服务费(元)" align="center" prop="serviceFee" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.timeServiceFee/100}}</div>
|
<div>{{scope.row.serviceFee?scope.row.serviceFee/100:''}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" width="150" fixed="right">
|
<el-table-column label="操作" align="center" width="150" fixed="right">
|
||||||
@ -121,9 +121,9 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="时段服务费(元)" prop="timeServiceFee">
|
<el-form-item label="谷段服务费(元)" prop="serviceFee">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="addata.timeServiceFee"
|
v-model="addata.serviceFee"
|
||||||
placeholder="请输入谷段服务费"
|
placeholder="请输入谷段服务费"
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
/>
|
/>
|
||||||
@ -191,7 +191,7 @@
|
|||||||
eachKmFee:'', //每公里收费
|
eachKmFee:'', //每公里收费
|
||||||
eachSocFee:'', //每SOC收费
|
eachSocFee:'', //每SOC收费
|
||||||
eachKwhFee:'', //每度电收费
|
eachKwhFee:'', //每度电收费
|
||||||
timeServiceFee:'' //谷段服务费
|
serviceFee:'' //谷段服务费
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(() => addata.eachKmFee, v => {
|
watch(() => addata.eachKmFee, v => {
|
||||||
@ -206,8 +206,8 @@
|
|||||||
addata.eachKwhFee = setNum(v)
|
addata.eachKwhFee = setNum(v)
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(() => addata.timeServiceFee, v => {
|
watch(() => addata.serviceFee, v => {
|
||||||
addata.timeServiceFee = setNum(v)
|
addata.serviceFee = setNum(v)
|
||||||
})
|
})
|
||||||
|
|
||||||
const rules = ref({
|
const rules = ref({
|
||||||
@ -252,7 +252,7 @@
|
|||||||
addata.eachKmFee = row.eachKmFee?row.eachKmFee/100:0
|
addata.eachKmFee = row.eachKmFee?row.eachKmFee/100:0
|
||||||
addata.eachSocFee = row.eachSocFee?row.eachSocFee/100:0
|
addata.eachSocFee = row.eachSocFee?row.eachSocFee/100:0
|
||||||
addata.eachKwhFee = row.eachKwhFee?row.eachKwhFee/100:0
|
addata.eachKwhFee = row.eachKwhFee?row.eachKwhFee/100:0
|
||||||
addata.timeServiceFee = row.timeServiceFee?row.timeServiceFee/100:0
|
addata.serviceFee = row.serviceFee?row.serviceFee/100:0
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
tiem.value.splice(0)
|
tiem.value.splice(0)
|
||||||
@ -262,7 +262,7 @@
|
|||||||
addata.eachKmFee = ''
|
addata.eachKmFee = ''
|
||||||
addata.eachSocFee = ''
|
addata.eachSocFee = ''
|
||||||
addata.eachKwhFee = ''
|
addata.eachKwhFee = ''
|
||||||
addata.timeServiceFee = ''
|
addata.serviceFee = ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function savehand() {
|
function savehand() {
|
||||||
@ -270,7 +270,7 @@
|
|||||||
eachKmFee:addata.eachKmFee*100,
|
eachKmFee:addata.eachKmFee*100,
|
||||||
eachSocFee:addata.eachSocFee*100,
|
eachSocFee:addata.eachSocFee*100,
|
||||||
eachKwhFee:addata.eachKwhFee*100,
|
eachKwhFee:addata.eachKwhFee*100,
|
||||||
timeServiceFee:addata.timeServiceFee*100
|
serviceFee:addata.serviceFee*100
|
||||||
})
|
})
|
||||||
if(type.value == 1){
|
if(type.value == 1){
|
||||||
return addhdz(addObj)
|
return addhdz(addObj)
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="运营商" prop="proxyId">
|
<el-form-item label="运营商" prop="proxyId">
|
||||||
<el-select v-model="queryParams.proxyId" placeholder="请选择运营商" style="width: 200px;">
|
<el-select v-model="queryParams.proxyId" placeholder="请选择运营商" style="width: 200px;">
|
||||||
<el-option v-for="n in yunList" :label="n.poname" :value="n.pocode" />
|
<el-option v-for="n in yunList" :label="n.label" :value="n.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="站点名称" prop="name">
|
<el-form-item label="站点名称" prop="name">
|
||||||
@ -80,7 +80,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="站点编码" min-width="300" align="center" prop="code" :show-overflow-tooltip="true" />
|
<el-table-column label="站点编码" min-width="300" align="center" prop="code" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="运营商" min-width="200" align="center" prop="proxyId" :show-overflow-tooltip="true" />
|
<el-table-column label="运营商" min-width="200" align="center" prop="poname" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="状态" min-width="100" align="center" prop="status" :show-overflow-tooltip="true">
|
<el-table-column label="状态" min-width="100" align="center" prop="status" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div v-if="scope.row.status == 1">正常营业</div>
|
<div v-if="scope.row.status == 1">正常营业</div>
|
||||||
@ -151,7 +151,7 @@
|
|||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="运营商" prop="proxyId">
|
<el-form-item label="运营商" prop="proxyId">
|
||||||
<el-select v-model="addata.proxyId" placeholder="请选择运营商">
|
<el-select v-model="addata.proxyId" placeholder="请选择运营商">
|
||||||
<el-option v-for="n in yunList" :label="n.poname" :value="n.pocode" />
|
<el-option v-for="n in yunList" :label="n.label" :value="n.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -410,7 +410,7 @@
|
|||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="运营商" prop="proxyId">
|
<el-form-item label="运营商" prop="proxyId">
|
||||||
<el-select v-model="addata.proxyId" placeholder="请选择运营商">
|
<el-select v-model="addata.proxyId" placeholder="请选择运营商">
|
||||||
<el-option v-for="n in yunList" :label="n.poname" :value="n.pocode" />
|
<el-option v-for="n in yunList" :label="n.label" :value="n.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -636,6 +636,17 @@
|
|||||||
@update="getyys"
|
@update="getyys"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div style="margin-bottom: 20px;border: 1px solid #98c3ef; border-radius: 10px;">
|
||||||
|
<div class="mktit">电池仓</div>
|
||||||
|
<dcc
|
||||||
|
v-if="drawer"
|
||||||
|
zjtype="2"
|
||||||
|
:stationCode="addata.code"
|
||||||
|
:stationName="addata.name"
|
||||||
|
:list="dcclist"
|
||||||
|
@update="getyys"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<div style="margin-bottom: 20px;;border: 1px solid #98c3ef; border-radius: 10px;">
|
<div style="margin-bottom: 20px;;border: 1px solid #98c3ef; border-radius: 10px;">
|
||||||
<div class="mktit">充电机</div>
|
<div class="mktit">充电机</div>
|
||||||
<electmach
|
<electmach
|
||||||
@ -647,23 +658,13 @@
|
|||||||
@update="getyys"
|
@update="getyys"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-bottom: 20px;border: 1px solid #98c3ef; border-radius: 10px;">
|
|
||||||
<div class="mktit">电池仓</div>
|
|
||||||
<dcc
|
|
||||||
v-if="drawer"
|
|
||||||
zjtype="2"
|
|
||||||
:stationCode="addata.code"
|
|
||||||
:stationName="addata.name"
|
|
||||||
:list="dcclist"
|
|
||||||
@update="getyys"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div style="margin-bottom: 20px;border: 1px solid #98c3ef; border-radius: 10px;">
|
<div style="margin-bottom: 20px;border: 1px solid #98c3ef; border-radius: 10px;">
|
||||||
<div class="mktit">电池</div>
|
<div class="mktit">电池</div>
|
||||||
<battery
|
<battery
|
||||||
v-if="drawer"
|
v-if="drawer"
|
||||||
zjtype="2"
|
zjtype="2"
|
||||||
:stationCode="addata.code"
|
:stationCode="addata.code"
|
||||||
|
:stationName="addata.name"
|
||||||
:list="batlist"
|
:list="batlist"
|
||||||
@update="getyys"
|
@update="getyys"
|
||||||
/>
|
/>
|
||||||
@ -699,7 +700,7 @@
|
|||||||
getqrcode
|
getqrcode
|
||||||
} from '@/api/swapstation/hdz'
|
} from '@/api/swapstation/hdz'
|
||||||
import {
|
import {
|
||||||
getyyslist
|
optionyyslist
|
||||||
} from '@/api/systemSet/operator'
|
} from '@/api/systemSet/operator'
|
||||||
import {
|
import {
|
||||||
getArea
|
getArea
|
||||||
@ -747,13 +748,10 @@
|
|||||||
|
|
||||||
//初始查询运营商
|
//初始查询运营商
|
||||||
let yunList = ref<any>([])
|
let yunList = ref<any>([])
|
||||||
getyyslist({
|
optionyyslist().then(rps => {
|
||||||
pageSize:200,
|
|
||||||
pageNo:1
|
|
||||||
}).then(rps => {
|
|
||||||
if(rps.data){
|
if(rps.data){
|
||||||
let list = (rps.data as any).records
|
//let list = (rps.data as any).records
|
||||||
yunList.value = list?list:[]
|
yunList.value = rps.data
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -934,8 +932,12 @@
|
|||||||
addata.carTypeCode = row.carTypeCode?row.carTypeCode.split(','):''
|
addata.carTypeCode = row.carTypeCode?row.carTypeCode.split(','):''
|
||||||
if(addata.locationPoint){
|
if(addata.locationPoint){
|
||||||
let latlng = addata.locationPoint.split(',')
|
let latlng = addata.locationPoint.split(',')
|
||||||
lat.value = latlng[0]
|
|
||||||
lng.value = latlng[1]
|
lng.value = latlng[0]
|
||||||
|
lat.value = latlng[1]
|
||||||
|
}else{
|
||||||
|
lng.value = ''
|
||||||
|
lat.value = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
:inline="true"
|
:inline="true"
|
||||||
>
|
>
|
||||||
<el-form-item label="换电站" prop="stationCode">
|
<el-form-item label="换电站" prop="stationCode">
|
||||||
<el-select v-model="queryParams.stationCode" placeholder="请选择换电站" style="width: 200px;">
|
<el-select v-model="queryParams.stationCode" placeholder="请选择换电站" style="width: 240px;">
|
||||||
<el-option v-for="n in yunList" :label="n.name" :value="n.code" />
|
<el-option v-for="n in yunList" :label="n.name" :value="n.code" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -57,7 +57,7 @@
|
|||||||
<div>{{(queryParams.pageNo - 1) * queryParams.pageSize+ $index + 1}}</div>
|
<div>{{(queryParams.pageNo - 1) * queryParams.pageSize+ $index + 1}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="换电站" min-width="100" align="center" prop="stationCode" :show-overflow-tooltip="true" />
|
<el-table-column label="换电站" min-width="150" align="center" prop="stationName" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="传送方向" min-width="100" align="center" prop="direction" :show-overflow-tooltip="true" />
|
<el-table-column label="传送方向" min-width="100" align="center" prop="direction" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="消息类型" min-width="100" align="center" prop="type" :show-overflow-tooltip="true" />
|
<el-table-column label="消息类型" min-width="100" align="center" prop="type" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="方法" min-width="120" align="center" prop="messageFunction" :show-overflow-tooltip="true" />
|
<el-table-column label="方法" min-width="120" align="center" prop="messageFunction" :show-overflow-tooltip="true" />
|
||||||
|
|||||||
190
src/views/swapstation/online/index.vue
Normal file
190
src/views/swapstation/online/index.vue
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="app-container" style="margin-bottom: 12px;padding-bottom: 5px;border-radius: 10px;">
|
||||||
|
<el-form
|
||||||
|
ref="querform"
|
||||||
|
:model="queryParams"
|
||||||
|
:inline="true"
|
||||||
|
>
|
||||||
|
<el-form-item label="换电站" prop="stationCode">
|
||||||
|
<el-select v-model="queryParams.stationCode" placeholder="请选择换电站" style="width: 240px;">
|
||||||
|
<el-option v-for="n in yunList" :label="n.name" :value="n.code" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="传送方向" prop="direction">
|
||||||
|
<el-select v-model="queryParams.direction" placeholder="请选择传送方向" style="width: 200px;">
|
||||||
|
<el-option
|
||||||
|
v-for="n in direction"
|
||||||
|
:value="n.dictValue"
|
||||||
|
:label="n.dictName"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="消息类型" prop="type">
|
||||||
|
<el-select v-model="queryParams.type" placeholder="请选择信息类型" style="width: 200px;">
|
||||||
|
<el-option
|
||||||
|
v-for="n in msgtype"
|
||||||
|
:value="n.dictValue"
|
||||||
|
:label="n.dictName"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="方法" prop="messageFunction">
|
||||||
|
<el-input v-model="queryParams.messageFunction" placeholder="请输入方法" clearable style="width: 160px" />
|
||||||
|
</el-form-item> -->
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" @click="handBtnqu">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div class="app-container" style="margin-bottom: 12px;border-radius: 10px;">
|
||||||
|
|
||||||
|
<!-- <el-tooltip class="item" effect="dark" :content="search? '隐藏搜索' : '显示搜索'" placement="top">
|
||||||
|
<el-button size="mini" circle icon="Search" @click="search = !search" />
|
||||||
|
</el-tooltip> -->
|
||||||
|
<el-table
|
||||||
|
style="width:100%;margin-top: 10px;"
|
||||||
|
:data="yysList"
|
||||||
|
border
|
||||||
|
stripe
|
||||||
|
max-height="620px"
|
||||||
|
>
|
||||||
|
|
||||||
|
<!-- {{ (queryParams.pageNo - 1) * queryParams.pageSize + index + 1 }} -->
|
||||||
|
<el-table-column type="index" min-width="50" align="center">
|
||||||
|
<template #default="{ $index }">
|
||||||
|
<div>{{(queryParams.pageNo - 1) * queryParams.pageSize+ $index + 1}}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="换电站" min-width="150" align="center" prop="stationName" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="状态" min-width="100" align="center" prop="state" :show-overflow-tooltip="true" />
|
||||||
|
<!-- <el-table-column label="http消息" min-width="100" align="center" prop="type" :show-overflow-tooltip="true" /> -->
|
||||||
|
<!-- <el-table-column label="方法" min-width="120" align="center" prop="messageFunction" :show-overflow-tooltip="true" /> -->
|
||||||
|
<el-table-column label="变化时间" min-width="120" align="center" prop="lineTime" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="内容" min-width="500" prop="content">
|
||||||
|
<template #default="scope">
|
||||||
|
<div style="word-wrap: break-word;">{{scope.row.httpContent}}</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div v-if="total > 10" style="display: flex;justify-content: right;padding-top:20px;">
|
||||||
|
<el-pagination
|
||||||
|
v-model:current-page="queryParams.pageNo"
|
||||||
|
v-model:page-size="queryParams.pageSize"
|
||||||
|
:page-sizes="[10, 20, 30, 40]"
|
||||||
|
background
|
||||||
|
size="small"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="total"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="getyys"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import {
|
||||||
|
gethdzlist
|
||||||
|
} from '@/api/swapstation/hdz'
|
||||||
|
|
||||||
|
import {
|
||||||
|
onlinelist
|
||||||
|
} from '@/api/swapstation/mqtt'
|
||||||
|
|
||||||
|
// import {
|
||||||
|
// getdict
|
||||||
|
// } from '@/api/systemSet/dict'
|
||||||
|
|
||||||
|
import { ref,reactive} from 'vue'
|
||||||
|
|
||||||
|
let search = ref(true)
|
||||||
|
|
||||||
|
let queryParams = reactive({
|
||||||
|
pageSize:20, //每页条数
|
||||||
|
pageNo:1, //页数
|
||||||
|
stationCode:'', //换电站编码
|
||||||
|
//direction:'', //传送方向
|
||||||
|
//type:'', //消息类型
|
||||||
|
//messageFunction:'' //方法 stationInfo
|
||||||
|
})
|
||||||
|
|
||||||
|
//查询
|
||||||
|
let total = ref(0)
|
||||||
|
let yysList = ref<any>([])
|
||||||
|
function handBtnqu(){
|
||||||
|
queryParams.pageNo = 1
|
||||||
|
total.value = 0
|
||||||
|
getyys()
|
||||||
|
}
|
||||||
|
|
||||||
|
// //获取传送方向字典
|
||||||
|
// let direction = ref<any>([])
|
||||||
|
// getdict({
|
||||||
|
// typeCode:'mqttcsfx'
|
||||||
|
// }).then(rps => {
|
||||||
|
// direction.value = rps.data
|
||||||
|
// })
|
||||||
|
|
||||||
|
// //获取消息类型字典
|
||||||
|
// let msgtype = ref<any>([])
|
||||||
|
// getdict({
|
||||||
|
// typeCode:'mqttxxtype'
|
||||||
|
// }).then(rps => {
|
||||||
|
// msgtype.value = rps.data
|
||||||
|
// })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//初始查询换电站
|
||||||
|
let yunList = ref<any>([])
|
||||||
|
|
||||||
|
gethdzlist({
|
||||||
|
pageSize:100, //每页条数
|
||||||
|
pageNo:1, //页数
|
||||||
|
proxyId:'', //归属运营商ID
|
||||||
|
name:'', //站点名称
|
||||||
|
code:'', //站点编码
|
||||||
|
status:'', //状态:1-正常营业,2-正常停运,3-故障停运,4-指令停运,9-其它
|
||||||
|
type:'', //站点类型ID
|
||||||
|
}).then(rps => {
|
||||||
|
if(rps.data){
|
||||||
|
let list = (rps.data as any).records
|
||||||
|
yunList.value = list?list:[]
|
||||||
|
//queryParams.stationCode = list[0].code
|
||||||
|
//getyys()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
getyys()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function getyys() {
|
||||||
|
yysList.value.splice(0)
|
||||||
|
onlinelist(queryParams).then(rps => {
|
||||||
|
if(rps.data){
|
||||||
|
yysList.value = (rps.data as any).records
|
||||||
|
total.value = (rps.data as any).total
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleSizeChange(val:number) {
|
||||||
|
queryParams.pageSize = val
|
||||||
|
getyys()
|
||||||
|
}
|
||||||
|
|
||||||
|
//重置
|
||||||
|
let querform = ref()
|
||||||
|
function resetQuery() {
|
||||||
|
querform.value?.resetFields()
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.el-divider--horizontal{
|
||||||
|
border-color:#5b98cd;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
355
src/views/system/abnormal/index.vue
Normal file
355
src/views/system/abnormal/index.vue
Normal file
@ -0,0 +1,355 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="app-container" style="margin-bottom: 12px;padding-bottom: 5px;border-radius: 10px;">
|
||||||
|
<el-form
|
||||||
|
ref="querform"
|
||||||
|
:model="queryParams"
|
||||||
|
:inline="true"
|
||||||
|
>
|
||||||
|
|
||||||
|
<el-form-item label="路径" prop="path">
|
||||||
|
<el-input v-model="queryParams.path" placeholder="请输入路径" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" @click="handBtnqu">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div class="app-container" style="margin-bottom: 12px;border-radius: 10px;">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="Plus"
|
||||||
|
@click="showpop(1)">新增</el-button>
|
||||||
|
<el-table
|
||||||
|
style="width:100%;margin-top: 10px;"
|
||||||
|
:data="yysList"
|
||||||
|
border
|
||||||
|
stripe
|
||||||
|
highlight-current-row
|
||||||
|
max-height="600px"
|
||||||
|
>
|
||||||
|
<el-table-column label="路径" min-width="200" align="center" prop="path" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="通知人员" min-width="200" align="center" prop="recipientNames" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column label="操作" align="center" width="150" fixed="right">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" icon="Edit" @click="showpop(2,scope.row)">修改</el-button>
|
||||||
|
<el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div v-if="total > 10" style="display: flex;justify-content: right;padding-top:20px;">
|
||||||
|
<el-pagination
|
||||||
|
v-model:current-page="queryParams.pageNo"
|
||||||
|
v-model:page-size="queryParams.pageSize"
|
||||||
|
:page-sizes="[10, 20, 30, 40]"
|
||||||
|
background
|
||||||
|
size="small"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="total"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="getyys"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 添加或修改用户配置对话框 -->
|
||||||
|
<el-dialog
|
||||||
|
v-model="openpop"
|
||||||
|
:title="ystit"
|
||||||
|
width="500px"
|
||||||
|
append-to-body
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
>
|
||||||
|
<el-form ref="yysRef" :model="addata" :rules="rules" label-width="110px">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="路径" prop="path">
|
||||||
|
<!-- <el-cascader
|
||||||
|
ref="cascader"
|
||||||
|
v-model="slecas"
|
||||||
|
style="width: 100%;"
|
||||||
|
:options="options"
|
||||||
|
clearable
|
||||||
|
:props="{
|
||||||
|
label:'admdvsName',
|
||||||
|
value:'admdvsNo',
|
||||||
|
children:'subAdmdvsInfoList'
|
||||||
|
}"
|
||||||
|
@change="change"
|
||||||
|
/> -->
|
||||||
|
<el-input v-model="addata.path" placeholder="请输入路径" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="通知人员" prop="recipientIds">
|
||||||
|
<!-- <el-autocomplete
|
||||||
|
multiple
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="wxuser"
|
||||||
|
:fetch-suggestions="querySearchAsync"
|
||||||
|
placeholder="请输入手机号查询"
|
||||||
|
clearable
|
||||||
|
@blur="autoblur"
|
||||||
|
@select="handleSelect"
|
||||||
|
@clear="autoclear"
|
||||||
|
/> -->
|
||||||
|
|
||||||
|
<!-- @focus="wxfocus"-->
|
||||||
|
|
||||||
|
<el-select
|
||||||
|
v-model="wxuser"
|
||||||
|
multiple
|
||||||
|
filterable
|
||||||
|
remote
|
||||||
|
reserve-keyword
|
||||||
|
value-key="value"
|
||||||
|
placeholder="请输入手机号查询"
|
||||||
|
:remote-method="remoteMethod"
|
||||||
|
:loading="loading"
|
||||||
|
@focus="wxfocus"
|
||||||
|
@change="wxchange"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="n in userlist"
|
||||||
|
:key="n.wuid"
|
||||||
|
:label="`${n.name?n.name:'暂未设置'}, ${n.phoneNumber?n.phoneNumber:'暂未设置'}`"
|
||||||
|
:value="n.wuid"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
|
||||||
|
<!-- <el-input v-model="addata.recipientIds" placeholder="请选择人员" /> -->
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="handleAdd">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref,reactive,watch } from 'vue'
|
||||||
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
import {
|
||||||
|
getadlist,
|
||||||
|
addyctz,
|
||||||
|
updateab,
|
||||||
|
delab
|
||||||
|
} from '@/api/systemSet/abnormal'
|
||||||
|
|
||||||
|
import {
|
||||||
|
getwxlist
|
||||||
|
} from '@/api/operation/wxuser'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//获取微信用户
|
||||||
|
let wxuser = ref<any>([])
|
||||||
|
let userlist = ref<any>([])
|
||||||
|
let loading = ref<any>(false)
|
||||||
|
function remoteMethod (queryString: string) {
|
||||||
|
//if(queryString !== ''){
|
||||||
|
loading.value = true
|
||||||
|
userlist.value.splice(0)
|
||||||
|
getwxlist({
|
||||||
|
pageSize:1000, //每页条数
|
||||||
|
pageNo:1, //页数
|
||||||
|
phoneNumber:queryString, //手机号
|
||||||
|
// nickName:queryString, //昵称
|
||||||
|
// name:queryString //名称
|
||||||
|
}).then((res:any) => {
|
||||||
|
loading.value = false
|
||||||
|
if (res.data && res.data.records.length > 0) {
|
||||||
|
// mapList.value = res.data;
|
||||||
|
userlist.value = res.data.records
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
loading.value = false
|
||||||
|
})
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
let queryParams = reactive({
|
||||||
|
pageSize:20, //每页条数
|
||||||
|
pageNo:1, //页数
|
||||||
|
path:'' //路径
|
||||||
|
})
|
||||||
|
|
||||||
|
//查询
|
||||||
|
let total = ref(0)
|
||||||
|
let yysList = ref([])
|
||||||
|
function handBtnqu(){
|
||||||
|
queryParams.pageNo = 1
|
||||||
|
getyys()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getyys() {
|
||||||
|
yysList.value.splice(0)
|
||||||
|
getadlist(queryParams).then(rps => {
|
||||||
|
if(rps.data){
|
||||||
|
total.value = (rps.data as any).total
|
||||||
|
let list = (rps.data as any).records
|
||||||
|
yysList.value = list?list:[]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleSizeChange(val:number) {
|
||||||
|
queryParams.pageSize = val
|
||||||
|
getyys()
|
||||||
|
}
|
||||||
|
|
||||||
|
//重置
|
||||||
|
let querform = ref()
|
||||||
|
function resetQuery() {
|
||||||
|
querform.value?.resetFields()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//新增、修改
|
||||||
|
let type = ref(1)
|
||||||
|
let openpop = ref(false)
|
||||||
|
let ystit = ref('')
|
||||||
|
let yysRef = ref()
|
||||||
|
let slecas = ref('')
|
||||||
|
let addata = reactive({
|
||||||
|
path:'', //路径
|
||||||
|
recipientIds:'' //通知人员
|
||||||
|
})
|
||||||
|
const rules = ref({
|
||||||
|
path:[
|
||||||
|
{ required: true, message: "请输入路径", trigger: "blur" },
|
||||||
|
],
|
||||||
|
recipientIds:[
|
||||||
|
{ required: true, message: "请选择通知人员", trigger: "blur" },
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
let pkId = ''
|
||||||
|
function showpop(num:any,row?:any){
|
||||||
|
type.value = num
|
||||||
|
openpop.value = true
|
||||||
|
ystit.value = num == 1?'添加异常':'修改异常'
|
||||||
|
yysRef.value?.resetFields()
|
||||||
|
|
||||||
|
wxuser.value = []
|
||||||
|
if(row){
|
||||||
|
pkId = row.pkId
|
||||||
|
addata.path = row.path
|
||||||
|
addata.recipientIds = row.recipientIds
|
||||||
|
if(row.recipientIds){
|
||||||
|
wxuser.value = row.recipientIds?row.recipientIds.split(','):[]
|
||||||
|
}
|
||||||
|
getwxlist({
|
||||||
|
pageSize:1000, //每页条数
|
||||||
|
pageNo:1, //页数
|
||||||
|
phoneNumber:'', //手机号
|
||||||
|
// nickName:queryString, //昵称
|
||||||
|
// name:queryString //名称
|
||||||
|
}).then((res:any) => {
|
||||||
|
|
||||||
|
if (res.data && res.data.records.length > 0) {
|
||||||
|
// mapList.value = res.data;
|
||||||
|
userlist.value = res.data.records
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}else{
|
||||||
|
addata.path = ''
|
||||||
|
addata.recipientIds = ''
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(wxuser.value,'wxuser1')
|
||||||
|
|
||||||
|
}
|
||||||
|
function savehand() {
|
||||||
|
if(type.value == 1){
|
||||||
|
return addyctz(addata)
|
||||||
|
}
|
||||||
|
return updateab(Object.assign({},addata,{
|
||||||
|
pkId
|
||||||
|
}))
|
||||||
|
|
||||||
|
}
|
||||||
|
//保存
|
||||||
|
function handleAdd() {
|
||||||
|
yysRef.value?.validate((valid:Boolean) => {
|
||||||
|
if (valid) {
|
||||||
|
savehand().then(() => {
|
||||||
|
ElMessage({
|
||||||
|
type: 'success',
|
||||||
|
message: type.value == 1?'添加成功':'修改成功'
|
||||||
|
})
|
||||||
|
setTimeout(()=> {
|
||||||
|
openpop.value = false
|
||||||
|
getyys()
|
||||||
|
},600)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//取消
|
||||||
|
function cancel() {
|
||||||
|
openpop.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除
|
||||||
|
function handleDelete(row:any) {
|
||||||
|
ElMessageBox.confirm(
|
||||||
|
`确定删除:路径为${row.path}的异常?`,
|
||||||
|
'温馨提示',
|
||||||
|
{
|
||||||
|
// confirmButtonText: '',
|
||||||
|
// cancelButtonText: 'Cancel',
|
||||||
|
type: 'warning',
|
||||||
|
}
|
||||||
|
).then(() => {
|
||||||
|
delab(row.pkId).then(() => {
|
||||||
|
ElMessage({
|
||||||
|
type: 'success',
|
||||||
|
message: '删除成功'
|
||||||
|
})
|
||||||
|
setTimeout(() => {
|
||||||
|
getyys()
|
||||||
|
},600)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function wxchange(v:any) {
|
||||||
|
console.log(v)
|
||||||
|
console.log(wxuser.value,'wxuser.value')
|
||||||
|
if(v.length > 0){
|
||||||
|
addata.recipientIds = v.join()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function wxfocus() {
|
||||||
|
// userlist.value.splice(0)
|
||||||
|
//wxuser.value = []
|
||||||
|
//addata.recipientIds = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
getyys()
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.el-divider--horizontal{
|
||||||
|
border-color:#5b98cd;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -303,7 +303,7 @@
|
|||||||
//删除
|
//删除
|
||||||
function handleDelete(row:any) {
|
function handleDelete(row:any) {
|
||||||
ElMessageBox.confirm(
|
ElMessageBox.confirm(
|
||||||
`确定删除:${row.typeName}`,
|
`确定删除:${row.title}`,
|
||||||
'温馨提示',
|
'温馨提示',
|
||||||
{
|
{
|
||||||
// confirmButtonText: '',
|
// confirmButtonText: '',
|
||||||
|
|||||||
@ -312,6 +312,7 @@
|
|||||||
let zhidval = ref('')
|
let zhidval = ref('')
|
||||||
|
|
||||||
let zidform = reactive({
|
let zidform = reactive({
|
||||||
|
pkId:'',
|
||||||
typeId:'', //类型ID
|
typeId:'', //类型ID
|
||||||
typeCode:'', //类型code
|
typeCode:'', //类型code
|
||||||
dictName:'', //字典名称
|
dictName:'', //字典名称
|
||||||
@ -332,6 +333,7 @@
|
|||||||
zhidval.value = '修改字典值'
|
zhidval.value = '修改字典值'
|
||||||
}
|
}
|
||||||
if(row){
|
if(row){
|
||||||
|
zidform.pkId = row.pkId
|
||||||
zidform.typeId = row.typeId
|
zidform.typeId = row.typeId
|
||||||
zidform.typeCode = row.typeCode
|
zidform.typeCode = row.typeCode
|
||||||
zidform.dictName = row.dictName
|
zidform.dictName = row.dictName
|
||||||
@ -339,6 +341,7 @@
|
|||||||
zidform.dictValue = row.dictValue
|
zidform.dictValue = row.dictValue
|
||||||
zidform.sort = row.sort
|
zidform.sort = row.sort
|
||||||
}else{
|
}else{
|
||||||
|
zidform.pkId = ''
|
||||||
zidform.typeId = typeId.value
|
zidform.typeId = typeId.value
|
||||||
zidform.typeCode = typecode.value
|
zidform.typeCode = typecode.value
|
||||||
zidform.dictName = ''
|
zidform.dictName = ''
|
||||||
|
|||||||
@ -40,14 +40,14 @@
|
|||||||
<el-table-column min-width="150" label="仓位数量下限" align="center" prop="dccNumMin" />
|
<el-table-column min-width="150" label="仓位数量下限" align="center" prop="dccNumMin" />
|
||||||
<el-table-column min-width="150" label="仓位数量上限" align="center" prop="dccNumMax" />
|
<el-table-column min-width="150" label="仓位数量上限" align="center" prop="dccNumMax" />
|
||||||
<el-table-column min-width="100" label="服务能力" align="center" prop="serviceCapability" />
|
<el-table-column min-width="100" label="服务能力" align="center" prop="serviceCapability" />
|
||||||
<el-table-column min-width="100" label="充电机功率" align="center" prop="chargerPower" />
|
<el-table-column min-width="130" label="充电机功率(kW)" align="center" prop="chargerPower" />
|
||||||
<el-table-column min-width="150" label="自动化级别" align="center" prop="autoLevel">
|
<el-table-column min-width="150" label="自动化级别" align="center" prop="autoLevel">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div v-if="scope.row.autoLevel == 1">有人值守</div>
|
<div v-if="scope.row.autoLevel == 1">无人值守</div>
|
||||||
<div v-if="scope.row.autoLevel == 2">无人值守</div>
|
<div v-if="scope.row.autoLevel == 2">有人值守</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" icon="Edit" @click="showpop(2,scope.row)">修改</el-button>
|
<el-button link type="primary" icon="Edit" @click="showpop(2,scope.row)">修改</el-button>
|
||||||
<el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
<el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||||
@ -84,7 +84,7 @@
|
|||||||
append-to-body
|
append-to-body
|
||||||
align-center
|
align-center
|
||||||
>
|
>
|
||||||
<el-form ref="typeform" :model="addObj" :rules="rules" label-width="120px">
|
<el-form ref="typeform" :model="addObj" :rules="rules" label-width="150px">
|
||||||
<el-form-item label="型号名称" prop="name">
|
<el-form-item label="型号名称" prop="name">
|
||||||
<el-input v-model="addObj.name" placeholder="请输入型号名称" />
|
<el-input v-model="addObj.name" placeholder="请输入型号名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -97,13 +97,13 @@
|
|||||||
<el-form-item label="服务能力" prop="serviceCapability">
|
<el-form-item label="服务能力" prop="serviceCapability">
|
||||||
<el-input v-model="addObj.serviceCapability" placeholder="请输入服务能力" />
|
<el-input v-model="addObj.serviceCapability" placeholder="请输入服务能力" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="充电机功率" prop="chargerPower">
|
<el-form-item label="充电机功率(kW)" prop="chargerPower">
|
||||||
<el-input v-model="addObj.chargerPower" placeholder="请输入充电机功率" />
|
<el-input v-model="addObj.chargerPower" placeholder="请输入充电机功率" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="自动化级别" prop="serviceCapability">
|
<el-form-item label="自动化级别" prop="autoLevel">
|
||||||
<el-radio-group v-model="addObj.serviceCapability">
|
<el-radio-group v-model="addObj.autoLevel">
|
||||||
<el-radio value="1">无人值守</el-radio>
|
<el-radio :value="1">无人值守</el-radio>
|
||||||
<el-radio value="2">有人值守</el-radio>
|
<el-radio :value="2">有人值守</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
|||||||
@ -102,8 +102,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="电池材料" prop="material">
|
<el-form-item label="电池材料" prop="material">
|
||||||
<el-radio-group v-model="addObj.material">
|
<el-radio-group v-model="addObj.material">
|
||||||
<el-radio value="1">三元铁锂</el-radio>
|
<el-radio :value="1">三元铁锂</el-radio>
|
||||||
<el-radio value="2">磷酸铁锂</el-radio>
|
<el-radio :value="2">磷酸铁锂</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="连接方式" prop="connectionMode">
|
<el-form-item label="连接方式" prop="connectionMode">
|
||||||
|
|||||||
@ -67,18 +67,18 @@
|
|||||||
max-height="600px"
|
max-height="600px"
|
||||||
>
|
>
|
||||||
|
|
||||||
<el-table-column label="运营商名称" width="200" align="center" prop="poname" :show-overflow-tooltip="true">
|
<el-table-column label="运营商名称" min-width="200" align="center" prop="poname" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div @click="showpop(2,scope.row)" style="display: inline-block;color:#16599d;border-bottom: 1px solid #417ebb;cursor:pointer">{{scope.row.poname}}</div>
|
<div @click="showpop(2,scope.row)" style="display: inline-block;color:#16599d;border-bottom: 1px solid #417ebb;cursor:pointer">{{scope.row.poname}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="运营商组织机构代码" width="200" align="center" prop="pocode" :show-overflow-tooltip="true" />
|
<el-table-column label="运营商组织机构代码" min-width="200" align="center" prop="pocode" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="区划" width="200" align="center" prop="division" :show-overflow-tooltip="true" />
|
<el-table-column label="区划" min-width="200" align="center" prop="division" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="详细地址" width="400" align="center" prop="address" :show-overflow-tooltip="true" />
|
<el-table-column label="详细地址" min-width="400" align="center" prop="address" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="联系人" width="130" align="center" prop="contacts" :show-overflow-tooltip="true" />
|
<el-table-column label="联系人" min-width="130" align="center" prop="contacts" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="联系电话" width="160" align="center" prop="phone" :show-overflow-tooltip="true" />
|
<el-table-column label="联系电话" min-width="160" align="center" prop="phone" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="换电站数量" width="100" align="center" prop="stationCount" :show-overflow-tooltip="true" />
|
<el-table-column label="换电站数量" min-width="100" align="center" prop="stationCount" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="状态" width="100" align="center" prop="status">
|
<el-table-column label="状态" min-width="100" align="center" prop="status">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div v-if="scope.row.status == 1">启用</div>
|
<div v-if="scope.row.status == 1">启用</div>
|
||||||
<div v-else style="color: #ccc;">禁用</div>
|
<div v-else style="color: #ccc;">禁用</div>
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
<el-table-column label="角色编码" align="center" prop="rcode" />
|
<el-table-column label="角色编码" align="center" prop="rcode" />
|
||||||
<el-table-column label="状态" align="center" prop="status">
|
<el-table-column label="状态" align="center" prop="status">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div v-if="scope.row.type == 1">启用</div>
|
<div v-if="scope.row.status == 1">启用</div>
|
||||||
<div v-else>禁用</div>
|
<div v-else>禁用</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -187,7 +187,10 @@
|
|||||||
function querytype() {
|
function querytype() {
|
||||||
dictlist.value.splice(0)
|
dictlist.value.splice(0)
|
||||||
getjslist('').then(rps => {
|
getjslist('').then(rps => {
|
||||||
|
if(rps.data){
|
||||||
dictlist.value = rps.data
|
dictlist.value = rps.data
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -341,7 +344,9 @@
|
|||||||
jklist.value.splice(0)
|
jklist.value.splice(0)
|
||||||
jkobj.sourceIds = ''
|
jkobj.sourceIds = ''
|
||||||
getInter(n.pkId).then(rps => {
|
getInter(n.pkId).then(rps => {
|
||||||
|
if(rps.data){
|
||||||
jklist.value = rps.data
|
jklist.value = rps.data
|
||||||
|
}
|
||||||
return getinter({
|
return getinter({
|
||||||
rcode:quanxpar.rcode,
|
rcode:quanxpar.rcode,
|
||||||
resourceType:'PER'
|
resourceType:'PER'
|
||||||
|
|||||||
@ -151,7 +151,7 @@
|
|||||||
<el-form-item label="运营商" prop="businessCode">
|
<el-form-item label="运营商" prop="businessCode">
|
||||||
|
|
||||||
<el-select v-model="userform.businessCode" placeholder="请选择运营商">
|
<el-select v-model="userform.businessCode" placeholder="请选择运营商">
|
||||||
<el-option v-for="n in yunList" :label="n.poname" :value="n.pocode" />
|
<el-option v-for="n in yunList" :label="n.label" :value="n.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -317,7 +317,7 @@
|
|||||||
|
|
||||||
import { getjslist } from '@/api/systemSet/role'
|
import { getjslist } from '@/api/systemSet/role'
|
||||||
import {
|
import {
|
||||||
getyyslist
|
optionyyslist
|
||||||
} from '@/api/systemSet/operator'
|
} from '@/api/systemSet/operator'
|
||||||
import {
|
import {
|
||||||
getlist
|
getlist
|
||||||
@ -350,13 +350,10 @@
|
|||||||
let qyuserList = ref<any>([])
|
let qyuserList = ref<any>([])
|
||||||
if(userType.value == 1){
|
if(userType.value == 1){
|
||||||
//初始查询运营商
|
//初始查询运营商
|
||||||
getyyslist({
|
optionyyslist().then(rps => {
|
||||||
pageSize:200,
|
|
||||||
pageNo:1
|
|
||||||
}).then(rps => {
|
|
||||||
if(rps.data){
|
if(rps.data){
|
||||||
let list = (rps.data as any).records
|
// let list = (rps.data as any).records
|
||||||
yunList.value = list?list:[]
|
yunList.value = rps.data
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -586,11 +583,12 @@
|
|||||||
type: 'warning',
|
type: 'warning',
|
||||||
}
|
}
|
||||||
).then(() => {
|
).then(() => {
|
||||||
deleteuser('123').then(rps => {
|
deleteuser({uid:row.pkId}).then(rps => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: '删除成功'
|
message: '删除成功'
|
||||||
})
|
})
|
||||||
|
handleQuery()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -653,6 +651,7 @@
|
|||||||
type: 'success',
|
type: 'success',
|
||||||
message: '分配成功'
|
message: '分配成功'
|
||||||
})
|
})
|
||||||
|
handleQuery()
|
||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
ElMessage({
|
ElMessage({
|
||||||
|
|||||||
@ -190,7 +190,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="组织机构代码" prop="ccode">
|
<el-form-item label="组织机构代码" prop="ccode">
|
||||||
<el-input v-model="addata.ccode" maxlength="30" disabled placeholder="请输入组织机构代码" clearable />
|
<el-input v-model="addata.ccode" maxlength="30" disabled placeholder="" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
@ -202,7 +202,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="车牌号" prop="plateNum">
|
<el-form-item label="车牌号" prop="plateNum">
|
||||||
<el-input v-model="addata.plateNum" disabled placeholder="请输入车牌号" clearable />
|
<el-input v-model="addata.plateNum" maxlength="8" disabled placeholder="请输入车牌号" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@ -413,8 +413,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="组织机构代码" prop="ccode">
|
<el-form-item label="组织机构代码">
|
||||||
<el-input v-model="addata.ccode" maxlength="20" disabled placeholder="请输入组织机构代码" clearable />
|
<el-input v-model="addata.ccode" maxlength="20" disabled placeholder="" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
@ -426,7 +426,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="车牌号" prop="plateNum">
|
<el-form-item label="车牌号" prop="plateNum">
|
||||||
<el-input v-model="addata.plateNum" placeholder="请输入车牌号" clearable />
|
<el-input v-model="addata.plateNum" maxlength="8" placeholder="请输入车牌号" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
ref="yysRef"
|
ref="yysRef"
|
||||||
:model="addata"
|
:model="addata"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
label-width="110px">
|
label-width="120px">
|
||||||
<el-row :gutter="30">
|
<el-row :gutter="30">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="户主类型" prop="ownerType">
|
<el-form-item label="户主类型" prop="ownerType">
|
||||||
@ -45,6 +45,7 @@
|
|||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="账户总金额(元)" prop="totalAmount">
|
<el-form-item label="账户总金额(元)" prop="totalAmount">
|
||||||
<el-input
|
<el-input
|
||||||
|
disabled
|
||||||
v-model="addata.totalAmount"
|
v-model="addata.totalAmount"
|
||||||
placeholder="请输入总金额"
|
placeholder="请输入总金额"
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
@ -129,7 +130,7 @@
|
|||||||
ref="yysRef"
|
ref="yysRef"
|
||||||
:model="addata"
|
:model="addata"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
label-width="90px">
|
label-width="110px">
|
||||||
<el-row :gutter="30">
|
<el-row :gutter="30">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="户主类型" prop="ownerType">
|
<el-form-item label="户主类型" prop="ownerType">
|
||||||
@ -167,8 +168,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="账户总金额" prop="totalAmount">
|
<el-form-item label="账户总金额(元)" prop="totalAmount">
|
||||||
<el-input
|
<el-input
|
||||||
|
disabled
|
||||||
v-model="addata.totalAmount"
|
v-model="addata.totalAmount"
|
||||||
placeholder="请输入总金额"
|
placeholder="请输入总金额"
|
||||||
maxlength="50"
|
maxlength="50"
|
||||||
@ -176,7 +178,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="充值金额" prop="rechargeAmount">
|
<el-form-item label="充值金额(元)" prop="rechargeAmount">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="addata.rechargeAmount"
|
v-model="addata.rechargeAmount"
|
||||||
placeholder="请输入充值金额"
|
placeholder="请输入充值金额"
|
||||||
@ -185,7 +187,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="赠送金额" prop="giftAmount">
|
<el-form-item label="赠送金额(元)" prop="giftAmount">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="addata.giftAmount"
|
v-model="addata.giftAmount"
|
||||||
placeholder="请输入赠送金额"
|
placeholder="请输入赠送金额"
|
||||||
@ -194,7 +196,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="积分余额" prop="point">
|
<el-form-item label="积分余额(元)" prop="point">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="addata.point"
|
v-model="addata.point"
|
||||||
placeholder="请输入积分余额"
|
placeholder="请输入积分余额"
|
||||||
@ -203,7 +205,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="押金" prop="deposit">
|
<el-form-item label="押金(元)" prop="deposit">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="addata.deposit"
|
v-model="addata.deposit"
|
||||||
placeholder="请输入押金"
|
placeholder="请输入押金"
|
||||||
@ -221,7 +223,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="租金" prop="rent">
|
<el-form-item label="租金(元)" prop="rent">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="addata.rent"
|
v-model="addata.rent"
|
||||||
placeholder="请输入租金"
|
placeholder="请输入租金"
|
||||||
@ -344,10 +346,12 @@
|
|||||||
|
|
||||||
watch(() => addata.rechargeAmount,v => {
|
watch(() => addata.rechargeAmount,v => {
|
||||||
addata.rechargeAmount = setNum(addata.rechargeAmount)
|
addata.rechargeAmount = setNum(addata.rechargeAmount)
|
||||||
|
addata.totalAmount = addata.rechargeAmount*1 + addata.giftAmount*1
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(() => addata.giftAmount,v => {
|
watch(() => addata.giftAmount,v => {
|
||||||
addata.giftAmount = setNum(addata.giftAmount)
|
addata.giftAmount = setNum(addata.giftAmount)
|
||||||
|
addata.totalAmount = addata.rechargeAmount*1 + addata.giftAmount*1
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(() => addata.point,v => {
|
watch(() => addata.point,v => {
|
||||||
@ -414,10 +418,15 @@
|
|||||||
addata.rent = ''
|
addata.rent = ''
|
||||||
}
|
}
|
||||||
function savehand() {
|
function savehand() {
|
||||||
|
let newobj = Object.assign({},addata,{
|
||||||
|
totalAmount:addata.totalAmount*100,
|
||||||
|
rechargeAmount:addata.rechargeAmount*100,
|
||||||
|
giftAmount:addata.giftAmount*100
|
||||||
|
})
|
||||||
if(type.value == 1){
|
if(type.value == 1){
|
||||||
return addhdz(addata)
|
return addhdz(newobj)
|
||||||
}
|
}
|
||||||
return update(addata)
|
return update(newobj)
|
||||||
|
|
||||||
}
|
}
|
||||||
//保存
|
//保存
|
||||||
@ -425,10 +434,10 @@
|
|||||||
yysRef.value?.validate((valid:Boolean) => {
|
yysRef.value?.validate((valid:Boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
|
||||||
addata.totalAmount = addata.totalAmount*100
|
// addata.totalAmount = addata.totalAmount*100
|
||||||
|
|
||||||
addata.rechargeAmount = addata.rechargeAmount*100
|
// addata.rechargeAmount = addata.rechargeAmount*100
|
||||||
addata.giftAmount = addata.giftAmount*100
|
// addata.giftAmount = addata.giftAmount*100
|
||||||
|
|
||||||
// addata.point = addata.point*100
|
// addata.point = addata.point*100
|
||||||
// addata.deposit = addata.deposit*100
|
// addata.deposit = addata.deposit*100
|
||||||
|
|||||||
@ -453,7 +453,7 @@
|
|||||||
addressArea:'', //地址-区县
|
addressArea:'', //地址-区县
|
||||||
contacts:'', //联系人
|
contacts:'', //联系人
|
||||||
phone:'', //联系电话
|
phone:'', //联系电话
|
||||||
status:'', //状态:1-启用,0-禁用
|
status:'1', //状态:1-启用,0-禁用
|
||||||
logo:'', //logo地址
|
logo:'', //logo地址
|
||||||
delFlag:'' //删除标识:1-已删除,0-未删除
|
delFlag:'' //删除标识:1-已删除,0-未删除
|
||||||
// accountBalance:'' //账户余额
|
// accountBalance:'' //账户余额
|
||||||
@ -500,7 +500,7 @@
|
|||||||
addata.addressArea = ''
|
addata.addressArea = ''
|
||||||
addata.contacts = ''
|
addata.contacts = ''
|
||||||
addata.phone = ''
|
addata.phone = ''
|
||||||
addata.status = ''
|
addata.status = '1'
|
||||||
addata.logo = ''
|
addata.logo = ''
|
||||||
//addata.accountBalance = ''
|
//addata.accountBalance = ''
|
||||||
}
|
}
|
||||||
@ -587,6 +587,7 @@
|
|||||||
addata.addressArea = ''
|
addata.addressArea = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(addata.division,'区划')
|
||||||
}
|
}
|
||||||
getArea({}).then(rps => {
|
getArea({}).then(rps => {
|
||||||
options.value = rps.data
|
options.value = rps.data
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<el-form-item label="运营商" prop="proxyId">
|
<el-form-item label="运营商" prop="proxyId">
|
||||||
<el-select v-model="queryParams.proxyId" placeholder="请选择运营商" style="width: 200px;">
|
<el-select v-model="queryParams.proxyId" placeholder="请选择运营商" style="width: 200px;">
|
||||||
<el-option v-for="n in yunList" :label="n.poname" :value="n.pkId" />
|
<el-option v-for="n in yunList" :label="n.label" :value="n.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分账状态">
|
<el-form-item label="分账状态">
|
||||||
@ -50,32 +50,32 @@
|
|||||||
<el-table-column label="订单数量" min-width="150" align="left" prop="orderCount" :show-overflow-tooltip="true" />
|
<el-table-column label="订单数量" min-width="150" align="left" prop="orderCount" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="分账总金额(元)" min-width="150" align="left" prop="accountTotalAmount" :show-overflow-tooltip="true">
|
<el-table-column label="分账总金额(元)" min-width="150" align="left" prop="accountTotalAmount" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.accountTotalAmount/100}}</div>
|
<div>{{scope.row.accountTotalAmount}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="应分金额(元)" min-width="150" align="left" prop="orderTotalAmount" :show-overflow-tooltip="true">
|
<el-table-column label="应分金额(元)" min-width="150" align="left" prop="orderTotalAmount" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.orderTotalAmount/100}}</div>
|
<div>{{scope.row.orderTotalAmount}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="税点总金额(元)" min-width="150" align="left" prop="taxPointTotalAmount" :show-overflow-tooltip="true">
|
<el-table-column label="税点总金额(元)" min-width="150" align="left" prop="taxPointTotalAmount" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.taxPointTotalAmount/100}}</div>
|
<div>{{scope.row.taxPointTotalAmount}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="手续费" min-width="150" align="left" prop="totalHandlingFee" :show-overflow-tooltip="true">
|
<el-table-column label="手续费" min-width="150" align="left" prop="totalHandlingFee" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.totalHandlingFee/100}}</div>
|
<div>{{scope.row.totalHandlingFee}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="实际分账金额(元)" min-width="150" align="left" prop="totalAmount" :show-overflow-tooltip="true">
|
<el-table-column label="实际分账金额(元)" min-width="150" align="left" prop="totalAmount" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>{{scope.row.totalAmount/100}}</div>
|
<div>{{scope.row.totalAmount}}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="分账开始时间" min-width="150" align="left" prop="independentAccountBegin" :show-overflow-tooltip="true" />
|
<el-table-column label="分账开始时间" min-width="150" align="center" prop="independentAccountBegin" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="分账结束时间" min-width="150" align="left" prop="independentAccountEnd" :show-overflow-tooltip="true" />
|
<el-table-column label="分账结束时间" min-width="150" align="center" prop="independentAccountEnd" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="分账状态" min-width="100" align="left" prop="status" :show-overflow-tooltip="true">
|
<el-table-column label="分账状态" min-width="100" align="center" prop="status" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div v-if="scope.row.status == 0">待分账</div>
|
<div v-if="scope.row.status == 0">待分账</div>
|
||||||
<div v-else-if="scope.row.status == 1" style="color: #237d00;">已分账</div>
|
<div v-else-if="scope.row.status == 1" style="color: #237d00;">已分账</div>
|
||||||
@ -107,7 +107,7 @@
|
|||||||
getyysfz
|
getyysfz
|
||||||
} from '@/api/order/account'
|
} from '@/api/order/account'
|
||||||
import {
|
import {
|
||||||
getyyslist
|
optionyyslist
|
||||||
} from '@/api/systemSet/operator'
|
} from '@/api/systemSet/operator'
|
||||||
import { ref,reactive,watch,h} from 'vue'
|
import { ref,reactive,watch,h} from 'vue'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
@ -123,13 +123,10 @@
|
|||||||
|
|
||||||
//初始查询运营商
|
//初始查询运营商
|
||||||
let yunList = ref<any>([])
|
let yunList = ref<any>([])
|
||||||
getyyslist({
|
optionyyslist().then(rps => {
|
||||||
pageSize:200,
|
|
||||||
pageNo:1
|
|
||||||
}).then(rps => {
|
|
||||||
if(rps.data){
|
if(rps.data){
|
||||||
let list = (rps.data as any).records
|
//let list = (rps.data as any).records
|
||||||
yunList.value = list?list:[]
|
yunList.value = rps.data
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -177,15 +174,15 @@
|
|||||||
}else if(i == 1) {
|
}else if(i == 1) {
|
||||||
sums[i] = sumtotal.value.orderCount
|
sums[i] = sumtotal.value.orderCount
|
||||||
}else if(i == 2){
|
}else if(i == 2){
|
||||||
sums[i] = sumtotal.value.accountTotalAmount/100
|
sums[i] = sumtotal.value.accountTotalAmount
|
||||||
}else if(i == 3){
|
}else if(i == 3){
|
||||||
sums[i] = sumtotal.value.orderTotalAmount/100
|
sums[i] = sumtotal.value.orderTotalAmount
|
||||||
}else if(i == 4){
|
}else if(i == 4){
|
||||||
sums[i] = sumtotal.value.taxPointTotalAmount/100
|
sums[i] = sumtotal.value.taxPointTotalAmount
|
||||||
}else if(i == 5){
|
}else if(i == 5){
|
||||||
sums[i] = sumtotal.value.handlingFee/100
|
sums[i] = sumtotal.value.handlingFee
|
||||||
}else if(i == 6){
|
}else if(i == 6){
|
||||||
sums[i] = sumtotal.value.totalAmount/100
|
sums[i] = sumtotal.value.totalAmount
|
||||||
}else {
|
}else {
|
||||||
sums[i] = ''
|
sums[i] = ''
|
||||||
}
|
}
|
||||||
|
|||||||
@ -351,6 +351,9 @@
|
|||||||
message: '绑定成功'
|
message: '绑定成功'
|
||||||
})
|
})
|
||||||
bdgspop.value = false
|
bdgspop.value = false
|
||||||
|
setTimeout(()=> {
|
||||||
|
getyys()
|
||||||
|
},600)
|
||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
ElMessage({
|
ElMessage({
|
||||||
|
|||||||
@ -5,7 +5,7 @@ export default defineConfig({
|
|||||||
envPrefix: "VITE_", //环境变量默认前缀
|
envPrefix: "VITE_", //环境变量默认前缀
|
||||||
server: {
|
server: {
|
||||||
// 服务器主机名,默认是 localhost
|
// 服务器主机名,默认是 localhost
|
||||||
host: "localhost",
|
host: "192.168.5.231",
|
||||||
// 是否开启自动打开浏览器
|
// 是否开启自动打开浏览器
|
||||||
open: true,
|
open: true,
|
||||||
// proxy: {
|
// proxy: {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user