gjy 2 vuotta sitten
vanhempi
commit
c6ace5cd8e
42 muutettua tiedostoa jossa 5543 lisäystä ja 568 poistoa
  1. 18 17
      App.vue
  2. 74 0
      agconnect-services.json
  3. 88 2
      common/helper.js
  4. 2 1
      config/index.js
  5. 2 0
      main.js
  6. 7 3
      manifest.json
  7. 101 2
      pages.json
  8. 3 0
      pages/clock/supp_clock.vue
  9. 21 12
      pages/clock/the_clock.vue
  10. 8 209
      pages/clock/the_clock_record.vue
  11. 9 1
      pages/erp/exWarehousing/exWarehousing.vue
  12. 17 6
      pages/erpbusiness/add_quality_testing.vue
  13. 22 22
      pages/erpbusiness/edit_quality_testing.vue
  14. 1 1
      pages/erpbusiness/index.vue
  15. 11 4
      pages/erpbusiness/quality_testing.vue
  16. 11 6
      pages/erpbusiness/sendCommand.vue
  17. 475 0
      pages/fuelfilling/apply_for_reimbursement.vue
  18. 308 0
      pages/fuelfilling/the_fuel_filling.vue
  19. 256 0
      pages/fuelfilling/track_addition.vue
  20. 294 0
      pages/leave/the_leave.vue
  21. 98 0
      pages/leave/the_leave_record.vue
  22. 573 0
      pages/shortDistance/short_distance_record.vue
  23. 244 0
      pages/shortDistance/short_track_addition.vue
  24. 13 11
      pages/task/audit/freight_setting_approval.vue
  25. 113 88
      pages/task/audit/freight_settlement_approval.vue
  26. 478 0
      pages/task/audit/leave_approve.vue
  27. 245 0
      pages/task/audit/leave_details.vue
  28. 2 0
      pages/task/audit/purchasecontract.vue
  29. 462 0
      pages/task/audit/supp_clock_approve.vue
  30. 229 0
      pages/task/audit/supp_clock_details.vue
  31. 89 6
      pages/task/audit/warehouse_warrant.vue
  32. 25 0
      pages/task/my_task.vue
  33. 1 1
      pages/user/setUp.vue
  34. 28 1
      pages/user/user.vue
  35. BIN
      static/images/fuel/jt.png
  36. 16 0
      uni_modules/uni-icons/changelog.md
  37. 1167 130
      uni_modules/uni-icons/components/uni-icons/icons.js
  38. 11 1
      uni_modules/uni-icons/components/uni-icons/uni-icons.vue
  39. 7 3
      uni_modules/uni-icons/package.json
  40. 2 40
      uni_modules/uni-icons/readme.md
  41. 11 0
      util/util.js
  42. 1 1
      webim.js

+ 18 - 17
App.vue

@@ -169,21 +169,22 @@
 		},
 		onLaunch: function() {
 			// #ifdef APP-PLUS
-			
-			//获取安卓版本号 
-			pushLive.checkAndroidVersion(function(res) {
-				console.log(res)
-			})
-			//注意:开启服务之后,配置后台运行,白名单,自启动,即可实现长时间保活,黑屏传数据
-			this.goStartService();
-			// !!!如果在设置后台运行的情况下,黑屏不发送数据,请使用setInterval代替 定时任务回调
-			var globalEvent = uni.requireNativePlugin('globalEvent');
-			globalEvent.addEventListener('doJobEvent', function() {
-				console.log("---------")
-				/* uni.request({}) */
-			});
-			
-			
+			let type = uni.getSystemInfoSync().platform
+			console.log(type)
+			if (type == "android") {
+				//注意:开启服务之后,配置后台运行,白名单,自启动,即可实现长时间保活,黑屏传数据
+				this.goStartService();
+				// !!!如果在设置后台运行的情况下,黑屏不发送数据,请使用setInterval代替 定时任务回调
+				var globalEvent = uni.requireNativePlugin('globalEvent');
+				globalEvent.addEventListener('doJobEvent', function() {
+					console.log("---------")
+					/* uni.request({}) */
+				});
+				//获取安卓版本号
+				pushLive.checkAndroidVersion(function(res) {
+					console.log(res)
+				})
+			}
 			
 			var that = this
 			plus.push.getClientInfoAsync((info) => {
@@ -261,7 +262,7 @@
 
 			}, false);
 			// #endif
-			this.$socket.initWebIM(this.$ws, true, true)
+			// this.$socket.initWebIM(this.$ws, true, true)
 			let userInfo = uni.getStorageSync('userInfo') || '';
 			if (userInfo.id) {
 				//更新登陆状态
@@ -278,7 +279,7 @@
 			let type = uni.getSystemInfoSync().platform
 			console.log(type)
 			if (type == "android") {
-				// appUpdate()
+				appUpdate()
 			}
 			console.log('App Show')
 		},

+ 74 - 0
agconnect-services.json

@@ -0,0 +1,74 @@
+{
+	"agcgw":{
+		"backurl":"connect-drcn.hispace.hicloud.com",
+		"url":"connect-drcn.dbankcloud.cn",
+		"websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com",
+		"websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn"
+	},
+	"agcgw_all":{
+		"CN":"connect-drcn.dbankcloud.cn",
+		"CN_back":"connect-drcn.hispace.hicloud.com",
+		"DE":"connect-dre.dbankcloud.cn",
+		"DE_back":"connect-dre.hispace.hicloud.com",
+		"RU":"connect-drru.dbankcloud.cn",
+		"RU_back":"connect-drru.hispace.hicloud.com",
+		"SG":"connect-dra.dbankcloud.cn",
+		"SG_back":"connect-dra.hispace.hicloud.com"
+	},
+	"client":{
+		"cp_id":"2850086000486050333",
+		"product_id":"736430079245821471",
+		"client_id":"659805206376104640",
+		"client_secret":"91F5CB5AA95A8878B3022B1988C952053A63A02A08C7EF04869E5F56207AB4AB",
+		"project_id":"736430079245821471",
+		"app_id":"104471783",
+		"api_key":"CwEAAAAAU95O9eZMByBMmFRN7fybSWPt9pqA/BznJzjcigjXRX4r9S3csz9EmJ9aWHGM8bGiJu2Ar5tEGmyZWyvP4orgjsudqzc=",
+		"package_name":"uni.UNI7297DA2"
+	},
+	"oauth_client":{
+		"client_id":"104471783",
+		"client_type":1
+	},
+	"app_info":{
+		"app_id":"104471783",
+		"package_name":"uni.UNI7297DA2"
+	},
+	"service":{
+		"analytics":{
+			"collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
+			"collector_url_ru":"datacollector-drru.dt.hicloud.com,datacollector-drru.dt.dbankcloud.cn",
+			"collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn",
+			"collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn",
+			"collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
+			"resource_id":"p1",
+			"channel_id":""
+		},
+		"search":{
+			"url":"https://search-drcn.cloud.huawei.com"
+		},
+		"cloudstorage":{
+			"storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn"
+		},
+		"ml":{
+			"mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn"
+		}
+	},
+	"region":"CN",
+	"configuration_version":"3.0",
+	"appInfos":[
+		{
+			"package_name":"uni.UNI7297DA2",
+			"client":{
+				"app_id":"104471783"
+			},
+			"app_info":{
+				"package_name":"uni.UNI7297DA2",
+				"app_id":"104471783"
+			},
+			"oauth_client":{
+				"client_type":1,
+				"client_id":"104471783"
+			}
+		}
+	]
+}

+ 88 - 2
common/helper.js

@@ -169,7 +169,90 @@ const convertCurrency = (money) => {
 	}
 	return chineseStr;
 }
-
+//获取省份简称
+const getProvinceAbbreviation = (province) => {
+	if (province == "北京市" || province == "北京")
+		return "京";
+	else if (province == "天津市" || province == "天津")
+		return "津";
+	else if (province == "重庆市" || province == "重庆")
+		return "渝";
+	else if (province == "上海市" || province == "上海")
+		return "沪";
+	else if (province == "河北省" || province == "河北")
+		return "冀";
+	else if (province == "山西省" || province == "山西")
+		return "晋";
+	else if (province == "辽宁省" || province == "辽宁")
+		return "辽";
+	else if (province == "吉林省" || province == "吉林")
+		return "吉";
+	else if (province == "黑龙江省" || province == "黑龙江")
+		return "黑";
+	else if (province == "江苏省" || province == "江苏")
+		return "苏";
+	else if (province == "浙江省" || province == "浙江")
+		return "浙";
+	else if (province == "安徽省" || province == "安徽")
+		return "皖";
+	else if (province == "福建省" || province == "福建")
+		return "闽";
+	else if (province == "江西省" || province == "江西")
+		return "赣";
+	else if (province == "山东省" || province == "山东")
+		return "鲁";
+	else if (province == "河南省" || province == "河南")
+		return "豫";
+	else if (province == "湖北省" || province == "湖北")
+		return "鄂";
+	else if (province == "湖南省" || province == "湖南")
+		return "湘";
+	else if (province == "广东省" || province == "广东")
+		return "粤";
+	else if (province == "海南省" || province == "海南")
+		return "琼";
+	else if (province == "四川省" || province == "四川")
+		return "川";
+	else if (province == "贵州省" || province == "贵州")
+		return "贵";
+	else if (province == "云南省" || province == "云南")
+		return "云";
+	else if (province == "陕西省" || province == "陕西")
+		return "陕";
+	else if (province == "甘肃省" || province == "甘肃")
+		return "甘";
+	else if (province == "青海省" || province == "青海")
+		return "青";
+	else if (province == "台湾省" || province == "台湾")
+		return "台";
+	else if (province == "内蒙古自治区" || province == "内蒙古")
+		return "蒙";
+	else if (province == "广西壮族自治区" || province == "广西")
+		return "桂";
+	else if (province == "宁夏回族自治区" || province == "宁夏")
+		return "宁";
+	else if (province == "新疆维吾尔自治区" || province == "新疆")
+		return "新";
+	else if (province == "西藏自治区" || province == "西藏")
+		return "藏";
+	else if (province == "香港特别行政区" || province == "香港")
+		return "港";
+	else if (province == "澳门特别行政区" || province == "澳门")
+		return "澳";
+}
+// 获取市、区简称
+const filterUrban = (s) => {
+	if (s.lastIndexOf('市') != -1) {
+		return s.substring(0, s.length - 1)
+	}
+	return s
+}
+const filterArea = (q) => {
+	if (q.lastIndexOf('区') != -1) {
+		return q.substring(0, q.length - 1)
+	}
+	return q
+}
 
 
 export default {
@@ -181,5 +264,8 @@ export default {
 	getListByUserId,
 	setAudit,
 	getNowFormatDate,
-	convertCurrency
+	getProvinceAbbreviation,
+	convertCurrency,
+	filterUrban,
+	filterArea,
 }

+ 2 - 1
config/index.js

@@ -1,11 +1,12 @@
 const dev = {
 	baseUrl: 'https://www.zthymaoyi.com',
 	// baseUrl: 'http://localhost:8080/',
-	// baseUrlNew: 'http://192.168.110.138:9100/',
+	// baseUrlNew: 'http://192.168.110.67:9100/',
 	// baseUrlNew: 'http://192.168.1.118:8090/',
 	// baseUrlNew: 'http://192.168.1.114:8090/',
 	// baseUrlNew: 'http://192.168.1.122:8090/',
 	baseUrlNew: 'http://192.168.110.82:8090/',
+	// baseUrlNew: 'http://192.168.110.138:8090/',
 	// baseUrlNew: 'http://api1.eliangeyun.com/',
 	h5Appid: 'wxb66b599f7f61b46f',
 	debug: false

+ 2 - 0
main.js

@@ -22,6 +22,8 @@ Vue.component('my',my)
 import uView from "./components/uview-ui";
 Vue.use(uView);
 const vuexStore = require("@/store/$u.mixin.js");
+import helper from'@/common/helper.js'
+Vue.prototype.$helper = helper
 
 Vue.mixin(vuexStore);
 import webim from 'webim.js';

+ 7 - 3
manifest.json

@@ -2,8 +2,8 @@
     "name" : "易粮易运",
     "appid" : "__UNI__7297DA2",
     "description" : "易粮易运——为天下粮食人服务的App",
-    "versionName" : "2.1.100",
-    "versionCode" : 21100,
+    "versionName" : "2.1.104",
+    "versionCode" : 21104,
     "transformPx" : false,
     /* SDK配置 */
     "quickapp" : {},
@@ -100,6 +100,9 @@
                         "__platform__" : [ "ios", "android" ],
                         "appkey_ios" : "64541bb9b52fe4d41d8ac5c1959cf4b9",
                         "appkey_android" : "8a601d5716a812aaf65291da18dae719"
+                    },
+                    "system" : {
+                        "__platform__" : [ "ios", "android" ]
                     }
                 }
             },
@@ -189,7 +192,8 @@
             "Maps" : {},
             "LivePusher" : {},
             "VideoPlayer" : {},
-            "Bluetooth" : {}
+            "Bluetooth" : {},
+            "Geolocation" : {}
         },
         "splashscreen" : {
             "waiting" : false

+ 101 - 2
pages.json

@@ -1349,7 +1349,7 @@
             "path" : "pages/clock/the_clock",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "打卡",
                 "enablePullDownRefresh": false
             }
             
@@ -1358,7 +1358,7 @@
             "path" : "pages/clock/the_clock_record",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "打卡记录",
                 "enablePullDownRefresh": false
             }
             
