Просмотр исходного кода

案件流转增加了初审环节,对因此导致的各BUG进行修复和改进

不会爬树的猴 2 лет назад
Родитель
Сommit
b464da93fe

+ 16 - 145
demo.html

@@ -33,69 +33,15 @@
 				font-weight: bold;
 				background-color: antiquewhite !important;
 			}
-
-			/* 弹框的背景 干掉试试 */
-			.mui-backdrop.mui-active.mui-backdrop-action {
-				display: none;
-			}
-
-			.mui-popover-bottom .mui-bar {
-				background-color: blue !important;
-			}
-
-			.mui-popover-bottom .mui-bar::after {
-				font-family: 'iconfont', sans-serif !important;
-				position: absolute;
-				content: '\e614';
-				height: 44px;
-				line-height: 44px;
-				width: 20px;
-				right: 15px;
-				padding: 0px;
-				z-index: 10;
-				color: rgb(255, 255, 255);
-				font-weight: bold;
-				font-size: 18px;
-			}
-
-			.mui-popover-bottom .mui-bar:active::after {
-				color: rgb(255, 255, 0);
-			}
 		</style>
 	</head>
 	<body>
-		<button type="button" onclick="showPdf()">打开对话框</button>
-		<div class="mui-input-row">
-			<label>实例一</label>
-			<input name="checkbox1" value="Item 1" type="checkbox" checked>
-		</div>
-		<div class="mui-input-row">
-			<label>实例二</label>
-			<input name="checkbox1" value="Item 1" type="checkbox">
-		</div>
-		<div class="mui-input-row">
-			<label>实例三</label>
-			<input name="checkbox1" value="Item 1" type="checkbox" checked>
-		</div>
-		<!-- 查询结果弹出层 -->
-		<div id="queryResultPopover" class="mui-popover mui-popover-action mui-popover-bottom wc-popover-case">
-			<header id="queryResultTitle" class="mui-bar">查询结果</header>
-			<div class="mui-slider" id="slider">
-				<!--  mui-slider-loop 如果需要轮循播放需要添加-->
-				<div id="caseQueryResult" class="mui-slider-group">
-				</div>
-			</div>
-		</div>
+		<button type="button" onclick="showPdf()">查询指定权限</button>
+
 	</body>
 </html>
 <script src="./js/mui.min.js" type="text/javascript"></script>
-<!-- 引入弹窗及选择器脚本 -->
-<script src="./js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
-<script src="./js/mui.poppicker.js" type="text/javascript" charset="utf-8"></script>
-<script src="./js/MapManager.js"></script>
-<script src="./js/jquery.js"></script>
-<script src="./js/common.js"></script>
-<script src="./js/save.js"></script>
+<script src="./js/case.js"></script>
 
 
 <script type="text/javascript">
@@ -112,98 +58,23 @@
 		bounce: false, //是否启用回弹  
 	});
 
-	let chkObj = document.getElementsByName('checkbox1');
-	for (let checkbox of chkObj) {
-		checkbox.checked = false;
-	}
+	var permissions = [{
+		"code": "1007",
+		"name": "派发员"
+	}, {
+		"code": "1003",
+		"name": "审核员"
+	}];
 
 	function showPdf() {
-		mui("#queryResultPopover").popover('show');
-		_initCSAData([{
-			name: '第一条',
-		}]);
+		console.log(permissionFind(permissions, userPermission.perSH));
 	}
 
-	/**
-	 * 展示通用占地分析结果数据集
-	 * @param {Array} datas 通用占地分析结果数据集
-	 */
-	function _initCSAData(datas) {
-		/* 初始化 加入根节点*/
-		let divRoot = document.createElement('div');
-		divRoot.className = 'jt-csa-count-result-panel';
-		let rootHtml = "";
-		/* 创建横向滚动tab */
-		rootHtml +=
-			"<div class='mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted'>";
-		rootHtml += "<div class='mui-scroll'>";
-		for (let i = 0; i < datas.length; i++) {
-			rootHtml += "<a href='#item_count" + i + "' class='mui-control-item";
-			if (i === 0) {
-				if (datas.length === 1) {
-					rootHtml += " jt-control-item mui-active";
-				} else {
-					rootHtml += " mui-active";
-				}
-			}
-			rootHtml += "' id='top" + i + "'>" + datas[i].name + "</a>";
-		}
-		rootHtml += "</div>";
-		rootHtml += "</div>";
-		/* 创建统计信息详细内容 */
-		rootHtml += "<div class='mui-content-padded'>";
-		for (let i = 0; i < datas.length; i++) {
-			rootHtml += "<div id='item_count" + i + "' class='mui-control-content jt-mui-control-content";
-			if (i === 0) {
-				rootHtml += " mui-active";
-			}
-			rootHtml += "'>";
-			rootHtml += "<div class='jt-row-content'>";
-			rootHtml += "<div class='mui-scroll-wrapper'>";
-			rootHtml += "<div class='mui-scroll'>";
-			/* 以下是具体内容 */
-			for (let j = 0; j < 10; j++) {
-				if (j % 2 == 0) {
-					rootHtml += "<div class='jt-feature-data-row jt-row-even-number'>";
-				} else {
-					rootHtml += "<div class='jt-feature-data-row jt-row-odd-number'>";
-				}
-				rootHtml += "<span>" + j + "</span>";
-				rootHtml += "<span>" + i + "</span>";
-				rootHtml += "<span>" + '0.00' + "亩</span>";
-				rootHtml += "<button type='button' class='mui-btn app-icon app-icon-location jt-button'";
-				rootHtml += " onclick = \"_queryFeatureWktAndLocation('','fx_common_spatial_analysis')\" />";
-				rootHtml += "<button type='button' class='mui-btn app-icon app-iocn-details jt-button'";
-				rootHtml += " onclick = \"openDetailsPage('','')\" />"
-				rootHtml += "</div>";
-			}
-			/* 以上是具体内容 */
-			rootHtml += "</div>";
-			rootHtml += "</div>";
-			rootHtml += "</div>";
-			rootHtml += "</div>";
-		}
-		rootHtml += "</div>";
-		divRoot.innerHTML = rootHtml;
-		/* 创建弹窗的标题头 */
-		var header = document.createElement('header');
-		header.className = 'mui-bar';
-		let headHtml = "<div class='jt-cnt-bar'>";
-		headHtml +=
-			"<button type='button' class='app-icon app-iocn-details jt-cnt-bar-button' onclick='_queryCSACount()'>统计信息</button>";
-		headHtml += "<span class='jt-cnt-bar-title'>占压分析明细</span>";
-		headHtml += "</div>";
-		header.innerHTML = headHtml;
-		/* 显示弹框 */
-		_showMuiPopover(header, divRoot);
-		$("#top0").addClass('jt-segmented-control-item');
-
-		let divHtml = "<div class='jt-segmented-control-item-content'>";
-		divHtml += "<span>你好</span>";
-		divHtml += "<span class='jt-number'>1/2</span>";
-		divHtml += "<button class='app-icon app-iocn-details jt-cnt-bar-button'>加载更多</button>";
-		divHtml += "<div>"
+	function permissionFind(permissions, perCode) {
+		var result = permissions.find(function(item) {
+			return item.code === perCode;
+		});
 
-		$("#top0").html(divHtml);
+		return result !== undefined;
 	}
 </script>

+ 24 - 9
js/JTMapKit.js

@@ -239,13 +239,23 @@ JTMapKit.prototype.extend({
 	 */
 	_initBaseMapMapboxLayer(baseMapUrl, callComplete) {
 		let _self = this;
-		require(["esri/layers/WebTileLayer"], function(WebTileLayer) {
-			let url =
-				"https://api.mapbox.com/styles/v1/chenchen1990/ckvgc14xrh7mo14qowdw4wrkf/tiles/512/{z}/{x}/{y}?access_token=pk.eyJ1IjoiY2hlbmNoZW4xOTkwIiwiYSI6ImNrbzA3eTY1OTA3dXkyd20zdG40ZGdmNXYifQ.xWKxjBG6mEDh55_oln0nAg";
-			let mapboxLayer = new WebTileLayer(url, {
-				"subDomains": ["a", "b", "c"]
+		// require(["esri/layers/WebTileLayer"], function(WebTileLayer) {
+		// 	let url =
+		// 		"https://api.mapbox.com/styles/v1/chenchen1990/ckvgc14xrh7mo14qowdw4wrkf/tiles/512/{z}/{x}/{y}?access_token=pk.eyJ1IjoiY2hlbmNoZW4xOTkwIiwiYSI6ImNrbzA3eTY1OTA3dXkyd20zdG40ZGdmNXYifQ.xWKxjBG6mEDh55_oln0nAg";
+		// 	let mapboxLayer = new WebTileLayer(url, {
+		// 		"subDomains": ["a", "b", "c"]
+		// 	});
+		// 	if (callComplete) callComplete(mapboxLayer);
+		// });
+
+		/* 新的方式添加底图 */
+		/* 此处注意使用TileLayer导致地图放到一定比例后无法放大 */
+		require(["esri/layers/MapImageLayer"], function(MapImageLayer) {
+			var layer = new MapImageLayer({
+				url: 'https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer',
+				title: '基础底图',
 			});
-			if (callComplete) callComplete(mapboxLayer);
+			if (callComplete) callComplete(layer);
 		});
 	},
 
@@ -292,7 +302,11 @@ JTMapKit.prototype.extend({
 				/* 清空所有自带组件 */
 				self.mapView.ui.components = [];
 				/* 禁止地图旋转 */
-				self.mapView.constraints.rotationEnabled = false;
+				self.mapView.constraints = {
+					rotationEnabled: false,
+					// minScale: 10000,
+					// maxZoom: 22,
+				}
 				/* 初始化加载的图层 */
 				if (!self.loadLayers) {
 					self.loadLayers = [];
@@ -347,6 +361,7 @@ JTMapKit.prototype.extend({
 				if (_self.onViewEventChange) {
 					_self.onViewEventChange(_self.mapView.extent);
 				}
+				console.log('地图变化');
 			});
 		});
 	},
@@ -2301,9 +2316,9 @@ JTMapKit.prototype.extend({
 		var popup = this.mapView.popup;
 		/* 显示位置 */
 		popup.location = location;
-		/* 设置标 */
+		/* 设置标������� */
 		popup.title = title;
-		/* 置显示内容 */
+		/* �����置显示内容 */
 		popup.viewModel.content = content;
 		/* 控制窗口的停靠按钮是否显示 */
 		popup.dockOptions = {

+ 3 - 1
js/MapManager.js

@@ -54,7 +54,7 @@ function MapInit(MainDivID, user) {
 				jtMapKit.zoomToExtent(initMapExtent);
 				/* 加载矢量地图 */
 				LoadVectorServer(function() {
-					muiToast("地图初始化完成!");
+					muiToast("地图初始化!");
 					jtMapKit.setUIScaleBarVisible(true);
 					jtMapKit.isLoad = true;
 				});
@@ -267,6 +267,8 @@ function EventClick_Location() {
 				longitude: longitude,
 				latitude: latitude,
 			});
+		}, function(err) {
+			muiAlert(err);
 		});
 		plusOrientationListenerOn(function(angle) {
 			// console.log("方位角 = " + angle);

+ 12 - 8
js/case-list-base.js

@@ -208,20 +208,24 @@ JTCaseBase.prototype.extend({
 		itemHtml += this._CreateCaseNavigationButton(data);
 		itemHtml += this._CreateCaseInfoButton(data);
 		itemHtml += this._CreateCaseMapLocationButton(data);
-		//如果当前登录的为审核用户 且为待审核案件页面 则显示审核按钮
-		if (this.userInfo.userType == userType.memberSH && this.pageFlag == casePageFlag.WaitVerify) {
+		//如果当前登录的账户具备审核权限 且为待审核案件页面 则显示审核按钮
+		if (this.pageFlag == casePageFlag.WaitVerify && permissionFind(this.userInfo.permissions,
+				userPermission.perSH)) {
 			itemHtml += this._CreateCaseVerifyButton(data);
 		}
-		//如果当前登录的为审核用户 且页面为待派发页面 则显示派发按钮
-		if (this.userInfo.userType == userType.memberSH && this.pageFlag == casePageFlag.WaitAssign) {
+		//如果当前登录的账户具备派发权限 且页面为待派发页面 则显示派发按钮
+		if (this.pageFlag == casePageFlag.WaitAssign && permissionFind(this.userInfo.permissions,
+				userPermission.perPF)) {
 			itemHtml += this._CreateCaseAssigButton(data);
 		}
-		//如果当前登录的为审核用户 且页面为撤派页面 则显示撤派按钮
-		if (this.userInfo.userType == userType.memberSH && this.pageFlag == casePageFlag.UndoAssign) {
+		//如果当前登录的账户具备派发权限 且页面为撤派页面 则显示撤派按钮
+		if (this.pageFlag == casePageFlag.UndoAssign && permissionFind(this.userInfo.permissions,
+				userPermission.perPF)) {
 			itemHtml += this._CreateCaseUndoAssigButton(data);
 		}
-		//如果当前登录用户为处理员 且页面为待处理案件 则显示处理按钮
-		if (this.userInfo.userType == userType.memberCL && this.pageFlag == casePageFlag.WaitCheck) {
+		//如果当前登录用户具备处理权限 且页面为待处理案件 则显示处理按钮
+		if (this.pageFlag == casePageFlag.WaitCheck && permissionFind(this.userInfo.permissions,
+				userPermission.perCL)) {
 			itemHtml += this._CreateCaseCheckButton(data);
 		}
 		//如果当前登陆用户为审核员或领导,且页面为待督办页面或已督办页面,则显示督办按钮

+ 33 - 0
js/case.js

@@ -13,6 +13,25 @@ var userType = {
 	/* 无人机巡查人员 */
 	memberUAV: "1005",
 }
+
+/* 用户权限 */
+var userPermission = {
+	/* 未知权限 */
+	perNo: "-1000",
+	/* 巡查权限 */
+	perXC: "1001",
+	/* 处理权限 */
+	perCL: "1002",
+	/* 审核权限 */
+	perSH: "1003",
+	/* 浏览权限(领导) */
+	perLD: "1004",
+	/* 无人机巡查权限 */
+	perUAV: "1005",
+	/* 派发权限 */
+	perPF: '1007'
+}
+
 /**
  * 案件页面标识符
  */
@@ -55,4 +74,18 @@ var caseState = {
 	stateWaitResetCheck: "1007",
 	/* 等待重新复飞 */
 	stateWaitResetRepeat: "1008",
+}
+
+/**
+ * 从权限数组中查询权限
+ * @param {Array<JSON>} permissions 权限数组
+ * @param {String} perCode 权限代码
+ */
+function permissionFind(permissions, perCode) {
+	if (permissions === undefined || perCode === undefined) return false;
+	var result = permissions.find(function(item) {
+		return item.code === perCode;
+	});
+
+	return result !== undefined;
 }

+ 2 - 1
js/common.js

@@ -73,11 +73,12 @@ let watchGpsId = undefined;
  * 开启GPS位置变化监听
  * @param {Function} callChange GPS位置变化回调callChange(纬度,经度);
  */
-function plusGPSListenerOn(callChange) {
+function plusGPSListenerOn(callChange, callError) {
 	mui.plusReady(function() {
 		watchGpsId = plus.geolocation.watchPosition(function(p) {
 			if (callChange) callChange(p.coords.latitude, p.coords.longitude);
 		}, function(err) {
+			if (callError) callError('GPS定位失败,请确保开启定位服务及权限!');
 			console.log('定位错误 = ' + err.message);
 		}, {
 			provider: 'system',

+ 1 - 1
js/login.js

@@ -100,7 +100,7 @@ function removeLayerControlConfigStorage(index) {
 function pageInit() {
 	getConfigInfo(function(info) {
 		var copyrightHtml = "";
-		copyrightHtml += "<p>版权所有:" + info.devCopyright + " @Copyright 2022</p>";
+		copyrightHtml += "<p>版权所有:" + info.devCopyright + " @Copyright 2023</p>";
 		copyrightHtml += "<p>技术支持:" + info.devName + "</p>";
 		$('#divButtom').html(copyrightHtml);
 		/* App名称 */

+ 1 - 1
js/sys.home.zhzf.js

@@ -40,7 +40,7 @@ function showMainMenu(joinUser) {
 	menuPanel.append(createMenuItem("复飞中", "app-cion-menu-waitrepeat", openWaitRepeatCasePage));
 	menuPanel.append(createMenuItem("审核中", "app-cion-menu-waitverify", openWaitVerifyCasePage));
 	menuPanel.append(createMenuItem("已结案", "app-cion-menu-close", openCaseClosePage));
-	if (joinUser.userType == userType.memberSH) {
+	if (permissionFind(joinUser.permissions, userPermission.perPF)) {
 		menuPanel.append(createMenuItem("派发中", "app-cion-menu-assign", openWaitAssignCasePage));
 		menuPanel.append(createMenuItem("撤派中", "app-cion-menu-undoassign", openUndoAssignCasePage));
 	}

+ 1 - 1
js/yyzx.open.js

@@ -219,7 +219,7 @@ function EventClickSubject(flag) {
 		} else {
 			muiAlert('建设中', '提示');
 		}
-	} else if (yyzxUser.userType == userType.memberCL) {
+	} else if (yyzxUser.permissions !== undefined) {
 		if (flag == 'zf') {
 			createAndOpenPage({
 				htmlPath: 'sys-home-zhzf.html',

+ 2 - 2
manifest.json

@@ -5,9 +5,9 @@
 	"name": "自然资源数字化监管平台",
 	/*应用名称,程序桌面图标名称*/
 	"version": {
-		"name": "3.2.1",
+		"name": "3.2.2",
 		/*应用版本名称*/
-		"code": 90
+		"code": 91
 	},
 	"description": "该App用于兰山区自然资源数字化监管。",
 	/*应用描述信息*/

+ 3 - 0
pages/map.esri.html

@@ -62,6 +62,9 @@
 					<div id="MainMap"
 						style="height:103%;width: 103%;position: relative;margin-top: -10px;margin-left: -10px;">
 					</div>
+					<!-- <div id="MainMap"
+						style="height:103%;width: 103%;position: relative;margin-top: 30px;margin-left: 30px;">
+					</div> -->
 					<!-- 左侧工具栏 -->
 					<div class="ui-content-padded jt-map-tools"
 						style="position: absolute;top: 50px;left: 4px;width: 40px;">

+ 1 - 1
pages/page-yyzx.html

@@ -195,7 +195,7 @@
 		strHtml += createMenuItem("复飞中", "app-cion-menu-waitrepeat", 'openWaitRepeatCasePage()');
 		strHtml += createMenuItem("审核中", "app-cion-menu-waitverify", 'openWaitVerifyCasePage()');
 		strHtml += createMenuItem("已结案", "app-cion-menu-close", 'openCaseClosePage()');
-		if (joinUser.userType == userType.memberSH) {
+		if (permissionFind(joinUser.permissions, userPermission.perPF)) {
 			strHtml += createMenuItem("派发中", "app-cion-menu-assign", 'openWaitAssignCasePage()');
 			strHtml += createMenuItem("撤派中", "app-cion-menu-undoassign", 'openUndoAssignCasePage()');
 		}

+ 16 - 145
unpackage/resources/H5EFBB1F4/www/demo.html

@@ -33,69 +33,15 @@
 				font-weight: bold;
 				background-color: antiquewhite !important;
 			}
-
-			/* 弹框的背景 干掉试试 */
-			.mui-backdrop.mui-active.mui-backdrop-action {
-				display: none;
-			}
-
-			.mui-popover-bottom .mui-bar {
-				background-color: blue !important;
-			}
-
-			.mui-popover-bottom .mui-bar::after {
-				font-family: 'iconfont', sans-serif !important;
-				position: absolute;
-				content: '\e614';
-				height: 44px;
-				line-height: 44px;
-				width: 20px;
-				right: 15px;
-				padding: 0px;
-				z-index: 10;
-				color: rgb(255, 255, 255);
-				font-weight: bold;
-				font-size: 18px;
-			}
-
-			.mui-popover-bottom .mui-bar:active::after {
-				color: rgb(255, 255, 0);
-			}
 		</style>
 	</head>
 	<body>
-		<button type="button" onclick="showPdf()">打开对话框</button>
-		<div class="mui-input-row">
-			<label>实例一</label>
-			<input name="checkbox1" value="Item 1" type="checkbox" checked>
-		</div>
-		<div class="mui-input-row">
-			<label>实例二</label>
-			<input name="checkbox1" value="Item 1" type="checkbox">
-		</div>
-		<div class="mui-input-row">
-			<label>实例三</label>
-			<input name="checkbox1" value="Item 1" type="checkbox" checked>
-		</div>
-		<!-- 查询结果弹出层 -->
-		<div id="queryResultPopover" class="mui-popover mui-popover-action mui-popover-bottom wc-popover-case">
-			<header id="queryResultTitle" class="mui-bar">查询结果</header>
-			<div class="mui-slider" id="slider">
-				<!--  mui-slider-loop 如果需要轮循播放需要添加-->
-				<div id="caseQueryResult" class="mui-slider-group">
-				</div>
-			</div>
-		</div>
+		<button type="button" onclick="showPdf()">查询指定权限</button>
+
 	</body>
 </html>
 <script src="./js/mui.min.js" type="text/javascript"></script>
-<!-- 引入弹窗及选择器脚本 -->
-<script src="./js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
-<script src="./js/mui.poppicker.js" type="text/javascript" charset="utf-8"></script>
-<script src="./js/MapManager.js"></script>
-<script src="./js/jquery.js"></script>
-<script src="./js/common.js"></script>
-<script src="./js/save.js"></script>
+<script src="./js/case.js"></script>
 
 
 <script type="text/javascript">
@@ -112,98 +58,23 @@
 		bounce: false, //是否启用回弹  
 	});
 
-	let chkObj = document.getElementsByName('checkbox1');
-	for (let checkbox of chkObj) {
-		checkbox.checked = false;
-	}
+	var permissions = [{
+		"code": "1007",
+		"name": "派发员"
+	}, {
+		"code": "1003",
+		"name": "审核员"
+	}];
 
 	function showPdf() {
-		mui("#queryResultPopover").popover('show');
-		_initCSAData([{
-			name: '第一条',
-		}]);
+		console.log(permissionFind(permissions, userPermission.perSH));
 	}
 
-	/**
-	 * 展示通用占地分析结果数据集
-	 * @param {Array} datas 通用占地分析结果数据集
-	 */
-	function _initCSAData(datas) {
-		/* 初始化 加入根节点*/
-		let divRoot = document.createElement('div');
-		divRoot.className = 'jt-csa-count-result-panel';
-		let rootHtml = "";
-		/* 创建横向滚动tab */
-		rootHtml +=
-			"<div class='mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted'>";
-		rootHtml += "<div class='mui-scroll'>";
-		for (let i = 0; i < datas.length; i++) {
-			rootHtml += "<a href='#item_count" + i + "' class='mui-control-item";
-			if (i === 0) {
-				if (datas.length === 1) {
-					rootHtml += " jt-control-item mui-active";
-				} else {
-					rootHtml += " mui-active";
-				}
-			}
-			rootHtml += "' id='top" + i + "'>" + datas[i].name + "</a>";
-		}
-		rootHtml += "</div>";
-		rootHtml += "</div>";
-		/* 创建统计信息详细内容 */
-		rootHtml += "<div class='mui-content-padded'>";
-		for (let i = 0; i < datas.length; i++) {
-			rootHtml += "<div id='item_count" + i + "' class='mui-control-content jt-mui-control-content";
-			if (i === 0) {
-				rootHtml += " mui-active";
-			}
-			rootHtml += "'>";
-			rootHtml += "<div class='jt-row-content'>";
-			rootHtml += "<div class='mui-scroll-wrapper'>";
-			rootHtml += "<div class='mui-scroll'>";
-			/* 以下是具体内容 */
-			for (let j = 0; j < 10; j++) {
-				if (j % 2 == 0) {
-					rootHtml += "<div class='jt-feature-data-row jt-row-even-number'>";
-				} else {
-					rootHtml += "<div class='jt-feature-data-row jt-row-odd-number'>";
-				}
-				rootHtml += "<span>" + j + "</span>";
-				rootHtml += "<span>" + i + "</span>";
-				rootHtml += "<span>" + '0.00' + "亩</span>";
-				rootHtml += "<button type='button' class='mui-btn app-icon app-icon-location jt-button'";
-				rootHtml += " onclick = \"_queryFeatureWktAndLocation('','fx_common_spatial_analysis')\" />";
-				rootHtml += "<button type='button' class='mui-btn app-icon app-iocn-details jt-button'";
-				rootHtml += " onclick = \"openDetailsPage('','')\" />"
-				rootHtml += "</div>";
-			}
-			/* 以上是具体内容 */
-			rootHtml += "</div>";
-			rootHtml += "</div>";
-			rootHtml += "</div>";
-			rootHtml += "</div>";
-		}
-		rootHtml += "</div>";
-		divRoot.innerHTML = rootHtml;
-		/* 创建弹窗的标题头 */
-		var header = document.createElement('header');
-		header.className = 'mui-bar';
-		let headHtml = "<div class='jt-cnt-bar'>";
-		headHtml +=
-			"<button type='button' class='app-icon app-iocn-details jt-cnt-bar-button' onclick='_queryCSACount()'>统计信息</button>";
-		headHtml += "<span class='jt-cnt-bar-title'>占压分析明细</span>";
-		headHtml += "</div>";
-		header.innerHTML = headHtml;
-		/* 显示弹框 */
-		_showMuiPopover(header, divRoot);
-		$("#top0").addClass('jt-segmented-control-item');
-
-		let divHtml = "<div class='jt-segmented-control-item-content'>";
-		divHtml += "<span>你好</span>";
-		divHtml += "<span class='jt-number'>1/2</span>";
-		divHtml += "<button class='app-icon app-iocn-details jt-cnt-bar-button'>加载更多</button>";
-		divHtml += "<div>"
+	function permissionFind(permissions, perCode) {
+		var result = permissions.find(function(item) {
+			return item.code === perCode;
+		});
 
-		$("#top0").html(divHtml);
+		return result !== undefined;
 	}
 </script>

+ 24 - 9
unpackage/resources/H5EFBB1F4/www/js/JTMapKit.js

@@ -239,13 +239,23 @@ JTMapKit.prototype.extend({
 	 */
 	_initBaseMapMapboxLayer(baseMapUrl, callComplete) {
 		let _self = this;
-		require(["esri/layers/WebTileLayer"], function(WebTileLayer) {
-			let url =
-				"https://api.mapbox.com/styles/v1/chenchen1990/ckvgc14xrh7mo14qowdw4wrkf/tiles/512/{z}/{x}/{y}?access_token=pk.eyJ1IjoiY2hlbmNoZW4xOTkwIiwiYSI6ImNrbzA3eTY1OTA3dXkyd20zdG40ZGdmNXYifQ.xWKxjBG6mEDh55_oln0nAg";
-			let mapboxLayer = new WebTileLayer(url, {
-				"subDomains": ["a", "b", "c"]
+		// require(["esri/layers/WebTileLayer"], function(WebTileLayer) {
+		// 	let url =
+		// 		"https://api.mapbox.com/styles/v1/chenchen1990/ckvgc14xrh7mo14qowdw4wrkf/tiles/512/{z}/{x}/{y}?access_token=pk.eyJ1IjoiY2hlbmNoZW4xOTkwIiwiYSI6ImNrbzA3eTY1OTA3dXkyd20zdG40ZGdmNXYifQ.xWKxjBG6mEDh55_oln0nAg";
+		// 	let mapboxLayer = new WebTileLayer(url, {
+		// 		"subDomains": ["a", "b", "c"]
+		// 	});
+		// 	if (callComplete) callComplete(mapboxLayer);
+		// });
+
+		/* 新的方式添加底图 */
+		/* 此处注意使用TileLayer导致地图放到一定比例后无法放大 */
+		require(["esri/layers/MapImageLayer"], function(MapImageLayer) {
+			var layer = new MapImageLayer({
+				url: 'https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer',
+				title: '基础底图',
 			});
-			if (callComplete) callComplete(mapboxLayer);
+			if (callComplete) callComplete(layer);
 		});
 	},
 
@@ -292,7 +302,11 @@ JTMapKit.prototype.extend({
 				/* 清空所有自带组件 */
 				self.mapView.ui.components = [];
 				/* 禁止地图旋转 */
-				self.mapView.constraints.rotationEnabled = false;
+				self.mapView.constraints = {
+					rotationEnabled: false,
+					// minScale: 10000,
+					// maxZoom: 22,
+				}
 				/* 初始化加载的图层 */
 				if (!self.loadLayers) {
 					self.loadLayers = [];
@@ -347,6 +361,7 @@ JTMapKit.prototype.extend({
 				if (_self.onViewEventChange) {
 					_self.onViewEventChange(_self.mapView.extent);
 				}
+				console.log('地图变化');
 			});
 		});
 	},
@@ -2301,9 +2316,9 @@ JTMapKit.prototype.extend({
 		var popup = this.mapView.popup;
 		/* 显示位置 */
 		popup.location = location;
-		/* 设置标 */
+		/* 设置标������� */
 		popup.title = title;
-		/* 置显示内容 */
+		/* �����置显示内容 */
 		popup.viewModel.content = content;
 		/* 控制窗口的停靠按钮是否显示 */
 		popup.dockOptions = {

+ 3 - 1
unpackage/resources/H5EFBB1F4/www/js/MapManager.js

@@ -54,7 +54,7 @@ function MapInit(MainDivID, user) {
 				jtMapKit.zoomToExtent(initMapExtent);
 				/* 加载矢量地图 */
 				LoadVectorServer(function() {
-					muiToast("地图初始化完成!");
+					muiToast("地图初始化!");
 					jtMapKit.setUIScaleBarVisible(true);
 					jtMapKit.isLoad = true;
 				});
@@ -267,6 +267,8 @@ function EventClick_Location() {
 				longitude: longitude,
 				latitude: latitude,
 			});
+		}, function(err) {
+			muiAlert(err);
 		});
 		plusOrientationListenerOn(function(angle) {
 			// console.log("方位角 = " + angle);

+ 12 - 8
unpackage/resources/H5EFBB1F4/www/js/case-list-base.js

@@ -208,20 +208,24 @@ JTCaseBase.prototype.extend({
 		itemHtml += this._CreateCaseNavigationButton(data);
 		itemHtml += this._CreateCaseInfoButton(data);
 		itemHtml += this._CreateCaseMapLocationButton(data);
-		//如果当前登录的为审核用户 且为待审核案件页面 则显示审核按钮
-		if (this.userInfo.userType == userType.memberSH && this.pageFlag == casePageFlag.WaitVerify) {
+		//如果当前登录的账户具备审核权限 且为待审核案件页面 则显示审核按钮
+		if (this.pageFlag == casePageFlag.WaitVerify && permissionFind(this.userInfo.permissions,
+				userPermission.perSH)) {
 			itemHtml += this._CreateCaseVerifyButton(data);
 		}
-		//如果当前登录的为审核用户 且页面为待派发页面 则显示派发按钮
-		if (this.userInfo.userType == userType.memberSH && this.pageFlag == casePageFlag.WaitAssign) {
+		//如果当前登录的账户具备派发权限 且页面为待派发页面 则显示派发按钮
+		if (this.pageFlag == casePageFlag.WaitAssign && permissionFind(this.userInfo.permissions,
+				userPermission.perPF)) {
 			itemHtml += this._CreateCaseAssigButton(data);
 		}
-		//如果当前登录的为审核用户 且页面为撤派页面 则显示撤派按钮
-		if (this.userInfo.userType == userType.memberSH && this.pageFlag == casePageFlag.UndoAssign) {
+		//如果当前登录的账户具备派发权限 且页面为撤派页面 则显示撤派按钮
+		if (this.pageFlag == casePageFlag.UndoAssign && permissionFind(this.userInfo.permissions,
+				userPermission.perPF)) {
 			itemHtml += this._CreateCaseUndoAssigButton(data);
 		}
-		//如果当前登录用户为处理员 且页面为待处理案件 则显示处理按钮
-		if (this.userInfo.userType == userType.memberCL && this.pageFlag == casePageFlag.WaitCheck) {
+		//如果当前登录用户具备处理权限 且页面为待处理案件 则显示处理按钮
+		if (this.pageFlag == casePageFlag.WaitCheck && permissionFind(this.userInfo.permissions,
+				userPermission.perCL)) {
 			itemHtml += this._CreateCaseCheckButton(data);
 		}
 		//如果当前登陆用户为审核员或领导,且页面为待督办页面或已督办页面,则显示督办按钮

+ 33 - 0
unpackage/resources/H5EFBB1F4/www/js/case.js

@@ -13,6 +13,25 @@ var userType = {
 	/* 无人机巡查人员 */
 	memberUAV: "1005",
 }
+
+/* 用户权限 */
+var userPermission = {
+	/* 未知权限 */
+	perNo: "-1000",
+	/* 巡查权限 */
+	perXC: "1001",
+	/* 处理权限 */
+	perCL: "1002",
+	/* 审核权限 */
+	perSH: "1003",
+	/* 浏览权限(领导) */
+	perLD: "1004",
+	/* 无人机巡查权限 */
+	perUAV: "1005",
+	/* 派发权限 */
+	perPF: '1007'
+}
+
 /**
  * 案件页面标识符
  */
@@ -55,4 +74,18 @@ var caseState = {
 	stateWaitResetCheck: "1007",
 	/* 等待重新复飞 */
 	stateWaitResetRepeat: "1008",
+}
+
+/**
+ * 从权限数组中查询权限
+ * @param {Array<JSON>} permissions 权限数组
+ * @param {String} perCode 权限代码
+ */
+function permissionFind(permissions, perCode) {
+	if (permissions === undefined || perCode === undefined) return false;
+	var result = permissions.find(function(item) {
+		return item.code === perCode;
+	});
+
+	return result !== undefined;
 }

+ 2 - 1
unpackage/resources/H5EFBB1F4/www/js/common.js

@@ -73,11 +73,12 @@ let watchGpsId = undefined;
  * 开启GPS位置变化监听
  * @param {Function} callChange GPS位置变化回调callChange(纬度,经度);
  */
-function plusGPSListenerOn(callChange) {
+function plusGPSListenerOn(callChange, callError) {
 	mui.plusReady(function() {
 		watchGpsId = plus.geolocation.watchPosition(function(p) {
 			if (callChange) callChange(p.coords.latitude, p.coords.longitude);
 		}, function(err) {
+			if (callError) callError('GPS定位失败,请确保开启定位服务及权限!');
 			console.log('定位错误 = ' + err.message);
 		}, {
 			provider: 'system',

+ 1 - 1
unpackage/resources/H5EFBB1F4/www/js/login.js

@@ -100,7 +100,7 @@ function removeLayerControlConfigStorage(index) {
 function pageInit() {
 	getConfigInfo(function(info) {
 		var copyrightHtml = "";
-		copyrightHtml += "<p>版权所有:" + info.devCopyright + " @Copyright 2022</p>";
+		copyrightHtml += "<p>版权所有:" + info.devCopyright + " @Copyright 2023</p>";
 		copyrightHtml += "<p>技术支持:" + info.devName + "</p>";
 		$('#divButtom').html(copyrightHtml);
 		/* App名称 */

+ 1 - 1
unpackage/resources/H5EFBB1F4/www/js/sys.home.zhzf.js

@@ -40,7 +40,7 @@ function showMainMenu(joinUser) {
 	menuPanel.append(createMenuItem("复飞中", "app-cion-menu-waitrepeat", openWaitRepeatCasePage));
 	menuPanel.append(createMenuItem("审核中", "app-cion-menu-waitverify", openWaitVerifyCasePage));
 	menuPanel.append(createMenuItem("已结案", "app-cion-menu-close", openCaseClosePage));
-	if (joinUser.userType == userType.memberSH) {
+	if (permissionFind(joinUser.permissions, userPermission.perPF)) {
 		menuPanel.append(createMenuItem("派发中", "app-cion-menu-assign", openWaitAssignCasePage));
 		menuPanel.append(createMenuItem("撤派中", "app-cion-menu-undoassign", openUndoAssignCasePage));
 	}

+ 1 - 1
unpackage/resources/H5EFBB1F4/www/js/yyzx.open.js

@@ -219,7 +219,7 @@ function EventClickSubject(flag) {
 		} else {
 			muiAlert('建设中', '提示');
 		}
-	} else if (yyzxUser.userType == userType.memberCL) {
+	} else if (yyzxUser.permissions !== undefined) {
 		if (flag == 'zf') {
 			createAndOpenPage({
 				htmlPath: 'sys-home-zhzf.html',

+ 1 - 1
unpackage/resources/H5EFBB1F4/www/manifest.json

@@ -1 +1 @@
-{"@platforms":["android","iPhone","iPad"],"id":"H5EFBB1F4","name":"自然资源数字化监管平台","version":{"name":"3.2.1","code":90},"description":"该App用于兰山区自然资源数字化监管。","icons":{"72":"icon.png"},"launch_path":"login.html","developer":{"name":"金田产业发展(山东)集团有限公司","email":"18954008227@163.com","url":"http://www.sdjintian.com","phone":"18954008227","tel":"(0546)8312677","copyright":"临沂市兰山区自然资源局"},"permissions":{"Cache":{"description":"管理应用缓存"},"Console":{"description":"跟踪调试输出日志"},"Contacts":{"description":"访问系统联系人信息"},"Events":{"description":"应用扩展事件"},"Messaging":{"description":"访问通讯能力"},"Maps":{"description":"管理地图插件"},"Speech":{"description":"管理语音识别插件"},"SQLite":{}},"plus":{"statusbar":{"immersed":"supportedDevice","style":"light","background":"#FF0000"},"launchwebview":{},"splashscreen":{"autoclose":true,"waiting":true,"delay":1000},"runmode":"liberate","signature":"Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==","error":{"url":"pages/sys-error.html"}},"screenOrientation":["portrait-primary"],"fullscreen":false}
+{"@platforms":["android","iPhone","iPad"],"id":"H5EFBB1F4","name":"自然资源数字化监管平台","version":{"name":"3.2.2","code":91},"description":"该App用于兰山区自然资源数字化监管。","icons":{"72":"icon.png"},"launch_path":"login.html","developer":{"name":"金田产业发展(山东)集团有限公司","email":"18954008227@163.com","url":"http://www.sdjintian.com","phone":"18954008227","tel":"(0546)8312677","copyright":"临沂市兰山区自然资源局"},"permissions":{"Cache":{"description":"管理应用缓存"},"Console":{"description":"跟踪调试输出日志"},"Contacts":{"description":"访问系统联系人信息"},"Events":{"description":"应用扩展事件"},"Messaging":{"description":"访问通讯能力"},"Maps":{"description":"管理地图插件"},"Speech":{"description":"管理语音识别插件"},"SQLite":{}},"plus":{"statusbar":{"immersed":"supportedDevice","style":"light","background":"#FF0000"},"launchwebview":{},"splashscreen":{"autoclose":true,"waiting":true,"delay":1000},"runmode":"liberate","signature":"Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==","error":{"url":"pages/sys-error.html"}},"screenOrientation":["portrait-primary"],"fullscreen":false}

+ 3 - 0
unpackage/resources/H5EFBB1F4/www/pages/map.esri.html

@@ -62,6 +62,9 @@
 					<div id="MainMap"
 						style="height:103%;width: 103%;position: relative;margin-top: -10px;margin-left: -10px;">
 					</div>
+					<!-- <div id="MainMap"
+						style="height:103%;width: 103%;position: relative;margin-top: 30px;margin-left: 30px;">
+					</div> -->
 					<!-- 左侧工具栏 -->
 					<div class="ui-content-padded jt-map-tools"
 						style="position: absolute;top: 50px;left: 4px;width: 40px;">

+ 1 - 1
unpackage/resources/H5EFBB1F4/www/pages/page-yyzx.html

@@ -195,7 +195,7 @@
 		strHtml += createMenuItem("复飞中", "app-cion-menu-waitrepeat", 'openWaitRepeatCasePage()');
 		strHtml += createMenuItem("审核中", "app-cion-menu-waitverify", 'openWaitVerifyCasePage()');
 		strHtml += createMenuItem("已结案", "app-cion-menu-close", 'openCaseClosePage()');
-		if (joinUser.userType == userType.memberSH) {
+		if (permissionFind(joinUser.permissions, userPermission.perPF)) {
 			strHtml += createMenuItem("派发中", "app-cion-menu-assign", 'openWaitAssignCasePage()');
 			strHtml += createMenuItem("撤派中", "app-cion-menu-undoassign", 'openUndoAssignCasePage()');
 		}