Selaa lähdekoodia

即时通讯处理占线,拒绝等情况。通讯录筛选根据组织进行分类处理

yf_zhb 3 vuotta sitten
vanhempi
commit
381a571d39

+ 71 - 12
MingGaoApp/App.vue

@@ -27,13 +27,17 @@
 
 			// 消息发送加载
 			msgSetTime: null,
+			g_wakelock: null
+		},
+		onLoad() {
+
 		},
-		onLoad() {},
 		onLaunch: function() {
 			console.log('启动了')
 			// App启动
 
 			var that = this
+			this.wakeLock()
 			// uni.getStorage({
 			// 	key: 'session_key',
 			// 	success: function(res) {
@@ -111,7 +115,7 @@
 				that.globalData.socketTask.onMessage((res) => {
 					// console.log("收到服务器内容:");
 					var val = JSON.parse(res.data)
-					console.log('这是返回的内容---------', val)
+					console.warn('这是返回的内容---------', val)
 					if (val.action == 'list') {
 						clearTimeout(that.globalData.msgSetTime); // 消息发送成功,清除发送失败定时器
 						console.log('这是发送人的ID', that.globalData.userId)
@@ -133,12 +137,33 @@
 						that.globalData.list = val.data
 						// this.$store.state.list = val.data
 						this.$store.commit('updateMessageList', val.data)
-						
+
 					} else if (val.action == 'recv_video') {
 						console.warn('recv_video---------------- 1', val.data)
-						that.globalData.video = val.data
+						if (this.$store.state.isVideoCallRefused) {
+							this.$store.commit('updateIsRefusedCall', false)
+							return
+						}
+
 						// this.$store.state.video = val.data
-						
+						this.$store.commit('updateIsRefusedCall', false)
+						if (this.$store.state.isVideoTalking) {
+							// 占线中
+							var obj = {
+								'action': 'occupy', // 动作标识,必填
+								'recv_user_id': val.data.user_id, // 接收人用户id, 非必填
+								'data': {}
+							}
+							this.globalData.socketTask.send({
+								data: JSON.stringify(obj),
+								async success(res) {
+
+									console.warn('占线消息发送成功1111', val.data)
+								}
+							});
+							return
+						}
+						that.globalData.video = val.data
 						uni.switchTab({
 							url: '/pages/response/index',
 							success(res) {
@@ -151,19 +176,28 @@
 								console.warn('-------------- into room complete')
 							}
 						})
-						
+
 						this.$store.commit('updateVideoInfo', val.data)
-						
+
 						setTimeout(() => {
 							console.log('跳转了')
 							this.$store.getters.watchData;
 						}, 1500)
-					}else if(val.action == 'send_video_rsp'){
+					} else if (val.action == 'send_video_rsp') {
 						console.warn('recv_video---------------- response', val.data)
+						if (this.$store.state.isVideoCallRefused) {
+							this.$store.commit('updateIsRefusedCall', false)
+							return
+						}
+
+						this.$store.commit('updateIsRefusedCall', false)
+						// if(this.)
 						this.$store.commit('updateVideoSelfRoomInfo', val.data)
-						console.warn('into romm ready ------------------', this.roomInfo, obj.action ===
-							'send_video')
+						console.warn('into romm ready ------------------', this.roomInfo)
 						console.warn('into romm ------------------', this.roomInfo)
+
+
+						this.$store.commit('updateTalkingStatus', true)
 						uni.navigateTo({
 							url: '/pages/response/video?videoObj=' + JSON.stringify(val.data),
 							success(res) {
@@ -176,11 +210,17 @@
 								console.warn('-------------- into room complete')
 							}
 						})
+					} else if (val.action == 'reject_video_rsp') {
+						// 被拒绝后挂断视频通话
+						this.$store.commit('updateIsRefusedCall', true)
+					} else if (val.action == 'occupy_rsp') {
+						console.warn('----------------------- is refused')
+						// 占线中,挂断发起通话
+						this.$store.commit('updateIsRefusedCall', true)
 					} else if (val.action == 'ok') {
 						this.start(); // 心跳机制
 					}
 
-
 					// this.reset();
 					// console.log('消息可正常接收');
 				});
@@ -278,7 +318,26 @@
 				clearTimeout(that.globalData.timeoutObj);
 				clearTimeout(that.globalData.reconnectTimeOutObj);
 			},
-		},
+			//允许程序后台运行,以持续获取GPS位置  
+			wakeLock() {
+				//Android  
+				const main = plus.android.runtimeMainActivity();
+				console.warn('--------- walk lock------------ dsd', main)
+				const Context = plus.android.importClass("android.content.Context");
+				const PowerManager = plus.android.importClass("android.os.PowerManager");
+				const pm = main.getSystemService(Context.POWER_SERVICE);
+				this.g_wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ANY_NAME");
+				this.g_wakelock.acquire();
+			},
+
+			//结束程序后台运行  
+			releaseWakeLock() {
+				if (this.g_wakelock != null && this.g_wakelock.isHeld()) {
+					this.g_wakelock.release();
+					this.g_wakelock = null;
+				}
+			},
+		}
 	}
 </script>
 

+ 32 - 13
MingGaoApp/components/uni-nav-bar/uni-nav-bar.vue

@@ -1,15 +1,17 @@
 <template>
 	<view class="uni-navbar">
-		<view :class="{ 'uni-navbar--fixed': fixed, 'uni-navbar--shadow': shadow, 'uni-navbar--border': border }" :style="{ 'background-color': backgroundColor }"
-		 class="uni-navbar__content">
+		<view :class="{ 'uni-navbar--fixed': fixed, 'uni-navbar--shadow': shadow, 'uni-navbar--border': border }"
+			:style="{ 'background-color': backgroundColor,top:keyboardHeight+'px' }" class="uni-navbar__content">
 			<uni-status-bar v-if="statusBar" />
-			<view :style="{ color: color,backgroundColor: backgroundColor }" class="uni-navbar__header uni-navbar__content_view">
-				<view @tap="onClickLeft" class="uni-navbar__header-btns uni-navbar__header-btns-left uni-navbar__content_view">
+			<view :style="{ color: color,backgroundColor: backgroundColor }"
+				class="uni-navbar__header uni-navbar__content_view">
+				<view @tap="onClickLeft"
+					class="uni-navbar__header-btns uni-navbar__header-btns-left uni-navbar__content_view">
 					<view class="uni-navbar__content_view" v-if="leftIcon.length">
 						<uni-icons :color="color" :type="leftIcon" size="24" />
 					</view>
-					<view :class="{ 'uni-navbar-btn-icon-left': !leftIcon.length }" class="uni-navbar-btn-text uni-navbar__content_view"
-					 v-if="leftText.length">
+					<view :class="{ 'uni-navbar-btn-icon-left': !leftIcon.length }"
+						class="uni-navbar-btn-text uni-navbar__content_view" v-if="leftText.length">
 						<text :style="{ color: color, fontSize: '14px' }">{{ leftText }}</text>
 					</view>
 					<slot name="left" />
@@ -21,12 +23,14 @@
 					<!-- 标题插槽 -->
 					<slot />
 				</view>
-				<view :class="title.length ? 'uni-navbar__header-btns-right' : ''" @tap="onClickRight" class="uni-navbar__header-btns uni-navbar__content_view">
+				<view :class="title.length ? 'uni-navbar__header-btns-right' : ''" @tap="onClickRight"
+					class="uni-navbar__header-btns uni-navbar__content_view">
 					<view class="uni-navbar__content_view" v-if="rightIcon.length">
 						<uni-icons :color="color" :type="rightIcon" size="24" />
 					</view>
 					<!-- 优先显示图标 -->
-					<view class="uni-navbar-btn-text uni-navbar__content_view" v-if="rightText.length && !rightIcon.length">
+					<view class="uni-navbar-btn-text uni-navbar__content_view"
+						v-if="rightText.length && !rightIcon.length">
 						<text class="uni-nav-bar-right-text">{{ rightText }}</text>
 					</view>
 					<slot name="right" />
@@ -96,24 +100,38 @@
 				default: true
 			}
 		},
-        mounted() {
-          if(uni.report && this.title !== '') {
-              uni.report('title', this.title)
-          }
-        },
+		data() {
+			return {
+				keyboardHeight: 0
+			}
+		},
+		mounted() {
+			if (uni.report && this.title !== '') {
+				uni.report('title', this.title)
+			}
+
+			uni.onKeyboardHeightChange(this.keyboardEventListener)
+		},
 		methods: {
 			onClickLeft() {
 				this.$emit("clickLeft");
 			},
 			onClickRight() {
 				this.$emit("clickRight");
+			},
+			keyboardEventListener(res) {
+				this.keyboardHeight = res.height > 0 ? res.height - 20 : 0
 			}
+		},
+		beforeDestroy() {
+			uni.offKeyboardHeightChange(this.keyboardEventListener)
 		}
 	};
 </script>
 
 <style lang="scss" scoped>
 	$nav-height: 44px;
+
 	.uni-nav-bar-text {
 		/* #ifdef APP-PLUS */
 		font-size: 16px;
@@ -122,6 +140,7 @@
 		font-size: $uni-font-size-lg;
 		/* #endif */
 	}
+
 	.uni-nav-bar-right-text {
 		font-size: $uni-font-size-base;
 	}

+ 5 - 1
MingGaoApp/pages.json

@@ -83,9 +83,13 @@
 			"path": "pages/response/details",
 			"style": {
 				"navigationBarTitleText": "应答中心详情",
+				"navigationStyle": "custom",
 				"navigationBarBackgroundColor": "#FFFFFF",
 				"enablePullDownRefresh": false,
-				"disableSwipeBack": true
+				"disableSwipeBack": true,
+				"app-plus": {
+					"softinputmode": "adjustResize"
+				}
 			}
 
 		},

+ 288 - 234
MingGaoApp/pages/addressList/index.vue

@@ -1,249 +1,303 @@
 <template>
-	<view class="address-page">
-		<view class="search-form">
-			<u-search placeholder="请输入隶属组织名称/姓名" v-model="searchKey" :showAction="false" @input="search"></u-search>
-		</view>
-		<u-loading-page loading-text="加载中..." :loading="loading" font-size="16"></u-loading-page>
-		<view class="address__body">
-			<view class="address__list">
-				<view class="address__group" v-for="(item,key) in transformUserGroupList" :key="key">
-					<view class="address__group__header">
-						<view class="address__group__title">
-							{{orgDataSource[key] && orgDataSource[key].org_name}}
-						</view>
-					</view>
-					<view class="address__group__list">
-						<view class="address__item" v-for="userItem in item" :key="item.user_id" @click="goToIM(userItem)">
-							<view class="address__item__label">{{userItem.real_name}}</view>
-						</view>
-					</view>
-				</view>
-				<view class="empty" v-if="isEmpty">
-					暂无数据
-				</view>
-			</view>
-			<!-- <u-list @scrolltolower="scrolltolower">
+  <view class="address-page">
+    <view class="search-form">
+      <u-search
+        placeholder="请输入隶属组织名称/姓名"
+        v-model="searchKey"
+        :showAction="false"
+        @input="search"
+      ></u-search>
+    </view>
+    <u-loading-page
+      loading-text="加载中..."
+      :loading="loading"
+      font-size="16"
+    ></u-loading-page>
+    <view class="address__body">
+      <view class="address__list">
+        <view
+          class="address__group"
+          v-for="(item, key) in transformUserGroupList"
+          :key="key"
+        >
+          <view class="address__group__header">
+            <view class="address__group__title">
+              {{ orgDataSource[key] && orgDataSource[key].org_name }}
+            </view>
+          </view>
+          <view class="address__group__list">
+            <view
+              class="address__item"
+              v-for="userItem in item"
+              :key="key + userItem.user_id"
+              @click="goToIM(userItem)"
+            >
+              <view class="address__item__label">{{ userItem.real_name }}</view>
+            </view>
+          </view>
+        </view>
+        <view class="empty" v-if="isEmpty"> 暂无数据 </view>
+      </view>
+      <!-- <u-list @scrolltolower="scrolltolower">
 				<u-list-item v-for="(item, index) in userList" :key="index">
 					<u-cell :title="`${index+1}:user_id:${item.user_id}-姓名:${item.real_name}`" @click="goToIM(item)">
 						
 					</u-cell>
 				</u-list-item>
 			</u-list> -->
-		</view>
-	</view>
+    </view>
+  </view>
 </template>
 
 <script>