@@ -1366,6 +1366,105 @@
         ,{
             "path" : "pages/clock/supp_clock",
             "style" :                                                                                    
+            {
+                "navigationBarTitleText": "补卡",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/leave/the_leave",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "请假",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/leave/the_leave_record",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "请假记录",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/fuelfilling/the_fuel_filling",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "加油",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/fuelfilling/track_addition",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "添加轨迹",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/fuelfilling/apply_for_reimbursement",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "添加申请",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/shortDistance/short_distance_record",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "短途记录",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/shortDistance/short_track_addition",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "短途添加轨迹",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/task/audit/supp_clock_approve",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "补卡审核",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/task/audit/supp_clock_details",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/task/audit/leave_approve",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "请假审核",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/task/audit/leave_details",
+            "style" :                                                                                    
             {
                 "navigationBarTitleText": "",
                 "enablePullDownRefresh": false

+ 3 - 0
pages/clock/supp_clock.vue

@@ -157,6 +157,9 @@
 								.then(res => {
 									if (res.data.code == 200) {
 										that.$api.msg('提交成功')
+										uni.navigateTo({
+											url: '/pages/clock/the_clock_record'
+										})
 									} else {
 										that.$api.msg('提交失败')
 									}

+ 21 - 12
pages/clock/the_clock.vue

@@ -22,7 +22,7 @@
 			<view class="c-row">
 				<view class="title">打卡距离</view>
 				<view class="con-list">
-					<input type="number" v-model='clockDistance' placeholder="重新获取" :disabled="true"></input>
+					<view>{{clockDistance}}</view>
 				</view>
 			</view>
 		</view>
@@ -63,12 +63,13 @@
 				console.log(query)
 			},
 			getWarehouse() {
+				var that = this
 				this.$api.doRequest('get', '/warehouseBaseInfo/selectWarehouse', {
 					compId: uni.getStorageSync("pcUserInfo").compId,
 					warehouseType: '1'
 				}).then(res => {
 					if (res.data.data.length != 0) {
-						this.warehouseBaseInfoList = res.data.data
+						that.warehouseBaseInfoList = res.data.data
 						uni.getLocation({
 							type: 'gcj02',
 							geocode: true,
@@ -76,14 +77,15 @@
 								console.log('获取位置数据:', res);
 								console.log('当前位置的经度:' + res.longitude);
 								console.log('当前位置的纬度:' + res.latitude);
-								this.lat2 = res.latitude
-								this.lng2 = res.longitude
-								if (this.warehouseBaseInfoList.length > 0) {
-									this.clockDistance = this.utils.getDistance(this
+								that.lat2 = res.latitude
+								that.lng2 = res.longitude
+								if (that.warehouseBaseInfoList.length > 0) {
+									that.clockDistance = that.utils.getDistance(that
 										.warehouseBaseInfoList[0].warehousePositioning.split(',')[
-											1],
-										this.warehouseBaseInfoList[0].warehousePositioning.split(
-											',')[0], this.lat2, this.lng2)
+											0],
+										that.warehouseBaseInfoList[0].warehousePositioning.split(
+											',')[1], that.lat2, that.lng2)
+											that.detailData.targetLocation = that.warehouseBaseInfoList[0].warehouseName
 								}
 							},
 							fail: function(req) {
@@ -97,8 +99,9 @@
 			targetLPicker(e) {
 				this.detailData.targetLocation = this.warehouseBaseInfoList[e[0]].warehouseName
 				this.clockDistance = this.utils.getDistance(this.warehouseBaseInfoList[e[0]].warehousePositioning.split(
-						',')[1],
-					this.warehouseBaseInfoList[e[0]].warehousePositioning.split(',')[0], this.lat2, this.lng2)
+						',')[0],
+					this.warehouseBaseInfoList[e[0]].warehousePositioning.split(',')[1], this.lat2, this.lng2)
+					
 			},
 			submit() {
 				if (!this.typevalue) {
@@ -122,9 +125,15 @@
 							that.detailData.phone = uni.getStorageSync('pcUserInfo').userMobilePhone
 							that.detailData.empName = uni.getStorageSync('userInfo').userName
 							that.detailData.clockType = that.typevalue
-							that.detailData.clockDistance = "100"
+							if(that.clockDistance.indexOf("km") > -1){
+								that.detailData.clockDistance = that.clockDistance.replace("km","")*1000
+							}else{
+								that.detailData.clockDistance = that.clockDistance.replace("m","")
+							}
+							console.log(that.detailData)
 							that.$api.doRequest('post', '/clockInfo/api/addClock', that.detailData)
 								.then(res => {
+									console.log(res.data)
 									if (res.data.code == 200) {
 										that.$api.msg('提交成功')
 									} else {

+ 8 - 209
pages/clock/the_clock_record.vue

@@ -19,11 +19,10 @@
 					<uni-td align="center">
 						<view class="toClockDate" v-if="item.toClockDate">{{ item.toClockDate.split(" ")[1] }}</view>
 						<view class="toClockDate" v-else-if="!item.toClockDate">
-							<button v-if='item.status ==null' @click='supp(item)' class="uni-button" size="mini"
+							<button v-if='item.approveStatus ==null && item.status == null' @click='supp(item)' class="uni-button" size="mini"
 								type="primary" align="center" style="height: 30px;">补卡</button>
-							<button @click='examine(item)' v-if='item.status=="审核中"'
-								class='listitemStatus audit Regular' size="mini" type="primary" align="center"
-								style="height: 30px;">审核中</button>
+							<button v-if='item.approveStatus=="待人事审核"' class='listitemStatus audit Regular' size="mini"
+								type="primary" align="center" style="height: 30px;">审核中</button>
 							<button v-if='item.status=="补卡失败"' class='listitemStatus notPass Regular' size="mini"
 								type="primary" align="center" style="height: 30px;">补卡失败</button>
 							<button v-if='item.status=="补卡成功"' class='listitemStatus pass Regular' size="mini"
@@ -33,11 +32,10 @@
 					<uni-td align="center">
 						<view class="offClockDate" v-if="item.offClockDate">{{ item.offClockDate.split(" ")[1] }}</view>
 						<view class="offClockDate" v-else-if="!item.offClockDate">
-							<button v-if='item.status ==null' @click='supp' class="uni-button" size="mini"
+							<button v-if='item.approveStatus ==null && item.status == null' @click='supp(item)' class="uni-button" size="mini"
 								type="primary" align="center" style="height: 30px;">补卡</button>
-							<button @click='examine(item)' v-if='item.status=="审核中"'
-								class='listitemStatus audit Regular' size="mini" type="primary" align="center"
-								style="height: 30px;">审核中</button>
+							<button v-if='item.approveStatus=="待人事审核"' class='listitemStatus audit Regular' size="mini"
+								type="primary" align="center" style="height: 30px;">审核中</button>
 							<button v-if='item.status=="补卡失败"' class='listitemStatus notPass Regular' size="mini"
 								type="primary" align="center" style="height: 30px;">补卡失败</button>
 							<button v-if='item.status=="补卡成功"' class='listitemStatus pass Regular' size="mini"
@@ -46,26 +44,6 @@
 					</uni-td>
 				</uni-tr>
 			</uni-table>
-			<view v-if='show1' class="shade">
-				<view class="wrap">
-					<view class="alert-top">
-						<view class="title">
-							{{title}}
-						</view>
-						<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
-					</view>
-					<view class="u-textarea-style">
-						{{reasonForApplication}}
-					</view>
-					<view @click='rejectSubmit()' class="cancel">驳回</view>
-					<view @click='passSubmit()' class="confirm">通过</view>
-				</view>
-			</view>
-			<!-- <u-toast ref="uToast" />
-			<view style='padding:10px;' class='flex bottom-btn'>
-				<u-button v-if='isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
-				<u-button v-if='isSHowBtn' @click='pass' type="success" class="btn2">通过</u-button>
-			</view> -->
 		</view>
 	</view>
 </template>
@@ -75,19 +53,15 @@
 		data() {
 			return {
 				isSHowBtn: true,
-				show1: false,
 				show: false,
 				tableData: [],
 				pageSize: 10,
-				reasonForApplication: '',
 				currentPage: 1,
 				params: {
 					year: true,
 					month: true
 				},
 				isLoadMore: false,
-				title: "补卡申请",
-				auditMind: "",
 
 
 			}
@@ -113,14 +87,10 @@
 			this.getData()
 		},
 		methods: {
-			examine(item) {
-				this.show1 = true
-				this.id = item.id
-				this.reasonForApplication = item.reasonForApplication
-			},
 			dateChange(e) {
 				console.log(e)
 				this.createDate = e.year + "-" + e.month
+				this.getList()
 			},
 			getData() {
 				this.isLoadMore = true
@@ -128,7 +98,6 @@
 					pageSize: this.pageSize,
 					currentPage: this.currentPage,
 					pcFlag: 0,
-					// phone:uni.getStorageSync('pcUserInfo').userMobilePhone,
 					compId: uni.getStorageSync('pcUserInfo').compId,
 					commonId: uni.getStorageSync('pcUserInfo').userId,
 				}).then(res => {
@@ -144,6 +113,7 @@
 					pageSize: this.pageSize,
 					currentPage: this.currentPage,
 					pcFlag: 0,
+					yearMonth: this.createDate,
 					compId: uni.getStorageSync('pcUserInfo').compId,
 					commonId: uni.getStorageSync('pcUserInfo').userId,
 				}).then(res => {
@@ -154,65 +124,9 @@
 					}
 				})
 			},
-			close() {
-				this.show1 = false
-			},
-			// 驳回
-			rejectSubmit() {
-				var that = this
-				this.show1 = false
-				uni.showModal({
-					content: "是否确定驳回?",
-					showCancel: true,
-					confirmText: '确定',
-					success: function(res) {
-						if (res.confirm) {
-							that.$api.doRequest('post', '/clockInfo/api/examineClock', {
-									examineFlag: "2",
-									id: that.id
-								})
-								.then(res => {
-									if (res.data.code == 200) {
-										that.$api.msg('提交成功')
-										that.getList()
-									} else {
-										that.$api.msg('提交失败')
-									}
-								})
-						}
-					}
-				})
-			},
-			//通过
-			passSubmit() {
-				var that = this
-				this.show1 = false
-				uni.showModal({
-					content: "是否确定通过?",
-					showCancel: true,
-					confirmText: '确定',
-					success: function(res) {
-						if (res.confirm) {
-							that.$api.doRequest('post', '/clockInfo/api/examineClock', {
-									examineFlag: "1",
-									id: that.id
-								})
-								.then(res => {
-									if (res.data.code == 200) {
-										that.$api.msg('提交成功')
-										that.getList()
-									} else {
-										that.$api.msg('提交失败')
-									}
-								})
-						}
-					}
-				})
-			},
 			supp(item) {
 				uni.navigateTo({
 					url: '/pages/clock/supp_clock' + `?id=${item.id}`,
-					// url: item.url + `?companyId=${that.companyId}`
 				})
 			},
 		}
@@ -273,119 +187,4 @@
 	.uni-button {
 		margin-top: 6rpx;
 	}
-
-	.shade {
-		position: fixed;
-		top: 0;
-		left: 0;
-		height: 100%;
-		width: 100%;
-		background: rgba(0, 0, 0, 0.4);
-		z-index: 3;
-
-		.wrap {
-			position: absolute;
-			left: 0;
-			top: 0;
-			right: 0;
-			bottom: 0;
-			margin: auto;
-			background: #fff;
-			width: calc(100% - 198rpx);
-			height: 250px;
-			border-radius: 20rpx;
-
-			.alert-top {
-				padding: 33rpx;
-				display: flex;
-				justify-content: center;
-				align-items: center;
-				position: relative;
-			}
-
-			.title {
-				font-size: 32rpx;
-				font-weight: 600;
-				color: #333333;
-			}
-
-			.close {
-				position: absolute;
-				right: 33rpx;
-			}
-		}
-
-		.u-textarea-style {
-			margin: 20rpx;
-			background: #F9F9FA;
-			border-radius: 10px;
-			border: 1px solid #EEEEEE;
-			padding: 10rpx 20rpx;
-			position: relative;
-			height: 113px;
-
-			.right-bottom {
-				position: absolute;
-				right: 20rpx;
-				bottom: 20rpx;
-				color: #AFB3BF;
-			}
-		}
-
-		.cancel {
-			position: absolute;
-			display: inline-block;
-			width: 50%;
-			text-align: center;
-			bottom: 0;
-			padding: 10px;
-			border-top: 1px solid #eee;
-			font-size: 34rpx;
-		}
-
-		.confirm {
-			position: absolute;
-			display: inline-block;
-			width: 50%;
-			text-align: center;
-			bottom: 0;
-			padding: 10px;
-			border-top: 1px solid #eee;
-			font-size: 34rpx;
-		}
-
-		.cancel {
-			left: 0;
-			border-right: 1px solid #eee;
-			color: #ff0000;
-		}
-
-		.confirm {
-			right: 0;
-			color: #22C572;
-		}
-
-		.bottom-btn {
-			width: 100%;
-			position: fixed;
-			bottom: 0;
-			display: flex;
-			z-index: 2;
-			left: 0;
-			background-color: #f8f8f8;
-			flex-direction: column;
-
-			.btn1,
-			.btn2 {
-				width: 100%;
-				margin-bottom: 26rpx;
-				border-radius: 90rpx;
-			}
-
-			.btn1 {
-				background: white;
-				color: #00C265;
-			}
-		}
-	}
 </style>

+ 9 - 1
pages/erp/exWarehousing/exWarehousing.vue

@@ -929,7 +929,7 @@
 					}
 				}
 				if(!this.showCar){//若自运的合同该字段置空
-				          this.deptBudgetList.selfLoading = ""
+				          this.detailData.selfLoading = ""
 				    }
 				if (this.detailData.boxNo) {
 					this.detailData.boxNo = this.detailData.boxNo.toUpperCase()
@@ -963,6 +963,10 @@
 					content: "确定提交出库信息?",
 					success(res) {
 						if (res.confirm) {
+							uni.showLoading({
+								title: "正在提交",
+								mask: true
+							})
 							that.$api.doRequest('post', '/warehouseInOutInfo/InOutWarehouse',
 								that.detailData).then(res => {
 								console.log(res, "报异常")
@@ -994,6 +998,10 @@
 								} else {
 									that.$api.msg(res.data.message)
 								}
+								uni.hideLoading()
+							})
+							.catch(res => {
+								uni.hideLoading()
 							})
 						}
 					}

+ 17 - 6
pages/erpbusiness/add_quality_testing.vue

@@ -803,12 +803,23 @@
 						} else if (this.contractNolist[i].inOutType == '贸易服务入库') {
 							this.gridList.inOutTypeKey = 5
 						} else if (this.contractNolist[i].inOutType == '退库') {
-						  if (this.contractNolist[i].contractNo) {
-							this.gridList.tips = '买方' + this.contractNolist[i].buyer
-						  } else {
-							this.gridList.tips = '出货库' + data.sendWarehouse
-						  }
-						  this.gridList.inOutTypeKey = 6
+// <<<<<<< HEAD
+// 						  if (this.contractNolist[i].contractNo) {
+// 							this.gridList.tips = '买方' + this.contractNolist[i].buyer
+// 						  } else {
+// 							this.gridList.tips = '出货库' + data.sendWarehouse
+// 						  }
+// 						  this.gridList.inOutTypeKey = 6
+// =======
+							this.warehouseTradeCount = '000' + this.warehouseTradeCount
+							this.gridList.qualityNo = 'CGRK' + this.getdate() + this.commonWarehouseNo + this
+								.warehouseTradeCount.substring(this.warehouseTradeCount.length - 4)
+							if (this.contractNolist[i].contractNo) {
+								this.gridList.tips = '买方' + this.contractNolist[i].buyer
+							} else {
+								this.gridList.tips = '出货库' + data.sendWarehouse
+							}
+							this.gridList.inOutTypeKey = 6
 						}
 						 this.cost = this.contractNolist[i].contractPrice
 						if (this.cost) {

+ 22 - 22
pages/erpbusiness/edit_quality_testing.vue

@@ -9,37 +9,37 @@
 					<view v-if='gridList.serviceManagementType==3'>收购入库</view>
 				</view>
 			</view>
-			<view class="c-row ">
+			<view v-if="flag!=3" class="c-row ">
 				<view class="title">仓库</view>
 				<view class="con-list">
 					{{gridList.warehouseName}}
 				</view>
 			</view>
-			<view v-if='gridList.serviceManagementType==1' class="c-row ">
+			<view v-if='gridList.serviceManagementType==1&&flag!=3' class="c-row ">
 				<view class="title">任务编号</view>
 				<view class="con-list">
 					<view >{{gridList.inOutTaskNo}}</view>
 				</view>
 			</view>
-			<view v-if='gridList.serviceManagementType==1&&gridList.inOutType!="移库入库"' class="c-row ">
+			<view v-if='gridList.serviceManagementType==1&&gridList.inOutType!="移库入库"&&flag!=3' class="c-row ">
 				<view class="title">合同编号</view>
 				<view class="con-list">
 					{{gridList.contractNo}}
 				</view>
 			</view>
-			<view v-if='gridList.serviceManagementType==1&&gridList.inOutType=="移库入库"' class="c-row ">
+			<view v-if='gridList.serviceManagementType==1&&gridList.inOutType=="移库入库"&&flag!=3' class="c-row ">
 				<view class="title">移库编号</view>
 				<view class="con-list">
 					{{gridList.contractNo}}
 				</view>
 			</view>
-			<view class="c-row ">
+			<view v-if='flag!=3' class="c-row ">
 				<view class="title">业务编号</view>
 				<view class="con-list">
 					{{gridList.qualityNo}}
 				</view>
 			</view>
-			<view v-if='gridList.serviceManagementType==1' class="c-row ">
+			<view v-if='gridList.serviceManagementType==1&&flag!=3' class="c-row ">
 				<view class="title">成本</view>
 				<view class="con-list">
 					<view v-if='!coststatus'>{{gridList.cost?gridList.cost:'自动获取,不可编辑'}}</view> 
@@ -49,7 +49,7 @@
 				</view>
 				<button class='cu-btn bg-green shadow' @click="changecost">{{costtext}}</button>
 			</view>
-			<view v-if='gridList.serviceManagementType==1' class="c-row ">
+			<view v-if='gridList.serviceManagementType==1&&flag!=3' class="c-row ">
 				<view class="title">运费</view>
 				<view class="con-list flex">
 					<view v-if='!freightstatus'>{{gridList.freight?gridList.freight:'自动获取,不可编辑'}}</view>
@@ -59,19 +59,19 @@
 				</view>
 				<button class='cu-btn bg-green shadow' @click="changefreight">{{freighttext}}</button>
 			</view>
-			<view v-if='gridList.serviceManagementType==1' class="c-row ">
+			<view v-if='gridList.serviceManagementType==1&&flag!=3' class="c-row ">
 				<view class="title">扣款</view>
 				<view class="con-list">
 					<input v-model='gridList.deductionAmount' placeholder="请输入扣款" name="input" type="digit"></input>
 				</view>
 			</view>
-			<view v-if='gridList.serviceManagementType==1' class="c-row ">
+			<view v-if='gridList.serviceManagementType==1&&flag!=3' class="c-row ">
 				<view class="title">入库类型</view>
 				<view class="con-list">
 					{{gridList.inOutType?gridList.inOutType:'自动获取,不可编辑'}}
 				</view>
 			</view>
-			<view v-if='gridList.serviceManagementType==1' class="c-row ">
+			<view v-if='gridList.serviceManagementType==1&&flag!=3' class="c-row ">
 				<view class="title">入库日期</view>
 				<view class="con-list">
 					<view @click='show5=true'>{{gridList.inOutDate?gridList.inOutDate:'请选择入库日期'}}</view>
@@ -116,27 +116,27 @@
 						name="input"></input>
 				</view>
 			</view> -->
-			<view  v-if='gridList.serviceManagementType==3' class="c-row ">
+			<view  v-if='gridList.serviceManagementType==3&&flag!=3' class="c-row ">
 				<view class="title">购粮性质</view>
 				<view class="con-list">
 					<input :disabled='flag==1' v-model='gridList.natureOfGrainPurchase' placeholder="请输入购粮性质"
 						name="input"></input>
 				</view>
 			</view>
-			<view class="c-row ">
+			<view v-if='flag!=3' class="c-row ">
 				<view class="title">仓位号</view>
 				<view class="con-list">
 					<view v-if='flag!=1' @click='show=true'>{{gridList.binNumber}}</view>
 					<view v-else>{{gridList.binNumber}}</view>
 				</view>
 			</view>
-			<view class="c-row ">
+			<view v-if='flag!=3' class="c-row ">
 				<view class="title">囤位号</view>
 				<view class="con-list">
 					<input v-model='gridList.storageTagNo' placeholder="请输入囤位号" name="input"></input>
 				</view>
 			</view>
-			<view class="c-row ">
+			<view v-if='flag!=3' class="c-row ">
 				<view class="title">货名</view>
 				<view class="con-list">
 					<!-- <view v-if="flag != '0'">
@@ -148,7 +148,7 @@
 					</u-picker>
 				</view>
 			</view>
-			<view class="c-row ">
+			<view v-if='flag!=3' class="c-row ">
 				<view class="title">类型</view>
 				<view class="con-list">
 					{{gridList.type}}
@@ -172,7 +172,7 @@
 					</u-picker>
 				</view>
 			</view>
-			<view v-if='gridList.serviceManagementType==1||gridList.serviceManagementType==3&&gridList.outType=="自运"' class="c-row ">
+			<view v-if='gridList.serviceManagementType==1&&flag!=3||gridList.serviceManagementType==3&&gridList.outType=="自运"&&flag!=3' class="c-row ">
 				<view class="title">车队</view>
 				<view class="con-list">
 					<view @click='show6=true'>{{gridList.fleet?ridList.fleet:'非车队车辆'}}</view>
@@ -229,7 +229,7 @@
 					<input v-model='gridList.titleNoOther' placeholder="请输入封号" name="input" type="digit"></input>
 				</view>
 			</view>
-			<view v-if="gridList.type == '潮粮'&&gridList.serviceManagementType==3" class="c-row">
+			<view v-if="gridList.type == '潮粮'&&gridList.serviceManagementType==3&&flag!=3" class="c-row">
 				<view class="title">净重单价(元/公斤)</view>
 				<view class="con-list">
 					<input :disabled='flag==1&&pricedisabled' v-model='gridList.tidalGrainPrice'  @blur='inputprice' placeholder="自动获取,不可编辑"
@@ -237,7 +237,7 @@
 				</view>
 				<button class='cu-btn bg-green shadow' @click="changeprice">{{pricetext}}</button>
 			</view>
-			<view v-if="gridList.type == '干粮'&&gridList.serviceManagementType==3" class="c-row">
+			<view v-if="gridList.type == '干粮'&&gridList.serviceManagementType==3&&flag!=3" class="c-row">
 				<view class="title">干粮单价(元/公斤)</view>
 				<view class="con-list">
 					<input v-model='gridList.dryGrainPrice' :disabled='pricedisabled' type="digit"  @blur='inputprice' placeholder="请输入干粮单价" name="input"></input>
@@ -259,19 +259,19 @@
 				</view>
 
 			</view>
-			<view v-if="gridList.type == '干粮'" class="c-row">
+			<view v-if="gridList.type == '干粮'&&flag!=3" class="c-row">
 				<view class="title">干粮单价(元/公斤)</view>
 				<view class="con-list" @click="setPrice">
 					{{gridList.dryGrainPrice}}
 				</view>
 			</view>
 		</view>
-		<view style='padding-bottom:300rpx;'>
+		<view v-if='flag!=3' style='padding-bottom:300rpx;'>
 			<view class='wrap'>
 				<view style='margin-right:10px;' class='flex justify-between align-item-center'>
 					<view class='title_b'>化验信息</view>
-					<view class='flex justify-between align-item-center'>补录:<u-switch activeColor="#22C572"
-							v-if='flag==0' v-model="value" @change="change"></u-switch>
+					<view v-if='flag==0' class='flex justify-between align-item-center'>补录:<u-switch activeColor="#22C572"
+							 v-model="value" @change="change"></u-switch>
 					</view>
 				</view>
 				<view class="c-row ">

+ 1 - 1
pages/erpbusiness/index.vue

@@ -305,7 +305,7 @@
 				uni.hideTabBarRedDot({
 					index: 3
 				})
-				uni.clearStorageSync();
+				// uni.clearStorageSync();
 				this.$store.commit('logout')
 				this.$api.logout()
 				uni.navigateTo({

+ 11 - 4
pages/erpbusiness/quality_testing.vue

@@ -28,6 +28,7 @@
 		<view class="content">
 			<view style='background:#fff;' class="flex">
 				<view class='line' :class='statusType==""?"active":""' @click='clickstatus("")'>全部</view>
+				<view class='line' :class='statusType=="7"?"active":""' @click='clickstatus("7")'>待初检</view>
 				<view class='line' :class='statusType=="1"?"active":""' @click='clickstatus("1")'>待复检</view>
 				<view class='line' :class='statusType=="2"?"active":""' @click='clickstatus("2")'>待确认</view>
 			</view>
@@ -36,6 +37,7 @@
 					<view class="row1-left">
 						<view class="left status3" v-if="item.confirm=='1'">确</view>
 						<view v-else>
+							<view class="left status1" v-if="item.status=='待初检'">钎</view>
 							<view class="left status1" v-if="item.status=='已质检'">检</view>
 							<view class="left status2" v-if="item.status=='已称皮重'">皮</view>
 							<view class="left status3" v-if="item.status=='已称毛重'">毛</view>
@@ -55,7 +57,7 @@
 					<view class="right">{{item.customer}}</view>
 					<view class='right'>{{item.qualityInspector}} {{item.reInspector}}</view>
 				</view>
-				<view class="row2">
+				<view v-if='item.status!="待初检"' class="row2">
 					<view v-if='managementType==1'>{{item.customerName}}</view>
 					<view>{{item.carNumber}}</view>
 					<view>{{item.goodsName}}({{item.waterContent}}水)</view>
@@ -64,12 +66,14 @@
 					<view
 						v-if='getRoles("acquisitionQuality.delete")&&item.weighingManagement&&item.weighingManagement.status=="已质检"&&managementType==1'
 						@click.stop='del(item)' class='button'>删除</view>
-					<view v-if='getRoles("acquisitionQuality.initial")&&item.status=="已初检"&&managementType==1'
+					<view v-if='getRoles("acquisitionQuality.qview")&&item.status=="待初检"&&managementType==1'
+							@click.stop='edit(item,3)' class='button'>钎样</view>
+					<view v-if='getRoles("acquisitionQuality.initial")&&item.status=="待初检"&&managementType==1'
 						@click.stop='edit(item,0)' class='button'>初检</view>
 					<view
 						v-if='getRoles("acquisitionQuality.con")&&item.confirm!="1"&&item.status=="已复检"&&managementType==1'
 						@click.stop='edit(item,2)' class='button'>确认</view>
-					<view v-if='getRoles("acquisitionQuality.again")&&item.confirm!="1"&&managementType==1'
+					<view v-if='getRoles("acquisitionQuality.again")&&item.status=="已初检"&&item.confirm!="1"&&managementType==1'
 						@click.stop='edit(item,1)' class='button'>复检</view>
 					<view v-if='getRoles("acquisitionQualityOut.edit")&&item.status=="已称毛重"&&managementType==3'
 						@click.stop='quality_testing(item)' class='button'>质检</view>
@@ -115,7 +119,7 @@
 		<view v-show="isContent">
 			<uni-load-more :status="loadStatus"></uni-load-more>
 		</view>
-		<view v-if='managementType==1' class="footer">
+		<view v-if='managementType==1&&getRoles("acquisitionQuality.qview")' class="footer">
 			<view @click='add' v-if='getRoles("acquisitionQuality.add")' class="button">新增</view>
 		</view>
 	</view>
@@ -364,6 +368,9 @@
 					})
 			},
 			edit(item, status) {
+				if(this.utils.getCurrectRoles('acquisitionQuality.qview')&&this.utils.getCurrectRoles('acquisitionQuality.initial')){
+					status=4
+				}
 				uni.navigateTo({
 					url: '/pages/erpbusiness/edit_quality_testing?id=' + item.id + '&managementType=' + this
 						.managementType + '&cangid=' + this.cangid + '&flag=' + status+'&warehouseName='+this.warehouseName

+ 11 - 6
pages/erpbusiness/sendCommand.vue

@@ -66,7 +66,7 @@
 		onLoad() {
 			uni.showLoading({
 				title: '加载中',
-				mask:true
+				mask: true
 			})
 			this.$api.doRequest('get', '/qualityInspectionManagement/api/getQualityInspection', {
 				id: uni.getStorageSync('quality_print_id')
@@ -186,13 +186,18 @@
 				var command = esc.jpPrinter.createNew()
 				command.init()
 				//编号
-				command.bold(3); //加粗
-				command.setFontSize(36); //字体大小
-				command.setSelectJustification(1) //居中
-				command.rowSpace(200);
 				// command.rowSpace(10);
+				if (that.gridList.qualityNo) {
+					command.bold(3); //加粗
+					command.setFontSize(36); //字体大小
+					command.setSelectJustification(1) //居中
+					command.rowSpace(200);
+					command.setText(that.gridList.qualityNo.substring(that.gridList.qualityNo.length - 3));
+				} else {
+					uni.showToast('编号错误!')
+				}
+
 
-				command.setText(that.gridList.qualityNo.substring(that.gridList.qualityNo.length - 3));
 				command.setPrint();
 				command.rowSpace(60);
 				command.bold(0); //取消加粗

+ 475 - 0
pages/fuelfilling/apply_for_reimbursement.vue

@@ -0,0 +1,475 @@
+<template>
+	<view class="center">
+		<view>
+			<view class='wrap'>
+				<view class="c-row">
+					<view class="title">车牌号</view>
+					<view class="con-list">
+						{{detailData.carNo}}
+					</view>
+				</view>
+				<view class="c-row">
+					<view class="title">行程轨迹</view>
+					<view class="con-list">
+						<view class="flex align-center">
+							<view class="item1">
+								<view class="ssx">{{$helper.getProvinceAbbreviation(detailData.originProvince)}}</view>
+								<view class="level2-title" style="font-size: 5px;">
+									{{$helper.filterUrban(detailData.originCity)}}
+									{{$helper.filterArea(detailData.originArea)}}
+								</view>
+							</view>
+							<image class="jt-icon item2" src="@/static/images/fuel/jt.png" mode='widthFix'>
+							</image>
+							<view class="item3">
+								<view class="ssx">{{$helper.getProvinceAbbreviation(detailData.destinationProvince)}}
+								</view>
+								<view class="level2-title">{{$helper.filterUrban(detailData.destinationCity)}}
+									{{$helper.filterArea(detailData.destinationArea)}}
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class='wrap1' v-for="(item , index) in fillingDetail.fillingDetailInfoList" :Key="index">
+				<view class="tit" style="font-size: 16px;">加油-{{index+1}}</view>
+				<image src="../../static/img/sign/jian@2x.png" class="eliminate1" @click="delApply(index)">
+				</image>
+				<image src="../../static/img/sign/jia@2x.png" class="eliminate2" @click="addApply(index)">
+				</image>
+				<view class="c-row">
+					<view class="title">油耗(升)</view>
+					<view class="con-list">
+						<input v-model='item.oilConsumption' placeholder="请输入油耗" @input='calculate(index)'></input>
+					</view>
+				</view>
+				<view class="c-row">
+					<view class="title">当前油价(元/升)</view>
+					<view class="con-list">
+						<input type="digit" v-model='item.currentOilPrice' placeholder="请输入当前油价"
+							@input='calculate(index)'></input>
+					</view>
+				</view>
+				<view class="c-row">
+					<view class="title">计算金额(元)</view>
+					<view class="con-list">
+						<input type="digit" v-model='item.currentConsumption' placeholder="不可编辑,自动计算"
+							:disabled="true"></input>
+					</view>
+				</view>
+				<view class="c-row">
+					<view class="title">加油凭证</view>
+					<upload class="upload" ref="upload" :action="action" :max-size="maxSize" :size-type="['compressed']"
+						@on-success="getImgUrl($event,index)" @on-error="onError" @on-remove="onRemove($event,index)"
+						@on-uploaded="isAdd = true" :before-upload="filterFileType" @on-progress="onProgress"></upload>
+				</view>
+			</view>
+			<view class="footer">
+				<view class="c-row">
+					<view class="title">总油耗(L)</view>
+					<view class="con-list">
+						<input :disabled="true" v-model='tfc' placeholder="不可编辑,自动计算" type="digit"></input>
+					</view>
+				</view>
+				<view class="c-row">
+					<view class="title">合计金额(元)</view>
+					<view class="con-list">
+						<input :disabled="true" v-model='totalCost' placeholder="不可编辑,自动计算" type="digit"></input>
+					</view>
+				</view>
+				<view @click='submitApply' class="button">提交申请</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import upload from '@/components/upload.vue';
+	export default {
+		components: {
+			upload,
+		},
+		data() {
+			return {
+				detailData: {
+					carNo: '',
+					destinationProvince: "",
+					destinationCity: "",
+					destinationArea: "",
+					carNo: "",
+					originProvince: "",
+					originCity: "",
+					originArea: "",
+				},
+				fillingDetail: {
+					fillingDetailInfoList: [{
+						oilConsumption: "",
+						currentOilPrice: "",
+						currentConsumption: "",
+						addressUrl: [],
+						compId: uni.getStorageSync('pcUserInfo').compId,
+						commonId: uni.getStorageSync('pcUserInfo').userId,
+						fillingId: "",
+					}],
+					tfc: "",
+					totalCost: ""
+				},
+				action: this.$uploadUrl,
+				maxSize: 50 * 1024 * 1024, //限制文件大小 50M
+				btnLoading: false, //防止重复点击
+				isAdd: true,
+				tfc: "",
+				totalCost: ""
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.fillingDetail.fillingDetailInfoList[0].fillingId = this.id
+		},
+		onShow() {
+			var that = this
+			if (this.id) {
+				this.seeInfo()
+			}
+		},
+		methods: {
+			seeInfo() {
+				this.$api.doRequest('get', '/fuelFillingInfo/getFilling', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.detailData = res.data.data
+					}
+				})
+			},
+			getImgUrl(res, index) {
+				this.fillingDetail.fillingDetailInfoList[index].addressUrl.push(res)
+				// if(this.fillingDetail.fillingDetailInfoList[index].addressUrl){
+				// 	this.fillingDetail.fillingDetailInfoList[index].addressUrl = this.fillingDetail.fillingDetailInfoList[index].addressUrl +","+res
+				// }else{
+				// 	this.fillingDetail.fillingDetailInfoList[index].addressUrl = res
+				// }
+
+				// console.log(res)
+				// console.log('------------res-----------')
+			},
+			onError(error) {
+				alert(error)
+				console.log('------------error-----------')
+				console.log(error)
+			},
+			onProgress(e) {
+				console.log(e)
+			},
+			onRemove(index, num) {
+				this.fillingDetail.fillingDetailInfoList[num].addressUrl.splice(index, 1)
+			},
+			filterFileType(index, lists) {
+				if (lists[index].fileType != 'jpg' && lists[index].fileType != 'png' && lists[index].fileType != 'gif') {
+					lists.splice(index, 1);
+					// 当前文件不支持
+					uni.showModal({
+						title: '暂不支持当前图片类型',
+						showCancel: false
+					});
+				} else {
+					this.isAdd = false;
+				}
+			},
+			calculate(index) {
+				this.fillingDetail.fillingDetailInfoList[index].currentConsumption = (this.fillingDetail
+						.fillingDetailInfoList[index].oilConsumption * this.fillingDetail.fillingDetailInfoList[index]
+						.currentOilPrice)
+					.toFixed(2)
+				this.tfc = ""
+				this.totalCost = ""
+				for (let i = 0; i < this.fillingDetail.fillingDetailInfoList.length; i++) {
+					this.tfc = (Number(this.tfc) + Number(this.fillingDetail.fillingDetailInfoList[i].oilConsumption))
+						.toFixed(2)
+					this.totalCost = (Number(this.totalCost) + Number(this.fillingDetail.fillingDetailInfoList[i]
+						.currentConsumption)).toFixed(2)
+					this.$forceUpdate()
+				}
+			},
+			delApply(index) {
+				this.fillingDetail.fillingDetailInfoList.splice(index, 1)
+			},
+			addApply() {
+				this.fillingDetail.fillingDetailInfoList.push({
+					oilConsumption: "",
+					currentOilPrice: "",
+					currentConsumption: "",
+					addressUrl: [],
+					compId: uni.getStorageSync('pcUserInfo').compId,
+					commonId: uni.getStorageSync('pcUserInfo').userId,
+					fillingId: this.id
+				})
+			},
+			submitApply() {
+				var that = this
+				uni.showModal({
+					content: "确定提交申请信息?",
+					showCancel: true,
+					confirmText: '提交',
+					success: function(res) {
+						if (res.confirm) {
+							that.fillingDetail.tfc = that.tfc
+							that.fillingDetail.totalCost = that.totalCost
+							for (let i = 0; i < that.fillingDetail.fillingDetailInfoList.length; i++) {
+								that.fillingDetail.fillingDetailInfoList[i].addressUrl = that.fillingDetail
+									.fillingDetailInfoList[i].addressUrl.toString()
+							}
+							that.$api.doRequest('post', '/fillingDetailInfo/api/addFillingDetail',
+									that.fillingDetail
+								)
+								.then(res => {
+									if (res.data.code == 200) {
+										that.$api.msg('提交成功')
+										uni.navigateTo({
+											url: '/pages/fuelfilling/the_fuel_filling'
+										})
+									} else {
+										that.$api.msg('提交失败')
+									}
+								})
+						}
+					}
+				})
+			},
+		}
+	}
+</script>
+
+<style lang='scss' scoped>
+	.center {
+		padding-bottom: 330rpx;
+	}
+
+	page {
+		background: #F5F6FA;
+	}
+
+	.title_b {
+		margin: 20rpx 20rpx 0rpx 20rpx;
+		padding: 20rpx 10rpx 20rpx 10rpx;
+		font-size: 18px;
+		font-weight: 550;
+	}
+
+	.c-row {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		align-items: center;
+		padding: 20rpx 30rpx;
+		position: relative;
+	}
+
+	.level2-title {
+		font-size: 14rpx;
+	}
+
+	.level2-title {
+		font-weight: 700;
+		color: #000000;
+	}
+
+	.jt-icon {
+		position: relative;
+		top: 6rpx;
+		width: 60rpx;
+		margin: 0 20rpx;
+
+	}
+
+	.xf-iamge {
+		width: 74rpx;
+		height: 43rpx;
+		position: absolute;
+		top: -20rpx;
+		right: 0;
+	}
+
+	.ssx {
+		width: 20px;
+		height: 20px;
+		background: linear-gradient(180deg, #C8D7E5 0%, #AFC1D6 100%);
+		font-size: 13px;
+		font-family: PingFangSC-Medium, PingFang SC;
+		font-weight: 500;
+		color: #FFFFFF;
+		border-radius: 50%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin-right: 5px;
+	}
+
+	.con-list {
+		-webkit-box-flex: 1;
+		-webkit-flex: 1;
+		flex: 1;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		flex-direction: column;
+		color: #303133;
+		line-height: 40rpx;
+		text-align: right;
+		padding-right: 20rpx;
+
+		.item1,
+		.item3 {
+			// width: 40%;
+			display: flex;
+
+			.text {
+				text-overflow: ellipsis;
+				overflow: hidden;
+				white-space: nowrap;
+			}
+
+		}
+
+		.item1 .text {
+			text-align: left;
+		}
+
+		.item3 .text {
+			text-align: right;
+		}
+	}
+
+	.align-center {
+		align-items: center;
+		margin-left: 64px;
+		width: 83%;
+	}
+
+	.wrap1 {
+		font-size: 14px;
+		background: #fff;
+		margin: 10px;
+		border-radius: 15px 10px;
+		margin-top: 18px;
+
+		input {
+			font-size: 14px;
+		}
+
+		.tit {
+			margin-left: 14px;
+			width: 47px;
+			padding-top: 10px;
+		}
+
+		.eliminate1 {
+			max-width: 50%;
+			width: 20px;
+			height: 20px;
+			font-size: 13px;
+			font-family: PingFangSC-Medium, PingFang SC;
+			font-weight: 500;
+			border-radius: 50%;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			margin-right: 5px;
+			margin-top: -20px;
+			margin-left: 73px;
+		}
+
+		.eliminate2 {
+			max-width: 50%;
+			width: 20px;
+			height: 20px;
+			font-size: 13px;
+			font-family: PingFangSC-Medium, PingFang SC;
+			font-weight: 500;
+			border-radius: 50%;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			margin-right: 5px;
+			margin-top: -20px;
+			margin-left: 100px;
+		}
+
+		.upload {
+			margin-left: 157px;
+		}
+	}
+
+	.wrap {
+		font-size: 14px;
+		background: #fff;
+		margin: 10px;
+		border-radius: 15px 10px;
+		margin-top: 18px;
+
+		input {
+			font-size: 14px;
+		}
+
+		>.title {
+			padding: 10px 16px;
+		}
+
+	}
+
+	.footer {
+		background: #fff;
+		position: fixed;
+		bottom: 0;
+		width: 100%;
+		padding: 20px 10px;
+		z-index: 10;
+		height: 25%;
+
+		.button {
+			background: #4089ff;
+			width: 90%;
+			margin: 250px auto;
+			padding: 10px;
+			color: #fff;
+			text-align: center;
+			border-radius: 30px;
+			margin-top: 10px;
+		}
+	}
+
+
+	.buns_item {
+		display: flex;
+		padding: 80rpx 0 50rpx 0;
+		justify-content: space-around;
+	}
+
+	.but_css {
+		background: #22C572;
+		width: 40%;
+		padding: 20rpx;
+		color: #fff;
+		text-align: center;
+		border-radius: 20rpx;
+	}
+
+	/deep/.u-radio-group {
+		flex-direction: row-reverse;
+	}
+
+	.no-boder {
+		border: 0;
+	}
+
+	.textarea {
+		background: #F9F9FA;
+		border: 1px solid #EEEEEE;
+	}
+</style>

+ 308 - 0
pages/fuelfilling/the_fuel_filling.vue

@@ -0,0 +1,308 @@
+<template>
+	<view>
+		<view class="content">
+			<view class="content1-top">
+				<view class="top2">
+					<view class="left">
+						<view @click='tabcarchange(1)' class='line' :class='searchType==1?"active":""'>未完成</view>
+						<view @click='tabcarchange(3)' class='line' :class='searchType==3?"active":""'>已完成</view>
+					</view>
+					<view class="right uni-button">
+						<button style="line-height: 28px;" class="right-contrent1" @click="trackAddition">添加</button>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view v-for="(item,index) in fuelFilling" :key="index" @click="getInfo(item)">
+			<view class="good-list">
+				<view style="padding: 0 35rpx 20rpx 35rpx;position: relative;">
+					<view class="flex align-center">
+						<view class="item1">
+							<view class="ssx">{{$helper.getProvinceAbbreviation(item.originProvince)}}</view>
+							<view class="level2-title" style="font-size: 14px;">{{$helper.filterUrban(item.originCity)}}
+								{{$helper.filterArea(item.originArea)}}
+							</view>
+						</view>
+						<image class="jt-icon item2" src="@/static/images/fuel/jt.png" mode='widthFix'>
+						</image>
+						<view class="item3">
+							<view class="ssx">{{$helper.getProvinceAbbreviation(item.destinationProvince)}}</view>
+							<view class="level2-title">{{$helper.filterUrban(item.destinationCity)}}
+								{{$helper.filterArea(item.destinationArea)}}
+							</view>
+						</view>
+					</view>
+					<view class="flex flex-space-between yf-style">
+						<view class="left">
+							<view class="flex">
+								<view style="padding: 10px 0px 5px 20px;">车牌号 : {{item.carNo}}</view>
+								<view class="wenzi audit1" v-if="item.travelStatus == '已开始'">已开始</view>
+								<view class="wenzi audit2" v-if="item.travelStatus == '已结束'">已结束</view>
+								<view class="wenzi audit3" v-if="item.travelStatus == '已报销'">已报销</view>
+							</view>
+							<view class="u-flex-wrap flex row ">
+								<view style="width: 125px;padding: 10px 0px 5px 20px;">总油耗 : {{item.tfc}}L</view>
+								<view style="width: 100px;padding-top: 10px;">总价 : {{item.totalCost}}元</view>
+								<view style="padding: 13px 0px 5px 24px;">{{item.createDate.split(" ")[0]}}</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				searchType: 1,
+				pageSize: 10,
+				currentPage: 1,
+				fuelFilling: [{
+					destinationProvince: "",
+					destinationCity: "",
+					destinationArea: "",
+					carNo: "",
+					originProvince: "",
+					originCity: "",
+					originArea: "",
+					createDate: "",
+					travelStatus: "",
+					totalCost: "",
+					tfc: ""
+				}],
+			}
+		},
+		onShow() {
+			this.getList()
+		},
+		methods: {
+			tabcarchange(searchType) {
+				this.searchType = searchType
+				this.pageSize = 10
+				this.getList()
+			},
+			trackAddition() {
+				uni.navigateTo({
+					url: '/pages/fuelfilling/track_addition'
+				})
+			},
+			getList() {
+				this.$api.doRequest('get', '/fuelFillingInfo/selectFilling', {
+					pageSize: this.pageSize,
+					currentPage: this.currentPage,
+					// pcFlag: 0,
+					searchType: this.searchType,
+					compId: uni.getStorageSync('pcUserInfo').compId,
+					commonId: uni.getStorageSync('pcUserInfo').userId,
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.fuelFilling = res.data.data.records
+
+					}
+				})
+			},
+			getInfo(item) {
+				if (item.travelStatus == '已报销') {
+					return
+				} else {
+					uni.navigateTo({
+						url: '/pages/fuelfilling/track_addition?id=' + item.id
+					})
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content {
+		padding-bottom: 50rpx;
+	}
+
+	.tag {
+		background: #F5F6F9;
+		padding: 5px;
+		color: #333333;
+		display: inline-flex;
+		font-size: 22rpx;
+		border-radius: 3px;
+		margin: 3px;
+	}
+
+	.introduce-section .title {
+		justify-content: space-between;
+		align-items: flex-start;
+	}
+
+	.introduce-section .title text {
+		font-size: 28rpx;
+	}
+
+	.introduce-section .title .title-tip {
+		flex: 1;
+		font-size: 28rpx;
+		color: #FE6430;
+		font-weight: 500;
+		height: 50px;
+		line-height: 50px;
+		border-bottom: 1px solid #EEEEEE;
+
+	}
+
+	.introduce-section .title .title-tip-a {
+		flex: 1;
+		font-size: 15px;
+		color: #AFB3BF;
+		font-weight: 500;
+		height: 50px;
+		line-height: 50px;
+		border-bottom: 1px solid #EEEEEE;
+	}
+
+	.line {
+		display: inline-block;
+		padding: 5px;
+		position: relative;
+		font-size: 17px;
+	}
+
+	.line.active {
+		font-size: 19px;
+		font-weight: 900;
+	}
+
+	.line.active:after {
+		content: '';
+		display: block;
+		position: absolute;
+		width: 18px;
+		left: 50%;
+		transform: translateX(-50%);
+		bottom: 0;
+		border-bottom: 3px solid #22C572;
+	}
+
+	/deep/.u-action-active {
+		margin-right: 6px;
+	}
+
+	.content1-top {
+		background: white;
+		padding: 10px 16px 0 10px;
+		border-radius: 0 0 15px 15px;
+		padding-bottom: 10px;
+	}
+
+	.top2 {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+
+		.right.uni-button {
+			display: flex;
+			align-items: center;
+			font-weight: normal;
+
+			.right-contrent1 {
+				background: #22C572;
+				height: 25px;
+				font-size: 14px;
+				color: #fff;
+
+			}
+
+		}
+	}
+
+	.good-list {
+		background-color: white;
+		margin: -10px 10px 20px 10px;
+		padding: 20px 0px 8px 0px;
+		border-radius: 30rpx;
+		box-shadow: 0px 5rpx 20rpx #E3E3E3;
+
+		.item1,
+		.item3 {
+			// width: 40%;
+			display: flex;
+
+			.text {
+				text-overflow: ellipsis;
+				overflow: hidden;
+				white-space: nowrap;
+			}
+
+		}
+
+		.item1 .text {
+			text-align: left;
+		}
+
+		.item3 .text {
+			text-align: right;
+		}
+	}
+
+	.xf-iamge {
+		width: 74rpx;
+		height: 43rpx;
+		position: absolute;
+		top: -20rpx;
+		right: 0;
+	}
+
+	.level2-title {
+		font-size: 28rpx;
+	}
+
+	.jt-icon {
+		position: relative;
+		top: 6rpx;
+		width: 60rpx;
+		margin: 0 20rpx;
+
+	}
+
+	.ssx {
+		width: 20px;
+		height: 20px;
+		background: linear-gradient(180deg, #C8D7E5 0%, #AFC1D6 100%);
+		font-size: 13px;
+		font-family: PingFangSC-Medium, PingFang SC;
+		font-weight: 500;
+		color: #FFFFFF;
+		border-radius: 50%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin-right: 5px;
+	}
+
+	.level2-title {
+		font-weight: 700;
+		color: #000000;
+	}
+
+	.wenzi {
+		text-align: right;
+		border-radius: 10rpx;
+		// margin-right: 30rpx;
+		height: 10rpx;
+		padding: 10px 0px 5px 128px;
+	}
+
+	.audit1 {
+		color: #22C572;
+	}
+
+	.audit2 {
+		color: #22C572;
+	}
+
+	.audit3 {
+		color: #AFB3BF;
+	}
+</style>

+ 256 - 0
pages/fuelfilling/track_addition.vue

@@ -0,0 +1,256 @@
+<template>
+	<view>
+		<view>
+			<view class='wrap'>
+				<view class="c-row">
+					<view class="title">车牌号</view>
+					<view class="con-list">
+						<input v-model='detailData.carNo' placeholder="请输入车牌号" maxlength="7"></input>
+					</view>
+				</view>
+			</view>
+			<view @click='startTrack' class="button" v-if='titleBtn=="开始轨迹"'>{{titleBtn}}</view>
+			<view @click='startTrack' class="button1" v-if='titleBtn=="结束轨迹"'>{{titleBtn}}</view>
+			<view @click='startTrack' class="button2" v-if='titleBtn=="申请报销"'>{{titleBtn}}</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				detailData: {
+					carNo: '',
+					travelStatus: '',
+					originProvince: '',
+					originCity: '',
+					originArea: '',
+					originLongitude: '',
+					originLatitude: '',
+					destinationProvince: '',
+					destinationCity: '',
+					destinationArea: '',
+					destinationLongitude: '',
+					destinationLatitude: '',
+					trackFlag: '',
+					compId: '',
+					commonId: '',
+					driverName: '',
+					fillingNo: '',
+					strokeType: '1',
+				},
+				titleBtn: "开始轨迹",
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+		},
+		onShow() {
+			var that = this
+			if (this.id) {
+				this.seeInfo()
+			}
+		},
+		methods: {
+			seeInfo() {
+				this.$api.doRequest('get', '/fuelFillingInfo/getFilling', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.detailData = res.data.data
+						if (this.detailData.travelStatus == "已开始") {
+							this.titleBtn = "结束轨迹"
+						} else if (this.detailData.travelStatus == "已结束") {
+							this.titleBtn = "申请报销"
+						}
+					}
+				})
+			},
+			startTrack() {
+				if (this.titleBtn == "开始轨迹") {
+					var that = this
+					uni.showModal({
+						content: "确定开始轨迹?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							if (res.confirm) {
+								that.detailData.compId = uni.getStorageSync('pcUserInfo').compId
+								that.detailData.commonId = uni.getStorageSync('pcUserInfo').userId
+								that.detailData.driverName = uni.getStorageSync('userInfo').userName
+								that.detailData.trackFlag = "0"
+								that.detailData.fillingNo = "202207040001"
+								that.detailData.originProvince = "辽宁省"
+								that.detailData.originCity = "营口市"
+								that.detailData.originArea = "鲅鱼圈区"
+								that.detailData.originLongitude = "122.21"
+								that.detailData.originLatitude = "40.664"
+								that.$api.doRequest('post', '/fuelFillingInfo/api/addFilling',
+										that.detailData
+									)
+									.then(res => {
+										that.id = res.data.data
+										if (res.data.code == 200) {
+											that.$api.msg('提交成功')
+											that.titleBtn = "结束轨迹"
+										} else {
+											that.$api.msg('提交失败')
+										}
+									})
+							}
+						}
+					})
+				} else if (this.titleBtn == "结束轨迹") {
+					var that = this
+					uni.showModal({
+						content: "确定结束轨迹?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							if (res.confirm) {
+								that.detailData.compId = uni.getStorageSync('pcUserInfo').compId
+								that.detailData.commonId = uni.getStorageSync('pcUserInfo').userId
+								that.detailData.driverName = uni.getStorageSync('userInfo').userName
+								that.detailData.trackFlag = "1"
+								that.detailData.destinationProvince = "江苏省"
+								that.detailData.destinationCity = "宿迁市"
+								that.detailData.destinationArea = "宿城区"
+								that.detailData.destinationLongitude = "118.291"
+								that.detailData.destinationLatitude = "33.942"
+								that.$api.doRequest('post', '/fuelFillingInfo/api/addFilling',
+										that.detailData
+									)
+									.then(res => {
+										if (res.data.code == 200) {
+											that.$api.msg('提交成功')
+											that.titleBtn = "申请报销"
+										} else {
+											that.$api.msg('提交失败')
+										}
+									})
+							}
+						}
+					})
+				} else {
+					uni.navigateTo({
+						url: '/pages/fuelfilling/apply_for_reimbursement?id=' + this.id
+					})
+				}
+			},
+		}
+	}
+</script>
+
+<style lang='scss' scoped>
+	page {
+		background: #F5F6FA;
+	}
+
+	.title_b {
+		margin: 20rpx 20rpx 0rpx 20rpx;
+		padding: 20rpx 10rpx 20rpx 10rpx;
+		font-size: 18px;
+		font-weight: 550;
+	}
+
+	.c-row {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		align-items: center;
+		padding: 20rpx 30rpx;
+	}
+
+	.con-list {
+		-webkit-box-flex: 1;
+		-webkit-flex: 1;
+		flex: 1;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		flex-direction: column;
+		color: #303133;
+		line-height: 40rpx;
+		text-align: right;
+		padding-right: 20rpx;
+	}
+
+	.wrap {
+		font-size: 14px;
+		background: #fff;
+		margin: 10px;
+		border-radius: 15px 10px;
+
+		input {
+			font-size: 14px;
+		}
+
+		>.title {
+			padding: 10px 16px;
+		}
+	}
+
+	.button {
+		background: #22C572;
+		width: 90%;
+		margin: 250px auto;
+		padding: 10px;
+		color: #fff;
+		text-align: center;
+		border-radius: 30px;
+	}
+
+	.button1 {
+		background: #ff0000;
+		width: 90%;
+		margin: 250px auto;
+		padding: 10px;
+		color: #fff;
+		text-align: center;
+		border-radius: 30px;
+	}
+
+	.button2 {
+		background: #4089ff;
+		width: 90%;
+		margin: 250px auto;
+		padding: 10px;
+		color: #fff;
+		text-align: center;
+		border-radius: 30px;
+	}
+
+	.buns_item {
+		display: flex;
+		padding: 80rpx 0 50rpx 0;
+		justify-content: space-around;
+	}
+
+	.but_css {
+		background: #22C572;
+		width: 40%;
+		padding: 20rpx;
+		color: #fff;
+		text-align: center;
+		border-radius: 20rpx;
+	}
+
+	/deep/.u-radio-group {
+		flex-direction: row-reverse;
+	}
+
+	.no-boder {
+		border: 0;
+	}
+
+	.textarea {
+		background: #F9F9FA;
+		border: 1px solid #EEEEEE;
+	}
+</style>

+ 294 - 0
pages/leave/the_leave.vue

@@ -0,0 +1,294 @@
+<template>
+	<view>
+		<view class='wrap'>
+			<view class="c-row">
+				<view class="title">请假类型</view>
+				<view class="con-list">
+					<view @click='show=true'>{{detailData.leaveType}}</view>
+					<u-picker :range="leaveTypeList" range-key="leaveType"@confirm='ltCheck($event)' v-model="show" mode="selector">
+					</u-picker>
+				</view>
+			</view>
+			<view class="c-row">
+				<view class="title">开始时间</view>
+				<view class="con-list">
+					<view @click='show1=true'>{{detailData.startDate}}</view>
+					<u-picker v-model="show1" mode="time" @confirm='dateChange($event)' :params="params">
+					</u-picker>
+				</view>
+			</view>
+			<view class="c-row">
+				<view class="title">结束时间</view>
+				<view class="con-list">
+					<view @click='show2=true'>{{detailData.endDate}}</view>
+					<u-picker v-model="show2" mode="time" @confirm='dateChange1($event)' :params="params">
+					</u-picker>
+				</view>
+			</view>
+			<view class="c-row">
+				<view class="title">时长</view>
+				<view class="con-list">
+					<input  v-model='detailData.leaveDuration' placeholder="请输入时长"></input>
+				</view>
+			</view>
+			<view class="c-row">
+				<view class="left">请假事由</view>
+			</view>
+			<view style='position:relative;' class="wrap no-boder">
+				<u-input class='textarea' v-model="detailData.reasonForLeave" :type="type" :border="border"
+					:height="height" :auto-height="autoHeight" />
+				<view style='position:absolute;right:10px;bottom:20px;color:#AFB3BF;'>
+					{{detailData.reasonForLeave.length}}/100个字
+				</view>
+			</view>
+		</view>
+		<view class="footer">
+			<view @click='clockRecord' class="button">记录</view>
+			<view @click='submit' class="button">提交</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+				show: false,
+				show1: false,
+				show2: false,
+				detailData: {
+					leaveType:'选择请假类型',
+					reasonForLeave:"",
+					startDate:'',
+					endDate:'选择结束时间',
+					leaveDuration:'',
+				},
+				params: {
+					year: true,
+					month: true,
+					day: true,
+					hour: true,
+					minute: true,
+					
+				},
+				type: 'textarea',
+				border: true,
+				height: 150,
+				autoHeight: true,
+				// endDate1:"",
+				// startDate1: "",
+				leaveTypeList: [{
+						leaveType: "事假"
+					},
+					{
+						leaveType: "病假"
+					},
+				],
+
+			}
+		},
+		onLoad(options) {
+			let h 
+			let m 
+			let s
+			let _day = new Date();
+			_day.setTime(_day.getTime());
+			if(_day.getHours() < 10 ){
+				 h = "0" + _day.getHours()
+			}
+			else{
+				h =  _day.getHours()
+			}
+			if(_day.getMinutes() < 10 ){
+				 m = "0" + _day.getMinutes()
+			}
+			else{
+				m = _day.getMinutes()
+			}
+			this.detailData.startDate = _day.getFullYear() + "-" + (_day.getMonth() + 1) + "-" + _day.getDate()
+			+ " " + h + ":" + m;
+		},
+		methods: {
+			calculate() {
+				const query = uni.createSelectorQuery().in(this);
+				query.selectAll('.left')
+				console.log(query)
+			},
+			ltCheck(e) {
+				this.detailData.leaveType = this.leaveTypeList[e].leaveType
+				if(this.detailData.leaveType = "事假"){
+					this.detailData.leaveTypeKey = "1"
+				}
+				else{
+					this.detailData.leaveTypeKey = "3"
+				}
+			},
+			dateChange(e) {
+				this.detailData.startDate = e.year + "-" + e.month + "-" + e.day + " " + e.hour + ":" + e.minute
+				// this.startDate1 = e.year + "-" + e.month + "-" + e.day + "-" + e.hour + "-" + e.minute + "-" + e.second
+				 // + ":" + "00"
+			},
+			dateChange1(e) {
+				this.detailData.endDate = e.year + "-" + e.month + "-" + e.day + " " + e.hour + ":" + e.minute
+				// this.endDate1 = e.year + "-" + e.month + "-" + e.day + "-" + e.hour + "-" + e.minute + "-" + e.second
+			},
+			submit() {
+				if (!this.detailData.leaveType) {
+					this.$api.msg('请假类型不能为空')
+					return
+				}
+				if (!this.detailData.startDate) {
+					this.$api.msg('请选择请假开始时间')
+					return
+				}
+				if (!this.detailData.endDate) {
+					this.$api.msg('请选择请假结束时间')
+					return
+				}
+				if (!this.detailData.leaveDuration) {
+					this.$api.msg('请输入请假时长')
+					return
+				}
+				if (!this.detailData.reasonForLeave) {
+					this.$api.msg('请假事由不能为空')
+					return
+				}
+				var that = this
+				uni.showModal({
+					content: "确定提交请假信息?",
+					showCancel: true,
+					confirmText: '提交',
+					success: function(res) {
+						if (res.confirm) {
+							that.detailData.compId = uni.getStorageSync('pcUserInfo').compId
+							that.detailData.commonId = uni.getStorageSync('pcUserInfo').userId
+							that.detailData.dept = uni.getStorageSync('pcUserInfo').deptName
+							that.detailData.phone = uni.getStorageSync('pcUserInfo').userMobilePhone
+							that.detailData.empName = uni.getStorageSync('userInfo').userName
+							that.$api.doRequest('post', '/leaveInfo/api/addLeave', that.detailData)
+								.then(res => {
+									if (res.data.code == 200) {
+										that.$api.msg('提交成功')
+										uni.navigateTo({
+											url: '/pages/leave/the_leave_record'
+										})
+									} else {
+										that.$api.msg('提交失败')
+									}
+								})
+						}
+					}
+				})
+			},
+			clockRecord() {
+				uni.navigateTo({
+					url: '/pages/leave/the_leave_record'
+				})
+			},
+		},
+	}
+</script>
+
+<style lang='scss' scoped>
+	page {
+		background: #F5F6FA;
+	}
+
+	.title_b {
+		margin: 20rpx 20rpx 0rpx 20rpx;
+		padding: 20rpx 10rpx 20rpx 10rpx;
+		font-size: 18px;
+		font-weight: 550;
+	}
+
+	.c-row {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		align-items: center;
+		padding: 20rpx 30rpx;
+		position: relative;
+	}
+
+	.con-list {
+		-webkit-box-flex: 1;
+		-webkit-flex: 1;
+		flex: 1;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		flex-direction: column;
+		color: #303133;
+		line-height: 40rpx;
+		text-align: right;
+		padding-right: 20rpx;
+	}
+
+	.wrap {
+		padding-bottom: 10px;
+		font-size: 14px;
+		background: #fff;
+		margin: 10px;
+		border-radius: 10px;
+
+		input {
+			font-size: 14px;
+		}
+
+		>.title {
+			padding: 10px 16px;
+		}
+
+	}
+
+	.footer {
+		background: #fff;
+		position: fixed;
+		bottom: 0;
+		width: 100%;
+		padding: 20px 10px;
+		z-index: 10;
+
+		.button {
+			background: #22C572;
+			width: 90%;
+			margin: 20rpx auto;
+			padding: 10px;
+			color: #fff;
+			text-align: center;
+			border-radius: 30px;
+		}
+	}
+
+	.buns_item {
+		display: flex;
+		padding: 80rpx 0 50rpx 0;
+		justify-content: space-around;
+	}
+
+	.but_css {
+		background: #22C572;
+		width: 40%;
+		padding: 20rpx;
+		color: #fff;
+		text-align: center;
+		border-radius: 20rpx;
+	}
+
+	/deep/.u-radio-group {
+		flex-direction: row-reverse;
+	}
+	.no-boder {
+		border: 0;
+	}
+	.textarea {
+		background: #F9F9FA;
+		border: 1px solid #EEEEEE;
+	}
+</style>

+ 98 - 0
pages/leave/the_leave_record.vue

@@ -0,0 +1,98 @@
+<template>
+	<view>
+		<view class='wrap' v-for="(item, index) in tableData" :key="index">
+			<view class="wenzi audit1" v-if="item.approveStatus == '待人事审核' || item.approveStatus == '待主管审核' ">审核中</view>
+			<view class="wenzi audit2" v-if="item.status == '已通过'">已通过</view>
+			<view class="wenzi audit3" v-if="item.status == '未通过'" >未通过</view>
+			<view class="c-row">
+				<view class="title">请假类型 : {{item.leaveType}}</view>
+			</view>
+			<view class="c-row">
+				<view class="title">请假事由 : {{item.reasonForLeave}}</view>
+			</view>
+			<view class="c-row">
+				<view class="title">开始时间 : {{item.startDate}}</view>
+			</view>
+			<view class="c-row">
+				<view class="title">结束时间 : {{item.endDate}}</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				pageSize: 10,
+				currentPage: 1,
+				tableData: [],
+			}
+		},
+		onShow() {
+			this.getList()
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/leaveInfo/selectLeaveInfo', {
+					pageSize: this.pageSize,
+					currentPage: this.currentPage,
+					pcFlag: 0,
+					compId: uni.getStorageSync('pcUserInfo').compId,
+					commonId: uni.getStorageSync('pcUserInfo').userId,
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.tableData = res.data.data.records
+
+					}
+				})
+			},
+		}
+	}
+</script>
+
+<style lang='scss' scoped>
+	page {
+		background: #F5F6FA;
+	}
+	.wrap {
+		padding-top: 15px;
+		padding-bottom: 20px;
+		font-size: 14px;
+		background: #fff;
+		margin: 10px;
+		border-radius: 10px;
+		input {
+			font-size: 14px;
+		}
+		>.title {
+			padding: 10px 16px;
+		}
+	}
+	.wenzi {
+		text-align: right;
+		border-radius: 10rpx;
+		margin-right: 30rpx;
+		height: 10rpx;
+	}
+	.audit1{
+		color: red;
+	}
+	.audit2{
+		color: #afafe6;
+	}
+	.audit3{
+		color: red;
+	}
+
+	.c-row {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		align-items: center;
+		padding: 5rpx 30rpx;
+		position: relative;
+	}
+</style>

