zhengkaixin hace 2 años
padre
commit
d8a9c6cfcc

+ 9 - 0
apis/pagejs/index.js

@@ -115,3 +115,12 @@ export function getVerifyCode(tel) {
 		url: '/mobile/user/getVerifyCode'
 	})
 } 
+
+export function outDeviceList(data) {
+	 
+	return request({
+		method: 'post',
+		data:data ,
+		url: '/mobile/device/outDeviceList'
+	})
+} 

+ 4 - 9
config/.env.dev.js

@@ -1,29 +1,24 @@
 const UNI_APP = {  
 	ProjectName :"设备管理",
-	//BASE_URL: 'http://192.168.77.162:8086/equipment-manage-server/',
-	BASE_URL:"https://equipment.xiaoxinda.com/equipment-manage-server/",
+	BASE_URL: 'http://192.168.77.162:8086/equipment-manage-server/',
+	//BASE_URL:"https://equipment.xiaoxinda.com/equipment-manage-server/",
 	//IMG_URL:"http://www.jsrailway.com.cn/",
 	//BASE_URL: 'https://charging.xiaoxinda.com/charging-station-test/',
-	
 	//BASE_URL:'http://192.168.77.162:8081/railroad-server/',
 	//BASE_URL:'http://192.168.77.222:8086/railroad-server/',
 	PREFIX : "jp-Equipment-Jingli_openid",
 	NODE_ENV :"dev",
 	SIMPLE_RUN:false,// 无视权限控制跳转页面   , 用于样式人员快速访问各种功能 ,快速测试等
-
-	
 	//openId:"oBA__5QB2nHNNef3xshMJ3GcR2Hw",
-	openId:"o0cz65_7xBJzDDhHxvCfCpFfcHjA",//zkx
+	openId:"oBA__5UuQTRx5Q8h94bDPY-GO2SM",//zkx
 	//openId:"123456",//库管理
 	//openId:"123",// 项目部 - 审批1
 	//openId:"223",// 项目部 - 审批2
 	//openId:"323",// 项目部 - 审批3
 	//openId:"oBEnI6PiaBMNUMTnjT0ffT1R2JOk",//杨所
 	//openId:"oBEnI6N9gRq3xOVlw34JfYjhtB9k",//  伊明
-	
-	
 	//openId:"oK9Wr58zNwDernF0TL6o3mdUxk2A",
-	//		openId:"oK9Wr5xRUoP9EygZqBec0xkJMVTs",
+	//openId:"oK9Wr5xRUoP9EygZqBec0xkJMVTs",
 	//openId:"oK9Wr55J1J1eL6BqI2tW749NTxNU",//zq
 	//小鹏管家appid
 	//VUE_APP_WXAPPID:"wx7e70eb62a8459869",

+ 10 - 1
pages.json

@@ -133,7 +133,16 @@
 				"enablePullDownRefresh": false
 			}
 
-		}]
+		}    ,{
+                    "path" : "lendLedger/lendLedger",
+                    "style" :                                                                                    
+                {
+                    "navigationBarTitleText": "",
+                    "enablePullDownRefresh": false
+                }
+                
+                }
+            ]
 		},
 		{
 			"root": "pages/storeManagement",

+ 256 - 0
pages/otherFunctions/components/u-alert-tips.vue

@@ -0,0 +1,256 @@
+<template>
+	<view class="u-alert-tips" v-if="show" :class="[
+		!show ? 'u-close-alert-tips': '',
+		type ? 'u-alert-tips--bg--' + type + '-light' : '',
+		type ? 'u-alert-tips--border--' + type + '-disabled' : '',
+	]" :style="{
+		backgroundColor: bgColor,
+		borderColor: borderColor
+	}">
+		<view class="u-icon-wrap">
+			<u-icon v-if="showIcon" :name="uIcon" :size="description ? 40 : 32" class="u-icon" :color="uIconType" :custom-style="iconStyle"></u-icon>
+		</view>
+		<view class="u-alert-content" @tap.stop="click">
+			<view class="u-alert-title" :style="[uTitleStyle]">
+				{{title}}
+			</view>
+			<view v-if="description" class="u-alert-desc" :style="[descStyle]">
+				{{description}}
+			</view>
+		</view>
+		<view class="u-icon-wrap">
+			<u-icon @click="close" v-if="closeAble && !closeText" hoverClass="u-type-error-hover-color" name="close" color="#c0c4cc"
+			 :size="22" class="u-close-icon" :style="{
+				top: description ? '18rpx' : '24rpx'
+			}"></u-icon>
+		</view>
+		<text v-if="closeAble && closeText" class="u-close-text" :style="{
+			top: description ? '18rpx' : '24rpx'
+		}">{{closeText}}</text>
+	</view>
+</template>
+
+<script>
+	/**
+	 * alertTips 警告提示
+	 * @description 警告提示,展现需要关注的信息
+	 * @tutorial https://uviewui.com/components/alertTips.html
+	 * @property {String} title 显示的标题文字
+	 * @property {String} description 辅助性文字,颜色比title浅一点,字号也小一点,可选
+	 * @property {String} type 关闭按钮(默认为叉号icon图标)
+	 * @property {String} icon 图标名称
+	 * @property {Object} icon-style 图标的样式,对象形式
+	 * @property {Object} title-style 标题的样式,对象形式
+	 * @property {Object} desc-style 描述的样式,对象形式
+	 * @property {String} close-able 用文字替代关闭图标,close-able为true时有效
+	 * @property {Boolean} show-icon 是否显示左边的辅助图标
+	 * @property {Boolean} show 显示或隐藏组件
+	 * @event {Function} click 点击组件时触发
+	 * @event {Function} close 点击关闭按钮时触发
+	 */
+	export default {
+		name: 'u-alert-tips',
+		props: {
+			// 显示文字
+			title: {
+				type: String,
+				default: ''
+			},
+			// 主题,success/warning/info/error
+			type: {
+				type: String,
+				default: 'warning'
+			},
+			// 辅助性文字
+			description: {
+				type: String,
+				default: ''
+			},
+			// 是否可关闭
+			closeAble: {
+				type: Boolean,
+				default: false
+			},
+			// 关闭按钮自定义文本
+			closeText: {
+				type: String,
+				default: ''
+			},
+			// 是否显示图标
+			showIcon: {
+				type: Boolean,
+				default: false
+			},
+			// 文字颜色,如果定义了color值,icon会失效
+			color: {
+				type: String,
+				default: ''
+			},
+			// 背景颜色
+			bgColor: {
+				type: String,
+				default: ''
+			},
+			// 边框颜色
+			borderColor: {
+				type: String,
+				default: ''
+			},
+			// 是否显示
+			show: {
+				type: Boolean,
+				default: true
+			},
+			// 左边显示的icon
+			icon: {
+				type: String,
+				default: ''
+			},
+			// icon的样式
+			iconStyle: {
+				type: Object,
+				default() {
+					return {}
+				}
+			},
+			// 标题的样式
+			titleStyle: {
+				type: Object,
+				default() {
+					return {}
+				}
+			},
+			// 描述文字的样式
+			descStyle: {
+				type: Object,
+				default() {
+					return {}
+				}
+			},
+		},
+		data() {
+			return {
+			}
+		},
+		computed: {
+			uTitleStyle() {
+				let style = {};
+				// 如果有描述文字的话,标题进行加粗
+				style.fontWeight = this.description ? 500 : 'normal';
+				// 将用户传入样式对象和style合并,传入的优先级比style高,同属性会被覆盖
+				return this.$u.deepMerge(style, this.titleStyle);
+			},
+			uIcon() {
+				// 如果有设置icon名称就使用,否则根据type主题,推定一个默认的图标
+				return this.icon ? this.icon : this.$u.type2icon(this.type);
+			},
+			uIconType() {
+				// 如果有设置图标的样式,优先使用,没有的话,则用type的样式
+				return Object.keys(this.iconStyle).length ? '' : this.type;
+			}
+		},
+		methods: {
+			// 点击内容
+			click() {
+				this.$emit('click');
+			},
+			// 点击关闭按钮
+			close() {
+				this.$emit('close');
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	//@import "../../libs/css/style.components.scss";
+	
+	.u-alert-tips {
+		display: flex;
+		align-items: center;
+		padding: 16rpx 30rpx;
+		border-radius: 8rpx;
+		position: relative;
+		transition: all 0.3s linear;
+		border: 1px solid #fff;
+		
+		&--bg--primary-light {
+			background-color: #ecf5ff;
+		}
+		
+		&--bg--info-light {
+			background-color: #f4f4f5;
+		}
+		
+		&--bg--success-light {
+			background-color:  #dbf1e1;
+		}
+		
+		&--bg--warning-light {
+			background-color: #fdf6ec;
+		}
+		
+		&--bg--error-light {
+			background-color: #fef0f0;
+		}
+		
+		&--border--primary-disabled {
+			border-color: #a0cfff;
+		}
+		
+		&--border--success-disabled {
+			border-color: #71d5a1;
+		}
+		
+		&--border--error-disabled {
+			border-color: #fab6b6;
+		}
+		
+		&--border--warning-disabled {
+			border-color: #fcbd71;
+		}
+		
+		&--border--info-disabled {
+			border-color: #c8c9cc;
+		}
+	}
+
+	.u-close-alert-tips {
+		opacity: 0;
+		visibility: hidden;
+	}
+
+	.u-icon {
+		margin-right: 16rpx;
+	}
+
+	.u-alert-title {
+		font-size: 28rpx;
+		color: #303133;
+	}
+
+	.u-alert-desc {
+		font-size: 26rpx;
+		text-align: left;
+		color: #606266;
+	}
+
+	.u-close-icon {
+		position: absolute;
+		top: 20rpx;
+		right: 20rpx;
+	}
+
+	.u-close-hover {
+		color: red;
+	}
+	
+	.u-close-text {
+		font-size: 24rpx;
+		color: #909399;
+		position: absolute;
+		top: 20rpx;
+		right: 20rpx;
+		line-height: 1;
+	}
+</style>

+ 211 - 0
pages/otherFunctions/components/u-collapse-item.vue

@@ -0,0 +1,211 @@
+<template>
+	<view class="u-collapse-item" :style="[itemStyle]">
+		<view :hover-stay-time="200" class="u-collapse-head collapse" @tap.stop="headClick" :hover-class="hoverClass" :style="[headStyle]">
+			<block v-if="!$slots['title-all']">
+				<view v-if="!$slots['title']" class="u-collapse-title u-line-1" :style="[{ textAlign: align ? align : 'left' },
+					isShow && activeStyle && !arrow ? activeStyle : '']">
+					{{ title }}
+				</view>
+				<slot v-else name="title" />
+				<view class="u-icon-wrap">
+					<u-icon v-if="arrow" :color="arrowColor" :class="{ 'u-arrow-down-icon-active': isShow }"
+					 class="u-arrow-down-icon" name="arrow-down"></u-icon>
+				</view>
+			</block>
+			<slot v-else name="title-all" />
+		</view>
+		<view class="u-collapse-body" :style="[{
+				height: isShow ? height + 'px' : '0'
+			}]">
+			<view class="u-collapse-content" :id="elId" :style="[bodyStyle]">
+				<slot></slot>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	/**
+	 * collapseItem 手风琴Item
+	 * @description 通过折叠面板收纳内容区域(搭配u-collapse使用)
+	 * @tutorial https://www.uviewui.com/components/collapse.html
+	 * @property {String} title 面板标题
+	 * @property {String Number} index 主要用于事件的回调,标识那个Item被点击
+	 * @property {Boolean} disabled 面板是否可以打开或收起(默认false)
+	 * @property {Boolean} open 设置某个面板的初始状态是否打开(默认false)
+	 * @property {String Number} name 唯一标识符,如不设置,默认用当前collapse-item的索引值
+	 * @property {String} align 标题的对齐方式(默认left)
+	 * @property {Object} active-style 不显示箭头时,可以添加当前选择的collapse-item活动样式,对象形式
+	 * @event {Function} change 某个item被打开或者收起时触发
+	 * @example <u-collapse-item :title="item.head" v-for="(item, index) in itemList" :key="index">{{item.body}}</u-collapse-item>
+	 */
+	export default {
+		name: "u-collapse-item",
+		props: {
+			// 标题
+			title: {
+				type: String,
+				default: ''
+			},
+			// 标题的对齐方式
+			align: {
+				type: String,
+				default: 'left'
+			},
+			// 是否可以点击收起
+			disabled: {
+				type: Boolean,
+				default: false
+			},
+			// collapse显示与否
+			open: {
+				type: Boolean,
+				default: false
+			},
+			// 唯一标识符
+			name: {
+				type: [Number, String],
+				default: ''
+			},
+			//活动样式
+			activeStyle: {
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			// 标识当前为第几个
+			index: {
+				type: [String, Number],
+				default: ''
+			}
+		},
+		data() {
+			return {
+				isShow: false,
+				elId: this.$u.guid(),
+				height: 0, // body内容的高度
+				headStyle: {}, // 头部样式,对象形式
+				bodyStyle: {}, // 主体部分样式
+				itemStyle: {}, // 每个item的整体样式
+				arrowColor: '', // 箭头的颜色
+				hoverClass: '', // 头部按下时的效果样式类
+				arrow: true, // 是否显示右侧箭头
+				
+			};
+		},
+		watch: {
+			open(val) {
+				this.isShow = val;
+			}
+		},
+		created() {
+			this.parent = false;
+			// 获取u-collapse的信息,放在u-collapse是为了方便,不用每个u-collapse-item写一遍
+			this.isShow = this.open;
+		},
+		methods: {
+			// 异步获取内容,或者动态修改了内容时,需要重新初始化
+			init() {
+				this.parent = this.$u.$parent.call(this, 'u-collapse');
+				if(this.parent) {
+					this.nameSync = this.name ? this.name : this.parent.childrens.length;
+					// 不存在时才添加本实例
+					!this.parent.childrens.includes(this) && this.parent.childrens.push(this);
+					this.headStyle = this.parent.headStyle;
+					this.bodyStyle = this.parent.bodyStyle;
+					this.arrowColor = this.parent.arrowColor;
+					this.hoverClass = this.parent.hoverClass;
+					this.arrow = this.parent.arrow;
+					this.itemStyle = this.parent.itemStyle;
+				}
+				this.$nextTick(() => {
+					this.queryRect();
+				});
+			},
+			// 点击collapsehead头部
+			headClick() {
+				if (this.disabled) return;
+				if (this.parent && this.parent.accordion == true) {
+					this.parent.childrens.map(val => {
+						// 自身不设置为false,因为后面有this.isShow = !this.isShow;处理了
+						if (this != val) {
+							val.isShow = false;
+						}
+					});
+				}
+
+				this.isShow = !this.isShow;
+				// 触发本组件的事件
+				this.$emit('change', {
+					index: this.index,
+					show: this.isShow
+				})
+				// 只有在打开时才发出事件
+				if (this.isShow) this.parent && this.parent.onChange();
+				this.$forceUpdate();
+			},
+			// 查询内容高度
+			queryRect() {
+				// $uGetRect为uView自带的节点查询简化方法,详见文档介绍:https://www.uviewui.com/js/getRect.html
+				// 组件内部一般用this.$uGetRect,对外的为this.$u.getRect,二者功能一致,名称不同
+				this.$uGetRect('#' + this.elId).then(res => {
+					this.height = res.height;
+				})
+			}
+		},
+		mounted() {
+			this.init();
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	//@import "../../libs/css/style.components.scss";
+	
+	.u-collapse-head {
+		position: relative;
+		
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		color: $u-main-color;
+		font-size: 30rpx;
+		line-height: 1;
+		padding: 24rpx 0;
+		text-align: left;
+	}
+
+	.u-collapse-title {
+		flex: 1;
+		overflow: hidden;
+	}
+
+	.u-arrow-down-icon {
+		transition: all 0.3s;
+		margin-right: 20rpx;
+		margin-left: 14rpx;
+	}
+
+	.u-arrow-down-icon-active {
+		transform: rotate(180deg);
+		transform-origin: center center;
+	}
+
+	.u-collapse-body {
+		overflow: hidden;
+		transition: all 0.3s;
+	}
+
+	.u-collapse-content {
+		overflow: hidden;
+		font-size: 28rpx;
+		color: $u-tips-color;
+		text-align: left;
+	}
+	.collapse{
+		background-color: #fff;
+		margin:0 24rpx;
+		padding: 22rpx 32rpx;
+	}
+</style>

+ 99 - 0
pages/otherFunctions/components/u-collapse.vue

@@ -0,0 +1,99 @@
+<template>
+	<view class="u-collapse">
+		<slot />
+	</view>
+</template>
+
+<script>
+	/**
+	 * collapse 手风琴
+	 * @description 通过折叠面板收纳内容区域
+	 * @tutorial https://www.uviewui.com/components/collapse.html
+	 * @property {Boolean} accordion 是否手风琴模式(默认true)
+	 * @property {Boolean} arrow 是否显示标题右侧的箭头(默认true)
+	 * @property {String} arrow-color 标题右侧箭头的颜色(默认#909399)
+	 * @property {Object} head-style 标题自定义样式,对象形式
+	 * @property {Object} body-style 主体自定义样式,对象形式
+	 * @property {String} hover-class 样式类名,按下时有效(默认u-hover-class)
+	 * @event {Function} change 当前激活面板展开时触发(如果是手风琴模式,参数activeNames类型为String,否则为Array)
+	 * @example <u-collapse></u-collapse>
+	 */
+	export default {
+		name:"u-collapse",
+		props: {
+			// 是否手风琴模式
+			accordion: {
+				type: Boolean,
+				default: true
+			},
+			// 头部的样式
+			headStyle: {
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			// 主体的样式
+			bodyStyle: {
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			// 每一个item的样式
+			itemStyle: {
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			// 是否显示右侧的箭头
+			arrow: {
+				type: Boolean,
+				default: true
+			},
+			// 箭头的颜色
+			arrowColor: {
+				type: String,
+				default: '#909399'
+			},
+			// 标题部分按压时的样式类,"none"为无效果
+			hoverClass: {
+				type: String,
+				default: 'u-hover-class'
+			}
+		},
+		created() {
+			this.childrens = []
+		},
+		data() {
+			return {
+
+			}
+		},
+		methods: {
+			// 重新初始化一次内部的所有子元素的高度计算,用于异步获取数据渲染的情况
+			init() {
+				this.childrens.forEach((vm, index) => {
+					vm.init();
+				})
+			},
+			// collapse item被点击,由collapse item调用父组件方法
+			onChange() {
+				let activeItem = [];
+				this.childrens.forEach((vm, index) => {
+					if (vm.isShow) {
+						activeItem.push(vm.nameSync);
+					}
+				})
+				// 如果是手风琴模式,只有一个匹配结果,也即activeItem长度为1,将其转为字符串
+				if (this.accordion) activeItem = activeItem.join('');
+				this.$emit('change', activeItem);
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	//@import "../../libs/css/style.components.scss";
+</style>

+ 2 - 1
pages/otherFunctions/equipmentRetrieval/equipmentDetail.vue

@@ -135,7 +135,8 @@
 					</view>
 					<!-- 提示 -->
 					<view class="hint">
-					<!-- <u-alert-tips  icon="bell-fill"  type="warning" :show-icon="true" :title="title" :description="description"></u-alert-tips>-->					</view>
+					<!-- <u-alert-tips  icon="bell-fill"  type="warning" :show-icon="true" :title="title" :description="description"></u-alert-tips>-->	
+					</view>
 					
 					<view class="inspection-contents">
 						<view class="inspection-title">

+ 6 - 2
pages/otherFunctions/equipmentRetrieval/equipmentInfo.vue

@@ -22,8 +22,8 @@
 			<view class="content">
 				<!-- 提示 -->
 				<view class="hint" v-if="description">
-					<u-alert-tips  icon="bell-fill"  :type="info.healthStatus==1?'success':info.healthStatus==6?'error':'warning'"
-					 :show-icon="true" :title="title" :description="descriptionKey(info,true)"></u-alert-tips>
+					<ujp-alert-tips  icon="bell-fill"  :type="info.healthStatus==1?'success':info.healthStatus==6?'error':'warning'"
+					 :show-icon="true" :title="title" :description="descriptionKey(info,true)"></ujp-alert-tips>
 				</view>
 				<!-- 设备信息 -->
 				<view class="infos">
@@ -253,8 +253,12 @@
 
 <script>
 	import * as API from '@/apis/pagejs/index.js'
+	import ujpAlertTips from "@/pages/otherFunctions/components/u-alert-tips.vue"
 	
 	export default {
+		components:{
+			ujpAlertTips
+		},
 		data() {
 			return {
 				info:{},

+ 12 - 0
pages/otherFunctions/homePage.vue

@@ -118,6 +118,17 @@
 						
 					</view>
 				</view>
+				<view class="item"  @click="gotoUrl('pages/otherFunctions/lendLedger/lendLedger')">
+					<view class="title">
+						借出台账
+					</view>
+					<view class="hint">
+						查询本项目部借出设备
+					</view>
+					<view class="img">
+						<img src="@/assets/img/projectGird4.png" alt="">
+					</view>
+				</view>
 			
 		</template>
 		<template v-if="role('2')">
@@ -209,6 +220,7 @@
 					<img src="@/assets/img/projectGird4.png" alt="">
 				</view>
 			</view>
+		
 			</view>
 			
 		<!-- 其他功能 -->

+ 364 - 0
pages/otherFunctions/lendLedger/lendLedger.vue

@@ -0,0 +1,364 @@
+<template>
+	<view>
+		<u-navbar title="借出台账"></u-navbar>
+		  <ujp-collapse  accordion  >
+			  <ujp-collapse-item v-for="(itemDept,index) in list"
+				:open="itemDept.id==valueDept"
+			   :key="index" :title="itemDept.name" >
+				  <view >
+				  	
+				  	<view class="list" v-for="(item,index2) in itemDept.list" :key="index2">
+				  
+				  		<view class="list-infos">
+				  
+				  			<view class="infos-head">
+				  				<view class="name">
+				  					{{item.title}}
+				  				</view>
+				  				<view class="qr-code ">
+				  					领取数量:{{itemDept.map.get(item.title).length}}
+				  				</view>
+				  
+				  			</view>
+				  
+				  			<view class="infos">
+				  				
+				  				
+				  					<view class="infos-item">
+				  						<view class="item-name">
+				  							规格:
+				  						</view>
+				  						<view class="item-value">
+				  							{{itemDept.map.get(item.title)[0].specifications}}
+				  						</view>
+				  					</view>
+				  					<view class="infos-item">
+				  						<view class="item-name">
+				  							型号:
+				  						</view>
+				  						<view class="item-value">
+				  							
+				  							{{itemDept.map.get(item.title)[0].model}}
+				  						</view>
+				  					</view>
+				  				
+				  
+				  			</view>
+				  
+				  		
+				  			<view class="prepare-out"  >
+				  				<view class="head">
+				  					<view class="amount" v-if="false">
+				  						<view class="title">
+				  							领用数量:
+				  						</view>
+				  						<view class="value">
+				  							{{itemDept.map.get(item.title).length}}
+				  						</view>
+				  					</view>
+				  
+				  					<view class="unfold" v-show="itemDept.map.get(item.title).length>4" @click="changeShow(item)">
+				  						{{item.show?'收起':'展开'}}<u-icon name="arrow-down"></u-icon>
+				  						
+				  					</view>
+				  
+				  				</view>
+				  				<!-- 编号 -->
+				  				<view class="serial-number" v-for="(item2,j) in itemDept.map.get(item.title)" v-show="j<4||item.show"
+				  					:key="j">
+				  					<view class="itemLine" style=" color: #9E9E9E;" v-if="!item2.show" >{{item2.outUserName}}{{item2.outUserPhone}}</view>
+				  					<view class="itemLine">
+				  						<span class="text">
+				  							设备编号:
+				  						</span>
+				  						<span class="number">
+				  							<span v-if="item2.healthStatus!=1"
+				  								:style="'    margin-right: 1px;color:'+recordStatusColor(item2.healthStatus)">[{{item2.healthStatusN}}]</span>
+				  							
+				  							{{item2.code}}
+				  						</span>
+				  						<!-- <span class="view" @tap="ckInfo(item2)">
+				  							查看设备
+				  
+				  						</span> -->
+				  					</view>
+				  
+				  				</view>
+				  			</view>
+				  			
+				  		</view>
+				  	</view>
+				  
+				  </view>
+				  
+			  </ujp-collapse-item>
+		  </ujp-collapse>
+		<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" border-color="#CFD2D5">已经到底了</u-divider>
+
+	</view>
+</template>
+
+<script>
+	
+	import  ujpCollapse from "@/pages/otherFunctions/components/u-collapse.vue"
+	import  ujpCollapseItem from "@/pages/otherFunctions/components/u-collapse-item.vue"
+	
+	
+	import * as API from '@/apis/pagejs/index.js'
+	import {
+		recordItemStatus,
+		recordStatusColor
+	} from '@/apis/status.js'
+	export default {
+		data() {
+			return {
+				valueDept:"",
+				list: [],
+			}
+		},
+		components:{
+			ujpCollapse,ujpCollapseItem
+		},
+		onLoad(op) {
+
+			this.getList()
+		},
+		methods: {
+			recordItemStatus,
+			recordStatusColor,
+			changeShow(item) {
+				console.log(item.show)
+				console.log(item)
+				if (item.show) {
+					item.show = false;
+				} else {
+					item.show = true;
+				}
+				this.$forceUpdate()
+			
+			},
+			ckInfo(item) {
+				console.log("1111")
+				var url = "/pages/otherFunctions/equipmentRetrieval/equipmentInfo?id=" + item.id;
+			
+				uni.navigateTo({
+					url: url,
+				
+				})
+			},
+			getList() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				API.outDeviceList().then((res) => {
+					uni.hideLoading();
+
+					this.list = res.data.departmentList;
+
+
+
+					this.list.forEach(item2 => {
+						if(this.valueDept==""){
+							this.valueDept=item2.id
+						}
+						var map = new Map()
+						var listmap = [];
+						item2.outDeviceInfoList.forEach(item => {
+
+							if (map.has(item.title)) {
+								var list = map.get(item.title)
+								list.unshift(item)
+								list.sort((a,b)=>{
+									return  a.outUserId==b.outUserId?1:-1
+								})
+								var k=""
+								for(var i in list){
+									if(k==""){
+										k=list[i].outUserId
+										list[i].show=false;
+									}else{
+										if(list[i].outUserId==k){
+											list[i].show=true;
+										}else{
+											k=list[i].outUserId;
+											list[i].show=false;
+										}
+									}	
+								}
+								map.set(item.title, list)
+							} else {
+								map.set(item.title, [item])
+								listmap.push({
+									title:item.title,
+									show:false,
+								});
+							}
+						})
+						item2.map = map;
+						item2.list = listmap;
+						console.log(item2)
+					})
+
+
+
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	
+	.list {
+		background-color: #fff;
+		margin: 24rpx;
+		padding: 22rpx 32rpx;
+
+		// 清单信息
+		.list-infos {
+			border-radius: 8px;
+
+			.infos-head {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				margin-bottom: 14rpx;
+
+				.name {
+					color: rgba(51, 51, 51, 1);
+					font-size: 32rpx;
+				}
+
+				.qr-code {
+					border-radius: 4px;
+					//background: linear-gradient(180deg, rgba(22, 119, 255, 1) 0%, rgba(16, 98, 213, 1) 100%);
+					//color: rgba(255, 255, 255, 1);
+					font-size: 24rpx;
+					width: 160rpx;
+					text-align: center;
+					line-height: 64rpx;
+
+					text {
+						img {
+							vertical-align: middle;
+						}
+					}
+				}
+			}
+
+			.infos {
+				//margin-top: 6rpx;
+				display: flex;
+				color: #777777;
+				font-size: 24rpx;
+
+				.infos-1 {
+					margin-right: 68rpx;
+				}
+
+
+				.infos-item {
+					display: flex;
+					margin-bottom: 8rpx;
+					width: 50%;
+					.item-value {
+						max-width: 200rpx;
+					}
+				}
+
+			}
+
+			.address,
+			.remark {
+				display: flex;
+				color: #777777;
+				font-size: 24rpx;
+				margin-bottom: 8rpx;
+			}
+		}
+
+		.prepare-out {
+			padding: 24rpx;
+			margin-top: 20rpx;
+			border-radius: 8px;
+			background-color: rgba(245, 246, 249, 1);
+
+			.head {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				margin-bottom: 24rpx;
+
+				.amount {
+					display: flex;
+					color: rgba(0, 81, 255, 1);
+					font-size: 32rpx;
+				}
+
+				.unfold {
+					color: rgba(146, 158, 165, 1);
+					font-size: 24rpx;
+					position: relative;
+
+					.u-icon--right {
+						margin-left: 8rpx;
+					}
+				}
+
+				.option {
+					width: 160rpx;
+					height: 32rpx;
+					background-color: #fff;
+					position: absolute;
+					top: 30rpx;
+					right: 0;
+				}
+			}
+
+			// 编号
+			.serial-number {
+				// display: flex;
+				// justify-content: space-between;
+				align-items: center;
+				margin-top: 16rpx;
+				color: rgba(51, 51, 51, 1);
+				font-weight: bold;
+
+				.itemLine {
+					width: 100%;
+
+					.view {
+						float: right;
+						color: #0051ff;
+					}
+				}
+
+				.item {
+					display: flex;
+
+				}
+			}
+
+		}
+
+		// 备注
+		.textarea {
+			width: 100%;
+			height: 80rpx;
+			line-height: 80rpx;
+			text-indent: 24rpx;
+			margin-top: 24rpx;
+			background-color: rgba(241, 242, 245, 1);
+			color: rgba(136, 136, 136, 1);
+			border-radius: 8px;
+			font-family: Microsoft Yahei;
+			font-size: 28rpx;
+		}
+	}
+</style>