优化代码

This commit is contained in:
wuxw 2025-03-04 11:30:06 +08:00
parent 40ab0d8f65
commit aaffac585c
7 changed files with 474 additions and 29 deletions

View File

@ -0,0 +1,3 @@
<div>
<div id="aInspectionTaskMap"></div>
</div>

View File

@ -0,0 +1,210 @@
/**
业主详情页面
**/
(function (vc) {
vc.extends({
data: {
aInspectionTaskMapInfo: {
datas: [],
map: {}
}
},
_initMethod: function () {
},
_initEvent: function () {
vc.on('aInspectionTaskMap', 'initMap', function (_data) {
$that._queryAInspectionTaskMap(_data);
});
vc.on('aInspectionTaskMap', 'switch', function (_data) {
$that._queryAInspectionTaskMap(_data);
});
},
methods: {
_queryAInspectionTaskMap: function (_route) {
let param = {
params: {
taskId: _route.taskId,
page: 1,
row: 1000
}
};
//发送get请求
vc.http.apiGet('/inspection.queryAdminInspectionTaskDetail',
param,
function (json) {
let _json = JSON.parse(json);
$that.aInspectionTaskMapInfo.data = _json.data;
$that.initAInspectionTaskMap(_json.data);
},
function () {
console.log('请求失败处理');
}
);
},
initAInspectionTaskMap: function (_pos) {
let _lng = 116.307484;
let _lat = 39.984120;
// _pos.forEach(_m => {
// let _latLon = wgs84togcj02(_m.lng,_m.lat);
// });
if (!_pos || _pos.length < 1) {
return;
}
_pos.forEach(_p => {
if (_p.lat) {
_lat = _p.lat;
_lng = _p.lng;
}
});
if($that.aInspectionTaskMapInfo.map && $that.aInspectionTaskMapInfo.map.hasOwnProperty('height')){
$that.aInspectionTaskMapInfo.map.destroy();
}
let center = new TMap.LatLng(_lat, _lng)
//定义map变量调用 TMap.Map() 构造函数创建地图
let map = new TMap.Map(document.getElementById('aInspectionTaskMap'), {
center: center,//设置地图中心点坐标
zoom: 18, //设置地图缩放级别
baseMap: { //底图设置参数为VectorBaseMap对象
type: 'vector', //类型:失量底图
features: ['base', 'building2d', 'point']
//仅渲染:道路及底面(base) + 2d建筑物(building2d),以达到隐藏文字的效果
}
});
$that.aInspectionTaskMapInfo.map = map;
$that._addTaskPointMachine(_pos);
},
_addTaskPointMachine: function (_pos) {
let _geometriesMarker = [];
let _geometriesLabel = [];
let _path = [];
_pos.forEach(_m => {
try {
let center = new TMap.LatLng(_m.lat, _m.lng);
let _markerStyle = 'myStyle';
if(_m.state == '20200405'){
_markerStyle = 'myStyle_red';
}
_geometriesMarker.push({
"id": _m.inspectionId, //点标记唯一标识后续如果有删除、修改位置等操作都需要此id
"styleId": _markerStyle, //指定样式id
"position": center, //点标记坐标位置
});
let _layerStyle = 'label';
if(_m.state == '20200405'){
_layerStyle = 'label_red';
}
_geometriesLabel.push({
'id': 'label_' + _m.inspectionId, //点图形数据的标志信息
'styleId': _layerStyle, //样式id
'position': center, //标注点位置
// 'content': _m.staffName, //标注文本
'content': _m.inspectionName
});
_path.push(center);
} catch (e) {
}
});
let markerLayer = new TMap.MultiMarker({
map: $that.aInspectionTaskMapInfo.map, //指定地图容器
//样式定义
styles: {
//创建一个styleId为"myStyle"的样式styles的子属性名即为styleId
"myStyle": new TMap.MarkerStyle({
"width": 25, // 点标记样式宽度(像素)
"height": 35, // 点标记样式高度(像素)
"src": '/img/inspection.png', //图片路径
//焦点在图片中的像素位置,一般大头针类似形式的图片以针尖位置做为焦点,圆形点以圆心位置为焦点
"anchor": { x: 32, y: 32 }
}),
"myStyle_red": new TMap.MarkerStyle({
"width": 25, // 点标记样式宽度(像素)
"height": 35, // 点标记样式高度(像素)
"src": '/img/inspection_do.png', //图片路径
//焦点在图片中的像素位置,一般大头针类似形式的图片以针尖位置做为焦点,圆形点以圆心位置为焦点
"anchor": { x: 32, y: 32 }
})
},
//点标记数据数组
geometries: _geometriesMarker
});
let label = new TMap.MultiLabel({
id: 'label-layer',
map: $that.aInspectionTaskMapInfo.map, //设置折线图层显示到哪个地图实例中
//文字标记样式
styles: {
'label': new TMap.LabelStyle({
'color': '#3777FF', //颜色属性
'size': 20, //文字大小属性
'offset': { x: 0, y: 15 }, //文字偏移属性单位为像素
'angle': 0, //文字旋转属性
'alignment': 'center', //文字水平对齐属性
'verticalAlignment': 'middle' //文字垂直对齐属性
}),
'label_red': new TMap.LabelStyle({
'color': '#CC0000', //颜色属性
'size': 20, //文字大小属性
'offset': { x: 0, y: 15 }, //文字偏移属性单位为像素
'angle': 0, //文字旋转属性
'alignment': 'center', //文字水平对齐属性
'verticalAlignment': 'middle' //文字垂直对齐属性
})
},
//文字标记数据
geometries: _geometriesLabel
});
let polylineLayer = new TMap.MultiPolyline({
id: 'polyline-layer', //图层唯一标识
map: $that.aInspectionTaskMapInfo.map,//设置折线图层显示到哪个地图实例中
//折线样式定义
styles: {
'style_blue': new TMap.PolylineStyle({
'color': '#3777FF', //线填充色
'width': 6, //折线宽度
'borderWidth': 5, //边线宽度
'borderColor': '#FFF', //边线颜色
'lineCap': 'butt' //线端头方式
}),
'style_red': new TMap.PolylineStyle({
'color': '#CC0000', //线填充色
'width': 6, //折线宽度
'borderWidth': 5, //边线宽度
'borderColor': '#FFF', //边线颜色
'lineCap': 'butt' //线端头方式
}),
},
//折线数据定义
geometries: [
{//第1条线
'id': 'pl_1',//折线唯一标识,删除时使用
'styleId': 'style_blue',//绑定样式名
'paths': _path
},
{//第1条线
'id': 'pl_2',//折线唯一标识,删除时使用
'styleId': 'style_red',//绑定样式名
'paths': _path
}
]
});
}
}
});
})(window.vc);

View File

@ -0,0 +1,141 @@
<div class="margin-top">
<div class="row margin-top-lg">
<div class="col-lg-2 padding-right-xs padding-left-xl">
<input type="text" :placeholder="vc.i18n('请输入巡检人','adminPointTaskDetail')"
v-model="adminPointTaskDetailInfo.planUserName" class=" form-control">
</div>
<div class="col-lg-2 padding-right-xs padding-left-xl">
<input type="text" :placeholder="vc.i18n('请输入实际巡检开始时间','adminPointTaskDetail')"
v-model="adminPointTaskDetailInfo.inspectionStartTime" class=" form-control pointDetailStartTime">
</div>
<div class="col-lg-2 padding-right-xs padding-left-xl">
<input type="text" :placeholder="vc.i18n('请输入实际巡检结束时间','adminPointTaskDetail')"
v-model="adminPointTaskDetailInfo.inspectionEndTime" class=" form-control pointDetailEndTime">
</div>
<div class="col-lg-2 padding-right-xs padding-right-xl">
<button type="button" class="btn btn-primary btn-sm" style="margin-left:10px"
v-on:click="_qureyAdminPointTaskDetail()">
<i class="fa fa-search"></i>查询
</button>
</div>
<div class="col-lg-8 text-right">
</div>
</div>
<div class="margin-top">
<table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
<thead>
<tr>
<th class="text-center">
<vc:i18n name="任务详情ID" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="巡检点名称" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="巡检计划名称" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="巡检路线名称" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<span>
<vc:i18n name="巡检人" namespace="adminPointTaskDetail"></vc:i18n>
</span><br />
<span>
<vc:i18n name="开始/结束时间" namespace="adminPointTaskDetail"></vc:i18n>
</span>
</th>
<th class="text-center">
<span>
<vc:i18n name="巡检点" namespace="adminPointTaskDetail"></vc:i18n>
</span><br />
<span>
<vc:i18n name="开始/结束时间" namespace="adminPointTaskDetail"></vc:i18n>
</span>
</th>
<th class="text-center">
<vc:i18n name="实际巡检时间" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="实际签到状态" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="计划巡检人" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="实际巡检人" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="巡检方式" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="任务状态" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="巡检点状态" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="巡检情况" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="巡检照片" namespace="adminPointTaskDetail"></vc:i18n>
</th>
<th class="text-center">
<vc:i18n name="创建时间" namespace="adminPointTaskDetail"></vc:i18n>
</th>
</tr>
</thead>
<tbody>
<tr v-for="inspectionTask in adminPointTaskDetailInfo.details">
<td class="text-center">{{inspectionTask.taskDetailId}}</td>
<td class="text-center">{{inspectionTask.inspectionName}}</td>
<td class="text-center">{{inspectionTask.inspectionPlanName}}</td>
<td class="text-center">{{inspectionTask.routeName}}</td>
<td class="text-center">{{inspectionTask.planInsTime}}<br />{{inspectionTask.planEndTime}}
</td>
<td class="text-center">{{inspectionTask.pointStartTime}}<br />{{inspectionTask.pointEndTime}}
</td>
<td class="text-center">{{inspectionTask.inspectionTime ? inspectionTask.inspectionTime :
'-'}}
</td>
<td class="text-center text-primary" v-if="inspectionTask.inspectionState == '60000'">
{{inspectionTask.inspectionStateName ? inspectionTask.inspectionStateName : '-'}}
</td>
<td class="text-center text-danger font-bold" v-else>{{inspectionTask.inspectionStateName ?
inspectionTask.inspectionStateName : '-'}}
</td>
<td class="text-center">{{inspectionTask.planUserName}}</td>
<td class="text-center">{{inspectionTask.actUserName ? inspectionTask.actUserName : '-'}}
</td>
<td class="text-center">{{inspectionTask.signTypeName}}</td>
<td class="text-center">{{inspectionTask.taskStateName}}</td>
<td class="text-center text-danger font-bold" v-if="inspectionTask.state == '20200408'">
{{inspectionTask.stateName}}
</td>
<td class="text-center" v-else>{{inspectionTask.stateName}}</td>
<!-- <td class="text-center text-danger font-bold" v-if="inspectionTask.patrolType == '20002'">{{inspectionTask.patrolTypeName ? inspectionTask.patrolTypeName : '-'}}</td>
<td class="text-center text-primary" v-else>{{inspectionTask.patrolTypeName ? inspectionTask.patrolTypeName : '-'}}</td> -->
<td class="text-center text-primary">
{{inspectionTask.description ? inspectionTask.description : '-'}}
</td>
<td class="text-center" style="white-space: nowrap;">
<span v-for="_photo in inspectionTask.photos">
<img style="width: 60px; height: 60px;" v-bind:src="_photo.url"
v-on:click="openFile(_photo)" />
</span>
</td>
<td class="text-center">{{inspectionTask.createTime}}</td>
</tr>
</tbody>
</table>
<!-- 分页 -->
<div class="row">
<div class="col-sm-4">
</div>
<div class="col-sm-8">
<vc:create namespace="adminPointTaskDetail" path="frame/paginationPlus"></vc:create>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,92 @@
/**
入驻小区
**/
(function (vc) {
var DEFAULT_PAGE = 1;
var DEFAULT_ROWS = 10;
vc.extends({
data: {
adminPointTaskDetailInfo: {
details: [],
inspectionId: '',
inspectionRouteId:'',
taskId:'',
roomNum: '',
allOweFeeAmount: '0',
planUserName:'',
inspectionStartTime:'',
inspectionEndTime:'',
}
},
_initMethod: function () {
},
_initEvent: function () {
vc.on('adminPointTaskDetail', 'switch', function (_data) {
$that.adminPointTaskDetailInfo.inspectionId = _data.inspectionId;
$that.adminPointTaskDetailInfo.taskId = _data.taskId;
$that.adminPointTaskDetailInfo.inspectionRouteId = _data.inspectionRouteId;
$that._loadAdminPointTaskDetailData(DEFAULT_PAGE, DEFAULT_ROWS);
setTimeout(function(){
$that._initTaskDetailDate();
},1000)
});
vc.on('adminPointTaskDetail', 'paginationPlus', 'page_event',
function (_currentPage) {
$that._loadAdminPointTaskDetailData(_currentPage, DEFAULT_ROWS);
});
vc.on('adminPointTaskDetail', 'notify', function (_data) {
$that._loadAdminPointTaskDetailData(DEFAULT_PAGE, DEFAULT_ROWS);
})
},
methods: {
_initTaskDetailDate:function(){
vc.initDate('pointDetailStartTime',function(_value){
$that.adminPointTaskDetailInfo.inspectionStartTime = _value;
});
vc.initDate('pointDetailEndTime',function(_value){
$that.adminPointTaskDetailInfo.inspectionEndTime = _value;
})
},
_loadAdminPointTaskDetailData: function (_page, _row) {
let param = {
params: {
inspectionId: $that.adminPointTaskDetailInfo.inspectionId,
inspectionRouteId: $that.adminPointTaskDetailInfo.inspectionRouteId,
taskId: $that.adminPointTaskDetailInfo.taskId,
planUserName: $that.adminPointTaskDetailInfo.planUserName,
inspectionStartTime: $that.adminPointTaskDetailInfo.inspectionStartTime,
inspectionEndTime: $that.adminPointTaskDetailInfo.inspectionEndTime,
page: _page,
row: _row
}
};
//发送get请求
vc.http.apiGet('/inspectionTaskDetail.listAdminInspectionTaskDetails',
param,
function (json) {
let _json = JSON.parse(json);
$that.adminPointTaskDetailInfo.details = _json.inspectionTaskDetails;
vc.emit('adminPointTaskDetail', 'paginationPlus', 'init', {
total: _json.records,
dataCount: _json.total,
currentPage: _page
});
},
function () {
console.log('请求失败处理');
}
);
},
//查询
_qureyAdminPointTaskDetail: function () {
$that._loadAdminPointTaskDetailData(DEFAULT_PAGE, DEFAULT_ROWS);
},
//重置
_resetAdminPointTaskDetail: function () {
$that.adminPointTaskDetailInfo.roomNum = "";
$that._loadAdminPointTaskDetailData(DEFAULT_PAGE, DEFAULT_ROWS);
},
}
});
})(window.vc);

View File

@ -3,8 +3,8 @@
<div class="col-md-2">
<div class="vc-org-hc margin-top">
<ul>
<li v-for="(task,index) in routeTaskInfo.tasks" @click="_switchRouteTask(task)"
:class="{'vc-node-selected':task.taskId == routeTaskInfo.taskId}">
<li v-for="(task,index) in adminRouteTaskInfo.tasks" @click="_switchRouteTask(task)"
:class="{'vc-node-selected':task.taskId == adminRouteTaskInfo.taskId}">
<div>{{task.planUserName}}({{task.inspectionPlanName}})</div>
<div>{{task.planInsTime}}</div>
</li>
@ -12,7 +12,7 @@
</div>
</div>
<div class="col-md-10">
<vc:create path="inspection/inspectionTaskMap"></vc:create>
<vc:create path="inspection/aInspectionTaskMap"></vc:create>
</div>
</div>

View File

@ -6,7 +6,7 @@
var DEFAULT_ROWS = 10;
vc.extends({
data: {
routeTaskInfo: {
adminRouteTaskInfo: {
tasks: [],
taskId:'',
inspectionRouteId:'',
@ -15,37 +15,36 @@
_initMethod: function () {
},
_initEvent: function () {
vc.on('routeTask', 'switch', function (_data) {
$that.routeTaskInfo.inspectionRouteId = _data.inspectionRouteId;
$that._loadRouteTaskData(DEFAULT_PAGE, DEFAULT_ROWS);
vc.on('adminRouteTask', 'switch', function (_data) {
$that.adminRouteTaskInfo.inspectionRouteId = _data.inspectionRouteId;
$that._loadAdminRouteTaskData(DEFAULT_PAGE, DEFAULT_ROWS);
});
vc.on('routeTask', 'paginationPlus', 'page_event',
vc.on('adminRouteTask', 'paginationPlus', 'page_event',
function (_currentPage) {
$that._loadRouteTaskData(_currentPage, DEFAULT_ROWS);
$that._loadAdminRouteTaskData(_currentPage, DEFAULT_ROWS);
});
vc.on('routeTask', 'notify', function (_data) {
$that._loadRouteTaskData(DEFAULT_PAGE, DEFAULT_ROWS);
vc.on('adminRouteTask', 'notify', function (_data) {
$that._loadAdminRouteTaskData(DEFAULT_PAGE, DEFAULT_ROWS);
})
},
methods: {
_loadRouteTaskData: function (_page, _row) {
_loadAdminRouteTaskData: function (_page, _row) {
let param = {
params: {
communityId: vc.getCurrentCommunity().communityId,
inspectionRouteId: $that.routeTaskInfo.inspectionRouteId,
inspectionRouteId: $that.adminRouteTaskInfo.inspectionRouteId,
page: _page,
row: _row
}
};
//发送get请求
vc.http.apiGet('/inspection.queryRouteInspectionTask',
vc.http.apiGet('/inspection.queryAdminRouteInspectionTask',
param,
function (json) {
let _json = JSON.parse(json);
$that.routeTaskInfo.tasks = _json.data;
$that.adminRouteTaskInfo.tasks = _json.data;
if(_json.data && _json.data.length>0){
$that._switchRouteTask(_json.data[0]);
$that._switchAdminRouteTask(_json.data[0]);
}
},
function () {
@ -54,16 +53,16 @@
);
},
//查询
_qureyRouteTask: function () {
$that._loadRouteTaskData(DEFAULT_PAGE, DEFAULT_ROWS);
_qureyAdminRouteTask: function () {
$that._loadAdminRouteTaskData(DEFAULT_PAGE, DEFAULT_ROWS);
},
_switchRouteTask:function(_task){
$that.routeTaskInfo.taskId = _task.taskId;
$that.routeTaskInfo.inspectionRouteId = _task.inspectionRouteId;
_switchAdminRouteTask:function(_task){
$that.adminRouteTaskInfo.taskId = _task.taskId;
$that.adminRouteTaskInfo.inspectionRouteId = _task.inspectionRouteId;
setTimeout(function(){
vc.emit('inspectionTaskMap','initMap',{
vc.emit('aInspectionTaskMap', 'initMap',{
taskId:_task.taskId,
inspectionRouteId:_task.inspectionRouteId
})

View File

@ -128,8 +128,8 @@
</a>
</li>
<li class="nav-item">
<a class="nav-link" v-bind:class="{active:aInspectionPlanDetailInfo._currentTab == 'pointTaskDetail'}"
v-on:click="changeTab('pointTaskDetail')">
<a class="nav-link" v-bind:class="{active:aInspectionPlanDetailInfo._currentTab == 'adminPointTaskDetail'}"
v-on:click="changeTab('adminPointTaskDetail')">
<vc:i18n name="巡检明细" namespace="aInspectionPlanDetail"></vc:i18n>
</a>
</li>
@ -149,10 +149,10 @@
<div v-if="aInspectionPlanDetailInfo._currentTab == 'adminRouteTask'">
<vc:create path="inspection/adminRouteTask"></vc:create>
</div>
<!--
<div v-if="aInspectionPlanDetailInfo._currentTab == 'pointTaskDetail'">
<vc:create path="inspection/pointTaskDetail"></vc:create>
</div> -->
<div v-if="aInspectionPlanDetailInfo._currentTab == 'adminPointTaskDetail'">
<vc:create path="inspection/adminPointTaskDetail"></vc:create>
</div> <!-- -->
</div>