+ 573 - 0
pages/shortDistance/short_distance_record.vue

@@ -0,0 +1,573 @@
+<template>
+	<view>
+		<view class="content">
+			<view class="content1-top">
+				<view class="top2">
+					<view class="left">
+						<view @click='tabcarchange(1)' class='line' :class='searchType==1?"active":""'>未完成</view>
+						<view @click='tabcarchange(3)' class='line' :class='searchType==3?"active":""'>已完成</view>
+					</view>
+					<view class="right uni-button">
+						<button v-if="searchType==3" style="line-height: 28px;margin-right: 5px;"
+							class="right-contrent1" @click="requestFunds">请款</button>
+						<button style="line-height: 28px;" class="right-contrent1" @click="trackAddition">添加</button>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view v-for="(item,index) in shortDetail.shortFillingList" :key="index" @click="getInfo(item)">
+			<view class="good-list flex">
+				<view style="margin-top: 20px;width: 30px;">
+					<label v-model="show2" class="fuxuankuang" @click.stop="checkedChange(item)" v-if="searchType==3">
+						<checkbox value="cb" style="transform:scale(0.7)" :disabled="item.travelStatus == '已报销'" />
+					</label>
+				</view>
+
+				<view style="padding: 0 35rpx 20rpx 0rpx;">
+					<view class="flex align-center" style="width: 103%;margin-left: 12px;">
+						<view class="item1">
+							<view class="ssx">{{$helper.getProvinceAbbreviation(item.originProvince)}}</view>
+							<view class="level2-title" style="font-size: 14px;">{{item.sendWarehouse}}
+							</view>
+						</view>
+						<image class="jt-icon item2" src="@/static/images/fuel/jt.png" mode='widthFix'>
+						</image>
+						<view class="item3">
+							<view class="ssx">{{$helper.getProvinceAbbreviation(item.destinationProvince)}}</view>
+							<view class="level2-title">{{item.receiveWarehouse}}
+							</view>
+						</view>
+						<view class="wenzi audit1" v-if="item.travelStatus == '已开始'">已开始</view>
+						<view class="wenzi audit2" v-if="item.travelStatus == '已结束'">已结束</view>
+						<view class="wenzi audit3" v-if="item.travelStatus == '已报销'">已报销</view>
+					</view>
+					<view class="flex flex-space-between yf-style">
+						<view class="left">
+							<view class="flex">
+								<view style="min-width: 130px;margin-top: 10px;">车牌号 : {{item.carNo}}</view>
+								<view style="min-width: 110px;margin-top: 10px;">里程 :
+									{{item.mileage}}公里
+								</view>
+								<view style="width: 90px;margin-top: 12px;">{{item.createDate.split(" ")[0]}}
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view v-if='show1' class="shade">
+			<view class="wrap1">
+				<view class="alert-top">
+					<view class="title1">
+						请款
+					</view>
+					<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
+				</view>
+				<view class="c-row">
+					<view class="title2">请款金额</view>
+					<view class="con-list">
+						<input type="digit" style="width: 100px;margin-left: 60px;"
+							v-model='shortDetail.amountRequested' placeholder="请输入请款金额">
+						<view style="width: 0px;margin-left: 162px;margin-top: -20px;">元</view></input>
+					</view>
+				</view>
+				<view class="c-row">
+					<view class="title2">仓库名称</view>
+					<view class="con-list">
+						<view @click='show=true'>{{shortDetail.warehouseName}}</view>
+						<u-picker :range="warehouseBaseInfoList" range-key="warehouseName"
+							@confirm='targetLPicker($event)' v-model="show" mode="selector">
+						</u-picker>
+					</view>
+				</view>
+				<view class="c-row">
+					<view class="title2">备注</view>
+				</view>
+				<view class="con-list">
+					<u-input class='textarea' v-model="shortDetail.remark" :type="type" :border="border"
+						:height="height" :auto-height="autoHeight" />
+					<view style='right:10px;bottom:20px;color:#AFB3BF;'>
+						{{shortDetail.remark.length}}/150个字
+					</view>
+				</view>
+				<view @click="close()" class="cancel">取消</view>
+				<view @click='requestFundsSubmit()' class="confirm">确定</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				show2: false,
+				searchType: 1,
+				pageSize: 10,
+				show1: false,
+				show: false,
+				currentPage: 1,
+				shortDetail: {
+					shortFillingList: [{
+						destinationProvince: "",
+						carNo: "",
+						originProvince: "",
+						createDate: "",
+						travelStatus: "",
+						mileage: "",
+						sendWarehouse: "",
+						receiveWarehouse: "",
+					}],
+					amountRequested: '',
+					warehouseName: '请选择仓库名称',
+					remark: '',
+				},
+				warehouseType: '1',
+				warehouseBaseInfoList: [],
+				type: 'textarea',
+				border: true,
+				height: 150,
+				autoHeight: true,
+				
+				infoList:[],
+
+			}
+		},
+		onLoad() {
+			this.getWarehouse()
+		},
+		onShow() {
+			this.getList()
+		},
+		methods: {
+			checkedChange(item) {
+				if (item.travelStatus == '已报销') {
+					this.show2 = false
+					this.$api.msg('已报销的不可再选')
+					return
+				}else{
+					this.infoList.push(item)
+				}
+			},
+			tabcarchange(searchType) {
+				this.searchType = searchType
+				this.pageSize = 10
+				this.getList()
+			},
+			trackAddition() {
+				uni.navigateTo({
+					url: '/pages/shortDistance/short_track_addition'
+				})
+			},
+			getList() {
+				this.$api.doRequest('get', '/shortFillingInfo/selectShortFilling', {
+					pageSize: this.pageSize,
+					currentPage: this.currentPage,
+					// pcFlag: 0,
+					searchType: this.searchType,
+					compId: uni.getStorageSync('pcUserInfo').compId,
+					commonId: uni.getStorageSync('pcUserInfo').userId,
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.shortDetail.shortFillingList = res.data.data.records
+
+					}
+				})
+			},
+			getWarehouse() {
+				this.$api.doRequest('get', '/warehouseBaseInfo/selectWarehouse', {
+					compId: uni.getStorageSync("pcUserInfo").compId,
+					warehouseType: '1'
+				}).then(res => {
+					if (res.data.data.length != 0) {
+						this.warehouseBaseInfoList = res.data.data
+					}
+				})
+			},
+			targetLPicker(e) {
+				this.shortDetail.warehouseName = this.warehouseBaseInfoList[e[0]].warehouseName
+			},
+			requestFunds() {
+				this.show1 = true
+
+			},
+			close() {
+				this.show1 = false
+			},
+			getInfo(item) {
+				if (item.travelStatus == '已结束') {
+					return
+				} else {
+					uni.navigateTo({
+						url: '/pages/shortDistance/short_track_addition?id=' + item.id
+					})
+				}
+			},
+			requestFundsSubmit() {
+				var that = this
+				uni.showModal({
+					content: "确定提交请款信息?",
+					showCancel: true,
+					confirmText: '提交',
+					success: function(res) {
+						if (res.confirm) {
+							// that.shortDetail.remark = that.remark
+							// that.shortDetail.amountRequested = that.amountRequested
+							// that.shortDetail.warehouseName = that.warehouseName
+							let dataInfo={}
+							dataInfo.amountRequested = that.shortDetail.amountRequested 
+							dataInfo.warehouseName = that.shortDetail.warehouseName
+							dataInfo.remark = that.shortDetail.remark
+							// dataInfo.compId = uni.getStorageSync('pcUserInfo').compId
+							// dataInfo.commonId = uni.getStorageSync('pcUserInfo').userId
+							// dataInfo.empName = uni.getStorageSync('userInfo').userName
+							dataInfo.shortFillingInfoList = that.infoList
+							that.$api.doRequest('post', '/shortFillingInfo/api/shortRequestFunds',
+									dataInfo
+								)
+								.then(res => {
+									if (res.data.code == 200) {
+										that.$api.msg('提交成功')
+										that.infoList = []
+									} else {
+										that.$api.msg('提交失败')
+									}
+								})
+						}
+					}
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content {
+		padding-bottom: 50rpx;
+	}
+
+	.tag {
+		background: #F5F6F9;
+		padding: 5px;
+		color: #333333;
+		display: inline-flex;
+		font-size: 22rpx;
+		border-radius: 3px;
+		margin: 3px;
+	}
+
+	.introduce-section .title {
+		justify-content: space-between;
+		align-items: flex-start;
+	}
+
+	.introduce-section .title text {
+		font-size: 28rpx;
+	}
+
+	.introduce-section .title .title-tip {
+		flex: 1;
+		font-size: 28rpx;
+		color: #FE6430;
+		font-weight: 500;
+		height: 50px;
+		line-height: 50px;
+		border-bottom: 1px solid #EEEEEE;
+
+	}
+
+	.introduce-section .title .title-tip-a {
+		flex: 1;
+		font-size: 15px;
+		color: #AFB3BF;
+		font-weight: 500;
+		height: 50px;
+		line-height: 50px;
+		border-bottom: 1px solid #EEEEEE;
+	}
+
+	.line {
+		display: inline-block;
+		padding: 5px;
+		position: relative;
+		font-size: 17px;
+	}
+
+	.line.active {
+		font-size: 19px;
+		font-weight: 900;
+	}
+
+	.line.active:after {
+		content: '';
+		display: block;
+		position: absolute;
+		width: 18px;
+		left: 50%;
+		transform: translateX(-50%);
+		bottom: 0;
+		border-bottom: 3px solid #22C572;
+	}
+
+	/deep/.u-action-active {
+		margin-right: 6px;
+	}
+
+	.content1-top {
+		background: white;
+		padding: 10px 16px 0 10px;
+		border-radius: 0 0 15px 15px;
+		padding-bottom: 10px;
+	}
+
+	.top2 {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+
+		.right.uni-button {
+			display: flex;
+			align-items: center;
+			font-weight: normal;
+
+			.right-contrent1 {
+				background: #22C572;
+				height: 25px;
+				font-size: 14px;
+				color: #fff;
+
+			}
+
+		}
+	}
+
+	.good-list {
+		width: 95%;
+		margin: 0 auto;
+		background-color: white;
+		padding: 33px 0px 25px 0px;
+		border-radius: 30rpx;
+		box-shadow: 0px 5rpx 20rpx #E3E3E3;
+		margin-bottom: 10px;
+
+		.item1,
+		.item3 {
+			// width: 40%;
+			display: flex;
+
+			.text {
+				text-overflow: ellipsis;
+				overflow: hidden;
+				white-space: nowrap;
+			}
+
+		}
+
+		.item1 .text {
+			text-align: left;
+		}
+
+		.item3 .text {
+			text-align: right;
+		}
+
+	}
+
+	.fuxuankuang {
+		margin-top: 10px;
+	}
+
+	.xf-iamge {
+		width: 74rpx;
+		height: 43rpx;
+		position: absolute;
+		top: -20rpx;
+		right: 0;
+	}
+
+	.level2-title {
+		font-size: 28rpx;
+		width: 84px;
+	}
+
+	.jt-icon {
+		position: relative;
+		top: 6rpx;
+		width: 60rpx;
+		margin: 0 20rpx;
+
+	}
+
+	.ssx {
+		width: 20px;
+		height: 20px;
+		background: linear-gradient(180deg, #C8D7E5 0%, #AFC1D6 100%);
+		font-size: 13px;
+		font-family: PingFangSC-Medium, PingFang SC;
+		font-weight: 500;
+		color: #FFFFFF;
+		border-radius: 50%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		margin-right: 5px;
+	}
+
+	.level2-title {
+		font-weight: 700;
+		color: #000000;
+	}
+
+	.wenzi {
+		margin-top: -65px;
+		text-align: right;
+		border-radius: 5px;
+		height: 5px;
+	}
+
+	.audit1 {
+		color: #22C572;
+	}
+
+	.audit2 {
+		color: #22C572;
+	}
+
+	.audit3 {
+		color: #AFB3BF;
+	}
+
+	.c-row {
+		display: flex;
+		-webkit-box-align: center;
+		align-items: center;
+		// padding: 0px 15px;
+		position: relative;
+	}
+
+	.shade {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: 100%;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.4);
+		z-index: 3;
+
+		.wrap1 {
+			position: absolute;
+			left: 0;
+			top: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			background: #fff;
+			width: calc(100% - 198rpx);
+			height: 320px;
+			border-radius: 20rpx;
+
+			input {
+				font-size: 14px;
+			}
+
+			.alert-top {
+				padding: 33rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				position: relative;
+			}
+
+			.title1 {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+			}
+
+			.close {
+				position: absolute;
+				right: 33rpx;
+			}
+		}
+
+		.title2 {
+			padding: 10px 16px;
+		}
+
+		.con-list {
+			-webkit-box-flex: 1;
+			flex: 1;
+			display: flex;
+			-webkit-box-orient: vertical;
+			-webkit-box-direction: normal;
+			flex-direction: column;
+			color: #303133;
+			line-height: 20px;
+			text-align: right;
+			padding-right: 10px;
+		}
+
+		.cancel {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.confirm {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.cancel {
+			left: 0;
+			border-right: 1px solid #eee;
+			color: #ff0000;
+		}
+
+		.confirm {
+			right: 0;
+			color: #22C572;
+		}
+
+		.bottom-btn {
+			width: 100%;
+			position: fixed;
+			bottom: 0;
+			display: flex;
+			z-index: 2;
+			left: 0;
+			background-color: #f8f8f8;
+			flex-direction: column;
+
+			.btn1,
+			.btn2 {
+				width: 100%;
+				margin-bottom: 26rpx;
+				border-radius: 90rpx;
+			}
+
+			.btn1 {
+				background: white;
+				color: #00C265;
+			}
+		}
+	}
+
+	.textarea {
+		background: #F9F9FA;
+		border: 1px solid #EEEEEE;
+		margin-left: 10px;
+	}
+</style>

+ 244 - 0
pages/shortDistance/short_track_addition.vue

@@ -0,0 +1,244 @@
+<template>
+	<view>
+		<view>
+			<view class='wrap'>
+				<view class="c-row">
+					<view class="title">车牌号</view>
+					<view class="con-list">
+						<input v-model='detailData.carNo' placeholder="请输入车牌号" maxlength="7"></input>
+					</view>
+				</view>
+			</view>
+			<view @click='startTrack' class="button" v-if='titleBtn=="开始轨迹"'>{{titleBtn}}</view>
+			<view @click='startTrack' class="button1" v-if='titleBtn=="结束轨迹"'>{{titleBtn}}</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				detailData: {
+					carNo: '',
+					travelStatus: '',
+					originProvince: '',
+					originCity: '',
+					originArea: '',
+					originLongitude: '',
+					originLatitude: '',
+					destinationProvince: '',
+					destinationCity: '',
+					destinationArea: '',
+					destinationLongitude: '',
+					destinationLatitude: '',
+					trackFlag: '0',
+					compId: '',
+					commonId: '',
+					mileage: '',
+					sendWarehouse:'',
+					receiveWarehouse:'',
+				},
+				titleBtn: "开始轨迹",
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+		},
+		onShow() {
+			var that = this
+			if (this.id) {
+				this.seeInfo()
+			}
+		},
+		methods: {
+			seeInfo() {
+				this.$api.doRequest('get', '/shortFillingInfo/getShortFilling', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.detailData = res.data.data
+						if (this.detailData.travelStatus == "已开始") {
+							this.titleBtn = "结束轨迹"
+						} 
+					}
+				})
+			},
+			startTrack() {
+				if (this.titleBtn == "开始轨迹") {
+					var that = this
+					uni.showModal({
+						content: "确定开始轨迹?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							if (res.confirm) {
+								that.detailData.compId = uni.getStorageSync('pcUserInfo').compId
+								that.detailData.commonId = uni.getStorageSync('pcUserInfo').userId
+								that.detailData.driverName = uni.getStorageSync('userInfo').userName
+								that.detailData.trackFlag = "0"
+								that.detailData.fillingNo = "202207040004"
+								that.detailData.originProvince = "黑龙江省"
+								that.detailData.originCity = "齐齐哈尔市"
+								that.detailData.originArea = "克东县"
+								that.detailData.sendWarehouse = "克东千丰库"
+								that.detailData.originLongitude = "123.188"
+								that.detailData.originLatitude = "41.737"
+								that.$api.doRequest('post', '/shortFillingInfo/api/addShortFilling',
+										that.detailData
+									)
+									.then(res => {
+										that.id = res.data.data
+										if (res.data.code == 200) {
+											that.$api.msg('提交成功')
+											that.titleBtn = "结束轨迹"
+										} else {
+											that.$api.msg('提交失败')
+										}
+									})
+							}
+						}
+					})
+				} else if (this.titleBtn == "结束轨迹") {
+					var that = this
+					uni.showModal({
+						content: "确定结束轨迹?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							if (res.confirm) {
+								that.detailData.compId = uni.getStorageSync('pcUserInfo').compId
+								that.detailData.commonId = uni.getStorageSync('pcUserInfo').userId
+								that.detailData.driverName = uni.getStorageSync('userInfo').userName
+								that.detailData.trackFlag = "1"
+								that.detailData.destinationProvince = "辽宁省"
+								that.detailData.receiveWarehouse = "鲅鱼圈红运库"
+								that.detailData.carNo
+								that.detailData.mileage = "15"
+								that.detailData.destinationLongitude = "118.291"
+								that.detailData.destinationLatitude = "33.942"
+								that.$api.doRequest('post', '/shortFillingInfo/api/addShortFilling',
+										that.detailData
+									)
+									.then(res => {
+										if (res.data.code == 200) {
+											that.$api.msg('提交成功')
+											uni.navigateTo({
+												url: '/pages/shortDistance/short_distance_record'
+											})
+										} else {
+											that.$api.msg('提交失败')
+										}
+									})
+							}
+						}
+					})
+				} 
+			},
+		}
+	}
+</script>
+
+<style lang='scss' scoped>
+	page {
+		background: #F5F6FA;
+	}
+
+	.title_b {
+		margin: 20rpx 20rpx 0rpx 20rpx;
+		padding: 20rpx 10rpx 20rpx 10rpx;
+		font-size: 18px;
+		font-weight: 550;
+	}
+
+	.c-row {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		align-items: center;
+		padding: 20rpx 30rpx;
+	}
+
+	.con-list {
+		-webkit-box-flex: 1;
+		-webkit-flex: 1;
+		flex: 1;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		flex-direction: column;
+		color: #303133;
+		line-height: 40rpx;
+		text-align: right;
+		padding-right: 20rpx;
+	}
+
+	.wrap {
+		font-size: 14px;
+		background: #fff;
+		margin: 10px;
+		border-radius: 15px 10px;
+
+		input {
+			font-size: 14px;
+		}
+
+		>.title {
+			padding: 10px 16px;
+		}
+	}
+
+	.button {
+		background: #22C572;
+		width: 90%;
+		margin: 250px auto;
+		padding: 10px;
+		color: #fff;
+		text-align: center;
+		border-radius: 30px;
+	}
+
+	.button1 {
+		background: #ff0000;
+		width: 90%;
+		margin: 250px auto;
+		padding: 10px;
+		color: #fff;
+		text-align: center;
+		border-radius: 30px;
+	}
+
+	.buns_item {
+		display: flex;
+		padding: 80rpx 0 50rpx 0;
+		justify-content: space-around;
+	}
+
+	.but_css {
+		background: #22C572;
+		width: 40%;
+		padding: 20rpx;
+		color: #fff;
+		text-align: center;
+		border-radius: 20rpx;
+	}
+
+	/deep/.u-radio-group {
+		flex-direction: row-reverse;
+	}
+
+	.no-boder {
+		border: 0;
+	}
+
+	.textarea {
+		background: #F9F9FA;
+		border: 1px solid #EEEEEE;
+	}
+</style>
+

