From 5affd44d0e01b62ad0bc352916ab5e2c3067baff Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Wed, 28 Feb 2024 17:50:23 +0800
Subject: [PATCH] update

---
 pages/home/index5.vue                  | 1023 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 subPackage/house/houseNumber/index.vue |   29 +
 subPackage/workbench/views/cscj.vue    |    8 
 common/setting.js                      |    4 
 4 files changed, 1,057 insertions(+), 7 deletions(-)

diff --git a/common/setting.js b/common/setting.js
index 97a0c9e..3833aec 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -10,8 +10,8 @@
 	version: '2.0.0',
 	// 开发环境接口Url
 	// devUrl: 'http://z4042833u6.wicp.vip',
-	devUrl: 'http://192.168.2.140:9528',
-	// devUrl: 'https://srgdjczzxtpt.com:2080/api',
+	// devUrl: 'http://192.168.2.140:9528',
+	devUrl: 'https://srgdjczzxtpt.com:2080/api',
 	// devUrl: 'https://kt39592615.goho.co',
 	minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
 	// minioBaseUrl: "http://192.168.0.101:9528/",
diff --git a/pages/home/index5.vue b/pages/home/index5.vue
new file mode 100644
index 0000000..5a3978f
--- /dev/null
+++ b/pages/home/index5.vue
@@ -0,0 +1,1023 @@
+<template>
+	<view class="layout">
+		<!-- <u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder @leftClick="selectBoxShow = !selectBoxShow"
+			bgColor="#017BFC">
+			<view slot="left" class="top flex">
+				<view class="top-text f-30 fw c-ff">{{curSelectSite.name?curSelectSite.name:'暂无绑定' +roleTypeName+'信息'}}
+				</view>
+				<u-icon name="arrow-down" color="#fff"></u-icon>
+			</view>
+		</u-navbar> -->
+
+		<u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder @leftClick="navToSelectSite()"
+			bgColor="#017BFC">
+			<view slot="left" class="top flex">
+				<view class="top-text f-30 fw c-ff">{{curSelectSite.name?curSelectSite.name:'暂无绑定' +roleTypeName+'信息'}}
+				</view>
+				<u-icon name="arrow-right" color="#fff"></u-icon>
+			</view>
+		</u-navbar>
+
+		<view class="swiper">
+			<u-swiper :list="bannerList" height="320rpx" radius="10"></u-swiper>
+		</view>
+		<view class="content">
+			<view class="">
+				<view class="section flex j-c-s-a a-i-c mb-20" v-if="isShowContact && curSelectSite.addressType == 1">
+					<view class="section-item" v-for="(i,k) in contactList" :key="k" v-if="i.name"
+						@click="navigatorPage(`${i.path}?id=${i.id}`)">
+						<image class="section-item-bg" :src="i.bgImg" mode="aspectFill"></image>
+						<view class="item-box">
+							<view class="f-28">{{i.title}}</view>
+							<view class="flex j-c-s-b">
+								<text class="f-22">{{i.name}}</text>
+								<u-icon :name="i.icon" @click.stop="callPhone(i.phone)"></u-icon>
+							</view>
+						</view>
+					</view>
+				</view>
+
+				<view class="block flex a-i-c j-c-s-b mb-20" v-if="roleType == 1 || roleType == 3">
+					<view @click="scan" class="block-item">
+						<image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
+						<view class="block-item-box flex a-i-c ">
+							<u-icon name="/static/icon/nav-05.png" width="65rpx" height="65rpx"></u-icon>
+							<view class="item-text flex f-d-c j-c-s-b">
+								<text class="f-24 fw">扫一扫</text>
+								<text class="f-22 opacity">场所采集</text>
+							</view>
+						</view>
+					</view>
+					<view class="block-item" @click="navigatorPage('/subPackage/user/clockIn/index')">
+						<image class="block-item-bg" src="/static/icon/nav-bg-05.png" mode="aspectFill" />
+						<view class="block-item-box flex a-i-c">
+							<u-icon name="/static/icon/nav-06.png" width="65rpx" height="65rpx"></u-icon>
+							<view class="item-text flex f-d-c j-c-s-b">
+								<text class="f-24 fw">打卡登记</text>
+								<text class="f-22 opacity">在线打卡</text>
+							</view>
+						</view>
+					</view>
+					<view class="block-item" @click="navigatorPage('/subPackage/statistics/index')">
+						<image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
+						<view class="block-item-box flex a-i-c">
+							<u-icon name="/static/icon/nav-12.png" width="65rpx" height="65rpx"></u-icon>
+							<view class="item-text flex f-d-c j-c-s-b">
+								<text class="f-24 fw">驾驶舱</text>
+								<text class="f-22 opacity">数据统计</text>
+							</view>
+						</view>
+					</view>
+				</view>
+
+				<!-- <view class="nav bgc-ff" v-if="liveList.length || roleType == 2">
+					<u-grid :border="false" col="4">
+						<block v-if="liveList.length">
+							<u-grid-item @click.native="navigatorPage(i.path)" v-for="(i,k) in liveList" :key="k">
+								<view class="nav-item flex f-d-c a-i-c">
+									<u-icon :name="i.pictureImg" width="80rpx" height="80rpx"></u-icon>
+									<text class="nav-item-text f-26 mt-20">{{i.name}}</text>
+								</view>
+							</u-grid-item>
+						</block>
+						<block v-if="roleType == 2">
+							<u-grid-item @click="navigatorPage(i.path)" v-for="(i,k) in communityList" :key="k">
+								<view class="nav-item flex f-d-c a-i-c">
+									<u-icon :name="i.icon" width="80rpx" height="80rpx"></u-icon>
+									<text class="nav-item-text f-26  mt-10">{{i.title}}</text>
+								</view>
+							</u-grid-item>
+						</block>
+					</u-grid>
+				</view> -->
+
+				<view class="nav bgc-ff">
+					<u-tabs :list="tabs" @click="changeTabs"></u-tabs>
+					<!-- <u-grid-item @click="navigatorPage(i.path)" v-for="(i,k) in communityList" :key="k">
+						<view class="nav-item flex f-d-c a-i-c">
+							<u-icon :name="i.icon" width="80rpx" height="80rpx"></u-icon>
+							<text class="nav-item-text f-26  mt-10">{{i.title}}</text>
+						</view>
+					</u-grid-item> -->
+				</view>
+
+
+			</view>
+
+
+
+
+
+			<view class="bgc-ff p-20 mb-20 pb-20" v-if="isShowHouse">
+				<caption-row title="楼盘表" />
+				<view class="flex flex-wrap">
+					<view class="cell bgc-main flex a-i-c" v-for="(item, index) in houseDataList.slice(0, 6)"
+						@click.native="pushPage(item)" :key="index">
+						<u-icon name="/static/icon/floor.png" width="32rpx" height="32rpx"></u-icon>
+						<text class="cell-text f-26 c-ff">{{item.title}}</text>
+					</view>
+				</view>
+			</view>
+
+			<view class="bgc-ff mb-20 p-20 pb-20" v-if="jobList.length">
+				<caption-row title="工作台" />
+				<u-grid :border="false" col="4">
+					<u-grid-item @click="navigatorPage(item.path)" v-for="(item, index) in jobList" :index="index"
+						:key="index" :customStyle="{paddingTop:20+'rpx'}">
+						<view class="grid-item flex f-d-c a-i-c" :style="{background:item.background}">
+							<u-icon :name="item.pictureImg" width="60rpx" height="60rpx"></u-icon>
+							<text class="grid-text f-24 fw mt-10">{{item.name}}</text>
+						</view>
+					</u-grid-item>
+				</u-grid>
+			</view>
+
+			<!-- <view class="bgc-ff mb-20 p-20 pb-20" v-if="(roleType == 2) && (curSelectSite.addressType == 2)">
+				<caption-row title="工作台" />
+				<u-grid :border="false" col="4">
+					<u-grid-item @click="navigatorPage('/subPackage/workbench/views/editExamine')"
+						:customStyle="{paddingTop:20+'rpx'}">
+						<view class="grid-item flex f-d-c a-i-c"
+							style="background:linear-gradient(133deg, #F9FAFE 0%, rgba(249,250,254,0) 100%)">
+							<u-icon name="/static/icon/menu-05.png" width="60rpx" height="60rpx"></u-icon>
+							<text class="grid-text f-24 fw mt-10">场所维护</text>
+						</view>
+					</u-grid-item>
+					<u-grid-item @click="navToSiteList()" :customStyle="{paddingTop:20+'rpx'}">
+						<view class="grid-item flex f-d-c a-i-c"
+							style="background:linear-gradient(133deg, #F9FAFE 0%, rgba(249,250,254,0) 100%)">
+							<u-icon name="/static/icon/menu-02.png" width="60rpx" height="60rpx"></u-icon>
+							<text class="grid-text f-24 fw mt-10">场所任务</text>
+						</view>
+					</u-grid-item>
+				</u-grid>
+			</view> -->
+
+			<view class="p-20 bgc-ff mb-20" v-if="isShowNotice">
+				<caption-row title="通知公告" :is-link="true" url="/subPackage/article/list" />
+				<notice-list :data="notice" />
+			</view>
+
+			<u-picker :title="roleTypeName" :defaultIndex="selectSiteIndex" :closeOnClickOverlay="true"
+				@close="selectBoxShow = false" :show="selectBoxShow" keyName="name" ref="uPicker" :columns="siteColumns"
+				@confirm="confirmSite" @change="changeSite" @cancel="selectBoxShow = false"></u-picker>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import {
+		getFuncList,
+		getHouseList
+	} from "@/api/doorplateAddress/doorplateAddress";
+
+	import {
+		getPage
+	} from "@/api/article/article";
+	import {
+		getBannerList,
+		getContact,
+		getQrCodeDetail
+	} from "@/api/system/index"
+	import {
+		minioBaseUrl
+	} from "@/common/setting"
+	import noticeList from "@/components/noticeList/noticeList";
+	import captionRow from "@/components/caption/caption.vue"
+
+	import {
+		getPublicSecurityDetail
+	} from "@/api/grid/grid.js"
+
+	export default {
+		components: {
+			noticeList,
+			captionRow
+		},
+		data() {
+			return {
+				jobList: [],
+				roleType: 2, // 1网格员/系统管理员 、  2居民   3民警
+				roleTypeName: "街道社区网格",
+				selectBoxShow: false,
+				siteColumns: [],
+				curSelectSite: {
+					addressType: 1
+				},
+				columnData: [],
+				houseDataList: [{
+					title: '-',
+					useSlot: true
+				}],
+				menuList: [],
+				curHouseCode: '',
+				notice: [],
+				selectSiteIndex: [0, 0],
+				liveList: [], //生活菜单
+				contactList: [], //便民服务联系方式
+				isShowHouse: false, //显示楼盘表
+				isShowNotice: true, //显示通知公告
+				isShowContact: false,
+				bannerList: [],
+				navList: [{
+						title: "物业",
+						name: "",
+						icon: "/static/icon/tel-green.png",
+						bgImg: "/static/icon/nav-bg-01.png",
+						phone: ""
+					},
+					{
+						title: "综治网格",
+						name: "",
+						icon: "/static/icon/tel-orange.png",
+						bgImg: "/static/icon/nav-bg-02.png",
+						phone: ""
+					},
+					{
+						title: "公安网格",
+						name: "",
+						icon: "/static/icon/tel-blue.png",
+						bgImg: "/static/icon/nav-bg-03.png",
+						phone: ""
+					},
+				],
+				communityList: [{
+						title: "选举调查",
+						icon: "/static/icon/nav-14.png",
+						path: "/subPackage/article/communityList?type=1"
+
+					},
+					{
+						title: "公益报名",
+						icon: "/static/icon/nav-13.png",
+						path: "/subPackage/article/signUpList?type=0"
+
+					},
+					{
+						title: "公共收益",
+						icon: "/static/icon/nav-15.png",
+						path: "/subPackage/article/list?type=1"
+
+					}
+				],
+
+				tabs: [{
+						name: '公众服务',
+						list: [{
+								name: "公共报事"
+							},
+							{
+								name: "便民服务"
+							},
+						]
+					}, {
+						name: '警务服务',
+						hasPlaceMenu: true,
+						list: [{
+								name: "取保候审"
+							},
+							{
+								name: "二手交易"
+							},
+							{
+								name: "消防自查"
+							}
+
+						]
+					}, {
+						name: '生活服务',
+						list: [{
+								name: "物业缴费"
+							},
+							{
+								name: "租客上报"
+							}
+						]
+					}, {
+						name: '企业服务',
+						list: [{
+								name: "场所维护"
+							},
+							{
+								name: "企业商户上报"
+							},
+							{
+								name: "场所任务"
+							}
+
+						]
+					},
+					{
+						name: '社区服务',
+						list: [{
+								title: "选举调查",
+								icon: "/static/icon/nav-14.png",
+								path: "/subPackage/article/communityList?type=1"
+
+							},
+							{
+								title: "公益报名",
+								icon: "/static/icon/nav-13.png",
+								path: "/subPackage/article/signUpList?type=0"
+
+							},
+							{
+								title: "公共收益",
+								icon: "/static/icon/nav-15.png",
+								path: "/subPackage/article/list?type=1"
+
+							}
+
+						]
+					}
+				]
+
+			}
+		},
+
+		onLoad() {
+			this.getBanner();
+			this.init()
+			uni.$on('refresh', () => {
+				this.selectSiteIndex = [0, 0]
+				this.curSelectSite = {
+					addressType: 1
+				}
+				this.init()
+			})
+			//选择位置刷新楼盘表
+			uni.$on('refreshPage', (val) => {
+				console.log("refreshPage=>", val);
+				this.curSelectSite = val
+				this.getHouseDataList(val.id)
+				this.curHouseCode = this.curSelectSite.houseCode
+				uni.setStorageSync("curHouseCode", this.curSelectSite.houseCode)
+			})
+		},
+
+		onShareAppMessage() {
+
+		},
+
+		computed: {
+			hasMenu() {
+				return (name) => {
+					let resultArr = this.getMenu(name, this.menuList)
+					if (resultArr.length) {
+						return resultArr
+					} else {
+						return []
+					}
+				}
+			}
+		},
+
+		watch: {
+			'curSelectSite.id': {
+				handler(newVal, oldVal) {
+					if (newVal) {
+						this.$store.commit("setSiteInfo", this.curSelectSite)
+					}
+				},
+				deep: true,
+				immediate: true
+			},
+
+			'curSelectSite.addressType': {
+				handler(newVal, oldVal) {
+					if (newVal) {
+						this.$store.dispatch("getMenuList").then(res => {
+							this.getMenuList()
+						});
+					}
+				},
+				deep: true,
+				// immediate: true
+			}
+		},
+		// onPullDownRefresh() {
+		// 	this.$store.dispatch("getMenuList").then(res => {
+		// 		this.getMenuList()
+		// 	});
+		// 	setTimeout(() => {
+		// 		uni.stopPullDownRefresh();
+		// 	}, 300)
+		// },
+
+		methods: {
+
+
+			changeTabs(item) {
+				console.log(item);
+				// let list = item.list;
+				// for (let i of list) {
+
+				// }
+			},
+
+			//初始化
+			init() {
+				this.selectRole = uni.getStorageSync("activeRole")
+				this.getMenuList()
+				this.getSiteList()
+				this.getNoticeList()
+			},
+
+			getBanner() {
+				getBannerList({
+					current: 1,
+					size: 5
+				}).then(res => {
+					let data = res.data.records;
+					if (data.length) {
+						for (let i of data) {
+							i.url = `${minioBaseUrl}${i.url}`
+						}
+						this.bannerList = data;
+					}
+				})
+			},
+
+			getContactList() {
+				getContact({
+					houseCode: uni.getStorageSync("curHouseCode")
+				}).then(res => {
+					let data = res.data;
+					this.contactList = this.navList;
+					if (data.wg) {
+						this.contactList[1].name = data.wg.name;
+						this.contactList[1].phone = data.wg.phone
+						this.contactList[1].path = "/subPackage/grid/comprehensive";
+						this.contactList[1].id = data.wg.code;
+					} else {
+						this.contactList[1].name = "";
+					}
+					if (data.wy) {
+						this.contactList[0].name = data.wy.name;
+						this.contactList[0].phone = data.wy.phone;
+						this.contactList[0].path = "/subPackage/grid/tenement";
+						this.contactList[0].id = data.wy.code;
+					} else {
+						this.contactList[0].name = "";
+					}
+					if (data.ga) {
+						this.contactList[2].name = data.ga.name;
+						this.contactList[2].phone = data.ga.phone;
+						this.contactList[2].path = "/subPackage/grid/publicSecurity";
+						this.contactList[2].id = data.ga.code;
+					} else {
+						this.contactList[2].name = "";
+					}
+				})
+			},
+
+			callPhone(phone) {
+				uni.makePhoneCall({
+					phoneNumber: phone
+				})
+			},
+
+			async getNoticeList() {
+				const param = {
+					size: 5,
+					current: 1,
+					houseCode: uni.getStorageSync("siteInfo").houseCode
+				}
+				const res = await getPage(param)
+				this.notice = res.data.records
+			},
+
+			//获取场所列表
+			async getSiteList() {
+				let type = null
+				let roleName = this.selectRole.roleName
+				if (roleName == '网格员' || roleName == '系统管理员') {
+					type = 1
+					this.roleType = 1;
+					this.roleTypeName = "街道社区网格"
+				} else if (roleName == '居民') {
+					type = 2
+					this.roleType = 2
+					this.roleTypeName = "居民"
+				} else if (roleName == '民警') {
+					type = 1
+					this.roleType = 3
+					this.roleTypeName = "街道社区"
+				}
+				const res = await getFuncList(type, roleName)
+				this.columnData = res.data;
+				let data = res.data
+				this.siteColumns = []
+				this.buildSiteColumn(data, 0)
+			},
+
+			buildSiteColumn(dataList, index) {
+				if (dataList.length > 0) {
+					this.siteColumns[index] = dataList
+					if (dataList[0].children && dataList[0].children.length > 0) {
+						this.curSelectSite = dataList[0].children[0];
+						this.getHouseDataList(dataList[0].children[0].id)
+						this.buildSiteColumn(dataList[0].children, index + 1)
+					} else {
+						this.curSelectSite = dataList[0];
+					}
+					this.curHouseCode = this.curSelectSite.id
+					uni.setStorageSync("curHouseCode", this.curSelectSite.id)
+				}
+			},
+
+
+			// 获取楼盘
+			async getHouseDataList(code) {
+				const param = {
+					type: 1,
+					code: code,
+					roleName: uni.getStorageSync('activeRole').roleName
+				}
+				const res = await getHouseList(param)
+				res.data.forEach(item => {
+					item.title = item.name
+					item.useSlot = true
+					delete item.name
+				})
+				this.houseDataList = res.data || [{
+					title: '-',
+					useSlot: true
+				}]
+			},
+
+			changeSite(e) {
+				const {
+					columnIndex,
+					value,
+					values, // values为当前变化列的数组内容
+					index,
+					// 微信小程序无法将picker实例传出来,只能通过ref操作
+					picker = this.$refs.uPicker
+				} = e
+				// 当第一列值发生变化时,变化第二列(后一列)对应的选项
+				if (columnIndex === 0 && this.columnData.length > 0) {
+					// picker为选择器this实例,变化第二列对应的选项
+					picker.setColumnValues(1, this.columnData[index])
+					// this.siteColumns[1] = this.columnData[index].children
+					this.$set(this.siteColumns, 1, this.columnData[index].children)
+				};
+			},
+			// 回调参数为包含columnIndex、value、values
+			confirmSite(e) {
+				console.log('confirm', e)
+				this.selectSiteIndex = e.indexs;
+				this.curSelectSite = e.value[e.value.length - 1]
+				this.selectBoxShow = false
+				this.getHouseDataList(e.value[1]?.id)
+				this.curHouseCode = e.value[0].id
+				console.log("curSite=>", this.curSelectSite);
+			},
+			getMenu(menuName) {
+				let list = [];
+				for (let i of this.menuList) {
+					if (i.name == menuName) {
+						if (i.children && i.children.length) {
+							list = i.children;
+							break;
+						}
+					}
+				}
+				return list;
+			},
+
+			//获取首页菜单
+			getMenuList() {
+				this.menuList = uni.getStorageSync("menu")
+				this.liveList = this.setLiveMenu(this.hasMenu('生活'));
+				this.jobList = this.hasMenu('工作台')
+				if (this.menuList.length) {
+					this.getContactMenu();
+					this.getHouseMenu();
+					this.getNoticeMenu();
+				}
+				setTimeout(() => {
+					if (this.jobList.length) {
+						let taskList = this.jobList.filter(item => item.name == "我的任务")
+						if (taskList.length) {
+							uni.setStorageSync("taskMenu", taskList[0].children);
+						} else {
+							uni.setStorageSync("taskMenu", []);
+						}
+					} else {
+						uni.setStorageSync("taskMenu", []);
+					}
+				}, 200)
+			},
+
+			getContactMenu() {
+				let list = [];
+				list = this.menuList.filter(item => item.name == "快捷拨号")
+				this.isShowContact = list.length ? true : false;
+				if (list.length) {
+					this.getContactList()
+				}
+			},
+
+			getHouseMenu() {
+				let list = [];
+				list = this.menuList.filter(item => item.name == "楼盘表")
+				this.isShowHouse = list.length ? true : false;
+			},
+
+			getNoticeMenu() {
+				let list = [];
+				list = this.menuList.filter(item => item.name == "通知公告")
+				this.isShowNotice = list.length ? true : false;
+				if (list.length) {
+					this.getNoticeList()
+				}
+			},
+
+			setLiveMenu(arr) {
+				if (arr.length) {
+					let index = this.getLiveMenuItem(arr, 1)
+					let index2 = this.getLiveMenuItem(arr, 2)
+					if (this.curSelectSite.addressType == 1) {
+						if (index != -1) {
+							arr.splice(index, 1)
+							index = this.getLiveMenuItem(arr, 1)
+							index2 = this.getLiveMenuItem(arr, 2)
+						}
+						if (index2 == -1 && this.roleType == 2) {
+							arr.push({
+								name: "租客上报",
+								path: "/subPackage/bs/views/zhsb",
+								pictureImg: "/static/icon/nav-04.png"
+							})
+							index = this.getLiveMenuItem(arr, 1)
+							index2 = this.getLiveMenuItem(arr, 2)
+						}
+					} else {
+						if (index == -1) {
+							arr.unshift({
+								name: "标签报事",
+								path: "/subPackage/label/index",
+								pictureImg: "/static/icon/nav-11.png"
+							})
+							index = this.getLiveMenuItem(arr, 1)
+							index2 = this.getLiveMenuItem(arr, 2)
+						}
+						if (index2 != -1) {
+							arr.splice(index2, 1)
+							index = this.getLiveMenuItem(arr, 1)
+							index2 = this.getLiveMenuItem(arr, 2)
+						}
+					}
+				}
+				return arr;
+			},
+
+			getLiveMenuItem(arr, type) {
+				if (type == 1) {
+					let index = arr.findIndex(item => item.name == "标签报事")
+					return index;
+				} else {
+					let index2 = arr.findIndex(item => item.name == "租户上报")
+					return index2
+				}
+			},
+
+			// 页面跳转
+			pushPage(item) {
+				const {
+					id,
+					title,
+					addressType
+				} = item;
+				if (id !== void 0) {
+					let url = `/subPackage/house/list/index?id=${id}&title=${title}&addressType=${addressType}`
+					this.$u.func.globalNavigator(url, "navTo")
+				}
+			},
+
+			navTo() {
+				if (this.curHouseCode === '') {
+					uni.showToast({
+						title: "请选择地址",
+						icon: "error"
+					})
+					return
+				}
+				this.$u.func.globalNavigator(`/subPackage/bs/views/zhsb?houseCode=${this.curHouseCode}`, "navTo")
+			},
+
+			navigatorPage(path) {
+				if (path) {
+					if ((path == '/subPackage/bs/views/zhsb' || path == '/subPackage/bs/views/repair') && this
+						.curHouseCode === '') {
+						uni.showToast({
+							title: "尚无绑定房屋信息",
+							icon: "error"
+						})
+					} else if (path == '/subPackage/workbench/views/cscj') {
+						this.$u.func.globalNavigator(path, "navTo")
+					} else {
+						this.$u.func.globalNavigator(`${path}?houseCode=${this.curHouseCode}`, "navTo")
+					}
+				} else {
+					uni.showToast({
+						title: "功能开发中~",
+						icon: "none"
+					})
+				}
+			},
+
+			navToSelectSite() {
+				this.$u.func.globalNavigator('selectSite', "navTo")
+			},
+
+			//扫一扫
+			scan() {
+				const that = this
+				uni.scanCode({
+					success: function(res) {
+						console.log("扫码结果", res)
+						let eventType = 0;
+						let obj = that.getUrlParams(res.result)
+						console.log(obj)
+						if (!that.isLogin) {
+							let data = res.data;
+							that.$u.func.globalNavigator(
+								`/subPackage/bs/views/danger?id=${obj.stdId}`, "navTo")
+							return
+						}
+
+						if (obj.stdId == "3C77B40EFC5F4C899AA74BEE747D9DF1") {
+							eventType = 1;
+							that.$u.func.globalNavigator(
+								`/subPackage/house/houseNumber/index?stdId=${obj.stdId}&eventType=${eventType}`,
+								"navTo")
+						} else if (obj.stdId == "CDF5528D617342228F3C84EF5C3C8780") {
+							eventType = 2;
+							that.$u.func.globalNavigator(
+								`/subPackage/house/houseNumber/index?stdId=${obj.stdId}&eventType=${eventType}`,
+								"navTo")
+						} else {
+							that.getHouseType(obj.stdId);
+						}
+
+						//"3C77B40EFC5F4C899AA74BEE747D9DF1"
+						// let url = "/subPackage/workbench/views/cscj?stdId=" + obj.stdId
+						// let url = "/subPackage/workbench/views/cscj?houseCode=" + obj.stdId
+						// let url = `/subPackage/house/houseNumber/index?stdId=${obj.stdId}`
+						// that.$u.func.globalNavigator(url, "navTo")
+					}
+				});
+			},
+
+			getUrlParams(url) {
+				// 通过 ? 分割获取后面的参数字符串
+				let urlStr = url.split('?')[1]
+				// 创建空对象存储参数
+				let obj = {};
+				// 再通过 & 将每一个参数单独分割出来
+				let paramsArr = urlStr.split('&')
+				for (let i = 0, len = paramsArr.length; i < len; i++) {
+					// 再通过 = 将每一个参数分割为 key:value 的形式
+					let arr = paramsArr[i].split('=')
+					obj[arr[0]] = arr[1];
+				}
+				return obj
+			},
+
+			getHouseType(code) {
+				// getPublicSecurityDetail
+				getQrCodeDetail({
+					roleName: uni.getStorageSync("activeRole").roleName,
+					addressCode: code,
+				}).then(res => {
+
+					let {
+						isJur,
+						doorplateType,
+						addressLevel,
+						aoiName,
+						addressName,
+						neiName,
+						buildingName,
+						unitName,
+						aoiCode,
+						neiCode,
+						unitCode,
+						buildingCode
+					} = res.data;
+
+
+
+					if (isJur == 1) {
+						if (doorplateType == "户室牌") {
+							this.$u.func.globalNavigator(
+								`/subPackage/house/roomDetails/index?id=${code}&from=scan`, "navTo")
+						} else if (doorplateType == "中门牌") {
+							if (addressLevel == 4) { //自建房
+								this.$u.func.globalNavigator(
+									`/subPackage/house/roomDetails/detail?code=${code}`, "navTo")
+							} else { //商铺
+								this.$u.func.globalNavigator(
+									`/subPackage/house/houseNumber/index?stdId=${code}`, "navTo")
+							}
+						} else if (doorplateType == "楼幢牌") {
+							let url = "/subPackage/house/family/index"
+							this.$u.func.globalNavigator(
+								`${url}?id=${code}&address=${addressName}&neiName=${neiName}&housingName=${aoiName}&buildingName=${buildingName}&buildingCode=${buildingCode}&aoiCode=${aoiCode}&neiCode=${neiCode}`,
+								"navTo")
+						} else if (doorplateType == "单元牌") {
+							let url = "/subPackage/house/family/index"
+							this.$u.func.globalNavigator(
+								`${url}?id=${code}&address=${addressName}&neiName=${neiName}&housingName=${aoiName}&buildingName=${buildingName}&unitName=${unitName}&unitCode=${unitCode}&neiCode=${neiCode}&buildingCode=${buildingCode}`,
+								"navTo")
+						} else if (doorplateType == "大门牌") {
+							this.$u.func.globalNavigator(
+								`/subPackage/house/list/index?id=${code}&title=${aoiName}&neiName=${neiName}&address=${addressName}&neiCode=${neiCode}&aoiCode=${aoiCode}`,
+								"navTo")
+						} else if (doorplateType == "小门牌") {
+							this.$u.func.globalNavigator(
+								`/subPackage/house/houseNumber/index?stdId=${code}`, "navTo")
+						}
+					} else {
+						uni.showModal({
+							title: "提示!",
+							content: "该区域不是您管辖范围",
+							showCancel: false
+						})
+					}
+				})
+			},
+
+			//场所任务跳转 
+			navToSiteList() {
+				let {
+					houseCode
+				} = uni.getStorageSync("siteInfo")
+				uni.navigateTo({
+					url: `/subPackage/workbench/views/audit?code=${houseCode}&from=index`
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		color: #333;
+		width: 100%;
+		height: 100%;
+		background-color: #f5f5f5;
+	}
+
+	.layout {
+		width: 100%;
+		height: 100%;
+	}
+
+	.top {
+		width: 530rpx;
+
+		.top-text {
+			max-width: 85%;
+			margin-right: 20rpx;
+			white-space: nowrap;
+			overflow: hidden;
+			text-overflow: ellipsis;
+		}
+	}
+
+	.swiper {
+		width: 100%;
+		height: 340rpx;
+		background: linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%);
+		padding: 0 30rpx;
+		box-sizing: border-box;
+	}
+
+	.content {
+		padding: 0 30rpx;
+	}
+
+	// .grid {
+	// 	margin-top: 20rpx;
+	// 	margin-bottom: 10rpx;
+	// }
+	.nav {
+		padding: 10rpx 0;
+		margin-bottom: 20rpx;
+		border-radius: 10rpx;
+
+		.nav-item {
+			padding: 10rpx 0;
+		}
+
+		.nav-item-text {
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #585b61;
+		}
+	}
+
+
+	.section {
+		.section-item {
+			width: 216rpx;
+			height: 120rpx;
+			position: relative;
+		}
+
+		.section-item-bg {
+			width: 216rpx;
+			height: 120rpx;
+		}
+
+		.item-box {
+			width: 216rpx;
+			height: 120rpx;
+			position: absolute;
+			top: 0;
+			left: 0;
+			padding: 20rpx 20rpx 0;
+			box-sizing: border-box;
+		}
+	}
+
+
+
+	.block {
+		.block-item {
+			position: relative;
+
+		}
+
+		.block-item,
+		.block-item-bg,
+		.block-item-box {
+			width: 220rpx;
+			height: 150rpx;
+			border-radius: 10rpx;
+		}
+
+		.block-item-box {
+			padding: 0 12rpx;
+			box-sizing: border-box;
+			position: absolute;
+			top: 0;
+			left: 0;
+
+		}
+
+		.item-text {
+			height: 65rpx;
+			margin-left: 20rpx;
+			color: #fff;
+		}
+
+		.opacity {
+			opacity: .4;
+		}
+	}
+
+	.cell {
+		padding: 0 16rpx;
+		height: 64rpx;
+		border-radius: 8rpx;
+		margin-right: 20rpx;
+		margin-top: 30rpx;
+
+		.cell-text {
+			margin-left: 16rpx;
+		}
+	}
+
+	.grid-item {
+		width: 153rpx;
+		height: 153rpx;
+		border-radius: 16rpx 16rpx 16rpx 16rpx;
+		justify-content: center;
+	}
+
+	.row {
+		width: 100%;
+		margin: 30rpx 0;
+
+		.row-item {
+			width: 330rpx;
+			height: 134rpx;
+			box-shadow: 0rpx 10rpx 10rpx 0rpx rgba(0, 0, 0, 0.02);
+			border-radius: 16rpx 16rpx 16rpx 16rpx;
+		}
+	}
+
+	.p-20 {
+		padding: 0 20rpx;
+		border-radius: 10rpx;
+	}
+
+	.pb-20 {
+		padding-bottom: 20rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/house/houseNumber/index.vue b/subPackage/house/houseNumber/index.vue
index 1c4debd..197f395 100644
--- a/subPackage/house/houseNumber/index.vue
+++ b/subPackage/house/houseNumber/index.vue
@@ -340,7 +340,8 @@
 					url: prodUrl + "/blade-resource/oss/endpoint/put-file",
 					header: {},
 				},
-				signatureUrl: ""
+				signatureUrl: "",
+				info: {}
 			}
 		},
 		async onLoad(option) {
@@ -422,6 +423,7 @@
 					return
 				}
 				if (data) {
+					this.info = data;
 					this.placeName = data.placeName;
 					const doorplateAddressEntity = data?.doorplateAddressEntity || {}
 					const placePoiLabelVOList = data?.placePoiLabelVOList || {}
@@ -613,6 +615,31 @@
 			},
 
 			navToInspect() {
+				if (!this.info.principa) {
+					this.$showTips("请先完善场所信息")
+					return
+				}
+				if (!this.info.principal_phone) {
+					this.$showTips("请先完善场所信息")
+					return
+				}
+				if (!this.info.place_name) {
+					this.$showTips("请先完善场所信息")
+					return
+				}
+				if (!this.info.image_urls) {
+					this.$showTips("请先完善场所信息")
+					return
+				}
+				if (!this.info.location) {
+					this.$showTips("请先完善场所信息")
+					return
+				}
+				if (!this.info.principal_id_card) {
+					this.$showTips("请先完善场所信息")
+					return
+				}
+
 				uni.navigateTo({
 					url: `/subPackage/house/houseNumber/siteInspect?code=${this.stdId}&name=${this.placeName}`
 				})
diff --git a/subPackage/workbench/views/cscj.vue b/subPackage/workbench/views/cscj.vue
index a4ee605..947fb53 100644
--- a/subPackage/workbench/views/cscj.vue
+++ b/subPackage/workbench/views/cscj.vue
@@ -308,18 +308,18 @@
 						message: '是否九小场所',
 						trigger: ['blur', 'change']
 					},
-					'form.placeName': {
+					placeName: [{
 						type: 'string',
 						required: true,
 						message: '请输入场所名称',
 						trigger: ['blur', 'change']
-					},
-					'form.label': {
+					}],
+					label: [{
 						type: 'string',
 						required: true,
 						message: '请选择标签',
 						trigger: ['blur', 'change'],
-					},
+					}],
 					'form.username': {
 						type: 'string',
 						required: true,

--
Gitblit v1.9.3