zhaozhipeng преди 4 години
родител
ревизия
672287bdf7
променени са 92 файла, в които са добавени 725 реда и са изтрити 180 реда
  1. 10 3
      App.vue
  2. 10 3
      components/fxyk-card/fxyk-card.vue
  3. 83 0
      components/fxyk-modal/fxyk-modal.vue
  4. 28 3
      components/fxyk-navbar/fxyk-navbar.vue
  5. 1 1
      components/fxyk-progress/fxyk-progress.vue
  6. 1 1
      components/fxyk-projectCard/fxyk-projectCard.vue
  7. 7 0
      components/fxyk-search/fxyk-search.vue
  8. 5 2
      components/fxyk-status/fxyk-status.vue
  9. 8 8
      components/fxyk-tabControl/fxyk-tabControl.vue
  10. 33 0
      components/fxyk-textarea/fxyk-textarea.vue
  11. 9 2
      components/fxyk-timeline/fxyk-timeline.vue
  12. 1 1
      manifest.json
  13. 55 19
      pages.json
  14. 11 28
      pages/index/index.vue
  15. 23 0
      pages/index/projectEnd.vue
  16. 14 8
      pages/index/projectInfo.vue
  17. 1 1
      pages/index/projectInfoPoint.vue
  18. 63 0
      pages/index/projectInfoPointOrder.vue
  19. 43 11
      pages/index/search.vue
  20. 1 2
      pages/index/searchData.vue
  21. 76 15
      pages/login/index.vue
  22. 40 9
      pages/news/index.vue
  23. 10 6
      pages/user/index.vue
  24. 0 0
      static/images/icon-index-active11.png
  25. 0 0
      static/images/icon-index11.png
  26. BIN
      static/images/icon_index.png
  27. BIN
      static/images/icon_index_active.png
  28. BIN
      static/images/min.png
  29. BIN
      static/images/min_active.png
  30. BIN
      static/images/new.png
  31. BIN
      static/images/new_active.png
  32. 48 8
      store/index.js
  33. 0 0
      unpackage/dist/build/.automator/app-plus/.automator.json
  34. 0 0
      unpackage/dist/build/app-plus/__uniappchooselocation.js
  35. 0 0
      unpackage/dist/build/app-plus/__uniappes6.js
  36. 0 0
      unpackage/dist/build/app-plus/__uniappopenlocation.js
  37. 0 0
      unpackage/dist/build/app-plus/__uniapppicker.js
  38. 6 0
      unpackage/dist/build/app-plus/__uniappquill.js
  39. 0 0
      unpackage/dist/build/app-plus/__uniappquillimageresize.js
  40. 0 0
      unpackage/dist/build/app-plus/__uniappscan.js
  41. BIN
      unpackage/dist/build/app-plus/__uniappsuccess.png
  42. 28 0
      unpackage/dist/build/app-plus/__uniappview.html
  43. 8 0
      unpackage/dist/build/app-plus/app-config-service.js
  44. 1 0
      unpackage/dist/build/app-plus/app-config.js
  45. 0 0
      unpackage/dist/build/app-plus/app-service.js
  46. 0 0
      unpackage/dist/build/app-plus/app-view.js
  47. 0 0
      unpackage/dist/build/app-plus/manifest.json
  48. BIN
      unpackage/dist/build/app-plus/static/images/about.png
  49. BIN
      unpackage/dist/build/app-plus/static/images/end.png
  50. BIN
      unpackage/dist/build/app-plus/static/images/end_other.png
  51. BIN
      unpackage/dist/build/app-plus/static/images/finish.png
  52. BIN
      unpackage/dist/build/app-plus/static/images/finish_other.png
  53. BIN
      unpackage/dist/build/app-plus/static/images/head.png
  54. 0 0
      unpackage/dist/build/app-plus/static/images/icon-index-active11.png
  55. 0 0
      unpackage/dist/build/app-plus/static/images/icon-index11.png
  56. BIN
      unpackage/dist/build/app-plus/static/images/icon-mine-active.png
  57. BIN
      unpackage/dist/build/app-plus/static/images/icon-mine.png
  58. BIN
      unpackage/dist/build/app-plus/static/images/icon_index.png
  59. BIN
      unpackage/dist/build/app-plus/static/images/icon_index_active.png
  60. BIN
      unpackage/dist/build/app-plus/static/images/loginBg.png
  61. BIN
      unpackage/dist/build/app-plus/static/images/login_password.png
  62. BIN
      unpackage/dist/build/app-plus/static/images/login_user.png
  63. BIN
      unpackage/dist/build/app-plus/static/images/logo.png
  64. BIN
      unpackage/dist/build/app-plus/static/images/min.png
  65. BIN
      unpackage/dist/build/app-plus/static/images/min_active.png
  66. BIN
      unpackage/dist/build/app-plus/static/images/new.png
  67. BIN
      unpackage/dist/build/app-plus/static/images/new_active.png
  68. BIN
      unpackage/dist/build/app-plus/static/images/ongoing.png
  69. BIN
      unpackage/dist/build/app-plus/static/images/ongoing_other.png
  70. BIN
      unpackage/dist/build/app-plus/static/images/project.png
  71. BIN
      unpackage/dist/build/app-plus/static/images/project_other.png
  72. BIN
      unpackage/dist/build/app-plus/static/images/updatePassword.png
  73. BIN
      unpackage/dist/build/app-plus/static/images/version.png
  74. BIN
      unpackage/dist/build/app-plus/static/images/waste.png
  75. 0 0
      unpackage/dist/build/app-plus/view.css
  76. 0 0
      unpackage/dist/build/app-plus/view.umd.min.js
  77. 2 2
      unpackage/dist/dev/app-plus/app-config-service.js
  78. 0 0
      unpackage/dist/dev/app-plus/app-service.js
  79. 47 41
      unpackage/dist/dev/app-plus/app-view.js
  80. 0 0
      unpackage/dist/dev/app-plus/manifest.json
  81. BIN
      unpackage/dist/dev/app-plus/static/images/icon-index-active11.png
  82. BIN
      unpackage/dist/dev/app-plus/static/images/icon-index11.png
  83. BIN
      unpackage/dist/dev/app-plus/static/images/icon_index.png
  84. BIN
      unpackage/dist/dev/app-plus/static/images/icon_index_active.png
  85. BIN
      unpackage/dist/dev/app-plus/static/images/min.png
  86. BIN
      unpackage/dist/dev/app-plus/static/images/min_active.png
  87. BIN
      unpackage/dist/dev/app-plus/static/images/new.png
  88. BIN
      unpackage/dist/dev/app-plus/static/images/new_active.png
  89. 28 0
      utils/datetime.js
  90. 1 1
      uview-ui/components/u-icon/u-icon.vue
  91. 7 2
      uview-ui/components/u-input/u-input.vue
  92. 16 3
      uview-ui/components/u-modal/u-modal.vue

+ 10 - 3
App.vue

@@ -2,9 +2,15 @@
 	export default {
 		onLaunch: function() {
 			console.log('App Launch');
+			// if (!this.$store.state.userLoginFlag) {
+			// 	uni.reLaunch({
+			// 		url: '/pages/index/index',
+			// 	})
+			// }
+			
 		},
 		onShow: function() {
-			console.log('App Show');
+			console.log('App onShow');
 		},
 		onHide: function() {
 			console.log('App Hide');
@@ -24,10 +30,11 @@
 		font-family: uniicons;
 		src: url('/iconFont/uni.ttf');
 	}
-
+	
 	page {
 		width: 100%;
 		height: 100%;
+		background-color: #42349A;
 	}
 	/* #endif */
 	::-webkit-scrollbar {
@@ -35,6 +42,6 @@
 		width: 0 !important;
 		height: 0 !important;
 		-webkit-appearance: none;
-		background: transparent;
+		// background: transparent;
 	}
 </style>

+ 10 - 3
components/fxyk-card/fxyk-card.vue

@@ -28,17 +28,18 @@
 				<view class="u-margin-left-20 word-one">已完成天数:&ensp;{{ projectTime.wcTime }}天</view>
 			</view>
 			<view style="padding: 0 60rpx">
-				<fxyk-progress :status="2" :wcDay="projectTime.wcTime" :edDay="projectTime.edTime" />
+				<fxyk-progress :status="2" :wcDay="projectTime.wcTime" :edDay="projectTime.edTime"/>
 			</view>
 			<view class="d-flex j-sb" style="padding: 12rpx 12rpx 8rpx 12rpx">
-				<view class="word-two">{{ projectTime.start }}</view>
-				<view class="word-two">{{ projectTime.end }}</view>
+				<view class="word-two">{{ projectTime.start | showtime }}</view>
+				<view class="word-two">{{ projectTime.end | showtime }}</view>
 			</view>
 		</view>
 	</u-card>
 </template>
 
 <script>
+	import { formatDate } from '@/utils/datetime'
 	export default {
 		props: {
 			// 项目信息数据
@@ -74,6 +75,12 @@
 					return {'background-color': '#fff'}
 				}
 			}
+		},
+		filters: {
+			showtime(value) {
+				let date = new Date(value*1000);
+				return formatDate(date, 'yyyy.MM.dd')
+			}
 		}
 	}
 </script>