+ 13 - 11
pages/task/audit/freight_setting_approval.vue

@@ -42,7 +42,8 @@
 
 				</u-form-item>
 				<u-form-item label="运费(元/吨)" prop="tranPrice" label-width="250">
-					<u-input v-if='list.billingMethod==1' v-model="list.tranPriceIng" input-align="right" placeholder="请输入运费单价" />
+					<u-input v-if='list.billingMethod==1' v-model="list.tranPriceIng" input-align="right"
+						placeholder="请输入运费单价" />
 					<u-input v-else v-model="list.tranPriceIngCar" input-align="right" placeholder="请输入运费单价" />
 				</u-form-item>
 			</u-form>
@@ -102,29 +103,30 @@
 			},
 			passSubmit() {
 				var that = this
-				if (!this.list.tranPriceIng&&this.list.billingMethod==1||!this.list.tranPriceIngCar&&this.list.billingMethod==2) {
+				if (!this.list.tranPriceIng && this.list.billingMethod == 1 || !this.list.tranPriceIngCar && this.list
+					.billingMethod == 2) {
 					this.$api.msg('运费单价不能为空')
 					return
 				}
-				
+
 				uni.showLoading({
 					title: "审核中"
 				})
 				var tranProcessInfo = {}
-				var url=''
+				var url = ''
 				tranProcessInfo.id = that.list.id
 				tranProcessInfo.flag = "2"
-				tranProcessInfo.billingMethod=that.list.billingMethod
+				tranProcessInfo.billingMethod = that.list.billingMethod
 				tranProcessInfo.reviewer = that.userInfo.userName
 				tranProcessInfo.tranTypeKey = that.list.tranTypeKey
-				if(that.list.billingMethod==1){
+				if (that.list.billingMethod == 1) {
 					tranProcessInfo.tranPriceIng = that.list.tranPriceIng
-					url='/tranProcessInfo/api/setUpTranPrice'
-				}else{
+					url = '/tranProcessInfo/api/setUpTranPrice'
+				} else {
 					tranProcessInfo.tranPriceIngCar = that.list.tranPriceIngCar
-					url='/tranProcessInfo/api/setUpTranPriceCar'
+					url = '/tranProcessInfo/api/setUpTranPriceCar'
 				}
-				that.$api.doRequest('post',url , tranProcessInfo)
+				that.$api.doRequest('post', url, tranProcessInfo)
 					.then(res => {
 						if (res.data.code == 200) {
 							that.$api.msg('审核通过成功!')
@@ -228,4 +230,4 @@
 		width: 100%;
 		justify-content: flex-end;
 	}
-</style>
+</style>

+ 113 - 88
pages/task/audit/freight_settlement_approval.vue

@@ -4,71 +4,76 @@
 			<view class="topInfo-item">
 				<view class="flex info">
 					<view class="logo">
-						<image src="../../../static/img/reject.png" mode="" v-if="list.approveStatus == '已驳回'"
+						<image src="../../../static/img/reject.png" mode="" v-if="list[0].approveStatus == '已驳回'"
 							style="height: 40rpx;"></image><!-- 驳回 -->
-						<image src="../../../static/img/tongguo.png" mode="" v-if="list.approveStatus == '已通过'"
+						<image src="../../../static/img/tongguo.png" mode="" v-if="list[0].approveStatus == '已通过'"
 							style="height: 40rpx;"></image><!-- 通过 -->
 						<image src="../../../static/img/daishenhe.png" mode=""
-							v-if="list.approveStatus == '待决策人审核'|| list.approveStatus == '待财务审核'"
+							v-if="list[0].approveStatus == '待决策人审核'|| list[0].approveStatus == '待财务审核'"
 							style="height: 40rpx;"></image><!-- 待审核 -->
 					</view>
-					<view class="infoText">{{list.approveStatus}}</view>
+					<view class="infoText">{{list[0].approveStatus}}</view>
 				</view>
-				<view class="infoData">{{list.updateDate}}</view>
+				<view class="infoData">{{list[0].updateDate}}</view>
 			</view>
 		</view>
 		<view class="content">
 			<view class="top">
 				<view>合同编号</view>
-				<view>{{list.contractNo}}</view>
+				<view>{{list[0].contractNo}}</view>
 			</view>
 			<view class="person-info">
-					<view class="top1" style="display: flex;">
-						<view>客户</view>
-						<view>{{customerName}}</view>
-					</view>
-				
-					<view class="top1">
-						<view>发货地址</view>
-						<view class="top_info">{{shippingAddress ? shippingAddress : "暂无发货地址"}}</view>
-					</view>
-			
-		
-					<view class="top1">
-						<view>收货地址</view>
-						<view class="top_info">{{receivingAddress ? receivingAddress : "暂无收货地址"}}</view>
-					</view>
-				
-			</view>
-			<view class="car-container">
-				<view class="car-num title" v-if="list.tranTypeKey== '1'">{{list.carNo}} ({{list.tranCarNo}})</view>
-				<view class="car-num title" v-if="list.tranTypeKey== '2'">车厢号{{list.boxNo}}</view>
-				<view class="car-num title" v-if="list.tranTypeKey== '3'&&list.shipType== '散船'">仓位号{{list.boxNo}}</view>
-				<view class="car-num title" v-if="list.tranTypeKey== '3'&&list.shipType== '集装箱'">箱号{{list.boxNo}}</view>
-				<view class="car-type-item">
-					<view class="left">装</view>
-					<view class="textInfo">{{list.loadingWeight}}吨</view>
+				<view class="top1" style="display: flex;">
+					<view>客户</view>
+					<view>{{list[0].customer}}</view>
 				</view>
-				<view class="car-type-item">
-					<view class="center">卸</view>
-					<view class="textInfo">{{list.unloadingWeight}}吨</view>
-				</view>
-				<view class="car-type-item">
-					<view class="right">结</view>
-					<view class="textInfo">{{list.settlementWeight}}吨</view>
-				</view>
-				<view class="car-type-item">
-					<view class="left">运</view>
-					<view class="textInfo">{{list.transportPrice}}元/吨</view>
+
+				<view class="top1">
+					<view>发货地址</view>
+					<view class="top_info">{{list[0].send ? list[0].send : "暂无发货地址"}}</view>
 				</view>
-				<view class="car-type-item">
-					<view class="center">扣</view>
-					<view class="textInfo">{{list.deductionAmount}}元</view>
+
+
+				<view class="top1">
+					<view>收货地址</view>
+					<view class="top_info">{{list[0].receive ? list[0].receive : "暂无收货地址"}}</view>
 				</view>
-				<view class="car-type-item">
-					<view class="right">付</view>
-					<view class="textInfo">{{list.amountIngPayable}}元</view>
+
+			</view>
+			<view class="car-container">
+				<view v-for="item in list" class="car-container-item">
+					<view class="car-num title" v-if="item.tranTypeKey== '1'">{{item.carNo}} ({{item.tranCarNo}})</view>
+					<view class="car-num title" v-if="item.tranTypeKey== '2'">车厢号{{item.boxNo}}</view>
+					<view class="car-num title" v-if="item.tranTypeKey== '3'&&item.shipType== '散船'">仓位号{{item.boxNo}}
+					</view>
+					<view class="car-num title" v-if="item.tranTypeKey== '3'&&item.shipType== '集装箱'">箱号{{item.boxNo}}
+					</view>
+					<view class="car-type-item">
+						<view class="left">装</view>
+						<view class="textInfo">{{item.loadingWeight}}吨</view>
+					</view>
+					<view class="car-type-item">
+						<view class="center">卸</view>
+						<view class="textInfo">{{item.unloadingWeight}}吨</view>
+					</view>
+					<view class="car-type-item">
+						<view class="right">结</view>
+						<view class="textInfo">{{item.settlementWeight}}吨</view>
+					</view>
+					<view class="car-type-item">
+						<view class="left">运</view>
+						<view class="textInfo">{{item.transportPrice}}元/吨</view>
+					</view>
+					<view class="car-type-item">
+						<view class="center">扣</view>
+						<view class="textInfo">{{item.deductionAmount}}元</view>
+					</view>
+					<view class="car-type-item">
+						<view class="right">付</view>
+						<view class="textInfo">{{item.amountIngPayable}}元</view>
+					</view>
 				</view>
+
 			</view>
 		</view>
 		<view v-if='show' class="shade">
@@ -112,21 +117,21 @@
 				title: '',
 				show: false,
 				height: 200,
-				auditMind:'',
+				auditMind: '',
 				autoHeight: true,
 				border: false,
 				everyCheck: '',
-				customerName:"",//客户
-				shippingAddress:"",//发货地址
-				receivingAddress:"",//收货地址
+				customerName: "", //客户
+				shippingAddress: "", //发货地址
+				receivingAddress: "", //收货地址
 			}
 		},
 		onBackPress(e) {
-			if(this.everyCheck){
-			uni.navigateTo({
-				url: "/pages/task/my_task"
-			})
-			return true;
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
 			}
 		},
 		onLoad(options) {
@@ -137,29 +142,38 @@
 		},
 		methods: {
 			getList() {
-				this.$api.doRequest('get', '/tranSettlementReport/getInfo', {
-					id: this.id
+				this.$api.doRequest('get', '/tranSettlementReport/getTranSettlementReport', {
+					batchId: this.id
 				}).then(res => {
-					this.contractNo = res.data.data.contractNo
-					this.carId = res.data.data.carId
-					this.customerName =  res.data.data.customer
-					this.shippingAddress = res.data.data.send
-					this.receivingAddress = res.data.data.receive
 					if (res.data.code == 200) {
-						this.$api.doRequest('get', '/tranSettlementReport/selectTranSettlementReport', {
-							compId: "2710b21efc1e4393930c5dc800010dc4",
-							currentPage: this.currentPage,
-							pageSize: this.pageSize,
-							contractNo: this.contractNo,
-							carId: this.carId,
-						}).then(res => {
-							if (res.data.code == 200) {
-								this.list = res.data.data.records[0]
-								console.log(this.list, 124)
-							}
-						})
+						debugger
+						this.list = res.data.data
+						// console.log(this.list, 124)
 					}
 				})
+				// this.$api.doRequest('get', '/tranSettlementReport/getInfo', {
+				// 	id: this.id
+				// }).then(res => {
+				// 	this.contractNo = res.data.data.contractNo
+				// 	this.carId = res.data.data.carId
+				// 	this.customerName = res.data.data.customer
+				// 	this.shippingAddress = res.data.data.send
+				// 	this.receivingAddress = res.data.data.receive
+				// 	if (res.data.code == 200) {
+				// 		this.$api.doRequest('get', '/tranSettlementReport/getTranSettlementReport', {
+				// 			compId: "2710b21efc1e4393930c5dc800010dc4",
+				// 			currentPage: this.currentPage,
+				// 			pageSize: this.pageSize,
+				// 			contractNo: this.contractNo,
+				// 			carId: this.carId,
+				// 		}).then(res => {
+				// 			if (res.data.code == 200) {
+				// 				this.list = res.data.data.records[0]
+				// 				console.log(this.list, 124)
+				// 			}
+				// 		})
+				// 	}
+				// })
 			},
 			close() {
 				this.show = false
@@ -185,7 +199,7 @@
 						confirmText: '确定',
 						success: function(res) {
 							if (res.confirm) {
-								that.audit(that.list, 0, false, true, that.rejectInfo)
+								that.audit(that.list[0], 0, false, true, that.rejectInfo)
 							}
 						}
 					})
@@ -205,7 +219,7 @@
 						confirmText: '确定',
 						success: function(res) {
 							if (res.confirm) {
-								that.audit(that.list, 0, true, 2, that.rejectInfo1)
+								that.audit(that.list[0], 0, true, 2, that.rejectInfo1)
 							}
 						}
 					})
@@ -231,7 +245,7 @@
 						}
 						setTimeout(function() {
 							if (that.everyCheck) {
-								helper.setAudit(that.list)
+								helper.setAudit(that.list[0])
 							} else {
 								uni.navigateBack()
 							}
@@ -259,7 +273,8 @@
 			font-size: 36rpx;
 			margin-top: 20rpx;
 		}
-		.top1{
+
+		.top1 {
 			// display: flex;
 			justify-content: space-between;
 			border-radius: 20rpx;
@@ -268,8 +283,9 @@
 			font-size: 30rpx;
 			margin-top: 20rpx;
 		}
-		.top_info{
-		margin: 10rpx 0;
+
+		.top_info {
+			margin: 10rpx 0;
 		}
 
 		.title {
@@ -281,11 +297,15 @@
 		}
 
 		.car-container {
+
+			// border-bottom: 2rpx solid #EEEEEE;
+		}
+
+		.car-container-item {
+			background: white;
 			padding: 10rpx 20rpx;
 			border-radius: 20rpx;
-			background: white;
-			margin: 30rpx 0;
-			// border-bottom: 2rpx solid #EEEEEE;
+			margin: 20rpx 0;
 		}
 
 		.car-type-item {
@@ -453,6 +473,7 @@
 		right: 0;
 		color: #22C572;
 	}
+
 	.u-textarea-style {
 		margin: 20rpx;
 		background: #F9F9FA;
@@ -460,7 +481,7 @@
 		border: 1px solid #EEEEEE;
 		padding: 10rpx 20rpx;
 		position: relative;
-	
+
 		.right-bottom {
 			position: absolute;
 			right: 20rpx;
@@ -472,16 +493,19 @@
 	/deep/.u-input__textarea {
 		height: 300rpx !important;
 	}
-	.person-info{
+
+	.person-info {
 		background: white;
 		padding: 20rpx 0;
 		border-radius: 20rpx;
 		// margin-bottom: 50rpx;
 		margin: 20rpx 0;
-		.tit{
+
+		.tit {
 			font-size: 36rpx;
 		}
 	}
+
 	.c-row {
 		display: -webkit-box;
 		display: -webkit-flex;
@@ -492,6 +516,7 @@
 		padding: 20rpx 30rpx;
 		position: relative;
 	}
+
 	.c-row1 {
 		// display: -webkit-box;
 		// display: -webkit-flex;

+ 478 - 0
pages/task/audit/leave_approve.vue

@@ -0,0 +1,478 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode=""
+							v-if="dataList.status == '已驳回'" style="height: 40rpx;">
+						</image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode=""
+							v-else-if="dataList.status == '已通过'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<image src="../../../static/img/daishenhe.png" mode=""
+							v-else-if="dataList.approveStatus == '待人事审核' || dataList.approveStatus == '待主管审核'"
+							style="height: 40rpx;"></image><!-- 待审核 -->
+					</view>
+					<view class="infoText" v-if="dataList.approveStatus">{{dataList.approveStatus}}</view>
+					<view class="infoText" v-else>{{dataList.status}}</view>
+				</view>
+				<view class="infoData" v-if="dataList.updateDate">{{dataList.updateDate}}</view>
+			</view>
+		</view>
+		<view class="content1">
+			<!-- :model="OutList" -->
+			<u-form  ref="uForm">
+				<u-form-item label="请假类型" prop="leaveType" label-width="140" class="uForm_item">
+					<u-input v-model="dataList.leaveType" input-align="right" disabled v-if="dataList.leaveType"/>
+				</u-form-item>
+					<view class="uForm_item">
+						<view class='row'>
+							<view class="left">开始时间</view>
+							<view class="right">{{dataList.startDate}}</view>
+						</view>
+						<view class='row'>
+							<view class="left">结束时间</view>
+							<view class="right">{{dataList.endDate}}</view>
+						</view>
+						<view class='row'>
+							<view class="left">请假时长</view>
+							<view class="right">{{dataList.leaveDuration}}</view>
+						</view>
+						<u-form-item label="请假事由" prop="reasonForLeave" label-width="160" label-position="top">
+							<u-input v-model="dataList.reasonForLeave" input-align="left" placeholder="请输入请假事由"
+								type="textarea" class="textarea" maxlength="150" />
+						</u-form-item>
+					</view>
+			</u-form>
+		</view>
+	<view v-if='show' class="shade1">
+		<view class="wrap1">
+			<view class="alert-top1">
+				<view class="title1">
+					{{title}}
+				</view>
+				<u-icon name="close" class="close1" color="#8890B1" @click="close()"></u-icon>
+			</view>
+			<view class="u-textarea-style1">
+				
+				<u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
+					maxlength="100" />
+					<view class="right-bottom1">
+						{{auditMind.length}}/100个字
+					</view>
+			</view>
+			<view @click='close()' class="cancel1">取消</view>
+			<view @click='passSubmit()' class="confirm1">确定</view>
+		</view>
+	</view>
+	<u-toast ref="uToast" />
+	<view style='padding:10px;' class='flex bottom-btn'>
+		<u-button @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
+		<u-button @click='pass' type="success" class="btn2">通过</u-button>
+	</view>
+	</view>
+
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				everyCheck: '',
+				height: 200,
+				autoHeight: true,
+				border: false,
+				id: "",
+				show: false,
+				auditMind: '',
+				leaveType:'',
+				reasonForLeave:'',
+				startDate:'',
+				endDate:'',
+				leaveDuration:'',
+				leaveType:'',
+				approveStatus:'',
+				status:'',
+				updateDate:'',
+				dataList:{},
+			}
+		},
+		onBackPress(e) {
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.everyCheck = uni.getStorageSync("everyTask")
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/leaveInfo/getLeaveInfo', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.dataList = res.data.data
+					
+					}
+				})
+			},
+			close() {
+				this.show = false
+			},
+			pass() {
+				this.show = true
+				this.title = '审核意见(通过)'
+			},
+			reject() {
+				this.show = true
+				this.title = '驳回原因(驳回)'
+			},
+			//通过
+			passSubmit() {
+				var that = this
+				if (this.title == '驳回原因(驳回)') {
+					this.rejectSubmit()
+				} else {
+					let that = this
+					that.show = false
+					uni.showModal({
+						content: "是否确定通过?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							that.$api.doRequest('post', '/workflow/api/handle', {
+								approved: true,
+								taskId: that.dataList.taskId,
+								auditMind: that.auditMind,
+								needReapply: false
+							}).then(res => {
+								if (res.data.code == 200) {
+									that.$api.msg('审核成功!')
+									uni.navigateTo({
+										url: "/pages/task/my_task"
+									})
+								} else {
+									that.$api.msg('审核失败!')
+								}
+
+							}).catch(res => {
+								uni.hideLoading()
+								if (res.message) {
+									uni.showToast({
+										title: res.message,
+										icon: 'none',
+										duration: 2000
+									})
+								} else {
+									uni.showToast({
+										title: "系统异常,请联系管理员",
+										icon: 'none',
+										duration: 2000
+									})
+								}
+							})
+						}
+					})
+				}
+			},
+			//驳回
+			rejectSubmit() {
+				if (!this.auditMind) {
+					this.$api.msg('驳回原因不能为空!')
+				} else {
+					this.show = false
+					let that = this
+					uni.showModal({
+						content: "是否确定驳回?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							that.$api.doRequest('post', '/workflow/api/handle', {
+								approved: false,
+								taskId: that.dataList.taskId,
+								auditMind: that.auditMind,
+								needReapply: true
+							}).then(res => {
+								if (res.data.code == 200) {
+									this.$api.msg('驳回成功!')
+									uni.navigateTo({
+										url: "/pages/task/my_task"
+									})
+									uni.hideLoading()
+								} else {
+									this.$api.msg('驳回失败!')
+								}
+
+							})
+						}
+					})
+				}
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.content1 {
+		margin: 10rpx;
+		padding-bottom: 224rpx;
+
+		.title {
+			height: 70rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			font-weight: 600;
+			color: #333333;
+			border-bottom: 2rpx solid #EEEEEE;
+		}
+	}
+
+	.uForm {
+		padding: 0 40rpx;
+	}
+
+	.u-form-item {
+		padding: 0;
+	}
+
+	.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom: 0;
+		display: flex;
+		z-index: 2;
+		left: 0;
+		background-color: #f8f8f8;
+		flex-direction: column;
+
+		.btn1,
+		.btn2 {
+			width: 100%;
+			margin-bottom: 26rpx;
+			border-radius: 90rpx;
+		}
+
+		.btn1 {
+			background: white;
+			color: #00C265;
+		}
+	}
+
+	.submit {
+		width: 50%;
+		background: #22C572;
+		border-radius: 10rpx;
+	}
+
+	.part2 {
+		margin-top: 20rpx;
+	}
+
+	.textarea {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+	}
+
+	.row {
+		display: flex;
+		justify-content: space-between;
+		// border-bottom: 1px solid #EEEEEE;
+		padding: 21rpx 0;
+
+		.right,
+		input {
+			font-size: 28rpx;
+			color: #333333;
+		}
+	}
+
+	//弹出框
+	// .popup {
+	// 	padding: 30rpx;
+	// 	border-radius: 20rpx;
+	// }
+	// .rejectInfoCss {
+	// 	border: 1px solid #ccc;
+	// 	border-radius: 10rpx;
+	// 	background-color: #F9F9FA;
+	// 	margin: 30rpx;
+	// 	overflow-y: auto;
+	// 	// height: 300rpx;
+	// 	background: red;
+	// }
+
+	.uForm_item {
+		padding: 20rpx;
+		background-color: #FFFFFF;
+		margin: 20rpx;
+		border-radius: 20rpx;
+	}
+
+	.rejectText {
+		text-align: center;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+	}
+
+	.shade1 {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: 100%;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.4);
+		z-index: 3;
+
+		.wrap1 {
+			position: absolute;
+			left: 0;
+			top: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			background: #fff;
+			width: calc(100% - 198rpx);
+		    height: 355px;
+			border-radius: 20rpx;
+
+			.alert-top1 {
+				padding: 33rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				position: relative;
+			}
+
+			.title1 {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+			}
+
+			.close1 {
+				position: absolute;
+				right: 33rpx;
+			}
+		}
+
+		.u-textarea-style1 {
+			margin: 20rpx;
+			background: #F9F9FA;
+			border-radius: 10px;
+			border: 1px solid #EEEEEE;
+			padding: 10rpx 20rpx;
+			height: 230px;
+
+			.right-bottom1 {
+				position: absolute;
+				right: 20rpx;
+				bottom: 80px;
+				color: #AFB3BF;
+			}
+		}
+
+		.cancel1 {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.confirm1 {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.cancel1 {
+			left: 0;
+			border-right: 1px solid #eee;
+			color: #ff0000;
+		}
+
+		.confirm1 {
+			right: 0;
+			color: #22C572;
+		}
+
+			.bottom-btn1 {
+				width: 100%;
+				// position: fixed;
+				bottom: 0;
+				display: flex;
+				z-index: 2;
+				left: 0;
+				background-color: #f8f8f8;
+				flex-direction: column;
+
+				.btn1,
+				.btn2 {
+					width: 100%;
+					margin-bottom: 26rpx;
+					border-radius: 90rpx;
+				}
+
+				.btn1 {
+					background: white;
+					color: #00C265;
+				}
+			}
+	}
+
+	/deep/.u-input__textarea {
+		height: 300rpx !important;
+	}
+</style>

+ 245 - 0
pages/task/audit/leave_details.vue

@@ -0,0 +1,245 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode=""
+							v-if="dataList.status == '已驳回'" style="height: 40rpx;">
+						</image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode=""
+							v-else-if="dataList.status == '已通过'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<image src="../../../static/img/daishenhe.png" mode=""
+							v-else-if="dataList.approveStatus == '待人事审核' || dataList.approveStatus == '待主管审核'"
+							style="height: 40rpx;"></image><!-- 待审核 -->
+					</view>
+					<view class="infoText" v-if="dataList.approveStatus">{{dataList.approveStatus}}</view>
+					<view class="infoText" v-else>{{dataList.status}}</view>
+				</view>
+				<view class="infoData" v-if="dataList.updateDate">{{dataList.updateDate}}</view>
+			</view>
+		</view>
+		<view class="content1">
+			<!-- :model="OutList" -->
+			<u-form  ref="uForm">
+				<u-form-item label="请假类型" prop="leaveType" label-width="140" class="uForm_item">
+					<u-input v-model="dataList.leaveType" input-align="right" disabled v-if="dataList.leaveType"/>
+				</u-form-item>
+					<view class="uForm_item">
+						<view class='row'>
+							<view class="left">开始时间</view>
+							<view class="right">{{dataList.startDate}}</view>
+						</view>
+						<view class='row'>
+							<view class="left">结束时间</view>
+							<view class="right">{{dataList.endDate}}</view>
+						</view>
+						<view class='row'>
+							<view class="left">请假时长</view>
+							<view class="right">{{dataList.leaveDuration}}</view>
+						</view>
+						<u-form-item label="请假事由" prop="reasonForLeave" label-width="160" label-position="top">
+							<u-input v-model="dataList.reasonForLeave" input-align="left" placeholder="请输入请假事由"
+								type="textarea" class="textarea" maxlength="150" />
+						</u-form-item>
+					</view>
+			</u-form>
+		</view>
+		<view style='padding:10px;' class='flex bottom-btn'>
+			<u-button @click='fanHui' type="success" class="btn1" hover-class='none'>返回</u-button>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				id: "",
+				show: false,
+				show1: false,
+				border: false,
+				rejectInfo: "", //驳回原因
+				leaveType:'',
+				reasonForLeave:'',
+				startDate:'',
+				endDate:'',
+				leaveDuration:'',
+				leaveType:'',
+				approveStatus:'',
+				status:'',
+				updateDate:'',
+				dataList:{},
+			}
+		},
+		// onReady() {
+		// 	this.$refs.uForm.setRules(this.rules);
+		// },
+		onLoad(options) {
+			this.id = options.id
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/leaveInfo/getLeaveInfo', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.dataList = res.data.data
+					
+					}
+				})
+			},
+			fanHui() {
+				uni.navigateBack()
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.content1 {
+		margin: 10rpx;
+		padding-bottom: 120rpx;
+
+		.title {
+			height: 70rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			font-weight: 600;
+			color: #333333;
+			border-bottom: 2rpx solid #EEEEEE;
+		}
+	}
+
+	.uForm {
+		padding: 0 40rpx;
+	}
+
+	.u-form-item {
+		padding: 0;
+	}
+
+	.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom: 0;
+		display: flex;
+		z-index: 2;
+		left: 0;
+		background-color: #f8f8f8;
+		flex-direction: column;
+
+		.btn1,
+		.btn2 {
+			width: 100%;
+			margin-bottom: 26rpx;
+			border-radius: 90rpx;
+		}
+
+		.btn1 {
+			background: white;
+			color: #00C265;
+		}
+	}
+
+	.submit {
+		width: 50%;
+		background: #22C572;
+		border-radius: 10rpx;
+	}
+
+	.part2 {
+		margin-top: 20rpx;
+	}
+
+	.textarea {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+	}
+
+	.row {
+		display: flex;
+		justify-content: space-between;
+		// border-bottom: 1px solid #EEEEEE;
+		padding: 21rpx 0;
+
+		.right,
+		input {
+			font-size: 28rpx;
+			color: #333333;
+		}
+	}
+
+	//弹出框
+	// .popup {
+	// 	padding: 30rpx;
+	// 	border-radius: 20rpx;
+	// }
+	.rejectInfoCss {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+		margin: 30rpx;
+	}
+
+	.uForm_item {
+		padding: 20rpx;
+		background-color: #FFFFFF;
+		margin: 20rpx;
+		border-radius: 20rpx;
+	}
+
+	.rejectText {
+		text-align: center;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+
+	}
+
+	.deleteText {
+		text-align: center;
+		color: #AFB3BF;
+	}
+</style>
+

