兼容手机号隐藏、调用部分接口
							
								
								
									
										2
									
								
								App.vue
								
								
								
								
							
							
						
						|  | @ -11,7 +11,7 @@ | ||||||
| 			// 配置全局域名 | 			// 配置全局域名 | ||||||
| 			// #ifdef H5 | 			// #ifdef H5 | ||||||
| 				// this.globalData.hostapi = 'https://7and5.cn'; | 				// this.globalData.hostapi = 'https://7and5.cn'; | ||||||
| 				this.globalData.hostapi = '/web'; | 				// this.globalData.hostapi = '/web'; | ||||||
| 			// #endif  | 			// #endif  | ||||||
| 		}, | 		}, | ||||||
| 		onShow: function() { | 		onShow: function() { | ||||||
|  |  | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
| @font-face { | @font-face { | ||||||
|   font-family: "iconfont"; /* Project id 3180711 */ |   font-family: "iconfont"; /* Project id 3180711 */ | ||||||
|   src: url('https://at.alicdn.com/t/font_3180711_7fx7wl7itar.woff2?t=1647479558213') format('woff2'), |   src: url('https://at.alicdn.com/t/font_3180711_635f9bvlgje.woff2?t=1652863135237') format('woff2'), | ||||||
|        url('https://at.alicdn.com/t/font_3180711_7fx7wl7itar.woff?t=1647479558213') format('woff'), |        url('https://at.alicdn.com/t/font_3180711_635f9bvlgje.woff?t=1652863135237') format('woff'), | ||||||
|        url('https://at.alicdn.com/t/font_3180711_7fx7wl7itar.ttf?t=1647479558213') format('truetype'); |        url('https://at.alicdn.com/t/font_3180711_635f9bvlgje.ttf?t=1652863135237') format('truetype'); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .icon { | .icon { | ||||||
|  | @ -13,6 +13,66 @@ | ||||||
|   -moz-osx-font-smoothing: grayscale; |   -moz-osx-font-smoothing: grayscale; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .icon-sj-left-top:before { | ||||||
|  |   content: "\e603"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-sj-top:before { | ||||||
|  |   content: "\e604"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-sj-right-top:before { | ||||||
|  |   content: "\e605"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-sj-bottom:before { | ||||||
|  |   content: "\e606"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-sj-right-bottom:before { | ||||||
|  |   content: "\e607"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-sj-left:before { | ||||||
|  |   content: "\e60d"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-zsj:before { | ||||||
|  |   content: "\e6bd"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-del:before { | ||||||
|  |   content: "\e718"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-cut:before { | ||||||
|  |   content: "\e609"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-add:before { | ||||||
|  |   content: "\e60a"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-add-picture05:before { | ||||||
|  |   content: "\e639"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-add-picture04:before { | ||||||
|  |   content: "\e636"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-add-picture03:before { | ||||||
|  |   content: "\e642"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-add-picture02:before { | ||||||
|  |   content: "\e8bc"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .icon-add-picture01:before { | ||||||
|  |   content: "\e62c"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .icon-sandian:before { | .icon-sandian:before { | ||||||
|   content: "\e769"; |   content: "\e769"; | ||||||
| } | } | ||||||
|  | @ -93,7 +153,7 @@ | ||||||
|   content: "\e73f"; |   content: "\e73f"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .icon-shopp-cart:before { | .icon-shop-cart:before { | ||||||
|   content: "\e73d"; |   content: "\e73d"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| 				<view class="btn-picker cancel" @click="open = false">取消</view> | 				<view class="btn-picker cancel" @click="open = false">取消</view> | ||||||
| 				<view class="btn-picker submit" @click="_onSubmit">确定</view> | 				<view class="btn-picker submit" @click="_onSubmit">确定</view> | ||||||
| 			</view> | 			</view> | ||||||
| 			<view class="picker-body"> | 			<view class="picker-body" v-if="ifDate"> | ||||||
| 				<picker-view :value="value" @change="_onChange"> | 				<picker-view :value="value" @change="_onChange"> | ||||||
| 					<picker-view-column> | 					<picker-view-column> | ||||||
| 						<view class="column-item" v-for="item in years" :key="item"> | 						<view class="column-item" v-for="item in years" :key="item"> | ||||||
|  | @ -68,6 +68,7 @@ | ||||||
| 				hour: "", | 				hour: "", | ||||||
| 				minute: "", | 				minute: "", | ||||||
| 				value: [0, 0, 0, 0, 0], | 				value: [0, 0, 0, 0, 0], | ||||||
|  | 				ifDate:false | ||||||
| 			}; | 			}; | ||||||
| 		}, | 		}, | ||||||
| 
 | 
 | ||||||
|  | @ -148,6 +149,10 @@ | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 				this.minutes = minutes; | 				this.minutes = minutes; | ||||||
|  | 				// 兼容微信小程序 | ||||||
|  | 				setTimeout(()=>{ | ||||||
|  | 					this.ifDate = true; | ||||||
|  | 				},1000) | ||||||
| 			}, | 			}, | ||||||
| 
 | 
 | ||||||
| 			show() { | 			show() { | ||||||
|  |  | ||||||
|  | @ -126,18 +126,41 @@ | ||||||
| 								break; | 								break; | ||||||
| 							case 2: | 							case 2: | ||||||
| 							// #ifdef APP-PLUS || MP-WEIXIN | 							// #ifdef APP-PLUS || MP-WEIXIN | ||||||
|  | 							this.$toolAll.tools.showToast(3) | ||||||
| 								uni.scanCode({ | 								uni.scanCode({ | ||||||
| 									onlyFromCamera:false, // 是否只能从相机扫码,不允许从相册选择图片 | 									onlyFromCamera:false, // 是否只能从相机扫码,不允许从相册选择图片 | ||||||
| 									scanType: ['qrCode'], // barCode:一维码, qrCode:二维码, datamatrix:Data Matrix 码, pdf417:PDF417 条码 | 									scanType: ['qrCode'], // barCode:一维码, qrCode:二维码, datamatrix:Data Matrix 码, pdf417:PDF417 条码 | ||||||
| 									autoDecodeCharset:true, // 是否启用自动识别字符编码功能,默认为否 | 									autoDecodeCharset:true, // 是否启用自动识别字符编码功能,默认为否 | ||||||
| 									success: function (res) { | 									success: function (res) { | ||||||
| 										console.log('条码类型:' + res.scanType); | 										// console.log(res); | ||||||
| 										console.log('条码内容:' + res.result); | 										// console.log('条码类型:' + res.scanType); | ||||||
|  | 										// console.log('条码内容:' + res.result); | ||||||
|  | 										let project_number = JSON.parse(res.result).project_number; | ||||||
|  | 										if(project_number) { | ||||||
|  | 											uni.navigateTo({ | ||||||
|  | 												url:`/pagesA/repairsPage/repairsPage?project_number=${project_number}` | ||||||
|  | 											}) | ||||||
|  | 										} else { | ||||||
|  | 											this.$toolAll.tools.showToast('请出示正确的码') | ||||||
|  | 										} | ||||||
|  | 									},fail() { | ||||||
|  | 										this.$toolAll.tools.showToast('扫描失败') | ||||||
| 									} | 									} | ||||||
| 								}); | 								}); | ||||||
| 							// #endif | 							// #endif | ||||||
| 							// #ifdef H5 | 							// #ifdef H5 | ||||||
| 								this.scanCode(); | 								uni.showModal({ | ||||||
|  | 									title:'提示', | ||||||
|  | 									content:'请使用,飞猴云服务APP进行扫一扫,是否马上下载APP?', | ||||||
|  | 									confirmText:'马上下载', | ||||||
|  | 									cancelText:'暂不下载', | ||||||
|  | 									success: (res) => { | ||||||
|  | 										if(res.confirm) { | ||||||
|  | 											 | ||||||
|  | 										} | ||||||
|  | 									} | ||||||
|  | 								}) | ||||||
|  | 								// this.scanCode(); | ||||||
| 							// #endif | 							// #endif | ||||||
| 								break; | 								break; | ||||||
| 							case 3: | 							case 3: | ||||||
|  | @ -157,12 +180,23 @@ | ||||||
| 					sizeType: ['original'], | 					sizeType: ['original'], | ||||||
| 					count: 1, | 					count: 1, | ||||||
| 					success: (res)=> { | 					success: (res)=> { | ||||||
| 						qrcode.decode(this.getObjectURL(res.tempFiles[0])) | 						// uni.showModal({ | ||||||
|  | 						// 	title:'进入了'+JSON.stringify(res) , | ||||||
|  | 						// 	content:JSON.stringify(res.tempFilePaths[0]) | ||||||
|  | 						// }) | ||||||
|  | 						qrcode.decode(this.getObjectURL(res.tempFilePaths[0])) | ||||||
| 						qrcode.callback = (codeRes) => { | 						qrcode.callback = (codeRes) => { | ||||||
| 							if (codeRes.indexOf('error') >= 0) { | 							if (codeRes.indexOf('error') >= 0) { | ||||||
|  | 								this.footList[2].title  = 3; | ||||||
| 								// 二维码识别失败 | 								// 二维码识别失败 | ||||||
| 								console.log('不合法二维码:' + codeRes); | 								console.log('不合法二维码:' + codeRes); | ||||||
|  | 								uni.showModal({ | ||||||
|  | 									title:'请出示正确的码', | ||||||
|  | 									content:res | ||||||
|  | 								}) | ||||||
|  | 								// this.$toolAll.tools.showToast('请出示正确的码') | ||||||
| 							} else { | 							} else { | ||||||
|  | 								this.footList[2].title  = 2; | ||||||
| 								// 二维码识别成功 | 								// 二维码识别成功 | ||||||
| 								let r = this.decodeStr(codeRes) | 								let r = this.decodeStr(codeRes) | ||||||
| 								// this.qrCodeRes = r | 								// this.qrCodeRes = r | ||||||
|  | @ -185,6 +219,8 @@ | ||||||
| 						// 	} | 						// 	} | ||||||
| 						// } | 						// } | ||||||
| 					},fail:(err)=> { | 					},fail:(err)=> { | ||||||
|  | 						this.footList[2].title  = 1; | ||||||
|  | 						this.$toolAll.tools.showToast(err) | ||||||
| 						this.$toolAll.tools.checkQx(err.code); | 						this.$toolAll.tools.checkQx(err.code); | ||||||
|                     } |                     } | ||||||
| 				}); | 				}); | ||||||
|  | @ -192,13 +228,15 @@ | ||||||
| 			// 获取文件地址函数 | 			// 获取文件地址函数 | ||||||
| 			getObjectURL(file) { | 			getObjectURL(file) { | ||||||
| 				var url = null | 				var url = null | ||||||
| 				if (window.createObjectURL !== undefined) { // basic | 				// if (window.createObjectURL !== undefined) { // basic | ||||||
| 					url = window.createObjectURL(file) | 				// 	url = window.createObjectURL(file) | ||||||
| 				} else if (window.URL !== undefined) { // mozilla(firefox) | 				// } else if (window.URL !== undefined) { // mozilla(firefox) | ||||||
|  | 				// 	url = window.URL.createObjectURL(file) | ||||||
|  | 				// } else if (window.webkitURL !== undefined) { // webkit or chrome | ||||||
|  | 				// 	url = window.webkitURL.createObjectURL(file) | ||||||
|  | 				// } | ||||||
| 				url = window.URL.createObjectURL(file) | 				url = window.URL.createObjectURL(file) | ||||||
| 				} else if (window.webkitURL !== undefined) { // webkit or chrome | 				this.footList[2].title  = url; | ||||||
| 					url = window.webkitURL.createObjectURL(file) |  | ||||||
| 				} |  | ||||||
| 				return url | 				return url | ||||||
| 			}, | 			}, | ||||||
| 			// 解码,输出:中文 | 			// 解码,输出:中文 | ||||||
|  |  | ||||||
|  | @ -498,8 +498,13 @@ const tools = { | ||||||
| 		return !reg_identity.test(identity); | 		return !reg_identity.test(identity); | ||||||
| 	}, | 	}, | ||||||
|     // 手机号中间四位用"****"带替
 |     // 手机号中间四位用"****"带替
 | ||||||
|     hideMPhone(phone){ |     hideMPhone(phone,str=''){ | ||||||
|  | 		if(str) { | ||||||
|  | 			return `${phone.substr(0, 3)}${str.padEnd(4,'x')}${phone.substr(7)}` | ||||||
|  | 		} else { | ||||||
| 			return `${phone.substr(0, 3)}****${phone.substr(7)}` | 			return `${phone.substr(0, 3)}****${phone.substr(7)}` | ||||||
|  | 		} | ||||||
|  |          | ||||||
|     }, |     }, | ||||||
| 	// 手机号中间加字符
 | 	// 手机号中间加字符
 | ||||||
| 	phoneAddChat(phone,startNum=3,endNum=7,character=' '){ | 	phoneAddChat(phone,startNum=3,endNum=7,character=' '){ | ||||||
|  |  | ||||||
|  | @ -9,12 +9,7 @@ | ||||||
|         "usingComponents" : true, |         "usingComponents" : true, | ||||||
|         "compilerVersion" : 3, |         "compilerVersion" : 3, | ||||||
|         /* 5+App特有相关 */ |         /* 5+App特有相关 */ | ||||||
|         "modules" : { |         "modules" : {}, | ||||||
|             "Payment" : {}, |  | ||||||
|             "Share" : {}, |  | ||||||
|             "Maps" : {}, |  | ||||||
|             "Geolocation" : {} |  | ||||||
|         }, |  | ||||||
|         /* 模块配置 */ |         /* 模块配置 */ | ||||||
|         "distribute" : { |         "distribute" : { | ||||||
|             /* 应用发布信息 */ |             /* 应用发布信息 */ | ||||||
|  | @ -23,6 +18,9 @@ | ||||||
|                 "permissions" : [ |                 "permissions" : [ | ||||||
|                     "<uses-feature android:name=\"android.hardware.camera\"/>", |                     "<uses-feature android:name=\"android.hardware.camera\"/>", | ||||||
|                     "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", |                     "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", | ||||||
|  |                     "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", | ||||||
|  |                     "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", | ||||||
|  |                     "<uses-permission android:name=\"android.permission.ACCESS_MOCK_LOCATION\"/>", | ||||||
|                     "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", |                     "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", | ||||||
|                     "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", |                     "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", | ||||||
|                     "<uses-permission android:name=\"android.permission.CAMERA\"/>", |                     "<uses-permission android:name=\"android.permission.CAMERA\"/>", | ||||||
|  | @ -30,6 +28,7 @@ | ||||||
|                     "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", |                     "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", | ||||||
|                     "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", |                     "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", | ||||||
|                     "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", |                     "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", | ||||||
|  |                     "<uses-permission android:name=\"android.permission.GET_TASKS\"/>", | ||||||
|                     "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", |                     "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", | ||||||
|                     "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", |                     "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", | ||||||
|                     "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>", |                     "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>", | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| <template> | <template> | ||||||
| 	<view :style="{height: windowHeight+'px'}" style="overflow: hidden;"> | 	<view :style="{height: windowHeight+'px'}" style="overflow: hidden;"> | ||||||
| 		<image src="/static/public/icon-guide.png" mode="widthFix" style="width: 100%;"></image> | 		<image :src="ad_img || '/static/public/icon-guide.png'" mode="widthFix" style="width: 100%;"></image> | ||||||
| 	</view> | 	</view> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | @ -8,11 +8,18 @@ | ||||||
| 	export default { | 	export default { | ||||||
| 		data() { | 		data() { | ||||||
| 			return { | 			return { | ||||||
| 				windowHeight:uni.getSystemInfoSync().windowHeight | 				windowHeight:uni.getSystemInfoSync().windowHeight, | ||||||
|  | 				ad_img:'' | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		onLoad() { | 		onLoad() { | ||||||
| 			this.checkContext(); | 			this.checkContext(); | ||||||
|  | 			this.$requst.get('/universal/api.other/advertise').then(res=>{ | ||||||
|  | 				if(res.code) { | ||||||
|  | 					this.ad_img = res.data.ad_img; | ||||||
|  | 					uni.setStorageSync('adImg',this.ad_img); | ||||||
|  | 				} | ||||||
|  | 			}) | ||||||
| 		}, | 		}, | ||||||
| 		methods: { | 		methods: { | ||||||
| 			checkContext(){ | 			checkContext(){ | ||||||
|  | @ -45,7 +52,7 @@ | ||||||
| 					'/pages/login/login', | 					'/pages/login/login', | ||||||
| 					'/pages/tabbar/pagehome/pagehome' | 					'/pages/tabbar/pagehome/pagehome' | ||||||
| 				] | 				] | ||||||
| 				setTimeout(()=>{uni.reLaunch({url:arr[index]})},3000) | 				setTimeout(()=>{uni.reLaunch({url:arr[index]})},6000) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -94,26 +94,24 @@ | ||||||
|                 <view class="title-content"> |                 <view class="title-content"> | ||||||
|                     <view class="title"> |                     <view class="title"> | ||||||
|                         <image class="icon" src="../../static/iocn/xmlb.png" mode=""></image> |                         <image class="icon" src="../../static/iocn/xmlb.png" mode=""></image> | ||||||
|                         <view class="text" style="font-size: 28rpx;"> |                         <view class="text" style="font-size: 28rpx;">项目列表</view> | ||||||
|                             项目列表 |  | ||||||
|                     </view> |                     </view> | ||||||
|                     </view> |                     <picker :value="currentyear" :range="yearArr" @change="bindTimeChange"> | ||||||
|                     <picker mode="date" :value="time" @change="bindTimeChange"> |                         <view class="date disac" :style="{color: chooseyear ? '#000000' : '#999999',border: chooseyear ? '2rpx solid #000000' : '2rpx solid #999999'}"> | ||||||
|                         <view class="date scal09"> |                             {{chooseyear ? chooseyear+'年' : '选择年份'}} <i class="icon icon-zsj" style="font-size: 18rpx;"></i> | ||||||
|                             选择年份 <image class="icon" src="../../static/iocn/sjx.png" mode=""></image> | 							<!-- <image class="icon flexs" src="../../static/iocn/sjx.png" mode=""></image> --> | ||||||
|                         </view> |                         </view> | ||||||
|                     </picker> |                     </picker> | ||||||
|              |  | ||||||
|                 </view> |                 </view> | ||||||
|              | 				<view class="project-list-box"> | ||||||
|                 <view class="project-list-content" v-for="item in 5"> | 					<view class="project-list-content" v-for="(item,index) in projectList" :key="index"> | ||||||
| 					    <view class="li"> | 					    <view class="li"> | ||||||
|                         <view class="text"> | 					        <view class="text">{{item.project_name}}</view> | ||||||
|                             南城校区液晶显示屏 | 					        <view class="date">{{item.create_time}}</view> | ||||||
| 					    </view> | 					    </view> | ||||||
|                         <view class="date"> |  | ||||||
|                             2022/3/1 |  | ||||||
| 					</view> | 					</view> | ||||||
|  | 					<view v-if="!projectList.length" class="disjcac fc" style="height: 120rpx;"> | ||||||
|  | 						<pitera textStr="查询无果"></pitera> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
|             </view> |             </view> | ||||||
|  | @ -140,14 +138,15 @@ | ||||||
|      import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; |      import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; | ||||||
|     import statusNav from '../../components/status-nav.vue'; |     import statusNav from '../../components/status-nav.vue'; | ||||||
| 	import {queryDetail} from '@/jsFile/public-api.js'; | 	import {queryDetail} from '@/jsFile/public-api.js'; | ||||||
|  | 	import pitera from '@/components/nothing/pitera.vue'; | ||||||
|     export default { |     export default { | ||||||
|         components: { |         components: { | ||||||
|             statusNav, |             statusNav, | ||||||
|             containerSubgroupTwo |             containerSubgroupTwo, | ||||||
|  | 			pitera | ||||||
|         }, |         }, | ||||||
|         data() { |         data() { | ||||||
|             return { |             return { | ||||||
|                 time: '12:01', |  | ||||||
|                 dataArr:{ |                 dataArr:{ | ||||||
|                     customerName:"长沙警校", |                     customerName:"长沙警校", | ||||||
|                     customerCode:"xxxxxxxxx", |                     customerCode:"xxxxxxxxx", | ||||||
|  | @ -159,8 +158,11 @@ | ||||||
|                     area:"长沙", |                     area:"长沙", | ||||||
|                      |                      | ||||||
|                 }, |                 }, | ||||||
|                 projectList:[], | 				clientId:'',//客户id | ||||||
| 				clientId:''//客户id | 				yearArr:[],//年份 | ||||||
|  | 				currentyear: '',//当前年份 | ||||||
|  | 				chooseyear:'',//选中的年份 | ||||||
|  | 				projectList:[]//项目列表 | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
| 		onLoad(op){ | 		onLoad(op){ | ||||||
|  | @ -170,6 +172,13 @@ | ||||||
| 				// 调用查询客户详情信息事件 | 				// 调用查询客户详情信息事件 | ||||||
| 				this.queryDetailEv(); | 				this.queryDetailEv(); | ||||||
| 			} | 			} | ||||||
|  | 			let date = new Date(); | ||||||
|  | 			this.currentyear = date.getFullYear(); | ||||||
|  | 			for (let i = this.currentyear-10; i <= this.currentyear; i++) { | ||||||
|  | 				this.yearArr.push(i); | ||||||
|  | 			} | ||||||
|  | 			// 调用项目列表查询 | ||||||
|  | 			this.getProjectList(this.currentyear); | ||||||
| 		}, | 		}, | ||||||
|         methods: { |         methods: { | ||||||
| 			// 查询客户详情信息 | 			// 查询客户详情信息 | ||||||
|  | @ -182,46 +191,58 @@ | ||||||
| 					} | 					} | ||||||
| 				}) | 				}) | ||||||
| 			}, | 			}, | ||||||
|             getData(){ |             // 选择年份 | ||||||
|                  |             bindTimeChange(data) { | ||||||
|  | 				let index = data.detail.value; | ||||||
|  | 				this.chooseyear = this.yearArr[index]; | ||||||
|  | 				// 调用项目列表查询 | ||||||
|  | 				this.getProjectList(this.chooseyear); | ||||||
|  |             }, | ||||||
|  | 			// 项目列表查询 | ||||||
|  | 			getProjectList(year) { | ||||||
|  | 				this.$requst.post('/universal/api.search/project_year',{year}).then(res=>{ | ||||||
|  | 					if(res.code) { | ||||||
|  | 						this.projectList = res.data; | ||||||
|  | 					} | ||||||
|  | 				}) | ||||||
|  | 			}, | ||||||
|  |             essentialInformation(classText){ | ||||||
|  | 				uni.createSelectorQuery().select('.'+classText).boundingClientRect(data=>{//目标位置的节点:类或者id | ||||||
|  | 					uni.createSelectorQuery().select(".arc-content").boundingClientRect(res=>{//最外层盒子的节点:类或者id | ||||||
|  | 						uni.pageScrollTo({ | ||||||
|  | 							duration: 100,//过渡时间 | ||||||
|  | 							scrollTop:data.top - res.top -uni.getSystemInfoSync().statusBarHeight-50,//到达距离顶部的top值 | ||||||
|  | 						}) | ||||||
|  | 					}).exec() | ||||||
|  | 				}).exec();   | ||||||
|  |             }, | ||||||
|  |             // 复制微信 | ||||||
|  |             copyWxFun(){ | ||||||
|  | 				uni.setClipboardData({ | ||||||
|  | 					data: 'hello', | ||||||
|  | 					success: function () {} | ||||||
|  | 				});   | ||||||
|             }, |             }, | ||||||
| 			// 拨打电话 | 			// 拨打电话 | ||||||
| 			telFun(){ | 			telFun(){ | ||||||
| 			    uni.makePhoneCall({ | 			    uni.makePhoneCall({ | ||||||
| 			    	phoneNumber: '13608235524' //仅为示例 | 			    	phoneNumber: '13608235524' //仅为示例 | ||||||
| 			    }); | 			    }); | ||||||
|             }, |  | ||||||
|             // 选择年份 |  | ||||||
|             bindTimeChange(data) { |  | ||||||
|                       console.log(data.detail.value) |  | ||||||
|             }, |  | ||||||
|             essentialInformation(classText){ |  | ||||||
|              |  | ||||||
|               // uni.createSelectorQuery().select('.'+classText).boundingClientRect(data=>{//目标位置的节点:类或者id |  | ||||||
|               //            uni.createSelectorQuery().select(".arc-content").boundingClientRect(res=>{//最外层盒子的节点:类或者id |  | ||||||
|               //                  uni.pageScrollTo({ |  | ||||||
|               //                        duration: 100,//过渡时间 |  | ||||||
|               //                        scrollTop:data.top - res.top -uni.getSystemInfoSync().statusBarHeight-40,//到达距离顶部的top值 |  | ||||||
|               //                  }) |  | ||||||
|               //            }).exec() |  | ||||||
|               //      }).exec();   |  | ||||||
|             }, |  | ||||||
|                  |  | ||||||
|             // 复制微信 |  | ||||||
|             copyWxFun(){ |  | ||||||
|               uni.setClipboardData({ |  | ||||||
|               	data: 'hello', |  | ||||||
|               	success: function () { |  | ||||||
|               		console.log('success'); |  | ||||||
| 			} | 			} | ||||||
|               });   |  | ||||||
|             } |  | ||||||
|           |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style> | <style> | ||||||
|  | 	 .project-list-box { | ||||||
|  | 		 min-height: 120rpx; | ||||||
|  | 		 max-height: 520rpx; | ||||||
|  | 		 overflow: hidden; | ||||||
|  | 		 overflow-y: scroll; | ||||||
|  | 	 } | ||||||
|  | 	 .project-list-box::-webkit-scrollbar{ | ||||||
|  | 		 display: none; | ||||||
|  | 	 } | ||||||
|     .content { |     .content { | ||||||
|         padding-right: 27rpx; |         padding-right: 27rpx; | ||||||
|         padding-left: 27rpx; |         padding-left: 27rpx; | ||||||
|  | @ -328,15 +349,14 @@ | ||||||
|         justify-content: center; |         justify-content: center; | ||||||
|         align-items: center; |         align-items: center; | ||||||
|         border-radius: 10rpx; |         border-radius: 10rpx; | ||||||
|         border: 2rpx solid #999999; |  | ||||||
|         font-size: 24rpx; |         font-size: 24rpx; | ||||||
|         display: flex; |         display: flex; | ||||||
|         align-items: center; |         align-items: center; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     .project-list .title-content .date .icon { |     .project-list .title-content .date .icon { | ||||||
|         width: 12rpx; |         /* width: 12rpx; | ||||||
|         height: 12rpx; |         height: 12rpx; */ | ||||||
|         margin-left: 5rpx; |         margin-left: 5rpx; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -34,57 +34,9 @@ | ||||||
| 					<view class="text">项目概况</view> | 					<view class="text">项目概况</view> | ||||||
| 				</view> | 				</view> | ||||||
| 				<view class="project-message-content"> | 				<view class="project-message-content"> | ||||||
| 					<view class="li"> | 					<view class="li" v-for="(item,index) in projectGK" :key="index"> | ||||||
| 						<view class="title-one">客户名称</view> | 						<view class="title-one">{{item.name}}</view> | ||||||
| 						<view class="text">:上海弘焱电子科技有限公司</view> | 						<view class="text">:{{item.value}}</view> | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title-one">竣工日期</view> |  | ||||||
| 						<view class="text">:2022/2/26</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title-one">质保年限</view> |  | ||||||
| 						<view class="text">:1 年</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title-one">产品品类:</view> |  | ||||||
| 						<view class="text">单色LED屏</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title-one">品牌</view> |  | ||||||
| 						<view class="text">:海康威视</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title-one">维保次数</view> |  | ||||||
| 						<view class="text">:4 次</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title">规格型号</view> |  | ||||||
| 						<view class="text">:DS-CK15FI</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title">尺寸</view> |  | ||||||
| 						<view class="text">:4.57m*2.88m</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title">合同类型:</view> |  | ||||||
| 						<view class="text">制作安装</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title">合同开始</view> |  | ||||||
| 						<view class="text">: 2021/02/26</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title">合同结束</view> |  | ||||||
| 						<view class="text">:2021/02/2</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title">应用场景 </view> |  | ||||||
| 						<view class="text">:会议室</view> |  | ||||||
| 					</view> |  | ||||||
| 					<view class="li"> |  | ||||||
| 						<view class="title">安装位置</view> |  | ||||||
| 						<view class="text">:地下负二层总控电机室</view> |  | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
| 				<view class="project-message-title"> | 				<view class="project-message-title"> | ||||||
|  | @ -100,17 +52,19 @@ | ||||||
| 						<view class="text">尺寸</view> | 						<view class="text">尺寸</view> | ||||||
| 						<view class="text">数量</view> | 						<view class="text">数量</view> | ||||||
| 					</view> | 					</view> | ||||||
| 					<view class="project-materials-text"> | 					<view class="project-material-box"> | ||||||
| 						<view class="text">接收卡</view> | 						<view class="project-materials-text" v-for="(item,index) in project_material" :key="index"> | ||||||
| 						<view class="text">卡莱特</view> | 							<view class="text clips2">{{item.name}}</view> | ||||||
| 						<view class="text">5A-75E</view> | 							<view class="text clips2">{{item.brand}}</view> | ||||||
| 						<view class="text">1033876</view> | 							<view class="text clips2">{{item.model}}</view> | ||||||
| 						<view class="text">*</view> | 							<view class="text clips2">{{item.batch}}</view> | ||||||
| 						<view class="text">1台</view> | 							<view class="text clips2">{{item.size}}</view> | ||||||
|  | 							<view class="text clips2">{{item.quantity}}</view> | ||||||
|  | 						</view> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
| 				<view class="record-nav"> | 				<view class="record-nav"> | ||||||
| 					<view class="li" @click="recordNav(index)" :class="item.state?'on':''" | 					<view class="li" @click="recordNav(index)" :class="item.state?'on':'mo'" | ||||||
| 						v-for="(item,index) in recordState"> | 						v-for="(item,index) in recordState"> | ||||||
| 						{{item.title}} | 						{{item.title}} | ||||||
| 					</view> | 					</view> | ||||||
|  | @ -120,8 +74,8 @@ | ||||||
| 					<view class="list"> | 					<view class="list"> | ||||||
| 						<view class="li pad-z40 fon27 col9" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in recordList" :key="index"> | 						<view class="li pad-z40 fon27 col9" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in recordList" :key="index"> | ||||||
| 							<view class="disac fw line-h60"> | 							<view class="disac fw line-h60"> | ||||||
| 								<view class="text">{{item.time_line}}</view> | 								<view class="text">{{item.value}}</view> | ||||||
| 								<!-- <view class="date">2020-05-15 16:00</view> --> | 								<view class="date">{{item.time}}</view> | ||||||
| 							</view> | 							</view> | ||||||
| 						</view> | 						</view> | ||||||
| 						<pitera v-if="recordList.length==0" :textStr="nomoreText"></pitera> | 						<pitera v-if="recordList.length==0" :textStr="nomoreText"></pitera> | ||||||
|  | @ -168,6 +122,8 @@ | ||||||
| 				recordList:[],//记录列表 | 				recordList:[],//记录列表 | ||||||
| 				nomoreText:'', | 				nomoreText:'', | ||||||
| 				projectId: "",//项目id | 				projectId: "",//项目id | ||||||
|  | 				projectGK:[],//项目概况 | ||||||
|  | 				project_material:[]//项目材料 | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		onLoad(op) { | 		onLoad(op) { | ||||||
|  | @ -188,11 +144,6 @@ | ||||||
| 				} | 				} | ||||||
| 				this.$requst.get('/universal/api.project/recording',params).then(res=>{ | 				this.$requst.get('/universal/api.project/recording',params).then(res=>{ | ||||||
| 					if(res.code) { | 					if(res.code) { | ||||||
| 						/** |  | ||||||
| 						 * { |  | ||||||
| 						 * 	 time_line:'' |  | ||||||
| 						 * } |  | ||||||
| 						 */ |  | ||||||
| 						this.recordList = res.data.data; | 						this.recordList = res.data.data; | ||||||
| 					} else { | 					} else { | ||||||
| 						this.nomoreText = res.msg; | 						this.nomoreText = res.msg; | ||||||
|  | @ -209,6 +160,8 @@ | ||||||
| 					if (res.code) { | 					if (res.code) { | ||||||
| 						this.projectObj = res.data; | 						this.projectObj = res.data; | ||||||
| 						this.imgNum = this.projectObj.completed_img.length; | 						this.imgNum = this.projectObj.completed_img.length; | ||||||
|  | 						this.projectGK = this.projectObj.project_overview_min;//项目概况 | ||||||
|  | 						this.project_material = this.projectObj.project_material;//项目材料 | ||||||
| 					} else { | 					} else { | ||||||
| 			 | 			 | ||||||
| 					} | 					} | ||||||
|  | @ -232,12 +185,14 @@ | ||||||
| 	page { | 	page { | ||||||
| 		background-color: #F7F7F7; | 		background-color: #F7F7F7; | ||||||
| 	} | 	} | ||||||
| 
 | 	.project-material-box { | ||||||
| 	.content { | 		max-height: 520rpx; | ||||||
| 		padding: 16rpx 0; | 		overflow: hidden; | ||||||
| 
 | 		overflow-y: scroll; | ||||||
|  | 	} | ||||||
|  | 	.project-material-box::-webkit-scrollbar{ | ||||||
|  | 		display: none; | ||||||
| 	} | 	} | ||||||
| 
 |  | ||||||
| 	.swiper { | 	.swiper { | ||||||
| 		width: 100%; | 		width: 100%; | ||||||
| 		height: 500rpx; | 		height: 500rpx; | ||||||
|  | @ -304,16 +259,16 @@ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.last-date { | 	.last-date { | ||||||
| 		width: 100%; | 		/* width: 100%; */ | ||||||
| 		padding: 10rpx 13rpx 10rpx; | 		padding: 10rpx 13rpx 10rpx; | ||||||
| 		box-shadow: 0rpx 5rpx 3rpx rgba(0, 0, 0, 0.1); | 		box-shadow: 0rpx 5rpx 3rpx rgba(0, 0, 0, 0.1); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.last-date-content { | 	.last-date-content { | ||||||
| 		width: 100%; | 		/* width: 100%; */ | ||||||
| 		height: 57rpx; | 		height: 57rpx; | ||||||
| 		display: flex; | 		display: flex; | ||||||
| 		padding-left: 20rpx; | 		padding: 0 20rpx; | ||||||
| 		align-items: center; | 		align-items: center; | ||||||
| 		border-radius: 10rpx; | 		border-radius: 10rpx; | ||||||
| 		background: linear-gradient(to right, #FFEBEB, #F7F7F7); | 		background: linear-gradient(to right, #FFEBEB, #F7F7F7); | ||||||
|  | @ -395,7 +350,7 @@ | ||||||
| 		margin-top: 10rpx; | 		margin-top: 10rpx; | ||||||
| 		background-color: #FFFFFF; | 		background-color: #FFFFFF; | ||||||
| 		justify-content: space-between; | 		justify-content: space-between; | ||||||
| 		border-bottom: 2rpx solid #D5D4D4; | 		border-bottom: 4rpx solid #D5D4D4; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.record-nav .li { | 	.record-nav .li { | ||||||
|  | @ -407,18 +362,28 @@ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.record-nav .on { | 	.record-nav .on { | ||||||
| 		color: #00b1ff; | 		color: #00B1FF; | ||||||
| 	} | 	} | ||||||
| 
 | 	.record-nav .mo { | ||||||
| 	.record-nav .on::after { | 		color: #000000; | ||||||
|  | 	} | ||||||
|  | 	.record-nav .on::after,.record-nav .mo::after { | ||||||
| 		content: ""; | 		content: ""; | ||||||
|  | 		display: block; | ||||||
| 		width: 100%; | 		width: 100%; | ||||||
| 		height: 2rpx; | 		height: 4rpx; | ||||||
| 		position: absolute; | 		position: absolute; | ||||||
| 		background-color: #00B1FF; | 		/* #ifdef APP-PLUS || MP-WEIXIN */ | ||||||
|  | 		top: 68rpx; | ||||||
|  | 		/* #endif */ | ||||||
|  | 		/* #ifdef H5 */ | ||||||
| 		top: 65rpx; | 		top: 65rpx; | ||||||
|  | 		/* #endif */ | ||||||
| 		left: 0rpx; | 		left: 0rpx; | ||||||
| 	} | 	} | ||||||
|  | 	.record-nav .on::after{ | ||||||
|  | 		background-color: #00B1FF; | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	.record-content { | 	.record-content { | ||||||
| 		padding: 0 52rpx; | 		padding: 0 52rpx; | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
|             <view class="queryFunction-head-nav"> |             <view class="queryFunction-head-nav"> | ||||||
|                 <view class="li" @click="navIndex(index)" |                 <view class="li" @click="navIndex(index)" | ||||||
|                     :class="[dataIndex==0?'li1':'',dataIndex==1?'li2':'',dataIndex==2?'li3':'' ]" |                     :class="[dataIndex==0?'li1':'',dataIndex==1?'li2':'',dataIndex==2?'li3':'' ]" | ||||||
|                     v-for="(item,index) in dataList"> |                     v-for="(item,index) in dataList" :key="index"> | ||||||
|                     {{item.title}} |                     {{item.title}} | ||||||
|                 </view> |                 </view> | ||||||
|             </view> |             </view> | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
|         <view class="recently-query-title">最近查询</view> |         <view class="recently-query-title">最近查询</view> | ||||||
|         <view class="recently-query-content" v-for="(item,index) in recentlyQuery "> |         <view class="recently-query-content" v-for="(item,index) in recentlyQuery "> | ||||||
|             <view class="li" @click="goDetail()"> |             <view class="li" @click="goDetail()"> | ||||||
|                 <image class="icon" src="../../static/iocn/jfd.png" mode=""></image> |                 <image class="icon" src="../../static/iocn/jfd.png" mode="widthFix"></image> | ||||||
|                 <view class="text-content"> |                 <view class="text-content"> | ||||||
|                     <view class="title clips1">{{item.name}}</view> |                     <view class="title clips1">{{item.name}}</view> | ||||||
|                     <view class="text">编号:{{item.code}}</view> |                     <view class="text">编号:{{item.code}}</view> | ||||||
|  | @ -347,6 +347,7 @@ | ||||||
|         width: 37rpx; |         width: 37rpx; | ||||||
|         height: 37rpx; |         height: 37rpx; | ||||||
|         margin-right: 40rpx; |         margin-right: 40rpx; | ||||||
|  | 		margin-top: 8rpx; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     .recently-query-content .li .text-content { |     .recently-query-content .li .text-content { | ||||||
|  |  | ||||||
|  | @ -11,24 +11,23 @@ | ||||||
| 				</view> | 				</view> | ||||||
| 				<view class="settlement-type"> | 				<view class="settlement-type"> | ||||||
| 					<view class="settlement-type-title">结算类型</view> | 					<view class="settlement-type-title">结算类型</view> | ||||||
| 
 |  | ||||||
| 					<view class="settlement-type-content"> | 					<view class="settlement-type-content"> | ||||||
| 						<view class="li liB"> | 						<view class="li liB"> | ||||||
| 							<view class="text">单次收费</view> | 							<view class="text">{{settlementType[0].title}}</view> | ||||||
| 							<view class="num">20</view> | 							<view class="num">{{settlementType[0].num}}</view> | ||||||
| 						</view> | 						</view> | ||||||
| 
 | 
 | ||||||
| 						<view class="li liC"> | 						<view class="li liC"> | ||||||
| 							<view class="text">验收扫尾</view> | 							<view class="text">{{settlementType[2].title}}</view> | ||||||
| 							<view class="num">3</view> | 							<view class="num">{{settlementType[2].num}}</view> | ||||||
| 						</view> | 						</view> | ||||||
| 						<view class="li liD"> | 						<view class="li liD"> | ||||||
| 							<view class="text">质保免费</view> | 							<view class="text">{{settlementType[1].title}}</view> | ||||||
| 							<view class="num">46</view> | 							<view class="num">{{settlementType[1].num}}</view> | ||||||
| 						</view> | 						</view> | ||||||
| 						<view class="li"> | 						<view class="li"> | ||||||
| 							<view class="text">包年签单</view> | 							<view class="text">{{settlementType[3].title}}</view> | ||||||
| 							<view class="num">10</view> | 							<view class="num">{{settlementType[3].num}}</view> | ||||||
| 						</view> | 						</view> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
|  | @ -41,59 +40,16 @@ | ||||||
| 				<view class="brand-analysis"> | 				<view class="brand-analysis"> | ||||||
| 					<view class="settlement-type-title">品牌分析</view> | 					<view class="settlement-type-title">品牌分析</view> | ||||||
| 					<view class="brand-analysis-box"> | 					<view class="brand-analysis-box"> | ||||||
| 						<view class="li"> | 						<view class="li" v-for="(item,index) in brandAnalysis" :key="index"> | ||||||
| 							<view class="serial-number">1</view> | 							<view class="serial-number">{{item.id}}</view> | ||||||
| 							<view class="brand-analysis-center"> | 							<view class="brand-analysis-center"> | ||||||
| 								<view class="title-box"> | 								<view class="title-box"> | ||||||
| 									<view class="title">海康威视</view> | 									<view class="title">{{item.name}}</view> | ||||||
| 									<view class="cor">10</view> | 									<view class="cor" v-if="item.project_count">{{item.project_count}}</view> | ||||||
| 									<view class="cor1">23.3%</view> | 									<view class="cor1">{{item.proportion}}%</view> | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="percentage"> | 								<view class="percentage"> | ||||||
| 									<view class="percentage-box" :style="{width:getPercentage(33,900)}"></view> | 									<view class="percentage-box" :class="index%2!=0 ? 'percentage-box-ber' : ''" :style="{width:getPercentage(item.proportion,100)}"></view> | ||||||
| 								</view> |  | ||||||
| 							</view> |  | ||||||
| 							<image class="icon" src="../../static/iocn/xl.png" mode=""></image> |  | ||||||
| 						</view> |  | ||||||
| 						<view class="li"> |  | ||||||
| 							<view class="serial-number">2</view> |  | ||||||
| 							<view class="brand-analysis-center"> |  | ||||||
| 								<view class="title-box"> |  | ||||||
| 									<view class="title">海康威视</view> |  | ||||||
| 									<view class="cor">10</view> |  | ||||||
| 									<view class="cor1">23.3%</view> |  | ||||||
| 								</view> |  | ||||||
| 								<view class="percentage"> |  | ||||||
| 									<view class="percentage-box" :style="{width:getPercentage(33,900)}"></view> |  | ||||||
| 								</view> |  | ||||||
| 							</view> |  | ||||||
| 							<image class="icon" src="../../static/iocn/xl.png" mode=""></image> |  | ||||||
| 						</view> |  | ||||||
| 						<view class="li"> |  | ||||||
| 							<view class="serial-number">3</view> |  | ||||||
| 							<view class="brand-analysis-center"> |  | ||||||
| 								<view class="title-box"> |  | ||||||
| 									<view class="title">海康威视</view> |  | ||||||
| 									<view class="cor">10</view> |  | ||||||
| 									<view class="cor1">23.3%</view> |  | ||||||
| 								</view> |  | ||||||
| 								<view class="percentage"> |  | ||||||
| 									<view class="percentage-box" :style="{width:getPercentage(33,100)}"></view> |  | ||||||
| 								</view> |  | ||||||
| 							</view> |  | ||||||
| 							<image class="icon" src="../../static/iocn/xl.png" mode=""></image> |  | ||||||
| 						</view> |  | ||||||
| 						<view class="li"> |  | ||||||
| 							<view class="serial-number">4</view> |  | ||||||
| 							<view class="brand-analysis-center"> |  | ||||||
| 								<view class="title-box"> |  | ||||||
| 									<view class="title">海康威视</view> |  | ||||||
| 									<view class="cor">10</view> |  | ||||||
| 									<view class="cor1">23.3%</view> |  | ||||||
| 								</view> |  | ||||||
| 								<view class="percentage"> |  | ||||||
| 									<view class="percentage-box percentage-box-ber" |  | ||||||
| 										:style="{width:getPercentage(33,80)}"></view> |  | ||||||
| 								</view> | 								</view> | ||||||
| 							</view> | 							</view> | ||||||
| 							<image class="icon" src="../../static/iocn/xl.png" mode=""></image> | 							<image class="icon" src="../../static/iocn/xl.png" mode=""></image> | ||||||
|  | @ -135,54 +91,86 @@ | ||||||
| 						title: "本月", | 						title: "本月", | ||||||
| 					}, | 					}, | ||||||
| 				], | 				], | ||||||
| 
 | 				// 结算类型 | ||||||
| 
 | 				settlementType: [ | ||||||
|  | 					{title:'单次收费',num:0}, | ||||||
|  | 					{title:'验收扫尾',num:0}, | ||||||
|  | 					{title:'质保免费',num:0}, | ||||||
|  | 					{title:'包年签单',num:0}, | ||||||
|  | 				], | ||||||
|  | 				// 维保类型 | ||||||
| 				chartData: { | 				chartData: { | ||||||
| 					series: [{ | 					series: [{ | ||||||
| 
 |  | ||||||
| 						format: "tooltipDemo1", | 						format: "tooltipDemo1", | ||||||
| 						data: [{ | 						data: [] | ||||||
| 								name: "网络故障", |  | ||||||
| 								value: 50, |  | ||||||
| 								style: "straight", |  | ||||||
| 								color: "#7F90A4" |  | ||||||
| 							}, |  | ||||||
| 							{ |  | ||||||
| 								name: "模组故障", |  | ||||||
| 								value: 30, |  | ||||||
| 								style: "straight", |  | ||||||
| 								color: "#67E0FF", |  | ||||||
| 								style: "straight", |  | ||||||
| 							}, |  | ||||||
| 							{ |  | ||||||
| 								name: "网络错误", |  | ||||||
| 								value: 20, |  | ||||||
| 								style: "straight", |  | ||||||
| 								color: "#2D8DFE" |  | ||||||
| 							}, |  | ||||||
| 							{ |  | ||||||
| 								name: "信息错误", |  | ||||||
| 								value: 18, |  | ||||||
| 								color: "#44D2C1", |  | ||||||
| 								style: "straight", |  | ||||||
| 							}, |  | ||||||
| 							{ |  | ||||||
| 								name: "供电不足", |  | ||||||
| 								value: 8, |  | ||||||
| 								style: "straight", |  | ||||||
| 								color: "#F47936" |  | ||||||
| 							} |  | ||||||
| 						] |  | ||||||
| 					}] | 					}] | ||||||
| 				}, | 				}, | ||||||
|  | 				// 品牌分析 | ||||||
|  | 				brandAnalysis:[], | ||||||
|  | 				timestr:'all' | ||||||
|  | 				 | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		onLoad() { | 		onLoad() { | ||||||
| 			console.log(this.getPercentage(33, 66)) | 			// console.log(this.getPercentage(33, 66)) | ||||||
|  | 			this.checkTJ(); | ||||||
| 		}, | 		}, | ||||||
| 		methods: { | 		methods: { | ||||||
|  | 			// 查询维保统计 | ||||||
|  | 			checkTJ() { | ||||||
|  | 				this.$requst.get('/universal/api.statistics/statistics_fault',{time:this.timestr}).then(res=>{ | ||||||
|  | 					if(res.code) { | ||||||
|  | 						this.settlementType = []; | ||||||
|  | 						// 结算类型 | ||||||
|  | 						for (let key in res.data.settlement_type) { | ||||||
|  | 							let obj = { | ||||||
|  | 								title: key, | ||||||
|  | 								num: res.data.settlement_type[key], | ||||||
|  | 							} | ||||||
|  | 							this.settlementType.push(obj) | ||||||
|  | 						} | ||||||
|  | 						// 维保类型 | ||||||
|  | 						let fault_type = []; | ||||||
|  | 						for (let key in res.data.fault_type) { | ||||||
|  | 							let obj = { | ||||||
|  | 								name: key, | ||||||
|  | 								value: parseFloat(res.data.fault_type[key]), | ||||||
|  | 								style: "straight", | ||||||
|  | 								color: "" | ||||||
|  | 							} | ||||||
|  | 							fault_type.push(obj) | ||||||
|  | 						} | ||||||
|  | 						this.chartData.series[0].data = fault_type; | ||||||
|  | 						this.chartData.series[0].data[0].color = '#56ddff'; | ||||||
|  | 						this.chartData.series[0].data[1].color = '#2d8dfe'; | ||||||
|  | 						this.chartData.series[0].data[2].color = '#7f90a4'; | ||||||
|  | 						this.chartData.series[0].data[3].color = '#44d2c1'; | ||||||
|  | 						this.chartData.series[0].data[4].color = '#2d8dfe'; | ||||||
|  | 						// 品牌分析 | ||||||
|  | 						this.brandAnalysis = res.data.brand_analyze; | ||||||
|  | 					} | ||||||
|  | 				}) | ||||||
|  | 			}, | ||||||
| 			navlistIndexFun(index) { | 			navlistIndexFun(index) { | ||||||
| 				this.navlistIndex = index | 				this.navlistIndex = index; | ||||||
|  | 				switch (index){ | ||||||
|  | 					case 0: | ||||||
|  | 					this.timestr = 'all'; | ||||||
|  | 						break; | ||||||
|  | 					case 1: | ||||||
|  | 					this.timestr = 'all'; | ||||||
|  | 						break; | ||||||
|  | 					case 2: | ||||||
|  | 					this.timestr = 'yesterday'; | ||||||
|  | 						break; | ||||||
|  | 					case 3: | ||||||
|  | 					this.timestr = 'week'; | ||||||
|  | 						break; | ||||||
|  | 					case 4: | ||||||
|  | 					this.timestr = 'month'; | ||||||
|  | 						break; | ||||||
|  | 				} | ||||||
|  | 				this.checkTJ(); | ||||||
| 			}, | 			}, | ||||||
| 			getPercentage(num, max) { | 			getPercentage(num, max) { | ||||||
| 				return Math.ceil(((num - 0) / (max - 0)) * 100) + "%" | 				return Math.ceil(((num - 0) / (max - 0)) * 100) + "%" | ||||||
|  |  | ||||||
|  | @ -4,314 +4,165 @@ | ||||||
| 		<container-subgroup-two> | 		<container-subgroup-two> | ||||||
| 			<view slot="content" style="margin: 0 -30rpx;"> | 			<view slot="content" style="margin: 0 -30rpx;"> | ||||||
| 				<view class="project-overview"> | 				<view class="project-overview"> | ||||||
|                             <view class="settlement-type-title"> | 					<view class="settlement-type-title">项目概况</view> | ||||||
|                                 项目概况 |  | ||||||
|                             </view> |  | ||||||
| 					<view class="project-gross"> | 					<view class="project-gross"> | ||||||
|                                 <view class="project-gross-title"> | 						<view class="project-gross-title">累计总项目量</view> | ||||||
|                                     累计总项目量 |  | ||||||
|                                 </view> |  | ||||||
| 						<view class="project-gross-num"> | 						<view class="project-gross-num"> | ||||||
|                                     <view class="li"> | 							<view class="li">0</view> | ||||||
|                                         0 | 							<view class="li">2</view> | ||||||
|  | 							<view class="li">9</view> | ||||||
|  | 							<view class="li">8</view> | ||||||
|  | 							<view class="li">5</view> | ||||||
| 						</view> | 						</view> | ||||||
|                                     <view class="li"> |  | ||||||
|                                         2 |  | ||||||
|                                     </view> |  | ||||||
|                                     <view class="li"> |  | ||||||
|                                         9 |  | ||||||
|                                     </view> |  | ||||||
|                                     <view class="li"> |  | ||||||
|                                         8 |  | ||||||
|                                     </view> |  | ||||||
|                                     <view class="li"> |  | ||||||
|                                         5 |  | ||||||
|                                     </view> |  | ||||||
|                                 </view> |  | ||||||
|                      |  | ||||||
| 						<view class="project-gross-box"> | 						<view class="project-gross-box"> | ||||||
| 							<view class="li"> | 							<view class="li"> | ||||||
|                                         <view class="date"> | 								<view class="date">今日</view> | ||||||
|                                             今日 |  | ||||||
|                                         </view> |  | ||||||
|                      |  | ||||||
| 								<view class="date-con"> | 								<view class="date-con"> | ||||||
| 									<view class="date-con-li"> | 									<view class="date-con-li"> | ||||||
|                                                 <view class="text"> | 										<view class="text">新增项目量</view> | ||||||
|                                                     新增项目量 | 										<view class="single-amount">0单</view> | ||||||
|                                                 </view> |  | ||||||
|                                                 <view class="single-amount"> |  | ||||||
|                                                     0单 |  | ||||||
|                                                 </view> |  | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="date-con-li"> | 									<view class="date-con-li"> | ||||||
|                                                 <view class="text"> | 										<view class="text">新增工单量</view> | ||||||
|                                                     新增工单量 | 										<view class="single-amount">0单</view> | ||||||
|                                                 </view> |  | ||||||
|                                                 <view class="single-amount"> |  | ||||||
|                                                     0单 |  | ||||||
|                                                 </view> |  | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="date-con-li"> | 									<view class="date-con-li"> | ||||||
|                                                 <view class="text"> | 										<view class="text">项目维保率</view> | ||||||
|                                                     项目维保率 | 										<view class="single-amount">0单</view> | ||||||
|                                                 </view> |  | ||||||
|                                                 <view class="single-amount"> |  | ||||||
|                                                     0单 |  | ||||||
| 									</view> | 									</view> | ||||||
| 								</view> | 								</view> | ||||||
| 							</view> | 							</view> | ||||||
|                                     </view> |  | ||||||
|                      |  | ||||||
| 							<view class="li"> | 							<view class="li"> | ||||||
|                                         <view class="date"> | 								<view class="date">本周</view> | ||||||
|                                             本周 |  | ||||||
|                                         </view> |  | ||||||
|                      |  | ||||||
| 								<view class="date-con"> | 								<view class="date-con"> | ||||||
| 									<view class="date-con-li"> | 									<view class="date-con-li"> | ||||||
|                                                 <view class="text"> | 										<view class="text">新增项目量</view> | ||||||
|                                                     新增项目量 | 										<view class="single-amount">0单</view> | ||||||
|                                                 </view> |  | ||||||
|                                                 <view class="single-amount"> |  | ||||||
|                                                     0单 |  | ||||||
|                                                 </view> |  | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="date-con-li"> | 									<view class="date-con-li"> | ||||||
|                                                 <view class="text"> | 										<view class="text">新增工单量</view> | ||||||
|                                                     新增工单量 | 										<view class="single-amount">0单</view> | ||||||
|                                                 </view> |  | ||||||
|                                                 <view class="single-amount"> |  | ||||||
|                                                     0单 |  | ||||||
|                                                 </view> |  | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="date-con-li"> | 									<view class="date-con-li"> | ||||||
|                                                 <view class="text"> | 										<view class="text">项目维保率</view> | ||||||
|                                                     项目维保率 | 										<view class="single-amount">0单</view> | ||||||
|                                                 </view> |  | ||||||
|                                                 <view class="single-amount"> |  | ||||||
|                                                     0单 |  | ||||||
| 									</view> | 									</view> | ||||||
| 								</view> | 								</view> | ||||||
| 							</view> | 							</view> | ||||||
|                                     </view> |  | ||||||
|                      |  | ||||||
| 							<view class="li"> | 							<view class="li"> | ||||||
|                                         <view class="date"> | 								<view class="date">本月</view> | ||||||
|                                             本月 |  | ||||||
|                                         </view> |  | ||||||
|                      |  | ||||||
| 								<view class="date-con"> | 								<view class="date-con"> | ||||||
| 									<view class="date-con-li"> | 									<view class="date-con-li"> | ||||||
|                                                 <view class="text"> | 										<view class="text">新增项目量</view> | ||||||
|                                                     新增项目量 | 										<view class="single-amount">0单</view> | ||||||
|                                                 </view> |  | ||||||
|                                                 <view class="single-amount"> |  | ||||||
|                                                     0单 |  | ||||||
|                                                 </view> |  | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="date-con-li"> | 									<view class="date-con-li"> | ||||||
|                                                 <view class="text"> | 										<view class="text">新增工单量</view> | ||||||
|                                                     新增工单量 | 										<view class="single-amount">0单</view> | ||||||
|                                                 </view> |  | ||||||
|                                                 <view class="single-amount"> |  | ||||||
|                                                     0单 |  | ||||||
|                                                 </view> |  | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="date-con-li"> | 									<view class="date-con-li"> | ||||||
|                                                 <view class="text"> | 										<view class="text">项目维保率</view> | ||||||
|                                                     项目维保率 | 										<view class="single-amount">0单</view> | ||||||
|                                                 </view> |  | ||||||
|                                                 <view class="single-amount"> |  | ||||||
|                                                     0单 |  | ||||||
| 									</view> | 									</view> | ||||||
| 								</view> | 								</view> | ||||||
| 							</view> | 							</view> | ||||||
| 						</view> | 						</view> | ||||||
|                      |  | ||||||
|                                 </view> |  | ||||||
|                      |  | ||||||
|                      |  | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
|                      |  | ||||||
| 				<view class="data-icon"> | 				<view class="data-icon"> | ||||||
|                             <view class="settlement-type-title"> | 					<view class="settlement-type-title">年度项目数据明细</view> | ||||||
|                                 年度项目数据明细 |  | ||||||
|                             </view> |  | ||||||
| 					<view class=""> | 					<view class=""> | ||||||
| 						<view class="charts-box"> | 						<view class="charts-box"> | ||||||
| 							<qiun-data-charts type="mix" :chartData="chartData" background="none" /> | 							<qiun-data-charts type="mix" :chartData="chartData" background="none" /> | ||||||
| 						</view> | 						</view> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
|                      |  | ||||||
|                      |  | ||||||
| 				<view class="serve-data"> | 				<view class="serve-data"> | ||||||
|                             <view class="settlement-type-title"> | 					<view class="settlement-type-title">服务数据</view> | ||||||
|                                 服务数据 |  | ||||||
|                             </view> |  | ||||||
| 					<view class="serve-data-box"> | 					<view class="serve-data-box"> | ||||||
| 						<view class="serve-data-left"> | 						<view class="serve-data-left"> | ||||||
|                                     <view class="title"> | 							<view class="title">本月服务量</view> | ||||||
|                                         本月服务量 |  | ||||||
|                                     </view> |  | ||||||
| 							<view class="text-con"> | 							<view class="text-con"> | ||||||
| 								<view class="li"> | 								<view class="li"> | ||||||
|                                             <view class="text"> | 									<view class="text">维保工单:</view> | ||||||
|                                                 维保工单: | 									<view class="num">3</view> | ||||||
|                                             </view> |  | ||||||
|                                             <view class="num"> |  | ||||||
|                                                 3 |  | ||||||
|                                             </view> |  | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="li"> | 								<view class="li"> | ||||||
|                                             <view class="text"> | 									<view class="text">巡检服务单:</view> | ||||||
|                                                 巡检服务单: | 									<view class="num">65465</view> | ||||||
|                                             </view> |  | ||||||
|                                             <view class="num"> |  | ||||||
|                                                 65465 |  | ||||||
|                                             </view> |  | ||||||
|                      |  | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="li"> | 								<view class="li"> | ||||||
|                                             <view class="text"> | 									<view class="text">移屏服务单:</view> | ||||||
|                                                 移屏服务单: | 									<view class="num">32132</view> | ||||||
|                                             </view> |  | ||||||
|                                             <view class="num"> |  | ||||||
|                                                 32132 |  | ||||||
|                                             </view> |  | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="li"> | 								<view class="li"> | ||||||
|                                             <view class="text"> | 									<view class="text">拆屏工单:</view> | ||||||
|                                                 拆屏工单: | 									<view class="num">32132</view> | ||||||
|                                             </view> |  | ||||||
|                                             <view class="num"> |  | ||||||
|                                                 32132 |  | ||||||
|                                             </view> |  | ||||||
| 								</view> | 								</view> | ||||||
| 							</view> | 							</view> | ||||||
| 						</view> | 						</view> | ||||||
| 						<view class="serve-data-left"> | 						<view class="serve-data-left"> | ||||||
|                                     <view class="title"> | 							<view class="title">累计服务量</view> | ||||||
|                                         累计服务量 |  | ||||||
|                                     </view> |  | ||||||
| 							<view class="text-con"> | 							<view class="text-con"> | ||||||
| 								<view class="li"> | 								<view class="li"> | ||||||
|                                             <view class="text"> | 									<view class="text">维保工单:</view> | ||||||
|                                                 维保工单: | 									<view class="num">3</view> | ||||||
|                                             </view> |  | ||||||
|                                             <view class="num"> |  | ||||||
|                                                 3 |  | ||||||
|                                             </view> |  | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="li"> | 								<view class="li"> | ||||||
|                                             <view class="text"> | 									<view class="text">巡检服务单:</view> | ||||||
|                                                 巡检服务单: | 									<view class="num">65465</view> | ||||||
|                                             </view> |  | ||||||
|                                             <view class="num"> |  | ||||||
|                                                 65465 |  | ||||||
|                                             </view> |  | ||||||
|                      |  | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="li"> | 								<view class="li"> | ||||||
|                                             <view class="text"> | 									<view class="text">移屏服务单:</view> | ||||||
|                                                 移屏服务单: | 									<view class="num">32132</view> | ||||||
|                                             </view> |  | ||||||
|                                             <view class="num"> |  | ||||||
|                                                 32132 |  | ||||||
|                                             </view> |  | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="li"> | 								<view class="li"> | ||||||
|                                             <view class="text"> | 									<view class="text">拆屏工单:</view> | ||||||
|                                                 拆屏工单: | 									<view class="num">32132</view> | ||||||
|                                             </view> |  | ||||||
|                                             <view class="num"> |  | ||||||
|                                                 32132 |  | ||||||
| 								</view> | 								</view> | ||||||
| 							</view> | 							</view> | ||||||
| 						</view> | 						</view> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
|                         </view> |  | ||||||
|                      |  | ||||||
| 				<view class="data-icon"> | 				<view class="data-icon"> | ||||||
|                             <view class="settlement-type-title"> | 					<view class="settlement-type-title">年度服务数据汇总</view> | ||||||
|                                 年度服务数据汇总 |  | ||||||
|                             </view> |  | ||||||
| 					<view class=""> | 					<view class=""> | ||||||
| 						<view class="charts-box"> | 						<view class="charts-box"> | ||||||
| 							<qiun-data-charts type="mix" :chartData="chartDataA" background="none" /> | 							<qiun-data-charts type="mix" :chartData="chartDataA" background="none" /> | ||||||
| 						</view> | 						</view> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
|                          |  | ||||||
| 				<view class="expire-project"> | 				<view class="expire-project"> | ||||||
|                             <view class="settlement-type-title settlement-type-titlea"> | 					<view class="settlement-type-title settlement-type-titlea">质保即将到期项目</view> | ||||||
|                                质保即将到期项目 |  | ||||||
|                             </view> |  | ||||||
|                              |  | ||||||
| 					<view class="expire-project-box"> | 					<view class="expire-project-box"> | ||||||
| 						<view class="li-title li"> | 						<view class="li-title li"> | ||||||
|                                    <view class="name"> | 							<view class="name">项目名称</view> | ||||||
|                                        项目名称 | 							<view class="work-order">工单</view> | ||||||
|                                    </view>  | 							<view class="date">日期</view> | ||||||
|                                    <view class="work-order"> |  | ||||||
|                                        工单 |  | ||||||
|                                    </view>  |  | ||||||
|                                    <view class="date"> |  | ||||||
|                                     日期 |  | ||||||
|                                    </view>  |  | ||||||
|                                 </view> |  | ||||||
|                                  |  | ||||||
|                                 <view class="li-text li"> |  | ||||||
|                                     <view class="name"> |  | ||||||
|                                        1.五岭新天地二期停车场xxxxxxxxxxxxx |  | ||||||
|                                     </view>  |  | ||||||
|                                     <view class="work-order"> |  | ||||||
|                                         6 |  | ||||||
|                                     </view>  |  | ||||||
|                                     <view class="date"> |  | ||||||
|                                      22/2/24 |  | ||||||
|                                     </view>  |  | ||||||
| 						</view> | 						</view> | ||||||
| 						<view class="li-text li"> | 						<view class="li-text li"> | ||||||
|                                     <view class="name"> | 							<view class="name">1.五岭新天地二期停车场xxxxxxxxxxxxx</view> | ||||||
|                                        1.五岭新天地二期停车场xxxxxxxxxxxxx | 							<view class="work-order">6</view> | ||||||
|                                     </view>  | 							<view class="date">22/2/24</view> | ||||||
|                                     <view class="work-order"> |  | ||||||
|                                         6 |  | ||||||
|                                     </view>  |  | ||||||
|                                     <view class="date"> |  | ||||||
|                                      22/2/24 |  | ||||||
|                                     </view>  |  | ||||||
| 						</view> | 						</view> | ||||||
| 						<view class="li-text li"> | 						<view class="li-text li"> | ||||||
|                                     <view class="name"> | 							<view class="name">1.五岭新天地二期停车场xxxxxxxxxxxxx</view> | ||||||
|                                        1.五岭新天地二期停车场xxxxxxxxxxxxx | 							<view class="work-order">6</view> | ||||||
|                                     </view>  | 							<view class="date">22/2/24</view> | ||||||
|                                     <view class="work-order"> |  | ||||||
|                                         6 |  | ||||||
|                                     </view>  |  | ||||||
|                                     <view class="date"> |  | ||||||
|                                      22/2/24 |  | ||||||
|                                     </view>  |  | ||||||
| 						</view> | 						</view> | ||||||
| 						<view class="li-text li"> | 						<view class="li-text li"> | ||||||
|                                     <view class="name"> | 							<view class="name">1.五岭新天地二期停车场xxxxxxxxxxxxx</view> | ||||||
|                                        1.五岭新天地二期停车场xxxxxxxxxxxxx | 							<view class="work-order">6</view> | ||||||
|  | 							<view class="date">22/2/24</view> | ||||||
| 						</view> | 						</view> | ||||||
|                                     <view class="work-order"> | 						<view class="li-text li"> | ||||||
|                                         6 | 							<view class="name">1.五岭新天地二期停车场xxxxxxxxxxxxx</view> | ||||||
|                                     </view>  | 							<view class="work-order">6</view> | ||||||
|                                     <view class="date"> | 							<view class="date">22/2/24</view> | ||||||
|                                      22/2/24 |  | ||||||
| 						</view> | 						</view> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
| 			</view> | 			</view> | ||||||
|                      |  | ||||||
|                 </view> |  | ||||||
| 		</container-subgroup-two> | 		</container-subgroup-two> | ||||||
| 	</view> | 	</view> | ||||||
| </template> | </template> | ||||||
|  | @ -327,59 +178,25 @@ | ||||||
| 		data() { | 		data() { | ||||||
| 			return { | 			return { | ||||||
| 				chartDataA: { | 				chartDataA: { | ||||||
|                     categories: [ | 					categories: ["1月","2月","3月","4月","5月","6月"], | ||||||
|                         "1月", |  | ||||||
|                         "2月", |  | ||||||
|                         "3月", |  | ||||||
|                         "4月", |  | ||||||
|                         "5月", |  | ||||||
|                         "6月" |  | ||||||
|                     ], |  | ||||||
| 					series: [ | 					series: [ | ||||||
| 
 |  | ||||||
| 						{ | 						{ | ||||||
| 							name: "", | 							name: "", | ||||||
| 							index: 1, | 							index: 1, | ||||||
|                             data: [ | 							data: [40,30,55,110,24,58], | ||||||
|                                 40, |  | ||||||
|                                 { |  | ||||||
|                                     value: 30, |  | ||||||
| 
 |  | ||||||
|                                 }, |  | ||||||
|                                 55, |  | ||||||
|                                 110, |  | ||||||
|                                 24, |  | ||||||
|                                 58 |  | ||||||
|                             ], |  | ||||||
| 							type: "column", | 							type: "column", | ||||||
| 							"color": "#308de1" | 							"color": "#308de1" | ||||||
| 						}, | 						}, | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 						{ | 						{ | ||||||
| 							"name": "", | 							"name": "", | ||||||
|                             "data": [ | 							"data": [40,30,55,110,24,58], | ||||||
|                                 40, |  | ||||||
|                                 30, |  | ||||||
|                                 55, |  | ||||||
|                                 110, |  | ||||||
|                                 24, |  | ||||||
|                                 58 |  | ||||||
|                             ], |  | ||||||
| 							"type": "line", | 							"type": "line", | ||||||
| 							"color": "#308de1" | 							"color": "#308de1" | ||||||
| 						}, | 						}, | ||||||
| 						{ | 						{ | ||||||
| 							"name": "", | 							"name": "", | ||||||
| 							"index": 2, | 							"index": 2, | ||||||
|                             "data": [ | 							"data": [40,30,55,110,24,58], | ||||||
|                                 40, |  | ||||||
|                                 30, |  | ||||||
|                                 55, |  | ||||||
|                                 110, |  | ||||||
|                                 24, |  | ||||||
|                                 58 |  | ||||||
|                             ], |  | ||||||
| 							"type": "point", | 							"type": "point", | ||||||
| 							"color": "#308de1" | 							"color": "#308de1" | ||||||
| 						} | 						} | ||||||
|  | @ -387,80 +204,57 @@ | ||||||
| 					] | 					] | ||||||
| 				}, | 				}, | ||||||
| 				chartData: { | 				chartData: { | ||||||
|                     categories: [ | 					categories: ["1月","2月","3月","4月","5月","6月"], | ||||||
|                         "1月", |  | ||||||
|                         "2月", |  | ||||||
|                         "3月", |  | ||||||
|                         "4月", |  | ||||||
|                         "5月", |  | ||||||
|                         "6月" |  | ||||||
|                     ], |  | ||||||
| 					series: [ | 					series: [ | ||||||
| 
 |  | ||||||
| 						{ | 						{ | ||||||
| 							name: "", | 							name: "", | ||||||
| 							index: 1, | 							index: 1, | ||||||
|                             data: [ | 							data: [40,30,55,110,24,58], | ||||||
|                                 40, |  | ||||||
|                                 { |  | ||||||
|                                     value: 30, |  | ||||||
| 
 |  | ||||||
|                                 }, |  | ||||||
|                                 55, |  | ||||||
|                                 110, |  | ||||||
|                                 24, |  | ||||||
|                                 58 |  | ||||||
|                             ], |  | ||||||
| 							type: "column", | 							type: "column", | ||||||
| 							"color": "#fe4141" | 							"color": "#fe4141" | ||||||
| 						}, | 						}, | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 						{ | 						{ | ||||||
| 							"name": "", | 							"name": "", | ||||||
|                             "data": [ | 							"data": [40,30,55,110,24,58], | ||||||
|                                 40, |  | ||||||
|                                 30, |  | ||||||
|                                 55, |  | ||||||
|                                 110, |  | ||||||
|                                 24, |  | ||||||
|                                 58 |  | ||||||
|                             ], |  | ||||||
| 							"type": "line", | 							"type": "line", | ||||||
| 							"color": "#fe4141" | 							"color": "#fe4141" | ||||||
| 						}, | 						}, | ||||||
| 						{ | 						{ | ||||||
| 							"name": "", | 							"name": "", | ||||||
| 							"index": 2, | 							"index": 2, | ||||||
|                             "data": [ | 							"data": [40,30,55,110,24,58], | ||||||
|                                 40, |  | ||||||
|                                 30, |  | ||||||
|                                 55, |  | ||||||
|                                 110, |  | ||||||
|                                 24, |  | ||||||
|                                 58 |  | ||||||
|                             ], |  | ||||||
| 							"type": "point", | 							"type": "point", | ||||||
| 							"color": "#fe4141" | 							"color": "#fe4141" | ||||||
| 						} | 						} | ||||||
| 
 |  | ||||||
| 					] | 					] | ||||||
| 				}, | 				}, | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
|  | 		onLoad() { | ||||||
|  | 			this.checkSJ(); | ||||||
|  | 		}, | ||||||
| 		methods: { | 		methods: { | ||||||
|  | 			// 查询数据看板数据 | ||||||
|  | 			checkSJ() { | ||||||
|  | 				this.$requst.get('/universal/api.statistics/data_kanban').then(res=>{ | ||||||
|  | 					if(res.code) { | ||||||
| 						 | 						 | ||||||
| 					} | 					} | ||||||
|  | 				}) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style> | <style> | ||||||
| 	.content { | 	.content { | ||||||
|         padding:0rpx 10rpx; | 		padding: 0rpx 10rpx; | ||||||
| 	} | 	} | ||||||
| .charts-box{ | 
 | ||||||
|  | 	.charts-box { | ||||||
| 		width: 100%; | 		width: 100%; | ||||||
| } | 	} | ||||||
|  | 
 | ||||||
| 	.settlement-type-title { | 	.settlement-type-title { | ||||||
| 		font-size: 32rpx; | 		font-size: 32rpx; | ||||||
| 		color: #2c2c2c; | 		color: #2c2c2c; | ||||||
|  | @ -642,7 +436,8 @@ | ||||||
| 	.serve-data-box .serve-data-left:nth-child(2) { | 	.serve-data-box .serve-data-left:nth-child(2) { | ||||||
| 		padding-left: 32rpx; | 		padding-left: 32rpx; | ||||||
| 	} | 	} | ||||||
|     .expire-project{ | 
 | ||||||
|  | 	.expire-project { | ||||||
| 		padding: 26rpx 24rpx; | 		padding: 26rpx 24rpx; | ||||||
| 		margin-top: 27rpx; | 		margin-top: 27rpx; | ||||||
| 		box-shadow: 0rpx 10rpx 20rpx rgba(0, 0, 0, 0.1); | 		box-shadow: 0rpx 10rpx 20rpx rgba(0, 0, 0, 0.1); | ||||||
|  | @ -659,29 +454,35 @@ | ||||||
| 		border-radius: 50rpx; | 		border-radius: 50rpx; | ||||||
| 		background: linear-gradient(#2ed5b6, #2fd9cf) | 		background: linear-gradient(#2ed5b6, #2fd9cf) | ||||||
| 	} | 	} | ||||||
|     .expire-project-box .li-title{ | 
 | ||||||
|  | 	.expire-project-box .li-title { | ||||||
| 		display: flex; | 		display: flex; | ||||||
| width: 100%; | 		width: 100%; | ||||||
| font-size: 28rpx; | 		font-size: 28rpx; | ||||||
| color: #a2a2a2; | 		color: #a2a2a2; | ||||||
| margin-top: 20rpx; | 		margin-top: 20rpx; | ||||||
| 	} | 	} | ||||||
|     .expire-project-box .li-title .name{ | 
 | ||||||
|  | 	.expire-project-box .li-title .name { | ||||||
| 		padding-left: 80rpx; | 		padding-left: 80rpx; | ||||||
| 		box-sizing: border-box; | 		box-sizing: border-box; | ||||||
| 	} | 	} | ||||||
|     .expire-project-box .li .name{ | 
 | ||||||
|  | 	.expire-project-box .li .name { | ||||||
| 		width: 455rpx; | 		width: 455rpx; | ||||||
| 	} | 	} | ||||||
|     .expire-project-box .li .work-order{ | 
 | ||||||
|  | 	.expire-project-box .li .work-order { | ||||||
| 		width: 80rpx; | 		width: 80rpx; | ||||||
| 		text-align: center; | 		text-align: center; | ||||||
| 	} | 	} | ||||||
|     .expire-project-box .li .date{ | 
 | ||||||
|  | 	.expire-project-box .li .date { | ||||||
| 		flex: 1; | 		flex: 1; | ||||||
| 		text-align: center; | 		text-align: center; | ||||||
| 	} | 	} | ||||||
|      .expire-project-box .li-text{ | 
 | ||||||
|  | 	.expire-project-box .li-text { | ||||||
| 		display: flex; | 		display: flex; | ||||||
| 		padding: 17rpx 0rpx; | 		padding: 17rpx 0rpx; | ||||||
| 		font-size: 24rpx; | 		font-size: 24rpx; | ||||||
|  | @ -689,10 +490,11 @@ margin-top: 20rpx; | ||||||
| 		color: #27cdc9; | 		color: #27cdc9; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|        .expire-project-box .li-text .name{ | 	.expire-project-box .li-text .name { | ||||||
| 		color: #333333; | 		color: #333333; | ||||||
| 	} | 	} | ||||||
|      .expire-project-box .li-text:last-child{ | 
 | ||||||
|  | 	.expire-project-box .li-text:last-child { | ||||||
| 		border: none; | 		border: none; | ||||||
| 	} | 	} | ||||||
| </style> | </style> | ||||||
|  |  | ||||||
|  | @ -4,53 +4,56 @@ | ||||||
| 		<container-subgroup-two> | 		<container-subgroup-two> | ||||||
| 			<view slot="content" style="margin: -30rpx;"> | 			<view slot="content" style="margin: -30rpx;"> | ||||||
| 				<view class="peopleManagement-input"> | 				<view class="peopleManagement-input"> | ||||||
| 					<input type="text" class="int" value="" placeholder="请输入关键字" placeholder-style="color:#999999;" /> | 					<input type="text" class="int" @confirm="callEv" v-model="keyword" placeholder="请输入关键字" placeholder-style="color:#999999;" /> | ||||||
| 					<image class="search" src="../../static/iocn/ss.png" mode=""></image> | 					<image class="search" @tap="callEv" src="../../static/iocn/ss.png" mode=""></image> | ||||||
| 					<view class="xian"></view> | 					<view class="xian"></view> | ||||||
| 				</view> | 				</view> | ||||||
| 				<view class="peopleManagement-content"> | 				<view class="peopleManagement-content pad-x50"> | ||||||
| 					<view class="li" v-for="(item,index) in dataList"> | 					<view class="li" v-for="(item,index) in dataList"> | ||||||
| 						<view class="head"> | 						<view class="head"> | ||||||
| 							<view class="name" @click="listStateFun(item)"> | 							<view class="name" @click="listStateFun(item)"> | ||||||
| 								<view class="icon" v-if="item.state"></view> | 								<!-- 选中 --> | ||||||
|  | 								<view class="icon" v-if="!item.state"></view> | ||||||
|  | 								<!-- 未选中 --> | ||||||
| 								<image class="iconImg" v-else src="../../static/iocn/pxz.png" mode=""></image> | 								<image class="iconImg" v-else src="../../static/iocn/pxz.png" mode=""></image> | ||||||
| 								<view class=""> | 								<view class=""> | ||||||
| 									{{item.title}}<text class="cor" v-if="item.isJob">(正在作业)</text> | 									{{item.name}}<text :class="item.isJob ? 'cor' : 'cor1'">({{item.isJob ? '正在作业' : '空闲中'}})</text> | ||||||
| 									<text class="cor1" v-else>(空闲中)</text> |  | ||||||
| 								</view> | 								</view> | ||||||
| 							</view> | 							</view> | ||||||
| 							<view class="state">已审核</view> | 							<view class="state">已审核</view> | ||||||
| 						</view> | 						</view> | ||||||
| 						<view class="con"> | 						<view class="con"> | ||||||
| 							<image class="img" src="../../static/del/500478055.png" mode=""></image> | 							<image class="img" :src="item.imgsrc" mode="aspectFill"></image> | ||||||
| 							<view class="text scal09"> | 							<view class="text scal09"> | ||||||
| 								<view class="code"> | 								<view class="code"> | ||||||
| 									<view class="">编号: YG20211207-001</view> | 									<view class="">编号: {{item.number}}</view> | ||||||
| 									<view class="iconCon"> | 									<view class="iconCon"> | ||||||
| 										<view v-for="(item,index) in 5"> | 										<view v-for="(item1,index) in 5"> | ||||||
| 											<image class="icon" v-if="index<=2" src="../../static/iocn/6.png" ></image> | 											<image class="icon" v-if="index < item.rate" src="../../static/iocn/6.png" mode="aspectFill" ></image> | ||||||
| 											<image class="icon" v-else src="../../static/iocn/7.png" ></image> | 											<image class="icon" v-else src="../../static/iocn/7.png" mode="aspectFill" ></image> | ||||||
| 										</view> | 										</view> | ||||||
| 									</view> | 									</view> | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="p"> | 								<view class="p"> | ||||||
| 									<view class="one">待处理:1单 </view> | 									<view class="one">待处理:{{item.num}}单 </view> | ||||||
| 									<view class="">已处理:1305单 </view> | 									<view class="">已处理:{{item.allnum}}单 </view> | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="address">当前定位:湖南省株洲市xxxxxxxx小区1栋202室</view> | 								<view class="address">当前定位:{{item.address}}</view> | ||||||
| 							</view> | 							</view> | ||||||
| 						</view> | 						</view> | ||||||
| 						<view class="bottom"> | 						<view class="bottom"> | ||||||
| 						  <view class="bottom-content"> | 						  <view class="bottom-content"> | ||||||
| 							  联系电话: <text class="cor3">157xxxx8279</text> | 							  联系电话: <text class="cor3">{{$toolAll.tools.hideMPhone(item.phone,'x')}}</text> | ||||||
| 						  </view>   | 						  </view>   | ||||||
| 						  <view class="bottom-content"> | 						  <view class="bottom-content"> | ||||||
| 							  注册时间: <text class="cor3">2018-12-12</text> | 							  注册时间: <text class="cor3">{{item.time}}</text> | ||||||
| 						  </view> | 						  </view> | ||||||
| 						</view> | 						</view> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
| 				<button class="submit-button" type="default">派发工单</button> | 				<pitera v-if="total == dataList.length && dataList.length" textStr="暂无更多人员列表"></pitera> | ||||||
|  | 				<nothing-page v-if="!dataList.length" content="暂无人员状态数据"></nothing-page> | ||||||
|  | 				<button class="submit-button" type="default" :style="{display: tianxuan ? 'flex' : 'none'}">派发工单</button> | ||||||
| 			</view> | 			</view> | ||||||
| 		</container-subgroup-two> | 		</container-subgroup-two> | ||||||
|     </view> |     </view> | ||||||
|  | @ -59,40 +62,80 @@ | ||||||
| <script> | <script> | ||||||
|     import statusNav from '../../components/status-nav.vue'; |     import statusNav from '../../components/status-nav.vue'; | ||||||
| 	import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; | 	import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; | ||||||
|  | 	import pitera from '@/components/nothing/pitera.vue'; | ||||||
|     export default { |     export default { | ||||||
|         components: { |         components: { | ||||||
|             statusNav, |             statusNav, | ||||||
| 			containerSubgroupTwo | 			containerSubgroupTwo, | ||||||
|  | 			pitera | ||||||
|         }, |         }, | ||||||
|         data() { |         data() { | ||||||
|             return { |             return { | ||||||
|                 dataList: [{ |                 dataList: [ | ||||||
|                         title: "陈志远", | 					// {id:'1',name: "陈志远",state: false,isJob: false,imgsrc:'https://s6.jpg.cm/2022/02/14/L4oDhy.jpg',number:'YG20211207-001',rate:5,num:2,allnum:2000,address:'湖南省株洲市xxxxxxxx小区1栋202室',phone:'173xxxx1088',time:'2018-12-12'}, | ||||||
|                         state: true, | 					// {id:'1',name: "陈志远",state: false,isJob: false,imgsrc:'https://s6.jpg.cm/2022/02/14/L4oDhy.jpg',number:'YG20211207-001',rate:3,num:2,allnum:2000,address:'湖南省株洲市xxxxxxxx小区1栋202室',phone:'173xxxx1088',time:'2018-12-12'}, | ||||||
|                         isJob: true, | 					// {id:'1',name: "陈志远",state: false,isJob: false,imgsrc:'https://s6.jpg.cm/2022/02/14/L4oDhy.jpg',number:'YG20211207-001',rate:2,num:2,allnum:2000,address:'湖南省株洲市xxxxxxxx小区1栋202室',phone:'173xxxx1088',time:'2018-12-12'}, | ||||||
| 
 |                 ], | ||||||
|                     }, | 				keyword:'',//关键字 | ||||||
|                     { | 				page:1, | ||||||
|                         title: "瓜皮", | 				list_rows:20, | ||||||
|                         state: false, | 				total:0, | ||||||
|                         isJob: true, | 				tianxuan:'' | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         title: "瓜娃子", |  | ||||||
|                         state: true, |  | ||||||
|                         isJob: false, |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         title: "憨批", |  | ||||||
|                         state: true, |  | ||||||
|                         isJob: false, |  | ||||||
|                     }, |  | ||||||
|                 ] |  | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|  | 		onReachBottom() { | ||||||
|  | 			if(this.total!=this.dataList.length) { | ||||||
|  | 				this.page++; | ||||||
|  | 				this.checkList(); | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 		onLoad() { | ||||||
|  | 			this.checkList(); | ||||||
|  | 		}, | ||||||
|         methods: { |         methods: { | ||||||
|  | 			// 查询人员状态列表 | ||||||
|  | 			checkList() { | ||||||
|  | 				let params = { | ||||||
|  | 					list_rows:this.list_rows, | ||||||
|  | 					page:this.page, | ||||||
|  | 					keyword:this.keyword | ||||||
|  | 				} | ||||||
|  | 				this.$requst.get('/universal/api.user/user_location',params).then(res=>{ | ||||||
|  | 					if(res.code) { | ||||||
|  | 						this.total = res.data.total; | ||||||
|  | 						if(this.page==1) this.dataList = []; | ||||||
|  | 						if(res.data.data.length) { | ||||||
|  | 							res.data.data.forEach(item=>{ | ||||||
|  | 								let obj = { | ||||||
|  | 									id:1, | ||||||
|  | 									name: item.name, | ||||||
|  | 									imgsrc:'https://s6.jpg.cm/2022/02/14/L4oDhy.jpg', | ||||||
|  | 									number:'YG20211207-001', | ||||||
|  | 									rate:5, | ||||||
|  | 									num:2, | ||||||
|  | 									allnum:2000, | ||||||
|  | 									address:item.address, | ||||||
|  | 									phone:'17366921088', | ||||||
|  | 									time:item.register_time, | ||||||
|  | 									state: false, | ||||||
|  | 									isJob: item.is_working ? true : false, | ||||||
|  | 								} | ||||||
|  | 								this.dataList.push(obj); | ||||||
|  | 							}) | ||||||
|  | 						} | ||||||
|  | 					} | ||||||
|  | 				}) | ||||||
|  | 			}, | ||||||
|  | 			// 调用查询事件 | ||||||
|  | 			callEv() { | ||||||
|  | 				this.page = 1; | ||||||
|  | 				this.checkList(); | ||||||
|  | 			}, | ||||||
| 			listStateFun(item){ | 			listStateFun(item){ | ||||||
|          item.state=!item.state | 				this.dataList.forEach(item1=>{item1.state = false}) | ||||||
|  | 				item.state = !item.state; | ||||||
|  | 				item.state ? this.tianxuan = item.id : ''; | ||||||
|  | 				console.log(this.tianxuan); | ||||||
| 			} | 			} | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | @ -100,6 +143,11 @@ | ||||||
| 
 | 
 | ||||||
| <style> | <style> | ||||||
|    .submit-button { |    .submit-button { | ||||||
|  | 		position: fixed; | ||||||
|  | 		display: none; | ||||||
|  | 		bottom: 30rpx; | ||||||
|  | 		left: 50%; | ||||||
|  | 		transform: translateX(-50%); | ||||||
|         width: 686rpx; |         width: 686rpx; | ||||||
|         border-radius: 50rpx; |         border-radius: 50rpx; | ||||||
|         height: 90rpx; |         height: 90rpx; | ||||||
|  | @ -144,7 +192,6 @@ | ||||||
|         top: 50%; |         top: 50%; | ||||||
|         margin-top: -14rpx; |         margin-top: -14rpx; | ||||||
|     } |     } | ||||||
| 
 |  | ||||||
|     .peopleManagement-content .li { |     .peopleManagement-content .li { | ||||||
|         background-color: #FFFFFF; |         background-color: #FFFFFF; | ||||||
|         padding-right: 30rpx; |         padding-right: 30rpx; | ||||||
|  | @ -222,8 +269,8 @@ | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     .peopleManagement-content .li .con .text .icon { |     .peopleManagement-content .li .con .text .icon { | ||||||
|         width: 24rpx; |         width: 28rpx; | ||||||
|         height: 24rpx; |         height: 26rpx; | ||||||
| 		margin-left: 10rpx; | 		margin-left: 10rpx; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -99,7 +99,7 @@ | ||||||
| 			return { | 			return { | ||||||
| 				autoplay: true, | 				autoplay: true, | ||||||
| 				interval: 3000, | 				interval: 3000, | ||||||
| 				index: 1, | 				index: 0, | ||||||
| 				projectId: "", | 				projectId: "", | ||||||
| 				recordState: [{ | 				recordState: [{ | ||||||
| 						title: '维保记录', | 						title: '维保记录', | ||||||
|  |  | ||||||
|  | @ -34,7 +34,7 @@ | ||||||
| 				<view class="project-list"> | 				<view class="project-list"> | ||||||
| 					<view class="li animated fadeIn" @click="projectDetailsFun(item.project_id)" v-for="(item,index) in dataList.data" :key="index"> | 					<view class="li animated fadeIn" @click="projectDetailsFun(item.project_id)" v-for="(item,index) in dataList.data" :key="index"> | ||||||
| 						<view class="message"> | 						<view class="message"> | ||||||
| 							<image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image> | 							<image class="img" :src="item.completed_img" mode="aspectFill" lazy-load></image> | ||||||
| 							<view class="text disjb fc" style="height: 180rpx;"> | 							<view class="text disjb fc" style="height: 180rpx;"> | ||||||
| 								<view class="clips1 fon24 bold">{{item.project_name}}</view> | 								<view class="clips1 fon24 bold">{{item.project_name}}</view> | ||||||
| 								<view class="line-h38" style="margin-left: -20rpx;height: 80%;"> | 								<view class="line-h38" style="margin-left: -20rpx;height: 80%;"> | ||||||
|  |  | ||||||
|  | @ -18,18 +18,21 @@ | ||||||
| 				<view class="fault-type-title padding">维保类型:</view> | 				<view class="fault-type-title padding">维保类型:</view> | ||||||
| 				<view class="padding fault-type-content"> | 				<view class="padding fault-type-content"> | ||||||
| 					<view class="li" @click="repairsTypeFun(index)" :class="index==indexType?'on':''" | 					<view class="li" @click="repairsTypeFun(index)" :class="index==indexType?'on':''" | ||||||
|                         v-for="(item,index) in faultTypeData"> | 						v-for="(item,index) in faultTypeData" :key="index"> | ||||||
| 						{{item.name}} | 						{{item.name}} | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
| 				<view class="padding"> | 				<view class="padding"> | ||||||
| 					<view class="devicename" v-if="current==0"> | 					<view class="devicename" v-if="current==0"> | ||||||
| 						<input type="text" class="fon28 width100 col3" v-model="data.project_number" placeholder="请填写设备编号或扫描二维码" /> | 						<input type="text" class="fon28 width100 col3" v-model="data.project_number" | ||||||
|                         <image @click="scanCodeFun" class="sm flexs" src="../../static/iocn/sm.png" lazy-load mode=""></image> | 							placeholder="请填写设备编号或扫描二维码" /> | ||||||
|  | 						<image @click="scanCodeFun" class="sm flexs" src="../../static/iocn/sm.png" lazy-load mode=""> | ||||||
|  | 						</image> | ||||||
| 					</view> | 					</view> | ||||||
| 					<input v-else v-model="data.device_name" class="devicename" placeholder="请填写设备名称和型号(例:华为LED)" /> | 					<input v-else v-model="data.device_name" class="devicename" placeholder="请填写设备名称和型号(例:华为LED)" /> | ||||||
| 					<view class="fault-pictures radius10" @click="chooseImg"> | 					<view class="fault-pictures radius10" @click="chooseImg"> | ||||||
|                         <image class="fault-pictures-img" v-if="imgsrcArr.length>=1" :src="imgsrcArr[0]" mode="aspectFill"></image> | 						<image class="fault-pictures-img" v-if="imgsrcArr.length>=1" :src="imgsrcArr[0]" | ||||||
|  | 							mode="aspectFill"></image> | ||||||
| 						<view class="fault-pictures-con" v-else> | 						<view class="fault-pictures-con" v-else> | ||||||
| 							<image class="img" src="../../static/iocn/gz.png" lazy-load mode="aspectFill"></image> | 							<image class="img" src="../../static/iocn/gz.png" lazy-load mode="aspectFill"></image> | ||||||
| 							<view class="text">添加维保图片</view> | 							<view class="text">添加维保图片</view> | ||||||
|  | @ -38,13 +41,19 @@ | ||||||
| 					<textarea v-model="data.fault_describe" class="fault-description radius10" placeholder="维保情况描述" | 					<textarea v-model="data.fault_describe" class="fault-description radius10" placeholder="维保情况描述" | ||||||
| 						placeholder-class="fault-description-text" /> | 						placeholder-class="fault-description-text" /> | ||||||
| 					<view class="detailed-address inputCss"> | 					<view class="detailed-address inputCss"> | ||||||
|                         <input type="text" v-model="data.service_address" class="fon26 width100 mar-y20" placeholder="请输入详细的上门服务地址" placeholder-class="inputCss-input" /> | 						<input type="text" v-model="data.service_address" class="fon26 width100 mar-y20" | ||||||
|                         <image @click="mapFun" src="../../static/iocn/map.png" class="map flexs" mode="aspectFill"></image> | 							placeholder="请输入详细的上门服务地址" placeholder-class="inputCss-input" /> | ||||||
|  | 						<image @click="mapFun" src="../../static/iocn/map.png" class="map flexs" mode="aspectFill"> | ||||||
|  | 						</image> | ||||||
| 					</view> | 					</view> | ||||||
|                     <input type="text" class="inputCss" v-model="data.username" placeholder="请填写您的姓名" placeholder-class="inputCss-input" /> | 					<input type="text" class="inputCss" v-model="data.username" placeholder="请填写您的姓名" | ||||||
|                     <input type="number" maxlength="11" class="inputCss" v-model="data.phone" placeholder="请填写联系电话" placeholder-class="inputCss-input" /> | 						placeholder-class="inputCss-input" /> | ||||||
|                     <input type="text" class="inputCss" @tap="openDatetimePicker" disabled v-model="data.visit_time" placeholder="请选择上门时间" placeholder-class="inputCss-input" /> | 					<input type="number" maxlength="11" class="inputCss" v-model="data.phone" placeholder="请填写联系电话" | ||||||
|                     <yy-mm-dd-hh-ss ref="myPicker" @submit="handleSubmit" :start-year="2022" :end-year="2122"></yy-mm-dd-hh-ss> | 						placeholder-class="inputCss-input" /> | ||||||
|  | 					<input type="text" class="inputCss" @tap="openDatetimePicker" disabled v-model="data.visit_time" | ||||||
|  | 						placeholder="请选择上门时间" placeholder-class="inputCss-input" /> | ||||||
|  | 					<yy-mm-dd-hh-ss ref="myPicker" @submit="handleSubmit" :start-year="2022" :end-year="2122"> | ||||||
|  | 					</yy-mm-dd-hh-ss> | ||||||
| 					<button class="submit-button" @click="submitButton()" type="default">提交维保申报</button> | 					<button class="submit-button" @click="submitButton()" type="default">提交维保申报</button> | ||||||
| 				</view> | 				</view> | ||||||
| 			</view> | 			</view> | ||||||
|  | @ -54,12 +63,12 @@ | ||||||
| 
 | 
 | ||||||
| <script> | <script> | ||||||
| 	import yyMmDdHhSs from '@/components/dates/yy-mm-dd-hh-ss.vue'; | 	import yyMmDdHhSs from '@/components/dates/yy-mm-dd-hh-ss.vue'; | ||||||
| 	import {getFaultType} from '@/jsFile/public-api.js'; |  | ||||||
| 	import { | 	import { | ||||||
|         uploadImg | 		getFaultType,uploadImg | ||||||
| 	} from '@/jsFile/public-api.js'; | 	} from '@/jsFile/public-api.js'; | ||||||
| 	// 引入qrcode.js (必须导出qrcode.js ) | 	// 引入qrcode.js (必须导出qrcode.js ) | ||||||
| 	var qrcode = require('@/jsFile/qrcode.js'); | 	var qrcode = require('@/jsFile/qrcode.js'); | ||||||
|  | 	// import jweixin from '@/jsFile/index.js'; | ||||||
| 	export default { | 	export default { | ||||||
| 		components: { | 		components: { | ||||||
| 			yyMmDdHhSs | 			yyMmDdHhSs | ||||||
|  | @ -81,19 +90,20 @@ | ||||||
| 				}, | 				}, | ||||||
| 				imgsrcArr: [], | 				imgsrcArr: [], | ||||||
| 				indexType: 0, | 				indexType: 0, | ||||||
|                 navDataState: ["有设备","无设备"], | 				navDataState: ["有设备", "无设备"], | ||||||
| 				current:0, | 				current: 0, | ||||||
| 				faultTypeData: [] | 				faultTypeData: [] | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
|         onLoad() { | 		onLoad(op) { | ||||||
|             this.getType() | 			this.getType(); | ||||||
|  | 			if (op.project_number) this.data.project_number = op.project_number; | ||||||
| 		}, | 		}, | ||||||
| 
 | 
 | ||||||
| 		methods: { | 		methods: { | ||||||
| 			submitButton() { | 			submitButton() { | ||||||
| 				this.data.fault_type = this.faultTypeData[this.indexType].id | 				this.data.fault_type = this.faultTypeData[this.indexType].id | ||||||
| 				if(this.current) { | 				if (this.current) { | ||||||
| 					if (!this.data.device_name) { | 					if (!this.data.device_name) { | ||||||
| 						this.$toolAll.tools.showToast("请填写设备名称或型号"); | 						this.$toolAll.tools.showToast("请填写设备名称或型号"); | ||||||
| 						return | 						return | ||||||
|  | @ -112,13 +122,15 @@ | ||||||
| 					this.$toolAll.tools.showToast("请正确填写您的电话"); | 					this.$toolAll.tools.showToast("请正确填写您的电话"); | ||||||
| 					return | 					return | ||||||
| 				} | 				} | ||||||
| 				this.data.is_device = this.current ? 0 : 1;//0:表示无设备 1:表示有设备 | 				this.data.is_device = this.current ? 0 : 1; //0:表示无设备 1:表示有设备 | ||||||
| 				this.$requst.post('/universal/api.order/repair', this.data).then(res => { | 				this.$requst.post('/universal/api.order/repair', this.data).then(res => { | ||||||
| 					if (res.code) { | 					if (res.code) { | ||||||
| 						this.$toolAll.tools.showToast('提交成功'); | 						this.$toolAll.tools.showToast('提交成功'); | ||||||
| 						setTimeout(()=>{ | 						setTimeout(() => { | ||||||
| 							uni.navigateBack({delta:1}) | 							uni.navigateBack({ | ||||||
| 						},1000) | 								delta: 1 | ||||||
|  | 							}) | ||||||
|  | 						}, 1000) | ||||||
| 					} else { | 					} else { | ||||||
| 						this.$toolAll.tools.showToast(res.msg); | 						this.$toolAll.tools.showToast(res.msg); | ||||||
| 					} | 					} | ||||||
|  | @ -126,7 +138,7 @@ | ||||||
| 			}, | 			}, | ||||||
| 			// 获取维保类型 | 			// 获取维保类型 | ||||||
| 			getType() { | 			getType() { | ||||||
|                 getFaultType().then(res=>{ | 				getFaultType().then(res => { | ||||||
| 					if (res.code) { | 					if (res.code) { | ||||||
| 						this.faultTypeData = [...res.data] | 						this.faultTypeData = [...res.data] | ||||||
| 					} else { | 					} else { | ||||||
|  | @ -151,13 +163,16 @@ | ||||||
| 						imgsrc.forEach(item => { | 						imgsrc.forEach(item => { | ||||||
| 							this.imgsrcArr.push(item); | 							this.imgsrcArr.push(item); | ||||||
| 						}) | 						}) | ||||||
|                         uploadImg({path: res.tempFilePaths[0]}).then(res => { | 						uploadImg({ | ||||||
|  | 							path: res.tempFilePaths[0] | ||||||
|  | 						}).then(res => { | ||||||
| 							if (res.code) { | 							if (res.code) { | ||||||
| 								this.$toolAll.tools.showToast('上传成功'); | 								this.$toolAll.tools.showToast('上传成功'); | ||||||
| 								this.data.fault_picture = res.data.id | 								this.data.fault_picture = res.data.id | ||||||
| 							} | 							} | ||||||
| 						}) | 						}) | ||||||
|                     },fail:(err)=> { | 					}, | ||||||
|  | 					fail: (err) => { | ||||||
| 						this.$toolAll.tools.checkQx(err.code); | 						this.$toolAll.tools.checkQx(err.code); | ||||||
| 					} | 					} | ||||||
| 				}) | 				}) | ||||||
|  | @ -165,12 +180,14 @@ | ||||||
| 			scanCodeFun() { | 			scanCodeFun() { | ||||||
| 				// #ifdef APP-PLUS || MP-WEIXIN | 				// #ifdef APP-PLUS || MP-WEIXIN | ||||||
| 				uni.scanCode({ | 				uni.scanCode({ | ||||||
|                 		onlyFromCamera:false, // 是否只能从相机扫码,不允许从相册选择图片 | 					onlyFromCamera: false, // 是否只能从相机扫码,不允许从相册选择图片 | ||||||
| 					scanType: ['qrCode'], // barCode:一维码, qrCode:二维码, datamatrix:Data Matrix 码, pdf417:PDF417 条码 | 					scanType: ['qrCode'], // barCode:一维码, qrCode:二维码, datamatrix:Data Matrix 码, pdf417:PDF417 条码 | ||||||
|                 		autoDecodeCharset:true, // 是否启用自动识别字符编码功能,默认为否 | 					autoDecodeCharset: true, // 是否启用自动识别字符编码功能,默认为否 | ||||||
|                 		success: function (res) { | 					success: (res) => { | ||||||
| 						console.log('条码类型:' + res.scanType); | 						console.log('条码类型:' + res.scanType); | ||||||
| 						console.log('条码内容:' + res.result); | 						console.log('条码内容:' + res.result); | ||||||
|  | 						let project_number = JSON.parse(res.result).project_number; | ||||||
|  | 						if (project_number) this.data.project_number = project_number; | ||||||
| 					} | 					} | ||||||
| 				}); | 				}); | ||||||
| 				// #endif | 				// #endif | ||||||
|  | @ -184,35 +201,25 @@ | ||||||
| 				uni.chooseImage({ | 				uni.chooseImage({ | ||||||
| 					sizeType: ['original'], | 					sizeType: ['original'], | ||||||
| 					count: 1, | 					count: 1, | ||||||
| 					success: (res)=> { | 					success: (res) => { | ||||||
| 						qrcode.decode(this.getObjectURL(res.tempFiles[0])) | 						const tempFilePaths = res.tempFilePaths[0] // 获取到二维码图片的链接 | ||||||
| 						qrcode.callback = (codeRes) => { | 						qrcode.decode(tempFilePaths); // 解析二维码图片 | ||||||
| 							if (codeRes.indexOf('error') >= 0) { | 						qrcode.callback = function(res1) { | ||||||
| 								// 二维码识别失败 | 							// 解析失败返回 error decoding QR Code | ||||||
| 								console.log('不合法二维码:' + codeRes); | 							if (res1 == "error decoding QR Code") { | ||||||
|  | 								uni.showToast({ | ||||||
|  | 									title: "识别二维码失败,请重新上传!", | ||||||
|  | 									duration: 2000, | ||||||
|  | 									icon: 'none' | ||||||
|  | 								}) | ||||||
| 							} else { | 							} else { | ||||||
| 								// 二维码识别成功 | 								// 解析成功返回二维码链接 | ||||||
| 						        let r = this.decodeStr(codeRes) | 						        let r = this.decodeStr(codeRes) | ||||||
| 								// this.qrCodeRes = r | 								console.log(res1) | ||||||
| 								console.log(r); |  | ||||||
| 							} | 							} | ||||||
| 						} | 						} | ||||||
| 						// const tempFilePaths = res.tempFilePaths[0] // 获取到二维码图片的链接 | 					}, | ||||||
| 						// qrcode.decode(tempFilePaths); // 解析二维码图片 | 					fail: (err) => { | ||||||
| 						// qrcode.callback = function(res1) { |  | ||||||
| 						//    // 解析失败返回 error decoding QR Code |  | ||||||
| 						// 	if (res1 == "error decoding QR Code") { |  | ||||||
| 						// 		uni.showToast({ |  | ||||||
| 						// 			title: "识别二维码失败,请重新上传!", |  | ||||||
| 						// 			duration: 2000, |  | ||||||
| 						// 			icon: 'none' |  | ||||||
| 						// 		}) |  | ||||||
| 						// 	} else { |  | ||||||
| 						// 	// 解析成功返回二维码链接 |  | ||||||
| 						// 		console.log(res1) |  | ||||||
| 						// 	} |  | ||||||
| 						// } |  | ||||||
| 					},fail:(err)=> { |  | ||||||
| 						this.$toolAll.tools.checkQx(err.code); | 						this.$toolAll.tools.checkQx(err.code); | ||||||
| 					} | 					} | ||||||
| 				}); | 				}); | ||||||
|  | @ -269,26 +276,20 @@ | ||||||
| 				return out; | 				return out; | ||||||
| 			}, | 			}, | ||||||
| 			mapFun() { | 			mapFun() { | ||||||
|                 const that = this | 				let that = this | ||||||
|                 uni.getLocation({ |  | ||||||
|                     type: 'gcj02', //返回可以用于uni.openLocation的经纬度 |  | ||||||
|                     success: function(res) { |  | ||||||
|                         const latitude = res.latitude; |  | ||||||
|                         const longitude = res.longitude; |  | ||||||
| 				uni.chooseLocation({ | 				uni.chooseLocation({ | ||||||
|                             success: function(res) { | 					success: (res) => { | ||||||
| 						that.data.service_address = res.address | 						that.data.service_address = res.address | ||||||
| 					} | 					} | ||||||
|                         }); | 				}) | ||||||
|                         // uni.openLocation({ | 				//           uni.getLocation({ | ||||||
|                         // 	latitude: latitude, | 				//               type: 'wgs84', //返回可以用于uni.openLocation的经纬度gcj02 | ||||||
|                         // 	longitude: longitude, | 				//               success: function(res) { | ||||||
|                         // 	success: function () { | 				// console.log(res); | ||||||
|                         // 		console.log('success'); | 				//                   let latitude = res.latitude; | ||||||
|  | 				//                   let longitude = res.longitude; | ||||||
| 				//               } | 				//               } | ||||||
| 				//           }); | 				//           }); | ||||||
|                     } |  | ||||||
|                 }); |  | ||||||
| 			}, | 			}, | ||||||
| 			repairsNavFun(index) { | 			repairsNavFun(index) { | ||||||
| 				this.current = index; | 				this.current = index; | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| <template> | <template> | ||||||
|     <view class="content" > | 	<view class="content"> | ||||||
| 		<statusNav returnColor="#c2c2c2" navBarTitle="工单详情"></statusNav> | 		<statusNav returnColor="#c2c2c2" navBarTitle="工单详情"></statusNav> | ||||||
| 		<container-subgroup-two> | 		<container-subgroup-two> | ||||||
| 			<view slot="content" style="margin:-30rpx -30rpx 0 -30rpx;"> | 			<view slot="content" style="margin:-30rpx -30rpx 0 -30rpx;"> | ||||||
|  | @ -28,7 +28,8 @@ | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">项目名称:</view> | 										<view class="title">项目名称:</view> | ||||||
|                                         <input type="text" disabled class="input input-black" :value="detailObj.project_name" /> | 										<input type="text" disabled class="input input-black" | ||||||
|  | 											:value="detailObj.project_name" /> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">产品类型:</view> | 										<view class="title">产品类型:</view> | ||||||
|  | @ -36,7 +37,8 @@ | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">安装位置:</view> | 										<view class="title">安装位置:</view> | ||||||
|                                         <input type="text" disabled class="input" :value="detailObj.installation_location" /> | 										<input type="text" disabled class="input" | ||||||
|  | 											:value="detailObj.installation_location" /> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">维保类型:</view> | 										<view class="title">维保类型:</view> | ||||||
|  | @ -44,11 +46,13 @@ | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">紧急程度:</view> | 										<view class="title">紧急程度:</view> | ||||||
|                                         <input type="text" disabled class="input" :value="detailObj.emergency_level_view" /> | 										<input type="text" disabled class="input" | ||||||
|  | 											:value="detailObj.emergency_level_view" /> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">维保说明:</view> | 										<view class="title">维保说明:</view> | ||||||
|                                         <textarea style="overflow: hidden;overflow-y: scroll;height: auto;max-height: 200rpx;" disabled class="input" :value="detailObj.failure_description" /> | 										<view style="overflow: hidden;overflow-y: scroll;max-height: 200rpx;"  | ||||||
|  | 											class="input line-h36">{{detailObj.failure_description}}</view> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">维保图片:</view> | 										<view class="title">维保图片:</view> | ||||||
|  | @ -68,7 +72,8 @@ | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">服务方式:</view> | 										<view class="title">服务方式:</view> | ||||||
|                                         <input type="text" disabled class="input input-black" :value="detailObj.service_method_view" /> | 										<input type="text" disabled class="input input-black" | ||||||
|  | 											:value="detailObj.service_method_view" /> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">定位地址:</view> | 										<view class="title">定位地址:</view> | ||||||
|  | @ -92,15 +97,18 @@ | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">结束时间:</view> | 										<view class="title">结束时间:</view> | ||||||
|                                         <input type="text" disabled class="input " :value="handleDetail.completion_times" /> | 										<input type="text" disabled class="input " | ||||||
|  | 											:value="handleDetail.completion_times" /> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">维保用时: </view> | 										<view class="title">维保用时: </view> | ||||||
|                                         <input type="text" disabled class="input input-black" :value="handleDetail.maintenance_time" /> | 										<input type="text" disabled class="input input-black" | ||||||
|  | 											:value="handleDetail.maintenance_time" /> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">维保费用:</view> | 										<view class="title">维保费用:</view> | ||||||
|                                         <input type="text" disabled class="input " :value="`¥${handleDetail.pay_price}元`" /> | 										<input type="text" disabled class="input " | ||||||
|  | 											:value="`¥${handleDetail.pay_price}元`" /> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">等待时长:</view> | 										<view class="title">等待时长:</view> | ||||||
|  | @ -108,7 +116,8 @@ | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">主维保人:</view> | 										<view class="title">主维保人:</view> | ||||||
|                                         <input type="text" disabled class="input " :value="handleDetail.maintenance_name" /> | 										<input type="text" disabled class="input " | ||||||
|  | 											:value="handleDetail.maintenance_name" /> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">更换配件:</view> | 										<view class="title">更换配件:</view> | ||||||
|  | @ -129,23 +138,28 @@ | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">工作描述:</view> | 										<view class="title">工作描述:</view> | ||||||
|                                         <textarea style="overflow: hidden;overflow-y: scroll;height: auto;max-height: 200rpx;" disabled class="input " :value="handleDetail.work_explanation"/> | 										<view style="overflow: hidden;overflow-y: scroll;max-height: 200rpx;" | ||||||
|  | 											class="input line-h36">{{handleDetail.work_explanation}}</view> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">维保图片:</view> | 										<view class="title">维保图片:</view> | ||||||
| 										<view class="input add-display"> | 										<view class="input add-display"> | ||||||
| 											<view class=""> | 											<view class=""> | ||||||
|                                                 <image class="img" v-for="(item,index) in handleDetail.maintenance_pictures" :key="index" :src="item" mode="aspectFill" lazy-load></image> | 												<image class="img" | ||||||
|  | 													v-for="(item,index) in handleDetail.maintenance_pictures" | ||||||
|  | 													:key="index" :src="item" mode="aspectFill" lazy-load></image> | ||||||
| 											</view> | 											</view> | ||||||
| 										</view> | 										</view> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">维保原因:</view> | 										<view class="title">维保原因:</view> | ||||||
|                                         <textarea auto-height disabled class="input " :value="handleDetail.failure_reason"/> | 										<textarea auto-height disabled class="input " | ||||||
|  | 											:value="handleDetail.failure_reason" /> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="li"> | 									<view class="li"> | ||||||
| 										<view class="title">维保人员: </view> | 										<view class="title">维保人员: </view> | ||||||
|                                         <input type="text" disabled class="input " :value="handleDetail.maintenance_more" /> | 										<input type="text" disabled class="input " | ||||||
|  | 											:value="handleDetail.maintenance_more" /> | ||||||
| 									</view> | 									</view> | ||||||
| 								</view> | 								</view> | ||||||
| 							</view> | 							</view> | ||||||
|  | @ -162,7 +176,8 @@ | ||||||
| 									<view class="state" :style="{backgroundColor: statusColor}">状态:{{statusText}}</view> | 									<view class="state" :style="{backgroundColor: statusColor}">状态:{{statusText}}</view> | ||||||
| 									<view class="list"> | 									<view class="list"> | ||||||
| 										<view class="li" v-for="(item,index) in replaceParts" :key="index"> | 										<view class="li" v-for="(item,index) in replaceParts" :key="index"> | ||||||
|                                             <image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image> | 											<image class="img" src="../../static/del/img001.png" mode="aspectFill" | ||||||
|  | 												lazy-load></image> | ||||||
| 											<view class="text-content"> | 											<view class="text-content"> | ||||||
| 												<view class="title"> | 												<view class="title"> | ||||||
| 													<view class="text clips1">全彩LED显示屏电源</view> | 													<view class="text clips1">全彩LED显示屏电源</view> | ||||||
|  | @ -187,7 +202,8 @@ | ||||||
| 											</view> | 											</view> | ||||||
| 										</view> | 										</view> | ||||||
| 										<view class="li"> | 										<view class="li"> | ||||||
|                                             <image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image> | 											<image class="img" src="../../static/del/img001.png" mode="aspectFill" | ||||||
|  | 												lazy-load></image> | ||||||
| 											<view class="text-content"> | 											<view class="text-content"> | ||||||
| 												<view class="title"> | 												<view class="title"> | ||||||
| 													<view class="text clips1">全彩LED显示屏电源</view> | 													<view class="text clips1">全彩LED显示屏电源</view> | ||||||
|  | @ -221,14 +237,16 @@ | ||||||
| 									<view class="record-content"> | 									<view class="record-content"> | ||||||
| 										<view class="title">过程追踪</view> | 										<view class="title">过程追踪</view> | ||||||
| 										<view class="list"> | 										<view class="list"> | ||||||
|                                          <view class="li pad-z40 fon27 col9 pad-x20" :class="index==0 ? 'activeTrack' : ''" v-for="(item,index) in handleProcess.time_line" :key="index"> | 											<view class="li pad-z40 fon27 col9 pad-x20" | ||||||
|  | 												:class="index==0 ? 'activeTrack' : ''" | ||||||
|  | 												v-for="(item,index) in handleProcess.time_line" :key="index"> | ||||||
| 												<view class="disac fw line-h40"> | 												<view class="disac fw line-h40"> | ||||||
| 													<view class="text">{{item.value}}</view> | 													<view class="text">{{item.value}}</view> | ||||||
| 													<view class="date">{{item.create_time}}</view> | 													<view class="date">{{item.create_time}}</view> | ||||||
| 												</view> | 												</view> | ||||||
| 											</view> | 											</view> | ||||||
| 										</view> | 										</view> | ||||||
| 										<view class="button" @tap="goEvaluate()">我要评价</view> | 										<view v-if="order_status==8" class="button" @tap="goEvaluate()">我要评价</view> | ||||||
| 									</view> | 									</view> | ||||||
| 								</view> | 								</view> | ||||||
| 							</view> | 							</view> | ||||||
|  | @ -246,7 +264,9 @@ | ||||||
| 	import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; | 	import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; | ||||||
| 	import statusNav from '../../components/status-nav.vue'; | 	import statusNav from '../../components/status-nav.vue'; | ||||||
| 	import footTabOne from "../../components/foot-tabs/foot-tab-one.vue" | 	import footTabOne from "../../components/foot-tabs/foot-tab-one.vue" | ||||||
| 	import {handleWorkOrderGet} from '../../jsFile/public-api.js'; | 	import { | ||||||
|  | 		handleWorkOrderGet | ||||||
|  | 	} from '../../jsFile/public-api.js'; | ||||||
| 	export default { | 	export default { | ||||||
| 		components: { | 		components: { | ||||||
| 			footTabOne, | 			footTabOne, | ||||||
|  | @ -256,10 +276,10 @@ | ||||||
| 		data() { | 		data() { | ||||||
| 			return { | 			return { | ||||||
| 				swiperCurrent: 0, | 				swiperCurrent: 0, | ||||||
|                 swiHeight:0, | 				swiHeight: 0, | ||||||
| 				statusBarHeight:uni.getSystemInfoSync().statusBarHeight + 40, | 				statusBarHeight: uni.getSystemInfoSync().statusBarHeight + 40, | ||||||
| 				statusText:'',//状态文字 | 				statusText: '', //状态文字 | ||||||
| 				statusColor:'',//状态背景颜色 | 				statusColor: '', //状态背景颜色 | ||||||
| 				detailsNav: [{ | 				detailsNav: [{ | ||||||
| 						title: "基础信息", | 						title: "基础信息", | ||||||
| 						state: true | 						state: true | ||||||
|  | @ -278,11 +298,12 @@ | ||||||
| 					}, | 					}, | ||||||
| 
 | 
 | ||||||
| 				], | 				], | ||||||
| 				orderId:'',//订单id | 				orderId: '', //订单id | ||||||
| 				detailObj:{},//基础信息 | 				detailObj: {}, //基础信息 | ||||||
| 				handleDetail:{},//处理详情 | 				handleDetail: {}, //处理详情 | ||||||
| 				replaceParts:[],//更换配件 | 				replaceParts: [], //更换配件 | ||||||
| 				handleProcess:{}//处理过程 | 				handleProcess: {}, //处理过程 | ||||||
|  | 				order_status: '' //当前订单状态 | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		mounted() { | 		mounted() { | ||||||
|  | @ -296,8 +317,7 @@ | ||||||
| 		onLoad(op) { | 		onLoad(op) { | ||||||
| 			this.statusText = op.statusText; | 			this.statusText = op.statusText; | ||||||
| 			this.statusColor = op.statusColor; | 			this.statusColor = op.statusColor; | ||||||
| 			console.log(this.statusColor,299); | 			if (op.orderId != undefined) { | ||||||
| 			if(op.orderId!=undefined) { |  | ||||||
| 				this.orderId = op.orderId; | 				this.orderId = op.orderId; | ||||||
| 				// 调取获取工单详情事件 | 				// 调取获取工单详情事件 | ||||||
| 				this.getDetail(1); | 				this.getDetail(1); | ||||||
|  | @ -305,16 +325,17 @@ | ||||||
| 		}, | 		}, | ||||||
| 		methods: { | 		methods: { | ||||||
| 			// 获取工单详情事件 | 			// 获取工单详情事件 | ||||||
| 			getDetail(type){ | 			getDetail(type) { | ||||||
| 				let params = { | 				let params = { | ||||||
| 					order_id:this.orderId, | 					order_id: this.orderId, | ||||||
| 					type | 					type | ||||||
| 				} | 				} | ||||||
| 				this.$requst.get('/universal/api.order/order_info',params).then(res=>{ | 				this.$requst.get('/universal/api.order/order_info', params).then(res => { | ||||||
| 					if(res.code) { | 					if (res.code) { | ||||||
| 						switch (type){ | 						switch (type) { | ||||||
| 							case 1: | 							case 1: | ||||||
| 								this.detailObj = res.data; | 								this.detailObj = res.data; | ||||||
|  | 								this.order_status = this.detailObj.order_status; | ||||||
| 								break; | 								break; | ||||||
| 							case 2: | 							case 2: | ||||||
| 								this.handleDetail = res.data; | 								this.handleDetail = res.data; | ||||||
|  | @ -326,12 +347,12 @@ | ||||||
| 								this.handleProcess = res.data; | 								this.handleProcess = res.data; | ||||||
| 								break; | 								break; | ||||||
| 						} | 						} | ||||||
| 						setTimeout(()=>{ | 						setTimeout(() => { | ||||||
| 							const query = uni.createSelectorQuery().in(this); | 							const query = uni.createSelectorQuery().in(this); | ||||||
| 							query.select(`#swi${type}`).boundingClientRect(data => { | 							query.select(`#swi${type}`).boundingClientRect(data => { | ||||||
| 								this.swiHeight = data.height | 								this.swiHeight = data.height | ||||||
| 							}).exec(); | 							}).exec(); | ||||||
| 						},100) | 						}, 500) | ||||||
| 					} | 					} | ||||||
| 				}) | 				}) | ||||||
| 			}, | 			}, | ||||||
|  | @ -371,14 +392,14 @@ | ||||||
| 				this.detailSwitch(index); | 				this.detailSwitch(index); | ||||||
| 			}, | 			}, | ||||||
| 			// 工单详情切换事件 | 			// 工单详情切换事件 | ||||||
| 			detailSwitch(index){ | 			detailSwitch(index) { | ||||||
| 				let type = [1,2,3,4][index]; | 				let type = [1, 2, 3, 4][index]; | ||||||
| 				this.getDetail(type); | 				this.getDetail(type); | ||||||
| 			}, | 			}, | ||||||
| 			// 前往评价页面 | 			// 前往评价页面 | ||||||
| 			goEvaluate() { | 			goEvaluate() { | ||||||
| 				uni.navigateTo({ | 				uni.navigateTo({ | ||||||
| 					url:`/pagesB/i-want-evaluate/i-want-evaluate?id=${this.orderId}` | 					url: `/pagesB/i-want-evaluate/i-want-evaluate?orderId=${this.orderId}` | ||||||
| 				}) | 				}) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
|  | @ -420,9 +441,9 @@ | ||||||
| 
 | 
 | ||||||
| 	.work-order-from .li .title { | 	.work-order-from .li .title { | ||||||
| 		font-size: 26rpx; | 		font-size: 26rpx; | ||||||
| text-align: right; | 		text-align: right; | ||||||
| white-space: nowrap; | 		white-space: nowrap; | ||||||
| /* flex: 1; */ | 		/* flex: 1; */ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.work-order-from .li .input { | 	.work-order-from .li .input { | ||||||
|  | @ -723,6 +744,7 @@ white-space: nowrap; | ||||||
| 	.work-order-from .isrideo .on .icon-content { | 	.work-order-from .isrideo .on .icon-content { | ||||||
| 		background-color: #D81E06 | 		background-color: #D81E06 | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	.record-content { | 	.record-content { | ||||||
| 		padding: 0 52rpx; | 		padding: 0 52rpx; | ||||||
| 
 | 
 | ||||||
|  | @ -746,6 +768,7 @@ white-space: nowrap; | ||||||
| 		border-left: 2rpx solid #999999; | 		border-left: 2rpx solid #999999; | ||||||
| 
 | 
 | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	.record-content .list .li::before { | 	.record-content .list .li::before { | ||||||
| 		content: ''; | 		content: ''; | ||||||
| 		display: block; | 		display: block; | ||||||
|  | @ -756,18 +779,21 @@ white-space: nowrap; | ||||||
| 		background-color: #999999; | 		background-color: #999999; | ||||||
| 		border-radius: 100%; | 		border-radius: 100%; | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	.record-content .list .activeTrack { | 	.record-content .list .activeTrack { | ||||||
| 		color: #0084ff; | 		color: #0084ff; | ||||||
| 		padding-top: 0rpx; | 		padding-top: 0rpx; | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	.record-content .list .activeTrack::before { | 	.record-content .list .activeTrack::before { | ||||||
|  	background-color: rgba(0,132,255,.5); | 		background-color: rgba(0, 132, 255, .5); | ||||||
| 		top: -4rpx; | 		top: -4rpx; | ||||||
| 		width: 22rpx; | 		width: 22rpx; | ||||||
| 		height: 22rpx; | 		height: 22rpx; | ||||||
| 		left: -12rpx; | 		left: -12rpx; | ||||||
| 		z-index: 1; | 		z-index: 1; | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	.record-content .list .activeTrack::after { | 	.record-content .list .activeTrack::after { | ||||||
| 		content: ''; | 		content: ''; | ||||||
| 		display: block; | 		display: block; | ||||||
|  | @ -779,10 +805,12 @@ white-space: nowrap; | ||||||
| 		background-color: #999999; | 		background-color: #999999; | ||||||
| 		border-radius: 100%; | 		border-radius: 100%; | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	.record-content .list .activeTrack .line-h40 { | 	.record-content .list .activeTrack .line-h40 { | ||||||
| 		margin-top: -20rpx; | 		margin-top: -20rpx; | ||||||
| 		line-height: 60rpx; | 		line-height: 60rpx; | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	.record-content .list .date { | 	.record-content .list .date { | ||||||
| 		margin-left: 20rpx; | 		margin-left: 20rpx; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -13,13 +13,13 @@ | ||||||
| 							<text>系</text> | 							<text>系</text> | ||||||
| 							<text>人</text> | 							<text>人</text> | ||||||
| 						</view> | 						</view> | ||||||
|                            <input class="input" placeholder="请填写联系人称呼" type="text" placeholder-class="placeClass" /> | 						<input class="input" v-model="name" placeholder="请填写联系人称呼" type="text" placeholder-class="placeClass" /> | ||||||
| 					</view> | 					</view> | ||||||
| 					<view class="payReturnVisit-input"> | 					<view class="payReturnVisit-input"> | ||||||
| 						<view class="title"> | 						<view class="title"> | ||||||
| 							联系电话 | 							联系电话 | ||||||
| 						</view> | 						</view> | ||||||
|                            <input class="input" placeholder="请输入手机号码" type="text" placeholder-class="placeClass" /> | 						<input class="input" maxlength="11" v-model="phone" placeholder="请输入手机号码" type="number" placeholder-class="placeClass" /> | ||||||
| 					</view> | 					</view> | ||||||
| 					<view class="payReturnVisit-input"> | 					<view class="payReturnVisit-input"> | ||||||
| 						<view class="title"> | 						<view class="title"> | ||||||
|  | @ -27,30 +27,31 @@ | ||||||
| 							<text>信</text> | 							<text>信</text> | ||||||
| 							<text>号</text> | 							<text>号</text> | ||||||
| 						</view> | 						</view> | ||||||
|                            <input class="input" placeholder="请输入微信号码" type="text" placeholder-class="placeClass" /> | 						<input class="input" v-model="wxcode" placeholder="请输入微信号码" type="text" placeholder-class="placeClass" /> | ||||||
| 					</view> | 					</view> | ||||||
| 
 | 
 | ||||||
| 					<view class="payReturnVisit-textarea"> | 					<view class="payReturnVisit-textarea"> | ||||||
| 						<view class="title"> | 						<view class="title"> | ||||||
| 							回访内容 | 							回访内容 | ||||||
| 						</view> | 						</view> | ||||||
|                            <textarea class="textarea" placeholder="请输入回访内容" placeholder-class="placeClass" /> | 						<textarea class="textarea" v-model="content" placeholder="请输入回访内容" placeholder-class="placeClass" /> | ||||||
| 					</view> | 					</view> | ||||||
| 					<view class="payReturnVisit-input"> | 					<view class="payReturnVisit-input"> | ||||||
| 						<view class="title"> | 						<view class="title"> | ||||||
| 							客服电话 | 							客服电话 | ||||||
| 						</view> | 						</view> | ||||||
|                            <input class="input" placeholder="400-765-9876" type="text" placeholder-class="placeClass" /> | 						<input class="input" disabled placeholder="400-765-9876" type="text" placeholder-class="placeClass" /> | ||||||
| 					</view> | 					</view> | ||||||
| 					<view class="payReturnVisit-input"> | 					<view class="payReturnVisit-input"> | ||||||
| 						<view class="title"> | 						<view class="title"> | ||||||
| 							回访时间 | 							回访时间 | ||||||
| 						</view> | 						</view> | ||||||
|                            <input class="input" placeholder="2022/02/13 14:18:00" type="text" placeholder-class="placeClass" /> | 						<input class="input colc" v-model="custmertime" disabled placeholder="2022/02/13 14:18:00" type="text" placeholder-class="placeClass" /> | ||||||
|  | 						<!-- <input class="input" v-model="custmertime" @tap="openDatetimePicker" disabled placeholder="2022/02/13 14:18:00" type="text" placeholder-class="placeClass" /> | ||||||
|  | 						<yy-mm-dd-hh-ss ref="myPicker" @submit="handleSubmit" :start-year="2022" :end-year="2122"></yy-mm-dd-hh-ss> --> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
|                    <button class="submit-button" type="default">确认发送</button> | 				<button class="submit-button" @tap="setVisit" type="default">确认发送</button> | ||||||
|                      |  | ||||||
| 			</view> | 			</view> | ||||||
| 		</container-subgroup-two> | 		</container-subgroup-two> | ||||||
| 
 | 
 | ||||||
|  | @ -60,25 +61,89 @@ | ||||||
| <script> | <script> | ||||||
| 	import statusNav from '../../components/status-nav.vue'; | 	import statusNav from '../../components/status-nav.vue'; | ||||||
| 	import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; | 	import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; | ||||||
|  | 	import yyMmDdHhSs from '@/components/dates/yy-mm-dd-hh-ss.vue'; | ||||||
| 	export default { | 	export default { | ||||||
| 		components: { | 		components: { | ||||||
| 			statusNav, | 			statusNav, | ||||||
| containerSubgroupTwo, | 			containerSubgroupTwo, | ||||||
|  | 			yyMmDdHhSs | ||||||
| 		}, | 		}, | ||||||
| 		data() { | 		data() { | ||||||
| 			return { | 			return { | ||||||
| 
 | 				name:'',//联系人 | ||||||
|  | 				phone:'',//联系电话 | ||||||
|  | 				wxcode:'',//微信号 | ||||||
|  | 				content:'',//回访内容 | ||||||
|  | 				custmerphone:'400-765-9876',//客服电话 | ||||||
|  | 				custmertime:'',//回访时间 | ||||||
|  | 				workId:'',//工单id | ||||||
|  | 				flag:true | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
|  | 		onLoad(op) { | ||||||
|  | 			if(op.id) {this.workId = op.id} | ||||||
|  | 			this.custmertime = this.$toolAll.tools.returnCurrentTime('/',1); | ||||||
|  | 		}, | ||||||
| 		methods: { | 		methods: { | ||||||
|  | 			// 工单回访提交事件 | ||||||
|  | 			setVisit() { | ||||||
|  | 				if(this.checkEmpty() && this.flag) { | ||||||
|  | 					this.flag = false; | ||||||
|  | 					uni.showLoading({ | ||||||
|  | 						title:'正在发送', | ||||||
|  | 						mask:true | ||||||
|  | 					}) | ||||||
|  | 					let parmas = { | ||||||
|  | 						id:this.workId, | ||||||
|  | 						a:this.name, | ||||||
|  | 						b:this.phone, | ||||||
|  | 						c:this.wxcode, | ||||||
|  | 						d:this.custmerphone, | ||||||
|  | 						e:this.custmertime, | ||||||
|  | 						f:this.content | ||||||
|  | 					} | ||||||
|  | 					this.$request.post('',parmas).then(res=>{ | ||||||
|  | 						if(res.code) { | ||||||
|  | 							// 接口调用成功,自动返回上一级 | ||||||
|  | 							this.$toolAll.tools.automaticBack(); | ||||||
|  | 						} | ||||||
|  | 						uni.hideLoading(); | ||||||
|  | 						this.flag = true; | ||||||
|  | 					}) | ||||||
|  | 				} | ||||||
|  | 			}, | ||||||
|  | 			// 判空 | ||||||
|  | 			checkEmpty() { | ||||||
|  | 				let result = false; | ||||||
|  | 				if(!this.name) { | ||||||
|  | 					this.$toolAll.tools.showToast('请填写联系人称呼'); | ||||||
|  | 				} else if(this.$toolAll.tools.isPhone(this.phone)) { | ||||||
|  | 					this.$toolAll.tools.showToast('请正确填写手机号码'); | ||||||
|  | 				} else if(!this.content) { | ||||||
|  | 					this.$toolAll.tools.showToast('请输入回访内容'); | ||||||
|  | 				} else { | ||||||
|  | 					result = true; | ||||||
|  | 				} | ||||||
| 				 | 				 | ||||||
|  | 				return result; | ||||||
|  | 			}, | ||||||
|  | 			// 打开时间选择弹框 | ||||||
|  | 			openDatetimePicker() { | ||||||
|  | 			    this.$refs.myPicker.show(); | ||||||
|  | 			}, | ||||||
|  | 			// 时间弹框确认事件 | ||||||
|  | 			handleSubmit(e) { | ||||||
|  | 			    this.custmertime = `${e.year}/${e.month}/${e.day} ${e.hour}:${e.minute}:00`; | ||||||
|  | 			}, | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style> | <style> | ||||||
|  | 	.placeClass { | ||||||
|  | 		color: #cccccc; | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	.placeClass{color:#cccccc;} |  | ||||||
| 	.hint { | 	.hint { | ||||||
| 		color: #358ff0; | 		color: #358ff0; | ||||||
| 		font-size: 24rpx; | 		font-size: 24rpx; | ||||||
|  |  | ||||||
|  | @ -200,7 +200,7 @@ | ||||||
|         methods: { |         methods: { | ||||||
| 			// app获取经纬度和详细地址 | 			// app获取经纬度和详细地址 | ||||||
| 			getAddress(){ | 			getAddress(){ | ||||||
| 				this.$toolAll.tools.showToast('正在获取定位...') | 				// this.$toolAll.tools.showToast('正在获取定位...') | ||||||
| 				// #ifdef APP-PLUS | 				// #ifdef APP-PLUS | ||||||
| 				if(this.addressFlag) { | 				if(this.addressFlag) { | ||||||
| 					this.addressFlag = false; | 					this.addressFlag = false; | ||||||
|  | @ -208,7 +208,7 @@ | ||||||
| 						type: 'gcj02',  | 						type: 'gcj02',  | ||||||
| 						geocode:true, | 						geocode:true, | ||||||
| 						success: (res)=> { | 						success: (res)=> { | ||||||
| 							this.$toolAll.tools.showToast('定位成功'); | 							// this.$toolAll.tools.showToast('定位成功'); | ||||||
| 							// console.log(res,'app'); | 							// console.log(res,'app'); | ||||||
| 							this.targetObj.address = `${res.address.province}${res.address.city}${res.address.district}${res.address.street || ''}${res.address.streetNum || ''}${res.address.poiName || ''}` | 							this.targetObj.address = `${res.address.province}${res.address.city}${res.address.district}${res.address.street || ''}${res.address.streetNum || ''}${res.address.poiName || ''}` | ||||||
| 							setTimeout(()=>{ | 							setTimeout(()=>{ | ||||||
|  | @ -240,7 +240,7 @@ | ||||||
| 								location: {latitude: res.latitude, longitude: res.longitude}, | 								location: {latitude: res.latitude, longitude: res.longitude}, | ||||||
| 								success:(res)=> {  | 								success:(res)=> {  | ||||||
| 									console.log(res,'WX'); | 									console.log(res,'WX'); | ||||||
| 									this.$toolAll.tools.showToast('定位成功'); | 									// this.$toolAll.tools.showToast('定位成功'); | ||||||
| 									this.targetObj.address = `${res.result.address_component.province}${res.result.address_component.city}${res.result.address_component.district}${res.result.address_component.street || ''}(${res.result.address_component.street_number || ''})` | 									this.targetObj.address = `${res.result.address_component.province}${res.result.address_component.city}${res.result.address_component.district}${res.result.address_component.street || ''}(${res.result.address_component.street_number || ''})` | ||||||
| 									setTimeout(()=>{ | 									setTimeout(()=>{ | ||||||
| 										this.addressFlag = true; | 										this.addressFlag = true; | ||||||
|  | @ -267,7 +267,7 @@ | ||||||
| 							let str =  `output=jsonp&key=QNHBZ-55RKF-OMFJJ-NPU7O-EPSDH-ACBAA&location=${res.latitude},${res.longitude}` | 							let str =  `output=jsonp&key=QNHBZ-55RKF-OMFJJ-NPU7O-EPSDH-ACBAA&location=${res.latitude},${res.longitude}` | ||||||
| 							jsonp('https://apis.map.qq.com/ws/geocoder/v1/?'+str,{}).then(res=>{ | 							jsonp('https://apis.map.qq.com/ws/geocoder/v1/?'+str,{}).then(res=>{ | ||||||
| 								console.log(res,'H5');  | 								console.log(res,'H5');  | ||||||
| 								this.$toolAll.tools.showToast('定位成功'); | 								// this.$toolAll.tools.showToast('定位成功'); | ||||||
| 								this.targetObj.address = `${res.result.address_component.province}${res.result.address_component.city}${res.result.address_component.district}${res.result.address_component.street || ''}(${res.result.address_component.street_number || ''})` | 								this.targetObj.address = `${res.result.address_component.province}${res.result.address_component.city}${res.result.address_component.district}${res.result.address_component.street || ''}(${res.result.address_component.street_number || ''})` | ||||||
| 								setTimeout(()=>{ | 								setTimeout(()=>{ | ||||||
| 									this.addressFlag = true; | 									this.addressFlag = true; | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ | ||||||
| 					<view class="li animated fadeIn" @click="projectDetailsFun(item.order_status,item.order_id,item.btn.attributes.text,item.btn.attributes.color)" v-for="(item,index) in dataList" :key="index"> | 					<view class="li animated fadeIn" @click="projectDetailsFun(item.order_status,item.order_id,item.btn.attributes.text,item.btn.attributes.color)" v-for="(item,index) in dataList" :key="index"> | ||||||
| 						<view class="work-order-code">工单编号:{{item.order_number}}</view> | 						<view class="work-order-code">工单编号:{{item.order_number}}</view> | ||||||
| 						<view class="message"> | 						<view class="message"> | ||||||
| 							<image class="img" src="../../static/del/img001.png" mode="aspectFill" lazy-load></image> | 							<image class="img" :src="item.cover_picture" mode="aspectFill" lazy-load></image> | ||||||
| 							<view class="text disjb fc" style="height: 180rpx;"> | 							<view class="text disjb fc" style="height: 180rpx;"> | ||||||
| 								<view class="title flexs"> | 								<view class="title flexs"> | ||||||
| 									<view class="text clips1">{{item.project_name}}</view> | 									<view class="text clips1">{{item.project_name}}</view> | ||||||
|  | @ -43,7 +43,7 @@ | ||||||
| 								</view> | 								</view> | ||||||
| 								<view class="disjb fc line-h36" style="margin-left: -20rpx;"> | 								<view class="disjb fc line-h36" style="margin-left: -20rpx;"> | ||||||
| 									<view class="serial-number scal09"> | 									<view class="serial-number scal09"> | ||||||
| 										<view class="type">#{{item.fault_type}}#</view> | 										<view class="type" v-if="item.fault_type">#{{item.fault_type}}#</view> | ||||||
| 										<view class="date">{{item.failure_time}}</view> | 										<view class="date">{{item.failure_time}}</view> | ||||||
| 									</view> | 									</view> | ||||||
| 									<view class="specification scal09"> | 									<view class="specification scal09"> | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| <template> | <template> | ||||||
| 	<view class="content"> | 	<view class="content" :style="{paddingBottom: bottomHeight}"> | ||||||
| 		<statusNav returnColor="#c2c2c2" navBarTitle="处理工单"></statusNav> | 		<statusNav returnColor="#c2c2c2" navBarTitle="处理工单"></statusNav> | ||||||
| 		<container-subgroup-two> | 		<container-subgroup-two> | ||||||
| 			<view slot="content" style="margin: -20rpx -25rpx 0rpx;"> | 			<view slot="content" style="margin: -20rpx -25rpx 0rpx;"> | ||||||
|  | @ -99,17 +99,13 @@ | ||||||
| 					</view> | 					</view> | ||||||
| 					<view class="customerSignature"> | 					<view class="customerSignature"> | ||||||
| 						<view class="title"> | 						<view class="title"> | ||||||
|                             <view class=""> |                             <view class="">客户签名</view> | ||||||
|                                   客户签名 | 							<view class="" @click="clearClick"   v-if="!isCanvas">清除 </view> | ||||||
|                             </view> |  | ||||||
|                           <view class="" @click="clearClick"   v-if="!isCanvas"> |  | ||||||
|                              清除  |  | ||||||
|                           </view> |  | ||||||
|                         </view> |                         </view> | ||||||
| 						<view class='contents'> | 						<view class='contents'> | ||||||
| 							<canvas class='firstCanvas' canvas-id="firstCanvas" @touchmove='move' | 							<canvas class='firstCanvas' canvas-id="firstCanvas" @touchmove='move' | ||||||
| 								@touchstart='start($event)' @touchend='end' @touchcancel='cancel' @longtap='tap' | 								@touchstart='start($event)' @touchend='end' @touchcancel='cancel' @longtap='tap' | ||||||
| 								disable-scroll='true' @error='error'> | 								disable-scroll='false' @error='error'> | ||||||
| 							</canvas> | 							</canvas> | ||||||
| 							<!-- <button @click='clearClick'>清除</button> --> | 							<!-- <button @click='clearClick'>清除</button> --> | ||||||
| 							<!--          <button @click='saveClick'>保存图片</button> --> | 							<!--          <button @click='saveClick'>保存图片</button> --> | ||||||
|  | @ -134,7 +130,7 @@ | ||||||
| 					</view> | 					</view> | ||||||
| 					<view class="remark"> | 					<view class="remark"> | ||||||
| 						<view class="title">备注内容</view> | 						<view class="title">备注内容</view> | ||||||
| 						<textarea class="textarea" v-model="remarkText" placeholder="请输入备注内容" /> | 						<textarea @focus="remarkEv" class="textarea" v-model="remarkText" placeholder="请输入备注内容" /> | ||||||
| 					</view> | 					</view> | ||||||
| 				</view> | 				</view> | ||||||
| 				<button class="submit-button" type="default" @tap="submitEv">提交审核</button> | 				<button class="submit-button" type="default" @tap="submitEv">提交审核</button> | ||||||
|  | @ -197,13 +193,13 @@ | ||||||
| 				billingIndex:0,//开票类型 0:专票 1:普票 2:不开票 | 				billingIndex:0,//开票类型 0:专票 1:普票 2:不开票 | ||||||
| 				isMoney: true,//是否收款 | 				isMoney: true,//是否收款 | ||||||
| 				isCanvas: true, | 				isCanvas: true, | ||||||
| 				signImage: '',//签名图片 |  | ||||||
| 				ifCollectionCode:false,//是否显示收款码 | 				ifCollectionCode:false,//是否显示收款码 | ||||||
| 				remarkText:'',//备注内容 | 				remarkText:'',//备注内容 | ||||||
| 				saveTimer:null,//保存签名延迟时间事件 | 				saveTimer:null,//保存签名延迟时间事件 | ||||||
| 				flag:true,//防抖 | 				flag:true,//防抖 | ||||||
| 				signId:'',//签名图片id | 				signId:'',//签名图片id | ||||||
| 				orderId:''//工单id | 				orderId:'',//工单id | ||||||
|  | 				bottomHeight:'' | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		computed:{ | 		computed:{ | ||||||
|  | @ -306,9 +302,12 @@ | ||||||
| 						} | 						} | ||||||
| 						handleWorkOrderSubmit(params).then(res=>{ | 						handleWorkOrderSubmit(params).then(res=>{ | ||||||
| 							if(res.code) { | 							if(res.code) { | ||||||
|  | 								this.$toolAll.tools.showToast('提交成功,即将返回工单列表'); | ||||||
|  | 								setTimeout(()=>{ | ||||||
| 									uni.navigateTo({ | 									uni.navigateTo({ | ||||||
| 								    url: `/pagesA/workOrder/workorderTwo?id=${this.orderId}` | 									    url: `/pagesA/workOrder/workOrderLlsit` | ||||||
| 									}) | 									}) | ||||||
|  | 								},2000) | ||||||
| 							} else { | 							} else { | ||||||
| 								this.$toolAll.tools.showToast(res.msg); | 								this.$toolAll.tools.showToast(res.msg); | ||||||
| 							} | 							} | ||||||
|  | @ -325,7 +324,7 @@ | ||||||
| 				// } else  | 				// } else  | ||||||
| 				if(!this.paymentMode) { | 				if(!this.paymentMode) { | ||||||
| 					this.$toolAll.tools.showToast('请选择付款方式'); | 					this.$toolAll.tools.showToast('请选择付款方式'); | ||||||
| 				} else if(!this.signImage) { | 				} else if(!this.signId) { | ||||||
| 					this.$toolAll.tools.showToast('请签名'); | 					this.$toolAll.tools.showToast('请签名'); | ||||||
| 				} else { | 				} else { | ||||||
| 					result = true; | 					result = true; | ||||||
|  | @ -437,23 +436,54 @@ | ||||||
| 			}, | 			}, | ||||||
| 			//保存图片 | 			//保存图片 | ||||||
| 			saveClick: function() { | 			saveClick: function() { | ||||||
| 				var that = this |  | ||||||
| 				uni.canvasToTempFilePath({ | 				uni.canvasToTempFilePath({ | ||||||
| 					canvasId: 'firstCanvas', | 					canvasId: 'firstCanvas', | ||||||
| 					success: function(res) { | 					success:(res)=> { | ||||||
| 						// base64转图片路径 | 						// base64转图片路径 | ||||||
| 						base64ToPath(res.tempFilePath).then(path => { | 						// #ifdef APP-PLUS | ||||||
| 							that.signImage = path; | 						uni.saveImageToPhotosAlbum({ | ||||||
| 							console.log(that.signImage); | 							filePath: res.tempFilePath, | ||||||
| 							uploadImg({path:that.signImage}).then(res=>{ | 							success:(resimg)=> { | ||||||
| 								if(res.code) { | 								uploadImg({path:resimg.path}).then(result=>{ | ||||||
| 									that.signId = res.data.id; | 									if(result.code) { | ||||||
|  | 										this.signId = result.data.id; | ||||||
| 									} else { | 									} else { | ||||||
| 									that.$toolAll.tools.showToast(res.msg); | 										this.$toolAll.tools.showToast(result.msg); | ||||||
| 									} | 									} | ||||||
| 								}) | 								}) | ||||||
| 						}).catch(error => {}) |  | ||||||
| 							} | 							} | ||||||
|  | 						}); | ||||||
|  | 						// #endif | ||||||
|  | 						// #ifdef MP-WEIXIN | ||||||
|  | 							wx.saveFile({ | ||||||
|  | 								tempFilePath: res.tempFilePath, | ||||||
|  | 								success:(wximg)=> { | ||||||
|  | 									uploadImg({path:wximg.savedFilePath}).then(result=>{ | ||||||
|  | 										if(result.code) { | ||||||
|  | 											this.signId = result.data.id; | ||||||
|  | 										} else { | ||||||
|  | 											this.$toolAll.tools.showToast(result.msg); | ||||||
|  | 										} | ||||||
|  | 									}) | ||||||
|  | 								} | ||||||
|  | 						    }) | ||||||
|  | 						// #endif | ||||||
|  | 						// #ifdef H5 | ||||||
|  | 							uploadImg({path:res.tempFilePath}).then(result=>{ | ||||||
|  | 								if(result.code) { | ||||||
|  | 									this.signId = result.data.id; | ||||||
|  | 								} else { | ||||||
|  | 									this.$toolAll.tools.showToast(result.msg); | ||||||
|  | 								} | ||||||
|  | 							}) | ||||||
|  | 						// #endif | ||||||
|  | 					} | ||||||
|  | 				}) | ||||||
|  | 			}, | ||||||
|  | 			remarkEv(){ | ||||||
|  | 				uni.onKeyboardHeightChange(res => { | ||||||
|  | 				  console.log(res.height) | ||||||
|  | 				  this.bottomHeight = res.height + 'px' | ||||||
| 				}) | 				}) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | @ -696,6 +726,8 @@ | ||||||
| 		background-color: #FFFFFF; | 		background-color: #FFFFFF; | ||||||
| 		width: 100%; | 		width: 100%; | ||||||
| 		height: 320rpx; | 		height: 320rpx; | ||||||
|  | 		border: 2rpx dashed #cccccc; | ||||||
|  | 		border-radius: 10rpx; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.contents image { | 	.contents image { | ||||||
|  | @ -704,11 +736,6 @@ | ||||||
| 		background-color: orange; | 		background-color: orange; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	.firstCanvas { |  | ||||||
| 		border: 2rpx dashed #cccccc; |  | ||||||
| 		border-radius: 10rpx; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	.money-receiving-code { | 	.money-receiving-code { | ||||||
| 		width: 100%; | 		width: 100%; | ||||||
| 		height: 80rpx; | 		height: 80rpx; | ||||||
|  |  | ||||||
|  | @ -5,10 +5,12 @@ | ||||||
| 			<view slot="content" style="margin: -6rpx -30rpx 0 -30rpx;"> | 			<view slot="content" style="margin: -6rpx -30rpx 0 -30rpx;"> | ||||||
| 				<view class="bacf fon28 pad-sx30 pad-zy40"> | 				<view class="bacf fon28 pad-sx30 pad-zy40"> | ||||||
| 					<view class=" bold disjbac fw line-h50"> | 					<view class=" bold disjbac fw line-h50"> | ||||||
| 						<view class="mar-y20">{{project_name}}</view> | 						<!-- 项目名称 --> | ||||||
| 						<view>{{project_number}}</view> | 						<view class="mar-y20">{{orderObj.project_name || '项目名称'}}</view> | ||||||
|  | 						<!-- 项目编号 --> | ||||||
|  | 						<view>{{orderObj.order_number || '项目编号'}}</view> | ||||||
| 					</view> | 					</view> | ||||||
| 					<view class="mar-s10 mar-x30" style="color: #6b6a6a;">服务时间:{{project_time}}</view> | 					<view class="mar-s10 mar-x30" style="color: #6b6a6a;">服务时间:{{orderObj.order_time}}</view> | ||||||
| 					<view class="radius20 pad30 dis" style="border: 2rpx solid #dcdcdc;"> | 					<view class="radius20 pad30 dis" style="border: 2rpx solid #dcdcdc;"> | ||||||
| 						<image src="/static/public/icon-evaluate-pen.png" mode="widthFix" lazy-load style="width: 25rpx;height: 30rpx;"></image> | 						<image src="/static/public/icon-evaluate-pen.png" mode="widthFix" lazy-load style="width: 25rpx;height: 30rpx;"></image> | ||||||
| 						<textarea v-model="serviceExperience" maxlength="-1" class="fon24 mar-z20 width100" style="height: 200rpx;" placeholder="写下您的服务体验,帮助我们更好的管理提升" placeholder-style="font-size:24rpx;color: #aaaaaa;" /> | 						<textarea v-model="serviceExperience" maxlength="-1" class="fon24 mar-z20 width100" style="height: 200rpx;" placeholder="写下您的服务体验,帮助我们更好的管理提升" placeholder-style="font-size:24rpx;color: #aaaaaa;" /> | ||||||
|  | @ -50,14 +52,17 @@ | ||||||
| 					{imgsrc:''} | 					{imgsrc:''} | ||||||
| 				], | 				], | ||||||
| 				tempImgId:[], | 				tempImgId:[], | ||||||
| 				project_name:'长沙XXXXXXXXX项目名称', |  | ||||||
| 				project_number:'GD20220108-1002', |  | ||||||
| 				project_time:'2022-01-11 15 : 27', |  | ||||||
| 				rateNum:5,//技术服务评分 | 				rateNum:5,//技术服务评分 | ||||||
| 				attitudeNum:5,//客服态度评分 | 				attitudeNum:5,//客服态度评分 | ||||||
| 				serviceExperience:'',//服务体验 | 				serviceExperience:'',//服务体验 | ||||||
| 				flag:true, | 				flag:true, | ||||||
| 				orderId:''//工单id | 				orderId:'',//工单id | ||||||
|  | 				orderObj: { | ||||||
|  | 					order_id:28, | ||||||
|  | 					order_number:"", | ||||||
|  | 					order_time:"", | ||||||
|  | 					project_name:"" | ||||||
|  | 				} | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		onLoad(op) { | 		onLoad(op) { | ||||||
|  | @ -70,7 +75,7 @@ | ||||||
| 			getOrderInfo(){ | 			getOrderInfo(){ | ||||||
| 				this.$requst.get('/universal/api.order/evaluate_order',{order_id:this.orderId}).then(res=>{ | 				this.$requst.get('/universal/api.order/evaluate_order',{order_id:this.orderId}).then(res=>{ | ||||||
| 					if(res.code) { | 					if(res.code) { | ||||||
| 						 | 						this.orderObj = res.data; | ||||||
| 					} else { | 					} else { | ||||||
| 						this.$toolAll.tools.showToast(res.msg); | 						this.$toolAll.tools.showToast(res.msg); | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
|  | @ -106,7 +106,7 @@ | ||||||
| 				id_card_no:'', // 身份证号码 | 				id_card_no:'', // 身份证号码 | ||||||
| 				imgList:[], | 				imgList:[], | ||||||
| 				flag:true, | 				flag:true, | ||||||
| 				temporaryImg:[] | 				temporaryImg:[], | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
|         onLoad() { |         onLoad() { | ||||||
|  | @ -140,7 +140,13 @@ | ||||||
| 						this.imgList[3] = res.data.agreement_document; | 						this.imgList[3] = res.data.agreement_document; | ||||||
| 						// 技能证书 | 						// 技能证书 | ||||||
| 						this.imgList[4] = res.data.skills_certificate; | 						this.imgList[4] = res.data.skills_certificate; | ||||||
| 						// this.temporaryImg = this.imgList[4]; | 						this.temporaryImg = [ | ||||||
|  | 							res.data.idcard_front_value, | ||||||
|  | 							res.data.idcard_reverse_value, | ||||||
|  | 							res.data.accident_insurance_value, | ||||||
|  | 							res.data.agreement_document_value, | ||||||
|  | 							res.data.skills_certificate_value | ||||||
|  | 						]; | ||||||
| 					} | 					} | ||||||
| 			   }) | 			   }) | ||||||
| 			}, | 			}, | ||||||
|  | @ -164,12 +170,14 @@ | ||||||
| 						} | 						} | ||||||
| 			 | 			 | ||||||
| 						this.$requst.post('/universal/api.user/user_info',params).then(res=>{ | 						this.$requst.post('/universal/api.user/user_info',params).then(res=>{ | ||||||
| 							if(res.code==1){ | 							if(res.code){ | ||||||
| 								this.$toolAll.tools.showToast('保存成功'); | 								this.$toolAll.tools.showToast('保存成功'); | ||||||
| 								setTimeout(()=>{ | 								setTimeout(()=>{ | ||||||
| 									uni.navigateBack({delta:1}) | 									uni.navigateBack({delta:1}) | ||||||
| 								},1000) | 								},1000) | ||||||
|                              |                              | ||||||
|  | 							} else { | ||||||
|  | 								this.$toolAll.tools.showToast(res.msg); | ||||||
| 							} | 							} | ||||||
| 						}) | 						}) | ||||||
| 					} else { | 					} else { | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| 		<status-nav :navBarTitle="detailTitle" returnColor="#c2c2c2"></status-nav> | 		<status-nav :navBarTitle="detailTitle" returnColor="#c2c2c2"></status-nav> | ||||||
| 		<container-subgroup> | 		<container-subgroup> | ||||||
| 			<view slot="content" style="margin: 0 -30rpx;" class="fon28"> | 			<view slot="content" style="margin: 0 -30rpx;" class="fon28"> | ||||||
| 				<view class="bacf pad-zy30 pad-sx20" style="margin-top: -10rpx;"> | 				<view class="bacf pad-zy30 pad-sx20" style="margin-top: -10rpx;" v-if="dataObj"> | ||||||
| 					<!-- 标题 --> | 					<!-- 标题 --> | ||||||
| 					<view class="fon38 col0 tcenter">{{dataObj.title}}</view> | 					<view class="fon38 col0 tcenter">{{dataObj.title}}</view> | ||||||
| 					<!-- 时间 --> | 					<!-- 时间 --> | ||||||
|  | @ -25,15 +25,17 @@ | ||||||
| 	export default { | 	export default { | ||||||
| 		data() { | 		data() { | ||||||
| 			return { | 			return { | ||||||
| 				detailTitle:'', | 				detailTitle:'方案详情', | ||||||
| 				current:0, | 				current:0, | ||||||
| 				dataObj:{}, | 				dataObj:'', | ||||||
| 				rich_text:''//富文本 | 				rich_text:''//富文本 | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		onLoad(op) { | 		onLoad(op) { | ||||||
|  | 			if(op.index!=undefined) { | ||||||
| 				this.detailTitle = `${['方案详情','详情概述','产品详情'][op.index*1]}`; | 				this.detailTitle = `${['方案详情','详情概述','产品详情'][op.index*1]}`; | ||||||
| 				this.current = op.index*1; | 				this.current = op.index*1; | ||||||
|  | 			} | ||||||
| 			this.getDetail(op.id); | 			this.getDetail(op.id); | ||||||
| 		}, | 		}, | ||||||
| 		methods: { | 		methods: { | ||||||
|  |  | ||||||
|  | @ -42,7 +42,7 @@ | ||||||
| 		data() { | 		data() { | ||||||
| 			return { | 			return { | ||||||
| 				rateNum:5, | 				rateNum:5, | ||||||
| 				ifPlanFault:'', | 				ifPlanFault:'解决方案', | ||||||
| 				current:'', | 				current:'', | ||||||
| 				size:20, | 				size:20, | ||||||
| 				page:1, | 				page:1, | ||||||
|  | @ -59,8 +59,10 @@ | ||||||
| 			} | 			} | ||||||
| 		}, | 		}, | ||||||
| 		onLoad(op) { | 		onLoad(op) { | ||||||
|  | 			if(op.index!=undefined) { | ||||||
| 				this.ifPlanFault = `${['解决方案','常见故障'][op.index*1]}`; | 				this.ifPlanFault = `${['解决方案','常见故障'][op.index*1]}`; | ||||||
| 				this.current = op.index*1; | 				this.current = op.index*1; | ||||||
|  | 			} | ||||||
| 			if(op.type_id!=undefined) this.type_id = op.type_id; | 			if(op.type_id!=undefined) this.type_id = op.type_id; | ||||||
| 			this.getPlanFault(); | 			this.getPlanFault(); | ||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
|  | @ -17,7 +17,6 @@ | ||||||
| 				</view> | 				</view> | ||||||
| 				<view class="bbot disac pad-sx30 pad-zy30"> | 				<view class="bbot disac pad-sx30 pad-zy30"> | ||||||
| 					<view class="mar-y30 flexs disjbac" :style="{width: eareWidth + 'px'}">地 <view>区<text style="color: red;">*</text></view></view> | 					<view class="mar-y30 flexs disjbac" :style="{width: eareWidth + 'px'}">地 <view>区<text style="color: red;">*</text></view></view> | ||||||
| 					<!-- <view class="disjbac width100" @tap="chooseRegion"> --> |  | ||||||
| 					<view class="disjbac width100" @tap="openPicker"> | 					<view class="disjbac width100" @tap="openPicker"> | ||||||
| 						<view>{{region}}</view> | 						<view>{{region}}</view> | ||||||
| 						<i class="icon icon-next col9" style="font-size: 30rpx;"></i> | 						<i class="icon icon-next col9" style="font-size: 30rpx;"></i> | ||||||
|  | @ -68,12 +67,12 @@ | ||||||
| 				    cityName:'', | 				    cityName:'', | ||||||
| 				    townName:'', | 				    townName:'', | ||||||
| 				}, | 				}, | ||||||
| 				region:'湖南省株洲市芦淞区', | 				region:'',//地区 | ||||||
| 				newProvice:'', | 				newProvice:'',//省/市 | ||||||
| 				newCity:'', | 				newCity:'',//市/区 | ||||||
| 				newDistrict:'', | 				newDistrict:'',//区 | ||||||
| 				detailed_address:'', | 				detailed_address:'',//详细地址 | ||||||
| 				remarkText:'', | 				remarkText:'',//备注 | ||||||
| 				eareWidth:'', | 				eareWidth:'', | ||||||
| 				flag:true | 				flag:true | ||||||
| 			} | 			} | ||||||
|  | @ -83,6 +82,7 @@ | ||||||
| 			query.select('#timeBox').boundingClientRect((rect) => { | 			query.select('#timeBox').boundingClientRect((rect) => { | ||||||
| 				this.eareWidth = rect.width; | 				this.eareWidth = rect.width; | ||||||
| 			}).exec() | 			}).exec() | ||||||
|  | 			this.getDistrict(); | ||||||
| 		}, | 		}, | ||||||
| 		methods: { | 		methods: { | ||||||
| 			// 提交保存 | 			// 提交保存 | ||||||
|  | @ -93,20 +93,22 @@ | ||||||
| 						let params = { | 						let params = { | ||||||
| 							is_working:this.personnelStatus[this.statusNum].id,//人员状态 | 							is_working:this.personnelStatus[this.statusNum].id,//人员状态 | ||||||
| 							working_hours:this.workingHours[this.hoursNum].id ,//工作时段 | 							working_hours:this.workingHours[this.hoursNum].id ,//工作时段 | ||||||
|  | 							area_id:272, | ||||||
| 							area:this.region,//地区 | 							area:this.region,//地区 | ||||||
| 							address:this.detailed_address,//详细地址 | 							address:this.detailed_address,//详细地址 | ||||||
| 							service_distance: parseFloat(this.serviceRange[this.rangeNum]) || 0,//服务范围 | 							service_distance: parseFloat(this.serviceRange[this.rangeNum]) || 0,//服务范围 | ||||||
| 							remark:this.remarkText//备注 | 							remark:this.remarkText//备注 | ||||||
| 						} | 						} | ||||||
| 						console.log(params,87); | 						this.$requst.post('/universal/api.user/service_area',params).then(res=>{ | ||||||
| 						// this.$requst.post('/universal/api.user/service_area',params).then(res=>{ | 							if(res.code) { | ||||||
| 						// 	if(res.code) { | 								this.$toolAll.tools.showToast('保存成功'); | ||||||
| 						// 		this.$toolAll.tools.showToast('保存成功'); | 								setTimeout(()=>{ | ||||||
| 						// 		setTimeout(()=>{ | 									uni.navigateBack({delta:1}) | ||||||
| 						// 			uni.navigateBack({delta:1}) | 								},1000) | ||||||
| 						// 		},1000) | 							} else { | ||||||
| 						// 	} | 								this.$toolAll.tools.showToast(res.msg); | ||||||
| 						// }) | 							} | ||||||
|  | 						}) | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			}, | 			}, | ||||||
|  | @ -122,33 +124,6 @@ | ||||||
| 				} | 				} | ||||||
| 				return result; | 				return result; | ||||||
| 			}, | 			}, | ||||||
| 			// 选择地区 |  | ||||||
| 			chooseRegion(){ |  | ||||||
| 				uni.getLocation({ |  | ||||||
| 					type: 'gcj02', //返回可以用于uni.openLocation的经纬度 |  | ||||||
| 					success: function (res) { |  | ||||||
| 						const latitude = res.latitude; |  | ||||||
| 						const longitude = res.longitude; |  | ||||||
| 						console.log(latitude,longitude,78); |  | ||||||
| 						uni.chooseLocation({ |  | ||||||
| 							success: function (res) { |  | ||||||
| 								console.log(res,81); |  | ||||||
| 								console.log('位置名称:' + res.name); |  | ||||||
| 								console.log('详细地址:' + res.address); |  | ||||||
| 								console.log('纬度:' + res.latitude); |  | ||||||
| 								console.log('经度:' + res.longitude); |  | ||||||
| 							} |  | ||||||
| 						}); |  | ||||||
| 						// uni.openLocation({ |  | ||||||
| 						// 	latitude: latitude, |  | ||||||
| 						// 	longitude: longitude, |  | ||||||
| 						// 	success: function () { |  | ||||||
| 						// 		console.log('success'); |  | ||||||
| 						// 	} |  | ||||||
| 						// }); |  | ||||||
| 					} |  | ||||||
| 				}); |  | ||||||
| 			}, |  | ||||||
| 			getDistrict() { | 			getDistrict() { | ||||||
| 				let ya = this | 				let ya = this | ||||||
| 				uni.getLocation({ | 				uni.getLocation({ | ||||||
|  | @ -158,11 +133,22 @@ | ||||||
| 							header: { | 							header: { | ||||||
| 								'Content-Type':'application/json' | 								'Content-Type':'application/json' | ||||||
| 							}, | 							}, | ||||||
| 							success:function(res) { | 							success:(res)=> { | ||||||
| 								// console.log('地址数据:',res) | 								// console.log('地址数据:',res) | ||||||
| 								ya.newProvice = res.data.result.address_component.province | 								let provinceStr = res.data.result.address_component.province; | ||||||
| 								ya.newCity = res.data.result.address_component.city | 								if(provinceStr=='北京市') { | ||||||
| 								ya.newDistrict = res.data.result.address_component.district | 									provinceStr = '北京'; | ||||||
|  | 								} else if(provinceStr=='天津市') { | ||||||
|  | 									provinceStr = '天津'; | ||||||
|  | 								} else if(provinceStr=='上海市') { | ||||||
|  | 									provinceStr = '上海'; | ||||||
|  | 								} else if(provinceStr=='重庆市') { | ||||||
|  | 									provinceStr = '重庆'; | ||||||
|  | 								} | ||||||
|  | 								ya.newProvice = provinceStr; | ||||||
|  | 								ya.newCity = res.data.result.address_component.city; | ||||||
|  | 								ya.newDistrict = res.data.result.address_component.district; | ||||||
|  | 								this.region = ya.newProvice + ya.newCity + ya.newDistrict; | ||||||
| 							} | 							} | ||||||
| 						}) | 						}) | ||||||
| 					}, | 					}, | ||||||
|  |  | ||||||
|  | @ -142,7 +142,61 @@ | ||||||
| 			}, | 			}, | ||||||
| 			// 检测版本事件 | 			// 检测版本事件 | ||||||
| 			checkEdition(){ | 			checkEdition(){ | ||||||
| 				console.log('检测版本事件'); | 				// status	int	 升级标志,1:需要升级;0:无需升级   | ||||||
|  | 				// note	string	 升级日志   | ||||||
|  | 				// android_url	string	 安卓包下载地址   | ||||||
|  | 				// ios_url	string	 苹果更新商店地址   | ||||||
|  | 				// 检测升级 | ||||||
|  | 				plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => { | ||||||
|  | 					var platform = uni.getSystemInfoSync().platform; | ||||||
|  | 					this.$requst.get('/universal/api.other/update_version',{version:widgetInfo.version}).then(res=>{ | ||||||
|  | 						if(res.code) { | ||||||
|  | 							// 判断是否需要更新 | ||||||
|  | 							if (res.data.status) { | ||||||
|  | 								//content是版本更新内容 \n换行 | ||||||
|  | 								uni.showModal({ | ||||||
|  | 									title:`检测到有新版本`, | ||||||
|  | 									content:res.data.note, | ||||||
|  | 									confirmText:'更新', | ||||||
|  | 									cancelText:'取消', | ||||||
|  | 									success: (result) => { | ||||||
|  | 										if(result.confirm) { | ||||||
|  | 											//ios用户pkgUrl是苹果市场App地址,android自定义下载地址 | ||||||
|  | 											if(platform == 'ios'){ | ||||||
|  | 												// plus.runtime.launchApplication({ | ||||||
|  | 												// 	action: `itms-apps://itunes.apple.com/cn/app/id${appleId}?mt=8` | ||||||
|  | 												// }, function(e) { | ||||||
|  | 												// 	console.log('Open system default browser failed: ' + e.message); | ||||||
|  | 												// }); | ||||||
|  | 												plus.runtime.openURL(res.data.ios_url); | ||||||
|  | 											}else{ | ||||||
|  | 												var downloadTask = uni.downloadFile({ | ||||||
|  | 													url: res.data.android_url, | ||||||
|  | 													success: (downloadResult) => { | ||||||
|  | 														if (downloadResult.statusCode === 200) { | ||||||
|  | 															plus.runtime.install(downloadResult.tempFilePath, {force: false }, function() { | ||||||
|  | 																plus.runtime.restart(); | ||||||
|  | 															}, (e) => { | ||||||
|  | 																uni.showToast({ | ||||||
|  | 																	title: '安装升级包失败', | ||||||
|  | 																	icon: 'none' | ||||||
|  | 																}) | ||||||
|  | 															}); | ||||||
|  | 														} | ||||||
|  | 													} | ||||||
|  | 												}); | ||||||
|  | 												downloadTask.onProgressUpdate((e)=>{ | ||||||
|  | 													// 监听进度条 | ||||||
|  | 													// this.progress = e.progress | ||||||
|  | 												}) | ||||||
|  | 											} | ||||||
|  | 										} | ||||||
|  | 									} | ||||||
|  | 								}) | ||||||
|  | 							}  | ||||||
|  | 						} | ||||||
|  | 					}) | ||||||
|  | 				}); | ||||||
| 			}, | 			}, | ||||||
| 			// 去服务协议、服务条款、隐私政策、合作协议、飞猴云服务页面 | 			// 去服务协议、服务条款、隐私政策、合作协议、飞猴云服务页面 | ||||||
| 			gopageEv(index) { | 			gopageEv(index) { | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								readme.md
								
								
								
								
							
							
						
						|  | @ -1,19 +0,0 @@ | ||||||
| <!-- 暂无更多组件参数的使用 |  | ||||||
| 
 |  | ||||||
| 组件一 |  | ||||||
| <nothing-page  |  | ||||||
| 	:imgSrc="图片路径可相对、可绝对、可网络"  |  | ||||||
| 	:currentType="0,1,2,..."  |  | ||||||
| 	:content="'-- NO MORE --'"></nothing-page>  |  | ||||||
| 
 |  | ||||||
| 组件二 |  | ||||||
| <pitera  |  | ||||||
| 	:textColor="'#999999'" |  | ||||||
| 	:textStr="'-- NO MORE --'" |  | ||||||
| 	:textFontSize="'24rpx'" |  | ||||||
| 	:ifBold="false" |  | ||||||
| 	:ifCenter="true" |  | ||||||
| 	:paddingStr="'20rpx'"></pitera> |  | ||||||
| 	 |  | ||||||
| --> |  | ||||||
| 
 |  | ||||||
| Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 799 B | 
| Before Width: | Height: | Size: 395 B After Width: | Height: | Size: 769 B | 
| Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 699 B | 
| Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 488 B | 
| Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 646 B | 
| Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 600 B | 
| Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.1 KiB | 
| Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 756 B | 
| Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 519 B | 
| Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 697 B | 
| Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 635 B | 
|  | @ -64,7 +64,7 @@ const cfu = { | ||||||
|       if(index==0){ |       if(index==0){ | ||||||
|       	return '随便用'+item.data+'年' |       	return '随便用'+item.data+'年' | ||||||
|       }else{ |       }else{ | ||||||
|       	return item.name+item.data+'天' |       	return item.name+item.data+'%' | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "pieDemo":function(val, index, series){ |     "pieDemo":function(val, index, series){ | ||||||
|  |  | ||||||