+ 83 - 0
components/fxyk-modal/fxyk-modal.vue

@@ -0,0 +1,83 @@
+<template>
+	<u-modal v-model="show"
+		 :show-title="false"
+		 :show-confirm-button="false" 
+		 :show-cancel-button="false"
+		 :zoom="false">
+		 <view slot="default" style="padding:27rpx 27rpx 65rpx 27rpx">
+			 <view class="d-flex a-center j-end" @click="cancle"><u-icon name="close-circle-fill" color="#A9A3D2" size="60"></u-icon></view>
+			 <view class="text-center word-one" :style="wordColor">{{ data.title }}</view>
+			 <view style="padding-left: 55rpx">
+				 <view class="u-m-t-36 word-two">责任部门:&ensp;{{ data.department }}</view>
+				 <view class="u-m-t-20 word-two">施工时限:&ensp;{{ data.start }}-{{ data.end }}</view>
+				 <view class="u-m-t-16 word-two">
+					<text>额定天数:&ensp;{{ data.edDay }}天</text> | 								<text :style="data.status !== 2 || data.ifYq !== 0 ? wordColor : ''">已用时: {{ data.yyDay }}天</text></view>
+				 <view class="u-m-t-18 word-two" :style="wordColor">目前状态:&ensp;进行中</view>
+				 <view  v-if="data.status === 3" class="u-m-t-18 word-two" :style="wordColor">终止原因:&ensp;原因原因原因原因原因原因</view>
+			 </view>
+		 </view>
+	</u-modal>
+</template>
+
+<script>
+	export default {
+		props: {
+			// 是否显示模态框
+			show: {
+				type: Boolean,
+				default: false
+			},
+			// data.status 1已完成 2进行中 3已终止
+			// data.ifYq   是否逾期 1逾期 0未逾期
+			data: {
+				type: Object,
+				default: () => {
+					return {}
+				}
+			}
+		},
+		computed: {
+			wordColor() {
+				// 进行中
+				if (this.data.status === 2) {
+					// 已逾期
+					if (this.data.ifYq) {
+						return {'color':'#F17E38'}
+					}
+					// 未逾期(即将逾期)
+					else {
+						return {'color':'#E7AE5E'}
+					}
+				}	
+				// 已终止
+				if (this.data.status === 3) {
+					console.log(111);
+					return {'color':'#FF0014'}
+				}
+			}
+		},
+		methods: {
+			// 关闭
+			cancle() {
+				this.$emit('cancle')
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.word-one {
+		font-size: 33rpx;
+		font-family: SimSun;
+		font-weight: 400;
+		line-height: 44rpx;
+		color: #FFAF38;
+	}
+	.word-two {
+		font-size: 29rpx;
+		font-family: SimSun;
+		font-weight: 400;
+		line-height: 40rpx;
+		color: #FFFFFF;
+	}
+</style>

+ 28 - 3
components/fxyk-navbar/fxyk-navbar.vue

@@ -1,5 +1,5 @@
 <template>
-	<u-navbar height="70" :is-back="false" title="" :border-bottom="false" :background="background">
+	<u-navbar :is-back="false" title="" :border-bottom="false" :background="background">
 		<view class="slot-wrap">
 			<view class="navbar d-flex a-center j-sb w-100" :class="{'search': isSearch}">
 				<view v-if="isNeedReturn" class="white-color" :style="{'color': iconColor}" @click="jump_back">
@@ -14,10 +14,12 @@
 				<view v-else ><u-button shape="circle" :custom-style="buttonStyle" :throttle-time="500" @click="search">搜索</u-button></view>
 			</view>
 		</view>
+		<u-toast ref="uToast" />
 	</u-navbar>
 </template>
 
 <script>
+	import { mapMutations } from 'vuex'
 	export default {
 		props: {
 			// 是否为搜索页
@@ -61,18 +63,41 @@
 			},
 		},
 		methods: {
+			...mapMutations(['updateSearchItemData', 'clearSearchData']),
 			// 返回上一页
 			jump_back() {
 				uni.navigateBack()
 			},
 			// 搜索
 			search() {
+				let result = this.$refs.search.value
 				// 获取搜索框中输入的值
-				console.log(this.$refs.search.value)
+				if (!result) {
+					this.$refs.uToast.show({
+						title: '请输入搜索内容',
+						type: 'error',
+						icon: false
+					}) 
+					return
+				}
+				let data = []
+				// 获取历史搜索记录
+				let searchData = uni.getStorageSync('searchData') ? uni.getStorageSync('searchData') : []
+				// 该搜索条件是否已经存在
+				let index = searchData.findIndex( (value) => result.toString() === value )
+				if(index === -1 ) {
+					data.push(result, ...searchData)
+					// 存入本地缓存
+					uni.setStorageSync('searchData', data)
+					//  存入vuex
+					this.clearSearchData(data)
+				}
 				uni.navigateTo({
-					// url: '/pages/index/searchData',
 					url: '/pages/index/searchData?status=1'
 				})
+				// 清空搜索框内数据
+				this.$refs.search.value = ''
+				this.updateSearchItemData()
 			}
 		}
 	}

+ 1 - 1
components/fxyk-progress/fxyk-progress.vue

@@ -34,7 +34,7 @@
 			itemWidth() {
 				return {'width': this.wcDay/this.edDay*100+'%' }
 			}
-		}
+		} 
 	}
 </script>
 

+ 1 - 1
components/fxyk-projectCard/fxyk-projectCard.vue

@@ -32,7 +32,7 @@
 				type: String,
 				default: '#fff'
 			},
-			//  背景
+			//  背景
 			bgColor: {
 				type: String,
 				default: '#40349C'

+ 7 - 0
components/fxyk-search/fxyk-search.vue

@@ -3,6 +3,7 @@
 </template>
 
 <script>
+	import { mapGetters } from 'vuex'
 	export default {
 		props: {
 			// 搜索框背景颜色
@@ -52,6 +53,7 @@
 			}
 		},
 		computed: {
+			...mapGetters(['searchItemData']),
 			padding_show() {
 				return {'padding-top': this.paddingY+'rpx', 
 						'padding-bottom': this.paddingY+'rpx',
@@ -64,6 +66,11 @@
 			jump_search() {
 				uni.navigateTo({url: '/pages/index/search'})
 			}
+		},
+		watch: {
+			searchItemData(val) {
+				this.value = val
+			}
 		}
 	}
 </script>

+ 5 - 2
components/fxyk-status/fxyk-status.vue

@@ -30,7 +30,10 @@
 		margin-bottom: 5rpx;
 	}
 	.text {
-		color: #fff;
-		font-size: 14rpx;
+		font-size: 19rpx;
+		font-family: SimSun;
+		font-weight: 400;
+		line-height: 27rpx;
+		color: #FFFFFF;
 	}
 </style>

+ 8 - 8
components/fxyk-tabControl/fxyk-tabControl.vue

@@ -30,34 +30,34 @@
 				if (parseInt(this.tabData.status) === 1) {
 					info.push(...[{'padding': '17rpx 8rpx 8rpx 8rpx'},'所有项目'])
 					if (this.itemIndex + 1 === parseInt(this.tabData.status)) {
-						info.push('/static/images/project_other.png')
+						info.push('../../static/images/project_other.png')
 						return info
 					}
-					info.push('/static/images/project.png')
+					info.push('../../static/images/project.png')
 					return info
 				} else if (parseInt(this.tabData.status) === 2){ 
 					info.push(...[{'padding': '13rpx 21rpx 8rpx 21rpx'},'已完成'])
 					if (this.itemIndex + 1 === parseInt(this.tabData.status)) {
-						info.push('/static/images/finish_other.png')
+						info.push('../../static/images/finish_other.png')
 						return info
 					}
-					info.push('/static/images/finish.png')
+					info.push('../../static/images/finish.png')
 					return info
 				} else if (parseInt(this.tabData.status) === 3) {
 					info.push(...[{'padding': '13rpx 21rpx 8rpx 21rpx'},'进行中'])
 					if (this.itemIndex + 1 === parseInt(this.tabData.status)) {
-						info.push('/static/images/ongoing_other.png')
+						info.push('../../static/images/ongoing_other.png')
 						return info
 					}
-					info.push('/static/images/ongoing.png')
+					info.push('../../static/images/ongoing.png')
 					return info
 				} else {
 					info.push(...[{'padding': '13rpx 21rpx 8rpx 21rpx'},'未完成'])
 					if (this.itemIndex + 1 === parseInt(this.tabData.status)) {
-						info.push('/static/images/end_other.png')
+						info.push('../../static/images/end_other.png')
 						return info
 					}
-					info.push('/static/images/end.png')
+					info.push('../../static/images/end.png')
 					return info
 				}
 			}