+ 2 - 0
pages/task/audit/purchasecontract.vue

@@ -228,6 +228,8 @@
 							this.list.deliverType1 = '我方自提'
 						} else if (this.list.deliverType == 2) {
 							this.list.deliverType1 = '对方送货'
+						}else if (this.list.deliverType == 3) {
+							this.list.deliverType1 = '对方送货(临时库)'
 						}
 						this.$api.doRequest('get', '/appendix/query/getFileList', {
 							appendixIds: that.list.addressUrl

+ 462 - 0
pages/task/audit/supp_clock_approve.vue

@@ -0,0 +1,462 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode=""
+							v-if="dataList.status == '补卡失败'" style="height: 40rpx;">
+						</image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode=""
+							v-else-if="dataList.status == '补卡成功'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<image src="../../../static/img/daishenhe.png" mode=""
+							v-else-if="dataList.approveStatus == '待人事审核'"
+							style="height: 40rpx;"></image><!-- 待审核 -->
+					</view>
+					<view class="infoText" v-if="dataList.approveStatus">{{dataList.approveStatus}}</view>
+					<view class="infoText" v-else>{{dataList.status}}</view>
+				</view>
+				<view class="infoData" v-if="dataList.updateDate">{{dataList.updateDate}}</view>
+			</view>
+		</view>
+		<view class="content1">
+			<!-- :model="OutList" -->
+			<u-form  ref="uForm">
+				<u-form-item label="补卡原因" prop="supplementClockType" label-width="140" class="uForm_item">
+					<u-input input-align="right" disabled v-if="dataList.supplementClockType=='1'" value="上班">上班</u-input>
+					<u-input  input-align="right" disabled v-if="dataList.supplementClockType=='3'" value="下班">下班</u-input>
+				</u-form-item>
+					<view class="uForm_item">
+						<u-form-item label="申请理由" prop="reasonForApplication" label-width="160" label-position="top">
+							<u-input v-model="dataList.reasonForApplication" input-align="left" placeholder="请输入业务描述"
+								type="textarea" class="textarea" maxlength="150" />
+						</u-form-item>
+					</view>
+			</u-form>
+		</view>
+	<view v-if='show' class="shade1">
+		<view class="wrap1">
+			<view class="alert-top1">
+				<view class="title1">
+					{{title}}
+				</view>
+				<u-icon name="close" class="close1" color="#8890B1" @click="close()"></u-icon>
+			</view>
+			<view class="u-textarea-style1">
+				<view class="right-bottom1">
+					{{auditMind.length}}/100个字
+				</view>
+				<u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
+					maxlength="100" />
+			</view>
+			<view @click='close()' class="cancel1">取消</view>
+			<view @click='passSubmit()' class="confirm1">确定</view>
+		</view>
+	</view>
+	<u-toast ref="uToast" />
+	<view style='padding:10px;' class='flex bottom-btn'>
+		<u-button @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
+		<u-button @click='pass' type="success" class="btn2">通过</u-button>
+	</view>
+	</view>
+
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				everyCheck: '',
+				height: 200,
+				autoHeight: true,
+				border: false,
+				id: "",
+				show: false,
+				auditMind: '',
+				reasonForApplication:'',
+				supplementClockType:'',
+				approveStatus:'',
+				status:'',
+				updateDate:'',
+				dataList:{},
+			}
+		},
+		onBackPress(e) {
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.everyCheck = uni.getStorageSync("everyTask")
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/clockInfo/getSuppClock', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.dataList = res.data.data
+					
+					}
+				})
+			},
+			close() {
+				this.show = false
+			},
+			pass() {
+				this.show = true
+				this.title = '审核意见(通过)'
+			},
+			reject() {
+				this.show = true
+				this.title = '驳回原因(驳回)'
+			},
+			//通过
+			passSubmit() {
+				var that = this
+				if (this.title == '驳回原因(驳回)') {
+					this.rejectSubmit()
+				} else {
+					let that = this
+					that.show = false
+					uni.showModal({
+						content: "是否确定通过?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							that.$api.doRequest('post', '/workflow/api/handle', {
+								approved: true,
+								taskId: that.dataList.taskId,
+								auditMind: that.auditMind,
+								needReapply: false
+							}).then(res => {
+								if (res.data.code == 200) {
+									that.$api.msg('审核成功!')
+									uni.navigateTo({
+										url: "/pages/task/my_task"
+									})
+								} else {
+									that.$api.msg('审核失败!')
+								}
+
+							}).catch(res => {
+								uni.hideLoading()
+								if (res.message) {
+									uni.showToast({
+										title: res.message,
+										icon: 'none',
+										duration: 2000
+									})
+								} else {
+									uni.showToast({
+										title: "系统异常,请联系管理员",
+										icon: 'none',
+										duration: 2000
+									})
+								}
+							})
+						}
+					})
+				}
+			},
+			//驳回
+			rejectSubmit() {
+				if (!this.auditMind) {
+					this.$api.msg('驳回原因不能为空!')
+				} else {
+					this.show = false
+					let that = this
+					uni.showModal({
+						content: "是否确定驳回?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							that.$api.doRequest('post', '/workflow/api/handle', {
+								approved: false,
+								taskId: that.dataList.taskId,
+								auditMind: that.auditMind,
+								needReapply: true
+							}).then(res => {
+								if (res.data.code == 200) {
+									this.$api.msg('驳回成功!')
+									uni.navigateTo({
+										url: "/pages/task/my_task"
+									})
+									uni.hideLoading()
+								} else {
+									this.$api.msg('驳回失败!')
+								}
+
+							})
+						}
+					})
+				}
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.content1 {
+		margin: 10rpx;
+		padding-bottom: 224rpx;
+
+		.title {
+			height: 70rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			font-weight: 600;
+			color: #333333;
+			border-bottom: 2rpx solid #EEEEEE;
+		}
+	}
+
+	.uForm {
+		padding: 0 40rpx;
+	}
+
+	.u-form-item {
+		padding: 0;
+	}
+
+	.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom: 0;
+		display: flex;
+		z-index: 2;
+		left: 0;
+		background-color: #f8f8f8;
+		flex-direction: column;
+
+		.btn1,
+		.btn2 {
+			width: 100%;
+			margin-bottom: 26rpx;
+			border-radius: 90rpx;
+		}
+
+		.btn1 {
+			background: white;
+			color: #00C265;
+		}
+	}
+
+	.submit {
+		width: 50%;
+		background: #22C572;
+		border-radius: 10rpx;
+	}
+
+	.part2 {
+		margin-top: 20rpx;
+	}
+
+	.textarea {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+	}
+
+	.row {
+		display: flex;
+		justify-content: space-between;
+		// border-bottom: 1px solid #EEEEEE;
+		padding: 21rpx 0;
+
+		.right,
+		input {
+			font-size: 28rpx;
+			color: #333333;
+		}
+	}
+
+	//弹出框
+	// .popup {
+	// 	padding: 30rpx;
+	// 	border-radius: 20rpx;
+	// }
+	// .rejectInfoCss {
+	// 	border: 1px solid #ccc;
+	// 	border-radius: 10rpx;
+	// 	background-color: #F9F9FA;
+	// 	margin: 30rpx;
+	// 	overflow-y: auto;
+	// 	// height: 300rpx;
+	// 	background: red;
+	// }
+
+	.uForm_item {
+		padding: 20rpx;
+		background-color: #FFFFFF;
+		margin: 20rpx;
+		border-radius: 20rpx;
+	}
+
+	.rejectText {
+		text-align: center;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+	}
+
+	.shade1 {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: 100%;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.4);
+		z-index: 3;
+
+		.wrap1 {
+			position: absolute;
+			left: 0;
+			top: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			background: #fff;
+			width: calc(100% - 198rpx);
+			height: 355px;
+			border-radius: 20rpx;
+
+			.alert-top1 {
+				padding: 33rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				position: relative;
+			}
+
+			.title1 {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+			}
+
+			.close1 {
+				position: absolute;
+				right: 33rpx;
+			}
+		}
+
+		.u-textarea-style1 {
+			margin: 20rpx;
+			background: #F9F9FA;
+			border-radius: 10px;
+			border: 1px solid #EEEEEE;
+			padding: 10rpx 20rpx;
+			height: 230px;
+
+			.right-bottom1 {
+				position: absolute;
+				right: 20rpx;
+				bottom: 80px;
+				color: #AFB3BF;
+			}
+		}
+
+		.cancel1 {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.confirm1 {
+			position: absolute;
+			display: inline-block;
+			width: 50%;
+			text-align: center;
+			bottom: 0;
+			padding: 10px;
+			border-top: 1px solid #eee;
+			font-size: 34rpx;
+		}
+
+		.cancel1 {
+			left: 0;
+			border-right: 1px solid #eee;
+			color: #ff0000;
+		}
+
+		.confirm1 {
+			right: 0;
+			color: #22C572;
+		}
+
+			.bottom-btn1 {
+				width: 100%;
+				// position: fixed;
+				bottom: 0;
+				display: flex;
+				z-index: 2;
+				left: 0;
+				background-color: #f8f8f8;
+				flex-direction: column;
+
+				.btn1,
+				.btn2 {
+					width: 100%;
+					margin-bottom: 26rpx;
+					border-radius: 90rpx;
+				}
+
+				.btn1 {
+					background: white;
+					color: #00C265;
+				}
+			}
+	}
+
+	/deep/.u-input__textarea {
+		height: 300rpx !important;
+	}
+</style>

