浏览代码

Signed-off-by: zhaobao <528046418@qq.com>

zhaobao 8 月之前
父节点
当前提交
9cc3638cc9
共有 100 个文件被更改,包括 3604 次插入306 次删除
  1. 35 9
      api/goods.js
  2. 16 2
      api/team.js
  3. 二进制
      components/.DS_Store
  4. 32 0
      components/xw-empty/xw-empty.vue
  5. 7 0
      pages.json
  6. 0 2
      pages/duty/components/AddForm.vue
  7. 23 16
      pages/duty/index.vue
  8. 175 0
      pages/goods/components/Inbound.vue
  9. 175 0
      pages/goods/components/Outbound.vue
  10. 136 7
      pages/goods/index.vue
  11. 163 0
      pages/goods/record.vue
  12. 1 1
      pages/index/index.vue
  13. 253 0
      pages/team/components/MemberForm.vue
  14. 160 0
      pages/team/components/TeamForm.vue
  15. 221 77
      pages/team/index.vue
  16. 0 0
      static/js/echarts-all.js
  17. 0 0
      static/js/echarts.js
  18. 2 1
      static/js/wx-canvas.js
  19. 5 2
      uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue
  20. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  21. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  22. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  23. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/IndexBarChart.js.map
  24. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/UniEcCanvas.js.map
  25. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/duty/components/AddForm.js.map
  26. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/duty/index.js.map
  27. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/goods/components/Inbound.js.map
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/goods/components/Outbound.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/goods/index.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/goods/record.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  32. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map
  33. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/index.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/personalData/personalData.js.map
  35. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/updatePassword/updatePassword.js.map
  36. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/team/components/MemberForm.js.map
  37. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/team/components/TeamForm.js.map
  38. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/team/index.js.map
  39. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-badge/components/uni-badge/uni-badge.js.map
  40. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-card/components/uni-card/uni-card.js.map
  41. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.js.map
  42. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.js.map
  43. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.js.map
  44. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.js.map
  45. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.js.map
  46. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js.map
  47. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js.map
  48. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js.map
  49. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map
  50. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-list/components/uni-list-item/uni-list-item.js.map
  51. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-list/components/uni-list/uni-list.js.map
  52. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js.map
  53. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.js.map
  54. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map
  55. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-row/components/uni-col/uni-col.js.map
  56. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-row/components/uni-row/uni-row.js.map
  57. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-section/components/uni-section/uni-section.js.map
  58. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.js.map
  59. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.js.map
  60. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-table/uni-table.js.map
  61. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-td/uni-td.js.map
  62. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-th/uni-th.js.map
  63. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-tr/table-checkbox.js.map
  64. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-tr/uni-tr.js.map
  65. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-tag/components/uni-tag/uni-tag.js.map
  66. 2 1
      unpackage/dist/dev/mp-weixin/app.json
  67. 1 1
      unpackage/dist/dev/mp-weixin/common/runtime.js
  68. 157 133
      unpackage/dist/dev/mp-weixin/common/vendor.js
  69. 1 1
      unpackage/dist/dev/mp-weixin/components/IndexBarChart.js
  70. 13 13
      unpackage/dist/dev/mp-weixin/components/UniEcCanvas.js
  71. 2 2
      unpackage/dist/dev/mp-weixin/pages/duty/components/AddForm.js
  72. 5 4
      unpackage/dist/dev/mp-weixin/pages/duty/index.js
  73. 0 1
      unpackage/dist/dev/mp-weixin/pages/duty/index.json
  74. 0 0
      unpackage/dist/dev/mp-weixin/pages/duty/index.wxml
  75. 12 0
      unpackage/dist/dev/mp-weixin/pages/duty/index.wxss
  76. 300 0
      unpackage/dist/dev/mp-weixin/pages/goods/components/Inbound.js
  77. 11 0
      unpackage/dist/dev/mp-weixin/pages/goods/components/Inbound.json
  78. 0 0
      unpackage/dist/dev/mp-weixin/pages/goods/components/Inbound.wxml
  79. 55 0
      unpackage/dist/dev/mp-weixin/pages/goods/components/Inbound.wxss
  80. 300 0
      unpackage/dist/dev/mp-weixin/pages/goods/components/Outbound.js
  81. 11 0
      unpackage/dist/dev/mp-weixin/pages/goods/components/Outbound.json
  82. 0 0
      unpackage/dist/dev/mp-weixin/pages/goods/components/Outbound.wxml
  83. 55 0
      unpackage/dist/dev/mp-weixin/pages/goods/components/Outbound.wxss
  84. 120 28
      unpackage/dist/dev/mp-weixin/pages/goods/index.js
  85. 8 1
      unpackage/dist/dev/mp-weixin/pages/goods/index.json
  86. 0 1
      unpackage/dist/dev/mp-weixin/pages/goods/index.wxml
  87. 90 0
      unpackage/dist/dev/mp-weixin/pages/goods/index.wxss
  88. 250 0
      unpackage/dist/dev/mp-weixin/pages/goods/record.js
  89. 10 0
      unpackage/dist/dev/mp-weixin/pages/goods/record.json
  90. 0 0
      unpackage/dist/dev/mp-weixin/pages/goods/record.wxml
  91. 89 0
      unpackage/dist/dev/mp-weixin/pages/goods/record.wxss
  92. 1 1
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  93. 2 2
      unpackage/dist/dev/mp-weixin/pages/login/index.js
  94. 322 0
      unpackage/dist/dev/mp-weixin/pages/team/components/MemberForm.js
  95. 11 0
      unpackage/dist/dev/mp-weixin/pages/team/components/MemberForm.json
  96. 0 0
      unpackage/dist/dev/mp-weixin/pages/team/components/MemberForm.wxml
  97. 82 0
      unpackage/dist/dev/mp-weixin/pages/team/components/MemberForm.wxss
  98. 279 0
      unpackage/dist/dev/mp-weixin/pages/team/components/TeamForm.js
  99. 11 0
      unpackage/dist/dev/mp-weixin/pages/team/components/TeamForm.json
  100. 0 0
      unpackage/dist/dev/mp-weixin/pages/team/components/TeamForm.wxml

+ 35 - 9
api/goods.js

@@ -1,13 +1,39 @@
 import {request} from '@/libs/request.js'
 
 export default {
-
-  // 分类统计
-  counterByCat: (data) => request({url:'/emergency/goods/statis/counterByCat', data}),
-  // 基于ID查询
-  counterById: (goodsType, goodsCatId) => request({url:`/emergency/goods/statis/counterById/${goodsType}/${goodsCatId}`}),
-  // 分类统计
-  groupCounterByCat: (data) => request({url:'/emergency/goods/statis/group/counterByCat', data}),
-  // 分类统计
-  totalByCat: (data) => request({url:'/emergency/goods/statis/totalByCat', data}),
+/*出库*/
+	// 分页查询
+	getOutboundByPage: (data) => request({url:'/emergency/goods/outbound/page',data}),
+	// 列表查询
+	getOutboundByList: (data) => request({url:'/emergency/goods/outbound',data}),	
+	// 基于ID查询
+	getOutboundById: (outboundId) => request(`/emergency/goods/outbound/${outboundId}`),
+	// 新增
+	createOutbound: (data) => request({url:'/emergency/goods/outbound/add',method:"post", data}),
+	// 更新
+	updateOutbound: (data) => request({url:'/emergency/goods/outbound/update',method:"put", data}),
+	// 删除
+	deleteOutboundById: (outboundId) => request({url:`/emergency/goods/outbound/${outboundId}`,method:"delete"}),
+/*入库*/	
+	// 分页查询
+	getInboundByPage: (data) => request({url:'/emergency/goods/inbound/page',data}),
+	// 列表查询
+	getInboundByList: (data) => request({url:'/emergency/goods/inbound',data}),	
+	// 基于ID查询
+	getInboundById: (inboundId) => request(`/emergency/goods/inbound/${inboundId}`),
+	// 新增
+	createInbound: (data) => request({url:'/emergency/goods/inbound/add',method:"post", data}),
+	// 更新
+	updateInbound: (data) => request({url:'/emergency/goods/inbound/update',method:"put", data}),
+	// 删除
+	deleteInboundById: (inboundId) => request({url:`/emergency/goods/inbound/${inboundId}`,method:"delete"}),
+/*统计*/		
+    // 分类统计
+	counterByCat: (data) => request({url:'/emergency/goods/statis/counterByCat', data}),
+	// 基于ID查询
+	counterById: (goodsType, goodsCatId) => request({url:`/emergency/goods/statis/counterById/${goodsType}/${goodsCatId}`}),
+	// 分类统计
+	groupCounterByCat: (data) => request({url:'/emergency/goods/statis/group/counterByCat', data}),
+	// 分类统计
+	totalByCat: (data) => request({url:'/emergency/goods/statis/totalByCat', data})
 }

+ 16 - 2
api/team.js

@@ -1,6 +1,5 @@
 import {request} from '@/libs/request.js'
 
-
 export default {	
 	// 分类统计
 	counterByMember: (data) => request({url:'/team/statis/counterByMember', data }),
@@ -10,7 +9,8 @@ export default {
 	// 分页查询
 	getByPage: (data) => request({url:'/team/page',data}),
 	// 列表查询
-	getByList: (data) => request({url:'/team',data}),
+	getByList: (data) => request({url:'/team',data}),	
+	getByListInfo: (data) => request({url:'/team/info',data}),
 	// 基于ID查询
 	getById: (teamId) => request({url:`/team/${teamId}`}),
 	// 新增
@@ -32,4 +32,18 @@ export default {
 	updateMember: (data) => request({url:'/team/member/update',method:"put", data}),
 	// 删除
 	deleteMemberById: (teamId, memberId) => request({url:`/team/member/${teamId}/${memberId}`,method:"delete"}),
+
+
+	// 分页查询
+	getCatByPage: (data) => request({url:'/team/cat/page',data}),
+	// 列表查询
+	getCatByList: (data) => request({url:'/team/cat',data}),
+	// 基于ID查询
+	getCatById: (teamCatId) => request({url:`/team/cat/${teamCatId}`}),
+	// 新增
+	createCat: (data) => request({url:'/team/cat/add', data,method:"post"}),
+	// 更新
+	updateCat: (data) => request({url:'/team/cat/update', data,method:"put"}),
+	// 删除
+	deleteCatById: (teamCatId) => request({url:`/team/cat/${teamCatId}`,method:"delete"})
 }

二进制
components/.DS_Store


文件差异内容过多而无法显示
+ 32 - 0
components/xw-empty/xw-empty.vue


+ 7 - 0
pages.json

@@ -83,6 +83,13 @@
 			{
 				"navigationBarTitleText" : "登录"
 			}
+		},
+		{
+			"path" : "pages/goods/record",
+			"style" : 
+			{
+				"navigationBarTitleText" : "出库/入库记录"
+			}
 		}
 	],
 	"globalStyle": {

+ 0 - 2
pages/duty/components/AddForm.vue

@@ -1,5 +1,4 @@
 <template>
-
 		<view class="modal" :class="showModal?'show':''">
 			<view class="head">
 				<view class="name">{{title}}</view>
@@ -25,7 +24,6 @@
 				</view>
 			</view>	
 		</view>		
-
 </template>
 
 <script>

+ 23 - 16
pages/duty/index.vue

@@ -1,27 +1,26 @@
 <template>
-	<uni-card>
-		<template v-slot:title>
+	<view class="page-wrap">
+		<view class="title">
 			<uni-list-item :show-switch="true" title="按周排班">
 				<template v-slot:footer>
 					<view class="tip">
 						<text>第</text>
 						<view class="week">
-							<uni-tag :text="week" size="mini" type="primary"></uni-tag>
+							<uni-tag :text="`${week}`" size="mini" type="primary"></uni-tag>
 						</view>
 						<text>周</text>
 						<text class="time">{{startDate}}至{{endDate}}</text>
 					</view>
 				</template>
 			</uni-list-item>
-		</template>
+		</view>
 		<view class="selectbox">
-			<uni-data-select  class="item-select year" v-model="year":localdata="years" :clear="false"></uni-data-select>
-			<uni-data-select  class="item-select" v-model="week":localdata="weeks" :clear="false"></uni-data-select>
+			<uni-data-select  class="item-select year" v-model="year" :localdata="years" :clear="false" @change="getData"></uni-data-select>
+			<uni-data-select  class="item-select" v-model="week" :localdata="weeks" :clear="false" @change="getData"></uni-data-select>
 		</view>
-
 		<uni-list>
-			<uni-swipe-action v-for="(item,idx) in items" :key="item.accountId" >
-				<uni-swipe-action-item :auto-close="true" @click='swipeHandle'>				
+			<uni-swipe-action  ref="itemSwipe">
+				<uni-swipe-action-item :auto-close="true" v-for="(item,idx) in items" :key="item.id">				
 					<template v-slot:right>
 						<view class="slot-button">
 							<view class="bt edit" @click="swipeHandle({type:1,item})"><text class="slot-button-text">编辑</text></view>
@@ -32,8 +31,7 @@
 						:title="item.accountName" 
 						:note="item.remark" 
 						thumb="/static/images/avatar.png"
-						:rightText="item.posName" >
-						
+						:rightText="item.posName" >					
 						<template v-slot:footer>
 							<div class="rtbox">
 								<view class="rt">
@@ -44,9 +42,6 @@
 										<uni-tag :text="item.posName" size="mini" type="success"></uni-tag>
 									</view>
 								</view>
-<!-- 								<div class="delbt" @click="handle(item)">
-									<image src="/static/images/del.png"></image>
-								</div> -->
 							</div>
 						</template>
 					</uni-list-item>
@@ -55,7 +50,7 @@
 		</uni-list>
 		<div class="addbt" @click="onAdd">+</div>
 		<AddForm ref="add" @success='getData' />
-	</uni-card>
+	</view>
 </template>
 
 <script>
@@ -103,7 +98,7 @@
 					year:this.year,
 					week:this.week
 				}).then((res)=>{
-					this.items=res.data
+					this.items=res.data.map((item,idx)=>{return{...item,id:`${item.accountId}-${idx+1}`}})
 				})
 			},
 			swipeHandle({type,item}){
@@ -138,6 +133,15 @@
 </script>
 
 <style lang="scss" scoped>
+.page-wrap{
+	width: 710rpx;
+	background-color: #fff;
+	margin: 20rpx auto;
+	box-shadow: 0 0 4px rgba(0,0,0,0.46);
+	padding: 20rpx;
+	box-sizing: border-box;
+	border-radius: 4px;
+}
 .tip{
 	font-size: 28rpx;
 	color: #666;
@@ -206,6 +210,9 @@
 	display: flex;
 	align-items: center;
 	justify-content: space-between;
+	.rt{
+		text-align: right;
+	}
 }
 .delbt{
 	padding: 20rpx;

+ 175 - 0
pages/goods/components/Inbound.vue

@@ -0,0 +1,175 @@
+<template>
+	<uni-drawer ref="drawer" mode="left" :mask-click="false" width="85%" :maskClick='true'>
+		<scroll-view class="scroll-view" scroll-y="true">
+			<view class="form-wrap" >
+				<uni-forms ref="form" label-position="top" :rules="rules" :model="form">
+					<uni-forms-item label="队伍名称" name="teamName" required>
+						<uni-easyinput v-model="form.teamName" placeholder="请输入队伍名称" :clearable="false" />
+					</uni-forms-item>
+					<uni-forms-item label="队伍类别" name="teamCatId" required>
+						<uni-data-select  v-model="form.teamCatId" :localdata="teamCats" placeholder="请选择值班人员" :clear="false"></uni-data-select>
+					</uni-forms-item>
+					<uni-forms-item label="出库人员" name="accountId" required>
+						<uni-data-select  v-model="form.accountId" :localdata="userList" placeholder="请选择出库人员" :clear="false"></uni-data-select>
+					</uni-forms-item>
+					<uni-forms-item label="职责说明">
+						<uni-easyinput type="textarea" :maxlength="1000" v-model="form.teamDuty" placeholder="请输入职责说明" autoHeight ></uni-easyinput>
+						<view class="word-limit">{{form.teamDuty.length||0}}/1000</view>
+					</uni-forms-item>
+					<uni-forms-item label="说明">
+						<uni-easyinput type="textarea" :maxlength="500"
+						 v-model="form.teamDesc" autoHeight 
+						placeholder="请输入职责说明"></uni-easyinput>
+						<view class="word-limit">{{form.teamDesc.length||0}}/500</view>
+					</uni-forms-item>
+					<uni-forms-item label="排序" v-model="form.sortNo">
+						<uni-number-box :min="1"></uni-number-box>
+					</uni-forms-item>
+				</uni-forms>
+				<view class="handle-container">
+					<button class="save" type="primary" @click="onSubmit">保存</button>
+					<button class="cancel" type="default" @click="close">取消</button>
+				</view>
+			</view>	
+		</scroll-view>
+	</uni-drawer>
+</template>
+
+<script>
+	import teamApi from '@/api/team.js'	
+	export default{
+		name:"Inbound",
+		computed:{
+			teamCats(){
+				let teamCats=uni.getStorageSync('teamCat')
+				return teamCats.map(item=>{
+					return{
+						value:item.teamCatId,
+						text:item.teamCatTitle
+					}
+				})
+			}			
+		},
+		data(){
+			return{
+				type:undefined,
+				rules:{
+					teamName:{
+						rules:[
+							{
+								required: true,
+								errorMessage: '请输入队伍名称'
+							}					
+						],
+						validateTrigger:'submit'
+					},
+					teamCatId:{
+						rules:[
+							{
+								required: true,
+								errorMessage: '请选择队伍类别',
+							}
+						],
+						validateTrigger:'submit'
+					},
+				},
+				userList:[],
+				form:{
+					teamId: 0,
+					teamName: '',
+					teamType: 1,
+					teamCatId: 1,
+					teamDuty: '',
+					teamDesc: '',
+					sortNo: 1
+				}
+			}
+		},
+		methods:{
+			resetForm(){
+				this.form={
+					teamId: 0,
+					teamName: '',
+					teamType: 1,
+					teamCatId: 1,
+					teamDuty: '',
+					teamDesc: '',
+					sortNo: 1
+				}
+			},
+			init(){
+				let groupUser=uni.getStorageSync('groupUser')
+				let userList=[]
+				groupUser.map((item,index)=>{
+					userList.push({...item,value:`root-${index+1}`,text:item.name,disable:true})
+					if(Array.isArray(item.children)&&item.children.length>0){
+						userList=userList.concat(item.children.map(item=>{return{...item,value:item.accountId,text:item.accountName}}))
+					}			
+				})
+				this.userList=userList
+			},
+			onSubmit(){
+				this.$refs.form.validate().then(res=>{
+					let submitFx=this.type==='add'?teamApi.create:teamApi.update
+					submitFx(this.form).then(()=>{
+						uni.showToast({
+							icon:"none",
+							title:"成功!!"
+						})
+						this.$emit('success')
+						this.close();
+					})
+
+				}).catch(err =>{
+					uni.showToast({
+						icon:"none",
+						title:"请检查填写信息!"
+					})
+				})
+			},
+			show(type,item){
+				this.resetForm()
+				if(type==='edit'){
+					this.form={...item}
+				}else{
+					this.form.teamType=item
+				}
+				this.type=type
+				this.$refs.drawer.open()
+			},
+			close(){
+				this.$refs.drawer.close()
+			}
+		}
+	}
+</script>
+<style lang="scss" scoped>
+	.scroll-view {
+		height: 100%;
+		padding: 20rpx;
+		box-sizing: border-box;
+		.form-wrap{
+			padding:40rpx;
+			.handle-container{
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				button{
+					width: 160rpx;
+					padding: 20rpx 16rpx;
+					line-height: 1;
+					font-size: 28rpx;
+					&.save{
+						background-color: #007aff;
+					}
+				}
+			}
+			.word-limit{
+				text-align: right;
+				padding: 10rpx 0;
+				color: #999;
+				font-size: 26rpx;
+			}
+		}
+	}
+</style>

+ 175 - 0
pages/goods/components/Outbound.vue

@@ -0,0 +1,175 @@
+<template>
+	<uni-drawer ref="drawer" mode="left" :mask-click="false" width="85%" :maskClick='true'>
+		<scroll-view class="scroll-view" scroll-y="true">
+			<view class="form-wrap" >
+				<uni-forms ref="form" label-position="top" :rules="rules" :model="form">
+					<uni-forms-item label="队伍名称" name="teamName" required>
+						<uni-easyinput v-model="form.teamName" placeholder="请输入队伍名称" :clearable="false" />
+					</uni-forms-item>
+					<uni-forms-item label="队伍类别" name="teamCatId" required>
+						<uni-data-select  v-model="form.teamCatId" :localdata="teamCats" placeholder="请选择值班人员" :clear="false"></uni-data-select>
+					</uni-forms-item>
+					<uni-forms-item label="出库人员" name="accountId" required>
+						<uni-data-select  v-model="form.accountId" :localdata="userList" placeholder="请选择出库人员" :clear="false"></uni-data-select>
+					</uni-forms-item>
+					<uni-forms-item label="职责说明">
+						<uni-easyinput type="textarea" :maxlength="1000" v-model="form.teamDuty" placeholder="请输入职责说明" autoHeight ></uni-easyinput>
+						<view class="word-limit">{{form.teamDuty.length||0}}/1000</view>
+					</uni-forms-item>
+					<uni-forms-item label="说明">
+						<uni-easyinput type="textarea" :maxlength="500"
+						 v-model="form.teamDesc" autoHeight 
+						placeholder="请输入职责说明"></uni-easyinput>
+						<view class="word-limit">{{form.teamDesc.length||0}}/500</view>
+					</uni-forms-item>
+					<uni-forms-item label="排序" v-model="form.sortNo">
+						<uni-number-box :min="1"></uni-number-box>
+					</uni-forms-item>
+				</uni-forms>
+				<view class="handle-container">
+					<button class="save" type="primary" @click="onSubmit">保存</button>
+					<button class="cancel" type="default" @click="close">取消</button>
+				</view>
+			</view>	
+		</scroll-view>
+	</uni-drawer>
+</template>
+
+<script>
+	import teamApi from '@/api/team.js'	
+	export default{
+		name:"Inbound",
+		computed:{
+			teamCats(){
+				let teamCats=uni.getStorageSync('teamCat')
+				return teamCats.map(item=>{
+					return{
+						value:item.teamCatId,
+						text:item.teamCatTitle
+					}
+				})
+			}			
+		},
+		data(){
+			return{
+				type:undefined,
+				rules:{
+					teamName:{
+						rules:[
+							{
+								required: true,
+								errorMessage: '请输入队伍名称'
+							}					
+						],
+						validateTrigger:'submit'
+					},
+					teamCatId:{
+						rules:[
+							{
+								required: true,
+								errorMessage: '请选择队伍类别',
+							}
+						],
+						validateTrigger:'submit'
+					},
+				},
+				userList:[],
+				form:{
+					teamId: 0,
+					teamName: '',
+					teamType: 1,
+					teamCatId: 1,
+					teamDuty: '',
+					teamDesc: '',
+					sortNo: 1
+				}
+			}
+		},
+		methods:{
+			resetForm(){
+				this.form={
+					teamId: 0,
+					teamName: '',
+					teamType: 1,
+					teamCatId: 1,
+					teamDuty: '',
+					teamDesc: '',
+					sortNo: 1
+				}
+			},
+			init(){
+				let groupUser=uni.getStorageSync('groupUser')
+				let userList=[]
+				groupUser.map((item,index)=>{
+					userList.push({...item,value:`root-${index+1}`,text:item.name,disable:true})
+					if(Array.isArray(item.children)&&item.children.length>0){
+						userList=userList.concat(item.children.map(item=>{return{...item,value:item.accountId,text:item.accountName}}))
+					}			
+				})
+				this.userList=userList
+			},
+			onSubmit(){
+				this.$refs.form.validate().then(res=>{
+					let submitFx=this.type==='add'?teamApi.create:teamApi.update
+					submitFx(this.form).then(()=>{
+						uni.showToast({
+							icon:"none",
+							title:"成功!!"
+						})
+						this.$emit('success')
+						this.close();
+					})
+
+				}).catch(err =>{
+					uni.showToast({
+						icon:"none",
+						title:"请检查填写信息!"
+					})
+				})
+			},
+			show(type,item){
+				this.resetForm()
+				if(type==='edit'){
+					this.form={...item}
+				}else{
+					this.form.teamType=item
+				}
+				this.type=type
+				this.$refs.drawer.open()
+			},
+			close(){
+				this.$refs.drawer.close()
+			}
+		}
+	}
+</script>
+<style lang="scss" scoped>
+	.scroll-view {
+		height: 100%;
+		padding: 20rpx;
+		box-sizing: border-box;
+		.form-wrap{
+			padding:40rpx;
+			.handle-container{
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				button{
+					width: 160rpx;
+					padding: 20rpx 16rpx;
+					line-height: 1;
+					font-size: 28rpx;
+					&.save{
+						background-color: #007aff;
+					}
+				}
+			}
+			.word-limit{
+				text-align: right;
+				padding: 10rpx 0;
+				color: #999;
+				font-size: 26rpx;
+			}
+		}
+	}
+</style>

+ 136 - 7
pages/goods/index.vue

@@ -1,23 +1,152 @@
 <template>
-	<view>
-		
-		物资储备
+	<view class="page-wrap">
+		<view class="pageTabs">
+			<uni-segmented-control :current="tabIdx" :values="tabs" style-type="text" active-color="#007aff" @clickItem="changeTab" />	
+		</view>	
+		<view class="head">
+			<uni-section title="物资列表" type="line">
+				<template v-slot:right>
+				  <view class="handle" @click="linkToRecord">出库/入库记录</view>
+				</template>
+			</uni-section>
+			<view class="addbt" @click="onInbound('in',tabIdx+1)">
+				<view class="word">物资入库</view>
+			</view>
+		</view>	
+		<view class="pageMain">
+			<uni-card v-for="(item,idx) in items" :key="idx" padding="0">
+				<template v-slot:title>
+					<view class="title">
+						<view class="name">
+							<uni-tag :text="item.goodsCatTitle" type="primary"></uni-tag>
+						</view>
+						<uni-tag :text="item.count" custom-style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"></uni-tag>
+					</view>
+				</template>
+				<view class="bottom">
+					<view class="groupName">
+						<uni-tag :text="item.groupName" type="success" :inverted="true"></uni-tag>
+					</view>
+					<div class="handle" @click="onOutbound(item)"><uni-tag text="出库" type="warning" size="normal"  /></div>
+				</view>			
+			</uni-card>
+		</view>
+		<Inbound ref="inbound"></Inbound>
+		<Outbound ref="outbound"></Outbound>
 	</view>
 </template>
 
 <script>
+	import Inbound from './components/Inbound.vue'
+	import Outbound from './components/Outbound.vue'
+	
+	import goodsApi from '@/api/goods.js'	
 	export default {
+		components:{
+			Inbound,
+			Outbound
+		},
 		data() {
 			return {
-				
+				tabIdx:0,			
+				tabs:['行业物质','镇办物资'],
+				items:[],
+				goodsType: 1,
+				keywords: ""
 			}
 		},
+		onShow() {
+			this.getData()
+		},
 		methods: {
-			
+			changeTab({currentIndex}){
+				if (this.tabIdx !== currentIndex) {
+					this.tabIdx = currentIndex	
+					this.getData()
+				}
+			},
+			getData(){
+				goodsApi.counterByCat({goodsType:this.tabIdx+1}).then((res)=>{
+					this.items=res.data
+				})
+			},
+			onInbound(){
+				this.$refs.inbound.show()
+			},
+			onOutbound(){
+				this.$refs.outbound.show()
+			},
+			linkToRecord(){
+				uni.navigateTo({
+					url:`/pages/goods/record?type=${this.tabIdx+1}`
+				})
+			}
 		}
 	}
 </script>
 
-<style>
-
+<style lang="scss" scoped>
+.page-wrap{
+	padding:0 20rpx;
+	.pageTabs{
+		background-color: #fff;
+	}
+	.head{
+		margin-top: 20rpx;
+		.handle{
+			display: inline-block;
+			background-color: #007aff;
+			color: #fff;
+			text-align: center;
+			padding:16rpx 20rpx;
+			border-radius: 6rpx;
+			border: 1px solid #007aff;
+			font-size: 28rpx;
+			box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
+		}
+		.addbt{
+			width: 100rpx;
+			height: 100rpx;
+			border-radius: 50%;
+			color: #fff;
+			background-color: rgba(64,158,255,0.75);			
+			box-shadow:0 0 10rpx rgba(0,0,0,0.6);
+			position: fixed;
+			right: 10rpx;
+			bottom: 20%;
+			z-index: 99;
+			text-align: center;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			.word{
+				width: 80rpx;
+				height: 80rpx;
+				border-radius: 50%;
+				margin: 5rpx auto;
+				font-size: 28rpx;
+				letter-spacing: 2px;
+			}
+		}
+	}
+	.pageMain{
+		margin-top: 20rpx;
+		background-color: #f5f5f5;
+		padding-bottom: 50rpx;
+		.title{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding-top: 16rpx;
+		}
+		.bottom{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			.handle{
+				padding: 10px 0 10px 20px;
+			}
+		}
+	}
+}
 </style>

+ 163 - 0
pages/goods/record.vue

@@ -0,0 +1,163 @@
+<template>
+	<view class="page-wrap">
+		<view class="pageTabs">
+			<uni-segmented-control :current="tabIdx" :values="tabs" style-type="text" active-color="#007aff" @clickItem="changeTab" />	
+		</view>	
+		<view class="pageMain">
+			<uni-swipe-action class="item-action-box">
+				<uni-card padding="10px 0" margin="5px 0" v-for="item in items" :key="item.memberId">
+					<uni-swipe-action-item class="item-action" :auto-close="true" >
+						<template v-slot:right>
+							<view class="slot-button">
+								<view class="bt detail" @click="handle('detail',item)"><text class="slot-button-text">详情</text></view>
+								<view class="bt edit" @click="handle('edit',item)"><text class="slot-button-text">编辑</text></view>
+								<view class="bt del" @click="handle('del',item)"><text class="slot-button-text">删除</text></view>
+							</view>
+						</template>
+						<view class="item">
+							<view class="title">
+								<view class="name">{{item.accountName}}</view>									
+								<view class="num">
+									<uni-tag :text="item.qty" custom-style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"></uni-tag>
+								</view>
+							</view>
+							<view class="tagbox">
+								<uni-tag :text="item.goodsCatTitle" custom-style="background-color: #ecf5ff; border-color: #d9ecff; color: #409eff;"></uni-tag>
+							</view>
+							<view class="bottom">
+								<view class="time">{{item.time}}</view>
+							</view>
+						</view>
+					</uni-swipe-action-item>
+				</uni-card>
+			</uni-swipe-action>
+		</view>
+	</view>
+</template>
+
+<script>
+	import goodsApi from '@/api/goods.js'
+	export default {
+		data() {
+			return {
+				tabIdx:0,
+				tabs:['入库记录','出库记录'],	
+				items:[],
+				goodsType:undefined,
+				page:1,	
+				size:10,
+				total:0,	
+				keywords:""	
+			}
+		},
+		onLoad({type}) {
+			this.goodsType=type
+			this.getData()
+		},
+		methods: {
+			changeTab({currentIndex}){
+				if (this.tabIdx !== currentIndex) {
+					this.tabIdx = currentIndex				
+					this.page = 1
+					this.size = 10
+					this.total = 0
+					this.getData()
+				}
+			},
+			getData(){
+				const getByPage=this.tabIdx===0?goodsApi.getInboundByPage:goodsApi.getOutboundByPage
+				getByPage({
+					page:this.page,
+					size:this.size,
+					goodsType:this.goodsType
+				}).then((res)=>{
+					this.items=res.data.map((item)=>{
+						return{
+							...item,
+							time:this.tabIdx===0?item.inboundTime:item.outboundTime,
+							
+						}
+					})
+					this.total=res.total
+				})
+			},
+			handle(type,item){
+				
+			}
+		},
+		onReachBottom() {
+			if(this.total>this.size*this.page){
+				this.page++
+				this.getData()				
+			}
+		}
+	}
+</script>
+<style lang="scss" scoped>
+.page-wrap{
+	padding:0 20rpx;
+	.pageTabs{
+		background-color: #fff;
+	}
+	.pageMain{
+		margin-top: 20rpx;
+		background-color: #f5f5f5;
+		padding-bottom: 50rpx;
+		.item{
+			.title{
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				.name{
+					font-size: 36rpx;
+					color: #222222;
+					font-weight: 500;
+				}
+				.num{
+					font-size: 32rpx;
+					color: #424242;
+				}
+			}
+			.tagbox{
+				font-size: 24rpx;
+				color: #666666;
+				padding: 14rpx 0;
+			}
+			.bottom{
+				.time{
+					font-size: 24rpx;
+					color: #666666;
+				}
+			}
+		}
+		.slot-button{
+			width: 400rpx;
+			height: 100%;
+			display: flex;
+			flex-direction: row;
+			justify-content: center;
+			align-items: center;
+			color: #fff;
+			padding-left: 10px;
+			.bt{
+				width: 50%;
+				height: 100%;
+				font-size: 30rpx;
+				box-sizing: border-box;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				&.edit{
+				    background-color:#007aff;
+				}
+				&.del{
+					background-color:#F56C6C;
+				}
+				&.detail{
+					background-color: #e6a23c;
+				}
+			}
+		}
+	}
+}
+</style>

+ 1 - 1
pages/index/index.vue

@@ -189,7 +189,7 @@
 						let data=res.data;
 						this.chartdata={
 							yData:data.map(item=>item.count),
-							xData:data.map(item=>item.teamName),
+							xData:data.map(item=>item.teamCatTitle),
 							name:"队伍建设"
 						}
 					})

+ 253 - 0
pages/team/components/MemberForm.vue

@@ -0,0 +1,253 @@
+<template>
+	<uni-drawer ref="drawer" mode="left" :mask-click="false" width="85%" :maskClick='true'>
+		<scroll-view class="scroll-view" scroll-y="true">
+			<view class="form-wrap" >
+				<uni-forms ref="form" label-position="top" :rules="rules" :model="form">
+					<uni-forms-item label="成员姓名" name="memberName" required>
+						<uni-easyinput type="text" :maxlength="30" v-model="form.memberName" placeholder="请输入成员姓名"></uni-easyinput>
+					</uni-forms-item>
+					<uni-forms-item label="成员头像">
+						<view class="memberAvatar" @click="editAvart">
+							<image :src="form.memberAvatar" v-if="form.memberAvatar"></image>
+						</view>
+					</uni-forms-item>
+					<uni-forms-item label="联系电话" name="memberPhone" required>
+						<uni-easyinput v-model="form.memberPhone" type="number" :clearable="false" placeholder="请输入联系电话" />
+					</uni-forms-item>	
+					<uni-forms-item label="是否党员" required>
+						<uni-data-checkbox v-model="form.ifCpc" :localdata="ifCpcs" />
+					</uni-forms-item>	
+					<view class="row" >
+						<view class="col sex">
+							<uni-forms-item label="性别">
+								<view class="sexbox">
+									<uni-data-checkbox v-model="form.memberSex" :localdata="sexs" />								
+								</view>
+							</uni-forms-item>
+						</view>
+						<view class="col age">
+							<uni-forms-item label="年龄">
+								<uni-easyinput type="number" v-model.number="form.memberAge" :clearable="false" placeholder="请输入年龄" />
+							</uni-forms-item>
+						</view>
+					</view>												
+					<uni-forms-item label="分工岗位">
+						<uni-easyinput v-model="form.memberPosition" placeholder="请输入分工岗位" />
+					</uni-forms-item>										
+					<uni-forms-item label="职责说明">
+						<uni-easyinput type="textarea" :maxlength="1000" v-model="form.memberDuty" placeholder="请输入职责说明"></uni-easyinput>
+						<view class="word-limit">{{form.memberDuty.length||0}}/500</view>
+					</uni-forms-item>
+					<uni-forms-item label="说明">
+						<uni-easyinput type="textarea" :maxlength="500" v-model="form.remark" placeholder="请输入说明"></uni-easyinput>
+						<view class="word-limit">{{form.remark.length||0}}/500</view>
+					</uni-forms-item>
+					<uni-forms-item label="排序" v-model="form.sortNo">
+						<uni-number-box :min="1"></uni-number-box>
+					</uni-forms-item>
+				</uni-forms>
+				<view class="handle-container">
+					<button class="save" type="primary" @click="onSubmit">保存</button>
+					<button class="cancel" type="default" @click="close">取消</button>
+				</view>
+			</view>	
+		</scroll-view>
+	</uni-drawer>
+</template>
+
+<script>
+	import teamApi from '@/api/team.js'
+	import { upload } from '@/api/upload.js'
+	export default{
+		name:"MemberForm",
+		data(){
+			return{
+				type:undefined,
+				rules:{
+					memberName:{
+						rules:[
+							{
+								required: true,
+								errorMessage: '请输入成员姓名'
+							}					
+						],
+						validateTrigger:'submit'
+					},
+					memberPhone:{
+						rules:[
+							{
+								required: true,
+								errorMessage: '请输入联系电话',
+							},{
+								// validateFunction:function(rule,value,data,callback){
+								// 	const regex = /^(\d{3,4}-)?\d{7,8}(-\d{1,4})?$/;
+								// 	if(!regex.test(value)){
+								// 		callback('请输入正确的手机号码')
+								// 	}
+								// 	return true
+								// }
+							}
+						],
+						validateTrigger:'submit'
+					}					
+				},
+				sexs: [{
+					text: '男',
+					value: 1
+				}, {
+					text: '女',
+					value: 2
+				}],
+				ifCpcs: [{
+					text: '不是党员',
+					value: 0
+				}, {
+					text: '党员',
+					value: 1
+				}],
+				form:{
+					teamId: 0,
+					memberId: 0,
+					memberName: '',
+					memberAvatar: '',
+					memberPosition: '',
+					memberPhone: '',
+					memberDuty: '',
+					memberSex: 1,
+					memberAge: 20,
+					ifCpc: 0,
+					remark: '',
+					sortNo: 1,					
+				}
+			}
+		},
+		onReady() {
+			this.$refs.form.setRules(this.rules)
+		},
+		methods:{
+			resetForm(){
+				this.form={
+					teamId: 0,
+					memberId: 0,
+					memberName: '',
+					memberAvatar: '',
+					memberPosition: '',
+					memberPhone: '',
+					memberDuty: '',
+					memberSex: 1,
+					memberAge: 20,
+					ifCpc: 0,
+					remark: '',
+					sortNo: 1,
+				}
+			},
+			onSubmit(){
+				this.$refs.form.validate().then(res=>{
+					let submitFx=this.type==='add'?teamApi.createMember:teamApi.updateMember
+					submitFx(this.form).then(()=>{
+						uni.showToast({
+							icon:"none",
+							title:"成功!!"
+						})
+						this.$emit('success')
+						this.close();
+					})
+			
+				}).catch(err =>{
+					uni.showToast({
+						icon:"none",
+						title:"请检查填写信息!"
+					})
+				})
+			},
+			editAvart(){
+				const self=this;
+				uni.chooseImage({
+					count: 1,
+					sizeType: ['original', 'compressed'],
+					sourceType: ['album',"camera"], //从相册选择
+					success:(res)=>{
+						let filePath=res.tempFilePaths[0]
+						upload({filePath}).then((resq)=>{
+							var fileResq=JSON.parse(resq)
+							self.form.memberAvatar=fileResq.data.fileUrl;
+						})
+					}
+				});		
+			},
+			show(type,item){
+				this.resetForm()
+				if(type==='edit'){
+					this.form={...item}
+				}else{
+					this.form.teamId=item
+				}
+				this.type=type
+				this.$refs.drawer.open()
+			},
+			close(){
+				this.$refs.drawer.close()
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.scroll-view {
+		height: 100%;
+		padding: 20rpx;
+		box-sizing: border-box;
+		.form-wrap{
+			padding:40rpx;
+			.row{
+				display: flex;
+				align-items: flex-end;
+				justify-content: space-between;
+				.col{
+					width: 50%;
+					&.sex{
+						.sexbox{
+							padding-top: 22rpx;
+						}
+					}
+					&.age{
+						width: 200rpx;
+					}
+				}
+			}
+			.memberAvatar{
+				width: 100rpx;
+				height: 100rpx;
+				border-radius: 50%;
+				overflow: hidden;
+				background-color: #eaeaea;
+				image{
+					display: block;
+					width: 100rpx;
+					height: 100rpx;
+					border-radius: 50%;
+				}
+			}
+			.word-limit{
+				text-align: right;
+				padding: 10rpx 0;
+				color: #999;
+				font-size: 26rpx;
+			}
+			.handle-container{
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				button{
+					width: 160rpx;
+					padding: 20rpx 16rpx;
+					line-height: 1;
+					font-size: 28rpx;
+					&.save{
+						background-color: #007aff;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 160 - 0
pages/team/components/TeamForm.vue

@@ -0,0 +1,160 @@
+<template>
+	<uni-drawer ref="drawer" mode="left" :mask-click="false" width="85%" :maskClick='true'>
+		<scroll-view class="scroll-view" scroll-y="true">
+			<view class="form-wrap" >
+				<uni-forms ref="form" label-position="top" :rules="rules" :model="form">
+					<uni-forms-item label="队伍名称" name="teamName" required>
+						<uni-easyinput v-model="form.teamName" placeholder="请输入队伍名称" :clearable="false" />
+					</uni-forms-item>
+					<uni-forms-item label="队伍类别" name="teamCatId" required>
+						<uni-data-select  v-model="form.teamCatId" :localdata="teamCats" placeholder="请选择值班人员" :clear="false"></uni-data-select>
+					</uni-forms-item>
+					<uni-forms-item label="职责说明">
+						<uni-easyinput type="textarea" :maxlength="1000" v-model="form.teamDuty" placeholder="请输入职责说明" autoHeight ></uni-easyinput>
+						<view class="word-limit">{{form.teamDuty.length||0}}/1000</view>
+					</uni-forms-item>
+					<uni-forms-item label="说明">
+						<uni-easyinput type="textarea" :maxlength="500"
+						 v-model="form.teamDesc" autoHeight 
+						placeholder="请输入职责说明"></uni-easyinput>
+						<view class="word-limit">{{form.teamDesc.length||0}}/500</view>
+					</uni-forms-item>
+					<uni-forms-item label="排序" v-model="form.sortNo">
+						<uni-number-box :min="1"></uni-number-box>
+					</uni-forms-item>
+				</uni-forms>
+				<view class="handle-container">
+					<button class="save" type="primary" @click="onSubmit">保存</button>
+					<button class="cancel" type="default" @click="close">取消</button>
+				</view>
+			</view>	
+		</scroll-view>
+	</uni-drawer>
+</template>
+
+<script>
+	import teamApi from '@/api/team.js'	
+	export default{
+		name:"TeamForm",
+		computed:{
+			teamCats(){
+				let teamCats=uni.getStorageSync('teamCat')
+				return teamCats.map(item=>{
+					return{
+						value:item.teamCatId,
+						text:item.teamCatTitle
+					}
+				})
+			}			
+		},
+		data(){
+			return{
+				type:undefined,
+				rules:{
+					teamName:{
+						rules:[
+							{
+								required: true,
+								errorMessage: '请输入队伍名称'
+							}					
+						],
+						validateTrigger:'submit'
+					},
+					teamCatId:{
+						rules:[
+							{
+								required: true,
+								errorMessage: '请选择队伍类别',
+							}
+						],
+						validateTrigger:'submit'
+					},
+				},
+				form:{
+					teamId: 0,
+					teamName: '',
+					teamType: 1,
+					teamCatId: 1,
+					teamDuty: '',
+					teamDesc: '',
+					sortNo: 1
+				}
+			}
+		},
+		methods:{
+			resetForm(){
+				this.form={
+					teamId: 0,
+					teamName: '',
+					teamType: 1,
+					teamCatId: 1,
+					teamDuty: '',
+					teamDesc: '',
+					sortNo: 1
+				}
+			},
+			onSubmit(){
+				this.$refs.form.validate().then(res=>{
+					let submitFx=this.type==='add'?teamApi.create:teamApi.update
+					submitFx(this.form).then(()=>{
+						uni.showToast({
+							icon:"none",
+							title:"成功!!"
+						})
+						this.$emit('success')
+						this.close();
+					})
+
+				}).catch(err =>{
+					uni.showToast({
+						icon:"none",
+						title:"请检查填写信息!"
+					})
+				})
+			},
+			show(type,item){
+				this.resetForm()
+				if(type==='edit'){
+					this.form={...item}
+				}else{
+					this.form.teamType=item
+				}
+				this.type=type
+				this.$refs.drawer.open()
+			},
+			close(){
+				this.$refs.drawer.close()
+			}
+		}
+	}
+</script>
+<style lang="scss" scoped>
+	.scroll-view {
+		height: 100%;
+		padding: 20rpx;
+		box-sizing: border-box;
+		.form-wrap{
+			padding:40rpx;
+			.handle-container{
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				button{
+					width: 160rpx;
+					padding: 20rpx 16rpx;
+					line-height: 1;
+					font-size: 28rpx;
+					&.save{
+						background-color: #007aff;
+					}
+				}
+			}
+			.word-limit{
+				text-align: right;
+				padding: 10rpx 0;
+				color: #999;
+				font-size: 26rpx;
+			}
+		}
+	}
+</style>

+ 221 - 77
pages/team/index.vue

@@ -4,59 +4,106 @@
 			<uni-segmented-control :current="tabIdx" :values="tabs" style-type="text" active-color="#007aff" @clickItem="changeTab" />				
 		</view>	
 		<view class="pageMain">
-			<view class="teamhead">
-				<uni-data-select  v-model="teamId" class="item-select" @change="changeTeamType":localdata="teamList" :clear="false"></uni-data-select>	
-				<view class="handle-bt" @click="editTeam">
-					<text>编辑</text>
-				</view>
-			</view>
-			<uni-collapse value="0" ref="collapse" accordion>
-				<uni-collapse-item :title="teamName">
-					<view class="teamDuty">
-						<text>{{teamDuty}}</text>
-					</view>
-				</uni-collapse-item>
-			</uni-collapse>
-			<view class="item-container">
-				<view class="teamhead">
-					<view class="item-select">
-						<text>成员列表</text>
-					</view>
-					<view class="handle-bt" @click="addMember">
-						<text>新增</text>
-					</view>
-				</view>
-				<view class="item" v-for="item in items" :key="item.memberId">
-					<view class="avatar">
-						<image :src="item.memberAvatar" v-if="item.memberAvatar"></image>
-						<image class="icon" src="/static/images/avatar.png" v-else></image>
+			<uni-card  v-for="(team,index) in teamItems" :key="team.teamId" margin="10px 0" padding="0">
+				<template v-slot:title>
+					<view class="teamhead">
+						<view class="teamName">
+							<text>{{team.teamName}}</text>
+						</view>
+						<view class="handle-bt" @click="handleTeam('edit',team)">
+							<text>编辑</text>
+						</view>
+						<view class="addbt" @click="handleTeam('add',team.teamType)">
+							<view class="word">添加队伍</view>
+						</view>
 					</view>
-					<view class="info">
-						
+				</template>
+				<uni-collapse value="0" :ref="`collapse-${index+1}`" accordion>
+					<uni-collapse-item :title="team.teamName">
+						<view class="teamDuty">
+							<text>{{team.teamDuty}}</text>
+						</view>
+					</uni-collapse-item>
+				</uni-collapse>
+				<view class="item-container">
+					<view class="teamhead">
+						<view class="item-select">
+							<text>成员列表</text>
+						</view>
+						<view class="handle-bt" @click="handleMember('add',team.teamId)">
+							<text>新增</text>
+						</view>
 					</view>
+					<uni-swipe-action class="item-action-box">
+						<uni-card padding="10px 0" margin="5px 0" v-for="item in team.memberList" :key="item.memberId">
+							<uni-swipe-action-item class="item-action" :auto-close="true" >
+								<template v-slot:right>
+									<view class="slot-button">
+										<view class="bt edit" @click="handleMember('edit',item)"><text class="slot-button-text">编辑</text></view>
+										<view class="bt del" @click="handleMember('del',item)"><text class="slot-button-text">删除</text></view>
+									</view>
+								</template>
+								<view class="item">
+									<view class="avatar">
+										<image :src="item.memberAvatar" v-if="item.memberAvatar"></image>
+										<image class="icon" src="/static/images/avatar.png" v-else></image>
+									</view>
+									<view class="info">
+										<view class="top">
+											 <view class="posName">
+												 <text>{{item.memberPosition}}</text>
+											 </view>							
+											<view class="posbox">
+												 <view class="tag">
+													<uni-tag :inverted="true" :text="item.ifCpc===1?'党员':'不是党员'" 
+													:type="item.ifCpc===1?'primary':'success'"></uni-tag>
+												</view>								
+											</view>
+										</view>
+										<view class="bottom">
+											<view class="user">
+												<div class="userinfo">
+													<uni-icons type="person-filled" size="24" :color="item.memberSex===1?'#666666':'#ffc0cb'"></uni-icons>
+													<view class="name">{{item.memberName}}</view>	
+												</div>
+											</view>
+											<view class="phone" @click="callPhone(item.memberPhone)">
+												<image class="icon" src="/static/images/phone.png"></image>
+												<view class="phoneNumber">{{item.memberPhone||'未填写'}}</view>
+											</view>
+										</view>
+									</view>
+								</view>
+							</uni-swipe-action-item>
+						</uni-card>
+					</uni-swipe-action>
 				</view>
-			</view>
+			</uni-card>
 		</view>
+		<MemberForm ref="member" @success="getData"></MemberForm>
+		<TeamForm ref="team" @success="getData"></TeamForm>
 	</view>
 </template>
 
 <script>
 	import teamApi from '@/api/team.js'
+	import TeamForm from './components/TeamForm.vue'
+	import MemberForm from './components/MemberForm.vue'
 	export default {
+		components:{
+			TeamForm,
+			MemberForm	
+		},
 		data() {
 			return {
 				tabIdx:0,
 				tabs:['专业救援队伍','行业救援队伍','综合抢险队伍'],
-				teamList:[],
-				teamId:undefined,
-				teamId:undefined,
-				teamName:"",
-				teamDuty:"",
-				items:[]
+				teamItems:[]
 			}
 		},
 		onShow() {
 			this.getData()
+			this.init();
 		},
 		methods: {
 			changeTab({currentIndex}){
@@ -65,43 +112,56 @@
 					this.getData()
 				}
 			},
-			changeTeamType(){
-				this.getTeamInfo()
-			},
 			getData(){
-				teamApi.getByList({teamType:this.tabIdx+1}).then((res)=>{
-					if(res.data.length>0){
-						this.teamList=res.data.map(item=>{
-							return{
-								value:item.teamId,
-								text:item.teamName
-							}
-						})	
-						this.teamId=res.data[0].teamId				
-						this.getTeamInfo()
+				teamApi.getByListInfo({teamType:this.tabIdx+1}).then((res)=>{
+					this.teamItems=res.data					
+					for(let i=0;i<res.data.length;i++){
+						// #ifdef MP
+						this.$nextTick(() => {
+							this.$refs[`collapse-${i+1}`][0]&&this.$refs[`collapse-${i+1}`][0].resize()
+						})
+						// #endif
 					}
-				})				
+				})
 			},
-			getTeamInfo(){
-				teamApi.getById(this.teamId).then((result)=>{
-					this.teamName=result.data.teamName
-					this.teamDuty=result.data.teamDuty
-					// #ifdef MP
-					this.$nextTick(() => {
-						this.$refs.collapse.resize()
-					})
-					// #endif
-				})	
-				teamApi.getMemberByList({teamId:this.teamId}).then((res)=>{
-					this.items=res.data
-				})	
+			handleTeam(type,item){
+				this.$refs.team.show(type,item)
 			},
-			editTeam(){
-				
+			handleMember(type,item){
+				const self=this;
+				if(type==='del'){
+					uni.showModal({
+						title: '提示',
+						content: '是否确定删除',
+						success: function (res) {
+							if (res.confirm) {
+								teamApi.deleteMemberById(item.teamId,item.memberId).then(()=>{
+									uni.showToast({
+										title:'删除成功!',
+										icon:'none'
+									})
+									self.getData()
+								})				
+							}
+						}
+					});
+				}else{
+					this.$refs.member.show(type,item)
+				}				
 			},
-			addMember(){
-				
-			}
+			callPhone(phoneNumber) {
+			 if(!phoneNumber)return
+			  wx.makePhoneCall({
+			    phoneNumber
+			  })
+			},
+			init(){
+				if(!uni.getStorageSync('teamCat')){
+					teamApi.getCatByList().then((res)=>{
+						uni.setStorageSync('teamCat',res.data)
+					})	
+				}
+			}			
 		}
 	}
 </script>
@@ -115,18 +175,20 @@
 	.pageMain{
 		margin-top: 20rpx;
 		background-color: #f5f5f5;
+		padding-bottom: 50rpx;
 		.teamhead{
-			padding: 20rpx;
 			background-color: #fff;
 			display: flex;
 			justify-content: space-between;
 			align-items: center;
-			.item-select{
-				width: 400rpx;
+			.teamName{
+				font-weight: 600;
+				font-size: 36rpx;
+				color: #333;
 			}
 			.handle-bt{
 				padding: 20rpx 30rpx;
-				font-size: 24rpx;
+				font-size: 28rpx;
 				color: #409eff;
 				line-height: 1;
 				flex-shrink: 0;
@@ -134,7 +196,32 @@
 		}
 		.teamDuty{
 			padding: 20rpx;
-			line-height: 1.5;
+			line-height: 1.2;
+			background-color: #f5f5f5;
+		}
+		.addbt{
+			width: 100rpx;
+			height: 100rpx;
+			border-radius: 50%;
+			color: #fff;
+			background-color: rgba(64,158,255,0.7);			
+			box-shadow:0 0 10rpx rgba(0,0,0,0.4);
+			position: fixed;
+			right: 10rpx;
+			bottom: 20%;
+			z-index: 99;
+			text-align: center;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			.word{
+				width: 80rpx;
+				height: 80rpx;
+				border-radius: 50%;
+				margin: 5rpx auto;
+				font-size: 28rpx;
+				letter-spacing: 2px;
+			}
 		}
 		.item-container{
 			margin-top: 20rpx;
@@ -144,10 +231,6 @@
 					display: flex;
 					justify-content: space-between;
 					align-items: center;
-					background-color: #fff;
-					box-shadow:0 0 2px rgba(0,0,0,0.3) ;
-					margin-top: 20rpx;
-					padding: 20rpx;
 				}
 				.avatar {
 					flex-shrink: 0;
@@ -161,8 +244,69 @@
 						height: 60rpx;	
 					}
 				}
+				.info{
+					flex: 1;
+					padding:0 14rpx;
+					.icon,.icon image{
+						display: block;
+						width: 30rpx;
+						height: 30rpx;
+						flex-shrink: 0;
+					}
+					
+					.user,.phone{
+						display: flex;
+						align-items: center;
+						.name,.phoneNumber{
+							color: #999;
+							font-size: 12px;
+							font-weight: normal;
+							line-height: 1;
+						}
+					}
+					.user{
+						padding: 10rpx 0;
+						.userinfo{
+							display: flex;
+							align-items: center;
+						}
+					}
+					.posbox{
+						display: flex;
+						justify-content: flex-end;
+					}
+					.bottom {
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+					}
+				}
+			}
+			.slot-button{
+				width: 260rpx;
+				height: 100%;
+				display: flex;
+				flex-direction: row;
+				justify-content: center;
+				align-items: center;
+				color: #fff;
+				.bt{
+					width: 50%;
+					height: 100%;
+					font-size: 30rpx;
+					box-sizing: border-box;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					&.edit{
+					    background-color:#007aff;
+					}
+					&.del{
+						background-color:#F56C6C;
+					}
+				}
 			}
 		}
 	}
 }
-</style>
+</style>

文件差异内容过多而无法显示
+ 0 - 0
static/js/echarts-all.js


文件差异内容过多而无法显示
+ 0 - 0
static/js/echarts.js


+ 2 - 1
static/js/wx-canvas.js

@@ -14,7 +14,8 @@ export default class WxCanvas {
 
     this._initEvent();
   }
-
+  
+  addEventListener() {}
   getContext(contextType) {
     if (contextType === '2d') {
       return this.ctx;

+ 5 - 2
uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue

@@ -1,7 +1,7 @@
 <template>
 	<view v-if="visibleSync" :class="{ 'uni-drawer--visible': showDrawer }" class="uni-drawer" @touchmove.stop.prevent="clear">
 		<view class="uni-drawer__mask" :class="{ 'uni-drawer__mask--visible': showDrawer && mask }" @tap="close('mask')" />
-		<view class="uni-drawer__content" :class="{'uni-drawer--right': rightMode,'uni-drawer--left': !rightMode, 'uni-drawer__content--visible': showDrawer}" :style="{width:drawerWidth+'px'}">
+		<view class="uni-drawer__content" :class="{'uni-drawer--right': rightMode,'uni-drawer--left': !rightMode, 'uni-drawer__content--visible': showDrawer}" :style="{width:formatterDrawerWidth(drawerWidth)}">
 			<slot />
 		</view>
 		<!-- #ifdef H5 -->
@@ -60,7 +60,7 @@
 			 * 抽屉宽度
 			 */
 			width: {
-				type: Number,
+				type: [Number,String],
 				default: 220
 			}
 		},
@@ -81,6 +81,9 @@
 		},
 		methods: {
 			clear(){},
+			formatterDrawerWidth(w){
+				return typeof(w)==="number"?w+'px':w
+			},
 			close(type) {
 				// fixed by mehaotian 抽屉尚未完全关闭或遮罩禁止点击时不触发以下逻辑
 				if((type === 'mask' && !this.maskClick) || !this.visibleSync) return

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/IndexBarChart.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/UniEcCanvas.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/duty/components/AddForm.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/duty/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/goods/components/Inbound.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/goods/components/Outbound.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/goods/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/goods/record.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/personalData/personalData.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/myCenter/updatePassword/updatePassword.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/team/components/MemberForm.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/team/components/TeamForm.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/team/index.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-badge/components/uni-badge/uni-badge.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-card/components/uni-card/uni-card.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-forms/components/uni-forms/uni-forms.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-list/components/uni-list-item/uni-list-item.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-list/components/uni-list/uni-list.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-row/components/uni-col/uni-col.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-row/components/uni-row/uni-row.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-section/components/uni-section/uni-section.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-table/uni-table.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-td/uni-td.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-th/uni-th.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-tr/table-checkbox.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-table/components/uni-tr/uni-tr.js.map


文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-tag/components/uni-tag/uni-tag.js.map


+ 2 - 1
unpackage/dist/dev/mp-weixin/app.json

@@ -10,7 +10,8 @@
     "pages/duty/index",
     "pages/team/index",
     "pages/goods/index",
-    "pages/login/index"
+    "pages/login/index",
+    "pages/goods/record"
   ],
   "subPackages": [],
   "window": {

文件差异内容过多而无法显示
+ 1 - 1
unpackage/dist/dev/mp-weixin/common/runtime.js


文件差异内容过多而无法显示
+ 157 - 133
unpackage/dist/dev/mp-weixin/common/vendor.js


+ 1 - 1
unpackage/dist/dev/mp-weixin/components/IndexBarChart.js

@@ -122,7 +122,7 @@ Object.defineProperty(exports, "__esModule", {
 exports.default = void 0;
 var uniEcCanvas = function uniEcCanvas() {
   Promise.all(/*! require.ensure | components/UniEcCanvas */[__webpack_require__.e("common/vendor"), __webpack_require__.e("components/UniEcCanvas")]).then((function () {
-    return resolve(__webpack_require__(/*! ./UniEcCanvas.vue */ 305));
+    return resolve(__webpack_require__(/*! ./UniEcCanvas.vue */ 319));
   }).bind(null, __webpack_require__)).catch(__webpack_require__.oe);
 };
 var _default = {

文件差异内容过多而无法显示
+ 13 - 13
unpackage/dist/dev/mp-weixin/components/UniEcCanvas.js


+ 2 - 2
unpackage/dist/dev/mp-weixin/pages/duty/components/AddForm.js

@@ -83,10 +83,10 @@ try {
       return Promise.all(/*! import() | uni_modules/uni-icons/components/uni-icons/uni-icons */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(__webpack_require__.bind(null, /*! @/uni_modules/uni-icons/components/uni-icons/uni-icons.vue */ 136))
     },
     uniForms: function () {
-      return Promise.all(/*! import() | uni_modules/uni-forms/components/uni-forms/uni-forms */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/uni-forms/components/uni-forms/uni-forms")]).then(__webpack_require__.bind(null, /*! @/uni_modules/uni-forms/components/uni-forms/uni-forms.vue */ 282))
+      return Promise.all(/*! import() | uni_modules/uni-forms/components/uni-forms/uni-forms */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/uni-forms/components/uni-forms/uni-forms")]).then(__webpack_require__.bind(null, /*! @/uni_modules/uni-forms/components/uni-forms/uni-forms.vue */ 296))
     },
     uniFormsItem: function () {
-      return __webpack_require__.e(/*! import() | uni_modules/uni-forms/components/uni-forms-item/uni-forms-item */ "uni_modules/uni-forms/components/uni-forms-item/uni-forms-item").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue */ 291))
+      return __webpack_require__.e(/*! import() | uni_modules/uni-forms/components/uni-forms-item/uni-forms-item */ "uni_modules/uni-forms/components/uni-forms-item/uni-forms-item").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue */ 305))
     },
     uniDataSelect: function () {
       return Promise.all(/*! import() | uni_modules/uni-data-select/components/uni-data-select/uni-data-select */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/uni-data-select/components/uni-data-select/uni-data-select")]).then(__webpack_require__.bind(null, /*! @/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue */ 228))

+ 5 - 4
unpackage/dist/dev/mp-weixin/pages/duty/index.js

@@ -79,9 +79,6 @@ __webpack_require__.r(__webpack_exports__);
 var components
 try {
   components = {
-    uniCard: function () {
-      return __webpack_require__.e(/*! import() | uni_modules/uni-card/components/uni-card/uni-card */ "uni_modules/uni-card/components/uni-card/uni-card").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-card/components/uni-card/uni-card.vue */ 186))
-    },
     uniListItem: function () {
       return __webpack_require__.e(/*! import() | uni_modules/uni-list/components/uni-list-item/uni-list-item */ "uni_modules/uni-list/components/uni-list-item/uni-list-item").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue */ 207))
     },
@@ -229,7 +226,11 @@ var _default = {
         year: this.year,
         week: this.week
       }).then(function (res) {
-        _this2.items = res.data;
+        _this2.items = res.data.map(function (item, idx) {
+          return _objectSpread(_objectSpread({}, item), {}, {
+            id: "".concat(item.accountId, "-").concat(idx + 1)
+          });
+        });
       });
     },
     swipeHandle: function swipeHandle(_ref) {

+ 0 - 1
unpackage/dist/dev/mp-weixin/pages/duty/index.json

@@ -1,7 +1,6 @@
 {
   "navigationBarTitleText": "应急值守",
   "usingComponents": {
-    "uni-card": "/uni_modules/uni-card/components/uni-card/uni-card",
     "uni-list-item": "/uni_modules/uni-list/components/uni-list-item/uni-list-item",
     "uni-tag": "/uni_modules/uni-tag/components/uni-tag/uni-tag",
     "uni-data-select": "/uni_modules/uni-data-select/components/uni-data-select/uni-data-select",

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/duty/index.wxml


+ 12 - 0
unpackage/dist/dev/mp-weixin/pages/duty/index.wxss

@@ -24,6 +24,15 @@
 /* 垂直间距 */
 /* 透明度 */
 /* 文章场景相关 */
+.page-wrap.data-v-59369512 {
+  width: 710rpx;
+  background-color: #fff;
+  margin: 20rpx auto;
+  box-shadow: 0 0 4px rgba(0, 0, 0, 0.46);
+  padding: 20rpx;
+  box-sizing: border-box;
+  border-radius: 4px;
+}
 .tip.data-v-59369512 {
   font-size: 28rpx;
   color: #666;
@@ -93,6 +102,9 @@
   align-items: center;
   justify-content: space-between;
 }
+.rtbox .rt.data-v-59369512 {
+  text-align: right;
+}
 .delbt.data-v-59369512 {
   padding: 20rpx;
 }

文件差异内容过多而无法显示
+ 300 - 0
unpackage/dist/dev/mp-weixin/pages/goods/components/Inbound.js


+ 11 - 0
unpackage/dist/dev/mp-weixin/pages/goods/components/Inbound.json

@@ -0,0 +1,11 @@
+{
+  "usingComponents": {
+    "uni-drawer": "/uni_modules/uni-drawer/components/uni-drawer/uni-drawer",
+    "uni-forms": "/uni_modules/uni-forms/components/uni-forms/uni-forms",
+    "uni-forms-item": "/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item",
+    "uni-easyinput": "/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput",
+    "uni-data-select": "/uni_modules/uni-data-select/components/uni-data-select/uni-data-select",
+    "uni-number-box": "/uni_modules/uni-number-box/components/uni-number-box/uni-number-box"
+  },
+  "component": true
+}

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/goods/components/Inbound.wxml


+ 55 - 0
unpackage/dist/dev/mp-weixin/pages/goods/components/Inbound.wxss

@@ -0,0 +1,55 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.scroll-view.data-v-4f05f89c {
+  height: 100%;
+  padding: 20rpx;
+  box-sizing: border-box;
+}
+.scroll-view .form-wrap.data-v-4f05f89c {
+  padding: 40rpx;
+}
+.scroll-view .form-wrap .handle-container.data-v-4f05f89c {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.scroll-view .form-wrap .handle-container button.data-v-4f05f89c {
+  width: 160rpx;
+  padding: 20rpx 16rpx;
+  line-height: 1;
+  font-size: 28rpx;
+}
+.scroll-view .form-wrap .handle-container button.save.data-v-4f05f89c {
+  background-color: #007aff;
+}
+.scroll-view .form-wrap .word-limit.data-v-4f05f89c {
+  text-align: right;
+  padding: 10rpx 0;
+  color: #999;
+  font-size: 26rpx;
+}
+

文件差异内容过多而无法显示
+ 300 - 0
unpackage/dist/dev/mp-weixin/pages/goods/components/Outbound.js


+ 11 - 0
unpackage/dist/dev/mp-weixin/pages/goods/components/Outbound.json

@@ -0,0 +1,11 @@
+{
+  "usingComponents": {
+    "uni-drawer": "/uni_modules/uni-drawer/components/uni-drawer/uni-drawer",
+    "uni-forms": "/uni_modules/uni-forms/components/uni-forms/uni-forms",
+    "uni-forms-item": "/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item",
+    "uni-easyinput": "/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput",
+    "uni-data-select": "/uni_modules/uni-data-select/components/uni-data-select/uni-data-select",
+    "uni-number-box": "/uni_modules/uni-number-box/components/uni-number-box/uni-number-box"
+  },
+  "component": true
+}

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/goods/components/Outbound.wxml


+ 55 - 0
unpackage/dist/dev/mp-weixin/pages/goods/components/Outbound.wxss

@@ -0,0 +1,55 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.scroll-view.data-v-342bcf87 {
+  height: 100%;
+  padding: 20rpx;
+  box-sizing: border-box;
+}
+.scroll-view .form-wrap.data-v-342bcf87 {
+  padding: 40rpx;
+}
+.scroll-view .form-wrap .handle-container.data-v-342bcf87 {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.scroll-view .form-wrap .handle-container button.data-v-342bcf87 {
+  width: 160rpx;
+  padding: 20rpx 16rpx;
+  line-height: 1;
+  font-size: 28rpx;
+}
+.scroll-view .form-wrap .handle-container button.save.data-v-342bcf87 {
+  background-color: #007aff;
+}
+.scroll-view .form-wrap .word-limit.data-v-342bcf87 {
+  text-align: right;
+  padding: 10rpx 0;
+  color: #999;
+  font-size: 26rpx;
+}
+

文件差异内容过多而无法显示
+ 120 - 28
unpackage/dist/dev/mp-weixin/pages/goods/index.js


+ 8 - 1
unpackage/dist/dev/mp-weixin/pages/goods/index.json

@@ -1,4 +1,11 @@
 {
   "navigationBarTitleText": "物资储备",
-  "usingComponents": {}
+  "usingComponents": {
+    "uni-segmented-control": "/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control",
+    "uni-section": "/uni_modules/uni-section/components/uni-section/uni-section",
+    "uni-card": "/uni_modules/uni-card/components/uni-card/uni-card",
+    "uni-tag": "/uni_modules/uni-tag/components/uni-tag/uni-tag",
+    "inbound": "/pages/goods/components/Inbound",
+    "outbound": "/pages/goods/components/Outbound"
+  }
 }

文件差异内容过多而无法显示
+ 0 - 1
unpackage/dist/dev/mp-weixin/pages/goods/index.wxml


+ 90 - 0
unpackage/dist/dev/mp-weixin/pages/goods/index.wxss

@@ -0,0 +1,90 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.page-wrap.data-v-520b1870 {
+  padding: 0 20rpx;
+}
+.page-wrap .pageTabs.data-v-520b1870 {
+  background-color: #fff;
+}
+.page-wrap .head.data-v-520b1870 {
+  margin-top: 20rpx;
+}
+.page-wrap .head .handle.data-v-520b1870 {
+  display: inline-block;
+  background-color: #007aff;
+  color: #fff;
+  text-align: center;
+  padding: 16rpx 20rpx;
+  border-radius: 6rpx;
+  border: 1px solid #007aff;
+  font-size: 28rpx;
+  box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
+}
+.page-wrap .head .addbt.data-v-520b1870 {
+  width: 100rpx;
+  height: 100rpx;
+  border-radius: 50%;
+  color: #fff;
+  background-color: rgba(64, 158, 255, 0.75);
+  box-shadow: 0 0 10rpx rgba(0, 0, 0, 0.6);
+  position: fixed;
+  right: 10rpx;
+  bottom: 20%;
+  z-index: 99;
+  text-align: center;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.page-wrap .head .addbt .word.data-v-520b1870 {
+  width: 80rpx;
+  height: 80rpx;
+  border-radius: 50%;
+  margin: 5rpx auto;
+  font-size: 28rpx;
+  letter-spacing: 2px;
+}
+.page-wrap .pageMain.data-v-520b1870 {
+  margin-top: 20rpx;
+  background-color: #f5f5f5;
+  padding-bottom: 50rpx;
+}
+.page-wrap .pageMain .title.data-v-520b1870 {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding-top: 16rpx;
+}
+.page-wrap .pageMain .bottom.data-v-520b1870 {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.page-wrap .pageMain .bottom .handle.data-v-520b1870 {
+  padding: 10px 0 10px 20px;
+}
+

文件差异内容过多而无法显示
+ 250 - 0
unpackage/dist/dev/mp-weixin/pages/goods/record.js


+ 10 - 0
unpackage/dist/dev/mp-weixin/pages/goods/record.json

@@ -0,0 +1,10 @@
+{
+  "navigationBarTitleText": "出库/入库记录",
+  "usingComponents": {
+    "uni-segmented-control": "/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control",
+    "uni-swipe-action": "/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action",
+    "uni-card": "/uni_modules/uni-card/components/uni-card/uni-card",
+    "uni-swipe-action-item": "/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item",
+    "uni-tag": "/uni_modules/uni-tag/components/uni-tag/uni-tag"
+  }
+}

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/goods/record.wxml


+ 89 - 0
unpackage/dist/dev/mp-weixin/pages/goods/record.wxss

@@ -0,0 +1,89 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.page-wrap.data-v-1d854dba {
+  padding: 0 20rpx;
+}
+.page-wrap .pageTabs.data-v-1d854dba {
+  background-color: #fff;
+}
+.page-wrap .pageMain.data-v-1d854dba {
+  margin-top: 20rpx;
+  background-color: #f5f5f5;
+  padding-bottom: 50rpx;
+}
+.page-wrap .pageMain .item .title.data-v-1d854dba {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.page-wrap .pageMain .item .title .name.data-v-1d854dba {
+  font-size: 36rpx;
+  color: #222222;
+  font-weight: 500;
+}
+.page-wrap .pageMain .item .title .num.data-v-1d854dba {
+  font-size: 32rpx;
+  color: #424242;
+}
+.page-wrap .pageMain .item .tagbox.data-v-1d854dba {
+  font-size: 24rpx;
+  color: #666666;
+  padding: 14rpx 0;
+}
+.page-wrap .pageMain .item .bottom .time.data-v-1d854dba {
+  font-size: 24rpx;
+  color: #666666;
+}
+.page-wrap .pageMain .slot-button.data-v-1d854dba {
+  width: 400rpx;
+  height: 100%;
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
+  align-items: center;
+  color: #fff;
+  padding-left: 10px;
+}
+.page-wrap .pageMain .slot-button .bt.data-v-1d854dba {
+  width: 50%;
+  height: 100%;
+  font-size: 30rpx;
+  box-sizing: border-box;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.page-wrap .pageMain .slot-button .bt.edit.data-v-1d854dba {
+  background-color: #007aff;
+}
+.page-wrap .pageMain .slot-button .bt.del.data-v-1d854dba {
+  background-color: #F56C6C;
+}
+.page-wrap .pageMain .slot-button .bt.detail.data-v-1d854dba {
+  background-color: #e6a23c;
+}
+

+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/index/index.js

@@ -271,7 +271,7 @@ var _default = {
               return item.count;
             }),
             xData: data.map(function (item) {
-              return item.teamName;
+              return item.teamCatTitle;
             }),
             name: "队伍建设"
           };

+ 2 - 2
unpackage/dist/dev/mp-weixin/pages/login/index.js

@@ -101,10 +101,10 @@ var components
 try {
   components = {
     uniForms: function () {
-      return Promise.all(/*! import() | uni_modules/uni-forms/components/uni-forms/uni-forms */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/uni-forms/components/uni-forms/uni-forms")]).then(__webpack_require__.bind(null, /*! @/uni_modules/uni-forms/components/uni-forms/uni-forms.vue */ 282))
+      return Promise.all(/*! import() | uni_modules/uni-forms/components/uni-forms/uni-forms */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/uni-forms/components/uni-forms/uni-forms")]).then(__webpack_require__.bind(null, /*! @/uni_modules/uni-forms/components/uni-forms/uni-forms.vue */ 296))
     },
     uniFormsItem: function () {
-      return __webpack_require__.e(/*! import() | uni_modules/uni-forms/components/uni-forms-item/uni-forms-item */ "uni_modules/uni-forms/components/uni-forms-item/uni-forms-item").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue */ 291))
+      return __webpack_require__.e(/*! import() | uni_modules/uni-forms/components/uni-forms-item/uni-forms-item */ "uni_modules/uni-forms/components/uni-forms-item/uni-forms-item").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue */ 305))
     },
     uniEasyinput: function () {
       return __webpack_require__.e(/*! import() | uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput */ "uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput").then(__webpack_require__.bind(null, /*! @/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue */ 221))

文件差异内容过多而无法显示
+ 322 - 0
unpackage/dist/dev/mp-weixin/pages/team/components/MemberForm.js


+ 11 - 0
unpackage/dist/dev/mp-weixin/pages/team/components/MemberForm.json

@@ -0,0 +1,11 @@
+{
+  "usingComponents": {
+    "uni-drawer": "/uni_modules/uni-drawer/components/uni-drawer/uni-drawer",
+    "uni-forms": "/uni_modules/uni-forms/components/uni-forms/uni-forms",
+    "uni-forms-item": "/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item",
+    "uni-easyinput": "/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput",
+    "uni-data-checkbox": "/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox",
+    "uni-number-box": "/uni_modules/uni-number-box/components/uni-number-box/uni-number-box"
+  },
+  "component": true
+}

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/team/components/MemberForm.wxml


+ 82 - 0
unpackage/dist/dev/mp-weixin/pages/team/components/MemberForm.wxss

@@ -0,0 +1,82 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.scroll-view.data-v-905da484 {
+  height: 100%;
+  padding: 20rpx;
+  box-sizing: border-box;
+}
+.scroll-view .form-wrap.data-v-905da484 {
+  padding: 40rpx;
+}
+.scroll-view .form-wrap .row.data-v-905da484 {
+  display: flex;
+  align-items: flex-end;
+  justify-content: space-between;
+}
+.scroll-view .form-wrap .row .col.data-v-905da484 {
+  width: 50%;
+}
+.scroll-view .form-wrap .row .col.sex .sexbox.data-v-905da484 {
+  padding-top: 22rpx;
+}
+.scroll-view .form-wrap .row .col.age.data-v-905da484 {
+  width: 200rpx;
+}
+.scroll-view .form-wrap .memberAvatar.data-v-905da484 {
+  width: 100rpx;
+  height: 100rpx;
+  border-radius: 50%;
+  overflow: hidden;
+  background-color: #eaeaea;
+}
+.scroll-view .form-wrap .memberAvatar image.data-v-905da484 {
+  display: block;
+  width: 100rpx;
+  height: 100rpx;
+  border-radius: 50%;
+}
+.scroll-view .form-wrap .word-limit.data-v-905da484 {
+  text-align: right;
+  padding: 10rpx 0;
+  color: #999;
+  font-size: 26rpx;
+}
+.scroll-view .form-wrap .handle-container.data-v-905da484 {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.scroll-view .form-wrap .handle-container button.data-v-905da484 {
+  width: 160rpx;
+  padding: 20rpx 16rpx;
+  line-height: 1;
+  font-size: 28rpx;
+}
+.scroll-view .form-wrap .handle-container button.save.data-v-905da484 {
+  background-color: #007aff;
+}
+

文件差异内容过多而无法显示
+ 279 - 0
unpackage/dist/dev/mp-weixin/pages/team/components/TeamForm.js


+ 11 - 0
unpackage/dist/dev/mp-weixin/pages/team/components/TeamForm.json

@@ -0,0 +1,11 @@
+{
+  "usingComponents": {
+    "uni-drawer": "/uni_modules/uni-drawer/components/uni-drawer/uni-drawer",
+    "uni-forms": "/uni_modules/uni-forms/components/uni-forms/uni-forms",
+    "uni-forms-item": "/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item",
+    "uni-easyinput": "/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput",
+    "uni-data-select": "/uni_modules/uni-data-select/components/uni-data-select/uni-data-select",
+    "uni-number-box": "/uni_modules/uni-number-box/components/uni-number-box/uni-number-box"
+  },
+  "component": true
+}

文件差异内容过多而无法显示
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/team/components/TeamForm.wxml


部分文件因为文件数量过多而无法显示