whx 10 bulan lalu
induk
melakukan
559df183df
100 mengubah file dengan 2248 tambahan dan 370 penghapusan
  1. 2 0
      virgo.wzfrontend/yui_wx/App.vue
  2. 1 1
      virgo.wzfrontend/yui_wx/components/pinapp-empty-page/pinapp-empty-page.vue
  3. 169 0
      virgo.wzfrontend/yui_wx/components/uni-mall-head/uni-mall-head.vue
  4. 231 0
      virgo.wzfrontend/yui_wx/components/uni-mall-list/uni-mall-list.vue
  5. 63 63
      virgo.wzfrontend/yui_wx/manifest.json
  6. 123 121
      virgo.wzfrontend/yui_wx/pages.json
  7. 1 1
      virgo.wzfrontend/yui_wx/pages/login/login.vue
  8. 10 7
      virgo.wzfrontend/yui_wx/pages/message/message.vue
  9. 86 54
      virgo.wzfrontend/yui_wx/pages/my/my.vue
  10. 1 1
      virgo.wzfrontend/yui_wx/pages/myDetail/myDetail.vue
  11. 47 0
      virgo.wzfrontend/yui_wx/pages/organization/organization.vue
  12. 13 69
      virgo.wzfrontend/yui_wx/pages/search/search.vue
  13. 25 0
      virgo.wzfrontend/yui_wx/request/api/organization.js
  14. 61 41
      virgo.wzfrontend/yui_wx/static/font/iconfont.css
  15. TEMPAT SAMPAH
      virgo.wzfrontend/yui_wx/static/font/iconfont.ttf
  16. TEMPAT SAMPAH
      virgo.wzfrontend/yui_wx/static/image/tabbar/chat-active.png
  17. TEMPAT SAMPAH
      virgo.wzfrontend/yui_wx/static/image/tabbar/chat.png
  18. TEMPAT SAMPAH
      virgo.wzfrontend/yui_wx/static/image/tabbar/data-active.png
  19. TEMPAT SAMPAH
      virgo.wzfrontend/yui_wx/static/image/tabbar/data.png
  20. TEMPAT SAMPAH
      virgo.wzfrontend/yui_wx/static/image/tabbar/highseas-active.png
  21. TEMPAT SAMPAH
      virgo.wzfrontend/yui_wx/static/image/tabbar/highseas.png
  22. TEMPAT SAMPAH
      virgo.wzfrontend/yui_wx/static/image/tabbar/my-active.png
  23. TEMPAT SAMPAH
      virgo.wzfrontend/yui_wx/static/image/tabbar/my.png
  24. 2 1
      virgo.wzfrontend/yui_wx/static/scss/common.scss
  25. 28 2
      virgo.wzfrontend/yui_wx/uitls/chat.js
  26. 9 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/changelog.md
  27. 67 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/components/uv-loading-icon/props.js
  28. 347 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/components/uv-loading-icon/uv-loading-icon.vue
  29. 87 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/package.json
  30. 19 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/readme.md
  31. 25 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-search/changelog.md
  32. 127 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-search/components/uv-search/props.js
  33. 311 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-search/components/uv-search/uv-search.vue
  34. 89 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-search/package.json
  35. 19 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-search/readme.md
  36. 63 4
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/app.json
  37. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/common/main.js
  38. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/common/main.wxss
  39. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/common/runtime.js
  40. 11 2
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/common/vendor.js
  41. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/Winglau14-lotusCalendar/Winglau14-lotusCalendar.js
  42. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/Winglau14-lotusCalendar/Winglau14-lotusCalendar.json
  43. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/Winglau14-lotusCalendar/Winglau14-lotusCalendar.wxml
  44. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/Winglau14-lotusCalendar/Winglau14-lotusCalendar.wxss
  45. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/city-select/city-select.js
  46. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/city-select/city-select.json
  47. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/city-select/city-select.wxml
  48. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/city-select/city-select.wxss
  49. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/common/navbar.js
  50. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/common/navbar.json
  51. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/common/navbar.wxml
  52. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/common/navbar.wxss
  53. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItem.js
  54. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItem.json
  55. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItem.wxml
  56. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItem.wxss
  57. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItems.js
  58. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItems.json
  59. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItems.wxml
  60. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItems.wxss
  61. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/login/imageCode.js
  62. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/login/imageCode.json
  63. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/login/imageCode.wxml
  64. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/login/imageCode.wxss
  65. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/pinapp-empty-page/pinapp-empty-page.js
  66. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/pinapp-empty-page/pinapp-empty-page.json
  67. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/pinapp-empty-page/pinapp-empty-page.wxml
  68. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/pinapp-empty-page/pinapp-empty-page.wxss
  69. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-head/uni-mall-head.js
  70. 6 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-head/uni-mall-head.json
  71. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-head/uni-mall-head.wxml
  72. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-head/uni-mall-head.wxss
  73. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-list/uni-mall-list.js
  74. 8 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-list/uni-mall-list.json
  75. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-list/uni-mall-list.wxml
  76. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-list/uni-mall-list.wxss
  77. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/attention/attention.js
  78. 6 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/attention/attention.json
  79. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/attention/attention.wxml
  80. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/chat/chat.js
  81. 6 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/chat/chat.json
  82. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/chat/chat.wxml
  83. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/chat/chat.wxss
  84. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/city/city.js
  85. 6 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/city/city.json
  86. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/city/city.wxml
  87. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/client/client.js
  88. 7 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/client/client.json
  89. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/client/client.wxml
  90. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/clientDetail/clientDetail.js
  91. 6 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/clientDetail/clientDetail.json
  92. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/clientDetail/clientDetail.wxml
  93. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/clientDetail/clientDetail.wxss
  94. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/collect/collect.js
  95. 7 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/collect/collect.json
  96. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/collect/collect.wxml
  97. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/collect/collect.wxss
  98. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/data/data.js
  99. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/data/data.json
  100. 0 0
      virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/data/data.wxml

+ 2 - 0
virgo.wzfrontend/yui_wx/App.vue

@@ -12,6 +12,8 @@
 			}
 			if (this.$store.getters.user.userId) this.$chat.connect(this.$store.getters.user.userId);
 			uni.$YeIM.intoApp();
+			this.$chat.listenerLogin();
+			this.$chat.listenerList();
 		},
 		// 在页面的onHide生命周期中
 		onHide() {

+ 1 - 1
virgo.wzfrontend/yui_wx/components/pinapp-empty-page/pinapp-empty-page.vue

@@ -22,7 +22,7 @@
 		flex-direction: column;
 		justify-content: center;
 		align-items: center;
-		margin-top: 200rpx;
+		padding-top: 200rpx;
 
 		image {
 			width: 414rpx;

+ 169 - 0
virgo.wzfrontend/yui_wx/components/uni-mall-head/uni-mall-head.vue

@@ -0,0 +1,169 @@
+<template>
+	<view class="me-tabs">
+		<scroll-view :id="viewId" :scroll-left="scrollLeft" scroll-x scroll-with-animation
+			:scroll-animation-duration="300">
+			<view class="tabs-item tabs-flex tabs-scroll">
+				<view class="tab-item" v-for="(tab, i) in tabs" :key="i" @click="tabClick(i)" :ref="'refTabItem' + i">
+					<text>{{tab.name}}</text>
+					<uni-icons class="inherit-icons" type="right" color="#8c8c8c" v-if="i < tabs.length - 1">
+					</uni-icons>
+					<view class="line" v-else></view>
+				</view>
+			</view>
+		</scroll-view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				tabs: [],
+				viewId: 'id_' + Math.random().toString(36).substr(2, 16),
+				scrollLeft: 0,
+				warpWidth: 0
+			};
+		},
+		computed: {
+			isScroll() {
+				return this.tabWidth && this.tabs.length; // 指定了tabWidth的宽度,则支持水平滑动
+			},
+			tabHeightPx() {
+				return uni.upx2px(this.height);
+			},
+			tabHeightVal() {
+				return 48 + 'px';
+			},
+			tabWidthPx() {
+				return uni.upx2px(this.tabWidth);
+			},
+			tabWidthVal() {
+				return this.isScroll ? this.tabWidthPx + 'px' : '';
+			},
+			lineLeft() {
+				if (this.isScroll) {
+					return this.tabWidthPx * this.value + this.tabWidthPx / 2 + 'px'; // 需转为px (用rpx的话iOS真机显示有误差)
+				} else {
+					return (100 / this.tabs.length) * (this.value + 1) - 100 / (this.tabs.length * 2) + '%';
+				}
+			}
+		},
+		watch: {
+			value() {
+				this.scrollCenter(); // 水平滚动到中间
+			}
+		},
+		methods: {
+			tabClick(i) {
+				this.tabs.splice(i + 1, this.tabs.length);
+				this.$emit('change', this.tabs[i]);
+			},
+			async addTab(item) {
+				this.tabs.push(item);
+				setTimeout(() => {
+					let query = uni.createSelectorQuery();
+					query = query.in(this); // 支付宝小程序不支持in(this),而字节跳动小程序必须写in(this), 否则都取不到值
+					query
+						.select('.tab-item')
+						.boundingClientRect(data => {
+							this.warpWidth += data.width;
+							this.scrollLeft = this.warpWidth;
+						})
+						.exec();
+				}, 100);
+			},
+			async scrollCenter() {
+				if (!this.isScroll) return;
+				if (!this.warpWidth) {
+					// tabs容器的宽度
+					let rect = await this.initWarpRect();
+					this.warpWidth = rect ? rect.width : uni.getSystemInfoSync().windowWidth; // 某些情况下取不到宽度,暂时取屏幕宽度
+				}
+				let tabLeft = this.tabWidthPx * this.value + this.tabWidthPx / 2; // 当前tab中心点到左边的距离
+				let diff = tabLeft - this.warpWidth / 2; // 如果超过tabs容器的一半,则滚动差值
+				this.scrollLeft = diff;
+				// #ifdef MP-TOUTIAO
+				this.scrollTimer && clearTimeout(this.scrollTimer);
+				this.scrollTimer = setTimeout(() => {
+					// 字节跳动小程序,需延时再次设置scrollLeft,否则tab切换跨度较大时不生效
+					this.scrollLeft = Math.ceil(diff);
+				}, 400);
+				// #endif
+			},
+			initWarpRect() {
+				return new Promise(resolve => {
+					setTimeout(() => {
+						// 延时确保dom已渲染, 不使用$nextclick
+						let query = uni.createSelectorQuery();
+						// #ifndef MP-ALIPAY
+						query = query.in(this); // 支付宝小程序不支持in(this),而字节跳动小程序必须写in(this), 否则都取不到值
+						// #endif
+						query
+							.select('#' + this.viewId)
+							.boundingClientRect(data => {
+								resolve(data);
+							})
+							.exec();
+					}, 20);
+				});
+			}
+		},
+		mounted() {
+			this.scrollCenter(); // 滚动到当前下标
+		}
+	};
+</script>
+
+<style lang="scss">
+	.me-tabs {
+		position: relative;
+		background-color: #fff;
+		box-sizing: border-box;
+		overflow-y: hidden;
+		height: 96rpx;
+
+		&.tabs-fixed {
+			z-index: 990;
+			position: fixed;
+			top: var(--window-top);
+			left: 0;
+			width: 100%;
+		}
+
+		.tabs-item {
+			position: relative;
+			white-space: nowrap;
+			box-sizing: border-box;
+		}
+
+		// 平分的方式显示item
+		.tabs-flex {
+			display: flex;
+
+			.tab-item {
+				margin-right: 20rpx;
+				position: relative;
+				color: $uni-primary;
+				position: relative;
+				text-align: center;
+				box-sizing: border-box;
+				height: 96rpx;
+				display: flex;
+				align-items: center;
+
+				&:last-child {
+					margin-right: 0px;
+					color: $uni-secondary-color;
+				}
+
+				.inherit-icons {
+					margin-left: 20rpx;
+				}
+
+				.line {
+					width: 40rpx;
+				}
+			}
+		}
+	}
+</style>