+ 229 - 0
pages/task/audit/supp_clock_details.vue

@@ -0,0 +1,229 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode=""
+							v-if="dataList.status == '补卡失败'" style="height: 40rpx;">
+						</image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode=""
+							v-else-if="dataList.status == '补卡成功'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<image src="../../../static/img/daishenhe.png" mode=""
+							v-else-if="dataList.approveStatus == '待人事审核'"
+							style="height: 40rpx;"></image><!-- 待审核 -->
+					</view>
+					<view class="infoText" v-if="dataList.approveStatus">{{dataList.approveStatus}}</view>
+					<view class="infoText" v-else>{{dataList.status}}</view>
+				</view>
+				<view class="infoData" v-if="dataList.updateDate">{{dataList.updateDate}}</view>
+			</view>
+		</view>
+		<view class="content1">
+			<!-- :model="OutList" -->
+			<u-form  ref="uForm">
+				<u-form-item label="补卡原因" prop="supplementClockType" label-width="140" class="uForm_item">
+					<u-input input-align="right" disabled v-if="dataList.supplementClockType=='1'" value="上班">上班</u-input>
+					<u-input  input-align="right" disabled v-if="dataList.supplementClockType=='3'" value="下班">下班</u-input>
+				</u-form-item>
+					<view class="uForm_item">
+						<u-form-item label="申请理由" prop="reasonForApplication" label-width="160" label-position="top">
+							<u-input v-model="dataList.reasonForApplication" input-align="left" placeholder="请输入业务描述"
+								type="textarea" class="textarea" maxlength="150" />
+						</u-form-item>
+					</view>
+			</u-form>
+		</view>
+		<view style='padding:10px;' class='flex bottom-btn'>
+			<u-button @click='fanHui' type="success" class="btn1" hover-class='none'>返回</u-button>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				id: "",
+				show: false,
+				show1: false,
+				border: false,
+				rejectInfo: "", //驳回原因
+				reasonForApplication:'',
+				supplementClockType:'',
+				approveStatus:'',
+				status:'',
+				updateDate:'',
+				dataList:{},
+			}
+		},
+		// onReady() {
+		// 	this.$refs.uForm.setRules(this.rules);
+		// },
+		onLoad(options) {
+			this.id = options.id
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/clockInfo/getSuppClock', {
+					id: this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.dataList = res.data.data
+					
+					}
+				})
+			},
+			fanHui() {
+				uni.navigateBack()
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.content1 {
+		margin: 10rpx;
+		padding-bottom: 120rpx;
+
+		.title {
+			height: 70rpx;
+			line-height: 60rpx;
+			font-size: 32rpx;
+			font-weight: 600;
+			color: #333333;
+			border-bottom: 2rpx solid #EEEEEE;
+		}
+	}
+
+	.uForm {
+		padding: 0 40rpx;
+	}
+
+	.u-form-item {
+		padding: 0;
+	}
+
+	.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom: 0;
+		display: flex;
+		z-index: 2;
+		left: 0;
+		background-color: #f8f8f8;
+		flex-direction: column;
+
+		.btn1,
+		.btn2 {
+			width: 100%;
+			margin-bottom: 26rpx;
+			border-radius: 90rpx;
+		}
+
+		.btn1 {
+			background: white;
+			color: #00C265;
+		}
+	}
+
+	.submit {
+		width: 50%;
+		background: #22C572;
+		border-radius: 10rpx;
+	}
+
+	.part2 {
+		margin-top: 20rpx;
+	}
+
+	.textarea {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+	}
+
+	.row {
+		display: flex;
+		justify-content: space-between;
+		// border-bottom: 1px solid #EEEEEE;
+		padding: 21rpx 0;
+
+		.right,
+		input {
+			font-size: 28rpx;
+			color: #333333;
+		}
+	}
+
+	//弹出框
+	// .popup {
+	// 	padding: 30rpx;
+	// 	border-radius: 20rpx;
+	// }
+	.rejectInfoCss {
+		border: 1px solid #ccc;
+		border-radius: 10rpx;
+		background-color: #F9F9FA;
+		height: 100px;
+		margin: 30rpx;
+	}
+
+	.uForm_item {
+		padding: 20rpx;
+		background-color: #FFFFFF;
+		margin: 20rpx;
+		border-radius: 20rpx;
+	}
+
+	.rejectText {
+		text-align: center;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+
+	}
+
+	.deleteText {
+		text-align: center;
+		color: #AFB3BF;
+	}
+</style>

