From a8fb7ae2dbb61a94141ed5e73d3bb2632b7b84df Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期日, 28 九月 2025 15:25:48 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao --- h5/pages.json | 14 h5/utils/config.js | 4 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java | 2 h5/pages/login/login.vue | 42 +- server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java | 1 admin/src/store/index.js | 3 h5/static/loading.gif | 0 h5/pages/index/index.vue | 1 server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java | 20 + h5/pages/appointment/appointment.vue | 678 +++++++++++++++++++++++++++++++++++++++++++++ h5/pages/loading/loading.vue | 83 +++++ h5/static/ic_fail.png | 0 admin/src/main.js | 28 + h5/pages/answer/answer.vue | 2 14 files changed, 849 insertions(+), 29 deletions(-) diff --git a/admin/src/main.js b/admin/src/main.js index 83b2a5e..a98f12b 100644 --- a/admin/src/main.js +++ b/admin/src/main.js @@ -45,10 +45,16 @@ return } await this.initRoutes() + }, + async topMenuCurrent () { + if (this.topMenuCurrent == null) { + return + } + await this.chagneRoutes() } }, methods: { - ...mapMutations(['switchCollapseMenu', 'setHomePage', 'setTopMenuCurrent', 'setTopMenuCurrent']), + ...mapMutations(['switchCollapseMenu', 'setHomePage', 'setTopMenuCurrent', 'setTopMenuCurrent','cleartagsview']), // 鍒濆鍖栨湰鍦伴厤缃� initLocalConfig () { // 鑿滃崟鐘舵�侀厤缃� @@ -79,9 +85,13 @@ }) storeTopMenus.push.apply(storeTopMenus, topList) var topCurrent = null + var tlist =[] topList.forEach(item => { - if (item.linkType === 0 && topCurrent == null) { - topCurrent = item + if (item.linkType === 0 ) { + if (topCurrent == null) { + topCurrent = item + } + tlist.push(...item.children) } }) this.setTopMenuCurrent(topCurrent) @@ -96,7 +106,7 @@ console.log('menus', this.menuData.list) storeMenus.push.apply(storeMenus, this.menuData.list) // 娣诲姞璺敱 - this.__addRouters(storeMenus) + this.__addRouters(tlist) // 404 router.addRoute({ path: '*', @@ -120,6 +130,16 @@ this.loading = false }) }, + async chagneRoutes () { + // 閲嶇疆鑿滃崟 + this.cleartagsview('/index') + console.log('menus', this.menuData.list) + // 娣诲姞璺敱 + // this.__addRouters(this.menuData.list) + if(this.topMenuCurrent.homeUrl){ + await this.$router.push({path: this.topMenuCurrent.homeUrl, query: {}}) + } + }, // 鏂板缓璺敱 __addRouters (routes, parents = []) { if (routes == null || routes.length === 0) { diff --git a/admin/src/store/index.js b/admin/src/store/index.js index f76eee9..eae17b4 100644 --- a/admin/src/store/index.js +++ b/admin/src/store/index.js @@ -1,5 +1,6 @@ import Vue from 'vue' import Vuex from 'vuex' +import router from '../router' Vue.use(Vuex) const state = { @@ -73,7 +74,7 @@ }, // 閲嶇疆鑿滃崟 resetMenus: (state) => { - state.topMenuId=null; + state.topMenuId=null state.menuData.list = [] }, // tags diff --git a/h5/pages.json b/h5/pages.json index 7d64341..4a75021 100644 --- a/h5/pages.json +++ b/h5/pages.json @@ -503,6 +503,20 @@ { "navigationBarTitleText" : "閫夋嫨琚浜�" } + }, + { + "path" : "pages/appointment/appointment", + "style" : + { + "navigationBarTitleText" : "棰勭害" + } + }, + { + "path" : "pages/loading/loading", + "style" : + { + "navigationBarTitleText" : "鎺堟潈" + } } ], "subPackages": [ diff --git a/h5/pages/answer/answer.vue b/h5/pages/answer/answer.vue index e9f232e..54723fe 100644 --- a/h5/pages/answer/answer.vue +++ b/h5/pages/answer/answer.vue @@ -412,7 +412,7 @@ }).then(res => { this.score = 0 uni.navigateTo({ - url: `/pages/userinfo/userinfo?answerId=${res.data}` + url: `/pages/appointment/appointment?answerId=${res.data}` }) }) diff --git a/h5/pages/appointment/appointment.vue b/h5/pages/appointment/appointment.vue new file mode 100644 index 0000000..8ba94ad --- /dev/null +++ b/h5/pages/appointment/appointment.vue @@ -0,0 +1,678 @@ +<template> + <view class="container"> + <view class="visitor-form"> + <view class="cell"> + <view class="title"><b>*</b>濮撳悕</view> + <view class="content"> + <input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false" + placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" /> + </view> + </view> + <view class="cell"> + <view class="title"><b>*</b>鎵嬫満鍙�</view> + <view class="content"> + <input type="number" @focus="showKeyboard = true" @blur="showKeyboard = false" class="input" maxlength="11" + placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" /> + </view> + </view> + <view class="cell"> + <view class="title"><b>*</b>璇佷欢绫诲瀷</view> + <view class="content" @click="show = true"> + <text + :style="{color: visitorData.idcardTypeName ? '#000000' : ''}">{{visitorData.idcardTypeName ? visitorData.idcardTypeName : '璇烽�夋嫨'}}</text> + <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon> + </view> + </view> + <view class="cell"> + <view class="title">璇佷欢鍙风爜</view> + <view class="content"> + <input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false" + placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="璇疯緭鍏ユ偍鐨勮瘉浠跺彿鐮�" /> + </view> + </view> + <view class="empty"></view> + <view class="cell"> + <view class="title"><b>*</b>鍏徃鍚嶇О</view> + <view class="content"> + <input class="input" maxlength="50" @focus="showKeyboard = true" @blur="showKeyboard = false" + placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="璇疯緭鍏ユ偍鐨勫叕鍙稿悕绉�" /> + </view> + </view> + <view class="cell"> + <view class="title1"> + <text class="title1_a"><b>*</b>浜鸿劯鐓х墖</text> + <text class="title1_b">1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text> + <text class="title1_b">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊</text> + </view> + <view class="content"> + <view class="content_uplaod" @click="upload('faceImg')" v-if="!visitorData.faceImgUrl"> + <u-icon name="plus" color="rgb(153, 153, 153)" size="20"></u-icon> + </view> + <view class="content_uplaod" @click="upload('faceImg')" v-else> + <image :src="visitorData.faceImgUrl" mode="widthFix"></image> + </view> + </view> + </view> + <view style="height: 20rpx; background-color: #F7F7F7;"></view> + <view class="cell"> + <view class="title"><b>*</b>琚浜�</view> + <view class="content" @click="selName"> + <text + :style="{ color: form1.receptMemberName ? '#000000' : '' }">{{form1.receptMemberName ? form1.receptMemberName : "璇烽�夋嫨"}}</text> + <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon> + </view> + </view> + <view class="cell"> + <view class="title"><b>*</b>鍏ュ洯鏃堕棿</view> + <view class="content" @click="show4 = true"> + <text + :style="{color: form1.starttime ? '#000000' : ''}">{{form1.starttime ? form1.starttime : '璇烽�夋嫨'}}</text> + <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon> + </view> + </view> + <view class="cell"> + <view class="title"><b>*</b>绂诲洯鏃堕棿</view> + <view class="content" @click="openLC"> + <text + :style="{color: form1.endtime ? '#000000' : ''}">{{form1.endtime ? form1.endtime : '璇烽�夋嫨'}}</text> + <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon> + </view> + </view> + <view class="cell"> + <view class="title"><b>*</b>鎷滆浜嬬敱</view> + <view class="content" @click="showReason = true"> + <text + :style="{color: form1.reason ? '#000000' : ''}">{{form1.reason ? form1.reason : '璇烽�夋嫨'}}</text> + <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon> + </view> + </view> + <view class="cell" v-if="form1.type == 1"> + <view class="title">鏂藉伐鍐呭</view> + <view class="content"> + <input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false" + placeholder-style="color: #999999;" maxlength="30" v-model="form1.constructionReason" placeholder="璇疯緭鍏ユ柦宸ュ唴瀹�" /> + </view> + </view> + <view class="cell"> + <view class="title">闅忚杞﹁締</view> + <view class="content" @click="openInput(1)"> + <text :style="{color: form1.carNos ? '#000000' : ''}">{{form1.carNos ? form1.carNos : '璇疯緭鍏ヨ溅鐗屽彿鐮�'}}</text> + </view> + </view> + <!-- <view class="cell"> + <view class="title">鍋ュ悍璇�<b v-if="visit === '1'">*</b></view> + <view class="content"> + <view class="content_uplaod" @click="upload('imgurl')" v-if="!visitorData.imgurlUrl"> + <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon> + </view> + <view class="content_uplaod" @click="upload('imgurl')" v-else> + <image :src="visitorData.imgurlUrl" mode="widthFix"></image> + </view> + </view> + </view> --> + </view> + <view style="width: 100%; height: 110rpx;" v-if="!showKeyboard"></view> + <view v-if="!showKeyboard" class="footer-box"> + <view class="submit-button" @click="submit">涓嬩竴姝�</view> + </view> + <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> --> + <u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirm"></u-picker> + <qf-image-cropper ref="cropper" :width="280" :height="280" :radius="0" fileType="jpg" + @crop="uploadImg"></qf-image-cropper> + <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" /> + <!-- 鍏ュ洯鏃堕棿 --> + <u-datetime-picker :show="show4" :minDate="new Date().getTime()" :formatter="formatter" mode="datetime" + @cancel="show4 = false" @confirm="setstarttime"></u-datetime-picker> + <!-- 绂诲洯鏃堕棿 --> + <u-datetime-picker v-if="form1.starttime" :show="show5" :formatter="formatter" + :minDate="formatTimeStamp(form1.starttime)" :maxDate="formatTimeStamp(form1.starttime.slice(0,10) + ' 23:59')" + mode="datetime" @cancel="show5 = false" @confirm="setendtime"></u-datetime-picker> + <u-picker keyName="title" :show="showReason" :columns="VisitReason" @confirm="selectedReason" + @cancel="showReason = false"></u-picker> + </view> +</template> + +<script> + import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue"; + import keyboardInput from "@/components/keyboard-input/keyboard-input.vue" + import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue'; + import { + mapState + } from 'vuex' + import { + uploadAvatar + } from "@/utils/config" + import { + getSystemDictData, + visitorSub, + getVisitedVisitReason, + createFk + } from '@/api' + export default { + data() { + return { + photoSrc: "", + inputType: '', + show: false, + showKeyboard: false, + visit: '', + type: '', + show4: false, + show5: false, + showReason: false, + personnel: [], + VisitReason: [], + columns: [ + [{ + name: '韬唤璇�', + id: 0 + }, { + name: '娓境璇佷欢', + id: 1 + }, { + name: '鎶ょ収', + id: 2 + }] + ], + fileList: [], + visitorData: { + userAnswerId: '', + name: '', + phone: '', + idcardType: 0, + idcardTypeName: '韬唤璇�', + idcardNo: '', + faceImg: '', + faceImgUrl: '', + imgurl: '', + imgurlUrl: '', + companyName: '' + }, + form1: { + phone1: '', + receptMemberId: '', + receptMemberName: '', + starttime: '', + endtime: '', + doors: '', + doorSelectName: '', + reason: '', + carNos: '', + type: 0 + }, + withUserList: { + name: '', + phone: '', + idcardType: '', + idcardTypeName: '', + companyName: '', + idcardNo: '', + faceImg: '', + faceImgUrl: '', + imgurl: '', + imgurlUrl: '' + }, + } + }, + components: { + tlyPictureCut, + QfImageCropper, + keyboardInput + }, + + onLoad(option) { + this.getUser() + const visitorData = uni.getStorageSync('member') + if (visitorData.faceImg) { + visitorData.faceImgUrl = visitorData.prefixUrl + visitorData.faceImg + } + if (visitorData && visitorData.name) { + this.visitorData = visitorData + } + this.visitorData.companyName = visitorData.visitCompanyName + this.visitorData.idcardNo = visitorData.idcardDecode + if (this.visitorData.idcardType === 0) { + this.visitorData.idcardTypeName = '韬唤璇�' + } else if (this.visitorData.idcardType === 1) { + this.visitorData.idcardTypeName = '娓境璇佷欢' + } else if (this.visitorData.idcardType === 2) { + this.visitorData.idcardTypeName = '鎶ょ収' + } + if (this.visitorData.imgurl) { + this.visitorData.imgurlUrl = this.visitorData.prefixUrl + this.visitorData.imgurl + } + // if (this.member ) { + // this.visitorData.name = this.member.name + // this.visitorData.phone = this.member.phone + // this.visitorData.idcardNo = this.member.idcardDecode + // this.visitorData.companyName = this.member.visitCompanyName + // this.visitorData.faceImg = this.member.faceImg + // if (this.member.faceImg) { + // this.visitorData.faceImgUrl = this.member.prefixUrl + this.member.faceImg + // } + // this.visitorData.imgurl = this.member.imgurl + // if (this.member.imgurl) { + // this.visitorData.imgurlUrl = this.member.prefixUrl + this.member.imgurl + // } + // this.visitorData.idcardType = this.member.idcardType + // if (this.member.idcardType === 0) { + // this.visitorData.idcardTypeName = '韬唤璇�' + // } else if (this.member.idcardType === 1) { + // this.visitorData.idcardTypeName = '娓境璇佷欢' + // } else if (this.member.idcardType === 2) { + // this.visitorData.idcardTypeName = '鎶ょ収' + // } + // } + this.visitorData.userAnswerId = option.answerId || '' + // this.getVisit() + // uni.$on('update', (data) => { + // this.uploadImg(data.tempFilePath) + // }) + }, + mounted() { + this.$eventBus.$on('svisitorAppSel', (option) => { + // this.$set(this.param, 'checkUserId', option.id) + // this.$set(this.param, 'applyCheckUserId', option.id) + // this.$set(this.param, 'checkorName', option.name) + + this.form1.receptMemberName = option.name + this.form1.receptMemberId = option.id + this.form1.receptMemberDepartment = option.companyName + }) + }, + methods: { + selectedReason(e) { + this.form1.reason = e.value[0].title + this.form1.type = e.value[0].constructionType + this.showReason = false + }, + // 鏌ヨ鐢ㄦ埛 + getUser() { + getVisitedVisitReason({}).then(res => { + this.VisitReason = [res.data || []] + }) + }, + setendtime(e) { + this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') + this.show5 = false + }, + formatTimeStamp(date) { + return Date.parse(new Date(`${date}`)) || Date.parse(new Date(`${date.replace(/-/g, '/')}`)) + }, + openLC() { + if (!this.form1.starttime) return uni.showToast({ + title: '璇峰厛閫夋嫨鍏ュ洯鏃堕棿', + icon: 'none' + }) + this.show5 = true + }, + setstarttime(e) { + this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM') + this.maxTime = this.form1.starttime + this.show4 = false + }, + formatter(type, value) { + if (type === 'year') { + return `${value}骞碻 + } + if (type === 'month') { + return `${value}鏈坄 + } + if (type === 'day') { + return `${value}鏃 + } + if (type === 'hour') { + return `${value}鏃禶 + } + if (type === 'minute') { + return `${value}鍒哷 + } + return value + }, + closeInput() { + this.$refs.keyboard.close() + }, + setPlate(e) { + if (this.inputType === 1) { + this.form1.carNos = e + } else if (this.inputType === 2) { + this.withUserList.carNos = e + } + this.$forceUpdate() + this.closeInput() + }, + openInput(type) { + this.inputType = type + this.$refs.keyboard.open() + }, + selName() { + uni.navigateTo({ + url: '/pages/visitorApplication/memberSel' + }) + }, + submit() { + const { + visitorData + } = this + if (!this.visitorData.name) return uni.showToast({ + title: '濮撳悕涓嶈兘涓虹┖', + icon: 'none' + }) + if (!this.visitorData.phone) return uni.showToast({ + title: '鎵嬫満鍙蜂笉鑳戒负绌�', + icon: 'none' + }) + const regExp = /^1[3456789]\d{9}$/; + if (!regExp.test(this.visitorData.phone)) return uni.showToast({ + title: '鎵嬫満鍙锋牸寮忛敊璇�', + icon: 'none' + }) + if (!String(this.visitorData.idcardType)) return uni.showToast({ + title: '璇佷欢绫诲瀷涓嶈兘涓虹┖', + icon: 'none' + }) + // if (!this.visitorData.idcardNo) return uni.showToast({ + // title: '璇佷欢鍙风爜涓嶈兘涓虹┖', + // icon: 'none' + // }) + if (this.visitorData.idcardType === 0 && this.visitorData.idcardNo) { + const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/; + if (!regex.test(this.visitorData.idcardNo)) return uni.showToast({ + title: '璇佷欢鍙风爜鏍煎紡閿欒', + icon: 'none' + }) + } + if (!this.visitorData.companyName) return uni.showToast({ + title: '鍏徃涓嶈兘涓虹┖', + icon: 'none' + }) + if (!this.visitorData.faceImg) return uni.showToast({ + title: '浜鸿劯鐓х墖涓嶈兘涓虹┖', + icon: 'none' + }) + // if (this.visit === '1') { + // if (!this.visitorData.imgurl) return uni.showToast({ + // title: '鍋ュ悍璇佷笉鑳戒负绌�', + // icon: 'none' + // }) + // } + if (!this.form1.receptMemberId) return uni.showToast({ + title: '璇峰~鍐欐湁鏁堢殑璁块棶浜�', + icon: 'none' + }) + if (!this.form1.starttime) return uni.showToast({ + title: '鍏ュ洯鏃堕棿涓嶈兘涓虹┖', + icon: 'none' + }) + if (!this.form1.endtime) return uni.showToast({ + title: '绂诲洯鏃堕棿涓嶈兘涓虹┖', + icon: 'none' + }) + if (!this.form1.doorSelectName && this.accessControl == 1) return uni.showToast({ + title: '璁块棶闂ㄧ涓嶈兘涓虹┖', + icon: 'none' + }) + if (!this.form1.reason) return uni.showToast({ + title: '鎷滆浜嬬敱涓嶈兘涓虹┖', + icon: 'none' + }) + let data = JSON.parse(JSON.stringify(this.form1)) + data.starttime = data.starttime + ':00' + data.endtime = data.endtime + ':00' + createFk({ + ...this.visitorData, + ...data, + withUserList: this.personnel + }).then(res => { + if (res.code === 200) { + uni.navigateTo({ + url: `/pages/appointmentDetails/appointmentDetails?id=${res.data}` + }) + } + }) + // uni.setStorageSync('visitorData', this.visitorData) + // uni.navigateTo({ + // url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}` + // }); + }, + getVisit() { + // 鏄惁闇�瑕� 鍋ュ悍璇� + getSystemDictData({ + dictCode: 'SYSTEM', + label: 'HEALTH_CARD' + }).then(res => { + if (res.code === 200) { + this.visit = res.data.code + } + }) + }, + uploadImg(file) { + var that = this + that.$refs.cropper.close() + uni.showLoading({ + title: '涓婁紶涓�', + mask: true + }); + uni.uploadFile({ + url: uploadAvatar, + filePath: file.tempFilePath, + name: 'file', + formData: { + folderCode: 'MEMBER_IMG', + isFace: 0 + }, + success: (uploadFileRes) => { + let res = JSON.parse(uploadFileRes.data) + if(res.code !== 200){ + return this.showToast(res.message) + } + this.visitorData.faceImg = res.data.halfPath + this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath + }, + fail: (err) => { + // this.showToast(err) + }, + complete() { + uni.hideLoading(); + } + }); + }, + deleUser(i) { + this.personnel.splice(i, 1) + }, + upload(type) { + var that = this + that.type = type + if (type === 'faceImg') { + that.$refs.cropper.chooseImage() + return + } + uni.chooseImage({ + count: 1, + success: (chooseImageRes) => { + // if (type === 'faceImg') { + // that.photoSrc = chooseImageRes.tempFilePaths[0]; + // that.$refs.tlyPictureCut.showPop(); + // } + if (type === 'imgurl') { + uni.showLoading({ + title: '涓婁紶涓�', + mask: true + }); + uni.uploadFile({ + url: uploadAvatar, + filePath: chooseImageRes.tempFilePaths[0], + name: 'file', + formData: { + folderCode: 'MEMBER_IMG' + }, + timeout: 60000, + success: (uploadFileRes) => { + let res = JSON.parse(uploadFileRes.data) + that.visitorData.imgurl = res.data.halfPath + that.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath + }, + complete() { + uni.hideLoading(); + } + }); + } + }, + fail(err) { + alert('api鎶ラ敊') + } + }); + }, + confirm(e) { + this.visitorData.idcardType = e.value[0].id + this.visitorData.idcardTypeName = e.value[0].name + this.show = false + } + } + } +</script> + +<style lang="scss"> + page { + background-color: #F7F7F7 !important; + } + + .u-upload__button { + margin: 0 !important; + } + + .content_uplaod { + width: 120rpx; + height: 120rpx; + background: #F7F7F7; + border-radius: 8rpx; + border: 2rpx solid #E5E5E5; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + } + + .content_uplaod image { + width: 100%; + height: 100%; + } + + .empty { + width: 750rpx; + height: 20rpx; + margin: 0 -30rpx; + background-color: #f7f7f7; + ; + } + + .title { + font-size: 30rpx; + font-weight: 400; + color: #222222; + display: flex; + align-items: center; + } + + .title b { + color: #E42D2D; + margin-right: 4rpx; + } + + .title1 { + display: flex; + flex-direction: column; + + .title1_a { + font-size: 30rpx !important; + font-weight: 400; + color: #222222; + display: flex; + align-items: center; + margin-bottom: 20rpx; + + b { + color: #E42D2D; + margin-right: 4rpx; + + } + } + + .title1_b { + font-size: 24rpx !important; + font-weight: 400; + color: #999999; + } + } + + .add-other { + border: 1rpx solid #4d99a8; + color: #4d99a8; + font-size: 11rpx; + padding: 0 12rpx; + height: 32rpx; + line-height: 32rpx; + width: 120rpx; + text-align: center; + border-radius: 24rpx; + margin: 20rpx auto; + } + + .footer-box { + width: 100%; + position: fixed; + bottom: 30rpx; + height: 80rpx; + display: flex; + justify-content: center; + align-items: center; + } + + .submit-button { + width: calc(100% - 60rpx); + height: 88rpx; + line-height: 88rpx; + background: #4d99a8; + border-radius: 4rpx; + color: #fff; + border-radius: 44rpx; + font-size: 32rpx; + display: flex; + align-items: center; + justify-content: center; + } +</style> + +<style lang="scss" scoped> + .popup-content { + padding: 20rpx; + height: 100%; + overflow: hidden; + display: flex; + flex-flow: column; + + .input { + border: 1rpx solid #ccc; + border-radius: 4rpx; + padding: 4rpx 12rpx; + font-size: 28rpx; + font-weight: 400; + color: #333333; + } + + .respondent-item { + padding: 10rpx; + border-bottom: 1rpx solid #eee; + cursor: pointer; + + &:hover { + background-color: #eee; + } + } + + .van-list { + flex: 1; + overflow: auto; + } + } +</style> \ No newline at end of file diff --git a/h5/pages/index/index.vue b/h5/pages/index/index.vue index 6e9fb01..7300f5f 100644 --- a/h5/pages/index/index.vue +++ b/h5/pages/index/index.vue @@ -58,6 +58,7 @@ jump(type) { switch (type) { case 1: + console.log('1') uni.navigateTo({ url: '/pages/notice/notice' }) diff --git a/h5/pages/loading/loading.vue b/h5/pages/loading/loading.vue new file mode 100644 index 0000000..335064a --- /dev/null +++ b/h5/pages/loading/loading.vue @@ -0,0 +1,83 @@ +<template> + <view class="box"> + <!-- 鍔犺浇涓� --> + <view class="loading" v-if="loading === 'loading'"> + <image src="/static/loading.gif" mode="widthFix"></image> + <text>韬唤鏍¢獙涓紝璇风◢鍚巭</text> + </view> + <!-- 澶辫触 --> + <view class="error" v-if="loading === 'error'"> + <image src="/static/ic_fail.png" mode="widthFix"></image> + <text class="title">鎺堟潈澶辫触</text> + <text class="desc">鎮ㄧ殑璐﹀彿鏆傛湭缁戝畾绯荤粺锛岃鑱旂郴绠$悊鍛�</text> + <button>閲嶆柊楠岃瘉</button> + </view> + </view> +</template> + +<script> + export default { + data() { + return { + loading: 'error' + }; + } + } +</script> + +<style lang="scss" scoped> + .box { + width: 100%; + .error { + width: 100%; + display: flex; + align-items: center; + flex-direction: column; + image { + width: 180rpx; + height: 180rpx; + margin-top: 160rpx; + } + .title { + font-weight: 500; + font-size: 36rpx; + color: #333333; + margin-top: 32rpx; + } + .desc { + font-weight: 400; + font-size: 26rpx; + color: #999999; + margin-top: 20rpx; + } + button { + width: 224rpx; + height: 76rpx; + font-weight: 400; + font-size: 28rpx; + color: #279BAA; + border-radius: 38rpx; + border: 1rpx solid #279BAA; + margin-top: 68rpx; + background-color: #ffffff; + } + } + .loading { + width: 100%; + display: flex; + align-items: center; + flex-direction: column; + image { + width: 200rpx; + height: 200rpx; + margin-top: 202rpx; + } + text { + font-weight: 500; + font-size: 36rpx; + color: #333333; + margin-top: 40rpx; + } + } + } +</style> diff --git a/h5/pages/login/login.vue b/h5/pages/login/login.vue index d198595..4a2ca65 100644 --- a/h5/pages/login/login.vue +++ b/h5/pages/login/login.vue @@ -56,27 +56,27 @@ // https://atwl.ahzyssl.com/zhyq_h5/#/pages/login/login?type=2&yw=5&ywid=b3db2072-a453-470d-8c0d-ba3b8b256530 }, onShow() { - var that = this - let url = 'https://atwl.ahzyssl.com/zhyq_h5/#/' - let code = '' - if (window.location.href.indexOf('code=') !== -1 || this.code) { - // if(window.location.href.indexOf('wdata') !== -1){ - // uni.redirectTo({ - // url: '/pages/wdata/home?code=' + - // }) - // } - const ywinfo = uni.getStorageSync('ywinfo') || {} - if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) { - this.userAuth(ywinfo.type) - } - } else { - // let url = window.location.href - const appID = 'wx173e6caf5abc718a' - let uri = encodeURIComponent(url) - let authURL = - `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base#wechat_redirect` - window.location.href = authURL - } + // var that = this + // let url = 'https://atwl.ahzyssl.com/zhyq_h5/#/' + // let code = '' + // if (window.location.href.indexOf('code=') !== -1 || this.code) { + // // if(window.location.href.indexOf('wdata') !== -1){ + // // uni.redirectTo({ + // // url: '/pages/wdata/home?code=' + + // // }) + // // } + // const ywinfo = uni.getStorageSync('ywinfo') || {} + // if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) { + // this.userAuth(ywinfo.type) + // } + // } else { + // // let url = window.location.href + // const appID = 'wx173e6caf5abc718a' + // let uri = encodeURIComponent(url) + // let authURL = + // `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base#wechat_redirect` + // window.location.href = authURL + // } }, methods: { diff --git a/h5/static/ic_fail.png b/h5/static/ic_fail.png new file mode 100644 index 0000000..c54111b --- /dev/null +++ b/h5/static/ic_fail.png Binary files differ diff --git a/h5/static/loading.gif b/h5/static/loading.gif new file mode 100644 index 0000000..6ea9db1 --- /dev/null +++ b/h5/static/loading.gif Binary files differ diff --git a/h5/utils/config.js b/h5/utils/config.js index 05ff784..70b5a4d 100644 --- a/h5/utils/config.js +++ b/h5/utils/config.js @@ -1,8 +1,8 @@ // export const baseUrl = 'zhyq_interface/' -// export const baseUrl = 'http://192.168.0.173/gateway_interface/' +export const baseUrl = 'http://192.168.1.54:10010/' // export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/' -export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' +// export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' export const app_url = 'https://atwl.ahzyssl.com/zhyq_h5/#/' diff --git a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java index edf8379..9cb6752 100644 --- a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java +++ b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java @@ -139,6 +139,7 @@ nodeVO.setType(menu.getType()); nodeVO.setLinkType(menu.getLinkType()); nodeVO.setIcon(menu.getIcon()); +// nodeVO.setHomeUrl("/index");//榛樿宸ヤ綔鍙� nodeVO.setChildren(new ArrayList<>()); rootNodes.add(nodeVO); } @@ -146,10 +147,29 @@ menus.removeIf(menu -> menu.getParentId() == null); for (SystemMenuNodeVO child : rootNodes) { this.fillChildren(child, menus); + SystemMenuNodeVO homeMenus = getHomeUrlByChild(child); + if(homeMenus!=null && homeMenus.getUrl() != null){ + child.setHomeUrl(homeMenus.getUrl()); + } } return rootNodes; } + private SystemMenuNodeVO getHomeUrlByChild( SystemMenuNodeVO child) { + if(child.getChildren()==null || child.getChildren().size() ==0){ + return null; + } + for(SystemMenuNodeVO tt : child.getChildren()){ + if(tt.getChildren()==null || tt.getChildren().size() ==0){ + return tt; + }else{ + SystemMenuNodeVO ttt = getHomeUrlByChild(tt); + return ttt; + } + } + return null; + } + @Override public void deleteById(Integer id) { List<Integer> ids = systemMenuService.findChildren(id); diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java index 9532faf..6eeb48a 100644 --- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java +++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java @@ -33,6 +33,8 @@ @ApiModelProperty(value = "鑿滃崟鍦板潃") private String url; + @ApiModelProperty(value = "绗竴涓粯璁ら〉鍦板潃") + private String homeUrl; @ApiModelProperty(value = "瀛愯彍鍗�") private List<SystemMenuNodeVO> children; diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java index f007330..1710745 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java @@ -93,6 +93,7 @@ @ExcelColumn(name="缁勫悎鍚嶇О",index = 3,width = 20) private String groupName; @ApiModelProperty(value = "瀹屾暣鍥剧墖鍦板潃 ") + @TableField(exist = false) private String imgurlFull; @ApiModelProperty(value = "瀛愰泦鍒嗙被") -- Gitblit v1.9.3