From 090ea2c7d46a7082e978e6c0134d3fbeafaa34a0 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 16 四月 2025 16:44:20 +0800
Subject: [PATCH] 提交

---
 admin/src/views/platform/LogisticsRecord/waybill.vue   |    2 
 admin/src/views/index.vue                              |    8 +++
 h5/pages/staff/task/visitorApprove.vue                 |   12 +++--
 admin/src/assets/icons/8.png                           |    0 
 h5/main.js                                             |    2 +
 admin/src/views/statistics/platformRecord.vue          |    1 
 h5/pages/staff/task/visitorReport.vue                  |   35 ++++++++++++++++-
 admin/src/views/platform/LogisticsRecord/subscribe.vue |    2 
 h5/package.json                                        |    3 +
 screen/src/views/LogisticsEfficiency.vue               |    6 +-
 h5/package-lock.json                                   |   39 +++++++++++++++++++
 h5/manifest.json                                       |    1 
 12 files changed, 96 insertions(+), 15 deletions(-)

diff --git a/admin/src/assets/icons/8.png b/admin/src/assets/icons/8.png
new file mode 100644
index 0000000..1d96ef4
--- /dev/null
+++ b/admin/src/assets/icons/8.png
Binary files differ
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 85b9087..623c258 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -240,7 +240,8 @@
         { name: '璁垮鎶ュ', path: '', url: require('@/assets/icons/home_func1.png'), path: '/business/reportRecord' },
         { name: '闅愭偅闅忔墜鎷�', path: '', url: require('@/assets/icons/home_func2.png'), path: '/operation/danger/record' },
         { name: '棰勭害浼氳瀹�', path: '', url: require('@/assets/icons/home_func3.png'), path: '/meeting/bookings' },
-        { name: '鑰冨嫟宸ヤ綔鍙�', path: '', url: require('@/assets/icons/home_func4.png') }
+        { name: '鑰冨嫟宸ヤ綔鍙�', path: '', url: require('@/assets/icons/home_func4.png') },
+        { name: '椋熷爞娑堣垂鍏ュ彛', path: '', url: require('@/assets/icons/8.png') }
       ],
       isShowDetail: false,
       isShowReport: false,
@@ -350,6 +351,11 @@
           window.open(res, '_blank')
         })
       }
+      if (item.name == '椋熷爞娑堣垂鍏ュ彛') {
+        getAppHeaderNav(6).then(res => {
+          window.open(res, '_blank')
+        })
+      }
       this.$router.push(item.path)
     },
     updateDate () {
diff --git a/admin/src/views/platform/LogisticsRecord/subscribe.vue b/admin/src/views/platform/LogisticsRecord/subscribe.vue
index 38694f2..cedb20e 100644
--- a/admin/src/views/platform/LogisticsRecord/subscribe.vue
+++ b/admin/src/views/platform/LogisticsRecord/subscribe.vue
@@ -49,7 +49,7 @@
         <template v-slot="scope">
           <el-button type="text" v-permissions="['business:platformbooks:detail']"
             @click="handleDetail(scope.row)">棰勭害璇︽儏</el-button>
-          <el-button type="text" @click="complete([scope.row.jobId])" v-if="[0,1].includes(scope.row.jobStatus)">瀹屾垚浣滀笟</el-button>
+          <el-button type="text" @click="complete([scope.row.jobId])" v-if="[0,1,2].includes(scope.row.jobStatus)">瀹屾垚浣滀笟</el-button>
           <el-button type="text" class="red" v-permissions="['business:platformbooks:delete']"
             @click="handleDel(scope.row)">鍒犻櫎</el-button>
         </template>
diff --git a/admin/src/views/platform/LogisticsRecord/waybill.vue b/admin/src/views/platform/LogisticsRecord/waybill.vue
index fbd03ce..a4e9be5 100644
--- a/admin/src/views/platform/LogisticsRecord/waybill.vue
+++ b/admin/src/views/platform/LogisticsRecord/waybill.vue
@@ -47,7 +47,7 @@
       </el-table-column>
       <el-table-column prop="name" label="鎿嶄綔" min-width="170" align="center" fixed="right" show-overflow-tooltip>
         <template v-slot="scope">
-          <el-button type="text" @click="complete([scope.row.id])" v-if="[0,1].includes(scope.row.status)">瀹屾垚浣滀笟</el-button>
+          <el-button type="text" @click="complete([scope.row.id])" v-if="[0,1,2].includes(scope.row.status)">瀹屾垚浣滀笟</el-button>
           <el-button v-if="scope.row.status == '12'" type="text" class="red"
             v-permissions="['business:platformjob:delete']" @click="handleDel(scope.row)">鍒犻櫎</el-button>
           <el-button v-if="scope.row != 12" type="text" v-permissions="['business:platformjob:query']"
diff --git a/admin/src/views/statistics/platformRecord.vue b/admin/src/views/statistics/platformRecord.vue
index 1673dbf..6c36e50 100644
--- a/admin/src/views/statistics/platformRecord.vue
+++ b/admin/src/views/statistics/platformRecord.vue
@@ -30,6 +30,7 @@
           <span>{{ scope.row.billCode || scope.row.contractNum }}</span>
         </template>
       </el-table-column>
+      <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囧彧)" min-width="100" show-overflow-tooltip />
     </el-table>
     <div class="mt20">
       <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
diff --git a/h5/main.js b/h5/main.js
index 8a3b147..b3b40a8 100644
--- a/h5/main.js
+++ b/h5/main.js
@@ -6,6 +6,8 @@
 import store from './store/index.js'
 import Tabbar from '@/components/tarbar.vue'
 import navigation from '@/components/Header.vue'
+// import Vconsole from 'vconsole'
+// let vConsole = new Vconsole();
 
 Vue.config.productionTip = false
 
diff --git a/h5/manifest.json b/h5/manifest.json
index 98170d5..090169f 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -5,6 +5,7 @@
     "versionName" : "1.0.0",
     "versionCode" : "100",
     "transformPx" : false,
+	"sassImplementationName": "node-sass",
     /* 5+App鐗规湁鐩稿叧 */
     "app-plus" : {
         "usingComponents" : true,
diff --git a/h5/package-lock.json b/h5/package-lock.json
index c8598e1..e0ea285 100644
--- a/h5/package-lock.json
+++ b/h5/package-lock.json
@@ -4,10 +4,38 @@
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
+        "@babel/runtime": {
+            "version": "7.27.0",
+            "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.0.tgz",
+            "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==",
+            "requires": {
+                "regenerator-runtime": "^0.14.0"
+            }
+        },
+        "copy-text-to-clipboard": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz",
+            "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q=="
+        },
+        "core-js": {
+            "version": "3.41.0",
+            "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.41.0.tgz",
+            "integrity": "sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA=="
+        },
         "dayjs": {
             "version": "1.11.13",
             "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
             "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+        },
+        "mutation-observer": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz",
+            "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
+        },
+        "regenerator-runtime": {
+            "version": "0.14.1",
+            "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+            "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
         },
         "uniapp-qrcode": {
             "version": "1.0.2",
@@ -18,6 +46,17 @@
             "version": "2.0.37",
             "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.37.tgz",
             "integrity": "sha512-iBcWNmQa01Wr+z004G6XIVPDctOrJIAx7LObQceUAPxZh6kJYjIOAMp5JE1K4VpoMV5bKYDpCd0gmX+M4nTEQQ=="
+        },
+        "vconsole": {
+            "version": "3.15.1",
+            "resolved": "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.1.tgz",
+            "integrity": "sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==",
+            "requires": {
+                "@babel/runtime": "^7.17.2",
+                "copy-text-to-clipboard": "^3.0.1",
+                "core-js": "^3.11.0",
+                "mutation-observer": "^1.0.3"
+            }
         }
     }
 }
diff --git a/h5/package.json b/h5/package.json
index d08f0eb..3f666de 100644
--- a/h5/package.json
+++ b/h5/package.json
@@ -15,6 +15,7 @@
     "dependencies": {
         "dayjs": "^1.11.13",
         "uniapp-qrcode": "^1.0.2",
-        "uview-ui": "^2.0.37"
+        "uview-ui": "^2.0.37",
+        "vconsole": "^3.15.1"
     }
 }
diff --git a/h5/pages/staff/task/visitorApprove.vue b/h5/pages/staff/task/visitorApprove.vue
index af5b291..4e5ca1e 100644
--- a/h5/pages/staff/task/visitorApprove.vue
+++ b/h5/pages/staff/task/visitorApprove.vue
@@ -68,7 +68,7 @@
 					<view class="avatar">
 						<image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
 						<image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
-							src="@/static/staff/ic_shenpiren@2x.png" />
+							src="@/static/staff/ic_shenpiren@2x.png" />
 						<image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image>
 						<span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
 						<image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png"
@@ -140,7 +140,8 @@
 <script>
 	import {
 		getVisitedDetail, // 璁垮棰勭害璇︽儏
-		carUseBookAppr
+		carUseBookAppr,
+		visitsCancel
 	} from '@/api'
 	export default {
 		data() {
@@ -186,7 +187,7 @@
 				cancelShow: false
 			}
 		},
-		onLoad(op) {
+		onLoad(op) {
 			uni.setStorageSync('ywinfo',{})
 			this.id = op.id
 			this.getDetail()
@@ -195,6 +196,7 @@
 			// 鍙栨秷棰勭害
 			cancel() {
 				visitsCancel(this.id).then(res => {
+					this.cancelShow = false
 					this.getDetail()
 				})
 			},
@@ -255,7 +257,7 @@
 				})
 			},
 			handleSub(status) {
-				// this.param.flag = 
+				// this.param.flag =
 				this.param = {
 					status
 				}
@@ -578,4 +580,4 @@
 			margin: 0 -30rpx;
 		}
 	}
-</style>
\ No newline at end of file
+</style>
diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
index d8f611e..b9c62cd 100644
--- a/h5/pages/staff/task/visitorReport.vue
+++ b/h5/pages/staff/task/visitorReport.vue
@@ -100,7 +100,10 @@
       info.approveDateVO.canBeApproved != null &&
       info.approveDateVO.canBeApproved == 1
     " class="main_footer">
+	  <view class="btn" @click="cancelShow = true" v-if="checkAuth('business:visits:cancel') && [0,1,2,5].includes(info.status)">鍙栨秷棰勭害</view>
+	  <view style="width: 30rpx; height: 100%;"></view>
       <view class="btn" @click="handleSub(3)">鎷掔粷</view>
+	  <view style="width: 30rpx; height: 100%;"></view>
       <view class="btn agree" @click="handleSub(2)">鍚屾剰</view>
     </view>
 
@@ -111,17 +114,27 @@
           " placeholder-class="placeholder9" />
         <view class="main_footer">
           <view class="btn" @click="showApprModal = false">鍙栨秷</view>
+		  <view style="width: 30rpx; height: 100%;"></view>
           <view class="btn agree" @click="onSubmit">鎻愪氦</view>
         </view>
       </view>
     </u-popup>
+	<!-- 鍙栨秷棰勭害寮圭獥 -->
+	<u-modal
+		:show="cancelShow"
+		:showCancelButton="true"
+		title="绯荤粺鎻愮ず"
+		content='纭畾鍙栨秷褰撳墠棰勭害鍚楋紵'
+		@cancel="cancelShow = false"
+		@confirm="cancel" />
   </view>
 </template>
 
 <script>
 import {
   getVisitedReDetail, // 璁垮棰勭害璇︽儏
-  carUseBookAppr
+  carUseBookAppr,
+  visitsCancel
 } from '@/api'
 export default {
   data() {
@@ -129,6 +142,9 @@
       showApprModal: false,
       param: {},
       info: {},
+	  userInfo: uni.getStorageSync('userInfo') || {
+	  	permissions: []
+	  },
 
       id: '',
       type: '',
@@ -146,7 +162,8 @@
         2: '宸查�氳繃',
         3: '宸叉嫆缁�',
         4: '宸插彇娑�',
-      }
+      },
+	  cancelShow: false
     }
   },
   onLoad(op) {
@@ -155,6 +172,17 @@
     this.getDetail()
   },
   methods: {
+	  checkAuth(str) {
+	  	const permissions = this.userInfo.permissions || []
+	  	return permissions.indexOf(str) > -1
+	  },
+	  // 鍙栨秷棰勭害
+	  cancel() {
+	  	visitsCancel(this.id).then(res => {
+	  		this.cancelShow = false
+	  		this.getDetail()
+	  	})
+	  },
     getDetail() {
       const { id } = this
       getVisitedReDetail({ id }).then(res => {
@@ -476,7 +504,8 @@
     background: #ffffff;
 
     .btn {
-      width: 336rpx;
+      // width: 336rpx;
+	  flex: 1;
       height: 88rpx;
       line-height: 88rpx;
       background: #ffffff;
diff --git a/screen/src/views/LogisticsEfficiency.vue b/screen/src/views/LogisticsEfficiency.vue
index e4bfd5b..b64832b 100644
--- a/screen/src/views/LogisticsEfficiency.vue
+++ b/screen/src/views/LogisticsEfficiency.vue
@@ -17,7 +17,7 @@
             <div class="com_header">
               <div class="title">
                 <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-                <div>绱鍑哄簱閲忕粺璁�</div>
+                <div>绱鍑哄簱閲忕粺璁★紙涓囧彧锛�</div>
               </div>
               <div class="tabs">
                 <div class="tab" :class="{ active: activeTab1 == 0 }" @click="tabClick1(0)">鏈湀</div>
@@ -293,7 +293,7 @@
                   <div :class="{ orange: item.num < 200 }" class="item two-swiper-slide swiper-slide"
                     v-for="item in data6.stockList">
                     <div class="la">{{ item.name }}</div>
-                    <div class="val">{{ item.num }}涓囨敮</div>
+                    <div class="val">{{ item.num }}{{item.name.indexOf('鎵樼洏') === -1 ? '涓囨敮' : '涓�'}}</div>
                   </div>
                 </div>
               </div>
@@ -1990,4 +1990,4 @@
   object-fit: cover;
   z-index: -1;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3