+ 89 - 6
pages/task/audit/warehouse_warrant.vue

@@ -20,9 +20,21 @@
 		</view>
 
 		<view class="content1">
-			<!-- 	<view class="title">
-				销售外勤 张三
-			</view> -->
+			<view class="title ">
+				基本信息
+			</view>
+			<view class="row">
+				<view class="left">请款日期</view>
+				<view class="right">{{auditInfo.requestDate}}</view>
+			</view>
+			<view class="row">
+				<view class="left">请款人</view>
+				<view class="right">{{auditInfo.requestPerson}}</view>
+			</view>
+			<view class="row">
+				<view class="left">所属仓库 </view>
+				<view class="right">{{auditInfo.warehouseName}}</view>
+			</view>
 			<view class="row">
 				<view class="left">合计重量(吨)</view>
 				<view class="right">{{auditInfo.inWarehouseWeightTotal}}</view>
@@ -44,6 +56,45 @@
 				<view class="right">{{auditInfo.count}}</view>
 			</view>
 		</view>
+
+		<view class="content1">
+			<view class="title ">
+				支付明细
+			</view>
+			<view class="mx-content" v-for="item in auditInfo.warehousingOrderList">
+				<view class="name">
+					{{item.customer}}
+				</view>
+				<view class="mx-bottom">
+					<view class="mx-row1">
+						<view class="mx-item">
+							{{item.goodsName}}
+						</view>
+						<!-- <view class="mx-item">
+							平均容重720
+						</view>
+						<view class="mx-item">
+							平均水分14
+						</view> -->
+					</view>
+					<view class="mx-row2">
+						<view class="mx-item">
+							{{item.inWarehouseWeight}}吨
+
+						</view>
+						<view class="mx-item">
+							<!-- 2000元/吨 -->
+							单价待定
+						</view>
+						<view class="mx-item">
+							{{item.requestFunds}}元
+
+						</view>
+					</view>
+				</view>
+			</view>
+
+		</view>
 		<view class="content1" v-if="url && url != 'ng'">
 			<view class="title ">
 				附件
@@ -201,18 +252,22 @@
 				// 	}
 				// })
 				this.$api.doRequest('post', '/warehousingOrder/exportPhone', {
-					batchId:this.id,searchType: 1,
+					batchId: this.id,
+					searchType: 1,
 				}).then(res1 => {
 					if (res1.data.code == 200) {
 						this.url = res1.data.data
 					}
 				})
-				this.$api.doRequest('post', '/warehousingOrder/exportPhoneData', {searchType: 1,batchId:this.id}).then(res1 => {
+				this.$api.doRequest('post', '/warehousingOrder/exportPhoneData', {
+					searchType: 1,
+					batchId: this.id
+				}).then(res1 => {
 					if (res1.data.code == 200) {
 						this.auditInfo = res1.data.data
 						this.auditInfo.amountIngPayableTotal1 = helper.convertCurrency(this.auditInfo
 							.amountIngPayableTotal)
-							uni.hideLoading()
+						uni.hideLoading()
 					}
 				})
 				this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
@@ -668,4 +723,32 @@
 	/deep/.u-input__textarea {
 		height: 300rpx !important;
 	}
+
+	.mx-content {
+		background: #F9F9FA;
+		padding: 30rpx;
+		box-sizing: border-box;
+		margin-top: 20rpx;
+		border-radius: 20rpx;
+
+		.name {
+			font-size: 32rpx;
+			font-weight: 700;
+			border-bottom: 1px solid #EEEEEE;
+			padding-bottom: 8rpx;
+		}
+
+		.mx-row1,
+		.mx-row2 {
+			display: flex;
+			justify-content: space-between;
+			margin-top: 20rpx;
+		}
+
+		.mx-item {
+			// width: 33%;
+			// text-align: center;
+		}
+
+	}
 </style>

+ 25 - 0
pages/task/my_task.vue

@@ -479,6 +479,7 @@
 				this.getIndexBuyData(statusFlag)
 			},
 			navToDetailPage(item) {
+				debugger
 				if (item.businessCode == 'PROCUREMENT-ORDER-APPROVE') {
 					uni.navigateTo({
 						url: '/pages/task/procurement_details?id=' + item.businessId + "&isShowbtn=true"
@@ -615,6 +616,30 @@
 								"&isShowbtn=true"
 						})
 					}
+				} else if (item.businessCode == 'BUKA-APPROVE') {
+					if (this.statusFlag == 1) {
+						uni.navigateTo({
+							url: `/pages/task/audit/supp_clock_approve?id=` + item.businessId +
+								"&isShowbtn=true"
+						})
+					} else {
+						uni.navigateTo({
+							url: `/pages/task/audit/supp_clock_details?id=` + item.businessId +
+								"&isShowbtn=true"
+						})
+					}
+				} else if (item.businessCode == 'QINGJIA-APPROVE') {
+					if (this.statusFlag == 1) {
+						uni.navigateTo({
+							url: `/pages/task/audit/leave_approve?id=` + item.businessId +
+								"&isShowbtn=true"
+						})
+					} else {
+						uni.navigateTo({
+							url: `/pages/task/audit/leave_details?id=` + item.businessId +
+								"&isShowbtn=true"
+						})
+					}
 				} else if (item.businessCode == 'TRADE-WAREHOUSE-REPORT') {
 					if (this.statusFlag == 1) {
 						uni.navigateTo({

+ 1 - 1
pages/user/setUp.vue

@@ -242,7 +242,7 @@
 				uni.hideTabBarRedDot({
 					index: 3
 				})
-				uni.clearStorageSync();
+				// uni.clearStorageSync();
 				var that = this
 				this.$api.doRequest('post', '/auth/api/logout').then(res => {
 					if (res.data.data) {

+ 28 - 1
pages/user/user.vue

@@ -304,13 +304,40 @@
 						show: false
 					},
 					{
-						num: 8,
+						num: 7,
 						name: '打卡',
 						// icon: 'cuIcon-edit',
 						src: '../../static/img/sign/kdsg.png',
 						tips: 0,
 						url: `/pages/clock/the_clock`,
 						show: true
+					},
+					{
+						num: 8,
+						name: '请假',
+						// icon: 'cuIcon-edit',
+						src: '../../static/img/sign/kdsg.png',
+						tips: 0,
+						url: `/pages/leave/the_leave`,
+						show: true
+					},
+					{
+						num: 9,
+						name: '加油',
+						// icon: 'cuIcon-edit',
+						src: '../../static/img/sign/kdsg.png',
+						tips: 0,
+						url: `/pages/fuelfilling/the_fuel_filling`,
+						show: true
+					},
+					{
+						num: 10,
+						name: '短途记录',
+						// icon: 'cuIcon-edit',
+						src: '../../static/img/sign/kdsg.png',
+						tips: 0,
+						url: `/pages/shortDistance/short_distance_record`,
+						show: true
 					}
 				],
 				showTran: true,

BIN
static/images/fuel/jt.png


+ 16 - 0
uni_modules/uni-icons/changelog.md

@@ -1,3 +1,19 @@
+## 1.3.5(2022-01-24)
+- 优化 size 属性可以传入不带单位的字符串数值
+## 1.3.4(2022-01-24)
+- 优化 size 支持其他单位
+## 1.3.3(2022-01-17)
+- 修复 nvue 有些图标不显示的bug,兼容老版本图标
+## 1.3.2(2021-12-01)
+- 优化 示例可复制图标名称
+## 1.3.1(2021-11-23)
+- 优化 兼容旧组件 type 值
+## 1.3.0(2021-11-19)
+- 新增 更多图标
+- 优化 自定义图标使用方式
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
+## 1.1.7(2021-11-08)
 ## 1.2.0(2021-07-30)
 - 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
 ## 1.1.5(2021-05-12)

+ 1167 - 130
uni_modules/uni-icons/components/uni-icons/icons.js

@@ -1,132 +1,1169 @@
 export default {
-	"pulldown": "\ue588",
-	"refreshempty": "\ue461",
-	"back": "\ue471",
-	"forward": "\ue470",
-	"more": "\ue507",
-	"more-filled": "\ue537",
-	"scan": "\ue612",
-	"qq": "\ue264",
-	"weibo": "\ue260",
-	"weixin": "\ue261",
-	"pengyouquan": "\ue262",
-	"loop": "\ue565",
-	"refresh": "\ue407",
-	"refresh-filled": "\ue437",
-	"arrowthindown": "\ue585",
-	"arrowthinleft": "\ue586",
-	"arrowthinright": "\ue587",
-	"arrowthinup": "\ue584",
-	"undo-filled": "\ue7d6",
-	"undo": "\ue406",
-	"redo": "\ue405",
-	"redo-filled": "\ue7d9",
-	"bars": "\ue563",
-	"chatboxes": "\ue203",
-	"camera": "\ue301",
-	"chatboxes-filled": "\ue233",
-	"camera-filled": "\ue7ef",
-	"cart-filled": "\ue7f4",
-	"cart": "\ue7f5",
-	"checkbox-filled": "\ue442",
-	"checkbox": "\ue7fa",
-	"arrowleft": "\ue582",
-	"arrowdown": "\ue581",
-	"arrowright": "\ue583",
-	"smallcircle-filled": "\ue801",
-	"arrowup": "\ue580",
-	"circle": "\ue411",
-	"eye-filled": "\ue568",
-	"eye-slash-filled": "\ue822",
-	"eye-slash": "\ue823",
-	"eye": "\ue824",
-	"flag-filled": "\ue825",
-	"flag": "\ue508",
-	"gear-filled": "\ue532",
-	"reload": "\ue462",
-	"gear": "\ue502",
-	"hand-thumbsdown-filled": "\ue83b",
-	"hand-thumbsdown": "\ue83c",
-	"hand-thumbsup-filled": "\ue83d",
-	"heart-filled": "\ue83e",
-	"hand-thumbsup": "\ue83f",
-	"heart": "\ue840",
-	"home": "\ue500",
-	"info": "\ue504",
-	"home-filled": "\ue530",
-	"info-filled": "\ue534",
-	"circle-filled": "\ue441",
-	"chat-filled": "\ue847",
-	"chat": "\ue263",
-	"mail-open-filled": "\ue84d",
-	"email-filled": "\ue231",
-	"mail-open": "\ue84e",
-	"email": "\ue201",
-	"checkmarkempty": "\ue472",
-	"list": "\ue562",
-	"locked-filled": "\ue856",
-	"locked": "\ue506",
-	"map-filled": "\ue85c",
-	"map-pin": "\ue85e",
-	"map-pin-ellipse": "\ue864",
-	"map": "\ue364",
-	"minus-filled": "\ue440",
-	"mic-filled": "\ue332",
-	"minus": "\ue410",
-	"micoff": "\ue360",
-	"mic": "\ue302",
-	"clear": "\ue434",
-	"smallcircle": "\ue868",
-	"close": "\ue404",
-	"closeempty": "\ue460",
-	"paperclip": "\ue567",
-	"paperplane": "\ue503",
-	"paperplane-filled": "\ue86e",
-	"person-filled": "\ue131",
-	"contact-filled": "\ue130",
-	"person": "\ue101",
-	"contact": "\ue100",
-	"images-filled": "\ue87a",
-	"phone": "\ue200",
-	"images": "\ue87b",
-	"image": "\ue363",
-	"image-filled": "\ue877",
-	"location-filled": "\ue333",
-	"location": "\ue303",
-	"plus-filled": "\ue439",
-	"plus": "\ue409",
-	"plusempty": "\ue468",
-	"help-filled": "\ue535",
-	"help": "\ue505",
-	"navigate-filled": "\ue884",
-	"navigate": "\ue501",
-	"mic-slash-filled": "\ue892",
-	"search": "\ue466",
-	"settings": "\ue560",
-	"sound": "\ue590",
-	"sound-filled": "\ue8a1",
-	"spinner-cycle": "\ue465",
-	"download-filled": "\ue8a4",
-	"personadd-filled": "\ue132",
-	"videocam-filled": "\ue8af",
-	"personadd": "\ue102",
-	"upload": "\ue402",
-	"upload-filled": "\ue8b1",
-	"starhalf": "\ue463",
-	"star-filled": "\ue438",
-	"star": "\ue408",
-	"trash": "\ue401",
-	"phone-filled": "\ue230",
-	"compose": "\ue400",
-	"videocam": "\ue300",
-	"trash-filled": "\ue8dc",
-	"download": "\ue403",
-	"chatbubble-filled": "\ue232",
-	"chatbubble": "\ue202",
-	"cloud-download": "\ue8e4",
-	"cloud-upload-filled": "\ue8e5",
-	"cloud-upload": "\ue8e6",
-	"cloud-download-filled": "\ue8e9",
-	"headphones":"\ue8bf",
-	"shop":"\ue609"
+  "id": "2852637",
+  "name": "uniui图标库",
+  "font_family": "uniicons",
+  "css_prefix_text": "uniui-",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "25027049",
+      "name": "yanse",
+      "font_class": "color",
+      "unicode": "e6cf",
+      "unicode_decimal": 59087
+    },
+    {
+      "icon_id": "25027048",
+      "name": "wallet",
+      "font_class": "wallet",
+      "unicode": "e6b1",
+      "unicode_decimal": 59057
+    },
+    {
+      "icon_id": "25015720",
+      "name": "settings-filled",
+      "font_class": "settings-filled",
+      "unicode": "e6ce",
+      "unicode_decimal": 59086
+    },
+    {
+      "icon_id": "25015434",
+      "name": "shimingrenzheng-filled",
+      "font_class": "auth-filled",
+      "unicode": "e6cc",
+      "unicode_decimal": 59084
+    },
+    {
+      "icon_id": "24934246",
+      "name": "shop-filled",
+      "font_class": "shop-filled",
+      "unicode": "e6cd",
+      "unicode_decimal": 59085
+    },
+    {
+      "icon_id": "24934159",
+      "name": "staff-filled-01",
+      "font_class": "staff-filled",
+      "unicode": "e6cb",
+      "unicode_decimal": 59083
+    },
+    {
+      "icon_id": "24932461",
+      "name": "VIP-filled",
+      "font_class": "vip-filled",
+      "unicode": "e6c6",
+      "unicode_decimal": 59078
+    },
+    {
+      "icon_id": "24932462",
+      "name": "plus_circle_fill",
+      "font_class": "plus-filled",
+      "unicode": "e6c7",
+      "unicode_decimal": 59079
+    },
+    {
+      "icon_id": "24932463",
+      "name": "folder_add-filled",
+      "font_class": "folder-add-filled",
+      "unicode": "e6c8",
+      "unicode_decimal": 59080
+    },
+    {
+      "icon_id": "24932464",
+      "name": "yanse-filled",
+      "font_class": "color-filled",
+      "unicode": "e6c9",
+      "unicode_decimal": 59081
+    },
+    {
+      "icon_id": "24932465",
+      "name": "tune-filled",
+      "font_class": "tune-filled",
+      "unicode": "e6ca",
+      "unicode_decimal": 59082
+    },
+    {
+      "icon_id": "24932455",
+      "name": "a-rilidaka-filled",
+      "font_class": "calendar-filled",
+      "unicode": "e6c0",
+      "unicode_decimal": 59072
+    },
+    {
+      "icon_id": "24932456",
+      "name": "notification-filled",
+      "font_class": "notification-filled",
+      "unicode": "e6c1",
+      "unicode_decimal": 59073
+    },
+    {
+      "icon_id": "24932457",
+      "name": "wallet-filled",
+      "font_class": "wallet-filled",
+      "unicode": "e6c2",
+      "unicode_decimal": 59074
+    },
+    {
+      "icon_id": "24932458",
+      "name": "paihangbang-filled",
+      "font_class": "medal-filled",
+      "unicode": "e6c3",
+      "unicode_decimal": 59075
+    },
+    {
+      "icon_id": "24932459",
+      "name": "gift-filled",
+      "font_class": "gift-filled",
+      "unicode": "e6c4",
+      "unicode_decimal": 59076
+    },
+    {
+      "icon_id": "24932460",
+      "name": "fire-filled",
+      "font_class": "fire-filled",
+      "unicode": "e6c5",
+      "unicode_decimal": 59077
+    },
+    {
+      "icon_id": "24928001",
+      "name": "refreshempty",
+      "font_class": "refreshempty",
+      "unicode": "e6bf",
+      "unicode_decimal": 59071
+    },
+    {
+      "icon_id": "24926853",
+      "name": "location-ellipse",
+      "font_class": "location-filled",
+      "unicode": "e6af",
+      "unicode_decimal": 59055
+    },
+    {
+      "icon_id": "24926735",
+      "name": "person-filled",
+      "font_class": "person-filled",
+      "unicode": "e69d",
+      "unicode_decimal": 59037
+    },
+    {
+      "icon_id": "24926703",
+      "name": "personadd-filled",
+      "font_class": "personadd-filled",
+      "unicode": "e698",
+      "unicode_decimal": 59032
+    },
+    {
+      "icon_id": "24923351",
+      "name": "back",
+      "font_class": "back",
+      "unicode": "e6b9",
+      "unicode_decimal": 59065
+    },
+    {
+      "icon_id": "24923352",
+      "name": "forward",
+      "font_class": "forward",
+      "unicode": "e6ba",
+      "unicode_decimal": 59066
+    },
+    {
+      "icon_id": "24923353",
+      "name": "arrowthinright",
+      "font_class": "arrow-right",
+      "unicode": "e6bb",
+      "unicode_decimal": 59067
+    },
+		{
+		  "icon_id": "24923353",
+		  "name": "arrowthinright",
+		  "font_class": "arrowthinright",
+		  "unicode": "e6bb",
+		  "unicode_decimal": 59067
+		},
+    {
+      "icon_id": "24923354",
+      "name": "arrowthinleft",
+      "font_class": "arrow-left",
+      "unicode": "e6bc",
+      "unicode_decimal": 59068
+    },
+		{
+		  "icon_id": "24923354",
+		  "name": "arrowthinleft",
+		  "font_class": "arrowthinleft",
+		  "unicode": "e6bc",
+		  "unicode_decimal": 59068
+		},
+    {
+      "icon_id": "24923355",
+      "name": "arrowthinup",
+      "font_class": "arrow-up",
+      "unicode": "e6bd",
+      "unicode_decimal": 59069
+    },
+		{
+		  "icon_id": "24923355",
+		  "name": "arrowthinup",
+		  "font_class": "arrowthinup",
+		  "unicode": "e6bd",
+		  "unicode_decimal": 59069
+		},
+    {
+      "icon_id": "24923356",
+      "name": "arrowthindown",
+      "font_class": "arrow-down",
+      "unicode": "e6be",
+      "unicode_decimal": 59070
+    },{
+      "icon_id": "24923356",
+      "name": "arrowthindown",
+      "font_class": "arrowthindown",
+      "unicode": "e6be",
+      "unicode_decimal": 59070
+    },
+    {
+      "icon_id": "24923349",
+      "name": "arrowdown",
+      "font_class": "bottom",
+      "unicode": "e6b8",
+      "unicode_decimal": 59064
+    },{
+      "icon_id": "24923349",
+      "name": "arrowdown",
+      "font_class": "arrowdown",
+      "unicode": "e6b8",
+      "unicode_decimal": 59064
+    },
+    {
+      "icon_id": "24923346",
+      "name": "arrowright",
+      "font_class": "right",
+      "unicode": "e6b5",
+      "unicode_decimal": 59061
+    },
+		{
+		  "icon_id": "24923346",
+		  "name": "arrowright",
+		  "font_class": "arrowright",
+		  "unicode": "e6b5",
+		  "unicode_decimal": 59061
+		},
+    {
+      "icon_id": "24923347",
+      "name": "arrowup",
+      "font_class": "top",
+      "unicode": "e6b6",
+      "unicode_decimal": 59062
+    },
+		{
+		  "icon_id": "24923347",
+		  "name": "arrowup",
+		  "font_class": "arrowup",
+		  "unicode": "e6b6",
+		  "unicode_decimal": 59062
+		},
+    {
+      "icon_id": "24923348",
+      "name": "arrowleft",
+      "font_class": "left",
+      "unicode": "e6b7",
+      "unicode_decimal": 59063
+    },
+		{
+		  "icon_id": "24923348",
+		  "name": "arrowleft",
+		  "font_class": "arrowleft",
+		  "unicode": "e6b7",
+		  "unicode_decimal": 59063
+		},
+    {
+      "icon_id": "24923334",
+      "name": "eye",
+      "font_class": "eye",
+      "unicode": "e651",
+      "unicode_decimal": 58961
+    },
+    {
+      "icon_id": "24923335",
+      "name": "eye-filled",
+      "font_class": "eye-filled",
+      "unicode": "e66a",
+      "unicode_decimal": 58986
+    },
+    {
+      "icon_id": "24923336",
+      "name": "eye-slash",
+      "font_class": "eye-slash",
+      "unicode": "e6b3",
+      "unicode_decimal": 59059
+    },
+    {
+      "icon_id": "24923337",
+      "name": "eye-slash-filled",
+      "font_class": "eye-slash-filled",
+      "unicode": "e6b4",
+      "unicode_decimal": 59060
+    },
+    {
+      "icon_id": "24923305",
+      "name": "info-filled",
+      "font_class": "info-filled",
+      "unicode": "e649",
+      "unicode_decimal": 58953
+    },
+    {
+      "icon_id": "24923299",
+      "name": "reload-01",
+      "font_class": "reload",
+      "unicode": "e6b2",
+      "unicode_decimal": 59058
+    },
+    {
+      "icon_id": "24923195",
+      "name": "mic_slash_fill",
+      "font_class": "micoff-filled",
+      "unicode": "e6b0",
+      "unicode_decimal": 59056
+    },
+    {
+      "icon_id": "24923165",
+      "name": "map-pin-ellipse",
+      "font_class": "map-pin-ellipse",
+      "unicode": "e6ac",
+      "unicode_decimal": 59052
+    },
+    {
+      "icon_id": "24923166",
+      "name": "map-pin",
+      "font_class": "map-pin",
+      "unicode": "e6ad",
+      "unicode_decimal": 59053
+    },
+    {
+      "icon_id": "24923167",
+      "name": "location",
+      "font_class": "location",
+      "unicode": "e6ae",
+      "unicode_decimal": 59054
+    },
+    {
+      "icon_id": "24923064",
+      "name": "starhalf",
+      "font_class": "starhalf",
+      "unicode": "e683",
+      "unicode_decimal": 59011
+    },
+    {
+      "icon_id": "24923065",
+      "name": "star",
+      "font_class": "star",
+      "unicode": "e688",
+      "unicode_decimal": 59016
+    },
+    {
+      "icon_id": "24923066",
+      "name": "star-filled",
+      "font_class": "star-filled",
+      "unicode": "e68f",
+      "unicode_decimal": 59023
+    },
+    {
+      "icon_id": "24899646",
+      "name": "a-rilidaka",
+      "font_class": "calendar",
+      "unicode": "e6a0",
+      "unicode_decimal": 59040
+    },
+    {
+      "icon_id": "24899647",
+      "name": "fire",
+      "font_class": "fire",
+      "unicode": "e6a1",
+      "unicode_decimal": 59041
+    },
+    {
+      "icon_id": "24899648",
+      "name": "paihangbang",
+      "font_class": "medal",
+      "unicode": "e6a2",
+      "unicode_decimal": 59042
+    },
+    {
+      "icon_id": "24899649",
+      "name": "font",
+      "font_class": "font",
+      "unicode": "e6a3",
+      "unicode_decimal": 59043
+    },
+    {
+      "icon_id": "24899650",
+      "name": "gift",
+      "font_class": "gift",
+      "unicode": "e6a4",
+      "unicode_decimal": 59044
+    },
+    {
+      "icon_id": "24899651",
+      "name": "link",
+      "font_class": "link",
+      "unicode": "e6a5",
+      "unicode_decimal": 59045
+    },
+    {
+      "icon_id": "24899652",
+      "name": "notification",
+      "font_class": "notification",
+      "unicode": "e6a6",
+      "unicode_decimal": 59046
+    },
+    {
+      "icon_id": "24899653",
+      "name": "staff",
+      "font_class": "staff",
+      "unicode": "e6a7",
+      "unicode_decimal": 59047
+    },
+    {
+      "icon_id": "24899654",
+      "name": "VIP",
+      "font_class": "vip",
+      "unicode": "e6a8",
+      "unicode_decimal": 59048
+    },
+    {
+      "icon_id": "24899655",
+      "name": "folder_add",
+      "font_class": "folder-add",
+      "unicode": "e6a9",
+      "unicode_decimal": 59049
+    },
+    {
+      "icon_id": "24899656",
+      "name": "tune",
+      "font_class": "tune",
+      "unicode": "e6aa",
+      "unicode_decimal": 59050
+    },
+    {
+      "icon_id": "24899657",
+      "name": "shimingrenzheng",
+      "font_class": "auth",
+      "unicode": "e6ab",
+      "unicode_decimal": 59051
+    },
+    {
+      "icon_id": "24899565",
+      "name": "person",
+      "font_class": "person",
+      "unicode": "e699",
+      "unicode_decimal": 59033
+    },
+    {
+      "icon_id": "24899566",
+      "name": "email-filled",
+      "font_class": "email-filled",
+      "unicode": "e69a",
+      "unicode_decimal": 59034
+    },
+    {
+      "icon_id": "24899567",
+      "name": "phone-filled",
+      "font_class": "phone-filled",
+      "unicode": "e69b",
+      "unicode_decimal": 59035
+    },
+    {
+      "icon_id": "24899568",
+      "name": "phone",
+      "font_class": "phone",
+      "unicode": "e69c",
+      "unicode_decimal": 59036
+    },
+    {
+      "icon_id": "24899570",
+      "name": "email",
+      "font_class": "email",
+      "unicode": "e69e",
+      "unicode_decimal": 59038
+    },
+    {
+      "icon_id": "24899571",
+      "name": "personadd",
+      "font_class": "personadd",
+      "unicode": "e69f",
+      "unicode_decimal": 59039
+    },
+    {
+      "icon_id": "24899558",
+      "name": "chatboxes-filled",
+      "font_class": "chatboxes-filled",
+      "unicode": "e692",
+      "unicode_decimal": 59026
+    },
+    {
+      "icon_id": "24899559",
+      "name": "contact",
+      "font_class": "contact",
+      "unicode": "e693",
+      "unicode_decimal": 59027
+    },
+    {
+      "icon_id": "24899560",
+      "name": "chatbubble-filled",
+      "font_class": "chatbubble-filled",
+      "unicode": "e694",
+      "unicode_decimal": 59028
+    },
+    {
+      "icon_id": "24899561",
+      "name": "contact-filled",
+      "font_class": "contact-filled",
+      "unicode": "e695",
+      "unicode_decimal": 59029
+    },
+    {
+      "icon_id": "24899562",
+      "name": "chatboxes",
+      "font_class": "chatboxes",
+      "unicode": "e696",
+      "unicode_decimal": 59030
+    },
+    {
+      "icon_id": "24899563",
+      "name": "chatbubble",
+      "font_class": "chatbubble",
+      "unicode": "e697",
+      "unicode_decimal": 59031
+    },
+    {
+      "icon_id": "24881290",
+      "name": "upload-filled",
+      "font_class": "upload-filled",
+      "unicode": "e68e",
+      "unicode_decimal": 59022
+    },
+    {
+      "icon_id": "24881292",
+      "name": "upload",
+      "font_class": "upload",
+      "unicode": "e690",
+      "unicode_decimal": 59024
+    },
+    {
+      "icon_id": "24881293",
+      "name": "weixin",
+      "font_class": "weixin",
+      "unicode": "e691",
+      "unicode_decimal": 59025
+    },
+    {
+      "icon_id": "24881274",
+      "name": "compose",
+      "font_class": "compose",
+      "unicode": "e67f",
+      "unicode_decimal": 59007
+    },
+    {
+      "icon_id": "24881275",
+      "name": "qq",
+      "font_class": "qq",
+      "unicode": "e680",
+      "unicode_decimal": 59008
+    },
+    {
+      "icon_id": "24881276",
+      "name": "download-filled",
+      "font_class": "download-filled",
+      "unicode": "e681",
+      "unicode_decimal": 59009
+    },
+    {
+      "icon_id": "24881277",
+      "name": "pengyouquan",
+      "font_class": "pyq",
+      "unicode": "e682",
+      "unicode_decimal": 59010
+    },
+    {
+      "icon_id": "24881279",
+      "name": "sound",
+      "font_class": "sound",
+      "unicode": "e684",
+      "unicode_decimal": 59012
+    },
+    {
+      "icon_id": "24881280",
+      "name": "trash-filled",
+      "font_class": "trash-filled",
+      "unicode": "e685",
+      "unicode_decimal": 59013
+    },
+    {
+      "icon_id": "24881281",
+      "name": "sound-filled",
+      "font_class": "sound-filled",
+      "unicode": "e686",
+      "unicode_decimal": 59014
+    },
+    {
+      "icon_id": "24881282",
+      "name": "trash",
+      "font_class": "trash",
+      "unicode": "e687",
+      "unicode_decimal": 59015
+    },
+    {
+      "icon_id": "24881284",
+      "name": "videocam-filled",
+      "font_class": "videocam-filled",
+      "unicode": "e689",
+      "unicode_decimal": 59017
+    },
+    {
+      "icon_id": "24881285",
+      "name": "spinner-cycle",
+      "font_class": "spinner-cycle",
+      "unicode": "e68a",
+      "unicode_decimal": 59018
+    },
+    {
+      "icon_id": "24881286",
+      "name": "weibo",
+      "font_class": "weibo",
+      "unicode": "e68b",
+      "unicode_decimal": 59019
+    },
+    {
+      "icon_id": "24881288",
+      "name": "videocam",
+      "font_class": "videocam",
+      "unicode": "e68c",
+      "unicode_decimal": 59020
+    },
+    {
+      "icon_id": "24881289",
+      "name": "download",
+      "font_class": "download",
+      "unicode": "e68d",
+      "unicode_decimal": 59021
+    },
+    {
+      "icon_id": "24879601",
+      "name": "help",
+      "font_class": "help",
+      "unicode": "e679",
+      "unicode_decimal": 59001
+    },
+    {
+      "icon_id": "24879602",
+      "name": "navigate-filled",
+      "font_class": "navigate-filled",
+      "unicode": "e67a",
+      "unicode_decimal": 59002
+    },
+    {
+      "icon_id": "24879603",
+      "name": "plusempty",
+      "font_class": "plusempty",
+      "unicode": "e67b",
+      "unicode_decimal": 59003
+    },
+    {
+      "icon_id": "24879604",
+      "name": "smallcircle",
+      "font_class": "smallcircle",
+      "unicode": "e67c",
+      "unicode_decimal": 59004
+    },
+    {
+      "icon_id": "24879605",
+      "name": "minus-filled",
+      "font_class": "minus-filled",
+      "unicode": "e67d",
+      "unicode_decimal": 59005
+    },
+    {
+      "icon_id": "24879606",
+      "name": "micoff",
+      "font_class": "micoff",
+      "unicode": "e67e",
+      "unicode_decimal": 59006
+    },
+    {
+      "icon_id": "24879588",
+      "name": "closeempty",
+      "font_class": "closeempty",
+      "unicode": "e66c",
+      "unicode_decimal": 58988
+    },
+    {
+      "icon_id": "24879589",
+      "name": "clear",
+      "font_class": "clear",
+      "unicode": "e66d",
+      "unicode_decimal": 58989
+    },
+    {
+      "icon_id": "24879590",
+      "name": "navigate",
+      "font_class": "navigate",
+      "unicode": "e66e",
+      "unicode_decimal": 58990
+    },
+    {
+      "icon_id": "24879591",
+      "name": "minus",
+      "font_class": "minus",
+      "unicode": "e66f",
+      "unicode_decimal": 58991
+    },
+    {
+      "icon_id": "24879592",
+      "name": "image",
+      "font_class": "image",
+      "unicode": "e670",
+      "unicode_decimal": 58992
+    },
+    {
+      "icon_id": "24879593",
+      "name": "mic",
+      "font_class": "mic",
+      "unicode": "e671",
+      "unicode_decimal": 58993
+    },
+    {
+      "icon_id": "24879594",
+      "name": "paperplane",
+      "font_class": "paperplane",
+      "unicode": "e672",
+      "unicode_decimal": 58994
+    },
+    {
+      "icon_id": "24879595",
+      "name": "close",
+      "font_class": "close",
+      "unicode": "e673",
+      "unicode_decimal": 58995
+    },
+    {
+      "icon_id": "24879596",
+      "name": "help-filled",
+      "font_class": "help-filled",
+      "unicode": "e674",
+      "unicode_decimal": 58996
+    },
+    {
+      "icon_id": "24879597",
+      "name": "plus-filled",
+      "font_class": "paperplane-filled",
+      "unicode": "e675",
+      "unicode_decimal": 58997
+    },
+    {
+      "icon_id": "24879598",
+      "name": "plus",
+      "font_class": "plus",
+      "unicode": "e676",
+      "unicode_decimal": 58998
+    },
+    {
+      "icon_id": "24879599",
+      "name": "mic-filled",
+      "font_class": "mic-filled",
+      "unicode": "e677",
+      "unicode_decimal": 58999
+    },
+    {
+      "icon_id": "24879600",
+      "name": "image-filled",
+      "font_class": "image-filled",
+      "unicode": "e678",
+      "unicode_decimal": 59000
+    },
+    {
+      "icon_id": "24855900",
+      "name": "locked-filled",
+      "font_class": "locked-filled",
+      "unicode": "e668",
+      "unicode_decimal": 58984
+    },
+    {
+      "icon_id": "24855901",
+      "name": "info",
+      "font_class": "info",
+      "unicode": "e669",
+      "unicode_decimal": 58985
+    },
+    {
+      "icon_id": "24855903",
+      "name": "locked",
+      "font_class": "locked",
+      "unicode": "e66b",
+      "unicode_decimal": 58987
+    },
+    {
+      "icon_id": "24855884",
+      "name": "camera-filled",
+      "font_class": "camera-filled",
+      "unicode": "e658",
+      "unicode_decimal": 58968
+    },
+    {
+      "icon_id": "24855885",
+      "name": "chat-filled",
+      "font_class": "chat-filled",
+      "unicode": "e659",
+      "unicode_decimal": 58969
+    },
+    {
+      "icon_id": "24855886",
+      "name": "camera",
+      "font_class": "camera",
+      "unicode": "e65a",
+      "unicode_decimal": 58970
+    },
+    {
+      "icon_id": "24855887",
+      "name": "circle",
+      "font_class": "circle",
+      "unicode": "e65b",
+      "unicode_decimal": 58971
+    },
+    {
+      "icon_id": "24855888",
+      "name": "checkmarkempty",
+      "font_class": "checkmarkempty",
+      "unicode": "e65c",
+      "unicode_decimal": 58972
+    },
+    {
+      "icon_id": "24855889",
+      "name": "chat",
+      "font_class": "chat",
+      "unicode": "e65d",
+      "unicode_decimal": 58973
+    },
+    {
+      "icon_id": "24855890",
+      "name": "circle-filled",
+      "font_class": "circle-filled",
+      "unicode": "e65e",
+      "unicode_decimal": 58974
+    },
+    {
+      "icon_id": "24855891",
+      "name": "flag",
+      "font_class": "flag",
+      "unicode": "e65f",
+      "unicode_decimal": 58975
+    },
+    {
+      "icon_id": "24855892",
+      "name": "flag-filled",
+      "font_class": "flag-filled",
+      "unicode": "e660",
+      "unicode_decimal": 58976
+    },
+    {
+      "icon_id": "24855893",
+      "name": "gear-filled",
+      "font_class": "gear-filled",
+      "unicode": "e661",
+      "unicode_decimal": 58977
+    },
+    {
+      "icon_id": "24855894",
+      "name": "home",
+      "font_class": "home",
+      "unicode": "e662",
+      "unicode_decimal": 58978
+    },
+    {
+      "icon_id": "24855895",
+      "name": "home-filled",
+      "font_class": "home-filled",
+      "unicode": "e663",
+      "unicode_decimal": 58979
+    },
+    {
+      "icon_id": "24855896",
+      "name": "gear",
+      "font_class": "gear",
+      "unicode": "e664",
+      "unicode_decimal": 58980
+    },
+    {
+      "icon_id": "24855897",
+      "name": "smallcircle-filled",
+      "font_class": "smallcircle-filled",
+      "unicode": "e665",
+      "unicode_decimal": 58981
+    },
+    {
+      "icon_id": "24855898",
+      "name": "map-filled",
+      "font_class": "map-filled",
+      "unicode": "e666",
+      "unicode_decimal": 58982
+    },
+    {
+      "icon_id": "24855899",
+      "name": "map",
+      "font_class": "map",
+      "unicode": "e667",
+      "unicode_decimal": 58983
+    },
+    {
+      "icon_id": "24855825",
+      "name": "refresh-filled",
+      "font_class": "refresh-filled",
+      "unicode": "e656",
+      "unicode_decimal": 58966
+    },
+    {
+      "icon_id": "24855826",
+      "name": "refresh",
+      "font_class": "refresh",
+      "unicode": "e657",
+      "unicode_decimal": 58967
+    },
+    {
+      "icon_id": "24855808",
+      "name": "cloud-upload",
+      "font_class": "cloud-upload",
+      "unicode": "e645",
+      "unicode_decimal": 58949
+    },
+    {
+      "icon_id": "24855809",
+      "name": "cloud-download-filled",
+      "font_class": "cloud-download-filled",
+      "unicode": "e646",
+      "unicode_decimal": 58950
+    },
+    {
+      "icon_id": "24855810",
+      "name": "cloud-download",
+      "font_class": "cloud-download",
+      "unicode": "e647",
+      "unicode_decimal": 58951
+    },
+    {
+      "icon_id": "24855811",
+      "name": "cloud-upload-filled",
+      "font_class": "cloud-upload-filled",
+      "unicode": "e648",
+      "unicode_decimal": 58952
+    },
+    {
+      "icon_id": "24855813",
+      "name": "redo",
+      "font_class": "redo",
+      "unicode": "e64a",
+      "unicode_decimal": 58954
+    },
+    {
+      "icon_id": "24855814",
+      "name": "images-filled",
+      "font_class": "images-filled",
+      "unicode": "e64b",
+      "unicode_decimal": 58955
+    },
+    {
+      "icon_id": "24855815",
+      "name": "undo-filled",
+      "font_class": "undo-filled",
+      "unicode": "e64c",
+      "unicode_decimal": 58956
+    },
+    {
+      "icon_id": "24855816",
+      "name": "more",
+      "font_class": "more",
+      "unicode": "e64d",
+      "unicode_decimal": 58957
+    },
+    {
+      "icon_id": "24855817",
+      "name": "more-filled",
+      "font_class": "more-filled",
+      "unicode": "e64e",
+      "unicode_decimal": 58958
+    },
+    {
+      "icon_id": "24855818",
+      "name": "undo",
+      "font_class": "undo",
+      "unicode": "e64f",
+      "unicode_decimal": 58959
+    },
+    {
+      "icon_id": "24855819",
+      "name": "images",
+      "font_class": "images",
+      "unicode": "e650",
+      "unicode_decimal": 58960
+    },
+    {
+      "icon_id": "24855821",
+      "name": "paperclip",
+      "font_class": "paperclip",
+      "unicode": "e652",
+      "unicode_decimal": 58962
+    },
+    {
+      "icon_id": "24855822",
+      "name": "settings",
+      "font_class": "settings",
+      "unicode": "e653",
+      "unicode_decimal": 58963
+    },
+    {
+      "icon_id": "24855823",
+      "name": "search",
+      "font_class": "search",
+      "unicode": "e654",
+      "unicode_decimal": 58964
+    },
+    {
+      "icon_id": "24855824",
+      "name": "redo-filled",
+      "font_class": "redo-filled",
+      "unicode": "e655",
+      "unicode_decimal": 58965
+    },
+    {
+      "icon_id": "24841702",
+      "name": "list",
+      "font_class": "list",
+      "unicode": "e644",
+      "unicode_decimal": 58948
+    },
+    {
+      "icon_id": "24841489",
+      "name": "mail-open-filled",
+      "font_class": "mail-open-filled",
+      "unicode": "e63a",
+      "unicode_decimal": 58938
+    },
+    {
+      "icon_id": "24841491",
+      "name": "hand-thumbsdown-filled",
+      "font_class": "hand-down-filled",
+      "unicode": "e63c",
+      "unicode_decimal": 58940
+    },
+    {
+      "icon_id": "24841492",
+      "name": "hand-thumbsdown",
+      "font_class": "hand-down",
+      "unicode": "e63d",
+      "unicode_decimal": 58941
+    },
+    {
+      "icon_id": "24841493",
+      "name": "hand-thumbsup-filled",
+      "font_class": "hand-up-filled",
+      "unicode": "e63e",
+      "unicode_decimal": 58942
+    },
+    {
+      "icon_id": "24841494",
+      "name": "hand-thumbsup",
+      "font_class": "hand-up",
+      "unicode": "e63f",
+      "unicode_decimal": 58943
+    },
+    {
+      "icon_id": "24841496",
+      "name": "heart-filled",
+      "font_class": "heart-filled",
+      "unicode": "e641",
+      "unicode_decimal": 58945
+    },
+    {
+      "icon_id": "24841498",
+      "name": "mail-open",
+      "font_class": "mail-open",
+      "unicode": "e643",
+      "unicode_decimal": 58947
+    },
+    {
+      "icon_id": "24841488",
+      "name": "heart",
+      "font_class": "heart",
+      "unicode": "e639",
+      "unicode_decimal": 58937
+    },
+    {
+      "icon_id": "24839963",
+      "name": "loop",
+      "font_class": "loop",
+      "unicode": "e633",
+      "unicode_decimal": 58931
+    },
+    {
+      "icon_id": "24839866",
+      "name": "pulldown",
+      "font_class": "pulldown",
+      "unicode": "e632",
+      "unicode_decimal": 58930
+    },
+    {
+      "icon_id": "24813798",
+      "name": "scan",
+      "font_class": "scan",
+      "unicode": "e62a",
+      "unicode_decimal": 58922
+    },
+    {
+      "icon_id": "24813786",
+      "name": "bars",
+      "font_class": "bars",
+      "unicode": "e627",
+      "unicode_decimal": 58919
+    },
+    {
+      "icon_id": "24813788",
+      "name": "cart-filled",
+      "font_class": "cart-filled",
+      "unicode": "e629",
+      "unicode_decimal": 58921
+    },
+    {
+      "icon_id": "24813790",
+      "name": "checkbox",
+      "font_class": "checkbox",
+      "unicode": "e62b",
+      "unicode_decimal": 58923
+    },
+    {
+      "icon_id": "24813791",
+      "name": "checkbox-filled",
+      "font_class": "checkbox-filled",
+      "unicode": "e62c",
+      "unicode_decimal": 58924
+    },
+    {
+      "icon_id": "24813794",
+      "name": "shop",
+      "font_class": "shop",
+      "unicode": "e62f",
+      "unicode_decimal": 58927
+    },
+    {
+      "icon_id": "24813795",
+      "name": "headphones",
+      "font_class": "headphones",
+      "unicode": "e630",
+      "unicode_decimal": 58928
+    },
+    {
+      "icon_id": "24813796",
+      "name": "cart",
+      "font_class": "cart",
+      "unicode": "e631",
+      "unicode_decimal": 58929
+    }
+  ]
 }

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 11 - 1
uni_modules/uni-icons/components/uni-icons/uni-icons.vue


+ 7 - 3
uni_modules/uni-icons/package.json

@@ -1,7 +1,7 @@
 {
   "id": "uni-icons",
   "displayName": "uni-icons 图标",
-  "version": "1.2.0",
+  "version": "1.3.5",
   "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
   "keywords": [
     "uni-ui",
@@ -11,7 +11,7 @@
 ],
   "repository": "https://github.com/dcloudio/uni-ui",
   "engines": {
-    "HBuilderX": ""
+    "HBuilderX": "^3.2.14"
   },
   "directories": {
     "example": "../../temps/example_temps"
@@ -40,7 +40,7 @@
     "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
   },
   "uni_modules": {
-    "dependencies": [],
+    "dependencies": ["uni-scss"],
     "encrypt": [],
     "platforms": {
       "cloud": {
@@ -75,6 +75,10 @@
         "快应用": {
           "华为": "u",
           "联盟": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
         }
       }
     }

+ 2 - 40
uni_modules/uni-icons/readme.md

@@ -1,46 +1,8 @@
-
-
 ## Icons 图标
 > **组件名:uni-icons**
 > 代码块: `uIcons`
 
-
 用于展示 icons 图标 。
 
-### 安装方式
-
-本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
-
-如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
-
-### 基本用法
-
-在 ``template`` 中使用组件
-
-```html
-<uni-icons type="contact" size="30"></uni-icons>
-```
-
-
-
-## API
-
-### Icons Props
-
-|属性名	|类型		|默认值	|说明				|
-|:-:	|:-:		|:-:	|:-:				|
-|size	|Number		|24		|图标大小			|
-|type	|String		|-		|图标图案,参考示例	|
-|color	|String		|-		|图标颜色			|
-
-
-### Icons Events
-|事件名	|说明			|返回值|
-|:-:	|:-:			|:-:  |
-|@click|点击 Icon 触发事件|-    |
-
-
-
-## 组件示例
-
-点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/icons/icons](https://hellouniapp.dcloud.net.cn/pages/extUI/icons/icons)
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 

+ 11 - 0
util/util.js

@@ -13,6 +13,16 @@ const utils = {
 			duration: duration || 2000
 		})
 	},
+	getCurrectRoles: function(role) {
+		let _roles = uni.getStorageSync('rolesList')
+		console.log(_roles)
+		for (let i = 0; i < _roles.length; i++) {
+			if (_roles[i] == role) {
+				return true
+			}
+		}
+		return false
+	},
 	modal: function(title, content, showCancel = false, callback, confirmColor, confirmText, cancelColor,
 		cancelText) {
 		uni.showModal({
@@ -581,6 +591,7 @@ module.exports = {
 	toast: utils.toast,
 	modal: utils.modal,
 	isAndroid: utils.isAndroid,
+	getCurrectRoles:utils.getCurrectRoles,
 	isIphoneX: utils.isIphoneX,
 	constNum: utils.constNum,
 	request: utils.request,

+ 1 - 1
webim.js

@@ -150,7 +150,7 @@ const WEBIM = {
 			 && curPage.$page.fullPath != '/pages/sale/information'
 			 && curPage.$page.fullPath.indexOf('/pages/sale/webview') == -1  )
 			{
-				uni.clearStorageSync();
+				// uni.clearStorageSync();
 				let name = 'hasLogin';
 				let value = false;
 				store.commit('$uStore', {

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä