This commit is contained in:
cjb 2025-04-19 14:25:53 +08:00
parent f7a5c9e87d
commit 57f316dcac
12 changed files with 174 additions and 42 deletions

View File

@ -7,5 +7,6 @@ VITE_APP_ENV = 'development'
# 开发环境
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.7.152:9100/gateway'
#VITE_APP_BASE_API = '/dev-api'
#VITE_APP_BASE_API = 'https://api.evo-techina.com'

View File

@ -64,6 +64,16 @@ export function getjqrlist(params:Querydata) {
})
}
//删除车辆前查看是否有未结算订单
export function hasorder(plateNum:string) {
return server.request({
url: `cloud/order/swap/checkList?pageSize=20&pageNo=1&plateNum=${plateNum}`,
method: 'get'
})
}
//删除
export function delhdz(id:string) {
return server.request({

View File

@ -60,15 +60,17 @@ router.beforeEach((to, from, next) => {
} else {
const uStore = userStore();
//setInfor
if(init){
if(appStore().isInit){
isRelogin.show = true;
const pStore = permissionStore();
pStore.GenerateRoutes().then(() => {
isRelogin.show = false;
init = false
appStore().setInit(false)
//init = false
next({ ...to, replace: true }); // hack方法 确保addRoutes已完成
}).catch(err => {
init = true
//init = true
appStore().setInit(true)
if(err == 'S0405'){
removeToken()
next({ path: "/login" })

View File

@ -16,7 +16,8 @@ const store = defineStore({
device: "desktop",
size: Cookies.get("size") || "medium",
isEffecti:true, //登录状态是否有效
loginPage:false //是否是登录页面
loginPage:false, //是否是登录页面
isInit:true //是否是初始登录
};
},
getters: {
@ -30,6 +31,9 @@ const store = defineStore({
setloginPage(v:boolean) {
this.loginPage = v
},
setInit(v:boolean) {
this.isInit = v
},
toggleSideBar() {
if (this.sidebar.hide) {
return false;

View File

@ -67,7 +67,7 @@
import { useRoute, useRouter } from "vue-router";
import userStore from "@/stores/user";
import appStore from "@/stores/app";
const props = withDefaults(defineProps<{
type?:string|number
@ -181,6 +181,7 @@
.Login(Object.assign({},loginForm.value,{code:`${ipcode.value}:${loginForm.value.code}`}))
.then(() => {
loading.value = false;
appStore().setInit(true)
if(props.type == 1){
router.push({ path: redirect.value || "/" });
}else{

View File

@ -19,6 +19,13 @@
maxlength="50"
/>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入联系电话"
maxlength="50"
/>
</el-form-item>
<el-form-item label="引入站点" prop="stationCode">
<el-select v-model="queryParams.stationCode" placeholder="请选择换电站" style="width: 200px;">
<el-option v-for="n in yunList" :label="n.name" :value="n.code" />
@ -53,12 +60,13 @@
<div @click="showpop(2,scope.row)" style="display: inline-block;color:#16599d;border-bottom: 1px solid #417ebb;cursor:pointer">{{scope.row.accName?scope.row.accName:'暂未设置'}}</div>
</template>
</el-table-column>
<el-table-column label="联系电话" min-width="120" align="center" prop="phone" :show-overflow-tooltip="true" />
<el-table-column label="户主类型" min-width="100" align="center" prop="ownerType" :show-overflow-tooltip="true">
<template #default="scope">
<div v-if="scope.row.ownerType == 1">个人</div>
<div v-else>企业</div>
</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="250" align="center" prop="stationName" :show-overflow-tooltip="true" />
@ -453,8 +461,8 @@
ownerId:'', //ID
code:'', //
stationCode:'', //
accName:'' //
accName:'', //
phone:'' //
})
//

View File

@ -100,6 +100,7 @@
</template>
</el-table-column>
<el-table-column label="车牌号" min-width="120" align="center" prop="plateNum" :show-overflow-tooltip="true" />
<el-table-column label="换电站" min-width="200" align="center" prop="stationName" :show-overflow-tooltip="true" />
<el-table-column label="预约人" min-width="120" align="center" prop="orderPreUname" :show-overflow-tooltip="true" />
<el-table-column label="预约人电话" min-width="120" align="center" prop="orderPrePhone" :show-overflow-tooltip="true" />
<el-table-column label="订单时间" min-width="200" align="center" prop="orderTime" :show-overflow-tooltip="true" />
@ -648,6 +649,12 @@
<el-col :span="12" style="color: #417ebb;">{{xqobj.changeLane == 1?'A车道':'B车道'}}</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-row>
<el-col :span="5">换电站</el-col>
<el-col :span="12" style="color: #417ebb;">{{xqobj.stationName}}</el-col>
</el-row>
</el-col>
</el-row>
</el-col>
</el-row>

View File

@ -121,7 +121,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="段服务费(元)" prop="timeServiceFee">
<el-form-item label="段服务费(元)" prop="timeServiceFee">
<el-input
v-model="addata.timeServiceFee"
placeholder="请输入谷段服务费"
@ -322,7 +322,7 @@
})
}
//getyys()
getyys()
</script>
<style scoped>
.el-divider--horizontal{

View File

@ -44,12 +44,12 @@
</el-table-column>
<el-table-column label="开始日期" min-width="100" align="center" prop="dayBegin" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.dayBegin.replace(/^(\d{4})(\d{2})(\d{2})$/, '$1-$2-$3')}}</div>
<div>{{scope.row.dayBegin.replace(/-+/g,'').replace(/^(\d{4})*(\d{2})(\d{2})$/, '$2-$3')}}</div>
</template>
</el-table-column>
<el-table-column label="结束日期" min-width="100" align="center" prop="dayEnd" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.dayEnd.replace(/^(\d{4})(\d{2})(\d{2})$/, '$1-$2-$3')}}</div>
<div>{{scope.row.dayEnd.replace(/-+/g,'').replace(/^(\d{4})*(\d{2})(\d{2})$/, '$2-$3')}}</div>
</template>
</el-table-column>
<el-table-column label="换电站" min-width="250" align="center" prop="stationName" :show-overflow-tooltip="true" />
@ -161,7 +161,8 @@
<el-form-item label="开始日期" prop="dayBegin">
<el-date-picker
v-model="addata.dayBegin"
value-format="YYYYMMDD"
format="MM-DD"
value-format="MMDD"
style="width: 100%;"
type="date"
placeholder="请选择日期"
@ -171,8 +172,9 @@
<el-col :span="12">
<el-form-item label="结束日期" prop="dayEnd">
<el-date-picker
format="MM-DD"
v-model="addata.dayEnd"
value-format="YYYYMMDD"
value-format="MMDD"
style="width: 100%;"
type="date"
placeholder="请选择日期"
@ -316,7 +318,8 @@
<el-form-item label="开始日期" prop="dayBegin">
<el-date-picker
v-model="addata.dayBegin"
value-format="YYYY-MM-DD"
format="MM-DD"
value-format="MMDD"
style="width: 100%;"
type="date"
placeholder="请选择日期"
@ -327,7 +330,8 @@
<el-form-item label="结束日期" prop="dayEnd">
<el-date-picker
v-model="addata.dayEnd"
value-format="YYYY-MM-DD"
format="MM-DD"
value-format="MMDD"
style="width: 100%;"
type="date"
placeholder="请选择日期"
@ -442,17 +446,18 @@
</div>
</template>
<script setup lang="ts" name="UserPage">
import {
gethdzlist
} from '@/api/swapstation/hdz'
import {
gethdzlist
} from '@/api/swapstation/hdz'
import {
import {
getjqrlist,
addhdz,
update,
delhdz
} from '@/api/swapstation/swapstation'
import { setNum } from '@/utils/validate'
} from '@/api/swapstation/swapstation'
import { setNum } from '@/utils/validate'
import { ref,reactive,watch } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
@ -607,8 +612,8 @@
addata.pkId = row.pkId
addata.stationCode = row.stationCode
addata.dayBegin = row.dayBegin.replace(/^(\d{4})(\d{2})(\d{2})$/, '$1-$2-$3')
addata.dayEnd = row.dayEnd.replace(/^(\d{4})(\d{2})(\d{2})$/, '$1-$2-$3')
addata.dayBegin = row.dayBegin.replace(/^(\d{4})*(\d{2})(\d{2})$/, '$2$3')
addata.dayEnd = row.dayEnd.replace(/^(\d{4})*(\d{2})(\d{2})$/, '$2$3')
addata.stationName = row.stationName
addata.name = row.name
addata.commonRemainFee = row.commonRemainFee?row.commonRemainFee/100:0

View File

@ -95,10 +95,10 @@
<el-table-column label="联系人" min-width="200" align="center" prop="contacts" :show-overflow-tooltip="true" />
<el-table-column label="联系电话" min-width="140" align="center" prop="phone" />
<el-table-column label="激活日期" min-width="160" align="center" prop="activeDate" :show-overflow-tooltip="true" />
<el-table-column label="全天营业" min-width="100" align="center" prop="openAllDay" :show-overflow-tooltip="true">
<el-table-column label="营业时间" min-width="120" align="center" prop="openAllDay" :show-overflow-tooltip="true">
<template #default="scope">
<div v-if="scope.row.openAllDay == 1"></div>
<div v-else></div>
<div v-if="scope.row.openAllDay == 1">全天</div>
<div v-else>{{scope.row.runStartTime}} {{scope.row.runEndTime}}</div>
</template>
</el-table-column>
<el-table-column label="通道数" min-width="100" align="center" prop="tdQuantity" />
@ -279,6 +279,34 @@
<el-radio value="1"></el-radio>
<el-radio value="0"></el-radio>
</el-radio-group>
<div v-if="addata.openAllDay == '0'" style="display: flex;">
<el-form-item label="" prop="runStartTime">
<el-time-select
v-model="addata.runStartTime"
style="width: 120px"
:max-time="addata.runEndTime"
class="mr-4"
placeholder="开始时间"
start="00:00"
step="00:30"
end="24:00"
/>
</el-form-item>
<div style="padding: 0 5px;"></div>
<el-form-item label="" prop="runEndTime">
<el-time-select
v-model="addata.runEndTime"
style="width: 120px"
:min-time="addata.runStartTime"
placeholder="结束时间"
start="00:00"
step="00:30"
end="24:00"
/>
</el-form-item>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
@ -505,6 +533,34 @@
<el-radio :value="1"></el-radio>
<el-radio :value="0"></el-radio>
</el-radio-group>
<div v-if="addata.openAllDay == '0'" style="display: flex;padding-left: 20px;">
<el-form-item label="" prop="runStartTime">
<el-time-select
v-model="addata.runStartTime"
style="width: 120px"
:max-time="addata.runEndTime"
class="mr-4"
placeholder="开始时间"
start="00:00"
step="00:30"
end="24:00"
/>
</el-form-item>
<div style="padding: 0 5px;"></div>
<el-form-item label="" prop="runEndTime">
<el-time-select
v-model="addata.runEndTime"
style="width: 120px"
:min-time="addata.runStartTime"
placeholder="结束时间"
start="00:00"
step="00:30"
end="24:00"
/>
</el-form-item>
</div>
</el-form-item>
</el-col>
<el-col :span="12">
@ -757,6 +813,10 @@
let lat = ref('')
let lng = ref('')
let startTime = ref('')
let endTime = ref('')
let addata = reactive({
pkId:'',
proxyId:'', //ID
@ -776,7 +836,9 @@
delFlag:'', //1-0-
activeDate:'', //
locationPoint:'', //
openAllDay:'', //1-0-
openAllDay:'1', //1-0-
runStartTime:'', //
runEndTime:'', //
tdQuantity:'', //
jqrQuantity:'', //
cdjQuantity:'', //
@ -802,6 +864,12 @@
],
carTypeCode:[
{ required: true, message: "请选择支持的车辆类型", trigger: "blur" },
],
runStartTime:[
{ required: true, message: "请选择营业开始时间", trigger: "blur" },
],
runEndTime:[
{ required: true, message: "营业结束时间", trigger: "blur" }
]
})
@ -863,7 +931,9 @@
}
addata.openAllDay = row.openAllDay
addata.openAllDay = row.openAllDay
addata.runStartTime = row.runStartTime?row.runStartTime:''
addata.runEndTime = row.runEndTime?row.runEndTime:''
addata.tdQuantity = row.tdQuantity+''
addata.jqrQuantity = row.jqrQuantity+''
addata.cdjQuantity = row.cdjQuantity+''
@ -879,7 +949,7 @@
getqrcode({
path:`pages/home/index?code=${addata.code}`,
width:'400',
env_version:'trial' //"release""trial""develop"
env_version:'release' //"release""trial""develop"
}).then((rps:any) => {
let reader = new FileReader()
reader.readAsDataURL(rps) // base64
@ -909,7 +979,9 @@
addata.delFlag = ''
addata.activeDate = ''
addata.locationPoint = ''
addata.openAllDay = ''
addata.openAllDay = '1'
addata.runStartTime = ''
addata.runEndTime = ''
addata.tdQuantity = ''
addata.jqrQuantity = ''
addata.cdjQuantity = ''
@ -922,10 +994,13 @@
}
}
function savehand() {
let obj = Object.assign({},addata,{
carTypeCode:(addata.carTypeCode as any).join()
})
if(type.value == 1){
return addhdz(addata)
return addhdz(obj)
}
return update(addata)
return update(obj)
}
function handleClose() {
@ -941,7 +1016,6 @@
yysRef.value?.validate((valid:Boolean) => {
if (valid) {
addata.carTypeCode = (addata.carTypeCode as any).join()
savehand().then(() => {
ElMessage({
type: 'success',

View File

@ -58,7 +58,7 @@
<template #default="scope">
<div v-if="scope.row.type == 1">开发者</div>
<div v-else-if="scope.row.type == 2">运营方</div>
<div v-else="scope.row.type == 3"></div>
<div v-else="scope.row.type == 3">企业用</div>
</template>
</el-table-column>
<el-table-column label="关联方代码" align="center" width="140" prop="typeRelateCode" :show-overflow-tooltip="true" />
@ -126,10 +126,19 @@
<el-form-item label="账号类型" prop="type">
<el-radio-group v-model="userform.type">
<el-radio value="1">开发者</el-radio>
<el-radio value="2">运营</el-radio>
<el-radio value="3"></el-radio>
<el-radio value="2">运营</el-radio>
<el-radio value="3">企业用</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="" prop="status">
<el-select v-model="userform.type" placeholder="请选择运营商" style="width: 160px;">
<el-option value="1" label="正常营业" />
<el-option value="2" label="正常停运" />
<el-option value="3" label="故障停运" />
<el-option value="4" label="指令停运" />
<el-option value="9" label="其他" />
</el-select>
</el-form-item> -->
</el-col>
<el-col :span="12">
<el-form-item label="用户密码" prop="password">

View File

@ -630,8 +630,8 @@
</el-table>
<div v-if="gstotal > 10" style="display: flex;justify-content: right;padding-top:20px;">
<el-pagination
v-model:current-page="gsqueryParams.pageNo"
v-model:page-size="gsqueryParams.pageSize"
v-model:current-page="wxParams.pageNo"
v-model:page-size="wxParams.pageSize"
:page-sizes="[10, 20, 30, 40]"
background
size="small"
@ -661,7 +661,8 @@
Binggs,
Bingwx,
getcarwxlist,
unbindwx
unbindwx,
hasorder
} from '@/api/swapstation/vehicle'
import {
getdicttype
@ -1010,13 +1011,23 @@
type: 'warning',
}
).then(() => {
delhdz(row.pkId).then(() => {
hasorder(row.plateNum).then(() => {
delhdz(row.pkId).then(() => {
ElMessage({
type: 'success',
message: '删除成功'
})
getyys()
})
})
// delhdz(row.pkId).then(() => {
// ElMessage({
// type: 'success',
// message: ''
// })
// getyys()
// })
})
}
@ -1117,7 +1128,7 @@
}
function sizeChange(val:number) {
gsqueryParams.pageSize = val
wxParams.pageSize = val
getsglist()
}