+ 33 - 0
components/fxyk-textarea/fxyk-textarea.vue

@@ -0,0 +1,33 @@
+<template>
+	<u-input style="margin:77rpx 35rpx 0rpx;padding:0;border-radius:0" 
+			 :style="{'margin-bottom': marginBottom + 'rpx'}"
+			 height="418.75" 
+			 type="textarea" 
+			 border 
+			 border-color="#C2C2C2" 
+			 :custom-style="{'background-color':'#fff'}" 
+			 placeholder="请输入....." 
+			 placeholder-style="margin-left:265rpx;margin-top:194rpx" 
+			 :isExistIcon="false" 
+			 :clearable="false"
+			 v-model="value" />
+</template>
+	
+<script>
+	export default {
+		data() {
+			return {
+				value: ''
+			}
+		},
+		props: {
+			marginBottom: {
+				type: String,
+				default: '398'
+			}
+		}
+	}
+</script>
+
+<style>
+</style>

+ 9 - 2
components/fxyk-timeline/fxyk-timeline.vue

@@ -21,7 +21,7 @@
 							<view class="word-four u-maring-top-12">额定天数: 4天</view>
 							<view class="d-flex" style="margin-top:8rpx">
 								<view class="word-four">实际天数: 4天</view> 
-								<view class="word-five"><text>批示</text></view>
+								<view class="word-five" @click.stop="jump_project_info_point_order"><text>批示</text></view>
 								<view class="word-six"><text>查看附件</text></view>
 							</view>
 						</view>
@@ -87,8 +87,15 @@
 					case 9:
 					    return '资料归档'	
 				}
+			}	
+		},
+		methods: {
+			// 跳到节点批示页
+			jump_project_info_point_order() {
+				uni.navigateTo({
+					url: '/pages/index/projectInfoPointOrder'
+				})
 			}
-			
 		}
 	}
 </script>

+ 1 - 1
manifest.json

@@ -1,6 +1,6 @@
 {
     "name" : "阜新业扩领导端",
-    "appid" : "__UNI__ECFC1F2",
+    "appid" : "__UNI__02D76B9",
     "description" : "阜新业扩领导端",
     "versionName" : "1.0.0",
     "versionCode" : "100",

+ 55 - 19
pages.json

@@ -4,24 +4,33 @@
 	},
 	"pages": [
 		{
-			"path": "pages/index/index",    // 首页
+			"path": "pages/login/index",    // 登录
 			"style": {
 				"app-plus": {
 					"titleNView": false
 				}
 			}
 		},{
-			"path": "pages/login/index",   // 登录
+			"path": "pages/index/index",   // 首页
 			"style": {
 				"app-plus": {
-					"titleNView": false
+					"background": "#42349A",
+					"titleNView": {
+						"backgroundColor": "#42349A",
+						"titleText": ""
+					}
 				}
 			}
 		},{
 			"path": "pages/news/index",    //消息
 			"style": {
 				"app-plus": {
-					"titleNView": false
+					"titleNView": {
+						"backgroundColor": "#42349A",
+						"titleText": "消息",
+						"titleColor": "#fff",
+						"titleSize": "40rpx"
+					}
 				}
 			}
 		},
@@ -45,7 +54,8 @@
 			"path": "pages/index/projectInfo",   // 项目详情
 			"style": {
 				"app-plus": {
-					"titleNView": false
+					"titleNView": false,
+					"background": "#F7FBFF"
 				}
 			}
 		},
@@ -56,13 +66,35 @@
 					"titleNView": false
 				}
 			}
-		},{
-			"path": "pages/user/index",     //我的 
+		},
+		{
+			"path": "pages/index/projectInfoPointOrder",   // 项目详情  节点批示
+			"style": {
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path": "pages/index/projectEnd",        // 项目详情  项目终止原因
 			"style": {
 				"app-plus": {
 					"titleNView": false
 				}
 			}
+		},
+		{
+			"path": "pages/user/index",     //我的 
+			"style": {
+				"app-plus": {
+					"titleNView": {
+						"backgroundColor": "#42349A",
+						"titleText": "我的",
+						"titleColor": "#fff",
+						"titleSize": "40rpx"
+					}
+				}
+			}
 		},{
 			"path": "pages/user/updatePassword",  // 我的 修改密码
 			"style": {
@@ -91,7 +123,7 @@
 	// "condition": { //模式配置,仅开发期间生效
 	//     "current": 0, //当前激活的模式(list 的索引项) 
 	//     "list": [ {
-	//             "path": "pages/index/point" //启动页面,必选
+	//             "path": "pages/login/index" //启动页面,必选
 	//         },
 	// 		{
 	// 		    "path": "pages/index/search" //启动页面,必选
@@ -114,29 +146,33 @@
 		"navigationStyle": "default",
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "阜新业扩",
-		"navigationBarBackgroundColor": "#ffffff",
-		"backgroundColor": "#F8F8F8"
+		"navigationBarBackgroundColor": "#42349A",
+		// "backgroundColor": "#F8F8F8",
+		"app-plus": {
+			"background": "#42349A"
+		}
 	},
 	"tabBar": {
+		"height": "58px",
 		"borderStyle": "black",
-		"backgroundColor": "#fff",
-		"color": "#9A9A9A",
-		"selectedColor": "#52A63A",
+		"backgroundColor": "#544AA6",
+		"color": "#FDFDFD",
+		"selectedColor": "#FDFDFD",
 		"list": [{
 			"pagePath": "pages/index/index",
-			"iconPath": "static/images/icon-index.png",
-			"selectedIconPath": "static/images/icon-index-active.png",
+			"iconPath": "static/images/icon_index.png",
+			"selectedIconPath": "static/images/icon_index_active.png",
 			"text": "首页"
 		}, {
 			"pagePath": "pages/news/index",
-			"iconPath": "static/images/icon-index.png",
-			"selectedIconPath": "static/images/icon-index-active.png",
+			"iconPath": "static/images/new.png",
+			"selectedIconPath": "static/images/new_active.png",
 			"text": "消息"
 		},
 		{
 			"pagePath": "pages/user/index",
-			"iconPath": "static/images/icon-mine.png",
-			"selectedIconPath": "static/images/icon-mine-active.png",
+			"iconPath": "static/images/min.png",
+			"selectedIconPath": "static/images/min_active.png",
 			"text": "我的"
 		}]
 	}

+ 11 - 28
pages/index/index.vue

@@ -1,14 +1,14 @@
 <template>
 	<view class="content">
-		<fxyk-navbar :isSearch="false" :isNeedReturn="false" title="首页"/>
+		<!-- <fxyk-navbar :isSearch="false" :isNeedReturn="false" title="首页"/> -->
 		<view class="u-padding-left-60 u-margin-bottom-30">
 			<text class="d-block main-title">业扩项目包工程管理</text>
 			<text class="d-block main-english">Project management of business expansion project package</text>
 		</view>
 		<u-line color="white" border-style="dashed"/>
-		<view class="d-flex u-margin-top-30 position-relative" style="height: 340rpx">
-			<canvas style="margin-top:-15rpx" class="z-1" canvas-id="canvasPie" id="canvasPie"></canvas>
-			<canvas style="margin-left:-150rpx;" canvas-id="canvasColumn" id="canvasColumn"></canvas>
+		<view class="d-flex u-margin-top-30 position-relative" style="height: 380rpx">
+			<canvas style="margin-top:20rpx" class="z-1" canvas-id="canvasPie" id="canvasPie"></canvas>
+			<canvas style="margin-left:-150rpx;margin-top:40rpx" canvas-id="canvasColumn" id="canvasColumn"></canvas>
 			<view class="position-absolute status_style">
 				<fxyk-status title="已完成" bgColor="#4CB1FF"/>
 				<fxyk-status title="进行中" bgColor="#E7AE5E"/>
@@ -17,12 +17,14 @@
 		</view>
 		<u-line color="white" border-style="dashed"/>
 		<fxyk-search backgroundColor="#40349C" borderColor="#fff" placeholderColor="#fff" height="80" :paddingY="40" :paddingX="40" searchIconColor="#fff" disabled/>
-		<view class="d-flex a-center u-margin-bottom-25 u-margin-bottom-30 tab">
+		<view class="d-flex a-center u-margin-bottom-25  tab">
 			<fxyk-tabControl v-for="(item,index) in tabData" :key="index" class="tab-item" :class="{'tabItemNative': tabIndex === index}" :tabData='item' :itemIndex="tabIndex" @click.native="jump_path(index)"></fxyk-tabControl>
 		</view>
-		<view v-for="(item,index) in projectData" :key="index">
-			<fxyk-projectCard bgColor="#544AA6" :projectData="item" @click.native="jump_content(index)"></fxyk-projectCard>
-		</view>
+		<template v-if="projectData.length">
+			<view v-for="(item,index) in projectData" :key="index">
+				<fxyk-projectCard bgColor="#544AA6" :projectData="item" @click.native="jump_content(index)"></fxyk-projectCard>
+			</view>
+		</template>
 	</view>
 </template>
 
@@ -53,7 +55,7 @@
 					{'status': 3,'name':'辽宁中润农业发展有限公司','number':'121514551Fs15','content':'描述'},
 					{'status': 3,'name':'辽宁中润农业发展有限公司','number':'121514551Fs15','content':'描述'},
 					{'status': 3,'name':'辽宁中润农业发展有限公司','number':'121514551Fs15','content':'描述'},
-					{'status': 3,'name':'辽宁中润农业发展有限公司','number':'121514551Fs15','content':'描述'},
+					{'status': 3,'name':'辽宁中润农业发展有限公司','number':'121514551Fs15','content':'描述'}
 				],
 				pixelRatio:1,
 				serverData:'',
@@ -102,25 +104,6 @@
 			}
 		},
 		methods: {
-			// jump_path(index) {
-			// 	this.tabIndex = index
-			// 	if (index === 1) {
-			// 		// 跳转到进行中
-			// 		uni.navigateTo({
-			// 		    url: `/pages/index/finish/index?status=${index}`
-			// 		})
-			// 	} else if (index === 2) {
-			// 		// 跳转到已完成
-			// 		uni.navigateTo({
-			// 		    url: `/pages/index/ongoing/index?status=${index}`
-			// 		})
-			// 	} else {
-			// 		// 跳转到已终止
-			// 		uni.navigateTo({
-			// 		    url: `/pages/index/end/index?status=${index}`
-			// 		})
-			// 	}
-			// },
 			jump_path(index) {
 				this.tabIndex = index
 				if (index === 1) {

+ 23 - 0
pages/index/projectEnd.vue

@@ -0,0 +1,23 @@
+<template>
+	<view class="content">
+		<fxyk-navbar :isSearch="false" title="终止原因"/>
+		<fxyk-textarea/>
+		<fxyk-button content="确认" width="238"/>
+	</view>	
+</template>
+
+<script>
+</script>
+
+<style lang="scss" scoped>
+	page {
+		width: 100%;
+		height: 100%;
+	}
+	.content {
+		width: 100%;
+		height: 100%;
+		min-height: 100vh;
+		background-color: $yk-bg-color;
+	}
+</style>

+ 14 - 8
pages/index/projectInfo.vue

@@ -3,11 +3,11 @@
 		<fxyk-navbar :isSearch="false" :title="title"/>
 		<view style="height:10rpx"></view>
 		<fxyk-card class="u-margin-10" :showHead="false" :projectTime="projectTime" :bodyInfo="2" />
-		<fxyk-button v-if="status === 2" content="项目终止" width="321" height="83" bgColor="#40349C" />
+		<fxyk-button v-if="status === 2" content="项目终止" width="321" height="83" bgColor="#40349C" @click.native="jump_project_end"/>
 		<view style="height:10rpx"></view>
 		<fxyk-card class="u-margin-10" :projectInfo="projectInfo"/>
 		<fxyk-gap />
-		<u-time-line class="u-margin-bottom-20" style="margin-left:17rpx;padding:0;" @click.native="jump_path">
+		<u-time-line class="u-margin-bottom-20" style="margin-left:17rpx;padding:0;" @click.native="jump_project_info_point">
 			<fxyk-timeline v-for="i in 9" :key="i" projectStatus="1" :projectIndex="i" />
 		</u-time-line>
 	</view>
@@ -30,15 +30,15 @@
 				},
 				projectTime: {
 					edTime: 30,
-					wcTime: 13,
-					start: '2020.6.7',
-					end: '2020.7.6'
+					wcTime: 15,
+					start: 1591494571,
+					end: 1594000171
 				}
 			}
 		},
 		onLoad(option) {
 			let status = parseInt(option.status)
-			this.status = status
+			this.status = 2
 		},
 		computed: {
 			// 导航栏标题
@@ -53,11 +53,17 @@
 			}
 		},
 		methods: {
-			jump_path() {
-				console.log('1111')
+			// 跳到节点管理页
+			jump_project_info_point() {
 				uni.navigateTo({
 					url: '/pages/index/projectInfoPoint'
 				})
+			},
+			// 跳到项目终止页
+			jump_project_end() {
+				uni.navigateTo({
+					url: '/pages/index/projectEnd'
+				})
 			}
 		}
 	}

+ 1 - 1
pages/index/projectInfoPoint.vue

@@ -2,7 +2,7 @@
 	 <!-- v-for="i in 9" :key="i" -->
 	<view class="content">
 		<fxyk-navbar style="margin-bottom:31rpx;" :isSearch="false" title="节点办理"/>
-		<u-time-line class="u-margin-bottom-20" style="margin-left:17rpx;padding:0;">
+		<u-time-line class="u-margin-bottom-20" style="margin-left:17rpx;padding:0;">	
 			<fxyk-timeline v-for="i in 9" :key="i" projectStatus="1" :projectIndex="i" />
 		</u-time-line>
 	</view>

+ 63 - 0
pages/index/projectInfoPointOrder.vue

@@ -0,0 +1,63 @@
+<template>
+	<view class="content">
+		<fxyk-navbar :isSearch="false" title="节点批示" />
+		<fxyk-textarea marginBottom="42" />
+		<view class="d-flex a-center j-sb u-p-l-44 u-p-r-44" style="margin-bottom:202rpx">
+			<view class="box d-flex a-center j-center">
+				<fxyk-button style="font-size: 21rpx;
+									line-height: 27rpx" 
+							 width="106" 
+							 height="44" 
+							 bgColor="#4CB2FF" 
+							 content="查看附件" />
+			</view>
+			<view class="box d-flex a-center j-center">
+				<fxyk-button style="font-size: 21rpx;
+									line-height: 27rpx;
+									color: #848484;"
+							 width="104" 
+							 height="104" 
+							 bgColor="#E5E9ED" 
+							 content="上传附件" 
+							 @click.native="uploading" />
+			</view>  
+		</view>
+		<fxyk-button content="确认" width="238"></fxyk-button>
+	</view>	
+</template>
+
+<script>
+	export default {
+		methods: {
+			// 上传附件
+			uploading() {
+				uni.chooseImage({
+					count: 6, //默认9
+					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album', 'camera '], //从相册选择
+					success: function (res) {
+						console.log(JSON.stringify(res.tempFilePaths));
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		width: 100%;
+		height: 100%;
+	}
+	.content {
+		width: 100%;
+		height: 100%;
+		min-height: 100vh;
+		background-color: $yk-bg-color;
+	}
+	.box {
+		width: 321rpx;
+		height: 154rpx;
+		border: 2px dashed #707070;
+	}
+</style>

+ 43 - 11
pages/index/search.vue

@@ -3,26 +3,51 @@
 		<fxyk-navbar isSearch iconColor="#000"></fxyk-navbar>
 		<view class="d-flex a-center j-sb u-p-38" style="margin-top:125rpx;margin-bottom:50rpx">
 			<view class="word-one">历史搜索</view>
-			<u-image width="31rpx" height="35rpx" src="/static/images/waste.png" :fade="false"></u-image>
+			<view @click="showModal = true"><u-image width="31rpx" height="35rpx" src="/static/images/waste.png" :fade="false"></u-image></view>
 		</view>
-		<view class="d-flex a-center flex-wrap w-100">
-			<view v-for="(item,index) in searchItem" :key="index" class="d-flex a-center j-center cell-item u-m-l-80 u-m-b-35 word-two">{{ item.name }}</view>
-			<view class="icon-style d-flex a-center j-center"><u-icon name="arrow-down"></u-icon></view>
+		<view style="margin-top:-20rpx">
+			<u-tag v-for="(item,index) in historySearchInFive" style="width:150rpx" :key="index" :text="item" class="u-m-l-80 u-m-b-35 over_style" type="info" border-color="transparent" shape="circle" @click="show_text(item)" />
+			<u-tag v-if="historySearch.length > 5" :text="icon"  type="info" border-color="transparent" style="position:relative;top:-47rpx;margin-left:122rpx;" shape="circle" @click="show_search_data" />	
+			<template v-if="show">
+				<u-tag v-for="(item,index) in historySearchOverFive" style="width:150rpx" :key="item" :text="item" class="u-m-l-80 u-m-b-35 over_style" type="info" border-color="transparent" shape="circle" @click="show_text(item)" />
+			</template>
 		</view>
+		<u-modal v-model="showModal" content="是否清空历史记录" :isBgColor="false" show-cancel-button @confirm="clear_history_data"></u-modal>
 	</view>
 </template>
 
 <script>
+	import { mapGetters, mapMutations,mapActions } from 'vuex'
 	export default {
 		data() {
 			return {
-				searchItem: [
-					{'name': '项目名称'},
-					{'name': '项目名称'},
-					{'name': '项目名称'},
-					{'name': '项目名称'},
-					{'name': '项目名称'}
-				]
+				icon: "∨",
+				show: false,
+				showModal: false,
+			}
+		},
+		// 监听页面卸载
+		onUnload() {
+			this.updateSearchItemData()
+		},
+ 		computed: {
+			...mapGetters(['historySearch', 'historySearchInFive', 'historySearchOverFive'])
+		},
+		methods: {
+			...mapMutations(['updateSearchItemData', 'clearSearchData']),
+			// 显示更多数据
+			show_search_data() { 
+				this.show = !this.show
+				this.icon = this.icon === '∨' ? '∧' : '∨'
+			},
+			// 导航栏内显示数据
+			show_text(value) {
+				this.updateSearchItemData(value)
+			},
+			// 清空历史记录
+			clear_history_data() {
+				 uni.removeStorageSync('searchData')
+				 this.clearSearchData([])
 			}
 		}
 	}
@@ -68,4 +93,11 @@
 		line-height: 33rpx;
 		color: #666666;
 	}
+	.over_style {
+		width: 150rpx;
+		overflow: hidden;
+		white-space: nowrap;
+		text-overflow: ellipsis;
+		text-align: center;
+	}
 </style>

+ 1 - 2
pages/index/searchData.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<fxyk-navbar :isSearch="false" title="进行中"></fxyk-navbar>
+		<fxyk-navbar :isSearch="false" title=""></fxyk-navbar>
 		<fxyk-search :paddingX="40" :paddingY="20" backgroundColor="#F7FBFF"></fxyk-search>
 		<view v-for="(item,index) in ongoingData" :key="index" @click="jump_path">
 			<fxyk-projectCard style="box-shadow: 0rpx 6rpx 13rpx rgba(0, 0, 0, 0.16);" :projectData="item" textAndIconColor="#000" bgColor="#fff"></fxyk-projectCard>
@@ -29,7 +29,6 @@
 		},
 		onLoad(option) {
 			let status = parseInt(option.status)
-			console.log(option)
 			this.get_ongoing_data(status)
 		},
 		methods: {

+ 76 - 15
pages/login/index.vue

@@ -1,33 +1,92 @@
 <template>
 	<view class="content">
-		<u-image width="100%" height="100%" :fade="false" src="/static/images/loginBg.png"></u-image>
-		<view style="position:fixed;top:229rpx;z-index:10">
-			<u-image style="margin-left: 292rpx;"  width="169rpx" height="169rpx" :fade="false" src="/static/images/logo.png"></u-image>
-			<u-input style="margin-left:140rpx;margin-top:142rpx;width:475rpx;" :clearable="false" placeholder="用户名" placeholder-style="
-color: #FFFFFF;font-size: 29rpx;font-family: Segoe UI;font-weight: 400;line-height: 40rpx;" height="80" v-model="username" type="text" borderZ />
-			<u-input style="margin-left:140rpx;margin-top:83rpx;width:475rpx;" :clearable="false" placeholder="密码" placeholder-style="
-color: #FFFFFF;font-size: 29rpx;font-family: Segoe UI;font-weight: 400;line-height: 40rpx;"v-model="password" type="password" borderZ password-icon iconName="suo" />
+		<u-image width="100%" height="100%" :fade="false" src="../../static/images/loginBg.png"></u-image>
+		<view style="position:fixed;top:350rpx;z-index:10">
+			<u-image style="margin-left: 292rpx;"  width="169rpx" height="169rpx" :fade="false" src="../../static/images/logo.png"></u-image>
+			<u-input style="margin-left:140rpx;margin-top:142rpx;width:475rpx;" 
+					 :clearable="false" 
+					 placeholder="用户名" 
+					 placeholder-style="color: #FFFFFF;font-size: 29rpx;font-family: Segoe UI;font-weight: 400;line-height: 40rpx;" 
+					 height="80" 
+					 v-model="userinfo.username" 
+					 type="text" 
+					 :custom-style="{'color':'#fff'}"
+					 borderZ />
+			<u-input style="margin-left:140rpx;margin-top:83rpx;width:475rpx;" 
+				     :clearable="false" 
+					 placeholder="密码" 
+					 placeholder-style="color: #FFFFFF;font-size: 29rpx;font-family: Segoe UI;font-weight: 400;line-height: 40rpx;"
+					 v-model="userinfo.password" 
+					 type="password" 
+					 borderZ 
+					 password-icon 
+					 iconName="suo" 
+					 :custom-style="{'color':'#fff'}" />
 			<view style="margin-left:140rpx;margin-top:38rpx;">
-				<u-checkbox v-model="checked" active-color="transparent"><text class="rem-password">记住密码</text></u-checkbox>
+				<u-checkbox 
+					 v-model="userinfo.checked" 
+					 active-color="transparent">
+					 <text class="rem-password">记住密码</text>
+				</u-checkbox>
 			</view>
-			<fxyk-button style="margin-left:131rpx;margin-top:83rpx;border-radius: 58rpx;" width="488" height="99" content="登录" bgColor="#EBB162" isLoginButton  @click.native="jump_index"/>
+			<fxyk-button style="margin-left:131rpx;margin-top:83rpx;border-radius: 58rpx;" 
+						 width="488" 
+						 height="99" 
+						 content="登录" 
+						 bgColor="#EBB162" 
+						 isLoginButton 
+						 @click.native="jump_index"/>
 		</view>
+		<u-toast ref="uToast" />
 	</view>
 </template>
 
 <script>
+	import { mapGetters,mapMutations } from "vuex"
 	export default {
 		data() {
 			return {
-				username: '',
-				password: '',
-				checked: false
+				userinfo: {
+					username: '',
+					password: '',
+					checked: false
+				}
 			}
 		},
-		onLoad() {},
+		onLoad() {
+			this.init()
+		},
+		computed: {
+			...mapGetters(['info'])
+		},
 		methods: {
+			...mapMutations(['login']),
+			init() {
+				if(this.info.checked) {
+					this.userinfo = this.info
+				}
+			},
+			// 跳到首页
 			jump_index() {
-				uni.navigateTo({
+				// 验证账号密码
+				// 是否输入账号和密码
+				if (!this.userinfo.username || !this.userinfo.password) {
+					this.$refs.uToast.show({
+						title: '请输入用户名和密码',
+						type: 'error',
+						icon: false
+					}) 
+					return
+				}
+				// 存储用户信息
+				this.login(this.userinfo)
+				// 跳转
+				this.$refs.uToast.show({
+					title: '登录成功',
+					type: 'success',
+					icon: false,
+					duration: 200,
+					isTab: true,
 					url: '/pages/index/index'
 				})
 			}
@@ -35,7 +94,7 @@ color: #FFFFFF;font-size: 29rpx;font-family: Segoe UI;font-weight: 400;line-heig
 	}
 </script>
 
-<style lang='scss'>
+<style lang='scss' scoped>
 	page {
 		width: 100%;
 		height: 100%;
@@ -44,6 +103,8 @@ color: #FFFFFF;font-size: 29rpx;font-family: Segoe UI;font-weight: 400;line-heig
 	.content {
 		width: 100%;
 		height: 100%;
+		min-height: 100vh;
+		background-color: $yk-main-bg-color;
 	}
 	.rem-password {
 		height: 40rpx;

+ 40 - 9
pages/news/index.vue

@@ -1,10 +1,18 @@
 <template>
 	<view class="content">
-		<fxyk-navbar :isSearch="false" :isNeedReturn="false" title="消息提醒"/>
-		<view v-for="(item,index) in info" :key="index">
-			<fxyk-card-news :info="item" />
-		</view>
-		
+		<!-- <fxyk-navbar :isSearch="false" :isNeedReturn="false" title="消息提醒"/> -->
+		<template v-if="info.length">
+			<view v-for="(item,index) in info" :key="index">
+				<fxyk-card-news :info="item" @click.native="show = true" />
+			</view>
+			<fxyk-modal :show="show" :data="data" @cancle="cancle"/>
+		</template>
+		<template v-else>
+			<view style="margin:240rpx 186.5rpx 0">
+				<u-image width="378rpx" height="287rpx" src="/static/images/empty.png" :fade="false"></u-image>
+				<view class="u-m-t-60 text-center word">空空如也......</view>
+			</view>
+		</template>
 	</view>
 </template>
 
@@ -12,6 +20,8 @@
 	export default {
 		data() {
 			return {
+				show: false,
+				time: 1604884971,
 				info: [
 					{
 						title: '批示',
@@ -21,13 +31,27 @@
 					{
 						title: '更新',
 						data: '检测到一个新版本',
-						level: ''
-					},
-				]
+						level: '' 
+					}
+				],
+				data: {
+					title: '现场施工',
+					department: '营销部',
+					start: '2019.6.22',
+					end: '2019.6.26',
+					edDay: 5,
+					yyDay: 6,
+					status: 3,
+					ifYq: 0
+				}
 			}
 		},
 		onLoad() {},
-		methods: {}
+		methods: {
+			cancle() {
+				this.show = false
+			}
+		}
 	}
 </script>
 
@@ -42,4 +66,11 @@
 		min-height: 100vh;
 		background-color: $yk-bg-color;
 	}
+	.word {
+		font-size: 25rpx;
+		font-family: SimSun;
+		font-weight: 400;
+		line-height: 33rpx;
+		color: #CDD2D9;
+	}
 </style>

+ 10 - 6
pages/user/index.vue

@@ -1,9 +1,9 @@
 <template>
 	<view class="content">
-		<fxyk-navbar :isSearch="false" :isNeedReturn="false" title="个人中心"/>
+		<!-- <fxyk-navbar :isSearch="false" :isNeedReturn="false" title="个人中心"/> -->
 		<view class="head">
 			<view class="head-item">
-				<u-image width="179rpx" height="179rpx" :fade="false" src="/static/images/head.png"></u-image>
+				<u-image width="179rpx" height="179rpx" :fade="false" src="../../static/images/head.png"></u-image>
 				<view class="text-center word-one">用户名</view>
 				<view class="text-center word-two">所属部门</view>
 			</view>
@@ -11,11 +11,12 @@
 		<u-cell-group style="margin-bottom:200rpx">
 			<fxyk-cell leftSlot v-for="(item,index) in profile" :key="index" :leftImg="item.imgPath" :title="item.title" arrow :redDot="item.redDot ? true : false" @click.native="jump_path(item.path)"/>
 		</u-cell-group>
-		<fxyk-button content="退出登录" bgColor="#FF0011" />
+		<fxyk-button content="退出登录" bgColor="#FF0011" @click.native="logout"/>
 	</view>
 </template>
 
 <script>
+	import { mapMutations } from 'vuex'
 	export default {
 		data() {
 			return {
@@ -23,19 +24,19 @@
 				profile: [
 					{
 						'title': '修改密码',
-						'imgPath': '/static/images/updatePassword.png',
+						'imgPath': '../../static/images/updatePassword.png',
 						'path': '/pages/user/updatePassword'
 					},
 					{
 						'title': '版本更新',
-						'imgPath': '/static/images/version.png',
+						'imgPath': '../../static/images/version.png',
 						// 小红点
 						'redDot': 11,
 						'path': '/pages/user/version'
 					},
 					{
 						'title': '关于我们',
-						'imgPath': '/static/images/about.png',
+						'imgPath': '../../static/images/about.png',
 						'path': '/pages/user/aboutUs'
 					}
 				] 
@@ -53,6 +54,7 @@
 			}
 		},
 		methods: {
+			...mapMutations(['logout']),
 			// 跳指定页
 			jump_path(val) {
 				uni.navigateTo({
@@ -71,6 +73,8 @@
 	.content {
 		width: 100%;
 		height: 100%;
+		/* background-color: $yk-bg-color; */
+		min-height: 100vh;
 	}
 	.head {
 		height: 350rpx;

+ 0 - 0
static/images/icon-index-active.png → static/images/icon-index-active11.png


+ 0 - 0
static/images/icon-index.png → static/images/icon-index11.png


BIN
static/images/icon_index.png


BIN
static/images/icon_index_active.png


BIN
static/images/min.png


BIN
static/images/min_active.png


BIN
static/images/new.png


BIN
static/images/new_active.png


+ 48 - 8
store/index.js

@@ -3,11 +3,41 @@ import Vue from 'vue'
 import Vuex from 'vuex'
 Vue.use(Vuex)
 
+// 用户是否登录
+let hasLogin = uni.getStorageSync('hasLogin') || false
+// 用户信息
+let userinfo = uni.getStorageSync('userinfo') || {}
+// 历史搜搜
+let searchData = uni.getStorageSync('searchData') || []
+
 const store = new Vuex.Store({ //全局变量定义
 	state: {
 		forcedLogin: false, //是否需要强制登录
-		userLoginFlag: false,	//用户是否登录
-		userinfo:{},	//存放用户账号数据
+		userLoginFlag: hasLogin,	//用户是否登录
+		userinfo: userinfo,	//存放用户账号数据
+		searchData: searchData ,// 历史搜索
+		searchItem: ''  // 导航栏搜索内容
+	},
+	getters: {
+		// 用户信息
+		info(state) {
+			return state.userinfo
+		},
+		// 历史搜搜
+		historySearch(state) {
+			return state.searchData
+		},
+		// 历史搜索 5条之内
+		historySearchInFive(state) {
+			return state.searchData.slice(0,5)
+		},
+		// 历史搜索 超出5条
+		historySearchOverFive(state) {
+			return state.searchData.slice(5)
+		},
+		searchItemData(state) {
+			return state.searchItem
+		}
 	},
 	mutations: {
 		// 登录
@@ -18,16 +48,26 @@ const store = new Vuex.Store({ //全局变量定义
 				key: "userinfo",
 				data: provider
 			})
-			console.log(state.userInfo)
 		},
 		// 退出
 		logout(state) {
-			state.userLoginFlag = false;
-			state.userInfo = {};
-			uni.removeStorage({ // 清除用户信息
-				key: "userinfo"
+			// state.userLoginFlag = false;
+			// state.userInfo = {};
+			// uni.removeStorage({ // 清除用户信息
+			// 	key: "userinfo"
+			// })
+			uni.navigateTo({
+				url: '/pages/login/index'
 			})
-		}
+		},
+		// 修改导航栏搜索内容的值
+		updateSearchItemData(state, data) {
+			state.searchItem = data
+		},
+		// 清空历史搜索或者储存
+		clearSearchData(state, data) {
+			state.searchData = data
+		},
 	}
 })
 export default store

+ 0 - 0
unpackage/dist/build/.automator/app-plus/.automator.json


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/__uniappchooselocation.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/__uniappes6.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/__uniappopenlocation.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/__uniapppicker.js


Файловите разлики са ограничени, защото са твърде много
+ 6 - 0
unpackage/dist/build/app-plus/__uniappquill.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/__uniappquillimageresize.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/__uniappscan.js


BIN
unpackage/dist/build/app-plus/__uniappsuccess.png


+ 28 - 0
unpackage/dist/build/app-plus/__uniappview.html

@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var __UniViewStartTime__ = Date.now();
+      document.addEventListener('DOMContentLoaded', function() {
+          document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
+      })
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+        CSS.supports('top: constant(a)'))
+      document.write(
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+    </script>
+    <title>View</title>
+    <link rel="stylesheet" href="view.css" />
+  </head>
+
+  <body>
+    <div id="app"></div>
+    <script src="__uniappes6.js"></script>
+    <script src="view.umd.min.js"></script>
+    <script src="app-view.js"></script>
+  </body>
+
+</html>

+ 8 - 0
unpackage/dist/build/app-plus/app-config-service.js

@@ -0,0 +1,8 @@
+
+var isReady=false;var onReadyCallbacks=[];
+var isServiceReady=false;var onServiceReadyCallbacks=[];
+var __uniConfig = {"pages":["pages/login/index","pages/index/index","pages/news/index","pages/index/search","pages/index/searchData","pages/index/projectInfo","pages/index/projectInfoPoint","pages/index/projectInfoPointOrder","pages/index/projectEnd","pages/user/index","pages/user/updatePassword","pages/user/version","pages/user/aboutUs","pagesMain/aboutUs"],"window":{"navigationStyle":"default","navigationBarTextStyle":"black","navigationBarTitleText":"阜新业扩","navigationBarBackgroundColor":"#42349A","background":"#42349A"},"tabBar":{"height":"58px","borderStyle":"black","backgroundColor":"#544AA6","color":"#FDFDFD","selectedColor":"#FDFDFD","list":[{"pagePath":"pages/index/index","iconPath":"static/images/icon_index.png","selectedIconPath":"static/images/icon_index_active.png","text":"首页"},{"pagePath":"pages/news/index","iconPath":"static/images/new.png","selectedIconPath":"static/images/new_active.png","text":"消息"},{"pagePath":"pages/user/index","iconPath":"static/images/min.png","selectedIconPath":"static/images/min_active.png","text":"我的"}]},"nvueCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"阜新业扩领导端","compilerVersion":"2.8.3","entryPagePath":"pages/login/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
+var __uniRoutes = [{"path":"/pages/login/index","meta":{"isQuit":true},"window":{"titleNView":false}},{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"background":"#42349A","titleNView":{"backgroundColor":"#42349A","titleText":""}}},{"path":"/pages/news/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":{"backgroundColor":"#42349A","titleText":"消息","titleColor":"#fff","titleSize":"40rpx"}}},{"path":"/pages/index/search","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/searchData","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/projectInfo","meta":{},"window":{"titleNView":false,"background":"#F7FBFF"}},{"path":"/pages/index/projectInfoPoint","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/projectInfoPointOrder","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/projectEnd","meta":{},"window":{"titleNView":false}},{"path":"/pages/user/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":{"backgroundColor":"#42349A","titleText":"我的","titleColor":"#fff","titleSize":"40rpx"}}},{"path":"/pages/user/updatePassword","meta":{},"window":{"titleNView":false}},{"path":"/pages/user/version","meta":{},"window":{"titleNView":false}},{"path":"/pages/user/aboutUs","meta":{},"window":{"titleNView":false}},{"path":"/pagesMain/aboutUs","meta":{},"window":{"navigationBarTitleText":"关于我们"}}];
+__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
+__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
+service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

+ 1 - 0
unpackage/dist/build/app-plus/app-config.js

@@ -0,0 +1 @@
+(function(e){function r(r){for(var n,i,l=r[0],f=r[1],a=r[2],c=0,s=[];c<l.length;c++)i=l[c],o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);p&&p(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var f=t[l];0!==o[f]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/";var l=this["webpackJsonp"]=this["webpackJsonp"]||[],f=l.push.bind(l);l.push=r,l=l.slice();for(var a=0;a<l.length;a++)r(l[a]);var p=f;t()})([]);

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/app-service.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/app-view.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/manifest.json


BIN
unpackage/dist/build/app-plus/static/images/about.png


BIN
unpackage/dist/build/app-plus/static/images/end.png


BIN
unpackage/dist/build/app-plus/static/images/end_other.png


BIN
unpackage/dist/build/app-plus/static/images/finish.png


BIN
unpackage/dist/build/app-plus/static/images/finish_other.png


BIN
unpackage/dist/build/app-plus/static/images/head.png


+ 0 - 0
unpackage/dist/dev/app-plus/static/images/icon-index-active.png → unpackage/dist/build/app-plus/static/images/icon-index-active11.png


+ 0 - 0
unpackage/dist/dev/app-plus/static/images/icon-index.png → unpackage/dist/build/app-plus/static/images/icon-index11.png


BIN
unpackage/dist/build/app-plus/static/images/icon-mine-active.png


BIN
unpackage/dist/build/app-plus/static/images/icon-mine.png


BIN
unpackage/dist/build/app-plus/static/images/icon_index.png


BIN
unpackage/dist/build/app-plus/static/images/icon_index_active.png


BIN
unpackage/dist/build/app-plus/static/images/loginBg.png


BIN
unpackage/dist/build/app-plus/static/images/login_password.png


BIN
unpackage/dist/build/app-plus/static/images/login_user.png


BIN
unpackage/dist/build/app-plus/static/images/logo.png


BIN
unpackage/dist/build/app-plus/static/images/min.png


BIN
unpackage/dist/build/app-plus/static/images/min_active.png


BIN
unpackage/dist/build/app-plus/static/images/new.png


BIN
unpackage/dist/build/app-plus/static/images/new_active.png


BIN
unpackage/dist/build/app-plus/static/images/ongoing.png


BIN
unpackage/dist/build/app-plus/static/images/ongoing_other.png


BIN
unpackage/dist/build/app-plus/static/images/project.png


BIN
unpackage/dist/build/app-plus/static/images/project_other.png


BIN
unpackage/dist/build/app-plus/static/images/updatePassword.png


BIN
unpackage/dist/build/app-plus/static/images/version.png


BIN
unpackage/dist/build/app-plus/static/images/waste.png


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/view.css


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/build/app-plus/view.umd.min.js


+ 2 - 2
unpackage/dist/dev/app-plus/app-config-service.js

@@ -1,8 +1,8 @@
 
 var isReady=false;var onReadyCallbacks=[];
 var isServiceReady=false;var onServiceReadyCallbacks=[];
-var __uniConfig = {"pages":["pages/index/index","pages/login/index","pages/news/index","pages/index/search","pages/index/searchData","pages/index/projectInfo","pages/index/projectInfoPoint","pages/user/index","pages/user/updatePassword","pages/user/version","pages/user/aboutUs","pagesMain/aboutUs"],"window":{"navigationStyle":"default","navigationBarTextStyle":"black","navigationBarTitleText":"阜新业扩","navigationBarBackgroundColor":"#ffffff","backgroundColor":"#F8F8F8"},"tabBar":{"borderStyle":"black","backgroundColor":"#fff","color":"#9A9A9A","selectedColor":"#52A63A","list":[{"pagePath":"pages/index/index","iconPath":"static/images/icon-index.png","selectedIconPath":"static/images/icon-index-active.png","text":"首页"},{"pagePath":"pages/news/index","iconPath":"static/images/icon-index.png","selectedIconPath":"static/images/icon-index-active.png","text":"消息"},{"pagePath":"pages/user/index","iconPath":"static/images/icon-mine.png","selectedIconPath":"static/images/icon-mine-active.png","text":"我的"}]},"nvueCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"阜新业扩领导端","compilerVersion":"2.8.3","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
-var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false}},{"path":"/pages/login/index","meta":{},"window":{"titleNView":false}},{"path":"/pages/news/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false}},{"path":"/pages/index/search","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/searchData","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/projectInfo","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/projectInfoPoint","meta":{},"window":{"titleNView":false}},{"path":"/pages/user/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":false}},{"path":"/pages/user/updatePassword","meta":{},"window":{"titleNView":false}},{"path":"/pages/user/version","meta":{},"window":{"titleNView":false}},{"path":"/pages/user/aboutUs","meta":{},"window":{"titleNView":false}},{"path":"/pagesMain/aboutUs","meta":{},"window":{"navigationBarTitleText":"关于我们"}}];
+var __uniConfig = {"pages":["pages/login/index","pages/index/index","pages/news/index","pages/index/search","pages/index/searchData","pages/index/projectInfo","pages/index/projectInfoPoint","pages/index/projectInfoPointOrder","pages/index/projectEnd","pages/user/index","pages/user/updatePassword","pages/user/version","pages/user/aboutUs","pagesMain/aboutUs"],"window":{"navigationStyle":"default","navigationBarTextStyle":"black","navigationBarTitleText":"阜新业扩","navigationBarBackgroundColor":"#42349A","background":"#42349A"},"tabBar":{"height":"58px","borderStyle":"black","backgroundColor":"#544AA6","color":"#FDFDFD","selectedColor":"#FDFDFD","list":[{"pagePath":"pages/index/index","iconPath":"static/images/icon_index.png","selectedIconPath":"static/images/icon_index_active.png","text":"首页"},{"pagePath":"pages/news/index","iconPath":"static/images/new.png","selectedIconPath":"static/images/new_active.png","text":"消息"},{"pagePath":"pages/user/index","iconPath":"static/images/min.png","selectedIconPath":"static/images/min_active.png","text":"我的"}]},"nvueCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"阜新业扩领导端","compilerVersion":"2.8.3","entryPagePath":"pages/login/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
+var __uniRoutes = [{"path":"/pages/login/index","meta":{"isQuit":true},"window":{"titleNView":false}},{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"background":"#42349A","titleNView":{"backgroundColor":"#42349A","titleText":""}}},{"path":"/pages/news/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":{"backgroundColor":"#42349A","titleText":"消息","titleColor":"#fff","titleSize":"40rpx"}}},{"path":"/pages/index/search","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/searchData","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/projectInfo","meta":{},"window":{"titleNView":false,"background":"#F7FBFF"}},{"path":"/pages/index/projectInfoPoint","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/projectInfoPointOrder","meta":{},"window":{"titleNView":false}},{"path":"/pages/index/projectEnd","meta":{},"window":{"titleNView":false}},{"path":"/pages/user/index","meta":{"isQuit":true,"isTabBar":true},"window":{"titleNView":{"backgroundColor":"#42349A","titleText":"我的","titleColor":"#fff","titleSize":"40rpx"}}},{"path":"/pages/user/updatePassword","meta":{},"window":{"titleNView":false}},{"path":"/pages/user/version","meta":{},"window":{"titleNView":false}},{"path":"/pages/user/aboutUs","meta":{},"window":{"titleNView":false}},{"path":"/pagesMain/aboutUs","meta":{},"window":{"navigationBarTitleText":"关于我们"}}];
 __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
 __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
 service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/dev/app-plus/app-service.js


Файловите разлики са ограничени, защото са твърде много
+ 47 - 41
unpackage/dist/dev/app-plus/app-view.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
unpackage/dist/dev/app-plus/manifest.json


BIN
unpackage/dist/dev/app-plus/static/images/icon-index-active11.png


BIN
unpackage/dist/dev/app-plus/static/images/icon-index11.png


BIN
unpackage/dist/dev/app-plus/static/images/icon_index.png


BIN
unpackage/dist/dev/app-plus/static/images/icon_index_active.png


BIN
unpackage/dist/dev/app-plus/static/images/min.png


BIN
unpackage/dist/dev/app-plus/static/images/min_active.png


BIN
unpackage/dist/dev/app-plus/static/images/new.png


BIN
unpackage/dist/dev/app-plus/static/images/new_active.png


+ 28 - 0
utils/datetime.js

@@ -0,0 +1,28 @@
+// fmt 定义想要的样式  例如 yyyy.MM.dd
+// date 时间戳
+
+export function formatDate(date, fmt) {
+  if (/(y+)/.test(fmt)) {
+    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
+  }
+  let o = {
+    'M+': date.getMonth() + 1,
+    'd+': date.getDate(),
+    'h+': date.getHours(),
+    'm+': date.getMinutes(),
+    's+': date.getSeconds()
+  };
+  for (let k in o) {
+    if (new RegExp(`(${k})`).test(fmt)) {
+      let str = o[k] + ''
+      // fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str))
+      fmt = fmt.replace(RegExp.$1, str )
+    }
+  }
+  return fmt;
+};
+
+// 用0补充
+function padLeftZero (str) {
+  return ('00' + str).substr(str.length);
+};

+ 1 - 1
uview-ui/components/u-icon/u-icon.vue

@@ -333,4 +333,4 @@ export default {
 		line-height: 1;
 	}
 }
-</style>
+</style>

+ 7 - 2
uview-ui/components/u-input/u-input.vue

@@ -13,7 +13,7 @@
 		}"
 		@tap.stop="inputClick"
 	>	
-		<u-icon custom-prefix="custom-icon" style="margin-right:33rpx" :name="iconName" size="40" color="#fff"></u-icon>
+		<u-icon v-if="isExistIcon" custom-prefix="custom-icon" style="margin-right:33rpx" :name="iconName" size="40" color="#fff"></u-icon>
 		<textarea
 			v-if="type == 'textarea'"
 			class="u-input__input u-input__textarea"
@@ -219,6 +219,11 @@ export default {
 		// 赵志鹏 
 		// 最外层下边框边框
 		borderZ: {
+			type: Boolean,
+			default: false
+		},
+		// 是否带图标
+		isExistIcon: {
 			type: Boolean,
 			default: true
 		},
@@ -367,7 +372,7 @@ export default {
 		width: auto;
 		font-size: 28rpx;
 		color: $u-main-color;
-		padding: 10rpx 0;
+		padding: 0;
 		line-height: normal;
 		flex: 1;
 	}

+ 16 - 3
uview-ui/components/u-modal/u-modal.vue

@@ -2,7 +2,7 @@
 	<view>
 		<u-popup :zoom="zoom" mode="center" :popup="false" :z-index="uZIndex" v-model="value" :length="width"
 		 :mask-close-able="maskCloseAble" :border-radius="borderRadius" @close="popupClose" :negative-top="negativeTop">
-			<view class="u-model">
+			<view class="u-model" :style="bgStyle">
 				<view v-if="showTitle" class="u-model__title u-line-1" :style="[titleStyle]">{{ title }}</view>
 				<view class="u-model__content">
 					<view :style="[contentStyle]" v-if="$slots.default  || $slots.$default">
@@ -176,6 +176,11 @@
 			negativeTop: {
 				type: [String, Number],
 				default: 0
+			},
+			// 是否为项目背景
+			isBgColor: {
+				type: Boolean,
+				default: true
 			}
 		},
 		data() {
@@ -196,6 +201,12 @@
 			},
 			uZIndex() {
 				return this.zIndex ? this.zIndex : this.$u.zIndex.popup;
+			},
+			bgStyle() {
+				if(this.isBgColor) {
+					return {'background-color':'#42349A'}
+				}
+				return {'background-color':'#fff'}
 			}
 		},
 		watch: {
@@ -240,10 +251,12 @@
 	@import "../../libs/css/style.components.scss";
 
 	.u-model {
-		height: auto;
+		// height: auto;
+		height: 100%;
 		overflow: hidden;
 		font-size: 32rpx;
-		background-color: #fff;
+		// background-color: #fff;
+		// background-color: #42349A;
 
 		&__btn--hover {
 			background-color: rgb(230, 230, 230);

Някои файлове не бяха показани, защото твърде много файлове са промени