+ 231 - 0
virgo.wzfrontend/yui_wx/components/uni-mall-list/uni-mall-list.vue

@@ -0,0 +1,231 @@
+<template>
+	<view>
+		<view class="box-head"><uni-mall-head ref="refUniMallHead" @change="tabChange"></uni-mall-head></view>
+		<pinapp-empty-page title="暂无部门或成员" v-if="currentData.length === 0 && userData.length === 0"></pinapp-empty-page>
+		<view class="box-list">
+			<view class="box-list-item"
+				:class="[item.children && item.children.length ? 'box-list-item-department-icon' : '','box-list-item-department']"
+				:key="item.id" @click="handelClickItem('depart',item)" v-for="item in currentData">
+				<view class="box-list-item-department-pic">
+					<uni-icons type="staff-filled" color="#08979c" size="24"></uni-icons>
+				</view>
+				<view class="box-list-item-right">
+					<view class="box-list-item-text">{{ item.name }}</view>
+					<uni-icons class="inherit-icons" type="right" color="#8c8c8c"></uni-icons>
+				</view>
+			</view>
+			<view class="box-list-item box-list-item-user" :key="item.id" @click="handelClickItem('user',item)"
+				v-for="item in userData">
+				<view class="box-list-item-user-pic">
+					<image v-if="item.pic" :src="item.portrait"></image>
+					<text v-else>{{getUserName(item.name)}}</text>
+				</view>
+				<view class="box-list-item-right">
+					<view class="box-list-item-text">{{ item.name }}</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import uniMallHead from '@/components/uni-mall-head/uni-mall-head.vue';
+	import pinappEmptyPage from "@/components/pinapp-empty-page/pinapp-empty-page.vue"
+	export default {
+		props: {
+			dataList: {
+				type: Array,
+				default: () => []
+			},
+			defaultHeadList: {
+				type: Object,
+				default: () => {}
+			}
+		},
+		components: {
+			uniMallHead,
+			pinappEmptyPage
+		},
+		data() {
+			return {
+				currentData: [],
+				userData: []
+			};
+		},
+		mounted() {
+			this.init();
+		},
+		watch: {
+			dataList() {
+				this.currentData = this.dataList;
+			}
+		},
+		methods: {
+			init() {
+				if (Object.keys(this.defaultHeadList).length > 0) {
+					this.$refs.refUniMallHead.addTab(this.defaultHeadList);
+				}
+				this.currentData = this.dataList;
+				this.userData = [];
+			},
+			tabChange(obj) {
+				this.getCurrentData(obj.id, this.dataList);
+			},
+			handelClickItem(type, item) {
+				console.log(type);
+				if (type === 'depart') {
+					if (item.children) {
+						this.$refs.refUniMallHead.addTab({
+							name: item.name,
+							id: item.id
+						});
+						this.currentData = item.children;
+						this.userData = item.users || [];
+					}
+				}
+				this.$emit('change', item);
+			},
+			getUserName(name) {
+				if (name.length === 0) {
+					return '';
+				} else if (name.length <= 2) {
+					return name;
+				} else if (name.length >= 3) {
+					return name.substring(name.length - 2);
+				}
+			},
+			getCurrentData(id, data) {
+				if (id === this.defaultHeadList.id) {
+					this.currentData = this.dataList;
+					this.userData = [];
+				} else {
+					if (data.length > 0) {
+						data.map(item => {
+							if (item.id === id) {
+								this.currentData = item.children || [];
+								this.userData = item.users || [];
+							}
+							if (item.children && item.children.length > 0) {
+								this.getCurrentData(id, item.children);
+							}
+						});
+					}
+				}
+			}
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	.box-head {
+		position: fixed;
+		left: 0px;
+		width: 100%;
+		height: 96rpx;
+		background: #ffffff;
+		padding-left: 34rpx;
+		box-sizing: border-box;
+		overflow-y: hidden;
+		z-index: 999;
+		border-top: 1px solid $uni-border-1;
+	}
+
+	.box-list {
+		padding-top: 52px;
+
+		.box-list-item {
+			position: relative;
+			height: 60px;
+			display: flex;
+			align-items: center;
+			padding: 0 14px;
+			box-sizing: border-box;
+			background: #ffffff;
+			margin-bottom: 1px;
+
+			&:active {
+				background: #f2f3f4;
+			}
+
+			&:last-child {
+				margin-bottom: 0px;
+			}
+
+			.box-list-item-department-pic {
+				width: 40px;
+				height: 40px;
+				background: rgba(8, 151, 156, 0.1);
+				border-radius: 10px;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				margin-right: 14px;
+				overflow: hidden;
+
+				image {
+					width: 20px;
+					height: 20px;
+				}
+			}
+
+			.box-list-item-user-pic {
+				width: 40px;
+				height: 40px;
+				background: $uni-primary;
+				border-radius: 10px;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				margin-right: 14px;
+				overflow: hidden;
+
+				image {
+					width: 40px;
+					height: 40px;
+				}
+
+				text {
+					color: #ffffff;
+					font-size: 12px;
+				}
+			}
+
+			.box-list-item-right {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				flex: 1;
+			}
+
+			.box-list-item-user-tag {
+				text {
+					box-sizing: border-box;
+					border-radius: 8px;
+					padding: 4px 8px;
+					font-size: 10px;
+					margin-left: 5px;
+
+					&:first-child {
+						margin-left: 0px;
+					}
+
+					&:nth-child(1) {
+						background: rgba(49, 210, 144, 0.05);
+						border: 1px solid #31d290;
+						color: #31d290;
+					}
+
+					&:nth-child(2) {
+						background: rgba(55, 127, 255, 0.05);
+						border: 1px solid #377fff;
+						color: #377fff;
+					}
+				}
+			}
+		}
+
+		.box-list-item-department+.box-list-item-user {
+			margin-top: 10px;
+		}
+	}
+</style>

+ 63 - 63
virgo.wzfrontend/yui_wx/manifest.json

@@ -1,63 +1,63 @@
-{
-	"name": "yui_wx",
-	"appid": "__UNI__FECBE11",
-	"description": "",
-	"versionName": "1.0.0",
-	"versionCode": "100",
-	"transformPx": false,
-	"app-plus": {
-		/* 5+App特有相关 */
-		"usingComponents": true,
-		"nvueCompiler": "uni-app",
-		"nvueStyleCompiler": "uni-app",
-		"splashscreen": {
-			"alwaysShowBeforeRender": true,
-			"waiting": true,
-			"autoclose": true,
-			"delay": 0
-		},
-		"modules": {},
-		/* 模块配置 */
-		"distribute": {
-			/* 应用发布信息 */
-			"android": {
-				/* android打包配置 */
-				"permissions": [
-					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
-					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-					"<uses-feature android:name=\"android.hardware.camera\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-				]
-			},
-			"ios": {},
-			/* ios打包配置 */
-			"sdkConfigs": {}
-		}
-	},
-	/* SDK配置 */
-	"quickapp": {},
-	/* 快应用特有相关 */
-	"mp-weixin": {
-		"appid": "wx3c006d364161d240",
-		"setting": {
-			"urlCheck": false,
-			"minified": true,
-			"postcss": true
-		},
-		"usingComponents": true,
-		"permission": {},
-		"lazyCodeLoading": "requiredComponents"
-	},
-	"vueVersion": "2"
-}
+{
+    "name" : "yui_wx",
+    "appid" : "__UNI__FECBE11",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    "app-plus" : {
+        /* 5+App特有相关 */
+        "usingComponents" : true,
+        "nvueCompiler" : "uni-app",
+        "nvueStyleCompiler" : "uni-app",
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        "modules" : {},
+        /* 模块配置 */
+        "distribute" : {
+            /* 应用发布信息 */
+            "android" : {
+                /* android打包配置 */
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            "ios" : {},
+            /* ios打包配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* SDK配置 */
+    "quickapp" : {},
+    /* 快应用特有相关 */
+    "mp-weixin" : {
+        "appid" : "wx3c006d364161d240",
+        "setting" : {
+            "urlCheck" : false,
+            "minified" : true,
+            "postcss" : true
+        },
+        "usingComponents" : true,
+        "permission" : {},
+        "lazyCodeLoading" : "requiredComponents"
+    },
+    "vueVersion" : "2"
+}

+ 123 - 121
virgo.wzfrontend/yui_wx/pages.json

@@ -1,119 +1,121 @@
 {
 	"pages": [{
-			"path": "pages/highseas/highseas",
-			"style": {
-				"navigationStyle": "custom",
-				"navigationBarTitleText": ""
-			}
-		}, {
-			"path": "pages/index/index",
-			"style": {
-				"navigationBarTitleText": "工作台"
-			}
-		}, {
-			"path": "pages/my/my",
-			"style": {
-				"navigationBarTitleText": "个人中心"
-			}
-		},
-		{
-			"path": "pages/login/login",
-			"style": {
-				"navigationBarTitleText": "登录"
-			}
-		}, {
-			"path": "pages/myHouse/myHouse",
-			"style": {
-				"navigationBarTitleText": "我的房源"
-			}
-		}, {
-			"path": "pages/message/message",
-			"style": {
-				"navigationBarTitleText": "消息"
-			}
-		}, {
-			"path": "pages/city/city",
-			"style": {
-				"navigationBarTitleText": "选择城市"
-			}
-		}, {
-			"path": "pages/data/data",
-			"style": {
-				"navigationBarTitleText": "数据"
-			}
-		}, {
-			"path": "pages/search/search",
-			"style": {
-				"navigationStyle": "custom",
-				"navigationBarTitleText": ""
-			}
-		}, {
-			"path": "pages/searchlist/searchlist",
-			"style": {
-				"navigationBarTitleText": "搜索列表"
-			}
-		}, {
-			"path": "pages/project/project",
-			"style": {
-				"navigationBarTitleText": "项目详情"
-			}
-		}, {
-			"path": "pages/house/house",
-			"style": {
-				"navigationBarTitleText": "房源详情"
-			}
-		}, {
-			"path": "pages/visitor/visitor",
-			"style": {
-				"navigationBarTitleText": "访客记录"
-			}
-		}, {
-			"path": "pages/reservation/reservation",
-			"style": {
-				"navigationBarTitleText": "预约看房"
-			}
-		}, {
-			"path": "pages/chat/chat",
-			"style": {
-				"navigationBarTitleText": "会话"
-			}
-		}, {
-			"path": "pages/myDetail/myDetail",
-			"style": {
-				"navigationBarTitleText": "个人信息"
-			}
-		}, {
-			"path": "pages/person/person",
-			"style": {
-				"navigationBarTitleText": "房东信息"
-			}
-		}, {
-			"path": "pages/fans/fans",
-			"style": {
-				"navigationBarTitleText": "粉丝列表"
-			}
-		}, {
-			"path": "pages/attention/attention",
-			"style": {
-				"navigationBarTitleText": "关注列表"
-			}
-		}, {
-			"path": "pages/collect/collect",
-			"style": {
-				"navigationBarTitleText": "收藏列表"
-			}
-		}, {
-			"path": "pages/clientDetail/clientDetail",
-			"style": {
-				"navigationBarTitleText": "客户详情"
-			}
-		}, {
-			"path": "pages/client/client",
-			"style": {
-				"navigationBarTitleText": "我的客户"
-			}
+		"path": "pages/highseas/highseas",
+		"style": {
+			"navigationStyle": "custom",
+			"navigationBarTitleText": ""
+		}
+	}, {
+		"path": "pages/index/index",
+		"style": {
+			"navigationBarTitleText": "工作台"
+		}
+	}, {
+		"path": "pages/my/my",
+		"style": {
+			"navigationBarTitleText": "个人中心"
+		}
+	}, {
+		"path": "pages/login/login",
+		"style": {
+			"navigationBarTitleText": "登录"
+		}
+	}, {
+		"path": "pages/myHouse/myHouse",
+		"style": {
+			"navigationBarTitleText": "我的房源"
+		}
+	}, {
+		"path": "pages/message/message",
+		"style": {
+			"navigationBarTitleText": "消息"
 		}
-	],
+	}, {
+		"path": "pages/city/city",
+		"style": {
+			"navigationBarTitleText": "选择城市"
+		}
+	}, {
+		"path": "pages/data/data",
+		"style": {
+			"navigationBarTitleText": "数据"
+		}
+	}, {
+		"path": "pages/searchlist/searchlist",
+		"style": {
+			"navigationBarTitleText": "搜索列表"
+		}
+	}, {
+		"path": "pages/project/project",
+		"style": {
+			"navigationBarTitleText": "项目详情"
+		}
+	}, {
+		"path": "pages/house/house",
+		"style": {
+			"navigationBarTitleText": "房源详情"
+		}
+	}, {
+		"path": "pages/visitor/visitor",
+		"style": {
+			"navigationBarTitleText": "访客记录"
+		}
+	}, {
+		"path": "pages/reservation/reservation",
+		"style": {
+			"navigationBarTitleText": "预约看房"
+		}
+	}, {
+		"path": "pages/chat/chat",
+		"style": {
+			"navigationBarTitleText": "会话"
+		}
+	}, {
+		"path": "pages/myDetail/myDetail",
+		"style": {
+			"navigationBarTitleText": "个人信息"
+		}
+	}, {
+		"path": "pages/person/person",
+		"style": {
+			"navigationBarTitleText": "房东信息"
+		}
+	}, {
+		"path": "pages/fans/fans",
+		"style": {
+			"navigationBarTitleText": "粉丝列表"
+		}
+	}, {
+		"path": "pages/attention/attention",
+		"style": {
+			"navigationBarTitleText": "关注列表"
+		}
+	}, {
+		"path": "pages/collect/collect",
+		"style": {
+			"navigationBarTitleText": "收藏列表"
+		}
+	}, {
+		"path": "pages/clientDetail/clientDetail",
+		"style": {
+			"navigationBarTitleText": "客户详情"
+		}
+	}, {
+		"path": "pages/client/client",
+		"style": {
+			"navigationBarTitleText": "我的客户"
+		}
+	}, {
+		"path": "pages/organization/organization",
+		"style": {
+			"navigationBarTitleText": "我的公司"
+		}
+	}, {
+		"path": "pages/search/search",
+		"style": {
+			"navigationBarTitleText": "搜索"
+		}
+	}],
 	"tabBar": {
 		"color": "#8c8c8c",
 		"selectedColor": "#08979c",
@@ -124,23 +126,23 @@
 			"text": "首页"
 		}, {
 			"pagePath": "pages/message/message",
-			"iconPath": "static/image/tabbar/index.png",
-			"selectedIconPath": "static/image/tabbar/index-active.png",
+			"iconPath": "static/image/tabbar/chat.png",
+			"selectedIconPath": "static/image/tabbar/chat-active.png",
 			"text": "消息"
 		}, {
 			"pagePath": "pages/highseas/highseas",
-			"iconPath": "static/image/tabbar/index.png",
-			"selectedIconPath": "static/image/tabbar/index-active.png",
+			"iconPath": "static/image/tabbar/highseas.png",
+			"selectedIconPath": "static/image/tabbar/highseas-active.png",
 			"text": "公海"
 		}, {
 			"pagePath": "pages/data/data",
-			"iconPath": "static/image/tabbar/index.png",
-			"selectedIconPath": "static/image/tabbar/index-active.png",
+			"iconPath": "static/image/tabbar/data.png",
+			"selectedIconPath": "static/image/tabbar/data-active.png",
 			"text": "数据"
 		}, {
 			"pagePath": "pages/my/my",
-			"iconPath": "static/image/tabbar/index.png",
-			"selectedIconPath": "static/image/tabbar/index-active.png",
+			"iconPath": "static/image/tabbar/my.png",
+			"selectedIconPath": "static/image/tabbar/my-active.png",
 			"text": "我的"
 		}]
 	},

+ 1 - 1
virgo.wzfrontend/yui_wx/pages/login/login.vue

@@ -144,7 +144,7 @@
 				uni.login({
 					provider: 'weixin',
 					success: loginRes => {
-						// if (postData.phone != '18888888888') postData['code'] = loginRes.code;
+						if (postData.pCode) postData['code'] = loginRes.code;
 						login(postData).then(this.successFunc);
 					}
 				})

+ 10 - 7
virgo.wzfrontend/yui_wx/pages/message/message.vue

@@ -34,17 +34,20 @@
 				chatList: []
 			}
 		},
+		onLoad() {
+			this.$chat.getConversationList(res => {
+				if (res.code == 200) {
+					this.chatList = res.data;
+				}
+			})
+		},
 		onShow() {
-			//监听会话列表更新
-			YeIMUniSDK.getInstance().addEventListener(YeIMUniSDKDefines.EVENT.CONVERSATION_LIST_CHANGED, (list) => {
-				this.chatList = list;
-			});
+			uni.$on('changeChatList', (res) => {
+				this.chatList = res;
+			})
 		},
 		components: {
 			pinappEmptyPage
-		},
-		onLoad() {
-
 		},
 		methods: {
 

+ 86 - 54
virgo.wzfrontend/yui_wx/pages/my/my.vue

@@ -23,59 +23,66 @@
 				</view>
 			</view>
 			<view class="my-list">
-				<view class="my-item" @click="$navigateTo('/pages/collect/collect')">
-					<view class="my-icon">
-						<uni-icons type="staff-filled" color="#fff" size="24"></uni-icons>
+				<view class="my-list-box">
+					<view class="my-item" @click="$navigateTo('/pages/collect/collect')">
+						<view class="my-icon bg1">
+							<uni-icons custom-prefix="iconfont" type="icon-wodeshoucangshixin" color="#fff"
+								size="20"></uni-icons>
+						</view>
+						<view class="item-content">
+							我的收藏
+						</view>
+						<view class="my-forward">
+							<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
+						</view>
 					</view>
-					<view class="item-content">
-						我的收藏
+					<view class="my-item" @click="$navigateTo('/pages/client/client')">
+						<view class="my-icon bg2">
+							<uni-icons custom-prefix="iconfont" type="icon-wodekehu" color="#fff" size="20">
+							</uni-icons>
+						</view>
+						<view class="item-content">
+							我的客户
+						</view>
+						<view class="my-forward">
+							<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
+						</view>
 					</view>
-					<view class="my-forward">
-						<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
+					<view class="my-item" @click="$navigateTo('/pages/organization/organization')">
+						<view class="my-icon bg3">
+							<uni-icons custom-prefix="iconfont" type="icon-wodegongsi-gaoliang" color="#fff" size="22">
+							</uni-icons>
+						</view>
+						<view class="item-content">
+							我的公司
+						</view>
+						<view class="my-forward">
+							<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
+						</view>
 					</view>
-				</view>
-				<view class="my-item" @click="$navigateTo('/pages/client/client')">
-					<view class="my-icon">
-						<uni-icons type="staff-filled" color="#fff" size="24"></uni-icons>
-					</view>
-					<view class="item-content">
-						我的客户
-					</view>
-					<view class="my-forward">
-						<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
-					</view>
-				</view>
-				<view class="my-item">
-					<view class="my-icon">
-						<uni-icons type="staff-filled" color="#fff" size="24"></uni-icons>
-					</view>
-					<view class="item-content">
-						我的公司
+					<view class="my-item">
+						<view class="my-icon bg4">
+							<uni-icons custom-prefix="iconfont" type="icon-wodexiazaizhongxin" color="#fff" size="18">
+							</uni-icons>
+						</view>
+						<view class="item-content">
+							我的下载
+						</view>
+						<view class="my-forward">
+							<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
+						</view>
 					</view>
-					<view class="my-forward">
-						<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
-					</view>
-				</view>
-				<view class="my-item">
-					<view class="my-icon">
-						<uni-icons type="staff-filled" color="#fff" size="24"></uni-icons>
-					</view>
-					<view class="item-content">
-						我的下载
-					</view>
-					<view class="my-forward">
-						<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
-					</view>
-				</view>
-				<view class="my-item">
-					<view class="my-icon">
-						<uni-icons type="staff-filled" color="#fff" size="24"></uni-icons>
-					</view>
-					<view class="item-content">
-						客服中心
-					</view>
-					<view class="my-forward">
-						<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
+					<view class="my-item">
+						<view class="my-icon bg5">
+							<uni-icons custom-prefix="iconfont" type="icon-kefuzhongxin" color="#fff" size="24">
+							</uni-icons>
+						</view>
+						<view class="item-content">
+							客服中心
+						</view>
+						<view class="my-forward">
+							<uni-icons type="forward" size="18" color="#c1c0c8"></uni-icons>
+						</view>
 					</view>
 				</view>
 			</view>
@@ -202,26 +209,51 @@
 			padding: 0 30rpx;
 			box-sizing: border-box;
 
+			.my-list-box {
+				border-radius: 24rpx;
+				box-shadow: 1px 1px 12px rgba(164, 164, 164, 0.25);
+				overflow: hidden;
+			}
+
 			.my-item {
 				display: flex;
 				align-items: center;
-				border-bottom: 2rpx solid $uni-border-1;
-				padding: 20rpx 0;
+				padding: 20rpx 30rpx;
 			}
 
-			.my-item:first-child {
-				border-top: 2rpx solid $uni-border-1;
+			.my-item:active {
+				background: $uni-background-color;
 			}
 
 			.my-icon {
 				width: 80rpx;
 				height: 80rpx;
-				border-radius: 50%;
+				border-radius: 16rpx;
 				display: flex;
 				align-items: center;
 				justify-content: center;
 				margin-right: 20rpx;
 				background: #c1c0c8;
+
+				&.bg1 {
+					background: #88d498;
+				}
+
+				&.bg2 {
+					background: #ffb997;
+				}
+
+				&.bg3 {
+					background: #7ad9ff;
+				}
+
+				&.bg4 {
+					background: #9ac0cd;
+				}
+
+				&.bg5 {
+					background: #40e0d0;
+				}
 			}
 
 			.my-forward {

+ 1 - 1
virgo.wzfrontend/yui_wx/pages/myDetail/myDetail.vue

@@ -44,9 +44,9 @@
 					content: '是否退出登录',
 					success: res => {
 						if (res.confirm) {
+							this.$chat.disConnect();
 							uni.removeStorageSync('token');
 							uni.removeStorageSync('chatToken');
-							this.$chat.disConnect();
 							uni.switchTab({
 								url: '/pages/highseas/highseas'
 							})

+ 47 - 0
virgo.wzfrontend/yui_wx/pages/organization/organization.vue

@@ -0,0 +1,47 @@
+<template>
+	<view>
+		<uni-mall-list :dataList="dataList" :defaultHeadList="defaultHeadList" @change="handleChange"></uni-mall-list>
+	</view>
+</template>
+
+<script>
+	import {
+		getPartList
+	} from '@/request/api/organization.js'
+	import uniMallList from '@/components/uni-mall-list/uni-mall-list.vue';
+	export default {
+		components: {
+			uniMallList
+		},
+		data() {
+			return {
+				defaultHeadList: {},
+				dataList: []
+			};
+		},
+		onLoad() {
+			this.defaultHeadList = {
+				name: this.$store.getters.organization.name,
+				id: new Date().getTime()
+			}
+			this.init();
+		},
+		methods: {
+			init() {
+				getPartList(38, 9).then(res => {
+					if (res.code === 200) {
+						this.dataList = res.data;
+					}
+					console.log(res);
+				})
+			},
+			handleChange(item) {
+				if (item.type === 'user') {
+
+				}
+			}
+		}
+	};
+</script>
+
+<style></style>

+ 13 - 69
virgo.wzfrontend/yui_wx/pages/search/search.vue

@@ -1,19 +1,11 @@
 <template>
 	<view class="search-container">
-		<navbar>
-			<view class="nav">
-				<view class="nav-back" @click="$navigateBack()">
-					<uni-icons type="left" size="20"></uni-icons>
-				</view>
-				<input type="text" class="nav-search" placeholder="请输入房源名称或项目名称" v-model="searchValue" focus
-					confirm-type="search" @confirm="search"
-					:style="'height:' + boundingClientRect.height + 'px;border-radius:' + boundingClientRect.height + 'px;line-height:'+(boundingClientRect.height-2)+'px'" />
-				<view class="wx-operation"
-					:style="'width:' + boundingClientRect.width + 'px;height:'+ boundingClientRect.height+'px;'">
-				</view>
-			</view>
-		</navbar>
-		<view class="search-tag" :style="'margin-top: '+getNavBarHeight()+'rpx;'">
+		<view class="search-box">
+			<uv-search :showAction="true" actionText="搜索" placeholder="请输入房源或项目名称" :animation="false"
+				v-model="searchValue" @search="search" @custom="search">
+			</uv-search>
+		</view>
+		<view class="search-tag">
 			<view class="tag-title">标签列表</view>
 			<view class="tag-list">
 				<view class="tag-item">
@@ -37,77 +29,29 @@
 </template>
 
 <script>
-	import navbar from "@/components/common/navbar.vue";
 	export default {
 		data() {
 			return {
-				boundingClientRect: {},
 				searchValue: ''
 			}
 		},
-		onShow() {
-			this.boundingClientRect = wx.getMenuButtonBoundingClientRect();
-		},
+		onShow() {},
 		methods: {
-			// 获取状态栏高度
-			geStatusBarHeight() {
-				return uni.getSystemInfoSync()['statusBarHeight']
-			},
-			// 获取导航栏高度
-			getNavBarHeight() {
-				// #ifdef MP-WEIXIN
-				let menuButtonInfo = uni.getMenuButtonBoundingClientRect()
-				// 导航栏高度 = 胶囊高度 + 上间距 + 下间距 + 微调	(menuButtonInfo.top - uni.getSystemInfoSync()['statusBarHeight'] = 上间距)	        
-				let navbarHeight = menuButtonInfo.height + (menuButtonInfo.top - uni.getSystemInfoSync()[
-					'statusBarHeight']) * 2 + 2
-				// #endif
-				// #ifdef APP-PLUS || H5
-				let navbarHeight = 44
-				// #endif
-				return (navbarHeight + this.geStatusBarHeight() + 15) * 2;
-			},
 			search() {
 				this.$navigateTo('/pages/searchlist/searchlist?searchValue=' + this.searchValue);
 			}
-		},
-		components: {
-			navbar
 		}
 	}
 </script>
 
 <style lang="scss">
 	.search-container {
-		.nav {
-			height: 100%;
-			background: #fff;
-			width: 100%;
-			display: flex;
-			align-items: center;
-
-			.nav-back {
-				padding-left: 10rpx;
-			}
-
-			.nav-search {
-				flex: 1;
-				width: 0;
-				border: 1px solid $uni-border-1;
-				line-height: 1;
-				padding-left: 30rpx;
-				margin: 0 20rpx;
-				box-sizing: border-box;
-				margin-bottom: 4rpx;
-				font-weight: 200;
-				height: 64rpx;
-				border-radius: 64rpx;
-				line-height: 60rpx;
-			}
-
-			.wx-operation {
-				margin-right: 8px;
-				margin-bottom: 4rpx;
-			}
+		.search-box {
+			border-top: 1px solid $uni-border-1;
+			background: #Fff;
+			margin-bottom: 20rpx;
+			padding: 20rpx 10rpx;
+			padding-left: 20rpx;
 		}
 
 		.search-tag {

+ 25 - 0
virgo.wzfrontend/yui_wx/request/api/organization.js

@@ -0,0 +1,25 @@
+import {
+	request
+} from '@/request/request.js';
+/* 
+ * 获取组织项目部门列表
+ * 
+ * 
+ */
+export function getPartList(organizationId, projectId) {
+	return request({
+		url: `/manager/role/${organizationId}/${projectId}`,
+		method: 'get'
+	})
+}
+/* 
+ * 获取组织项目部门用户列表
+ * 
+ * 
+ */
+export function getUserListByPart(data) {
+	return request({
+		url: `/manager/user/list/${data.organizationId}/${data.partId}`,
+		method: 'post'
+	})
+}

+ 61 - 41
virgo.wzfrontend/yui_wx/static/font/iconfont.css

@@ -1,41 +1,61 @@
-@font-face {
-	font-family: "iconfont";
-	/* Project id 4636045 */
-	src: url('/static/font/iconfont.ttf?t=1722234699227') format('truetype');
-}
-
-.iconfont {
-	font-family: "iconfont" !important;
-	font-size: 16px;
-	font-style: normal;
-	-webkit-font-smoothing: antialiased;
-	-moz-osx-font-smoothing: grayscale;
-}
-
-.icon-gouwu:before {
-	content: "\e7ed";
-}
-
-.icon-zhishiku:before {
-	content: "\e684";
-}
-
-.icon-tubiao_-:before {
-	content: "\e6ff";
-}
-
-.icon-wifi:before {
-	content: "\ec81";
-}
-
-.icon-yunzhineng:before {
-	content: "\e696";
-}
-
-.icon-jiaotong:before {
-	content: "\e634";
-}
-
-.icon-gongyuan:before {
-	content: "\e617";
-}
+@font-face {
+  font-family: "iconfont"; /* Project id 4636045 */
+  src: url('@/static/font/iconfont.ttf') format('woff2');
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-wodeshoucangshixin:before {
+  content: "\e62c";
+}
+
+.icon-wodekehu:before {
+  content: "\e608";
+}
+
+.icon-wodexiazaizhongxin:before {
+  content: "\e67d";
+}
+
+.icon-kefuzhongxin:before {
+  content: "\e621";
+}
+
+.icon-wodegongsi-gaoliang:before {
+  content: "\e676";
+}
+
+.icon-gouwu:before {
+  content: "\e7ed";
+}
+
+.icon-zhishiku:before {
+  content: "\e684";
+}
+
+.icon-tubiao_-:before {
+  content: "\e6ff";
+}
+
+.icon-wifi:before {
+  content: "\ec81";
+}
+
+.icon-yunzhineng:before {
+  content: "\e696";
+}
+
+.icon-jiaotong:before {
+  content: "\e634";
+}
+
+.icon-gongyuan:before {
+  content: "\e617";
+}
+

TEMPAT SAMPAH
virgo.wzfrontend/yui_wx/static/font/iconfont.ttf


TEMPAT SAMPAH
virgo.wzfrontend/yui_wx/static/image/tabbar/chat-active.png


TEMPAT SAMPAH
virgo.wzfrontend/yui_wx/static/image/tabbar/chat.png


TEMPAT SAMPAH
virgo.wzfrontend/yui_wx/static/image/tabbar/data-active.png


TEMPAT SAMPAH
virgo.wzfrontend/yui_wx/static/image/tabbar/data.png


TEMPAT SAMPAH
virgo.wzfrontend/yui_wx/static/image/tabbar/highseas-active.png


TEMPAT SAMPAH
virgo.wzfrontend/yui_wx/static/image/tabbar/highseas.png


TEMPAT SAMPAH
virgo.wzfrontend/yui_wx/static/image/tabbar/my-active.png


TEMPAT SAMPAH
virgo.wzfrontend/yui_wx/static/image/tabbar/my.png


+ 2 - 1
virgo.wzfrontend/yui_wx/static/scss/common.scss

@@ -103,7 +103,8 @@ button[type=primary]{
 		box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
 		display: flex;
 		align-items: center;
-		padding: 0 30rpx;
+		padding: 0 30rpx;
+		margin-bottom: 20rpx;
 	}
 
 	.fans-avatar {

+ 28 - 2
virgo.wzfrontend/yui_wx/uitls/chat.js

@@ -13,6 +13,7 @@ const connect = success => {
 		if (success) success();
 		return;
 	}
+	console.log(userIds);
 	YeIMUniSDK.getInstance().connect({
 		userId: userIds,
 		token: uni.getStorageSync('chatToken'),
@@ -71,9 +72,11 @@ export default {
 		connect(() => {
 			YeIMUniSDK.getInstance().getConversationList({
 				page: 1, //页码
-				limit: 20, //每页数量
+				limit: 100, //每页数量
 				success: success,
-				fail: (err) => {}
+				fail: (err) => {
+					console.log('error');
+				}
 			});
 		});
 	},
@@ -147,5 +150,28 @@ export default {
 	},
 	disConnect() {
 		YeIMUniSDK.getInstance().disConnect();
+	},
+	listenerLogin() {
+		//监听登陆互踢,当同一用户重复登录时触发
+		YeIMUniSDK.getInstance().addEventListener(YeIMUniSDKDefines.EVENT.KICKED_OUT, () => {
+			uni.removeStorageSync('token');
+			uni.removeStorageSync('chatToken');
+			uni.showToast({
+				title: '该用户已在其他设备登录',
+				icon: 'none'
+			})
+			uni.switchTab({
+				url: '/pages/highseas/highseas'
+			});
+		});
+	},
+	listenerList() {
+		connect(() => {
+			//监听会话列表更新
+			YeIMUniSDK.getInstance().addEventListener(YeIMUniSDKDefines.EVENT.CONVERSATION_LIST_CHANGED, (
+				list) => {
+				uni.$emit('changeChatList', list);
+			});
+		})
 	}
 }

+ 9 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/changelog.md

@@ -0,0 +1,9 @@
+## 1.0.3(2023-08-14)
+1. 新增参数textStyle,自定义文本样式
+## 1.0.2(2023-06-27)
+优化
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+1. 新增uv-loading-icon组件

+ 67 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/components/uv-loading-icon/props.js

@@ -0,0 +1,67 @@
+export default {
+	props: {
+		// 是否显示组件
+		show: {
+			type: Boolean,
+			default: true
+		},
+		// 颜色
+		color: {
+			type: String,
+			default: '#909193'
+		},
+		// 提示文字颜色
+		textColor: {
+			type: String,
+			default: '#909193'
+		},
+		// 文字和图标是否垂直排列
+		vertical: {
+			type: Boolean,
+			default: false
+		},
+		// 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形
+		mode: {
+			type: String,
+			default: 'spinner'
+		},
+		// 图标大小,单位默认px
+		size: {
+			type: [String, Number],
+			default: 24
+		},
+		// 文字大小
+		textSize: {
+			type: [String, Number],
+			default: 15
+		},
+		// 文字样式
+		textStyle: {
+			type: Object,
+			default () {
+				return {}
+			}
+		},
+		// 文字内容
+		text: {
+			type: [String, Number],
+			default: ''
+		},
+		// 动画模式 https://www.runoob.com/cssref/css3-pr-animation-timing-function.html
+		timingFunction: {
+			type: String,
+			default: 'linear'
+		},
+		// 动画执行周期时间
+		duration: {
+			type: [String, Number],
+			default: 1200
+		},
+		// mode=circle时的暗边颜色
+		inactiveColor: {
+			type: String,
+			default: ''
+		},
+		...uni.$uv?.props?.loadingIcon
+	}
+}

+ 347 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/components/uv-loading-icon/uv-loading-icon.vue

@@ -0,0 +1,347 @@
+<template>
+	<view
+		class="uv-loading-icon"
+		:style="[$uv.addStyle(customStyle)]"
+		:class="[vertical && 'uv-loading-icon--vertical']"
+		v-if="show"
+	>
+		<view
+			v-if="!webviewHide"
+			class="uv-loading-icon__spinner"
+			:class="[`uv-loading-icon__spinner--${mode}`]"
+			ref="ani"
+			:style="{
+				color: color,
+				width: $uv.addUnit(size),
+				height: $uv.addUnit(size),
+				borderTopColor: color,
+				borderBottomColor: otherBorderColor,
+				borderLeftColor: otherBorderColor,
+				borderRightColor: otherBorderColor,
+				'animation-duration': `${duration}ms`,
+				'animation-timing-function': mode === 'semicircle' || mode === 'circle' ? timingFunction : ''
+			}"
+		>
+			<block v-if="mode === 'spinner'">
+				<!-- #ifndef APP-NVUE -->
+				<view
+					v-for="(item, index) in array12"
+					:key="index"
+					class="uv-loading-icon__dot"
+				>
+				</view>
+				<!-- #endif -->
+				<!-- #ifdef APP-NVUE -->
+				<!-- 此组件内部图标部分无法设置宽高,即使通过width和height配置了也无效 -->
+				<loading-indicator
+					v-if="!webviewHide"
+					class="uv-loading-indicator"
+					:animating="true"
+					:style="{
+						color: color,
+						width: $uv.addUnit(size),
+						height: $uv.addUnit(size)
+					}"
+				/>
+				<!-- #endif -->
+			</block>
+		</view>
+		<text
+			v-if="text"
+			class="uv-loading-icon__text"
+			:style="[{
+				fontSize: $uv.addUnit(textSize),
+				color: textColor,
+			},$uv.addStyle(textStyle)]"
+		>{{text}}</text>
+	</view>
+</template>
+
+<script>
+	import { colorGradient } from '@/uni_modules/uv-ui-tools/libs/function/colorGradient.js'
+	import mpMixin from '@/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js'
+	import mixin from '@/uni_modules/uv-ui-tools/libs/mixin/mixin.js'
+	import props from './props.js';
+	// #ifdef APP-NVUE
+	const animation = weex.requireModule('animation');
+	// #endif
+	/**
+	 * loading 加载动画
+	 * @description 警此组件为一个小动画,目前用在uvui的loadmore加载更多和switch开关等组件的正在加载状态场景。
+	 * @tutorial https://www.uvui.cn/components/loading.html
+	 * @property {Boolean}			show			是否显示组件  (默认 true)
+	 * @property {String}			color			动画活动区域的颜色,只对 mode = flower 模式有效(默认#909193)
+	 * @property {String}			textColor		提示文本的颜色(默认#909193)
+	 * @property {Boolean}			vertical		文字和图标是否垂直排列 (默认 false )
+	 * @property {String}			mode			模式选择,见官网说明(默认 'circle' )
+	 * @property {String | Number}	size			加载图标的大小,单位px (默认 24 )
+	 * @property {String | Number}	textSize		文字大小(默认 15 )
+	 * @property {String | Number}	text			文字内容 
+	 * @property {Object}	textStyle 文字样式
+	 * @property {String}			timingFunction	动画模式 (默认 'ease-in-out' )
+	 * @property {String | Number}	duration		动画执行周期时间(默认 1200)
+	 * @property {String}			inactiveColor	mode=circle时的暗边颜色 
+	 * @property {Object}			customStyle		定义需要用到的外部样式
+	 * @example <uv-loading mode="circle"></uv-loading>
+	 */
+	export default {
+		name: 'uv-loading-icon',
+		mixins: [mpMixin, mixin, props],
+		data() {
+			return {
+				// Array.form可以通过一个伪数组对象创建指定长度的数组
+				// https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from
+				array12: Array.from({
+					length: 12
+				}),
+				// 这里需要设置默认值为360,否则在安卓nvue上,会延迟一个duration周期后才执行
+				// 在iOS nvue上,则会一开始默认执行两个周期的动画
+				aniAngel: 360, // 动画旋转角度
+				webviewHide: false, // 监听webview的状态,如果隐藏了页面,则停止动画,以免性能消耗
+				loading: false, // 是否运行中,针对nvue使用
+			}
+		},
+		computed: {
+			// 当为circle类型时,给其另外三边设置一个更轻一些的颜色
+			// 之所以需要这么做的原因是,比如父组件传了color为红色,那么需要另外的三个边为浅红色
+			// 而不能是固定的某一个其他颜色(因为这个固定的颜色可能浅蓝,导致效果没有那么细腻良好)
+			otherBorderColor() {
+				const lightColor = colorGradient(this.color, '#ffffff', 100)[80]
+				if (this.mode === 'circle') {
+					return this.inactiveColor ? this.inactiveColor : lightColor
+				} else {
+					return 'transparent'
+				}
+			}
+		},
+		watch: {
+			show(n) {
+				// nvue中,show为true,且为非loading状态,就重新执行动画模块
+				// #ifdef APP-NVUE
+				if (n && !this.loading) {
+					setTimeout(() => {
+						this.startAnimate()
+					}, 30)
+				}
+				// #endif
+			}
+		},
+		mounted() {
+			this.init()
+		},
+		methods: {
+			init() {
+				setTimeout(() => {
+					// #ifdef APP-NVUE
+					this.show && this.nvueAnimate()
+					// #endif
+					// #ifdef APP-PLUS 
+					this.show && this.addEventListenerToWebview()
+					// #endif
+				}, 20)
+			},
+			// 监听webview的显示与隐藏
+			addEventListenerToWebview() {
+				// webview的堆栈
+				const pages = getCurrentPages()
+				// 当前页面
+				const page = pages[pages.length - 1]
+				// 当前页面的webview实例
+				const currentWebview = page.$getAppWebview()
+				// 监听webview的显示与隐藏,从而停止或者开始动画(为了性能)
+				currentWebview.addEventListener('hide', () => {
+					this.webviewHide = true
+				})
+				currentWebview.addEventListener('show', () => {
+					this.webviewHide = false
+				})
+			},
+			// #ifdef APP-NVUE
+			nvueAnimate() {
+				// nvue下,非spinner类型时才需要旋转,因为nvue的spinner类型,使用了weex的
+				// loading-indicator组件,自带旋转功能
+				this.mode !== 'spinner' && this.startAnimate()
+			},
+			// 执行nvue的animate模块动画
+			startAnimate() {
+				this.loading = true
+				const ani = this.$refs.ani
+				if (!ani) return
+				animation.transition(ani, {
+					// 进行角度旋转
+					styles: {
+						transform: `rotate(${this.aniAngel}deg)`,
+						transformOrigin: 'center center'
+					},
+					duration: this.duration,
+					timingFunction: this.timingFunction,
+					// delay: 10
+				}, () => {
+					// 每次增加360deg,为了让其重新旋转一周
+					this.aniAngel += 360
+					// 动画结束后,继续循环执行动画,需要同时判断webviewHide变量
+					// nvue安卓,页面隐藏后依然会继续执行startAnimate方法
+					this.show && !this.webviewHide ? this.startAnimate() : this.loading = false
+				})
+			}
+			// #endif
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import '@/uni_modules/uv-ui-tools/libs/css/components.scss';
+	@import '@/uni_modules/uv-ui-tools/libs/css/color.scss';
+	$uv-loading-icon-color: #c8c9cc !default;
+	$uv-loading-icon-text-margin-left:4px !default;
+	$uv-loading-icon-text-color:$uv-content-color !default;
+	$uv-loading-icon-text-font-size:14px !default;
+	$uv-loading-icon-text-line-height:20px !default;
+	$uv-loading-width:30px !default;
+	$uv-loading-height:30px !default;
+	$uv-loading-max-width:100% !default;
+	$uv-loading-max-height:100% !default;
+	$uv-loading-semicircle-border-width: 2px !default;
+	$uv-loading-semicircle-border-color:transparent !default;
+	$uv-loading-semicircle-border-top-right-radius: 100px !default;
+	$uv-loading-semicircle-border-top-left-radius: 100px !default;
+	$uv-loading-semicircle-border-bottom-left-radius: 100px !default;
+	$uv-loading-semicircle-border-bottom-right-radiu: 100px !default;
+	$uv-loading-semicircle-border-style: solid !default;
+	$uv-loading-circle-border-top-right-radius: 100px !default;
+	$uv-loading-circle-border-top-left-radius: 100px !default;
+	$uv-loading-circle-border-bottom-left-radius: 100px !default;
+	$uv-loading-circle-border-bottom-right-radiu: 100px !default;
+	$uv-loading-circle-border-width:2px !default;
+	$uv-loading-circle-border-top-color:#e5e5e5 !default;
+	$uv-loading-circle-border-right-color:$uv-loading-circle-border-top-color !default;
+	$uv-loading-circle-border-bottom-color:$uv-loading-circle-border-top-color !default;
+	$uv-loading-circle-border-left-color:$uv-loading-circle-border-top-color !default;
+	$uv-loading-circle-border-style:solid !default;
+	$uv-loading-icon-host-font-size:0px !default;
+	$uv-loading-icon-host-line-height:1 !default;
+	$uv-loading-icon-vertical-margin:6px 0 0 !default;
+	$uv-loading-icon-dot-top:0 !default;
+	$uv-loading-icon-dot-left:0 !default;
+	$uv-loading-icon-dot-width:100% !default;
+	$uv-loading-icon-dot-height:100% !default;
+	$uv-loading-icon-dot-before-width:2px !default;
+	$uv-loading-icon-dot-before-height:25% !default;
+	$uv-loading-icon-dot-before-margin:0 auto !default;
+	$uv-loading-icon-dot-before-background-color:currentColor !default;
+	$uv-loading-icon-dot-before-border-radius:40% !default;
+
+	.uv-loading-icon {
+		/* #ifndef APP-NVUE */
+		// display: inline-flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		color: $uv-loading-icon-color;
+
+		&__text {
+			margin-left: $uv-loading-icon-text-margin-left;
+			color: $uv-loading-icon-text-color;
+			font-size: $uv-loading-icon-text-font-size;
+			line-height: $uv-loading-icon-text-line-height;
+		}
+
+		&__spinner {
+			width: $uv-loading-width;
+			height: $uv-loading-height;
+			position: relative;
+			/* #ifndef APP-NVUE */
+			box-sizing: border-box;
+			max-width: $uv-loading-max-width;
+			max-height: $uv-loading-max-height;
+			animation: uv-rotate 1s linear infinite;
+			/* #endif */
+		}
+
+		&__spinner--semicircle {
+			border-width: $uv-loading-semicircle-border-width;
+			border-color: $uv-loading-semicircle-border-color;
+			border-top-right-radius: $uv-loading-semicircle-border-top-right-radius;
+			border-top-left-radius: $uv-loading-semicircle-border-top-left-radius;
+			border-bottom-left-radius: $uv-loading-semicircle-border-bottom-left-radius;
+			border-bottom-right-radius: $uv-loading-semicircle-border-bottom-right-radiu;
+			border-style: $uv-loading-semicircle-border-style;
+		}
+
+		&__spinner--circle {
+			border-top-right-radius: $uv-loading-circle-border-top-right-radius;
+			border-top-left-radius: $uv-loading-circle-border-top-left-radius;
+			border-bottom-left-radius: $uv-loading-circle-border-bottom-left-radius;
+			border-bottom-right-radius: $uv-loading-circle-border-bottom-right-radiu;
+			border-width: $uv-loading-circle-border-width;
+			border-top-color: $uv-loading-circle-border-top-color;
+			border-right-color: $uv-loading-circle-border-right-color;
+			border-bottom-color: $uv-loading-circle-border-bottom-color;
+			border-left-color: $uv-loading-circle-border-left-color;
+			border-style: $uv-loading-circle-border-style;
+		}
+
+		&--vertical {
+			flex-direction: column
+		}
+	}
+
+	/* #ifndef APP-NVUE */
+	:host {
+		font-size: $uv-loading-icon-host-font-size;
+		line-height: $uv-loading-icon-host-line-height;
+	}
+
+	.uv-loading-icon {
+		&__spinner--spinner {
+			animation-timing-function: steps(12)
+		}
+
+		&__text:empty {
+			display: none
+		}
+
+		&--vertical &__text {
+			margin: $uv-loading-icon-vertical-margin;
+			color: $uv-content-color;
+		}
+
+		&__dot {
+			position: absolute;
+			top: $uv-loading-icon-dot-top;
+			left: $uv-loading-icon-dot-left;
+			width: $uv-loading-icon-dot-width;
+			height: $uv-loading-icon-dot-height;
+
+			&:before {
+				display: block;
+				width: $uv-loading-icon-dot-before-width;
+				height: $uv-loading-icon-dot-before-height;
+				margin: $uv-loading-icon-dot-before-margin;
+				background-color: $uv-loading-icon-dot-before-background-color;
+				border-radius: $uv-loading-icon-dot-before-border-radius;
+				content: " "
+			}
+		}
+	}
+
+	@for $i from 1 through 12 {
+		.uv-loading-icon__dot:nth-of-type(#{$i}) {
+			transform: rotate($i * 30deg);
+			opacity: 1 - 0.0625 * ($i - 1);
+		}
+	}
+
+	@keyframes uv-rotate {
+		0% {
+			transform: rotate(0deg)
+		}
+
+		to {
+			transform: rotate(1turn)
+		}
+	}
+
+	/* #endif */
+</style>

+ 87 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/package.json

@@ -0,0 +1,87 @@
+{
+  "id": "uv-loading-icon",
+  "displayName": "uv-loading-icon 加载动画 全面兼容vue3+2、app、h5、小程序等多端",
+  "version": "1.0.3",
+  "description": "此组件为一个小动画,目前用在uv-ui的uv-load-more加载更多等组件,还可以运用在项目中正在加载状态场景。",
+  "keywords": [
+    "uv-loading-icon",
+    "uvui",
+    "uv-ui",
+    "loading",
+    "加载动画"
+],
+  "repository": "",
+  "engines": {
+    "HBuilderX": "^3.1.0"
+  },
+  "dcloudext": {
+    "type": "component-vue",
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+    	"ads": "无",
+    	"data": "插件不采集任何数据",
+    	"permissions": "无"
+    },
+    "npmurl": ""
+  },
+  "uni_modules": {
+    "dependencies": [
+			"uv-ui-tools"
+		],
+    "encrypt": [],
+    "platforms": {
+			"cloud": {
+				"tcb": "y",
+				"aliyun": "y"
+			},
+			"client": {
+				"Vue": {
+					"vue2": "y",
+					"vue3": "y"
+				},
+				"App": {
+					"app-vue": "y",
+					"app-nvue": "y"
+				},
+				"H5-mobile": {
+					"Safari": "y",
+					"Android Browser": "y",
+					"微信浏览器(Android)": "y",
+					"QQ浏览器(Android)": "y"
+				},
+				"H5-pc": {
+					"Chrome": "y",
+					"IE": "y",
+					"Edge": "y",
+					"Firefox": "y",
+					"Safari": "y"
+				},
+				"小程序": {
+					"微信": "y",
+					"阿里": "y",
+					"百度": "y",
+					"字节跳动": "y",
+					"QQ": "y",
+					"钉钉": "u",
+					"快手": "u",
+					"飞书": "u",
+					"京东": "u"
+				},
+				"快应用": {
+					"华为": "u",
+					"联盟": "u"
+				}
+			}
+		}
+  }
+}

+ 19 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-loading-icon/readme.md

@@ -0,0 +1,19 @@
+## LoadingIcon 加载动画
+
+> **组件名:uv-loading-icon**
+
+此组件为一个小动画,目前用在 `uv-ui` 的 `uv-load-more` 加载更多等组件,还可以运用在项目中正在加载状态场景。
+
+# <a href="https://www.uvui.cn/components/loadingIcon.html" target="_blank">查看文档</a>
+
+## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) <small>(请不要 下载插件ZIP)</small>
+
+### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+<a href="https://ext.dcloud.net.cn/plugin?name=uv-ui" target="_blank">
+
+![image](https://mp-a667b617-c5f1-4a2d-9a54-683a67cff588.cdn.bspapp.com/uv-ui/banner.png)
+
+</a>
+
+#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:<a href="https://www.uvui.cn/components/addQQGroup.html" target="_blank">官方QQ群</a>

+ 25 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-search/changelog.md

@@ -0,0 +1,25 @@
+## 1.0.11(2023-11-10)
+1. 调整清除按钮样式的marginLeft,避免微信上多数情况触发不了的BUG
+## 1.0.10(2023-11-04)
+1. 修复设置disabled情况下,@click回调事件触发不了的bug
+## 1.0.9(2023-08-18)
+1. 修复boxStyle失效的BUG
+## 1.0.8(2023-08-07)
+修复值为null或undefined时显示错误的bug
+## 1.0.7(2023-08-05)
+1.  修复在vue2模式下,v-model设置为0时不生效的BUG
+## 1.0.6(2023-07-26)
+1. 增加boxStyle参数,方便控制输入框部分的样式
+## 1.0.5(2023-07-26)
+1. 增加prefix和suffix  前置和后置插槽
+## 1.0.4(2023-07-13)
+1. 修复value值清空不生效的BUG
+## 1.0.3(2023-07-13)
+1. 修复value/v-model更改不生效的BUG
+## 1.0.2(2023-07-03)
+去除无用的插槽
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-search 搜索

+ 127 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-search/components/uv-search/props.js

@@ -0,0 +1,127 @@
+export default {
+	props: {
+		value: {
+			type: [String, Number],
+			default: ''
+		},
+		modelValue: {
+			type: [String, Number],
+			default: ''
+		},
+		// 搜索框形状,round-圆形,square-方形
+		shape: {
+			type: String,
+			default: 'round'
+		},
+		// 搜索框背景色,默认值#f2f2f2
+		bgColor: {
+			type: String,
+			default: '#f2f2f2'
+		},
+		// 占位提示文字
+		placeholder: {
+			type: String,
+			default: '请输入关键字'
+		},
+		// 是否启用清除控件
+		clearabled: {
+			type: Boolean,
+			default: true
+		},
+		// 是否自动聚焦
+		focus: {
+			type: Boolean,
+			default: false
+		},
+		// 是否在搜索框右侧显示取消按钮
+		showAction: {
+			type: Boolean,
+			default: true
+		},
+		// 右边控件的样式
+		actionStyle: {
+			type: Object,
+			default: () => ({})
+		},
+		// 取消按钮文字
+		actionText: {
+			type: String,
+			default: '搜索'
+		},
+		// 输入框内容对齐方式,可选值为 left|center|right
+		inputAlign: {
+			type: String,
+			default: 'left'
+		},
+		// input输入框的样式,可以定义文字颜色,大小等,对象形式
+		inputStyle: {
+			type: Object,
+			default: () => ({})
+		},
+		// 是否禁用输入框
+		disabled: {
+			type: Boolean,
+			default: false
+		},
+		// 边框颜色
+		borderColor: {
+			type: String,
+			default: 'transparent'
+		},
+		// 搜索图标的颜色,默认同输入框字体颜色
+		searchIconColor: {
+			type: String,
+			default: '#909399'
+		},
+		// 输入框字体颜色
+		color: {
+			type: String,
+			default: '#606266'
+		},
+		// placeholder的颜色
+		placeholderColor: {
+			type: String,
+			default: '#909399'
+		},
+		// 左边输入框的图标,可以为uvui图标名称或图片路径
+		searchIcon: {
+			type: String,
+			default: 'search'
+		},
+		searchIconSize: {
+			type: [Number, String],
+			default: 22
+		},
+		// 组件与其他上下左右元素之间的距离,带单位的字符串形式,如"30px"、"30px 20px"等写法
+		margin: {
+			type: String,
+			default: '0'
+		},
+		// 开启showAction时,是否在input获取焦点时才显示
+		animation: {
+			type: Boolean,
+			default: false
+		},
+		// 输入框最大能输入的长度,-1为不限制长度(来自uniapp文档)
+		maxlength: {
+			type: [String, Number],
+			default: -1
+		},
+		// 搜索框高度,单位px
+		height: {
+			type: [String, Number],
+			default: 32
+		},
+		// 搜索框左侧文本
+		label: {
+			type: [String, Number, null],
+			default: null
+		},
+		// 搜索框扩展样式
+		boxStyle: {
+			type: [String, Object],
+			default: () => ({})
+		},
+		...uni.$uv?.props?.search
+	}
+}

+ 311 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-search/components/uv-search/uv-search.vue

@@ -0,0 +1,311 @@
+<template>
+	<view
+	  class="uv-search"
+	  @tap="clickHandler"
+	  :style="[{
+			margin: margin,
+		}, $uv.addStyle(customStyle)]"
+	>
+		<view
+		  class="uv-search__content"
+		  :style="[{
+				backgroundColor: bgColor,
+				borderRadius: shape == 'round' ? '100px' : '4px',
+				borderColor: borderColor,
+			},$uv.addStyle(boxStyle)]"
+		>
+			<view class="uv-search__content__disabled" v-if="disabled"></view>
+			<slot name="prefix">
+				<view class="uv-search__content__icon">
+					<uv-icon
+						@tap="clickIcon"
+					  :size="searchIconSize"
+					  :name="searchIcon"
+					  :color="searchIconColor ? searchIconColor : color"
+					></uv-icon>
+				</view>
+			</slot>
+			<input
+			  confirm-type="search"
+			  @blur="blur"
+			  :value="keyword"
+			  @confirm="search"
+			  @input="inputChange"
+			  :disabled="disabled"
+			  @focus="getFocus"
+			  :focus="focus"
+			  :maxlength="maxlength"
+			  placeholder-class="uv-search__content__input--placeholder"
+			  :placeholder="placeholder"
+			  :placeholder-style="`color: ${placeholderColor}`"
+			  class="uv-search__content__input"
+			  type="text"
+			  :style="[{
+					textAlign: inputAlign,
+					color: color,
+					backgroundColor: bgColor,
+					height: $uv.addUnit(height)
+				}, inputStyle]"
+			/>
+			<view
+			  class="uv-search__content__icon uv-search__content__close"
+			  v-if="keyword && clearabled && focused"
+			  @tap="clear"
+			>
+				<uv-icon
+				  name="close"
+				  size="11"
+				  color="#ffffff"
+					customStyle="line-height: 12px"
+				></uv-icon>
+			</view>
+			<slot name="suffix"></slot>
+		</view>
+		<text
+		  :style="[actionStyle]"
+		  class="uv-search__action"
+		  :class="[(showActionBtn || show) && 'uv-search__action--active']"
+		  @tap.stop.prevent="custom"
+		>{{ actionText }}</text>
+	</view>
+</template>
+
+<script>
+	import mpMixin from '@/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js'
+	import mixin from '@/uni_modules/uv-ui-tools/libs/mixin/mixin.js'
+	import props from './props.js';
+	/**
+	 * search 搜索框
+	 * @description 搜索组件,集成了常见搜索框所需功能,用户可以一键引入,开箱即用。
+	 * @tutorial https://www.uvui.cn/components/search.html
+	 * @property {String}			value/v-model				输入框初始值
+	 * @property {String}			shape				搜索框形状,round-圆形,square-方形(默认 'round' )
+	 * @property {String}			bgColor				搜索框背景颜色(默认 '#f2f2f2' )
+	 * @property {String}			placeholder			占位文字内容(默认 '请输入关键字' )
+	 * @property {Boolean}			clearabled			是否启用清除控件(默认 true )
+	 * @property {Boolean}			focus				是否自动获得焦点(默认 false )
+	 * @property {Boolean}			showAction			是否显示右侧控件(默认 true )
+	 * @property {Object}			actionStyle			右侧控件的样式,对象形式
+	 * @property {String}			actionText			右侧控件文字(默认 '搜索' )
+	 * @property {String}			inputAlign			输入框内容水平对齐方式 (默认 'left' )
+	 * @property {Object}			inputStyle			自定义输入框样式,对象形式
+	 * @property {Boolean}			disabled			是否启用输入框(默认 false )
+	 * @property {String}			borderColor			边框颜色,配置了颜色,才会有边框 (默认 'transparent' )
+	 * @property {String}			searchIconColor		搜索图标的颜色,默认同输入框字体颜色 (默认 '#909399' )
+	 * @property {Number | String}	searchIconSize 搜索图标的字体,默认22
+	 * @property {String}			color				输入框字体颜色(默认 '#606266' )
+	 * @property {String}			placeholderColor	placeholder的颜色(默认 '#909399' )
+	 * @property {String}			searchIcon			输入框左边的图标,可以为uvui图标名称或图片路径  (默认 'search' )
+	 * @property {String}			margin				组件与其他上下左右元素之间的距离,带单位的字符串形式,如"30px"   (默认 '0' )
+	 * @property {Boolean} 			animation			是否开启动画,见上方说明(默认 false )
+	 * @property {String | Number}	maxlength			输入框最大能输入的长度,-1为不限制长度  (默认 '-1' )
+	 * @property {String | Number}	height				输入框高度,单位px(默认 64 )
+	 * @property {String | Number}	label				搜索框左边显示内容
+	 * @property {Object} boxStyle 自定义内容框样式,设置padding 
+	 * @property {Object}			customStyle			定义需要用到的外部样式
+	 *
+	 * @event {Function} change 输入框内容发生变化时触发
+	 * @event {Function} search 用户确定搜索时触发,用户按回车键,或者手机键盘右下角的"搜索"键时触发
+	 * @event {Function} custom 用户点击右侧控件时触发
+	 * @event {Function} clear 用户点击清除按钮时触发
+	 * @example <uv-search placeholder="日照香炉生紫烟" v-model="keyword"></uv-search>
+	 */
+	export default {
+		name: "uv-search",
+		emits: ['click', 'input', 'change', 'clear', 'search', 'custom', 'focus', 'blur', 'clickIcon', 'update:modelValue'],
+		mixins: [mpMixin, mixin, props],
+		data() {
+			return {
+				keyword: '',
+				showClear: false, // 是否显示右边的清除图标
+				show: false,
+				// 标记input当前状态是否处于聚焦中,如果是,才会显示右侧的清除控件
+				focused: this.focus
+			};
+		},
+		created() {
+			// #ifndef VUE3
+			this.keyword = this.value;
+			// #endif
+			// #ifdef VUE3
+			this.keyword = this.modelValue;
+			// #endif
+		},
+		watch: {
+			value(nVal){
+				this.keyword = nVal;
+			},
+			modelValue(nVal){
+				this.keyword = nVal;
+			}
+		},
+		computed: {
+			showActionBtn() {
+				return !this.animation && this.showAction
+			}
+		},
+		methods: {
+			keywordChange(){
+				this.$emit('input', this.keyword)
+				this.$emit('update:modelValue', this.keyword)
+				this.$emit('change', this.keyword);
+			},
+			// 目前HX2.6.9 v-model双向绑定无效,故监听input事件获取输入框内容的变化
+			inputChange(e) {
+				this.keyword = e.detail.value;
+				this.keywordChange();
+			},
+			// 清空输入
+			// 也可以作为用户通过this.$refs形式调用清空输入框内容
+			clear() {
+				this.keyword = '';
+				this.$nextTick(() => {
+					this.$emit('clear');
+				})
+				this.keywordChange();
+			},
+			// 确定搜索
+			search(e) {
+				this.$emit('search', e.detail.value);
+				try {
+					// 收起键盘
+					uni.hideKeyboard();
+				} catch (e) {}
+			},
+			// 点击右边自定义按钮的事件
+			custom() {
+				this.$emit('custom', this.keyword);
+				try {
+					// 收起键盘
+					uni.hideKeyboard();
+				} catch (e) {}
+			},
+			// 获取焦点
+			getFocus() {
+				this.focused = true;
+				// 开启右侧搜索按钮展开的动画效果
+				if (this.animation && this.showAction) this.show = true;
+				this.$emit('focus', this.keyword);
+			},
+			// 失去焦点
+			blur() {
+				// 最开始使用的是监听图标@touchstart事件,自从hx2.8.4后,此方法在微信小程序出错
+				// 这里改为监听点击事件,手点击清除图标时,同时也发生了@blur事件,导致图标消失而无法点击,这里做一个延时
+				setTimeout(() => {
+					this.focused = false;
+				}, 100)
+				this.show = false;
+				this.$emit('blur', this.keyword);
+			},
+			// 点击搜索框,只有disabled=true时才发出事件,因为禁止了输入,意味着是想跳转真正的搜索页
+			clickHandler() {
+				if (this.disabled) this.$emit('click');
+			},
+			// 点击左边图标
+			clickIcon() {
+				this.$emit('clickIcon');
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import '@/uni_modules/uv-ui-tools/libs/css/components.scss';
+	@import '@/uni_modules/uv-ui-tools/libs/css/color.scss';
+	$uv-search-content-padding: 0 10px !default;
+	$uv-search-label-color: $uv-main-color !default;
+	$uv-search-label-font-size: 14px !default;
+	$uv-search-label-margin: 0 4px !default;
+	$uv-search-close-size: 20px !default;
+	$uv-search-close-radius: 100px !default;
+	$uv-search-close-bgColor: #C6C7CB !default;
+	$uv-search-close-transform: scale(0.82) !default;
+	$uv-search-input-font-size: 14px !default;
+	$uv-search-input-margin: 0 15px 0 5px !default;
+	$uv-search-input-color: $uv-main-color !default;
+	$uv-search-input-placeholder-color: $uv-tips-color !default;
+	$uv-search-action-font-size: 14px !default;
+	$uv-search-action-color: $uv-main-color !default;
+	$uv-search-action-width: 0 !default;
+	$uv-search-action-active-width: 40px !default;
+	$uv-search-action-margin-left: 5px !default;
+	/* #ifdef H5 */
+	// iOS15在H5下,hx的某些版本,input type=search时,会多了一个搜索图标,进行移除
+	[type="search"]::-webkit-search-decoration {
+		display: none;
+	}
+	/* #endif */
+	.uv-search {
+		@include flex(row);
+		align-items: center;
+		flex: 1;
+		&__content {
+			position: relative;	
+			@include flex;
+			align-items: center;
+			padding: $uv-search-content-padding;
+			flex: 1;
+			justify-content: space-between;
+			border-width: 1px;
+			border-color: transparent;
+			border-style: solid;
+			overflow: hidden;
+			&__icon {
+				@include flex;
+				align-items: center;
+			}
+			&__label {
+				color: $uv-search-label-color;
+				font-size: $uv-search-label-font-size;
+				margin: $uv-search-label-margin;
+			}
+			&__close {
+				width: $uv-search-close-size;
+				height: $uv-search-close-size;
+				border-top-left-radius: $uv-search-close-radius;
+				border-top-right-radius: $uv-search-close-radius;
+				border-bottom-left-radius: $uv-search-close-radius;
+				border-bottom-right-radius: $uv-search-close-radius;
+				background-color: $uv-search-close-bgColor;
+				@include flex(row);
+				align-items: center;
+				justify-content: center;
+				transform: $uv-search-close-transform;
+			}
+			&__input {
+				flex: 1;
+				font-size: $uv-search-input-font-size;
+				line-height: 1;
+				margin: $uv-search-input-margin;
+				color: $uv-search-input-color;
+				&--placeholder {
+					color: $uv-search-input-placeholder-color;
+				}
+			}
+			&__disabled {
+				position: absolute;
+				left: 0;
+				top: 0;
+				bottom: 0;
+				right: 0;
+				z-index: 2;
+			}
+		}
+		&__action {
+			font-size: $uv-search-action-font-size;
+			color: $uv-search-action-color;
+			width: $uv-search-action-width;
+			overflow: hidden;
+			transition-property: width;
+			transition-duration: 0.3s;
+			/* #ifndef APP-NVUE */
+			white-space: nowrap;
+			/* #endif */
+			text-align: center;
+			&--active {
+				width: $uv-search-action-active-width;
+				margin-left: $uv-search-action-margin-left;
+			}
+		}
+	}
+</style>

+ 89 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-search/package.json

@@ -0,0 +1,89 @@
+{
+  "id": "uv-search",
+  "displayName": "uv-search 搜索 全面兼容vue3+2、app、h5、小程序等多端",
+  "version": "1.0.11",
+  "description": "搜索组件,集成了常见搜索框所需功能,支持前后插槽,用户可以一键引入,开箱即用",
+  "keywords": [
+    "uv-search",
+    "uvui",
+    "uv-ui",
+    "search",
+    "搜索"
+],
+  "repository": "",
+  "engines": {
+    "HBuilderX": "^3.1.0"
+  },
+  "dcloudext": {
+    "type": "component-vue",
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+    	"ads": "无",
+    	"data": "插件不采集任何数据",
+    	"permissions": "无"
+    },
+    "npmurl": ""
+  },
+  "uni_modules": {
+    "dependencies": [
+			"uv-ui-tools",
+			"uv-icon",
+			"uv-loading-icon"
+		],
+    "encrypt": [],
+    "platforms": {
+			"cloud": {
+				"tcb": "y",
+				"aliyun": "y"
+			},
+			"client": {
+				"Vue": {
+					"vue2": "y",
+					"vue3": "y"
+				},
+				"App": {
+					"app-vue": "y",
+					"app-nvue": "y"
+				},
+				"H5-mobile": {
+					"Safari": "y",
+					"Android Browser": "y",
+					"微信浏览器(Android)": "y",
+					"QQ浏览器(Android)": "y"
+				},
+				"H5-pc": {
+					"Chrome": "y",
+					"IE": "y",
+					"Edge": "y",
+					"Firefox": "y",
+					"Safari": "y"
+				},
+				"小程序": {
+					"微信": "y",
+					"阿里": "y",
+					"百度": "y",
+					"字节跳动": "y",
+					"QQ": "y",
+					"钉钉": "u",
+					"快手": "u",
+					"飞书": "u",
+					"京东": "u"
+				},
+				"快应用": {
+					"华为": "u",
+					"联盟": "u"
+				}
+			}
+		}
+  }
+}

+ 19 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-search/readme.md

@@ -0,0 +1,19 @@
+## Search 搜索 
+
+> **组件名:uv-search**
+
+搜索组件,集成了常见搜索框所需功能,支持前后插槽,用户可以一键引入,开箱即用。
+
+# <a href="https://www.uvui.cn/components/search.html" target="_blank">查看文档</a>
+
+## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) <span>(请不要 下载插件ZIP)</span>
+
+### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+<a href="https://ext.dcloud.net.cn/plugin?name=uv-ui" target="_blank">
+
+![image](https://mp-a667b617-c5f1-4a2d-9a54-683a67cff588.cdn.bspapp.com/uv-ui/banner.png)
+
+</a>
+
+#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:<a href="https://www.uvui.cn/components/addQQGroup.html" target="_blank">官方QQ群</a>

+ 63 - 4
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/app.json

@@ -1,14 +1,73 @@
 {
   "pages": [
-    "pages/index/index"
+    "pages/highseas/highseas",
+    "pages/index/index",
+    "pages/my/my",
+    "pages/login/login",
+    "pages/myHouse/myHouse",
+    "pages/message/message",
+    "pages/city/city",
+    "pages/data/data",
+    "pages/searchlist/searchlist",
+    "pages/project/project",
+    "pages/house/house",
+    "pages/visitor/visitor",
+    "pages/reservation/reservation",
+    "pages/chat/chat",
+    "pages/myDetail/myDetail",
+    "pages/person/person",
+    "pages/fans/fans",
+    "pages/attention/attention",
+    "pages/collect/collect",
+    "pages/clientDetail/clientDetail",
+    "pages/client/client",
+    "pages/organization/organization",
+    "pages/search/search"
   ],
   "subPackages": [],
   "window": {
     "navigationBarTextStyle": "black",
-    "navigationBarTitleText": "uni-app",
-    "navigationBarBackgroundColor": "#F8F8F8",
-    "backgroundColor": "#F8F8F8"
+    "navigationBarTitleText": "有极智慧园区",
+    "navigationBarBackgroundColor": "#ffffff",
+    "backgroundColor": "#f2f2f2"
+  },
+  "tabBar": {
+    "color": "#8c8c8c",
+    "selectedColor": "#08979c",
+    "list": [
+      {
+        "pagePath": "pages/index/index",
+        "iconPath": "static/image/tabbar/index.png",
+        "selectedIconPath": "static/image/tabbar/index-active.png",
+        "text": "首页"
+      },
+      {
+        "pagePath": "pages/message/message",
+        "iconPath": "static/image/tabbar/chat.png",
+        "selectedIconPath": "static/image/tabbar/chat-active.png",
+        "text": "消息"
+      },
+      {
+        "pagePath": "pages/highseas/highseas",
+        "iconPath": "static/image/tabbar/highseas.png",
+        "selectedIconPath": "static/image/tabbar/highseas-active.png",
+        "text": "公海"
+      },
+      {
+        "pagePath": "pages/data/data",
+        "iconPath": "static/image/tabbar/data.png",
+        "selectedIconPath": "static/image/tabbar/data-active.png",
+        "text": "数据"
+      },
+      {
+        "pagePath": "pages/my/my",
+        "iconPath": "static/image/tabbar/my.png",
+        "selectedIconPath": "static/image/tabbar/my-active.png",
+        "text": "我的"
+      }
+    ]
   },
   "permission": {},
+  "lazyCodeLoading": "requiredComponents",
   "usingComponents": {}
 }

File diff ditekan karena terlalu besar
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/common/main.js


File diff ditekan karena terlalu besar
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/common/main.wxss


File diff ditekan karena terlalu besar
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/common/runtime.js


File diff ditekan karena terlalu besar
+ 11 - 2
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/common/vendor.js


File diff ditekan karena terlalu besar
+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/Winglau14-lotusCalendar/Winglau14-lotusCalendar.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/Winglau14-lotusCalendar/Winglau14-lotusCalendar.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/Winglau14-lotusCalendar/Winglau14-lotusCalendar.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/Winglau14-lotusCalendar/Winglau14-lotusCalendar.wxss


File diff ditekan karena terlalu besar
+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/city-select/city-select.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/city-select/city-select.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/city-select/city-select.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/city-select/city-select.wxss


File diff ditekan karena terlalu besar
+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/common/navbar.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/common/navbar.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/common/navbar.wxml

@@ -0,0 +1 @@
+<view class="navbar data-v-1644d364"><view class="status-bar data-v-1644d364" style="{{'height:'+($root.m0+'px')+';'}}"></view><view class="bar-content data-v-1644d364" style="{{'height:'+($root.m1+'px')+';'}}"><slot></slot></view></view>

+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/common/navbar.wxss

@@ -0,0 +1 @@
+.navbar.data-v-1644d364{position:fixed;top:0;left:0;width:100%;z-index:1996}.navbar .status-bar.data-v-1644d364{background:#fff}.navbar .bar-content.data-v-1644d364{position:relative}

File diff ditekan karena terlalu besar
+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItem.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItem.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItem.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItem.wxss


File diff ditekan karena terlalu besar
+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItems.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItems.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItems.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/house/houseItems.wxss


File diff ditekan karena terlalu besar
+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/login/imageCode.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/login/imageCode.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/login/imageCode.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/login/imageCode.wxss


File diff ditekan karena terlalu besar
+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/pinapp-empty-page/pinapp-empty-page.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/pinapp-empty-page/pinapp-empty-page.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/pinapp-empty-page/pinapp-empty-page.wxml

@@ -0,0 +1 @@
+<view class="empty-box"><image src="/static/images/pinapp-empty-box.png"></image><view class="txt">{{title}}</view></view>

+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/pinapp-empty-page/pinapp-empty-page.wxss

@@ -0,0 +1 @@
+.empty-box{display:flex;flex-direction:column;justify-content:center;align-items:center;padding-top:200rpx}.empty-box image{width:414rpx;height:240rpx}.empty-box .txt{font-size:26rpx;color:#999}

File diff ditekan karena terlalu besar
+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-head/uni-mall-head.js


+ 6 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-head/uni-mall-head.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
+  },
+  "component": true
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-head/uni-mall-head.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-head/uni-mall-head.wxss


File diff ditekan karena terlalu besar
+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-list/uni-mall-list.js


+ 8 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-list/uni-mall-list.json

@@ -0,0 +1,8 @@
+{
+  "component": true,
+  "usingComponents": {
+    "uni-mall-head": "/components/uni-mall-head/uni-mall-head",
+    "pinapp-empty-page": "/components/pinapp-empty-page/pinapp-empty-page",
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
+  }
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-list/uni-mall-list.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/components/uni-mall-list/uni-mall-list.wxss


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/attention/attention.js


+ 6 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/attention/attention.json

@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "关注列表",
+  "usingComponents": {
+    "mescroll-body": "/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body"
+  }
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/attention/attention.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/chat/chat.js


+ 6 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/chat/chat.json

@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "会话",
+  "usingComponents": {
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
+  }
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/chat/chat.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/chat/chat.wxss


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/city/city.js


+ 6 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/city/city.json

@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "选择城市",
+  "usingComponents": {
+    "city-select": "/components/city-select/city-select"
+  }
+}

+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/city/city.wxml

@@ -0,0 +1 @@
+<view><city-select class="vue-ref" vue-id="34c70de0-1" formatName="{{formatName}}" activeCity="{{activeCity}}" hotCity="{{hotCity}}" obtainCitys="{{obtainCitys}}" isSearch="{{true}}" data-ref="citys" data-event-opts="{{[['^cityClick',[['cityClick']]]]}}" bind:cityClick="__e" bind:__l="__l"></city-select></view>

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/client/client.js


+ 7 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/client/client.json

@@ -0,0 +1,7 @@
+{
+  "navigationBarTitleText": "我的客户",
+  "usingComponents": {
+    "mescroll-body": "/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body",
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
+  }
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/client/client.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/clientDetail/clientDetail.js


+ 6 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/clientDetail/clientDetail.json

@@ -0,0 +1,6 @@
+{
+  "navigationBarTitleText": "客户详情",
+  "usingComponents": {
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
+  }
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/clientDetail/clientDetail.wxml


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/clientDetail/clientDetail.wxss


File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/collect/collect.js


+ 7 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/collect/collect.json

@@ -0,0 +1,7 @@
+{
+  "navigationBarTitleText": "收藏列表",
+  "usingComponents": {
+    "mescroll-body": "/uni_modules/mescroll-uni/components/mescroll-body/mescroll-body",
+    "house-item": "/components/house/houseItem"
+  }
+}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/collect/collect.wxml


+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/collect/collect.wxss

@@ -0,0 +1 @@
+.collect .house-list{padding:0 30rpx}

File diff ditekan karena terlalu besar
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/data/data.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/data/data.json

@@ -0,0 +1,4 @@
+{
+  "navigationBarTitleText": "数据",
+  "usingComponents": {}
+}

+ 0 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/build/mp-weixin/pages/data/data.wxml


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini