Bläddra i källkod

会议室预约修改

zouling 11 månader sedan
förälder
incheckning
13b10350af

+ 8 - 0
api/mine/order.js

@@ -112,6 +112,14 @@ export function getVideoCloseDz(data) {
    'data':data
   })
 }
+// 开关闸记录-列表
+export function getDoorList(data) {
+  return request({
+   'url': '/system/door/list',
+   'method': 'get',
+   'data':data
+  })
+}
 // 设备列表接口
 export function getCameraVideo(data) {
   return request({

+ 8 - 0
api/mine/work.js

@@ -15,6 +15,14 @@ export function getRoomNoList(data) {
 	'data':data
   })
 }
+// 列表-会议室预约查询当前时间之后的预约 system:order:listNoPage
+export function getRoomtimeNoList(data) {
+  return request({
+    'url': '/conferenceOrder/listNoPage',
+    'method': 'get',
+	'data':data
+  })
+}
 // 列表-会议室预约 system:order:list
 export function getRoomyyList(data) {
   return request({

+ 1 - 1
components/footer/footer.vue

@@ -28,7 +28,7 @@
 				footlist:[
 					// limit:'idcard:idcard:list',
 					{module:'home',title:'首页',img:"imga",icon_checked:require('@/static/images/tabbar/home_.png'),icon_nochecked:require('@/static/images/tabbar/home.png')},
-					{module:'video',title:'视频',img:"imgb",icon_checked:require('@/static/images/tabbar/video_.png'),icon_nochecked:require('@/static/images/tabbar/video.png'),},
+					{module:'video',title:'门禁',img:"imgb",icon_checked:require('@/static/images/tabbar/video_.png'),icon_nochecked:require('@/static/images/tabbar/video.png'),},
 					{module:'mine',title:'我的',img:"imga",icon_checked:require('@/static/images/tabbar/mine_.png'),icon_nochecked:require('@/static/images/tabbar/mine.png')},
 					],
 				color_checked :'161616',

+ 5 - 3
components/zb-table/all.js

@@ -1,7 +1,9 @@
 export const column1 = [
-    { type:'index', label: '序号',align:'center',fixed:true,},
-    { name: 'exit', label: '出入口',align:'center',align:'center',emptyString:'--' },
-    { name: 'time', label: '开门时间',align:'center',},
+    // { type:'index', label: '序号',align:'center',fixed:true,},
+    { name: 'entranceGuardName', label: '门禁名称',align:'center',align:'center',emptyString:'--' },
+    { name: 'type', label: '开门类型',align:'center',type:"format",key:"kgmlist"},
+    { name: 'controlsTime', label: '开/关门时间',align:'center',},
+    { name: 'pictureUrl', label: '抓拍图片',align:'center',type:"img",},
     // { name: 'sex', label: '性别',filters:{0:'男',1:'女'}},
  //    { name: 'sx', label: '数学',sorter:true },
  //    { name: 'yy', label: '英语',sorter:true },

+ 51 - 10
components/zb-table/zb-tables.vue

@@ -106,6 +106,10 @@
 	                      </view>
 	                    </view>
 	                  </template>
+					<!-- 格式化处理 -->
+					<template v-else-if="ite.type==='format'">
+						<view>{{kayType(itemFilter(item,ite),parameter[ite.key])}}</view>
+					</template>
                     <template v-else-if="ite.type==='selection'">
                       <view class="checkbox-item">
                         <tableCheckbox @checkboxSelected="(e)=>checkboxSelected(e,item)" :cellData="item" :checked="item.checked"/>
@@ -116,11 +120,17 @@
                     </template>
                   <template v-else-if="ite.type==='img'">
                     <view class="checkbox-item">
-                      <image
+						<block v-if="item[ite.name]" >
+							<image v-for="(pite,pidx) in getPhotoFn(item[ite.name])" :key="pidx"
+							    @click.stop="previewImage(getPhotoFn(item[ite.name]),pite,pidx)"
+							    :show-menu-by-longpress="false"
+							    :src="pite" style="width: 80rpx;height:60rpx; " mode="aspectFit"></image>
+						</block>
+                      <!-- <image
                     @click.stop="previewImage(item,item[ite.name],index)"
                     v-if="item[ite.name]"
                     :show-menu-by-longpress="false"
-                    :src="item[ite.name]" style="width: 80rpx;height:60rpx; " mode="aspectFit"></image>
+                    :src="item[ite.name]" style="width: 80rpx;height:60rpx; " mode="aspectFit"></image> -->
                     <text v-else>{{ite.emptyString}}</text>
                     </view>
                   </template>
@@ -340,17 +350,22 @@
                       </view>
                     </view>
                   </template>
+				  <!-- 格式化处理 -->
+				  <template v-else-if="ite.type==='format'">
+				  	<view>{{kayType(itemFilter(item,ite),parameter[ite.key])}}</view>
+				  </template>
                   <template v-else-if="ite.type==='selection'">
                     <view class="checkbox-item">
                       <tableCheckbox @checkboxSelected="(e)=>checkboxSelected(e,item)" :cellData="item" :checked="item.checked"/>
                     </view>
                   </template>
                   <template v-else-if="ite.type==='img'">
-                    <image
-                        @click.stop="previewImage(item,item[ite.name],index)"
-                        v-if="item[ite.name]"
-                        :show-menu-by-longpress="false"
-                        :src="item[ite.name]" style="width: 80rpx;height:60rpx; " mode="aspectFit"></image>
+					<block v-if="item[ite.name]" >
+						<image v-for="(pite,pidx) in getPhotoFn(item[ite.name])" :key="pidx"
+						    @click.stop="previewImage(getPhotoFn(item[ite.name]),pite,pidx)"
+						    :show-menu-by-longpress="false"
+						    :src="pite" style="width: 80rpx;height:60rpx; " mode="aspectFit"></image>
+					</block>
                     <text v-else>{{ite.emptyString}}</text>
                   </template>
                   <template v-else-if="ite.type==='index'">
@@ -387,12 +402,14 @@ import TableSummary from "./components/table-summary.vue";
 import TableSideSummary from "./components/table-side-summary.vue";
 import TableH5Summary from './components/table-h5-summary'
 import ZbLoadMore from './components/zb-load-more'
-
+import config from '@/config'
+const baseUrl = config.baseUrl
 import {getScrollbarSize} from "./js/util";
 // fit 列的宽度是否自撑开
 // column 显示的列数据
 // stripe 是否为斑马纹 table
 // show-header 是否显示表头
+// parameter 格式化数据总对象
 export default {
   components:{
     TableCheckbox,
@@ -402,6 +419,10 @@ export default {
     ZbLoadMore
   },
   props:{
+	parameter:{
+		type:Object,
+		default:null
+	},
     highlight:{
       type:Boolean,
       default:false
@@ -509,7 +530,6 @@ export default {
           }else if(column.type==="img"){
 			   }else if(column.type==="selection"){
 			}else{
-				console.log(column,23)
 			let arr = [this.getTextWidth(column.label)]
             this.data.forEach(data=>{
               let str = (data[column.name]+'')
@@ -641,6 +661,17 @@ export default {
   mounted(){
   },
   methods: {
+	  kayType(value,datas){
+	  		var actions = [];
+	  		var idx=0;
+	  		Object.keys(datas).some((key) => {
+	  			if (datas[key].value == ('' + value)) {
+	  				actions.push(datas[key].label);
+	  				return true;
+	  			}
+	  		})
+	  		return actions.join('')  
+	  },
 getMove(){
 	
 },
@@ -699,10 +730,20 @@ getMove(){
 
       // this.pullUpLoading.call(this.$parent)
     },
+	// 多张图片处理
+	getPhotoFn(url){
+		var list=url.split(',')
+		var newArr=[];
+		list.forEach(ite=>{
+			var s=baseUrl+ite;
+			newArr.push(s)
+		})
+		return newArr
+	},
 	  previewImage(item,url,current){
 		  uni.previewImage({
 			  current,
-			  urls:[url]
+			  urls:item
 		  })
 	  },
     resetHighlight(){

+ 3 - 3
manifest.json

@@ -1,9 +1,9 @@
 {
-    "name" : "园区安防",
+    "name" : "智慧园区",
     "appid" : "__UNI__9ACE566",
     "description" : "",
-    "versionName" : "1.0.0",
-    "versionCode" : 100,
+    "versionName" : "1.0.1",
+    "versionCode" : 101,
     "transformPx" : false,
     "app-plus" : {
         "usingComponents" : true,

+ 8 - 1
pages.json

@@ -13,7 +13,7 @@
 	{
 	  "path": "pages/index/index",
 	  "style": {
-	    "navigationBarTitleText": "智慧访客预约系统",
+	    "navigationBarTitleText": "智慧园区系统",
 	    "navigationStyle": "custom"
 	  }},
 	{
@@ -243,6 +243,13 @@
 					"navigationStyle": "custom"
 				}
 			},
+			{
+				"path": "pages/yyorder/meetadd",
+				"style": {
+					"navigationBarTitleText": "会议预订",
+					"navigationStyle": "custom"
+				}
+			},
 			{
 				"path": "pages/yyorder/meetlist",
 				"style": {

+ 1 - 1
pages/index/index.vue

@@ -346,7 +346,7 @@
 		},
 		// 会议预定
 		getMeetFn(){
-			this.$tab.navigateTo("/work/pages/yyorder/meeting")
+			this.$tab.navigateTo("/work/pages/yyorder/meetadd")
 		},
 		//访客记录
 		getVistotFn(){

+ 42 - 27
pages/video/index.vue

@@ -47,12 +47,12 @@
 			</view>
 			<!-- 列表 -->
 			<view class="vlisttop flexcj">
-				<view class="vlleft flexc">
+				<view class="vlleft flexc" @click="getResetFn">
 					<image :src="mjimg"></image>门禁记录
 				</view>
 				<picker mode="date" @change='bindDateChangeb'>
 					<view class="rlleft flexc">
-						<view>{{daytime}}</view>
+						<view>{{daytime||"请选择日期"}}</view>
 						<image :src="hupimg"></image>
 					</view>
 				</picker>
@@ -63,9 +63,9 @@
 				  :show-header="true"
 				  :columns="column1"
 				  :stripe="true"
-				  :fit="false"
+				  :fit="true"
 				  :isShowLoadMore="reachflag"
-				  
+				  :parameter="parameter"
 				  :data="list"></zb-table>
 				  <!-- @rowClick="rowClick"
 				  @toggleRowSelection="toggleRowSelection"
@@ -87,7 +87,7 @@
 	import self from '@/utils/location.js';
 	import yList from "@/components/order/list.vue"
 	let { calendar } = require("@/components/lunc-calendar/calendar.js");
-	import {getCameraList,getCameraVideo,getVideoOpenDz,getVideoCloseDz} from "@/api/mine/order.js"
+	import {getCameraList,getCameraVideo,getVideoOpenDz,getVideoCloseDz,getDoorList} from "@/api/mine/order.js"
 	import {column1} from '@/components/zb-table/all.js'
 	import {getDictionaryFn} from "@/api/mine/register.js"
 	import footers from '@/components/footer/footer.vue'
@@ -114,11 +114,16 @@
 			resetimg:require('@/static/images/order/reset.png'),
 			wresetimg:require('@/static/images/order/wreset.png'),
 			backgroundColor: "transparent",
-			list:[],
-			pageSize: 10,
+			list:[
+				//{entranceGuardName:'后门抓拍一体机1',controlsTime:'2024-08-22 11:21:44',type:'1',pictureUrl:"/profile/upload/2024/08/22/cardr_20240822145636A001.png,/profile/upload/2024/08/22/a_20240822151219A002.png"},
+			],
+			pageSize: 15,
 			pageNum: 1,
 			reachflag: false,
 			wtdt:'',
+			parameter:{
+				kgmlist:[],
+			},
 			adridx:0,
 			address:'',
 			adrlist:[],//
@@ -158,16 +163,17 @@
 		}
 	},
 	onLoad: function() {
-		uni.$on('refreshdatalist',(e) => {
-			this.reachflag=false;
-			this.pageNum=1;
-			this.list=[];
-			 this.getDataFn();
-		})
+		// uni.$on('refreshdatalist',(e) => {
+		// 	this.reachflag=false;
+		// 	this.pageNum=1;
+		// 	this.list=[];
+		// 	 this.getDataFn();
+		// })
 		this.time()
 		if(checkPermi(['system:camera:list'])){
 			this.getCameraList()
 		}
+		this.init()
 		// this.getDataFn()
 		uni.getSystemInfo({
 			success: (e) => {
@@ -248,6 +254,7 @@
 			this.daytime = y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d)
 			// var timeStr = (h < 10 ? ('0' + h) : h) + ':' + (min < 10 ? ('0' + min) : min) + ':' + (s < 10 ? (
 			// 	'0' + s) : s);
+			this.getDataFn()
 		},
 		getLivePlayer() {
 		    uni.showLoading({
@@ -304,7 +311,7 @@
 		    this.player.pause();
 		},
 		flv_destroy() {
-			console.log(23)
+			// console.log(23)
 		    //停止
 			if(this.flvPlayer){
 				this.flvPlayer.pause();
@@ -344,8 +351,14 @@
 				}
 			}) 
 		},
+		getResetFn(){
+			// 重置
+			this.daytime='';
+			this.getrefreshData()
+		},
 		bindDateChangeb(e){
 			this.daytime=e.detail.value
+			this.getrefreshData()
 		},
 		getrefreshData(){
 			this.pageNum=1;
@@ -397,25 +410,27 @@
 			}) 
 		},
 		init(){
-			// 门卫
-			// getDictionaryFn('is_read').then(res=>{
-			// 	if(res.code==200){
-			// 		this.ydztlist = res.data.map(v => {
-			// 			return {
-			// 				label: v.dictLabel,
-			// 				value: v.dictValue
-			// 			}
-			// 		})
-			// 	}
-			// })
+			// 开关门类型
+			getDictionaryFn('is_open').then(res=>{
+				if(res.code==200){
+					this.parameter.kgmlist = res.data.map(v => {
+						return {
+							label: v.dictLabel,
+							value: v.dictValue
+						}
+					})
+				}
+			})
 		},
 		getDataFn(){
 			var params={
 				pageSize:this.pageSize,
 				pageNum: this.pageNum,
-				// visitType:3
 			}
-			getCameraList(params).then(res=>{
+			if(this.daytime){
+				params.controlsTime=this.daytime
+			}
+			getDoorList(params).then(res=>{
 				if(res.code==200){
 					if (res.rows.length < this.pageSize) {
 						this.reachflag = false

BIN
static/images/tabbar/video.png


BIN
static/images/tabbar/video_.png


BIN
static/images/tabbar/video_s.png


BIN
static/images/tabbar/videos.png


+ 1 - 0
static/style.css

@@ -90,6 +90,7 @@ color: #FFFFFF;display: flex;align-items: center;justify-content: center;}
 .ml6{margin-left: 12rpx;}
 .ml10{margin-left: 20rpx;}
 .mr10{margin-right: 20rpx;}
+.mr20{margin-right: 40rpx !important;}
 .mt12{margin-top: 24rpx;}
 .mt15{margin-top: 30rpx;}
 .mt20{margin-top: 40rpx;}

+ 7 - 1
uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue

@@ -622,7 +622,13 @@
 
 				} else {
 					if (this.hasTime) {
-						this.singleVal = e.fulldate + ' ' + e.time
+						var time=e.time
+						if(e.fulldate){
+							time=e.time||"00:00:00"
+						}
+						if(e.fulldate||time){
+							this.singleVal = e.fulldate + ' ' + time
+						}
 					} else {
 						this.singleVal = e.fulldate
 					}

+ 3 - 1
work/components/yuyue/list.vue

@@ -116,8 +116,10 @@
 					<view class="listsm">
 						<view class="txt"><text class="tit">会议时间</text><text class="lh17">{{ite.startTime}} 至 {{ite.endTime}}</text></view>
 						<view class="txt"><text class="tit">会议室</text><text>{{ite.conferenceRoomName}}</text></view>
+						<view class="txt"><text class="tit">参会人数</text><text>{{ite.conferenceNumber}}人</text></view>
+						<view class="txt"><text class="tit">会议要求</text><text>{{ite.remark}}</text></view>
 						<view class="flexcj mb8">
-							<view class="txt" style="margin-bottom: 0;"><text class="tit">参会人数</text><text>{{ite.conferenceNumber}}人</text></view>
+							<view class="txt" style="margin-bottom: 0;"><text class="tit">席卡需求</text><text>{{ite.useXk=='Y'?'需要':'暂不'}}</text></view>
 							<view class="delbtn" v-if="checkPermi(['system:order:remove'])" @click.stop="getDelFn(ite.conferenceRoomOrderId)">
 								<image :src="delimg"></image>取消预约
 							</view>

+ 469 - 0
work/pages/yyorder/meetadd.vue

@@ -0,0 +1,469 @@
+<template>
+	<view>
+		<view class="navbox">
+			<uni-nav-bar color="#ffffff" left-icon="left" title="会议预订" :background-color="backgroundColor"
+				:border="false" statusBar='true' fixed="true" @clickLeft='getBack'>
+			</uni-nav-bar>
+		</view>
+		<image :src="navbg" class="navbg"></image>
+		<view class="zxmain" :style="'margin-top:-'+marTop+'rpx;'">
+			<view class="ytbox">
+				<uni-forms ref="form" class="ytforms" :rules="rules"  :modelValue="datainfo">
+					<!-- 预定会议室 -->
+					<view v-show="stepval==1">
+						<view class="ytsbox">
+							<view class="yttit">选择会议室</view>
+							<view class="mb12" v-for="(ite,idx) in hyslist" :key="ite.conferenceRoomId">
+								<view class="mlists" :class="meetid==ite.conferenceRoomId?'act':''" @click="getMeetId(ite)">
+									<view class="mtit">{{ite.conferenceRoomName}}</view>
+									<view class="mtxt bga" v-if="ite.type=='N'"><text class="cir"></text>当前空闲</view>
+									<view class="mtxt bgb" v-if="ite.type=='Y'"><text class="cir"></text>当前占用</view>
+								</view>
+								<!--已经预约的时间段 -->
+								<view class="tlist" v-show="meetid==ite.conferenceRoomId">
+									<view class="ttips flexc">
+										<image :src="tipimg"></image>已预约时段
+									</view>
+									<block v-if="ite.conferenceRoomOrderList&&ite.conferenceRoomOrderList.length">
+										<view class="ttime flexc" v-for="(tite,tidx) in ite.conferenceRoomOrderList" :key="tite.conferenceRoomOrderId">
+											<view class="cir"></view>
+											{{tite.startTime}} 至 {{tite.endTime}}
+										</view>
+									</block>
+									<view v-else class="ttime">暂无数据</view>
+								</view>
+							</view>
+							<view class="ybtn flexcc" @click="getNextFn">下一步</view>
+							<view class="tips">* 为避免重复操作,请先选择会议室查看是否被占用。</view>
+						</view>
+					</view>
+					<view v-show="stepval==2">
+						<view class="ytsbox">
+							<view class="yttit">填写预订信息</view>
+							<view class="pt5">
+								<uni-forms-item label="预定人员" class="disable"  name="visitName">
+									<view class="intit">{{datainfo.orderUser}}</view>
+								</uni-forms-item>
+								<uni-forms-item label="会议名称"   name="conferenceName">
+									<uni-easyinput :inputBorder="false" type="textarea" autoHeight  v-model="datainfo.conferenceName"
+										placeholder="输入会议名称">
+									</uni-easyinput>
+								</uni-forms-item>
+								<uni-forms-item label="开始时间" name="startTime">
+									<uni-datetime-picker v-model="datainfo.startTime" @change="getChangeaFn">
+										<view class="pickbox flexc">
+											<view :class="datainfo.startTime?'txr flex1':'coa txr flex1'">{{datainfo.startTime || "请选择开始时间"}}</view>
+											<image :src="hupimg" class="hupimg"></image>
+										</view>	
+									</uni-datetime-picker>
+								</uni-forms-item>
+								<uni-forms-item label="结束时间" name="endTime">
+									<uni-datetime-picker v-model="datainfo.endTime" @change="getChangebFn" :start="datainfo.startTime">
+										<view class="pickbox flexc">
+											<view :class="datainfo.endTime?'txr flex1':'coa txr flex1'">{{datainfo.endTime || "请选择结束时间"}}</view>
+											<image :src="hupimg" class="hupimg"></image>
+										</view>	
+									</uni-datetime-picker>
+								</uni-forms-item>
+								<uni-forms-item label="参会人数"   name="conferenceNumber">
+									<uni-easyinput :inputBorder="false"  v-model="datainfo.conferenceNumber"
+									type="number"
+										placeholder="输入参会人数">
+									</uni-easyinput>
+								</uni-forms-item>
+								<view class="textarea">
+									<uni-easyinput :inputBorder="false" type="textarea" autoHeight  v-model="datainfo.remark"
+										placeholder="请输入会议要求…">
+									</uni-easyinput>
+								</view>
+								
+								<view class="chose" @click="getCkFn">
+									<image :src="choseimg" v-if="datainfo.useXk=='Y'"></image>
+									<image :src="nchoseimg" v-else></image>
+									需要准备席卡
+								</view>
+								<!-- <uni-forms-item label="会议室"  name="appointmentSite">
+									<view class="flex1">
+										<w-select
+										      :list='hyslist'
+											  v-model="chooseValue"
+										      valueName='conferenceRoomName' 
+										      keyName="conferenceRoomId"
+											  :filterable='filterable'
+											  width='100%'
+											  height="36px"
+											  @change='getchangeb'
+										    >
+										    </w-select>
+									</view>
+								</uni-forms-item> -->
+								
+								
+								
+							</view>
+							<view class="flexc">
+								<view class="ybtn flexcc ybga mr20" @click="getPreFn">上一步</view>
+								<view class="ybtn flexcc" @click="getSubmit">确认提交</view>
+							</view>
+							
+							<view class="tips">* 为避免您的重复操作,请先仔细查看已预约时段。</view>
+						</view>
+					</view>	
+				</uni-forms>	
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
+	import {getRoomNoList,getRoomyyAdd,getRoomyyPut,getRoomyyDetail,getRoomtimeNoList} from "@/api/mine/work.js"
+	import {getDictionaryFn} from "@/api/mine/register.js"
+	import wSelect from "@/work/components/w-select/w-select.vue"
+	export default {
+		components: {wSelect},
+		data() {
+			return {
+				hupimg:require("@/static/images/order/hup.png"),
+				navbg:require("@/static/images/navbg.png"),
+				tipimg:require("@/work/static/yuy/tips.png"),
+				choseimg:require("@/work/static/yuy/chose.png"),
+				nchoseimg:require("@/work/static/yuy/nchose.png"),
+				backgroundColor: "transparent",
+				nvaHeight: 44,
+				marTop: 0, //距离顶部的距离
+				stubarHeight: 0, //
+				datainfo:{
+					"conferenceRoomId": "",//会议室ID
+					"conferenceRoomName": "",//会议室名称
+					"conferenceRoomAddress": "",//会议室地址
+					"orderUser": "",//会议室预约人员名称
+					"orderUserId": "",//会议室预约人员id(用户id)
+					"conferenceName": "",//会议名称
+					"conferenceNumber": "",//会议室人数
+					"startTime": "",//会议开始时间
+					"endTime": "",//会议结束时间
+					'useXk':'N',//是否需要席卡 N:不需要 Y:需要
+					'remark':'',//说明
+				},
+				rules: {
+				  startTime: {rules: [{required: true,errorMessage: '请选择开始时间',}]},
+				  endTime: {rules: [{required: true,errorMessage: '请选择结束时间' } ]},
+				  conferenceRoomName: {rules: [{required: true,errorMessage: '请选择会议室'} ]},
+				  conferenceName: {rules: [{required: true,errorMessage: '请输入会议名称'} ]},
+				  conferenceNumber: {rules: [{required: true,errorMessage: '请输入会议人数'} ]},
+				},
+				meetid:0,
+				hys:'',
+				hysidx:'',
+				hyslist:[],
+				ptype:'add',
+				stepval:1,//
+				id:'',
+				filterable:true,
+				chooseValue:'',
+				name:this.$store.state.user.name,
+				userId:this.$store.state.user.userId,
+			}
+		},
+		onPageScroll(e) {
+			var scrollTop = Number(e.scrollTop);
+			if (scrollTop > 0) {
+				this.backgroundColor = '#0491FD'
+			} else {
+				this.backgroundColor = 'transparent'
+			}
+		},
+		onLoad: function(e) {
+			if(e.data){
+				var data=JSON.parse(decodeURIComponent(e.data))
+				if(data.type){
+					this.ptype=data.type;
+					this.id=data.id;
+					this.getDetail()
+				}
+			}else{
+				this.datainfo.orderUser=this.name;
+				this.datainfo.orderUserId=this.userId;
+			}
+			// this.init()
+			this.getRoomNoList()
+			uni.getSystemInfo({
+				success: (e) => {
+					this.stubarHeight = Number(e.statusBarHeight);
+					this.nvaHeight = Number(e.statusBarHeight) + 44;
+					this.tabscheight = Number(this.nvaHeight) * 2 + 100;
+				}
+			})
+		},
+		onUnload() {
+			uni.$off('refreshdatalist')
+		},
+
+		onShow() {},
+		mounted() {
+			this.getHeightFn()
+		},
+		methods: {
+			checkPermi,
+			checkRole,
+			getBack() {
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			bindTimeChangea(e){
+				var val=e.detail.value;
+				// this.day=val
+			},
+			getHeightFn() {
+				let query = uni.createSelectorQuery().in(this);
+				//需要给黄色区域设置一个id标识,在这里是demo
+				query.select('.navbox').boundingClientRect(data => {
+					var top = data.top < 0 ? -data.top : data.top;
+					var stubarHeight = Number(this.stubarHeight);
+					this.marTop = stubarHeight > 0 ? 692 - Number(data.height) * 2 : 692 - Number(data.height) *
+						2 + 40 //赋值,待会要用
+					if (top <= this.nvaHeight) {
+						const opacity = top / 100 // 计算透明度值
+						const color = `rgba(4, 145, 253, ${opacity})`
+						this.backgroundColor = color // 更新盒子背景颜色
+					} else {
+						this.backgroundColor = '#00A9F0'
+					}
+				}).exec();
+			},
+			init() {
+				// 门卫
+				// getDictionaryFn('is_read').then(res=>{
+				// 	if(res.code==200){
+				// 		this.ydztlist = res.data.map(v => {
+				// 			return {
+				// 				label: v.dictLabel,
+				// 				value: v.dictValue
+				// 			}
+				// 		})
+				// 	}
+				// })
+			},
+			statusFormat(ite,list,type) {
+				var aite=selectValueKey(list, ite);
+				if(type=='hys'){
+					this.hysidx=aite.key
+				}
+				return aite.actions;
+			},
+			getChangeaFn(e){
+				this.datainfo.startTime=e
+				var endTime=this.datainfo.endTime;
+				if(endTime){
+					var startime=new Date(e).getTime()
+					var endtime=new Date(endTime).getTime()
+					if(startime>endtime){
+						this.$toast('开始时间大于开始时间')
+						this.datainfo.endTime=''
+					}	
+				}
+			},
+			getChangebFn(e){
+				var that=this;
+				var startt=this.datainfo.startTime;
+				if(!startt){
+					this.$toast('请选择开始时间')
+					setTimeout(function(){
+						that.datainfo.endTime='';
+					},200)
+					return
+				}
+				var startime=new Date(startt).getTime()
+				var endtime=new Date(e).getTime()
+				if(startime>endtime){
+					setTimeout(function(){
+						that.datainfo.endTime='';
+					},200)
+					this.$toast('请选择时间大于开始时间')
+					return
+				}
+				this.datainfo.endTime=e
+			},
+			getMeetId(ite){
+				var id=ite.conferenceRoomId;
+				var name=ite.conferenceRoomName;
+				var adress=ite.conferenceRoomAddress
+				this.meetid=id;
+				this.datainfo.conferenceRoomId=id;
+				this.datainfo.conferenceRoomName=name;
+				this.datainfo.conferenceRoomAddress=adress;
+			},
+			getCkFn(){
+				var useXk=this.datainfo.useXk;
+				if(useXk=='Y'){
+					this.datainfo.useXk='N'
+				}else{
+					this.datainfo.useXk='Y'
+				}
+			},
+			getPreFn(){
+				uni.pageScrollTo({
+					scrollTop: 0,
+					duration: 0
+				})
+				this.stepval=Number(this.stepval)-1
+			},
+			getNextFn(){
+				if(!this.datainfo.conferenceRoomId){
+					this.$toast("请选择会议室")
+					return
+				}
+				uni.pageScrollTo({
+					scrollTop: 0,
+					duration: 0
+				})
+				this.stepval=Number(this.stepval)+1
+			},
+			getSubmit(){
+				var that=this;
+				this.$refs.form.validate().then(res => {
+					var params = JSON.parse(JSON.stringify(this.datainfo))
+					if(this.ptype=='add'){
+						getRoomyyAdd(params).then(res => {
+							if (res.code == 200) {
+								this.$toast("新增成功")
+								uni.$emit('refreshmeetlist')
+								setTimeout(function(){
+									uni.navigateBack({
+										delta:1
+									})
+								},1200)
+							} else {
+								this.$toast(res.msg)
+							}
+						})
+					}else{
+						getRoomyyPut(params).then(res => {
+							if (res.code == 200) {
+								this.$toast("修改成功")
+								uni.$emit('refreshmeetlist')
+								setTimeout(function(){
+									uni.navigateBack({
+										delta:1
+									})
+								},1200)
+							} else {
+								this.$toast(res.msg)
+							}
+						})
+					}
+					
+				})
+				
+			},
+			getchangeb(e){
+				this.datainfo.conferenceRoomId=e.conferenceRoomId;
+				this.datainfo.conferenceRoomName=e.conferenceRoomName;
+				this.datainfo.conferenceRoomAddress=e.conferenceRoomAddress;
+			},
+			getRoomNoList() {
+				getRoomNoList().then(res => {
+					if (res.code == 200) {
+						this.hyslist=res.rows
+					} else {
+						this.$toast(res.msg)
+					}
+				})
+			},
+			getDetail(){
+				getRoomyyDetail(this.id).then(res=>{
+					if(res.code==200){
+						this.datainfo=res.data;
+						this.meetid=res.data.conferenceRoomId;
+						// this.chooseValue=res.data.conferenceRoomId
+					}
+				})
+			}
+		},
+
+	}
+</script>
+<style>
+/* 	page {
+		background: #ffffff;
+	} */
+</style>
+<style lang="scss" scoped>
+.ytbox /deep/ .uni-forms .uni-forms-item{padding: 10rpx 26rpx 10rpx;border: 2rpx solid #0391FD;margin-bottom: 24rpx;border-radius: 12rpx;min-height: 90rpx;}
+.ytbox /deep/ .uni-forms-item__label{flex: 0 0 auto;width: 144rpx !important;font-size: 28rpx;font-weight: bold;position: relative;color: #161616;text-align-last: justify;height: 66rpx;}
+.ytbox /deep/ .uni-forms-item__label text{flex: 1;}
+.ytbox /deep/ .uni-forms-item__label .is-required{position: absolute;right: 0;color: #F10C31;margin-top: 16rpx;}
+.ytbox /deep/ uni-textarea{flex: 1;width: auto;text-align: right;}
+.ytbox .textarea /deep/ uni-textarea{flex: 1;width: auto;text-align: left;padding: 26rpx;font-size: 28rpx;min-height: 192rpx;box-sizing: border-box;border-radius: 3px;
+border: 2rpx solid #0391FD;margin: 0;}
+.ytbox /deep/ .uni-textarea-placeholder{font-size: 28rpx;color: #aaaaaa !important;}
+.ytbox /deep/ .uni-easyinput__placeholder-class{font-size: 28rpx;color: #aaaaaa;}
+.ytbox /deep/ .uni-forms-item__content{display: flex;align-items: center;flex-direction: row;}
+.ytbox /deep/ .uni-easyinput{flex: 1;text-align: right;}
+.ytbox /deep/ .uni-easyinput__content-input{font-size: 28rpx;}
+ .ytbox /deep/ .uni-forms-item__error{margin-top:0rpx;left: auto;right: 0;}
+.ytbox /deep/ .uni-easyinput__content-textarea{min-height: 42rpx;} 
+ .disable{background: #EFF0F2;border: none !important;}
+ .ytbox{width: 684rpx;margin: 0 auto;padding-top: 24rpx;position: relative;flex: 1;overflow: auto;background-color: #ffffff;padding-bottom: 4rpx;border-radius: 14rpx;}
+.ytforms{
+	.yttit{font-size: 28rpx;font-weight: bold;margin-bottom: 56rpx;
+color: #161616;display: flex;align-items: center;padding: 0rpx 26rpx;box-sizing: border-box;position: relative;
+		&::before{content: '';width: 6rpx;height: 34rpx;background: $com-cd3;border-radius: 4rpx;position: absolute;top: 50%;transform: translateY(-50%);left: 0rpx;}
+	}
+	.ytsbox{background-color: #ffffff;padding: 32rpx 28rpx 0;border-radius: 14rpx;margin-bottom: 24rpx;
+		.intit{font-weight: 500;flex: 1;font-size: 26rpx;text-align: right;color: #666666;}
+		.pickbox{flex: 1;text-align: right;font-weight: 500;font-size: 28rpx;color: #161616;
+			.hupimg{width: 18rpx;height: 14rpx;margin-left: 12rpx;flex: 0 0 auto;}
+		}
+		.chose{display: flex;align-items: center;font-weight: 500;font-size: 28rpx;color: #161616;margin-top: 34rpx;
+			image{width: 26rpx;height: 24rpx;margin-right: 18rpx;flex: 0 0 auto;}
+		}
+	}
+}
+// 按钮
+	.ybtn{width: 100%;height: 90rpx;background: $com-cd3;border-radius: 14rpx;margin: 100rpx auto 0;font-size: 28rpx;font-weight: 500;color: #FFFFFF;
+		&.btn1{background-color: #9a9c9e;}
+		&.ybga{background-color: #e6efff;color:#0391fd ;}
+	}
+	.tips{font-weight: bold;margin-top: 28rpx;
+font-size: 22rpx;line-height: 34rpx;
+color: #FF0000;}
+
+.navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4;	}
+.navbg{width: 100%;height: 692rpx;}	
+.zxmain{position: relative;padding: 20rpx 32rpx 40rpx;box-sizing: border-box;display: flex;
+	min-height: calc(100vh - 44px);		
+}
+// 会议室列表
+.mlists{display: flex;align-items: center;border-radius: 6rpx;border: 2rpx solid #C1C1C1;min-height: 90rpx;box-sizing: border-box;
+padding: 24rpx 26rpx;
+	&.act{border: 2rpx solid #0391FD;
+		.mtit{font-weight: bold;color: #0391FD;}
+	}
+	.mtit{font-weight: 500;font-size: 28rpx;color: #161616;flex: 1;margin-right: 16rpx;}
+	.mtxt{font-weight: 500;font-size: 26rpx;flex: 0 0 auto;
+		&.bga{color: #0AC86E;
+			.cir{background: #0AC86E;}
+		}
+		&.bgb{color: #FF6969;
+			.cir{background: #FF6969;}
+		}
+		.cir{width: 12rpx;height: 12rpx;margin-right: 16rpx;border-radius: 50%;display: inline-block;}	
+	}
+}
+.tlist{padding-top: 30rpx;
+	.ttips{font-weight: bold;font-size: 28rpx;color: #161616;
+		image{width: 26rpx;height: 28rpx;margin-right: 16rpx;flex: 0 0 auto;}
+	}
+	// padding: 24rpx 0 36rpx 38rpx;
+	.ttime{font-weight: 500;font-size: 26rpx;color: #161616;padding-left: 38rpx;padding-top: 24rpx;margin-bottom: 8rpx;
+		&:last-child{margin-bottom: 0;}
+		
+		.cir{width: 12rpx;height: 12rpx;background: #FFB132;border-radius: 50%;flex: 0 0 auto;margin-right: 22rpx;
+			
+		}
+	}
+}
+</style>

+ 1 - 1
work/pages/yyorder/meeting.vue

@@ -24,7 +24,7 @@
 								</uni-datetime-picker>
 							</uni-forms-item>
 							<uni-forms-item label="结束时间" name="endTime">
-								<uni-datetime-picker v-model="datainfo.endTime">
+								<uni-datetime-picker v-model="datainfo.endTime" :start="datainfo.startTime">
 									<view class="pickbox flexc">
 										<view :class="datainfo.endTime?'txr flex1':'coa txr flex1'">{{datainfo.endTime || "请选择结束时间"}}</view>
 										<image :src="hupimg" class="hupimg"></image>

+ 2 - 2
work/pages/yyorder/meetlist.vue

@@ -141,10 +141,10 @@
 					id:id,
 					type:'edit'
 				}
-				this.$tab.navigateTo('/work/pages/yyorder/meeting?data='+encodeURIComponent(JSON.stringify(obj)))
+				this.$tab.navigateTo('/work/pages/yyorder/meetadd?data='+encodeURIComponent(JSON.stringify(obj)))
 			},
 			getAddFn(){
-				this.$tab.navigateTo('/work/pages/yyorder/meeting')
+				this.$tab.navigateTo('/work/pages/yyorder/meetadd')
 			},
 			bindTimeChangea(e){
 				var val=e.detail.value;

BIN
work/static/yuy/chose.png


BIN
work/static/yuy/nchose.png


BIN
work/static/yuy/tips.png