1
0
forked from dyf/dyf-vue-ui

修复一些体验性问题。

This commit is contained in:
liub
2025-09-22 17:34:06 +08:00
parent 2d005a5456
commit c7cfa4c1de
6 changed files with 834 additions and 778 deletions

View File

@ -90,7 +90,7 @@ function getRepairList(data) {
"repairReason": data.repairReason, "repairReason": data.repairReason,
"repairPerson": data.repairPerson, "repairPerson": data.repairPerson,
"repairBeginTime": data.repairBeginTime, "repairBeginTime": data.repairBeginTime,
"repairEndTime": data.repairBeginTime, "repairEndTime": data.repairEndTime,
"pageNum": data.pageNum, "pageNum": data.pageNum,
"pageSize": data.pageSize "pageSize": data.pageSize
} }
@ -126,6 +126,13 @@ function getDeviceTypeAll() {
}); });
} }
function getDeviceAll(){
return request({
url:'api/device?pageNum=1&pageSize=99999',
method:'get'}
);
}
export default { export default {
updateRepair: updateRepair, updateRepair: updateRepair,
addRepir: addRepir, addRepir: addRepir,
@ -133,5 +140,6 @@ export default {
getRepirDetail: getRepirDetail, getRepirDetail: getRepirDetail,
getRepairList: getRepairList, getRepairList: getRepairList,
dropRepir: dropRepir, dropRepir: dropRepir,
getDeviceTypeAll: getDeviceTypeAll getDeviceTypeAll: getDeviceTypeAll,
getDeviceAll:getDeviceAll
} }

View File

@ -1,13 +1,13 @@
<template> <template>
<div class="content" v-loading="Status.fullLoading"> <div class="content" v-loading="Status.fullLoading">
<div class="topFilter"> <div class="topFilter">
<div> <div class="topTool">
<el-button type="primary" @click="ShowEdit" <el-button type="primary" @click="ShowEdit"
><el-icon> <Plus /> </el-icon>添加分享</el-button ><el-icon> <Plus /> </el-icon>添加分享</el-button
> >
<el-button type="danger" @click="DelShare(null, true)" :disabled="selectRows.length === 0">批量删除</el-button> <el-button type="danger" @click="DelShare(null, true)" :disabled="selectRows.length === 0">批量删除</el-button>
</div> </div>
<br/>
<el-form :inline="true" :model="filter" class="demo-form-inline"> <el-form :inline="true" :model="filter" class="demo-form-inline">
<el-form-item label=""> <el-form-item label="">
@ -96,7 +96,7 @@
<div class="form"> <div class="form">
<el-form :model="cEdit" ref="ruleFormRef" style="max-width: 750px" :label-width="'75px'"> <el-form :model="cEdit" ref="ruleFormRef" style="max-width: 750px" :label-width="'75px'">
<el-form-item label="分享用户" label-position="right"> <el-form-item label="分享用户" label-position="right">
<el-select v-model="cEdit.phonenumber" filterable placeholder="输入以搜索"> <el-select v-model="cEdit.phonenumber" filterable allow-create default-first-option placeholder="输入以搜索">
<el-option v-for="item in Usrs" :key="item.phonenumber" :label="item.userName" :value="item.phonenumber" /> <el-option v-for="item in Usrs" :key="item.phonenumber" :label="item.userName" :value="item.phonenumber" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -225,13 +225,30 @@ function ShowEdit() {
function CloseEdit() { function CloseEdit() {
Status.ShowEditPop = false; Status.ShowEditPop = false;
Status.ShowPowerSet = false; Status.ShowPowerSet = false;
cEdit.phonenumber="";
cEdit.permission= [];
cEdit.remark= '';
cEdit.smsCode= '';
} }
//添加分享 //添加分享
//保存分享数据 //保存分享数据
function SaveFormData(type) { function SaveFormData(type) {
let data = {
if(!cEdit.phonenumber){
alert("请输入或选择手机号");
return ;
}
let reg=/^1\d{10}$/
if(reg.test(cEdit.phonenumber)){
alert("手机号格式不正确");
return;
}
let data = {
'deviceId': deviceid, 'deviceId': deviceid,
'phonenumber': cEdit.phonenumber, 'phonenumber': cEdit.phonenumber,
'permission': cEdit.permission.join(','), 'permission': cEdit.permission.join(','),
@ -239,7 +256,6 @@ function SaveFormData(type) {
'remark': cEdit.remark, 'remark': cEdit.remark,
'smsCode': cEdit.smsCode 'smsCode': cEdit.smsCode
}; };
Status.fullLoading = true; Status.fullLoading = true;
api api
.SaveShare(data, type) .SaveShare(data, type)
@ -247,19 +263,13 @@ function SaveFormData(type) {
if (res.code == 200) { if (res.code == 200) {
getRecordList(); getRecordList();
CloseEdit(); CloseEdit();
Status.fullLoading = false;
} }
alert(res.msg); alert(res.msg);
}) })
.catch((ex) => { .catch((ex) => {
console.log('出现异常', ex); console.log('出现异常', ex);
}) })
.finally(() => {
Status.fullLoading = false;
cEdit.phonenumber = '';
cEdit.permission = [];
cEdit.remark = '';
cEdit.smsCode = '';
});
} }
function getPower(item) { function getPower(item) {
@ -519,7 +529,7 @@ watch(
width: 100%; width: 100%;
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 30px 12px 12px 12px; padding: 12px 12px 12px 12px;
} }
.center { .center {
display: flex; display: flex;
@ -541,6 +551,8 @@ watch(
align-content: center; align-content: center;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: flex-start;
} }
:deep .pickerContent .el-date-editor { :deep .pickerContent .el-date-editor {
border: none !important; border: none !important;
@ -567,4 +579,13 @@ watch(
:deep .topFilter .el-input-group__append { :deep .topFilter .el-input-group__append {
padding: 0px 10px !important; padding: 0px 10px !important;
} }
.topTool{
display: flex
;
flex-direction: row;
flex-wrap: nowrap;
align-content: center;
justify-content: flex-start;
align-items: center;
}
</style> </style>

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@
<div class="percent100"> <div class="percent100">
<div class="topTool"> <div class="topTool">
<div class="button-row"> <div class="button-row">
<el-button type="primary" @click.stop="ShowEdit(null)" <!-- <el-button type="primary" @click.stop="ShowEdit(null)"
><el-icon><Plus /></el-icon>新增</el-button ><el-icon><Plus /></el-icon>新增</el-button -->
> >
<el-button type="primary" @click.stop="Export()" plain <el-button type="primary" @click.stop="Export()" plain
><el-icon><Download /></el-icon>导出</el-button ><el-icon><Download /></el-icon>导出</el-button
@ -16,7 +16,7 @@
<div> <div>
<el-form :inline="true" :model="queryParams" class="demo-form-inline" @submit.native.prevent> <el-form :inline="true" :model="queryParams" class="demo-form-inline" @submit.native.prevent>
<el-form-item label="" style="margin-right: 15px"> <el-form-item label="" style="margin-right: 15px">
<el-input :suffix-icon="'Search'" v-model="queryParams.fenceName" placeholder="名称" clearable @keyup.enter.stop="handleQuery" /> <el-input :suffix-icon="'Search'" v-model="queryParams.fenceName" placeholder="名称" clearable @input="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item style="margin-right: 0px"> <el-form-item style="margin-right: 0px">
@ -76,7 +76,7 @@
<el-table-column label="围栏名称" align="center" prop="fenceName"> </el-table-column> <el-table-column label="围栏名称" align="center" prop="fenceName"> </el-table-column>
<el-table-column label="设备名称" align="center" prop="deviceName"> </el-table-column> <el-table-column label="设备名称" align="center" prop="deviceName"> </el-table-column>
<!-- <el-table-column label="人员名称" align="center" prop="userName"> </el-table-column> --> <el-table-column label="事件时间" align="center" prop="eventTime"> </el-table-column>
<el-table-column label="事件类型" align="center" prop="eventType"> <el-table-column label="事件类型" align="center" prop="eventType">
<template #default="scope"> <template #default="scope">
<div>{{ scope.row.eventType == '1' ? '闯入' : '离开' }}</div> <div>{{ scope.row.eventType == '1' ? '闯入' : '离开' }}</div>
@ -93,7 +93,7 @@
<el-table-column label="操作" fixed="right" width="180" class-name="small-padding fixed-width"> <el-table-column label="操作" fixed="right" width="180" class-name="small-padding fixed-width">
<template #default="scope"> <template #default="scope">
<el-button link type="primary" @click="ShowEdit(scope.row)">编辑</el-button> <!-- <el-button link type="primary" @click="ShowEdit(scope.row)">编辑</el-button> -->
<el-button link type="danger" @click="DropFence(scope.row)">删除</el-button> <el-button link type="danger" @click="DropFence(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -280,8 +280,9 @@ function CloseEdit() {
//响应查询 //响应查询
var queryTime = null; var queryTime = null;
function handleQuery() { function handleQuery() {
debugger;
clearTimeout(queryTime); clearTimeout(queryTime);
queryTime = setTimeout(getList, 500); queryTime = setTimeout(getList, 200);
} }
//重置查询条件 //重置查询条件
@ -302,6 +303,7 @@ function resetQuery() {
keys.forEach((k) => { keys.forEach((k) => {
queryParams[k] = cfg[k]; queryParams[k] = cfg[k];
}); });
handleQuery();
} }
//-------------------------------------- //--------------------------------------

View File

@ -16,7 +16,8 @@
<div> <div>
<el-form :inline="true" :model="queryParams" class="demo-form-inline" @submit.native.prevent> <el-form :inline="true" :model="queryParams" class="demo-form-inline" @submit.native.prevent>
<el-form-item label="" style="margin-right: 15px"> <el-form-item label="" style="margin-right: 15px">
<el-input :suffix-icon="'Search'" v-model="queryParams.name" placeholder="名称" clearable @keyup.enter.stop="handleQuery" /> <el-input :suffix-icon="'Search'" v-model="queryParams.name" placeholder="名称" clearable
@input="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item style="margin-right: 0px"> <el-form-item style="margin-right: 0px">
@ -107,8 +108,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="半径(米)" :class="cEdit.areaType == 1 ? '' : 'displayNone'"> <el-form-item label="半径(米)">
<el-input v-model="cEdit.radius" @keydown="refreshOverLayer" /> <el-input v-model="cEdit.radius" @keydown="refreshOverLayer" :disabled="cEdit.areaType !== 1" />
</el-form-item> </el-form-item>
<el-form-item label="是否激活"> <el-form-item label="是否激活">
@ -118,8 +119,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注" style="width: 350px"> <el-form-item label="备注">
<el-input v-model="cEdit.description" type="textarea" /> <el-input v-model="cEdit.description" />
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -133,7 +134,7 @@
> >
</div> </div>
<div class="map" id="map"></div> <div class="map" id="map"></div>
<div class="center" style="margin-top: 20px"> <div class="center footerBtn" style="margin-top: 20px">
<el-button type="primary" @click="SaveFormData"> 确定 </el-button> <el-button type="primary" @click="SaveFormData"> 确定 </el-button>
<el-button type="primary" plain @click="CloseEdit"> 取消 </el-button> <el-button type="primary" plain @click="CloseEdit"> 取消 </el-button>
</div> </div>
@ -195,7 +196,7 @@ var cEdit = reactive({
description: '', description: '',
areaType: null, areaType: null,
coordinates: [], coordinates: [],
radius: null, radius: undefined,
isActive: null isActive: null
}); });
@ -277,7 +278,7 @@ function CloseEdit() {
var queryTime = null; var queryTime = null;
function handleQuery() { function handleQuery() {
clearTimeout(queryTime); clearTimeout(queryTime);
queryTime = setTimeout(getList, 500); queryTime = setTimeout(getList, 300);
} }
//重置查询条件 //重置查询条件
@ -292,12 +293,14 @@ function resetQuery() {
keys.forEach((k) => { keys.forEach((k) => {
queryParams[k] = cfg[k]; queryParams[k] = cfg[k];
}); });
handleQuery();
} }
//-------------------------------------- //--------------------------------------
//修改围栏类型时,清空所有坐标 //修改围栏类型时,清空所有坐标
function areaTypeChange() { function areaTypeChange() {
cEdit.coordinates = []; cEdit.coordinates = [];
cEdit.radius = undefined;
map.clearOverLays(); map.clearOverLays();
} }
//圆大小改变时,更新半径字段 //圆大小改变时,更新半径字段
@ -340,6 +343,10 @@ function AddPoint(point, i) {
return; return;
} }
if (!point && cEdit.areaType == 1 && !cEdit.radius) {
cEdit.radius = 1000;
}
let index = i !== undefined ? i : cEdit.coordinates.length; let index = i !== undefined ? i : cEdit.coordinates.length;
let dragEnd = (evt, lay) => { let dragEnd = (evt, lay) => {
map.removePoy(); map.removePoy();
@ -378,7 +385,7 @@ function SaveFormData() {
return; return;
} }
if (cEdit.areaType == 0 && cEdit.coordinates.length == 0) { if (cEdit.areaType == 1 && cEdit.coordinates.length == 0) {
alert('圆形的围栏至少需要1个点'); alert('圆形的围栏至少需要1个点');
return; return;
} }
@ -419,17 +426,29 @@ function DropFence(item) {
alert('请选择要删除的数据'); alert('请选择要删除的数据');
return; return;
} }
arr = arr
.map((v) => { let execDelete=()=>{
return v.id;
}) arr = arr
.join(','); .map((v) => {
api.DelFence(arr).then((res) => { return v.id;
if (res.code == 200) { })
handleQuery(); .join(',');
} api.DelFence(arr).then((res) => {
alert(res.msg); if (res.code == 200) {
}); handleQuery();
}
alert(res.msg);
});
}
confirm(
'删除后不可恢复,您确认?',
execDelete,
null,
'提示'
);
} }
function getList() { function getList() {
@ -590,7 +609,7 @@ onMounted(() => {
.map { .map {
width: 100%; width: 100%;
height: 58vh; height: calc(58vh - 50px);
box-sizing: border-box; box-sizing: border-box;
border: 1px solid #7371719e; border: 1px solid #7371719e;
border-radius: 8px; border-radius: 8px;
@ -621,4 +640,15 @@ onMounted(() => {
:deep .point:hover { :deep .point:hover {
filter: hue-rotate(169deg); filter: hue-rotate(169deg);
} }
:deep .el-dialog__body,
.el-dialog__body {
position: relative;
}
:deep .el-dialog__body .footerBtn,
.el-dialog__body .footerBtn {
// position: absolute;
// bottom: 0px;
// width: 100%;
// left: 0px;
}
</style> </style>

File diff suppressed because it is too large Load Diff