Browse Source

公众号tms补充提交,目前接口没有鉴权

luhuan 1 month ago
parent
commit
860f42681c
9 changed files with 849 additions and 147 deletions
  1. 44 0
      App.vue
  2. 37 0
      api/index.js
  3. 6 4
      api/request.js
  4. 3 3
      pages.json
  5. 326 103
      pages/index/index.vue
  6. 3 0
      pages/index/list.vue
  7. 273 0
      pages/index/login.vue
  8. 140 26
      pages/index/signInfo.vue
  9. 17 11
      pages/index/tracktrace.vue

+ 44 - 0
App.vue

@@ -19,4 +19,48 @@
 <style lang="scss">
 	/*每个页面公共css */
 	@import "@/uni_modules/uview-ui/index.scss";
+	@import '@/common/adaptive.scss';
+
+	/* 全局基础样式 */
+	page {
+		font-size: $base-font-size;
+		line-height: 1.5;
+		color: #333;
+		background-color: #f5f5f5;
+	}
+
+	/* 去除默认边距 */
+	view, text, navigator {
+		margin: 0;
+		padding: 0;
+		box-sizing: border-box;
+	}
+
+	/* 统一字体大小响应 */
+	@include respond-to('tablet') {
+		page {
+			font-size: 16px;
+		}
+	}
+
+	@include respond-to('desktop') {
+		page {
+			font-size: 16px;
+		}
+	}
+
+	/* 滚动条美化 */
+	::-webkit-scrollbar {
+		width: 6px;
+		height: 6px;
+	}
+
+	::-webkit-scrollbar-track {
+		background: #f5f5f5;
+	}
+
+	::-webkit-scrollbar-thumb {
+		background: #ccc;
+		border-radius: 3px;
+	}
 </style>

+ 37 - 0
api/index.js

@@ -31,4 +31,41 @@ export function getTrackTrace(params) {
 		"Content-Type": "application/x-www-form-urlencoded"
 		}
 	});
+}
+
+
+
+export function getOrderList(params) {
+	console.log(params)
+	return request({
+		url: 'TransportOrder/getOrderList.action',
+		method: 'POST',
+		data: params,
+		header:{
+		"Content-Type": "application/x-www-form-urlencoded"
+		}
+	});
+}
+
+export function evaluationOrder(params) {
+	return request({
+		url: 'TransportOrder/evaluationOrder.action',
+		method: 'POST',
+		data: params,
+		header:{
+			"Content-Type": "application/x-www-form-urlencoded"
+		}
+	});
+}
+
+export function getSignInfo(params) {
+	console.log(params)
+	return request({
+		url: 'TransportOrder/getSignInfo.action',
+		method: 'POST',
+		data: params,
+		header:{
+			"Content-Type": "application/x-www-form-urlencoded"
+		}
+	});
 }

+ 6 - 4
api/request.js

@@ -1,5 +1,5 @@
 /** 访问后端接口的域名或IP */
-const Base_url = "http://localhost:8080/BH_CLIS/"
+const Base_url = "http://localhost:8012/BH_CLIS/"
 
 /** 同时发送异步代码的次数,防止一次点击中有多次请求 */
 let ajaxTimes = 0;
@@ -14,11 +14,11 @@ export const request = (options) => {
 			data: options.data || {},
 			header: options.header || {},
 			success: (res) => {
-				console.log(res.code !== 'success');
-				if (res.code !== 'success') {
+				console.log(res)
+				if (res.data.code !== 'success') {
 					return uni.showToast({
 						icon: 'none',
-						title: res.data.message
+						title: res.data.errorDesc
 					})
 				}
 				/** 成功,将数据返回 */
@@ -30,6 +30,8 @@ export const request = (options) => {
 					icon: 'error',
 					title: "请求接口失败!"
 				})
+				console.log(55555)
+				console.log(res.data)
 				reject(err)
 			}
 		})

+ 3 - 3
pages.json

@@ -1,9 +1,9 @@
 {
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
 		{
-			"path": "pages/index/index",
+			"path": "pages/index/login",
 			"style": {
-				"navigationBarTitleText": ""
+				"navigationBarTitleText": "登录页"
 			}
 		},
 		{
@@ -13,7 +13,7 @@
 			}
 		},
 		{
-			"path": "pages/index/list",
+			"path": "pages/index/index",
 			"style": {
 				"navigationBarTitleText": "订单列表"
 			}

+ 326 - 103
pages/index/index.vue

@@ -1,44 +1,106 @@
 <template>
 	<view class="u-page">
 		<u--input placeholder="请输入手机号或订单" prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399"
-			v-model="value"></u--input>
+			v-model="numValue"></u--input>
 		<u-list @scrolltolower="scrolltolower">
-			<u-cell label="待评价">
-				<view slot="title" class="u-slot-title">
-					<text class="u-cell-text">01-2000-210507-00370</text>
-					<u-tag text="已审核" size="mini">
-					</u-tag>
-				</view>
-			</u-cell>
-			<u-cell value="物流轨迹" :isLink="true" label="待评价" url="/pages/index/tracktrace?id=TO241213000030">
-				<view slot="title" class="u-slot-title">
-					<text class="u-cell-text">01-2000-210507-00371</text>
-					<u-tag text="运输中" size="mini" type="warning">
-					</u-tag>
-				</view>
-			</u-cell>
-			<u-cell value="签收详情" label="已评价" isLink url="/pages/index/signInfo?id=TO241213000030">
-				<view slot="title" class="u-slot-title">
-					<text class="u-cell-text">01-2000-210507-00372</text>
-					<u-tag text="已签收" size="mini" type="success">
-					</u-tag>
-				</view>
-			</u-cell>
-			<!-- <u-list-item v-for="(item, index) in indexList" :key="index"
-				<u-cell :title="`列表长度-${index + 1}`">
-					<u-avatar slot="icon" shape="square" size="35" :src="item.url"
-						customStyle="margin: -3px 5px -3px 0"></u-avatar>
-				</u-cell>
-			</u-list-item> -->
+      <view v-for="(item, index) in orderList" :key="index">
+        <u-cell :value="item.CURRENT_VALUE" :isLink="true" :url="item.URL" :stop="false">
+          <view slot="title" class="u-slot-title">
+            <text class="u-cell-text">{{item.ORDER_CENTER_ORDER_ID}}</text>
+            <u-tag  :text="item.STATUS_TEXT" size="mini" :type="item.TEXT_TYPE"></u-tag>
+          </view>
+          <view style="display: flex;flex-direction: column;align-items: flex-start;padding-top: 10px" slot="label">
+            <u-row>
+              <u-button  type="primary" size="mini" @click.native.stop="handleEvaluation($event,item)">{{item.EVALUATION_STATUS}}</u-button>
+            </u-row>
+          </view>
+        </u-cell>
+      </view>
 		</u-list>
+    <u-modal 
+      :show="show" 
+      :title="evaluationTitle" 
+      :showConfirmButton="true" 
+      :showCancelButton="true" 
+      @confirm="evaluationConfirm" 
+      @cancel="evaluationCancel"
+      confirmText="提交评价"
+      cancelText="取消"
+      :closeOnClickOverlay="true"
+    >
+      <view class="evaluation-container">
+        <view class="evaluation-item" v-for="(item, index) in evaluationItems" :key="index">
+          <view class="evaluation-label">
+            <text>{{item.label}}</text>
+          </view>
+          <view class="evaluation-rate">
+            <u-rate 
+              :count="item.count" 
+              v-model="evaluation[item.field]"
+              activeColor="#ff9900"
+              inactiveColor="#dcdcdc"
+              gutter="8"
+              size="22"
+            ></u-rate>
+          </view>
+        </view>
+        
+        <view class="evaluation-textarea">
+          <view class="textarea-label">评价建议</view>
+          <u--textarea
+            v-model="evaluation.evaluationRemark"
+            placeholder="请输入您的评价和建议..."
+            count
+            maxlength="200"
+            height="100"
+            :customStyle="{
+              backgroundColor: '#f5f5f5',
+              padding: '12rpx',
+              borderRadius: '8rpx'
+            }"
+          ></u--textarea>
+        </view>
+      </view>
+    </u-modal>
+
 	</view>
+
 </template>
 
 <script>
-	export default {
+import {evaluationOrder, getOrderList} from "@/api";
+
+  export default {
 		data() {
 			return {
-				value: '',
+        accountId:undefined,
+        show:false,
+        numValue:undefined,
+        triggered:false,
+        // evaluationShow:false,
+        orderList: [],
+        driverEvaluationCount: 4,
+        customerServiceEvaluationCount: 4,
+        warehouseEvaluationCount: 4,
+        timelinessEvaluationCount: 4,
+        goodsEvaluationCount: 4,
+        evaluation: {
+          orderCenterOrderId: undefined,
+          driverEvaluation: 0,
+          customerServiceEvaluation: 0,
+          warehouseEvaluation: 0,
+          timelinessEvaluation: 0,
+          goodsEvaluation: 0,
+          evaluationRemark: undefined,
+        },
+        evaluationTitle: '服务评价',
+        evaluationItems: [
+          { label: '司机服务', field: 'driverEvaluation', count: 4 },
+          { label: '客服态度', field: 'customerServiceEvaluation', count: 4 },
+          { label: '仓库服务', field: 'warehouseEvaluation', count: 4 },
+          { label: '配送时效', field: 'timelinessEvaluation', count: 4 },
+          { label: '货物状态', field: 'goodsEvaluation', count: 4 }
+        ],
 				indexList: [],
 				urls: [
 					"https://xxx.com/album/1.jpg",
@@ -54,85 +116,246 @@
 				],
 			};
 		},
+    created() {
+      if (uni.getStorageSync('accountId')) {
+        this.accountId = uni.getStorageSync('accountId')
+      }
+        this.getList(this.accountId)
+    },
 		onLoad() {
 			this.loadmore();
 		},
 		methods: {
-			scrolltolower() {
-				this.loadmore();
-			},
-			loadmore() {
-				for (let i = 0; i < 30; i++) {
-					this.indexList.push({
-						url: this.urls[uni.$u.random(0, this.urls.length - 1)],
-					});
-				}
-			},
-			change(e) {
-				console.log('change', e);
-			}
+      getList(accountId){
+        // 获取当前订单list
+        let params = {
+          accountId: accountId
+        }
+        getOrderList(params).then(res => {
+          if (res.data){
+            // 对数据进行处理
+            for (let i = 0; i < res.data.length; i++) {
+              if (res.data[i].DRIVER_EVALUATION || res.data[i].WAREHOUSE_EVALUATION
+                  || res.data[i].CUSTOMER_SERVICE_EVALUATION || res.data[i].TIMELINESS_EVALUATION
+                  || res.data[i].GOODS_EVALUATION) {
+                res.data[i].EVALUATION_STATUS = "已评价";
+              } else {
+                res.data[i].EVALUATION_STATUS = "待评价";
+              }
+              if (res.data[i].ORDER_CENTER_ORDER_STATUS === 300010) {
+                res.data[i].STATUS_TEXT = "已审核";
+              }
+              else if (res.data[i].ORDER_CENTER_ORDER_STATUS === 300015 || res.data[i].ORDER_CENTER_ORDER_STATUS === 300020
+                  || res.data[i].ORDER_CENTER_ORDER_STATUS === 300025){
+                res.data[i].STATUS_TEXT = "运输中";
+                res.data[i].CURRENT_VALUE = "物流轨迹";
+                res.data[i].URL = "/pages/index/tracktrace?id=" + res.data[i].ORDER_CENTER_ORDER_ID;
+                res.data[i].TEXT_TYPE = "warning";
+              }else if (res.data[i].ORDER_CENTER_ORDER_STATUS === 300030){
+                res.data[i].STATUS_TEXT = "已签收";
+                res.data[i].CURRENT_VALUE = "签收详情";
+                res.data[i].URL = "/pages/index/signInfo?id=" + res.data[i].ORDER_CENTER_ORDER_ID;
+                res.data[i].TEXT_TYPE = "success";
+              }
+            }
+            this.orderList = res.data;
+          }
+        }).catch(err => {
+          console.error(err);
+        });
+      },
+
+
+      handleEvaluation(event,item) {
+        // 阻止事件冒泡,这样点击按钮就不会触发 u-cell 的点击事件了
+        event.stopPropagation();
+        if (item.EVALUATION_STATUS === "已评价") {
+          uni.showToast({
+            title: "当前已评价",
+            icon: "none"
+          })
+          return
+        }
+        else {
+          this.evaluation.orderCenterOrderId = item.ORDER_CENTER_ORDER_ID
+          this.show = true
+          console.log(this.show)
+        }
+      },
+
+      evaluationConfirm() {
+        // 提交评价
+        evaluationOrder(this.evaluation).then(res => {
+          if (res.code === "success") {
+            uni.showToast({
+              title: "评价成功",
+              icon: "success"
+            })
+            this.getList()
+          }
+        }).catch(err => {
+          uni.showToast({
+            title: "评价失败",
+            icon: err
+          })
+        })
+        this.show = false
+      },
+      evaluationCancel() {
+        // 取消评价
+        this.evaluation = {
+          orderCenterOrderId: undefined,
+          driverEvaluation: 0,
+          customerServiceEvaluation: 0,
+          warehouseEvaluation: 0,
+          timelinessEvaluation: 0,
+          goodsEvaluation: 0,
+          evaluationRemark: undefined
+        },
+        this.show = false
+      },
+
+
+      scrolltolower() {
+        this.loadmore();
+      },
+      loadmore() {
+        for (let i = 0; i < 30; i++) {
+          this.indexList.push({
+            url: this.urls[uni.$u.random(0, this.urls.length - 1)],
+          });
+        }
+      },
 		},
 	};
 </script>
 
-<style lang="scss">
-	.cell-page {
-		padding-bottom: 20px;
-	}
-
-	.cell-box {
-		&__title {
-			font-size: 14px;
-			color: rgb(143, 156, 162);
-			margin: 20px 0px 0px 15px;
-		}
-
-		&__block {
-			// background-color: #fff;
-			margin-top: 20px;
-		}
-	}
-
-	.u-page {
-		padding: 0;
-
-		&__item {
-
-			&__title {
-				color: $u-tips-color;
-				background-color: $u-bg-color;
-				padding: 15px;
-				font-size: 15px;
-
-				&__slot-title {
-					color: $u-primary;
-					font-size: 14px;
-				}
-			}
-		}
-	}
-
-	.u-slot-title {
-		@include flex;
-		flex-direction: row;
-		align-items: center;
-	}
-
-	.u-cell-text {
-		font-size: 15px;
-		line-height: 22px;
-		color: #303133;
-		margin-right: 5px;
-	}
-
-	.u-slot-value {
-		line-height: 17px;
-		text-align: center;
-		font-size: 10px;
-		padding: 0 5px;
-		height: 17px;
-		color: #FFFFFF;
-		border-radius: 100px;
-		background-color: #f56c6c;
-	}
+<style lang="scss" scoped>
+@import '@/common/adaptive.scss';
+
+.cell-page {
+  padding-bottom: 20px;
+}
+
+.cell-box {
+  &__title {
+    font-size: 14px;
+    color: rgb(143, 156, 162);
+    margin: 20px 0px 0px 15px;
+  }
+
+  &__block {
+    // background-color: #fff;
+    margin-top: 20px;
+  }
+}
+
+.u-page {
+  padding: 0;
+
+  &__item {
+
+    &__title {
+      color: $u-tips-color;
+      background-color: $u-bg-color;
+      padding: 15px;
+      font-size: 15px;
+
+      &__slot-title {
+        color: $u-primary;
+        font-size: 14px;
+      }
+    }
+  }
+}
+
+.u-slot-title {
+  @include flex;
+  flex-direction: row;
+  align-items: center;
+}
+
+.u-cell-text {
+  font-size: 15px;
+  line-height: 22px;
+  color: #303133;
+  margin-right: 5px;
+}
+
+.u-slot-value {
+  line-height: 17px;
+  text-align: center;
+  font-size: 10px;
+  padding: 0 5px;
+  height: 17px;
+  color: #FFFFFF;
+  border-radius: 100px;
+  background-color: #f56c6c;
+}
+
+.evaluation-container {
+  padding: 20rpx 30rpx;
+  
+  .evaluation-item {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    margin-bottom: 30rpx;
+    
+    .evaluation-label {
+      font-size: 28rpx;
+      color: #333;
+      min-width: 140rpx;
+    }
+    
+    .evaluation-rate {
+      flex: 1;
+      display: flex;
+      justify-content: flex-end;
+    }
+  }
+  
+  .evaluation-textarea {
+    margin-top: 20rpx;
+    
+    .textarea-label {
+      font-size: 28rpx;
+      color: #333;
+      margin-bottom: 16rpx;
+    }
+  }
+}
+
+.u-modal {
+  /deep/ .u-modal__title {
+    font-size: 32rpx;
+    font-weight: bold;
+    color: #303133;
+  }
+  
+  /deep/ .u-modal__content {
+    padding: 30rpx 0;
+  }
+  
+  /deep/ .u-modal__button {
+    &--confirm {
+      color: #2979ff;
+      font-weight: bold;
+    }
+    
+    &--cancel {
+      color: #909399;
+    }
+  }
+}
+
+.your-component {
+  @include respond-to('tablet') {
+    // 平板样式
+  }
+  
+  @include respond-to('desktop') {
+    // 桌面样式
+  }
+}
 </style>

+ 3 - 0
pages/index/list.vue

@@ -35,6 +35,7 @@
 </template>
 
 <script>
+import { getOrderList } from '@/api/index.js';
 	export default {
 		data() {
 			return {
@@ -54,6 +55,8 @@
 				],
 			};
 		},
+    created() {
+    },
 		onLoad() {
 			this.loadmore();
 		},

+ 273 - 0
pages/index/login.vue

@@ -0,0 +1,273 @@
+<template>
+  <view class="login-container">
+    <view class="login-box">
+      <view class="logo">
+        <image src="/static/logo.png" mode="aspectFit"></image>
+      </view>
+      <view class="title">用户登录</view>
+      
+      <u-form :model="loginForm" ref="uForm" :border-bottom="false">
+        <u-form-item :border-bottom="false">
+          <u-input
+            v-model="loginForm.username"
+            placeholder="请输入用户名"
+            prefixIcon="account"
+            :border="borderText"
+            clearable
+            :prefix-icon-style="{
+              fontSize: '36rpx',
+              color: '#909399'
+            }"
+            :custom-style="{
+              backgroundColor: '#f5f5f5',
+              padding: '0 24rpx',
+              borderRadius: '40rpx'
+            }"
+            :input-style="{
+              height: '88rpx',
+              lineHeight: '88rpx'
+            }"
+          ></u-input>
+        </u-form-item>
+        
+        <u-form-item :border-bottom="false">
+          <u-input
+            v-model="loginForm.password"
+            placeholder="请输入密码"
+            prefixIcon="lock"
+            :type="showPassword ? 'text' : 'password'"
+            :border="borderText"
+            clearable
+            :prefix-icon-style="{
+              fontSize: '36rpx',
+              color: '#909399'
+            }"
+            :custom-style="{
+              backgroundColor: '#f5f5f5',
+              padding: '0 24rpx',
+              borderRadius: '40rpx'
+            }"
+            :input-style="{
+              height: '88rpx',
+              lineHeight: '88rpx'
+            }"
+          >
+            <template slot="suffix">
+              <u-icon
+                :name="showPassword ? 'eye' : 'eye-off'"
+                size="36"
+                :style="{
+                  height: '88rpx',
+                  lineHeight: '88rpx'
+                }"
+                @click="togglePasswordVisibility"
+              ></u-icon>
+            </template>
+          </u-input>
+        </u-form-item>
+      </u-form>
+      
+      <u-button 
+        type="primary" 
+        @click="handleLogin"
+        :custom-style="{
+          marginTop: '80rpx',
+          width: '100%',
+          height: '88rpx',
+          lineHeight: '88rpx',
+          borderRadius: '44rpx',
+          fontSize: '32rpx'
+        }"
+      >
+        登 录
+      </u-button>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      borderText: 'none',
+      loginForm: {
+        username: '',
+        password: ''
+      },
+      showPassword: false,
+      rules: {
+        username: [{
+          required: true,
+          message: '请输入用户名',
+          trigger: ['blur', 'change']
+        }],
+        password: [{
+          required: true,
+          message: '请输入密码',
+          trigger: ['blur', 'change']
+        }]
+      }
+    }
+  },
+  methods: {
+    togglePasswordVisibility() {
+      this.showPassword = !this.showPassword
+    },
+    handleLogin() {
+      console.log('loginForm', this.loginForm)
+      let obj = {
+        "username": this.loginForm.username,
+        "password": this.loginForm.password
+      }
+      uni.request({
+        url: 'http://localhost:8012/BH_CLIS/landed3.action',
+        method: 'POST',
+        data:obj,
+        // data: obj,
+        header: {
+          'content-type': 'application/x-www-form-urlencoded' // 设置请求头,根据你的数据格式进行设置
+        },
+        success: (res) => {
+          console.log('登录响应:', res)
+          if (res.data.code === 'success') {
+            wx.setStorageSync('userName', this.loginForm.username);
+            wx.setStorageSync('password', this.loginForm.password);
+            wx.setStorageSync('accountId', res.data.data.accountId);
+            if (res.data.data.customerVOS.length > 0) {
+              wx.setStorageSync('customerVOS', res.data.data.customerVOS);
+            }
+            uni.showToast({
+              title: '登录成功',
+              icon: 'success',
+              duration: 1500
+            })
+            setTimeout(() => {
+              uni.reLaunch({
+                url: '/pages/index/index',
+                success: () => {
+                  console.log('跳转成功')
+                },
+                fail: (err) => {
+                  console.error('跳转失败:', err)
+                  uni.navigateTo({
+                    url: '/pages/index/index'
+                  })
+                }
+              })
+            }, 1500)
+          } else {
+            uni.showToast({
+              title: res.data.message || '登录失败',
+              icon: 'none'
+            })
+          }
+        },
+        fail: (err) => {
+          console.error('登录请求失败:', err)
+          uni.showToast({
+            title: '网络错误',
+            icon: 'none'
+          })
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.login-container {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  min-height: 100vh;
+  background-color: #ffffff;
+  padding: 40rpx;
+  
+  .login-box {
+    width: 100%;
+    padding: 40rpx;
+    
+    .logo {
+      text-align: center;
+      margin-bottom: 60rpx;
+      
+      image {
+        width: 180rpx;
+        height: 180rpx;
+      }
+    }
+    
+    .title {
+      font-size: 48rpx;
+      text-align: center;
+      margin-bottom: 80rpx;
+      color: #303133;
+      font-weight: bold;
+    }
+    
+    /deep/ .u-form-item {
+      margin-bottom: 40rpx;
+      
+      .u-input {
+        &__content {
+          display: flex;
+          align-items: center;
+          height: 88rpx;
+          
+          &__field-wrapper {
+            display: flex;
+            align-items: center;
+            height: 88rpx;
+            
+            &__field {
+              height: 88rpx;
+              line-height: 88rpx;
+            }
+          }
+          
+          &__prefix-icon {
+            height: 88rpx;
+            line-height: 88rpx;
+            margin-right: 12rpx;
+          }
+          
+          &__suffix-icon {
+            height: 88rpx;
+            line-height: 88rpx;
+            display: flex;
+            align-items: center;
+          }
+        }
+      }
+      
+      .u-icon {
+        color: #909399;
+        display: flex;
+        align-items: center;
+        height: 88rpx;
+      }
+    }
+  }
+}
+
+// 适配不同屏幕尺寸
+@media screen and (min-width: 768px) {
+  .login-box {
+    max-width: 600rpx;
+    margin: 0 auto;
+  }
+}
+
+// 适配iPhone X 等刘海屏
+@supports (padding-bottom: constant(safe-area-inset-bottom)) {
+  .login-container {
+    padding-bottom: constant(safe-area-inset-bottom);
+  }
+}
+@supports (padding-bottom: env(safe-area-inset-bottom)) {
+  .login-container {
+    padding-bottom: env(safe-area-inset-bottom);
+  }
+}
+</style> 

+ 140 - 26
pages/index/signInfo.vue

@@ -1,22 +1,74 @@
 <template>
-	<view class="u-page">
-		<view class="u-demo-block">
-			<view class="u-demo-block__content">
-				<view class="u-page__text-item" style="margin-left: 20px;">
-					<u--text iconStyle="font-size: 19px" text="张三"></u--text>
-				</view>
-				<view class="u-page__text-item">
-					<u--text iconStyle="font-size: 18px" text="2024-04-25 11:10:17"></u--text>
-				</view>
-			</view>
-		</view>
-		<u--image :showLoading="true" :src="src" width="250px" height="250px" ></u--image>
-	</view>
+  <view class="u-page">
+    <view>
+      <view>
+        <u-form :model="form" ref="uForm">
+<!--          <u-form-item label="客户单号" label-width="80" :label-style="{'margin-left':'40rpx'}">-->
+<!--            <u-input v-model="form.customerRefferenceId" disabled/>-->
+<!--          </u-form-item>-->
+          <u-form-item label="签收人" label-width="80" :label-style="{'margin-left':'40rpx'}">
+            <u-input v-model="form.userName" disabled/>
+          </u-form-item>
+          <u-form-item label="签收时间" label-width="80" :label-style="{'margin-left':'40rpx'}">
+            <u-input v-model="form.signTime" disabled/>
+          </u-form-item>
+          <u-form-item label="签收照片" label-width="80" :label-style="{'margin-left':'40rpx'}">
+            <u--image
+                v-for="(item, index) in picItemList"
+                :showLoading="true"
+                :src="item.src"
+                width="80px"
+                height="80px"
+            ></u--image>
+          </u-form-item>
+
+        </u-form>
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
-	export default {
-		onLoad() {},
+
+import {
+  getSignInfo
+} from '@/api/index.js';
+export default {
+    data() {
+      return {
+        itemSrc:'http://localhost:8012/BH_CLIS/AjaxUpload/downloadImageById.action?id=402848c49492834c019492965bf00008',
+        src:'http://localhost:8012/BH_CLIS/AjaxUpload/downloadImageById.action?id=',
+        picItemList: [],
+        form: {
+          customerRefferenceId: '',
+          userName: '',
+          signTime: '',
+        },
+      };
+    },
+
+		onLoad(options) {
+      let accountId = undefined
+      if (uni.getStorageSync('accountId')) {
+        accountId = uni.getStorageSync('accountId')
+      }
+      getSignInfo({orderCenterOrderId: options.id,accountId: accountId}).then(res => {
+        if (res.code === "success") {
+          if (res.data.docIds){
+            res.data.docIds.forEach((item, index) => {
+              this.picItemList.push({
+                src: this.src + item
+              });
+            });
+            console.log(this.picItemList)
+          }
+          this.form.userName = res.data.signedTime;
+          this.form.signTime = res.data.signedPersion;
+        } else {
+        }
+      }).catch(err => {
+      });
+    },
 		methods: {
 			clickHandler() {
 				// #ifndef MP-WEIXIN
@@ -27,16 +79,78 @@
 	}
 </script>
 
-<style lang="scss">
-	.u-page__text-item {
-		margin-right: 10px;
-		flex: 1;
-	}
+<style lang="scss" scoped>
 
-	.u-demo-block__content {
-		@include flex;
-		flex-direction: row;
-		flex-wrap: wrap;
-		align-items: center;
-	}
+.u-page {
+  padding: 0;
+
+  &__item {
+
+    &__title {
+      color: $u-tips-color;
+      background-color: $u-bg-color;
+      padding: 15px;
+      font-size: 15px;
+
+      &__slot-title {
+        color: $u-primary;
+        font-size: 14px;
+      }
+    }
+  }
+}
+
+.warp {
+  width: 750rpx;
+  min-height: 100vh;
+}
+
+.scheduler_top {
+  height: 10vh;
+  background-color: #1676FF;
+}
+
+.scheduler_search {
+  padding-top: 30rpx;
+  background-color: #1676FF;
+  height: 8vh;
+}
+
+.scheduler_list {
+  margin-top: 2vh;
+  height: 60vh;
+}
+
+.order_footer {
+  position: fixed;
+  width: 750rpx;
+  bottom: 5vh;
+  height: 10vh;
+}
+
+.tabBar {
+  height: 14vh;
+}
+
+.uni-common-mt {
+  margin-top: 60rpx;
+}
+
+.uni-padding-wrap {
+  // width: 750rpx;
+  padding: 0px 60rpx;
+}
+
+/deep/ .u-collapse-head.data-v-31fbc7f8 {
+  padding-left: 60rpx;
+}
+
+.detailStyle {
+  font-size: 28rpx;
+}
+
+.u-space {
+  display: inline-block;
+  width: 20rpx;
+}
 </style>

+ 17 - 11
pages/index/tracktrace.vue

@@ -1,7 +1,5 @@
 <template>
-	<u-link
-		href="https://api.e6yun.com/public/v3/MapServices/PlayTrack.aspx?appkey=D0CE6E7D-AD60-4212-A254-3F15627A4322&timestamp=2025-01-10 16:02:59&vehicle=川AAW5576&btime=2025-01-10 09:10:18&etime=2025-01-10 16:02:59&sign=6E9F9AB585A5D8ED1BE4DBE0338ACCAD"
-		text="打开uView UI文档" @click="click"></u-link>
+  <web-view :src="currentUrl"></web-view>
 </template>
 
 <script>
@@ -9,20 +7,28 @@
 		getTrackTrace
 	} from '@/api/index.js';
 	export default {
+    data() {
+      return {
+        currentUrl: undefined,
+      }
+    },
+
+
 		methods: {
 			click() {
 				console.log('click');
 			}
 		},
 		onLoad(options) {
-			getTrackTrace({
-				orderCenterOrderId: "TO240425010003",
-				// "orderCenterOrderId": options.id
-			}).then(res => {
-				console.log(res.data);
-			}).catch(err => {
-				console.error(err);
-			});
+			getTrackTrace({orderCenterOrderId: options.id,}).then(res => {
+        if (res.code === "success") {
+          this.currentUrl = res.data;
+        } else {
+
+        }
+      }).catch(err => {
+
+      });
 		},
 	}
 </script>