-	import {
-		zipObject,
-		map,
-		concat,
-		reduce,
-		groupBy,
-		uniqBy,
-		flatMap,
-		debounce
-	} from 'lodash-es'
-
-	let App = getApp();
-	// var API = App.globalData.socketTask;
-	var API = App.globalData;
-
-	export default {
-		data() {
-			return {
-				current: 0,
-				loading: false,
-				page: 1,
-				total: 0,
-				pageSize: 100000,
-				userList: [],
-				currentUserList: [],
-				searchKey: ''
-			}
-		},
-		onShow() {
-			this.page = 1;
-			this.userList = this.currentUserList = [];
-			this.indexList = [];
-			this.getAddressBookList();
-		},
-		onReachBottom() {
-			console.log('-------------- onReachBottom 121331')
-		},
-		onPullDownRefresh() {
-			console.log('refresh');
-			this.page = 1;
-			this.userList = this.currentUserList = [];
-			this.indexList = [];
-			this.getAddressBookList()
-			setTimeout(() => {
-				uni.stopPullDownRefresh()
-			}, 1000)
-		},
-		computed: {
-			transformUserGroupList() {
-				const result = groupBy(this.currentUserList, item => {
-					return item.org_list[0] && item.org_list[0].org_id
-				})
-
-				console.log(result, 'transform user group list')
-
-				return result
-			},
-			orgDataSource() {
-				const result = uniqBy(flatMap(map(this.currentUserList, 'org_list')), 'org_id');
-				console.log(result, 'orgDataSource');
-				return zipObject(map(result, 'org_id'), result)
-			},
-			isEmpty() {
-				return this.currentUserList.length < 1
-			}
-		},
-		methods: {
-			getAddressBookList() {
-				this.loading = true
-				this.$myRequest({
-					url: '/api/api_gateway?method=sysmenage.usermanager.user_list',
-					data: {
-						page: this.page,
-						page_item: this.pageSize,
-						is_mails: 1,
-						// real_name: this.nameVal, // 用户名称
-						// mobile: this.phoneVal, //电话
-						// org_id: this.org_id, // 组织ID
-					}
-				}).then(res => {
-					this.loading = false;
-					this.total = res.total_item;
-					this.userList = this.currentUserList = this.page === 1 ? res.page_list : concat(this.userList,
-						res.page_list)
-
-					console.log(this.orgDataSource, 'load user list org data list')
-				})
-			},
-			scrolltolower() {
-				console.log('scroll lower -----121313')
-				if (this.page * this.pageSize >= this.total) {
-					return
-				}
-
-				this.page++
-				this.getAddressBookList()
-			},
-			goToIM(data) {
-				var that = this
-				console.log('已读-------------', data.user_id)
-				var obj = {
-					'action': 'list', // 动作标识,必填
-					'recv_user_id': data.user_id, // 接收人用户id, 非必填
-					'data': {}
-				}
-
-				API.socketTask.send({
-					data: JSON.stringify(obj),
-					async success(res) {
-						console.log("消息发送成功");
-					},
-				});
-
-				uni.navigateTo({
-					url: '/pages/response/details?data=' + data.real_name + '&to=' + data.user_id
-				})
-			},
-			search: debounce(function() {
-				console.log('search ----------------------- search result', this.searchKey)
-
-				this.currentUserList = this.userList.filter(item => {
-					if (item.real_name.includes(this.searchKey)) {
-						return true
-					} else if (item.org_list) {
-						return item.org_list.findIndex(orgItem => orgItem.org_name.includes(this
-							.searchKey)) > -1
-					} else {
-						return false
-					}
-				})
-
-			}, 500)
-		}
-	}
+import {
+  zipObject,
+  map,
+  concat,
+  reduce,
+  groupBy,
+  uniqBy,
+  flatMap,
+  debounce,
+  assign,
+  omit,
+} from 'lodash-es'
+
+let App = getApp()
+// var API = App.globalData.socketTask;
+var API = App.globalData
+
+export default {
+  data() {
+    return {
+      current: 0,
+      loading: false,
+      page: 1,
+      total: 0,
+      pageSize: 100000,
+      userList: [],
+      currentUserList: [],
+      searchKey: '',
+    }
+  },
+  onShow() {
+    this.searchKey = ''
+    this.page = 1
+    this.userList = this.currentUserList = []
+    this.indexList = []
+    this.getAddressBookList()
+  },
+  onReachBottom() {
+    console.log('-------------- onReachBottom 121331')
+  },
+  onPullDownRefresh() {
+    console.log('refresh')
+    this.page = 1
+    this.userList = this.currentUserList = []
+    this.indexList = []
+    this.getAddressBookList()
+    setTimeout(() => {
+      uni.stopPullDownRefresh()
+    }, 1000)
+  },
+  computed: {
+    transformUserGroupList() {
+      const concatUserList = reduce(
+        this.currentUserList,
+        (pre, curr) => {
+          return concat(
+            pre,
+            map(curr.org_list || [], (item) =>
+              omit(
+                assign(
+                  {
+                    org_id: item.org_id,
+                    org_name: item.org_name,
+                  },
+                  curr
+                ),
+                ['org_list']
+              )
+            )
+          )
+        },
+        []
+      )
+
+      const result = groupBy(concatUserList, (item) => {
+        return item.org_id
+      })
+
+      console.log(result, 'transform user group list')
+
+      return result
+    },
+    orgDataSource() {
+      const result = uniqBy(
+        flatMap(map(this.currentUserList, 'org_list')),
+        'org_id'
+      )
+      console.log(result, 'orgDataSource')
+      return zipObject(map(result, 'org_id'), result)
+    },
+    isEmpty() {
+      return this.currentUserList.length < 1
+    },
+  },
+  methods: {
+    getAddressBookList() {
+      this.loading = true
+      this.$myRequest({
+        url: '/api/api_gateway?method=sysmenage.usermanager.user_list',
+        data: {
+          page: this.page,
+          page_item: this.pageSize,
+          is_mails: 1,
+          // real_name: this.nameVal, // 用户名称
+          // mobile: this.phoneVal, //电话
+          // org_id: this.org_id, // 组织ID
+        },
+      }).then((res) => {
+        this.loading = false
+        this.total = res.total_item
+        this.userList = this.currentUserList =
+          this.page === 1 ? res.page_list : concat(this.userList, res.page_list)
+
+        console.log(this.orgDataSource, 'load user list org data list')
+      })
+    },
+    scrolltolower() {
+      console.log('scroll lower -----121313')
+      if (this.page * this.pageSize >= this.total) {
+        return
+      }
+
+      this.page++
+      this.getAddressBookList()
+    },
+    goToIM(data) {
+      var that = this
+      console.log('已读-------------', data.user_id)
+      var obj = {
+        action: 'list', // 动作标识,必填
+        recv_user_id: data.user_id, // 接收人用户id, 非必填
+        data: {},
+      }
+
+      API.socketTask.send({
+        data: JSON.stringify(obj),
+        async success(res) {
+          console.log('消息发送成功')
+        },
+      })
+
+      uni.navigateTo({
+        url:
+          '/pages/response/details?data=' +
+          data.real_name +
+          '&to=' +
+          data.user_id,
+      })
+    },
+    search: debounce(function () {
+      console.log(
+        'search ----------------------- search result',
+        this.searchKey
+      )
+
+      this.currentUserList = this.userList.filter((item) => {
+        if (item.real_name.includes(this.searchKey)) {
+          return true
+        } else if (item.org_list) {
+          return (
+            item.org_list.findIndex((orgItem) =>
+              orgItem.org_name.includes(this.searchKey)
+            ) > -1
+          )
+        } else {
+          return false
+        }
+      })
+    }, 500),
+  },
+}
 </script>
 <style lang="scss" scoped>
-	.search-form {
-		position: fixed;
-		left: 0;
-		right: 0;
-		top: 0;
-		background-color: #FFFFFF;
-		padding: 32rpx 24rpx;
-		z-index: 10;
-	}
-
-	.list-cell {
-		display: flex;
-		box-sizing: border-box;
-		width: 100%;
-		padding: 10px 24rpx;
-		overflow: hidden;
-		color: #323233;
-		font-size: 14px;
-		line-height: 24px;
-		background-color: #fff;
-	}
-
-	.address-page {
-		background-color: #F7F8FB;
-		padding-top: 130rpx;
-
-		.address {
-			&__body {}
-
-			&__list {
-				width: 100%;
-			}
-
-			&__group {
-				&__header {
-					padding: 24rpx;
-					color: #1B76FF;
-					font-size: 24rpx;
-				}
-
-				&__list {
-					background-color: #fff;
-					padding: 0 56rpx 0 32rpx;
-				}
-			}
-
-			&__item {
-				@include hairline-bottom;
-
-				&__label {
-					color: #333333;
-					line-height: 1;
-					font-size: 32rpx;
-					padding: 30rpx 0;
-				}
-
-				&:last-child {
-					@include hairline-bottom(transparent);
-				}
-			}
-		}
-	}
-	
-	.empty {
-		width: 100%;
-		text-align: center;
-		font-size: 28rpx;
-		height: 100rpx;
-		line-height: 100rpx;
-		color: #999999;
-	}
+.search-form {
+  position: fixed;
+  left: 0;
+  right: 0;
+  top: 0;
+  background-color: #ffffff;
+  padding: 32rpx 24rpx;
+  z-index: 10;
+}
+
+.list-cell {
+  display: flex;
+  box-sizing: border-box;
+  width: 100%;
+  padding: 10px 24rpx;
+  overflow: hidden;
+  color: #323233;
+  font-size: 14px;
+  line-height: 24px;
+  background-color: #fff;
+}
+
+.address-page {
+  background-color: #f7f8fb;
+  padding-top: 130rpx;
+
+  .address {
+    &__body {
+    }
+
+    &__list {
+      width: 100%;
+    }
+
+    &__group {
+      &__header {
+        padding: 24rpx;
+        color: #1b76ff;
+        font-size: 24rpx;
+      }
+
+      &__list {
+        background-color: #fff;
+        padding: 0 56rpx 0 32rpx;
+      }
+    }
+
+    &__item {
+      @include hairline-bottom;
+
+      &__label {
+        color: #333333;
+        line-height: 1;
+        font-size: 32rpx;
+        padding: 30rpx 0;
+      }
+
+      &:last-child {
+        @include hairline-bottom(transparent);
+      }
+    }
+  }
+}
+
+.empty {
+  width: 100%;
+  text-align: center;
+  font-size: 28rpx;
+  height: 100rpx;
+  line-height: 100rpx;
+  color: #999999;
+}
 </style>
 <style>
-	page {
-		background-color: #F7F8FB;
-	}
+page {
+  background-color: #f7f8fb;
+}
 </style>

+ 372 - 0
MingGaoApp/pages/index/index - 副本.vue

@@ -0,0 +1,372 @@
+<template>
+	<view class="content" style="height: 100vh;" @touchstart="start" @touchend="end">
+		<view class="subsection">
+			<view class="division">
+				<u-search placeholder="请输入任务处理人" v-model="name" :showAction="false" @input="search"></u-search>
+			</view>
+			<view class="subsection_ul">
+				<view :class="current==index?'subsection_li subsection_li_act':'subsection_li'" title="" note=""
+					v-for="(item,index) in list" :key="index" @click="sectionChange(index)">
+					{{item}}
+				</view>
+			</view>
+		</view>
+		<u-loading-page loading-text="加载中..." :loading="loading" font-size="16"></u-loading-page>
+		<view class="taskbox">
+			<view class="hisbox_hint" v-if="tasklist.length==0">
+				暂无数据
+			</view>
+			<view class="taskbox_item" v-for="item,index in tasklist" :key="index" @click="totask(item.task_id)">
+				<view class="taskbox_item_t">
+					<view class="taskbox_item_t_l">
+						{{item.task_type}}
+					</view>
+					<view class="taskbox_item_t_r">
+						{{item.start_time}}
+					</view>
+				</view>
+				<view class="taskbox_item_c">
+					{{item.tesk_msg}}
+				</view>
+				<view class="taskbox_item_l">
+					<view class="taskbox_item_l_l">
+						<view class="taskbox_item_l_l_l">
+							处理人:{{item.operator_user}}
+						</view>
+						<view class="taskbox_item_l_l_r" v-if="item.task_status=='未开始'">
+							{{item.diff_day}}天后开始
+						</view>
+						<view class="taskbox_item_l_l_r" v-if="item.task_status=='处理中'">
+							剩余{{item.diff_day}}天
+						</view>
+						<view class="taskbox_item_l_l_ri" v-if="item.task_status=='未处理'">
+							逾期{{item.diff_day}}天
+						</view>
+					</view>
+					<view class="taskbox_item_l_r"
+						:style="{color:colors(item.task_status),borderColor:colors(item.task_status)}">
+						{{item.task_status}}
+					</view>
+				</view>
+			</view>
+		</view>
+		<uni-calendar :insert="false" ref="calendar" :range="true" @confirm="confirm" />
+	</view>
+</template>
+
+<script>
+	import {
+		Debounce
+	} from "../../util/anitthro.js"
+	export default {
+		data() {
+			return {
+				list: ['待处理', '未完成', '已完成'],
+				current: 0,
+				tasklist: [],
+				status: "待处理",
+				loading: false,
+				page: 1,
+				start_time: "",
+				end_time: "",
+				keyword: "",
+				name: "",
+				startData:{
+					clientX:0,
+					clientY:0
+				}
+			}
+		},
+		onShow() {
+			this.page = 1
+			this.tasklist = []
+			this.gettaskdata()
+		},
+		onLoad() {},
+		onReachBottom() {
+			this.page++
+			this.gettaskdata()
+		},
+		onPullDownRefresh() {
+			this.tasklist = []
+			this.page = 1
+			this.start_time = ""
+			this.end_time = ""
+			this.gettaskdata()
+			setTimeout(() => {
+				uni.stopPullDownRefresh()
+			}, 1000)
+		},
+		onNavigationBarButtonTap(e) {
+			if (this.current == 2) {
+				this.opencale()
+			}
+		},
+		watch: {
+			videoData(news, old) {
+				console.log('触发了2222222222222222222222')
+				console.log(news)
+				uni.switchTab({
+					url: '../response/index'
+				})
+				// if (news) {
+				// }
+			},
+		},
+		computed: {
+			// 视频消息
+			videoData() {
+				return this.$store.state.video
+			},
+		},
+		methods: {
+			sectionChange(e) {
+				this.current = e
+				this.status = this.list[e]
+				this.tasklist = []
+				this.name = ""
+				this.page = 1
+				let pages = getCurrentPages();
+				var page = pages[pages.length - 1];
+				var currentWebview = page.$getAppWebview();
+				if (e == 2) {
+					currentWebview.setTitleNViewButtonStyle(0, {
+						text: "搜索",
+					});
+				} else {
+					currentWebview.setTitleNViewButtonStyle(0, {
+						text: " ",
+					});
+				}
+				this.gettaskdata()
+			},
+			colors(type) {
+				if (type == '未开始' || type == '未处理') {
+					return '#ffaa00';
+				} else if (type == '已完成') {
+					return '#02C644';
+				} else if (type == '逾期完成') {
+					return '#ff0000';
+				} else if (type == '处理中') {
+					return '#409EFF';
+				}
+			},
+			async gettaskdata() {
+				this.loading = true
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=app.task.task_list',
+					data: {
+						page: this.page, //            否       页码, 默认1
+						page_item: "10", //
+						status: this.status,
+						start_time: this
+							.start_time, //                              非必填                     开始时间
+						end_time: this.end_time,
+						operator_user_name: this.name
+					}
+				})
+				// this.tasklist = res.page_list
+				for (var i = 0; i < res.page_list.length; i++) {
+					this.tasklist.push(res.page_list[i])
+				}
+				// console.log(res)
+				this.loading = false
+			},
+			totask(id) {
+				uni.navigateTo({
+					url: "./harmfultask?id=" + id + "&current=" + this.current
+				})
+			},
+			opencale() {
+				this.$refs.calendar.open();
+			},
+			confirm(e) {
+				this.start_time = e.range.before
+				this.end_time = e.range.after
+				this.tasklist = []
+				this.page = 1
+				this.gettaskdata()
+			},
+			search() {
+				Debounce(() => {
+					this.tasklist = []
+					this.page = 1
+					this.gettaskdata()
+				}, 1000)()
+			},
+			start(e) {
+				// console.log("滑动222")
+				this.startData.clientX = e.changedTouches[0].clientX;
+				this.startData.clientY = e.changedTouches[0].clientY;
+			},
+			end(e) {
+				console.log("滑动")
+				const subX = e.changedTouches[0].clientX - this.startData.clientX;
+				const subY = e.changedTouches[0].clientY - this.startData.clientY;
+				if (subY > 50 || subY < -50) {
+					console.log('上下滑')
+				} else {
+					if (subX > 50) {
+						console.log('右滑')
+						if(this.current!=0){
+							this.current--
+							this.sectionChange(this.current)
+						}
+					} else if (subX < -50) {
+						console.log('左滑')
+						if(this.current!=2){
+							this.current++
+							this.sectionChange(this.current)
+						}
+					} else {
+						console.log('无效')
+					}
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="less" scoped>
+	.subsection {
+		width: 100%;
+		position: fixed;
+		top: 0rpx;
+		height: 70rpx;
+		z-index: 9;
+		padding-top: 10px;
+		background-color: #fff;
+
+		.division {
+			width: 90%;
+			display: flex;
+			margin: 0 auto;
+			background-color: #fff;
+			padding: 20rpx 0;
+
+			.screen {
+				// position: fixed;
+				// top: -20rpx;
+				// right: 20rpx;
+				// z-index: 9999999999;
+			}
+		}
+
+		.subsection_ul {
+			height: 70rpx;
+			display: flex;
+			justify-content: space-around;
+			border-bottom: 1px solid #F6F6F6;
+			background-color: #fff;
+
+			.subsection_li {
+				height: 70rpx;
+				text-align: center;
+				line-height: 70rpx;
+			}
+
+			.subsection_li_act {
+				color: #409EFF;
+				border-bottom: 3px solid #409EFF;
+			}
+		}
+
+	}
+
+	/deep/.u-subsection {
+		background-color: #f7f7f7 !important;
+
+		// margin: 20rpx 0;
+		.u-subsection__bar {
+			background-color: #fff;
+		}
+	}
+
+	.taskbox {
+		// margin-top: 88rpx;
+		width: 90%;
+		margin: 180rpx auto 0;
+
+		.hisbox_hint {
+			width: 100%;
+			text-align: center;
+			font-size: 28rpx;
+			height: 100rpx;
+			line-height: 100rpx;
+			color: #999999;
+		}
+
+		.taskbox_item {
+			width: 100%;
+			font-size: 28rpx;
+			border-bottom: 1px solid #F6F6F6;
+			padding: 40rpx 0;
+
+			.taskbox_item_t,
+			.taskbox_item_l {
+				width: 100%;
+				display: flex;
+				justify-content: space-between;
+				margin-bottom: 20rpx;
+			}
+
+			.taskbox_item_c {
+				margin-bottom: 20rpx;
+				text-overflow: -o-ellipsis-lastline;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				-webkit-line-clamp: 2;
+				line-clamp: 2;
+				-webkit-box-orient: vertical;
+			}
+
+			.taskbox_item_t_l {
+				font-weight: 700;
+			}
+
+			.taskbox_item_t_r {
+				color: #999999;
+			}
+
+			.taskbox_item_l_l {
+				display: flex;
+			}
+
+			.taskbox_item_l_l_l {
+				padding: 8rpx;
+				font-size: 24rpx;
+				background-color: rgba(64, 158, 255, 0.15);
+				font-weight: 700;
+				color: #409EFF;
+				margin-right: 10rpx;
+				border-radius: 10rpx;
+			}
+
+			.taskbox_item_l_l_r {
+				padding: 8rpx;
+				font-size: 24rpx;
+				background-color: rgba(2, 198, 68, 0.15);
+				font-weight: 700;
+				color: #02C644;
+				border-radius: 10rpx;
+			}
+
+			.taskbox_item_l_l_ri {
+				padding: 8rpx;
+				font-size: 24rpx;
+				background-color: rgba(255, 0, 0, 0.1);
+				font-weight: 700;
+				color: #f00;
+				border-radius: 10rpx;
+			}
+
+			.taskbox_item_l_r {
+				padding: 8rpx;
+				font-size: 24rpx;
+				border: 1px solid;
+				border-radius: 10rpx;
+			}
+		}
+	}
+</style>

+ 16 - 338
MingGaoApp/pages/index/index.vue

@@ -1,372 +1,50 @@
 <template>
-	<view class="content" style="height: 100vh;" @touchstart="start" @touchend="end">
-		<view class="subsection">
-			<view class="division">
-				<u-search placeholder="请输入任务处理人" v-model="name" :showAction="false" @input="search"></u-search>
-			</view>
-			<view class="subsection_ul">
-				<view :class="current==index?'subsection_li subsection_li_act':'subsection_li'" title="" note=""
-					v-for="(item,index) in list" :key="index" @click="sectionChange(index)">
-					{{item}}
-				</view>
-			</view>
-		</view>
-		<u-loading-page loading-text="加载中..." :loading="loading" font-size="16"></u-loading-page>
-		<view class="taskbox">
-			<view class="hisbox_hint" v-if="tasklist.length==0">
-				暂无数据
-			</view>
-			<view class="taskbox_item" v-for="item,index in tasklist" :key="index" @click="totask(item.task_id)">
-				<view class="taskbox_item_t">
-					<view class="taskbox_item_t_l">
-						{{item.task_type}}
-					</view>
-					<view class="taskbox_item_t_r">
-						{{item.start_time}}
-					</view>
-				</view>
-				<view class="taskbox_item_c">
-					{{item.tesk_msg}}
-				</view>
-				<view class="taskbox_item_l">
-					<view class="taskbox_item_l_l">
-						<view class="taskbox_item_l_l_l">
-							处理人:{{item.operator_user}}
-						</view>
-						<view class="taskbox_item_l_l_r" v-if="item.task_status=='未开始'">
-							{{item.diff_day}}天后开始
-						</view>
-						<view class="taskbox_item_l_l_r" v-if="item.task_status=='处理中'">
-							剩余{{item.diff_day}}天
-						</view>
-						<view class="taskbox_item_l_l_ri" v-if="item.task_status=='未处理'">
-							逾期{{item.diff_day}}天
-						</view>
-					</view>
-					<view class="taskbox_item_l_r"
-						:style="{color:colors(item.task_status),borderColor:colors(item.task_status)}">
-						{{item.task_status}}
-					</view>
-				</view>
-			</view>
-		</view>
-		<uni-calendar :insert="false" ref="calendar" :range="true" @confirm="confirm" />
-	</view>
+	<u-tabs :list="list1" @click="click"></u-tabs>
 </template>
 
 <script>
-	import {
-		Debounce
-	} from "../../util/anitthro.js"
 	export default {
 		data() {
 			return {
-				list: ['待处理', '未完成', '已完成'],
-				current: 0,
-				tasklist: [],
-				status: "待处理",
-				loading: false,
-				page: 1,
-				start_time: "",
-				end_time: "",
-				keyword: "",
-				name: "",
-				startData:{
-					clientX:0,
-					clientY:0
-				}
+				list1: [{
+					name: '待处理',
+				}, {
+					name: '处理中',
+				}, {
+					name: '已完成'
+				}]
 			}
 		},
 		onShow() {
-			this.page = 1
-			this.tasklist = []
-			this.gettaskdata()
+
 		},
 		onLoad() {},
 		onReachBottom() {
-			this.page++
-			this.gettaskdata()
+
 		},
 		onPullDownRefresh() {
-			this.tasklist = []
-			this.page = 1
-			this.start_time = ""
-			this.end_time = ""
-			this.gettaskdata()
+
 			setTimeout(() => {
 				uni.stopPullDownRefresh()
 			}, 1000)
 		},
 		onNavigationBarButtonTap(e) {
-			if (this.current == 2) {
-				this.opencale()
-			}
+
 		},
 		watch: {
-			videoData(news, old) {
-				console.log('触发了2222222222222222222222')
-				console.log(news)
-				uni.switchTab({
-					url: '../response/index'
-				})
-				// if (news) {
-				// }
-			},
+
 		},
 		computed: {
-			// 视频消息
-			videoData() {
-				return this.$store.state.video
-			},
+
 		},
 		methods: {
-			sectionChange(e) {
-				this.current = e
-				this.status = this.list[e]
-				this.tasklist = []
-				this.name = ""
-				this.page = 1
-				let pages = getCurrentPages();
-				var page = pages[pages.length - 1];
-				var currentWebview = page.$getAppWebview();
-				if (e == 2) {
-					currentWebview.setTitleNViewButtonStyle(0, {
-						text: "搜索",
-					});
-				} else {
-					currentWebview.setTitleNViewButtonStyle(0, {
-						text: " ",
-					});
-				}
-				this.gettaskdata()
-			},
-			colors(type) {
-				if (type == '未开始' || type == '未处理') {
-					return '#ffaa00';
-				} else if (type == '已完成') {
-					return '#02C644';
-				} else if (type == '逾期完成') {
-					return '#ff0000';
-				} else if (type == '处理中') {
-					return '#409EFF';
-				}
-			},
-			async gettaskdata() {
-				this.loading = true
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=app.task.task_list',
-					data: {
-						page: this.page, //            否       页码, 默认1
-						page_item: "10", //
-						status: this.status,
-						start_time: this
-							.start_time, //                              非必填                     开始时间
-						end_time: this.end_time,
-						operator_user_name: this.name
-					}
-				})
-				// this.tasklist = res.page_list
-				for (var i = 0; i < res.page_list.length; i++) {
-					this.tasklist.push(res.page_list[i])
-				}
-				// console.log(res)
-				this.loading = false
-			},
-			totask(id) {
-				uni.navigateTo({
-					url: "./harmfultask?id=" + id + "&current=" + this.current
-				})
-			},
-			opencale() {
-				this.$refs.calendar.open();
-			},
-			confirm(e) {
-				this.start_time = e.range.before
-				this.end_time = e.range.after
-				this.tasklist = []
-				this.page = 1
-				this.gettaskdata()
-			},
-			search() {
-				Debounce(() => {
-					this.tasklist = []
-					this.page = 1
-					this.gettaskdata()
-				}, 1000)()
-			},
-			start(e) {
-				// console.log("滑动222")
-				this.startData.clientX = e.changedTouches[0].clientX;
-				this.startData.clientY = e.changedTouches[0].clientY;
-			},
-			end(e) {
-				console.log("滑动")
-				const subX = e.changedTouches[0].clientX - this.startData.clientX;
-				const subY = e.changedTouches[0].clientY - this.startData.clientY;
-				if (subY > 50 || subY < -50) {
-					console.log('上下滑')
-				} else {
-					if (subX > 50) {
-						console.log('右滑')
-						if(this.current!=0){
-							this.current--
-							this.sectionChange(this.current)
-						}
-					} else if (subX < -50) {
-						console.log('左滑')
-						if(this.current!=2){
-							this.current++
-							this.sectionChange(this.current)
-						}
-					} else {
-						console.log('无效')
-					}
-				}
+			click(item) {
+				console.log('item', item);
 			}
 		}
 	}
 </script>
 
 <style lang="less" scoped>
-	.subsection {
-		width: 100%;
-		position: fixed;
-		top: 0rpx;
-		height: 70rpx;
-		z-index: 9;
-		padding-top: 10px;
-		background-color: #fff;
-
-		.division {
-			width: 90%;
-			display: flex;
-			margin: 0 auto;
-			background-color: #fff;
-			padding: 20rpx 0;
-
-			.screen {
-				// position: fixed;
-				// top: -20rpx;
-				// right: 20rpx;
-				// z-index: 9999999999;
-			}
-		}
-
-		.subsection_ul {
-			height: 70rpx;
-			display: flex;
-			justify-content: space-around;
-			border-bottom: 1px solid #F6F6F6;
-			background-color: #fff;
-
-			.subsection_li {
-				height: 70rpx;
-				text-align: center;
-				line-height: 70rpx;
-			}
-
-			.subsection_li_act {
-				color: #409EFF;
-				border-bottom: 3px solid #409EFF;
-			}
-		}
-
-	}
-
-	/deep/.u-subsection {
-		background-color: #f7f7f7 !important;
-
-		// margin: 20rpx 0;
-		.u-subsection__bar {
-			background-color: #fff;
-		}
-	}
 
-	.taskbox {
-		// margin-top: 88rpx;
-		width: 90%;
-		margin: 180rpx auto 0;
-
-		.hisbox_hint {
-			width: 100%;
-			text-align: center;
-			font-size: 28rpx;
-			height: 100rpx;
-			line-height: 100rpx;
-			color: #999999;
-		}
-
-		.taskbox_item {
-			width: 100%;
-			font-size: 28rpx;
-			border-bottom: 1px solid #F6F6F6;
-			padding: 40rpx 0;
-
-			.taskbox_item_t,
-			.taskbox_item_l {
-				width: 100%;
-				display: flex;
-				justify-content: space-between;
-				margin-bottom: 20rpx;
-			}
-
-			.taskbox_item_c {
-				margin-bottom: 20rpx;
-				text-overflow: -o-ellipsis-lastline;
-				overflow: hidden;
-				text-overflow: ellipsis;
-				display: -webkit-box;
-				-webkit-line-clamp: 2;
-				line-clamp: 2;
-				-webkit-box-orient: vertical;
-			}
-
-			.taskbox_item_t_l {
-				font-weight: 700;
-			}
-
-			.taskbox_item_t_r {
-				color: #999999;
-			}
-
-			.taskbox_item_l_l {
-				display: flex;
-			}
-
-			.taskbox_item_l_l_l {
-				padding: 8rpx;
-				font-size: 24rpx;
-				background-color: rgba(64, 158, 255, 0.15);
-				font-weight: 700;
-				color: #409EFF;
-				margin-right: 10rpx;
-				border-radius: 10rpx;
-			}
-
-			.taskbox_item_l_l_r {
-				padding: 8rpx;
-				font-size: 24rpx;
-				background-color: rgba(2, 198, 68, 0.15);
-				font-weight: 700;
-				color: #02C644;
-				border-radius: 10rpx;
-			}
-
-			.taskbox_item_l_l_ri {
-				padding: 8rpx;
-				font-size: 24rpx;
-				background-color: rgba(255, 0, 0, 0.1);
-				font-weight: 700;
-				color: #f00;
-				border-radius: 10rpx;
-			}
-
-			.taskbox_item_l_r {
-				padding: 8rpx;
-				font-size: 24rpx;
-				border: 1px solid;
-				border-radius: 10rpx;
-			}
-		}
-	}
 </style>

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 578 - 487
MingGaoApp/pages/response/details.vue


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 637 - 552
MingGaoApp/pages/response/index.vue


+ 63 - 14
MingGaoApp/pages/response/video.nvue

@@ -1,4 +1,5 @@
 <template>
+
 	<view class="video_box" :style="'height:' +  phoneHeight + 'px'">
 		<!-- 本地预览视图 -->
 		<view class="video_me" v-show="allUserViewObjectList.length > 0">
@@ -12,7 +13,7 @@
 		<view class="video_you" v-for="(item, index) in allUserViewObjectList" :key="item.streamID">
 			<!-- <view class="video_you"> -->
 			<zego-remote-view v-if="item.streamID" :streamID="item.streamID" :viewMode="item.viewMode"
-				style="width:600px;height: 600rpx;border: 1px solid #fff;">
+				style="width:600px;height:600px;">
 			</zego-remote-view>
 		</view>
 
@@ -54,7 +55,8 @@
 
 <script>
 	import {
-		mapState
+		mapState,
+		mapMutations
 	} from 'vuex'
 	import store from '@/store/index.js'; //需要引入store
 	let App = getApp();
@@ -102,8 +104,14 @@
 
 				CameraShow: true, // 镜头开启关闭
 				playerStreamID: 0,
+				isPendingExit: false
 			}
 		},
+		computed: {
+			...mapState({
+				isVideoCallRefused: state => state.isVideoCallRefused
+			})
+		},
 		components: {
 			ZegoLocalView: ZegoLocalView,
 			ZegoRemoteView: ZegoRemoteView
@@ -122,9 +130,16 @@
 
 			// 	}
 			// }
+			isVideoCallRefused(val) {
+				console.warn(val, 'isVideoCallRefused video nvue')
+				if (val) {
+					this.offVideo(true)
+				}
+			}
 		},
 
 		methods: {
+			...mapMutations(['updateIsRefusedCall','updateTalkingStatus']),
 			// 即构 - 视频通话 初始化
 			async setup() {
 				var that = this
@@ -137,6 +152,9 @@
 				this.engine = await ZegoExpressEngine.createEngineWithProfile(profile);
 				this.engine.useFrontCamera(this.shotShow); // 设置前后摄像头
 				// console.log(this.engine)
+				if (this.isPendingExit) {
+					await this.offVideo(true)
+				}
 				this.addListeners();
 				// console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' + that.videoObj.room_id)
 				const userID = (that.userid = that.videoObj.room_id + that.videoObj.user_id)
@@ -233,7 +251,7 @@
 							let payload = assign({
 								streamID: ''
 							}, user)
-							
+
 							for (let stream of this.allStreamList) {
 								if (user.userID == stream.user.userID) {
 									payload.streamID = stream.streamID
@@ -417,13 +435,23 @@
 			},
 
 			// 挂断退出
-			async offVideo() {
-				console.log('进入了啊')
+			async offVideo(isRefused = false) {
+				console.warn('进入了啊offVideo', this.engine)
+				this.updateIsRefusedCall(false);
+				this.updateTalkingStatus(false);
+				
+				if (!this.engine) {
+					console.warn('挂断退出 ------- 12131312')
+					this.isPendingExit = true;
+				} else {
+					this.isPendingExit = false;
+				}
+
 				var that = this
 				that.engine.logoutRoom(that.videoObj.room_id); // 退出房间
 				that.$refs.uToast.show({
 					type: 'default',
-					message: '结束视频通话!',
+					message: isRefused ? '对方正忙' : '结束视频通话!',
 				})
 				setTimeout(() => {
 					that.videoShow = true
@@ -435,19 +463,23 @@
 					// 	'send_user_id': that.videoObj.user_id, // 接收人用户id, 非必填
 					// 	'data': {}
 					// }
-					console.log('-----------接收人用户id-------------', that.videoObj.user_id, API)
+					console.warn('-----------off video 接收人用户id-------------', that.videoObj.user_id, API)
 					obj = {
 						'action': 'list', // 动作标识,必填
 						'type': '当前为挂断',
 						'recv_user_id': that.videoObj.user_id, // 接收人用户id, 非必填
 						'data': {}
 					}
-					API.socketTask.send({
-						data: JSON.stringify(obj),
-						async success(res) {
-							console.log("消息发送成功");
-						},
-					});
+
+					if (!isRefused) {
+
+						API.socketTask.send({
+							data: JSON.stringify(obj),
+							async success(res) {
+								console.log("消息发送成功");
+							},
+						});
+					}
 					uni.navigateBack({
 						delta: 1
 					})
@@ -467,6 +499,20 @@
 		},
 
 		async onLoad(optinos) {
+			if(this.isVideoCallRefused){
+				that.$refs.uToast.show({
+					type: 'default',
+					message: '对方正忙',
+				})
+				
+				setTimeout(() => {
+					uni.navigateBack({
+						delta: 1
+					})
+				}, 1500)
+				return
+			}
+			
 			var that = this
 			that.videoObj = JSON.parse(optinos.videoObj)
 			// // console.log(that.videoObj)
@@ -509,6 +555,7 @@
 		background: #000;
 		width: 1200rpx;
 		position: relative;
+		z-index: 0;
 
 		// .video_you {
 		.video_me {
@@ -518,15 +565,17 @@
 			position: fixed;
 			right: 0;
 			top: 65px;
+			z-index: 2000;
 		}
 
 		.video_you {
-			background: #f00;
+			background: #000;
 			width: 1200rpx;
 			height: 600rpx;
 			position: absolute;
 			right: 0;
 			bottom: 0;
+			z-index: 1;
 		}
 
 		.video_btn {

+ 10 - 3
MingGaoApp/store/index.js

@@ -17,11 +17,12 @@ const store = new Vuex.Store({
 		kpsurlL: 0,
 		worndatabase: [],
 		selfRoomInfo: null,
-		pendingVideoConnect: false
+		pendingVideoConnect: false,
+		isVideoTalking: false,
+		isVideoCallRefused: false,
 	},
 	mutations: {
 		updateVideoInfo(state, payload) {
-			console.log(payload, 'update video info ')
 			state.video = assign({}, payload)
 			state.pendingVideoConnect = !isEmpty(payload)
 		},
@@ -31,8 +32,14 @@ const store = new Vuex.Store({
 		updateMessageList(state, payload) {
 			state.list = slice(payload)
 		},
-		updatePendingVideoConnectStatus(state,flag){
+		updatePendingVideoConnectStatus(state, flag) {
 			state.pendingVideoConnect = flag
+		},
+		updateTalkingStatus(state, flag) {
+			state.isVideoTalking = flag
+		},
+		updateIsRefusedCall(state, flag) {
+			state.isVideoCallRefused = flag
 		}
 	},
 	actions: {},

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 1
MingGaoApp/unpackage/dist/dev/app-plus/app-config-service.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 11716 - 11415
MingGaoApp/unpackage/dist/dev/app-plus/app-service.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 6645 - 6607
MingGaoApp/unpackage/dist/dev/app-plus/app-view.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 22 - 8
MingGaoApp/unpackage/dist/dev/app-plus/pages/response/video.js


+ 4 - 4
MingGaoApp/util/url.js

@@ -1,11 +1,11 @@
 export default {
-	baseUrl: process.env.NODE_ENV === 'development' ? "http://114.115.147.140:12345" : "https://www.yhswjc.com",
-	wsUrl:process.env.NODE_ENV === 'development' ? "ws://114.115.147.140:12345" : "wss://www.toreskj.com",
+	// baseUrl: process.env.NODE_ENV === 'development' ? "http://114.115.147.140:12345" : "https://www.yhswjc.com",
+	// wsUrl:process.env.NODE_ENV === 'development' ? "ws://114.115.147.140:12345" : "wss://www.toreskj.com",
 	// baseUrl:"https://yfznscd.com"
 	// baseUrl:"https://www.toreskj.com"
 	// baseUrl:"https://www.yhswjc.com"
-	// baseUrl:"http://192.168.1.52:12345",
-	// wsUrl:"ws://192.168.1.52:12345",
+	baseUrl:"http://192.168.1.52:12345",
+	wsUrl:"ws://192.168.1.52:12345",
 	// baseUrl:"http://192.168.1.77:12345"
 	// baseUrl:"https://www.toreskj.com"
 }