Quellcode durchsuchen

入户安全检查、调拨气瓶流转、钢瓶状态、调拨、调拨记录

qianduan vor 10 Monaten
Ursprung
Commit
032b0369be
49 geänderte Dateien mit 1862 neuen und 408 gelöschten Zeilen
  1. 22 0
      common/index.scss
  2. 16 10
      components/TreeItem.vue
  3. 7 5
      components/orderManagement.vue
  4. 1 0
      components/x-form.vue
  5. 2 2
      manifest.json
  6. 24 0
      pages.json
  7. 14 5
      pages/home/index.vue
  8. 12 8
      pages/home/selectStore.vue
  9. 1 1
      pages/index/codeTracing.vue
  10. 37 27
      pages/indexRouter.vue
  11. 12 8
      pages/information/cylinder.vue
  12. 124 0
      pages/information/flowStep.vue
  13. 175 19
      pages/information/index.vue
  14. 133 0
      pages/information/recipient.vue
  15. 64 0
      pages/information/storePersonnel.vue
  16. 408 56
      pages/information/transfer.vue
  17. 179 0
      pages/information/transferDetails.vue
  18. 115 15
      pages/information/transferRecord.vue
  19. 20 1
      pages/mine/index.vue
  20. 7 8
      pages/mine/personal.vue
  21. 20 6
      pages/order/cannibalize.vue
  22. 1 1
      pages/order/completionTasks.vue
  23. 2 2
      pages/order/cylinderTransfer.vue
  24. 100 30
      pages/order/delivery.vue
  25. 3 2
      pages/order/index.vue
  26. 1 1
      pages/order/orderDetails.vue
  27. 21 5
      pages/order/securityCheck.vue
  28. 49 3
      static/fonts/demo_index.html
  29. 11 3
      static/fonts/iconfont.css
  30. 0 0
      static/fonts/iconfont.js
  31. 14 0
      static/fonts/iconfont.json
  32. BIN
      static/fonts/iconfont.ttf
  33. BIN
      static/fonts/iconfont.woff
  34. BIN
      static/fonts/iconfont.woff2
  35. 226 165
      static/js/blockSort.js
  36. 0 0
      unpackage/cache/wgt/__UNI__10C0A5F/app-service.js
  37. 0 0
      unpackage/cache/wgt/__UNI__10C0A5F/app-view.js
  38. 0 0
      unpackage/cache/wgt/__UNI__10C0A5F/manifest.json
  39. 0 0
      unpackage/dist/build/app-plus/app-service.js
  40. 0 0
      unpackage/dist/build/app-plus/app-view.js
  41. 0 0
      unpackage/dist/build/app-plus/manifest.json
  42. 0 1
      unpackage/dist/dev/app-plus/app-config-service.js
  43. 0 0
      unpackage/dist/dev/app-plus/app-service.js
  44. 41 24
      unpackage/dist/dev/app-plus/app-view.js
  45. 0 0
      unpackage/dist/dev/app-plus/manifest.json
  46. BIN
      unpackage/release/apk/__UNI__10C0A5F__20240806144132.apk
  47. BIN
      unpackage/release/apk/__UNI__10C0A5F__20240807141911.apk
  48. BIN
      unpackage/release/apk/__UNI__10C0A5F__20240807153118.apk
  49. BIN
      unpackage/release/apk/__UNI__10C0A5F__20240808150355.apk

+ 22 - 0
common/index.scss

@@ -51,4 +51,26 @@ page{
 	font-weight: bold;
 	text-align: left;
 	color: #333;
+}
+// 伪元素1rpx边框
+.frame {
+	position: relative; //重要
+}
+
+.frame::after {
+	position: absolute;
+	content: '';
+	border-bottom: 4rpx solid #e4e7ed;
+	width: 200%;
+	height: 200%;
+	top: 0;
+	left: 0;
+	transform: scale(0.5);
+	transform-origin: 0 0;
+	pointer-events: none; /* 使伪元素不会阻止鼠标事件 */
+}
+
+.card_search_head{
+	padding: 20rpx 30rpx;
+	background-color: #f3f4f6;
 }

+ 16 - 10
components/TreeItem.vue

@@ -1,20 +1,22 @@
 <!-- TreeItem.vue -->
 <template>
 	<view>
-		<view class="item_tree" @click="toggleNode">
-			<view class="tree_title">
-				<view v-if="item.children.length > 0">
+		<view class="item_tree frame">
+			<view class="tree_title" style="width: 100%;" @click="choice(item)">
+				<view v-if="item.children.length > 0"  @click="toggleNode">
 					<u-icon name="arrow-right" v-if="!expanded"></u-icon>
 					<u-icon name="arrow-down" v-else></u-icon>
 				</view>
+				<view v-else style="width: 32rpx;"></view>
 				<view class="name_tree_item">{{ item.name }}</view>
 			</view>
-			<view>
+			<!-- <view>
 				<u-button type="primary" size="small" text="确定" @click="choice(item)"></u-button>
-			</view>
+			</view> -->
 		</view>
 		<view v-if="item.children && item.children.length && expanded">
-			<tree-item @confirm="confirm" v-for="child in item.children" :key="child.id" :item="child"></tree-item>
+			<tree-item style="padding-left: 20rpx;" @confirm="confirm" v-for="child in item.children" :key="child.id"
+				:item="child"></tree-item>
 		</view>
 	</view>
 </template>
@@ -25,7 +27,7 @@
 		props: ['item'],
 		data() {
 			return {
-				expanded: false // 初始状态为折叠
+				expanded: true // 初始状态为折叠
 			};
 		},
 		methods: {
@@ -33,7 +35,7 @@
 				this.expanded = !this.expanded; // 切换展开和折叠状态
 			},
 			choice(value) {
-				this.$emit('confirm', value.cmpCode)
+				this.$emit('confirm', value)
 			},
 			confirm(cmpCode) {
 				this.$emit('confirm', cmpCode)
@@ -47,8 +49,8 @@
 		display: flex;
 		align-items: center;
 		justify-content: space-between;
-		padding: 20rpx 20rpx;
-		border-bottom: 1rpx solid #dfdfdf;
+		padding: 30rpx;
+		// border-bottom: 1rpx solid #dfdfdf;
 	}
 
 	.tree_title {
@@ -58,7 +60,11 @@
 	}
 
 	.name_tree_item {
+		width: 60%;
 		margin-left: 10rpx;
 		font-size: 30rpx;
+		white-space: nowrap;
+		text-overflow: ellipsis;
+		overflow: hidden;
 	}
 </style>

+ 7 - 5
components/orderManagement.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="card_order_management">
-		<view class="card_order frame" v-for="(item,index) in datalist" :key="index" v-if="datalist.length > 0">
+		<view class="card_order" v-for="(item,index) in datalist" :key="index" v-if="datalist.length > 0">
 			<view style="padding: 30rpx 20rpx">
 				<view @click="goDetails(item)">
 					<view class="space_between">
@@ -34,11 +34,13 @@
 				<view v-if="item.state == 2">
 					<u-button type="success" @click="toDeliver(item)">去配送</u-button>
 				</view>
-				<view class="card_delivery" v-if="item.state == 5 || item.state == 6">
-					<view style="flex: 1;" v-if="item.state == 5">
+				<view class="card_delivery" v-if="item.state == 5">
+					<view style="flex: 1;">
 						<u-button type="warning" @click="goSecurityCheck(item)">入户安全检查</u-button>
 					</view>
-					<view style="flex: 1;" v-if="item.state == 6">
+				</view>
+				<view class="card_delivery" v-if="item.state == 6">
+					<view style="flex: 1;">
 						<u-button type="primary" @click="confirmedDelivery(item)">确认送达</u-button>
 					</view>
 				</view>
@@ -117,7 +119,7 @@
 	.card_order {
 		width: 100%;
 		margin-top: 20rpx;
-		// border: 1rpx solid rgba(215, 215, 215, 1);
+		border: 1rpx solid #d7d7d7;
 		border-radius: 8rpx;
 	}
 

+ 1 - 0
components/x-form.vue

@@ -290,6 +290,7 @@
 		left: 0;
 		right: 0;
 		bottom: 0;
+		z-index: 10;
 		background-color: #fff;
 		border-top: 1rpx solid #f7f7f7;
 		padding-bottom: constant(safe-area-inset-bottom); //兼容 IOS<11.2

+ 2 - 2
manifest.json

@@ -2,8 +2,8 @@
     "name" : "气瓶安全追溯",
     "appid" : "__UNI__10C0A5F",
     "description" : "",
-    "versionName" : "1.0.4",
-    "versionCode" : 104,
+    "versionName" : "1.0.8",
+    "versionCode" : 108,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {

+ 24 - 0
pages.json

@@ -64,6 +64,30 @@
 			}
 		},
 		{
+			"path": "pages/information/flowStep",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/information/storePersonnel",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/information/recipient",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/information/transferDetails",
+			"style": {
+				"navigationStyle": "custom"
+			}
+		},
+		{
 			"path": "pages/order/index",
 			"style": {
 				"navigationBarTitleText": "订单",

+ 14 - 5
pages/home/index.vue

@@ -49,26 +49,31 @@
 			return {
 				addList: [{
 					id: 'add',
-					title: '扫码添加钢瓶',
+					title: '添加钢瓶',
 					icon: 'icon-saoyisao',
 					color: '#1ee94d',
 				}, {
 					id: 'step',
-					title: '气瓶流转信息',
+					title: '流转信息',
 					icon: 'icon-saomachaxun',
 					color: '#195eea',
 				}, {
 					id: 'allot',
 					title: '钢瓶调拨',
-					icon: 'icon-tiaobo',
+					icon: 'icon-moveais',
 					color: '#19baea',
+				}, {
+					id: 'record',
+					title: '调拨记录',
+					icon: 'icon-tiaobodan',
+					color: '#ead719',
 				}],
 			}
 		},
 		mounted() {},
 		methods: {
 			scanCodes(value) {
-				if (['11', '12', '17', '19'].includes(value.id)) {
+				if (['11', '12', '17', '19', '16', '033'].includes(value.id)) {
 					uni.navigateTo({
 						url: '/pages/home/selectStore?id=' + value.id + '&title=' + value.title
 					});
@@ -82,6 +87,10 @@
 					uni.navigateTo({
 						url: '/pages/order/cylinderTransfer'
 					});
+				} else if (value.id == 'record') {
+					uni.navigateTo({
+						url: '/pages/information/transferRecord'
+					});
 				} else if (value.id == '14') {
 					this.$emit('tankFilling')
 				} else {
@@ -211,7 +220,7 @@
 		// height: 78rpx;
 		margin-top: 10rpx;
 		color: #606266;
-		width: 90%;
+		width: 70%;
 		text-align: center;
 		font-size: 26rpx;
 	}

+ 12 - 8
pages/home/selectStore.vue

@@ -1,7 +1,7 @@
 <template>
 	<!-- 选择门店 -->
 	<view>
-		<u-navbar border title="" autoBack placeholder></u-navbar>
+		<u-navbar border :title="navTitle" autoBack placeholder></u-navbar>
 		<!-- <view v-if="treeData.length > 0">
 			<tree-item v-for="item in treeData" :key="item.id" :item="item" @confirm="confirm"></tree-item>
 		</view>
@@ -44,16 +44,20 @@
 					scanType: ['qrCode'],
 					autoZoom: false,
 					success: (res) => {
-						// console.log(res, '--------');
 						if (res.result) {
 							let url = res.result;
 							const arrf = url.split(',')
-							this.$cache.setCache('storeInformation', arrf)
-							uni.navigateTo({
-								url: '/pages/order/delivery?id=' + this.selectiveType + '&title=' +
-									this.navTitle +
-									'&cmpCode=' + arrf[0]
-							});
+							console.log(arrf, '--------');
+							if (arrf.length > 3) {
+								this.$cache.setCache('storeInformation', arrf)
+								uni.navigateTo({
+									url: '/pages/order/delivery?id=' + this.selectiveType + '&title=' +
+										this.navTitle +
+										'&cmpCode=' + arrf[0]
+								});
+							} else {
+								uni.$u.toast('请扫描门店二维码')
+							}
 						} else {
 							console.log('请重新扫描');
 							return false;

+ 1 - 1
pages/index/codeTracing.vue

@@ -2,7 +2,7 @@
 	<view class="card_code_tracing">
 		<u-navbar title="二维码溯源" autoBack placeholder></u-navbar>
 		<!-- <view class="details_title">二维码溯源</view> -->
-		<view class="details_title1">钢瓶编号 <span class="line_title">*</span></view>
+		<view class="details_title1">单位内编号 <span class="line_title">*</span></view>
 		<view class="card_search">
 			<view class="card_input">
 				<u-search :showAction="true" v-model="frequencyCoding" actionText="搜索" :animation="true"

+ 37 - 27
pages/indexRouter.vue

@@ -34,14 +34,14 @@
 				token: '',
 				aspirated: [{
 					id: '25',
-					title: '领重瓶出库',
+					title: '送气员领重瓶出库',
 					icon: 'icon-chukudan',
 					color: '#f4b237',
 				}, {
 					id: '27',
-					title: '扫空瓶入库',
-					icon: 'icon-fankudengji',
-					color: '#6db1ff',
+					title: '送气员回收空瓶',
+					icon: 'icon-recycling',
+					color: '#8ac247',
 				}],
 				shopList: [{
 					id: '37',
@@ -76,42 +76,47 @@
 					color: '#f3553e',
 				}, ],
 				driverList: [{
-					id: '11',
-					title: '门店空瓶装车',
-					icon: 'icon-owNote',
-					color: '#22b9f9',
-				}, {
-					id: '12',
-					title: '空瓶到达气站',
-					icon: 'icon-yidaoda',
-					color: '#83e908',
-				}, {
 					id: '17',
-					title: '气站重瓶出库',
+					title: '确定重瓶气站出库',
 					icon: 'icon-chukudan',
 					color: '#6db1ff',
 				}, {
+					id: '033',
+					title: '确定重瓶门店出库',
+					icon: 'icon-owNote',
+					color: '#8ac247',
+				}, {
 					id: '19',
-					title: '重瓶交付门店',
+					title: '司机钢瓶交付门店',
 					icon: 'icon-yunsonghejiaofu',
 					color: '#f4b237',
 				}, {
+					id: '12',
+					title: '运输空瓶到达气站',
+					icon: 'icon-yidaoda',
+					color: '#83e908',
+				}, {
+					id: '11',
+					title: '司机空瓶装车',
+					icon: 'icon-owNote',
+					color: '#22b9f9',
+				}, {
 					id: '16',
 					title: '重瓶退回气站',
 					icon: 'icon-tuihuo',
 					color: '#f3553e',
-				}, {
-					id: '033',
-					title: '重瓶门店出库',
-					icon: 'icon-owNote',
-					color: '#8ac247',
 				}],
 				stationList: [{
 					id: '13',
-					title: '空瓶到达气站',
+					title: '确定空瓶到达气站',
 					icon: 'icon-daichuku',
 					color: '#37c4f4',
 				}, {
+					id: '016',
+					title: '确定重瓶到达气站',
+					icon: 'icon-yidaoda',
+					color: '#c7be16',
+				}, {
 					id: '14',
 					title: '气站充装空瓶',
 					icon: 'icon-peizaizhuangche-xianxing',
@@ -122,11 +127,6 @@
 					icon: 'icon-owNote',
 					color: '#8ac247',
 				}, {
-					id: '016',
-					title: '重瓶到达气站',
-					icon: 'icon-yidaoda',
-					color: '#c7be16',
-				}, {
 					id: 'inspect',
 					title: '充气前后检查',
 					icon: 'icon-jianchaxiang',
@@ -170,6 +170,16 @@
 			}
 		},
 		onShow() {
+			if (this.nowchos == 1) {
+				if (this.$refs.cylinder) {
+					this.$refs.cylinder.refreshList()
+				}
+			}
+			if (this.nowchos == 2) {
+				if (this.$refs.cylinder) {
+					this.$refs.cylinder.refreshList()
+				}
+			}
 			var token = this.$cache.getToken()
 			this.token = token
 			var userInfo = this.$cache.getCache('userInfo')

+ 12 - 8
pages/information/cylinder.vue

@@ -1,9 +1,9 @@
 <template>
 	<!-- 添加钢瓶 -->
 	<view>
-		<u-navbar title="添加钢瓶" autoBack placeholder @leftClick="leftClick"></u-navbar>
+		<u-navbar :title="cylinderTitle" autoBack placeholder @leftClick="leftClick"></u-navbar>
 		<view class="card_cylinder">
-			<view class="title_index">钢瓶编号 <span class="line_title">*</span></view>
+			<view class="title_index">单位内编号 <span class="line_title">*</span></view>
 			<view style="display: flex;align-items: center;">
 				<u-input border="surround" placeholder="点击输入" v-model="frequencyCoding"></u-input>
 				<view class="btn_add_card">
@@ -33,7 +33,7 @@
 				</view>
 			</view>
 			<view style="margin-top: 20%;" v-else>
-				<u-empty mode="list" text="请先扫描添加钢瓶编号"></u-empty>
+				<u-empty mode="list" text="请先扫描添加单位内编号"></u-empty>
 			</view>
 		</view>
 		<view style="width: 100%;height: 120rpx;"></view>
@@ -42,7 +42,7 @@
 		</view>
 		<u-popup :show="show" :round="10" :closeOnClickOverlay="false" mode="center" @close="close">
 			<view class="card_coding_scan">
-				<view class="title_coding">钢瓶编号</view>
+				<view class="title_coding">单位内编号</view>
 				<view class="coding_title1">{{scanCoding}}</view>
 				<view style="display: flex;align-items: center;">
 					<u-icon color="#19be6b" size="30" name="checkmark-circle-fill"></u-icon>
@@ -64,10 +64,12 @@
 				show: false,
 				scanCoding: '',
 				bottleType: 1,
+				cylinderTitle: '添加钢瓶',
 			}
 		},
 		onLoad(value) {
 			this.bottleType = value.status
+			this.cylinderTitle = value.title
 		},
 		methods: {
 			// 返回
@@ -79,7 +81,7 @@
 				let arrList = []
 				if (this.codeList.length == 0) {
 					if (!this.frequencyCoding) {
-						return uni.$u.toast('请先输入钢瓶编号')
+						return uni.$u.toast('请先输入单位内编号')
 					} else {
 						arrList.push(this.frequencyCoding)
 					}
@@ -87,13 +89,15 @@
 					arrList = this.codeList
 				}
 				this.$api.post('/api/gas-cylinder-status', {
-					status: Number(this.bottleType),
+					status: this.bottleType,
 					innerCodeList: arrList
 				}).then(res => {
 					if (res.code == 200) {
 						this.codeList = []
 						this.frequencyCoding = ''
 						uni.$u.toast(res.msg)
+					} else {
+						uni.$u.toast(res.data.msg)
 					}
 				})
 			},
@@ -213,7 +217,7 @@
 		justify-content: space-between;
 		margin-top: 30rpx;
 		padding-bottom: 30rpx;
-		border-bottom: 1rpx solid #d7d7d7;
+		border-bottom: 1rpx solid #e4e7ed;
 	}
 
 	.card_bottle {
@@ -228,7 +232,7 @@
 	.card_code_trac {
 		margin-top: 30rpx;
 		padding-bottom: 30rpx;
-		border-bottom: 1rpx solid #d7d7d7;
+		border-bottom: 1rpx solid #e4e7ed;
 	}
 
 	.item_current {

+ 124 - 0
pages/information/flowStep.vue

@@ -0,0 +1,124 @@
+<template>
+	<!-- 选择流转步骤 -->
+	<view>
+		<u-navbar title="选择流转步骤" autoBack placeholder></u-navbar>
+		<view style="display: flex;flex-direction: column;">
+			<view class="step_title_item frame" v-for="(item,index) in columns" :key="index" @click="selectStep(item)">
+				<span>{{item}}</span>
+				<u-icon name="arrow-right"></u-icon>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				columns: [],
+				current: '',
+			}
+		},
+		onLoad(value) {
+			this.current = value.current
+		},
+		mounted() {
+			var userInfo = this.$cache.getCache('userInfo')
+			let arrData = []
+			if (userInfo.provUser) {
+				if (userInfo.provUser.isorders == 0 && userInfo.provUser.userType == 3) {
+					// 送气员端
+					if (this.current == '1') {
+						arrData.push('门店确认未配送重瓶返库')
+					} else if (this.current == '2') {
+						arrData.push('门店回收空瓶')
+					} else {
+						arrData.push('门店回收不合格瓶')
+					}
+				} else if (userInfo.provUser.userType == 3) {
+					// 门店端
+					if (this.current == '1') {
+						let arrmd = ['送气员领重瓶出库', '司机确认重瓶从门店出库']
+						arrData = arrmd
+					} else if (this.current == '2') {
+						arrData.push('司机确认空瓶装车')
+					} else {
+						arrData.push('司机回收不合格瓶')
+					}
+				} else if (userInfo.provUser.userType == 4) {
+					// 司机端
+					if (this.current == '1') {
+						let arrsj = ['门店确认重瓶卸货入库', '气站确认重瓶到达气站']
+						arrData = arrsj
+					} else if (this.current == '2') {
+						arrData.push('气站确认空瓶到达气站')
+					} else {
+						let arrsjbhg = ['门店回收不合格瓶', '气站回收不合格瓶']
+						arrData = arrsjbhg
+					}
+				} else if (userInfo.provUser.userType == 5) {
+					// 气站端
+					if (this.current == '1') {
+						arrData.push('司机确定重瓶从气站出库')
+					} else if (this.current == '2') {
+						arrData.push('')
+					} else {
+						arrData.push('司机回收不合格瓶')
+					}
+				}
+			} else {
+				// 送气员端
+				if (this.current == '1') {
+					arrData.push('门店确认未配送重瓶返库')
+				} else if (this.current == '2') {
+					arrData.push('门店回收空瓶')
+				} else {
+					arrData.push('门店回收不合格瓶')
+				}
+			}
+			this.columns = arrData
+		},
+		methods: {
+			selectStep(value) {
+				let flowId = ''
+				if (value == '门店确认未配送重瓶返库') {
+					flowId = '35'
+				} else if (value == '门店回收空瓶') {
+					flowId = '21'
+				} else if (value == '门店回收不合格瓶') {
+					flowId = 'md' + this.current
+				} else if (value == '送气员领重瓶出库') {
+					flowId = '25'
+				} else if (value == '司机确认重瓶从门店出库') {
+					flowId = '033'
+				} else if (value == '司机确认空瓶装车') {
+					flowId = '11'
+				} else if (value == '司机回收不合格瓶') {
+					flowId = 'sj' + this.current
+				} else if (value == '门店确认重瓶卸货入库') {
+					flowId = '31'
+				} else if (value == '气站确认重瓶到达气站') {
+					flowId = '016'
+				} else if (value == '气站确认空瓶到达气站') {
+					flowId = '13'
+				} else if (value == '门店回收不合格瓶') {
+					flowId = 'md' + this.current
+				} else if (value == '气站回收不合格瓶') {
+					flowId = 'qz' + this.current
+				}
+				uni.navigateTo({
+					url: '/pages/information/storePersonnel?flowId=' + flowId + '&flowName=' + value
+				});
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.step_title_item {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding: 30rpx;
+	}
+</style>

+ 175 - 19
pages/information/index.vue

@@ -8,15 +8,26 @@
 					@click="bottleClick"></u-tabs>
 			</view>
 		</view>
+		<view style="width: 100%;border-bottom: 1rpx solid #e4e7ed;">
+			<u-tabs :list="list4" :current="belowStandard" lineWidth="20" :scrollable="false" lineHeight="7"
+				:lineColor="`url(${lineBg}) 100% 100%`" @click="standardClick"
+				itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;" v-if="current == 3">
+			</u-tabs>
+		</view>
 		<!-- 在这里放置可滚动的内容 -->
-		<view style="width: calc(100% - 40rpx);padding: 0rpx 20rpx;" v-if="list.length > 0">
-			<view class="card_dinay" v-for="(item,index) in list" :key="index">
-				<view style="display: flex;align-items: center;">
-					<view class="item_current">{{index + 1}}</view>
-					<view class="item_title1">{{item.inner_code}}</view>
-				</view>
-				<view class="iconfont icon-yehuaqiping icon_cylinder" :style="{color:getColor()}"></view>
-			</view>
+		<view v-if="list.length > 0">
+			<u-swipe-action>
+				<u-swipe-action-item :name="index" :options="options" v-for="(item,index) in list" :key="index"
+					@click="event=>slideDelete(event,item)" :ref="'swipeAction' + index">
+					<view class="card_dinay">
+						<view style="display: flex;align-items: center;">
+							<view class="item_current">{{index + 1}}</view>
+							<view class="item_title1">{{item.inner_code}}</view>
+						</view>
+						<view class="iconfont icon-yehuaqiping icon_cylinder" :style="{color:getColor()}"></view>
+					</view>
+				</u-swipe-action-item>
+			</u-swipe-action>
 			<view style="width: 100%;height: 150rpx;"></view>
 		</view>
 		<view class="empty_information" v-else>
@@ -48,6 +59,7 @@
 		},
 		data() {
 			return {
+				lineBg: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAOCAYAAABdC15GAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFxSURBVHgBzZNRTsJAEIb/WTW+lpiY+FZPIDew3ABP4GJ8hxsI9zBpOYHeQDwBPQI+mRiRvpLojtPdYhCorQqF/6GdbGd2vvwzBXZcNAt4oj1ANeUoAT5iqkUjbEFLHNmhD1YPEvpZ3ghkGlVDCkc94/BmHMq998I5ONiY1ZBfpKAyuOtgAc5yOEDmYEWNh32BHF91sGHZHmwW4azciN9aQwnz3SJEgOmte+R2tdLprTYoa50mvuomlLpD4Y3oQZnov6D2RzCqI93bWOHaEmAGqQUyRBlZR1WfarcD/EJ2z8DtzDGvsMCwpm8XOCfDUsVOCYhiqRxI/CTQo4UOvjzO7Pow18vfywneuUHHUUxLn55lLw5JFpZ8bEUcY8oXdOLWiHLTxvoGpLqoUmy6dBT15o/ox3znpoycAmxUsiJTbs1cmxeVKp+0zmFIS7bGWiVghC7Vwse8jFKAX9eljh4ggKLLv7uaQvG9/F59Oo2SouxPu7OTCxN/s8wAAAAASUVORK5CYII=',
 				list: [],
 				bottleList: [{
 					name: '重瓶区',
@@ -65,6 +77,18 @@
 				loadingMore: true,
 				allotFlag: true,
 				disqualification: true,
+				options: [{
+					text: '删除',
+					style: {
+						backgroundColor: '#f56c6c'
+					}
+				}],
+				list4: [{
+					name: '超期',
+				}, {
+					name: '报废'
+				}],
+				belowStandard: 0,
 			}
 		},
 		mounted() {
@@ -78,14 +102,67 @@
 				this.allotFlag = true
 				this.disqualification = true
 			}
-			uni.$on('refresh', () => {
-				this.list = []
-				this.Pagination.PageIndex = 1
-				this.getList()
-			})
 			this.getList()
 		},
 		methods: {
+			// 刷新列表
+			refreshList() {
+				this.list = []
+				this.Pagination.PageIndex = 1
+				this.getList()
+			},
+			// 删除钢瓶
+			slideDelete(event, value) {
+				if (this.current == 2) {
+					let arr = []
+					if (event.index == 0) {
+						// 超期
+						arr.push(value.inner_code)
+						this.editSteelCylinder('extended', arr, event.name)
+					} else if (event.index == 1) {
+						// 报废
+						arr.push(value.inner_code)
+						this.editSteelCylinder('scrap', arr, event.name)
+					} else if (event.index == 2) {
+						this.delSteelCylinder(value.id, event.name)
+					}
+				} else if (this.current == 1) {
+					this.delSteelCylinder(value.id, event.name)
+				} else if (this.current == 3) {
+					this.delSteelCylinder(value.id, event.name)
+				}
+			},
+			// 修改钢瓶状态
+			editSteelCylinder(type, list, index) {
+				this.$api.put('/api/gas-cylinder-status', {
+					status: type,
+					innerCodeList: list,
+				}).then(res => {
+					if (res.code == 200) {
+						this.list.splice(index, 1);
+						uni.$u.toast(res.msg)
+						let idx = 'swipeAction' + index
+						this.$refs[idx][0].closeHandler()
+					} else {
+						uni.$u.toast(res.data.msg)
+					}
+				})
+			},
+			// 删除钢瓶
+			delSteelCylinder(id, index) {
+				this.$api.delete('/api/gas-cylinder-status', {
+					id: id,
+				}).then(res => {
+					if (res.code == 200) {
+						this.list.splice(index, 1);
+						uni.$u.toast(res.msg)
+						let idx = 'swipeAction' + index
+						this.$refs[idx][0].closeHandler()
+					} else {
+						uni.$u.toast(res.data.msg)
+					}
+				})
+			},
 			// 触底事件
 			bottomingEvent() {
 				if (!this.loadingMore) {
@@ -109,24 +186,71 @@
 				} else {
 					this.disqualification = true
 				}
+				if (value.index == 1) {
+					let arr = {
+						text: '超期',
+						style: {
+							backgroundColor: '#ff9900'
+						}
+					}
+					let arr1 = {
+						text: '报废',
+						style: {
+							backgroundColor: '#fab6b6'
+						}
+					}
+					this.options.unshift(arr1)
+					this.options.unshift(arr)
+				} else {
+					if (this.options[0].text == '超期') {
+						this.options.splice(0, 1)
+					}
+					if (this.options[0].text == '报废') {
+						this.options.splice(0, 1)
+					}
+				}
 				this.current = value.index + 1
 				this.Pagination.PageIndex = 1
 				this.list = []
 				this.getList()
 			},
+			// 超期/报废
+			standardClick(event) {
+				this.belowStandard = event.index
+
+				this.Pagination.PageIndex = 1
+				this.list = []
+				this.getList()
+			},
 			// 获取列表
 			getList() {
+				uni.showLoading({
+					mask: true,
+				});
 				this.loadingMore = true;
+				let state = ''
+				if (this.current == 3) {
+					if (this.belowStandard == 0) {
+						state = 'extended'
+					} else {
+						state = 'scrap'
+					}
+				} else {
+					state = this.current
+				}
 				this.$api.get('/api/gas-cylinder-status', {
 					page: this.Pagination.PageIndex,
 					pageSize: this.Pagination.PageSize,
-					status: this.current,
+					status: state,
 				}).then(res => {
 					if (res.code == 200) {
 						const data = res.data.list
 						if (this.loadingMore == true && data) {
 							this.list = this.list.concat(data);
 						}
+						this.list.forEach(item => {
+							item.show = false
+						})
 						if (data.length < this.Pagination.PageSize) {
 							this.loadingMore = true
 						} else {
@@ -134,6 +258,9 @@
 							this.Pagination.PageIndex++
 						}
 					}
+					uni.hideLoading();
+				}).catch(() => {
+					uni.hideLoading();
 				})
 			},
 			getColor() {
@@ -147,14 +274,43 @@
 			},
 			// 添加钢瓶
 			addCylinder() {
+				let statuNum = ''
+				let hintTitle = ''
+				if (this.current == 3) {
+					if (this.belowStandard == 0) {
+						statuNum = 'extended'
+						hintTitle = '添加超期瓶'
+					} else if (this.belowStandard == 1) {
+						statuNum = 'scrap'
+						hintTitle = '添加报废瓶'
+					}
+				} else {
+					if (this.current == 1) {
+						hintTitle = '添加重瓶'
+					} else if (this.current == 2) {
+						hintTitle = '添加空瓶'
+					}
+					statuNum = this.current
+				}
 				uni.navigateTo({
-					url: '/pages/information/cylinder?status=' + this.current
+					url: '/pages/information/cylinder?status=' + statuNum + '&title=' + hintTitle
 				});
 			},
 			// 调拨钢瓶
 			transferCylinders() {
+				let statuNum = ''
+				statuNum = this.current
+				if (this.current == 3) {
+					if (this.belowStandard == 0) {
+						statuNum = 'extended'
+					} else if (this.belowStandard == 1) {
+						statuNum = 'scrap'
+					}
+				} else {
+					statuNum = this.current
+				}
 				uni.navigateTo({
-					url: '/pages/information/transfer?status=' + this.current + '&allotFlag=' + this.allotFlag
+					url: '/pages/information/transfer?status=' + statuNum + '&allotFlag=' + this.allotFlag
 				});
 			}
 		}
@@ -186,18 +342,18 @@
 		align-items: center;
 		justify-content: space-between;
 		width: calc(100% - 40rpx);
-		margin-top: 20rpx;
-		border-bottom: 1rpx solid #d7d7d7;
+		border-bottom: 1rpx solid #e4e7ed;
 		padding: 30rpx 20rpx;
 	}
 
 	.item_current {
+		margin-left: 10px;
 		min-width: 40rpx;
 		color: #82848a;
 	}
 
 	.item_title1 {
-		margin-left: 10rpx;
+		margin-left: 5rpx;
 	}
 
 	.icon_cylinder {

+ 133 - 0
pages/information/recipient.vue

@@ -0,0 +1,133 @@
+<template>
+	<!-- 选择接收人 -->
+	<view>
+		<u-navbar title="选择接收人" autoBack placeholder></u-navbar>
+		<u-sticky :offset-top="navbarHeight()">
+			<view class="card_search_head">
+				<u-search v-model="cylinderNumber" shape="square" :showAction="false" placeholder="请输入用户名称"
+					borderColor="#e4e7ed" bgColor="#fff" @change="quickSearch"></u-search>
+			</view>
+		</u-sticky>
+		<view class="card_recipient" v-if="userData.length > 0">
+			<view class="card_user_item frame" v-for="(item,index) in userData" :key="index"
+				@click="selectRecipient(item)">
+				<u-icon name="account" size="28"></u-icon>
+				<view class="title_user">{{item.provUser.name}}</view>
+			</view>
+		</view>
+		<view style="margin-top: 30%;" v-else>
+			<u-empty mode="list" text="暂无用户"></u-empty>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				shopID: '',
+				shopName: '',
+				flowId: '',
+				flowName: '',
+				cylinderNumber: '',
+				userData: [],
+				Pagination: {
+					PageIndex: 1,
+					PageSize: 20,
+					Total: 0,
+				},
+				loadingMore: true,
+			}
+		},
+		onReachBottom() {
+			if (!this.loadingMore) {
+				this.getList()
+			}
+		},
+		onLoad(value) {
+			this.shopID = value.shopID
+			this.shopName = value.shopName
+			this.flowId = value.flowId
+			this.flowName = value.flowName
+			this.getList()
+		},
+		methods: {
+			getList() {
+				this.loadingMore = true
+				this.$api.get('/api/sys-user/opt-type', {
+					optType: this.flowId,
+					storeId: this.shopID,
+					name: this.cylinderNumber,
+					page: this.Pagination.PageIndex,
+					pageSize: this.Pagination.PageSize,
+				}).then(res => {
+					if (res.code == 200) {
+						this.Pagination.Total = res.data.count
+						const data = res.data.list
+						if (this.loadingMore == true && data) {
+							this.userData = this.userData.concat(data);
+						}
+						if (data.length < this.Pagination.PageSize) {
+							this.loadingMore = true
+						} else {
+							this.loadingMore = false
+							this.Pagination.PageIndex++
+						}
+					}
+				})
+			},
+			quickSearch() {
+				this.Pagination.PageIndex = 1
+				this.loadingMore = true
+				this.userData = []
+				this.getList()
+			},
+			// 选择接收人
+			selectRecipient(value) {
+				let arr = {
+					name: value.provUser.name,
+					userId: value.id,
+					shopID: this.shopID,
+					shopName: this.shopName,
+					flowId: this.flowId,
+					flowName: this.flowName,
+				}
+				uni.setStorageSync('returnData', JSON.stringify(arr));
+				uni.navigateBack({
+					delta: 3
+				});
+			},
+			navbarHeight() {
+				let systemInfo = uni.getSystemInfoSync();
+				let topHeight = 0
+				// #ifdef APP-PLUS
+				topHeight = 47 + systemInfo.statusBarHeight;
+				// #endif
+				// #ifdef MP
+				let height = systemInfo.platform == 'ios' ? 47 : 48;
+				topHeight = height + systemInfo.statusBarHeight
+				// #endif
+				/* 最后一步将px转为rpx */
+				return topHeight * (375 / systemInfo.windowWidth)
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.card_recipient {
+		display: flex;
+		flex-direction: column;
+	}
+
+	.card_user_item {
+		display: flex;
+		align-items: center;
+		padding: 30rpx;
+	}
+
+	.title_user {
+		margin-left: 10rpx;
+		font-size: 30rpx;
+	}
+</style>

+ 64 - 0
pages/information/storePersonnel.vue

@@ -0,0 +1,64 @@
+<template>
+	<!-- 选择门店 -->
+	<view>
+		<u-navbar title="选择门店" autoBack placeholder></u-navbar>
+		<view class="card_search_head">
+			<u-search v-model="cylinderNumber" shape="square" :showAction="false" placeholder="请输入门店名称"
+				borderColor="#e4e7ed" bgColor="#fff" @change="quickSearch"></u-search>
+		</view>
+		<view v-if="treeData.length > 0">
+			<tree-item v-for="item in treeData" :key="item.id" :item="item" @confirm="confirm"></tree-item>
+		</view>
+		<view style="margin-top: 30%;" v-else>
+			<u-empty mode="list" text="暂无门店"></u-empty>
+		</view>
+	</view>
+</template>
+
+<script>
+	import TreeItem from '@/components/TreeItem.vue';
+	export default {
+		components: {
+			TreeItem
+		},
+		data() {
+			return {
+				cylinderNumber: '',
+				flowId: '',
+				treeData: [],
+			}
+		},
+		onLoad(value) {
+			this.flowId = value.flowId
+			this.flowName = value.flowName
+			this.getList()
+		},
+		methods: {
+			getList() {
+				this.$api.get('/api/store/all2', {
+					name: this.cylinderNumber,
+				}).then(res => {
+					if (res.code == 200) {
+						if (res.data) {
+							this.treeData = res.data
+						}
+					}
+				})
+			},
+			confirm(value) {
+				uni.navigateTo({
+					url: '/pages/information/recipient?shopID=' + value.id + '&shopName=' + value.name +
+						'&flowId=' + this.flowId +
+						'&flowName=' + this.flowName
+				});
+			},
+			quickSearch() {
+				this.treeData = []
+				this.getList()
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+</style>

+ 408 - 56
pages/information/transfer.vue

@@ -3,43 +3,65 @@
 	<view>
 		<u-navbar title="钢瓶调拨" autoBack placeholder></u-navbar>
 		<view class="card_transfer">
-			<view style="display: flex;align-items: center;" @click="allotSweep" v-if="allotFlag">
+			<!-- <view style="display: flex;align-items: center;" @click="allotSweep" v-if="allotFlag">
 				<view class="tran_title">扫描调拨码</view>
 				<u-icon name="scan" size="30"></u-icon>
+			</view> -->
+			<view style="display: flex; align-items: center;">
+				<u-button style="margin-right: 30rpx;" color="#19be6b" type="success" text="选择接收人信息"
+					@click="selectiveFlow"></u-button>
+				<u-button type="success" color="#19be6b" text="扫描调拨码" icon="scan" @click="allotSweep"></u-button>
 			</view>
-			<view class="card_assigner_aaf" v-if="assignerFlag">
+			<!-- <view class="card_assigner_aaf" @click="selectDispatcher"> -->
+			<view class="card_assigner_aaf" :class="haveSelected ? 'greyMaskCard' : ''" v-if="assignerFlag">
 				<view class="step_title">流转步骤</view>
-				<view class="flow_step_title">{{ getflowStep(assignerData) }}</view>
-				<view class="card_avatar">
+				<view class="flow_step_title">{{ userList.flowName || '调拨流转步骤信息' }}</view>
+				<view class="step_title">接收人信息</view>
+				<view class="card_avatar" style="margin-top: 10rpx;">
 					<view style="display: flex;align-items: center;">
 						<image class="mine_image" src="../../static/portrait.png" mode=""></image>
 						<view class="card_user_title">
-							<view class="mine_phone">{{assignerData[2]}}</view>
-							<view class="mine_phone">{{assignerData[4]}}</view>
+							<view class="mine_phone">{{userList.name || '接收人姓名'}}</view>
+							<view class="mine_phone">{{userList.shopName || '接收人所属门店'}}</view>
 						</view>
 					</view>
-					<view>调拨人</view>
 				</view>
 			</view>
-			<view class="space_between cylinder_ccsfs">
-				<view class="tran_title">钢瓶编号</view>
-				<view style="display: flex;align-items: center;">
-					<view class="blue_titleil" @click="checkAll">全选</view>
-					<view class="blue_titleilred" @click="Inverse">反选</view>
-					<view class="card_right_num">
-						<span class="blue_title">选择前</span>
-						<view class="num_card">
-							<u--input class="input_taaf" v-model="codeValue" type="number" fontSize="12"
-								inputAlign="center" border="surround" @blur="howMany"></u--input>
+			<!-- <view class="white_card center_in">
+					<u-icon name="plus" size="40" color="#5ac725"></u-icon>
+				</view> -->
+			<!-- </view> -->
+			<view class="cylinder_ccsfs frame">
+				<view style="display: flex;align-items: center;justify-content: flex-end;margin-bottom: 10rpx;">
+					<view class="blue_titleil">总数: {{totality}}</view>
+					<view class="green_title">已选: {{checkedList.length}}</view>
+				</view>
+				<view class="space_between">
+					<view class="tran_title">单位内编号</view>
+					<view style="display: flex;flex-direction: column;">
+						<view style="display: flex;align-items: center;">
+							<view class="blue_titleil" @click="checkAll">全选</view>
+							<view class="blue_titleilred" @click="Inverse">反选</view>
+							<view class="card_right_num">
+								<span class="blue_title">选择前</span>
+								<view class="num_card">
+									<u--input class="input_taaf" v-model="codeValue" type="number" fontSize="12"
+										inputAlign="center" border="surround" @blur="howMany"></u--input>
+								</view>
+								<span class="blue_title">个</span>
+							</view>
 						</view>
-						<span class="blue_title">个</span>
 					</view>
 				</view>
+				<view style="margin: 10px 0px 0px 0px;">
+					<u-search v-model="cylinderNumber" shape="square" :showAction="false" placeholder="请输入单位内编码"
+						borderColor="#e4e7ed" bgColor="#fff" @change="quickSearch"></u-search>
+				</view>
 			</view>
 			<view style="width: 100%;" v-if="list.length > 0">
-				<u-checkbox-group v-model="checked" @change="checkboxChange">
+				<u-checkbox-group v-model="checkedList" @change="checkboxChange">
 					<view style="width: 100%;display: flex;flex-direction: column;">
-						<view class="card_dinay" v-for="(item,index) in list" :key="index">
+						<view class="card_dinay frame" v-for="(item,index) in list" :key="index">
 							<u-checkbox :name="item.inner_code" :checked="item.checked"></u-checkbox>
 							<view style="display: flex;align-items: center;margin-left: 20rpx;">
 								<view class="item_current">{{index + 1}}</view>
@@ -57,6 +79,39 @@
 		<view class="card_btn">
 			<u-button style="margin-bottom: 20rpx;" type="primary" @click="submit">提交</u-button>
 		</view>
+		<u-popup :show="assignerShow" mode="center" round="8" closeable @close="close">
+			<view style="margin-top: 60rpx;padding: 30rpx;width: 400rpx;">
+				<u-button type="primary" text="选择接收人信息" @click="selectiveFlow1"></u-button>
+				<u-button type="primary" text="扫描调拨码" icon="scan" style="margin-top: 20rpx;"
+					@click="allotSweep"></u-button>
+			</view>
+		</u-popup>
+		<u-popup :show="flowStepShow" :closeOnClickOverlay="false" mode="center" round="8" closeable @close="close">
+			<view style="padding: 30rpx;width: 600rpx;">
+				<view class="title_step">选择流转步骤<span>*</span></view>
+				<view class="card_recipient frame_recip" @click="flowStepFocus">
+					<span
+						:style="{color:flowStepData.title ? '#000000' : '#c8c9cc'}">{{flowStepData.title || '选择流转步骤'}}</span>
+					<u-icon name="arrow-down" size="18"></u-icon>
+				</view>
+				<view v-if="flowStepData.title">
+					<view class="title_step">选择门店<span>*</span></view>
+					<view class="card_recipient frame_recip" @click="shopFocus">
+						<span :style="{color:shopData.title ? '#000000' : '#c8c9cc'}">{{'选择门店'}}</span>
+						<u-icon name="arrow-down" size="18"></u-icon>
+					</view>
+				</view>
+				<view v-if="shopData.title">
+					<view class="title_step">选择接收人<span>*</span></view>
+					<view class="card_recipient frame_recip" @click="recipientFocus">
+						<span :style="{color:recipientData.title ? '#000000' : '#c8c9cc'}">{{'选择接收人'}}</span>
+						<u-icon name="arrow-down" size="18"></u-icon>
+					</view>
+				</view>
+				<u-button type="primary" text="确定" style="margin-top: 30rpx;" @click="allotSweep"></u-button>
+				<u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="flowCancel"></u-picker>
+			</view>
+		</u-popup>
 	</view>
 </template>
 
@@ -64,10 +119,11 @@
 	export default {
 		data() {
 			return {
-				checked: [],
+				totality: 0,
+				checkedList: [],
 				list: [],
 				current: null,
-				assignerFlag: false,
+				assignerFlag: true,
 				assignerData: [],
 				flowStep: [{
 					id: '13',
@@ -108,6 +164,74 @@
 				loadingMore: true,
 				codeValue: '',
 				allotFlag: true,
+				cylinderNumber: '',
+				assignerShow: false,
+
+				flowStepShow: false,
+				show: false,
+				columns: [],
+
+				userList: {
+					name: '',
+					userId: '',
+					shopID: '',
+					shopName: '',
+					flowId: '',
+					flowName: '',
+				},
+				// 1-扫码调拨 2-一键调拨
+				allotType: 2,
+				// 流转步骤
+				flowStepData: {
+					id: '',
+					title: '',
+				},
+				// 门店
+				shopData: {},
+				// 接收人
+				recipientData: {},
+			}
+		},
+		watch: {
+			list: {
+				handler: function(newUser, oldUser) {
+					if (newUser) {
+						let arr = newUser
+						for (let i = 0; i < arr.length; i++) {
+							let flag = this.checkedList.includes(arr[i].inner_code);
+							if (flag) {
+								arr[i].checked = true
+							}
+						}
+						this.list = arr
+					}
+				},
+				deep: true
+			}
+		},
+		computed: {
+			// 定义计算属性totalPrice
+			haveSelected: function() {
+				let arr = false
+				if (this.userList.userId) {
+					arr = false
+				} else {
+					arr = true
+				}
+				return arr
+			}
+		},
+		onShow() {
+			const data = uni.getStorageSync('returnData');
+			if (data) {
+				const userArr = JSON.parse(data)
+				this.userList = {
+					...userArr
+				}
+				console.log('携带的参数:', this.userList);
+				uni.removeStorage({
+					key: 'returnData'
+				});
 			}
 		},
 		onReachBottom() {
@@ -119,6 +243,8 @@
 			this.current = value.status
 			if (value.allotFlag == 'false') {
 				this.allotFlag = false
+			} else {
+				this.allotFlag = true
 			}
 		},
 		mounted() {
@@ -132,11 +258,15 @@
 					page: this.Pagination.PageIndex,
 					pageSize: this.Pagination.PageSize,
 					status: this.current,
+					inner_code: this.cylinderNumber,
 				}).then(res => {
 					if (res.code == 200) {
+						this.totality = res.data.count
 						const data = res.data.list
 						data.forEach(item => {
-							item.checked = false
+							if (!item.checked) {
+								item.checked = false
+							}
 						})
 						if (this.loadingMore == true && data) {
 							this.list = this.list.concat(data);
@@ -150,20 +280,166 @@
 					}
 				})
 			},
+			// 快捷搜索
+			quickSearch(value) {
+				const arrValue = this.$cache.getCache('checkedList')
+				if (arrValue) {
+					this.checkedList = this.$cache.getCache('checkedList')
+				}
+				this.list = []
+				this.getList()
+			},
+			// 选择调拨人、调拨步骤
+			selectDispatcher() {
+				this.assignerShow = true
+			},
+			// 选择接收人信息
+			selectiveFlow() {
+				this.allotType = 2
+				uni.navigateTo({
+					url: '/pages/information/flowStep?current=' + this.current
+				});
+			},
+			selectiveFlow1() {
+				this.assignerShow = false
+				this.flowStepShow = true
+			},
+			// 流转步骤
+			flowStepFocus() {
+				var userInfo = this.$cache.getCache('userInfo')
+				this.show = true
+				this.columns = []
+				let arrData = []
+				if (userInfo.provUser) {
+					if (userInfo.provUser.isorders == 0 && userInfo.provUser.userType == 3) {
+						// 送气员端
+						if (this.current == '1') {
+							arrData.push('门店确认未配送重瓶返库')
+						} else if (this.current == '2') {
+							arrData.push('门店回收空瓶')
+						} else {
+							arrData.push('门店回收不合格瓶')
+						}
+					} else if (userInfo.provUser.userType == 3) {
+						// 门店端
+						if (this.current == '1') {
+							let arrmd = ['送气员领重瓶出库', '司机确认重瓶从门店出库']
+							arrData = arrmd
+						} else if (this.current == '2') {
+							arrData.push('司机确认空瓶装车')
+						} else {
+							arrData.push('司机回收不合格瓶')
+						}
+					} else if (userInfo.provUser.userType == 4) {
+						// 司机端
+						if (this.current == '1') {
+							let arrsj = ['门店确认重瓶卸货入库', '气站确认重瓶到达气站']
+							arrData = arrsj
+						} else if (this.current == '2') {
+							arrData.push('气站确认空瓶到达气站')
+						} else {
+							let arrsjbhg = ['门店回收不合格瓶', '气站回收不合格瓶']
+							arrData = arrsjbhg
+						}
+					} else if (userInfo.provUser.userType == 5) {
+						// 气站端
+						if (this.current == '1') {
+							arrData.push('司机确定重瓶从气站出库')
+						} else if (this.current == '2') {
+							arrData.push('')
+						} else {
+							arrData.push('司机回收不合格瓶')
+						}
+					}
+				} else {
+					// 送气员端
+					if (this.current == '1') {
+						arrData.push('门店确认未配送重瓶返库')
+					} else if (this.current == '2') {
+						arrData.push('门店回收空瓶')
+					} else {
+						arrData.push('门店回收不合格瓶')
+					}
+				}
+				this.columns.push(arrData)
+			},
+			// 确定流转步骤
+			confirm(event) {
+				if (event.value[0] == '门店确认未配送重瓶返库') {
+					this.flowStepData.id = '35'
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '门店回收空瓶') {
+					this.flowStepData.id = '21'
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '门店回收不合格瓶') {
+					this.flowStepData.id = this.current
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '送气员领重瓶出库') {
+					this.flowStepData.id = '25'
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '司机确认重瓶从门店出库') {
+					this.flowStepData.id = '033'
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '司机确认空瓶装车') {
+					this.flowStepData.id = '11'
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '司机回收不合格瓶') {
+					this.flowStepData.id = this.current
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '门店确认重瓶卸货入库') {
+					this.flowStepData.id = '31'
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '气站确认重瓶到达气站') {
+					this.flowStepData.id = '016'
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '气站确认空瓶到达气站') {
+					this.flowStepData.id = '13'
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '门店回收不合格瓶') {
+					this.flowStepData.id = this.current
+					this.flowStepData.title = event.value[0]
+				} else if (event.value[0] == '气站回收不合格瓶') {
+					this.flowStepData.id = this.current
+					this.flowStepData.title = event.value[0]
+				}
+				this.show = false
+				console.log(this.flowStepData, 25)
+			},
+			// 选择门店
+			shopFocus() {
+				uni.navigateTo({
+					url: '/pages/information/flowStep'
+				});
+			},
+			// 选择接收人
+			recipientFocus() {
+				uni.navigateTo({
+					url: '/pages/information/storePersonnel'
+				});
+			},
+			close() {
+				this.assignerShow = false
+				this.flowStepShow = false
+			},
+			// 关闭选择流转步骤
+			flowCancel() {
+				this.show = false
+			},
 			// 调拨提交
 			submit() {
 				if (this.allotFlag) {
-					if (this.assignerData.length > 0) {
-						if (this.checked.length > 0) {
+					if (this.userList.userId) {
+						if (this.checkedList.length > 0) {
 							uni.showLoading({
 								mask: true,
 							});
 							this.$api.post('/api/gas-cylinder-allot', {
-								optType: this.assignerData[0],
-								acceptUserId: Number(this.assignerData[1]),
-								acceptCompanyId: Number(this.assignerData[3]),
-								innerCodeList: this.checked,
-								gasCylinderStatus: Number(this.current),
+								optType: this.userList.flowId,
+								acceptUserId: Number(this.userList.userId),
+								acceptCompanyId: Number(this.userList.shopID),
+								innerCodeList: this.checkedList,
+								gasCylinderStatus: this.current,
+								allotType: this.allotType,
 							}).then(res => {
 								uni.hideLoading();
 								if (res.code == 200) {
@@ -171,7 +447,7 @@
 									this.Pagination.PageIndex = 1
 									this.list = []
 									this.getList()
-									this.checked = []
+									this.checkedList = []
 									uni.$u.toast(res.msg)
 									this.$forceUpdate()
 									setTimeout(() => {
@@ -189,14 +465,14 @@
 							uni.$u.toast('请先选择调拨钢瓶')
 						}
 					} else {
-						uni.$u.toast('请先扫描调拨码')
+						uni.$u.toast('请选择接收人')
 					}
 				} else {
 					// 空瓶充装
-					if (this.checked.length > 0) {
+					if (this.checkedList.length > 0) {
 						// 操作记录、流转步骤接口
 						const param = {
-							chipUidList: this.checked,
+							chipUidList: this.checkedList,
 							optType: '14',
 						}
 						uni.showLoading({
@@ -207,7 +483,7 @@
 								this.Pagination.PageIndex = 1
 								this.list = []
 								this.getList()
-								this.checked = []
+								this.checkedList = []
 								uni.$u.toast('操作成功')
 							} else {
 								uni.$u.toast(res.data.msg)
@@ -223,6 +499,7 @@
 			},
 			// 扫一扫
 			allotSweep() {
+				this.allotType = 1
 				// 允许从相机和相册扫码
 				uni.scanCode({
 					scanType: ['qrCode'],
@@ -252,6 +529,14 @@
 								}
 								const arr = getCharactersBefore1(url, '?')
 								this.assignerData = arr.split(',')
+								this.userList.flowId = this.assignerData[0]
+								this.userList.userId = this.assignerData[1]
+								this.userList.name = this.assignerData[2]
+								this.userList.shopID = this.assignerData[3]
+								this.userList.shopName = this.assignerData[4]
+								this.userList.flowName = this.assignerData[5]
+							} else {
+								uni.$u.toast('请扫描调拨码')
 							}
 						} else {
 							console.log('请重新扫描');
@@ -275,53 +560,58 @@
 			},
 			// 选择钢瓶编号
 			checkboxChange(value) {
-				setMatchingIds(this.list, value)
-
-				function setMatchingIds(arr1, arr2) {
-					arr1.forEach(item => {
-						item.checked = arr2.some(otherItem => otherItem === item.inner_code);
-					});
+				for (let i = 0; i < this.list.length; i++) {
+					let flag = value.includes(this.list[i].inner_code);
+					if (flag) {
+						this.list[i].checked = true
+					} else {
+						this.list[i].checked = false
+					}
 				}
-				this.checked = value
+				this.checkedList = this.checkedList.concat(value);
+				this.$cache.setCache('checkedList', this.checkedList)
 			},
 			// 输入第几个
 			howMany(value) {
-				this.checked = []
+				// this.checkedList = []
 				this.list.forEach((item, index) => {
 					if (index < value) {
 						item.checked = true
-						this.checked.push(item.inner_code)
+						this.checkedList.push(item.inner_code)
 					} else {
 						item.checked = false
 					}
 				})
+				this.$cache.setCache('checkedList', this.checkedList)
 			},
 			// 全选
 			checkAll() {
 				this.codeValue = ''
-				this.checked = []
+				this.checkedList = []
 				for (let i = 0; i < this.list.length; i++) {
 					this.$set(this.list[i], 'checked', true)
 				}
 				this.list.forEach(item => {
 					if (item.checked) {
-						this.checked.push(item.inner_code)
+						this.checkedList.push(item.inner_code)
 					}
 				})
+				this.$cache.setCache('checkedList', this.checkedList)
 			},
 			// 反选
 			Inverse() {
 				this.codeValue = ''
-				this.checked = []
+				this.checkedList = []
 				for (let i = 0; i < this.list.length; i++) {
 					let flag = this.list[i].checked;
 					this.$set(this.list[i], 'checked', !flag)
 				}
 				this.list.forEach(item => {
 					if (item.checked) {
-						this.checked.push(item.inner_code)
+						this.checkedList.push(item.inner_code)
 					}
 				})
+				this.$cache.setCache('checkedList', this.checkedList)
 			}
 		}
 	}
@@ -356,30 +646,46 @@
 	}
 
 	.card_assigner_aaf {
-		margin-top: 20rpx;
-		padding: 30rpx;
+		position: relative;
 		border: 1rpx dashed #d7d7d7;
+		margin-top: 20rpx;
+		padding: 20rpx;
+		background-color: #f4f4f5;
+	}
+
+	.greyMaskCard {
+		opacity: 0.5;
+	}
+
+	.white_card {
+		position: absolute;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		font-size: 60rpx;
 	}
 
 	.step_title {
-		font-size: 34rpx;
+		font-size: 30rpx;
 		font-weight: 600;
 	}
 
 	.flow_step_title {
-		font-size: 30rpx;
-		margin: 20rpx 0rpx;
+		font-size: 28rpx;
+		margin: 0rpx 0rpx 10rpx 0rpx;
 	}
 
 	.tran_title {
-		font-size: 36rpx;
+		padding-left: 10rpx;
+		font-size: 32rpx;
 		font-weight: 600;
 	}
 
 	.cylinder_ccsfs {
 		margin-top: 30rpx;
 		padding-bottom: 20rpx;
-		border-bottom: 1rpx solid #d7d7d7;
+		// border-bottom: 1rpx solid #d7d7d7;
 	}
 
 	.blue_titleil {
@@ -399,6 +705,11 @@
 		color: #2979ff;
 	}
 
+	.green_title {
+		font-size: 30rpx;
+		color: #5ac725;
+	}
+
 	.card_right_num {
 		margin-left: 30rpx;
 		display: flex;
@@ -418,7 +729,7 @@
 		display: flex;
 		align-items: center;
 		width: calc(100% - 40rpx);
-		border-bottom: 1rpx solid #d7d7d7;
+		// border-bottom: 1rpx solid #d7d7d7;
 		padding: 30rpx 20rpx;
 	}
 
@@ -443,4 +754,45 @@
 		padding-bottom: constant(safe-area-inset-bottom); //兼容 IOS<11.2
 		padding-bottom: env(safe-area-inset-bottom); //兼容 IOS>11.2
 	}
+
+	.title_step {
+		margin: 15rpx 0px;
+		font-size: 30rpx;
+
+		span {
+			color: red;
+		}
+	}
+
+	.card_recipient {
+		display: flex;
+		padding: 6px 9px;
+		border-radius: 4px;
+		color: #c8c9cc;
+
+		span {
+			width: 100%;
+			font-size: 30rpx;
+		}
+	}
+
+	// 伪元素1rpx边框
+	.frame_recip {
+		position: relative; //重要
+	}
+
+	.frame_recip::after {
+		position: absolute;
+		content: '';
+		border: 4rpx solid #e4e7ed;
+		border-radius: 8rpx;
+		width: 200%;
+		height: 200%;
+		top: 0;
+		left: 0;
+		transform: scale(0.5);
+		transform-origin: 0 0;
+		pointer-events: none;
+		/* 使伪元素不会阻止鼠标事件 */
+	}
 </style>

+ 179 - 0
pages/information/transferDetails.vue

@@ -0,0 +1,179 @@
+<template>
+	<!-- 调拨详情 -->
+	<view>
+		<u-navbar :title="transferTitle" autoBack placeholder></u-navbar>
+		<view style="padding: 0rpx 30rpx;">
+			<view class="card_transfer_details" v-if="type == 0">
+				<view class="step_title">接收人信息</view>
+				<view class="card_avatar" style="margin-top: 10rpx;">
+					<view style="display: flex;align-items: center;">
+						<image class="mine_image" src="../../static/portrait.png" mode=""></image>
+						<view class="card_user_title">
+							<view class="mine_phone">{{userList.acceptUser.nickName || '接收人姓名'}}</view>
+							<view class="mine_phone">{{userList.acceptCompany.name || '接收人所属门店'}}</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="card_transfer_details" v-else>
+				<view class="step_title">调拨人信息</view>
+				<view class="card_avatar" style="margin-top: 10rpx;">
+					<view style="display: flex;align-items: center;">
+						<image class="mine_image" src="../../static/portrait.png" mode=""></image>
+						<view class="card_user_title">
+							<view class="mine_phone">{{userList.allotUser.nickName || '调拨人姓名'}}</view>
+							<view class="mine_phone">{{userList.allotCompany.name || '调拨人所属门店'}}</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view style="margin-top: 20rpx;padding-bottom: 20rpx;" class="space_between frame">
+				<view class="title_code_a">钢瓶编号</view>
+				<view class="num_code">总数: {{userList.innerCodeList.length}}</view>
+			</view>
+			<view style="display: flex;flex-direction: column;">
+				<view class="item_card_tran frame" v-for="(item,index) in userList.innerCodeList">
+					<view style="width: 60rpx;margin-right: 10rpx;text-align: center;">{{index + 1}}</view>
+					<span style="font-weight: 600;">{{item}}</span>
+				</view>
+			</view>
+		</view>
+		<view style="width: 100%;height: 120rpx;"></view>
+		<view class="btn_transfer_details" v-if="type == 1">
+			<view style="flex: 1;">
+				<u-button style="width: 90%;" type="error" @click="cancelAllocation">取消</u-button>
+			</view>
+			<view style="flex: 1;">
+				<u-button style="width: 90%;" type="primary" @click="submit">确定</u-button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		flowStep
+	} from '@/static/js/blockSort.js'
+	export default {
+		data() {
+			return {
+				userList: {},
+				type: null,
+				transferTitle: '',
+			}
+		},
+		onLoad(value) {
+			this.type = Number(value.type)
+			const data = uni.getStorageSync('transferData');
+			if (data) {
+				const userArr = JSON.parse(data)
+				let array = flowStep()
+				const filteredArray = array.filter(item => item.value === userArr.optType)
+				if (filteredArray.length > 0) {
+					this.transferTitle = filteredArray[0].label
+				} else {
+					this.transferTitle = '调拨详情'
+				}
+				this.userList = userArr
+			}
+		},
+		methods: {
+			cancelAllocation() {
+				this.$api.post('/api/gas-cylinder-allot/cancel', {
+					id: this.userList.id,
+				}).then(res => {
+					if (res.code == 200) {
+						uni.navigateBack({
+							delta: 1
+						});
+					} else {
+						uni.$u.toast(res.data.msg)
+					}
+				})
+			},
+			submit() {
+				this.$api.post('/api/gas-cylinder-allot/submit', {
+					id: this.userList.id,
+					optType: this.userList.optType,
+					allotUserId: this.userList.allotUserId,
+					acceptUserId: this.userList.acceptUserId,
+					allotCompanyId: this.userList.allotCompanyId,
+					acceptCompanyId: this.userList.acceptCompanyId,
+					innerCodeList: this.userList.innerCodeList,
+				}).then(res => {
+					if (res.code == 200) {
+						uni.navigateBack({
+							delta: 1
+						});
+					} else {
+						uni.$u.toast(res.data.msg)
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.step_title {
+		font-size: 30rpx;
+		font-weight: 600;
+	}
+
+	.card_avatar {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+	}
+
+	.mine_image {
+		width: 100rpx;
+		height: 100rpx;
+		border-radius: 50%;
+	}
+
+	.card_user_title {
+		display: flex;
+		flex-direction: column;
+		align-items: flex-start;
+	}
+
+	.mine_phone {
+		margin-left: 20rpx;
+		font-size: 30rpx;
+	}
+
+	.card_transfer_details {
+		border: 1rpx dashed #d7d7d7;
+		margin-top: 20rpx;
+		padding: 20rpx;
+		background-color: #f4f4f5;
+	}
+
+	.item_card_tran {
+		display: flex;
+		align-items: center;
+		padding: 30rpx 30rpx 30rpx 0rpx;
+	}
+
+	.title_code_a {
+		font-size: 32rpx;
+		font-weight: 600;
+	}
+
+	.num_code {
+		color: #2979ff;
+		font-size: 28rpx;
+	}
+
+	.btn_transfer_details {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		right: 0;
+		background-color: #fff;
+		display: flex;
+		align-items: center;
+		padding: 20rpx 0rpx;
+	}
+</style>

+ 115 - 15
pages/information/transferRecord.vue

@@ -2,9 +2,21 @@
 	<!-- 调拨记录 -->
 	<view>
 		<u-navbar title="调拨记录" autoBack placeholder></u-navbar>
+		<view class="tabs_card_bg">
+			<u-tabs :list="list4" :current="belowStandard" lineWidth="20" :scrollable="false" lineHeight="7"
+				:lineColor="`url(${lineBg}) 100% 100%`" @click="standardClick"
+				itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;">
+			</u-tabs>
+			<u-tabs :current="tabNumber" :list="bottleList" lineWidth="40" :scrollable="false" @click="bottleClick"
+				itemStyle="padding: 15rpx;"></u-tabs>
+		</view>
 		<view style="padding-bottom: 30rpx;" v-if="list.length > 0">
-			<view class="transfer_card_item" v-for="(item,index) in list" :key="index">
+			<view class="transfer_card_item" v-for="(item,index) in list" :key="index" @click="recordParticulars(item)">
 				<view class="title_status" :style="{color:getColor(item.status)}">{{ getstatus(item.status) }}</view>
+				<view class="item_title_record1" v-if="getFlowStep(item.optType)">
+					<span>流转步骤:</span>
+					{{getFlowStep(item.optType)}}
+				</view>
 				<view class="item_title_record1">
 					<span>调拨人:</span>
 					{{item.allotUser.nickName}}
@@ -18,8 +30,8 @@
 					{{item.createdAt}}
 				</view>
 				<view class="item_title_record">
-					<span>钢瓶编号:</span>
-					<span class="examine_title" @click="clickToView(item)">点击查看</span>
+					<span>单位内编号:</span>
+					<span class="examine_title" @click.stop="clickToView(item)">点击查看</span>
 				</view>
 			</view>
 		</view>
@@ -27,11 +39,16 @@
 			<u-empty mode="list" text="暂无调拨记录"></u-empty>
 		</view>
 		<u-popup :show="innerCodeShow" round="10" @close="close">
-			<view>
-				<view class="headlinetitle">钢瓶编号</view>
-				<view class="card_inner_item" v-for="(item,index) in innerCodeData" :key="index">
-					<view class="title_index_item">{{index + 1}}</view>
-					<view>{{item}}</view>
+			<view style="display: flex;flex-direction: column;touch-action: none;">
+				<view class="headlinetitle">
+					<view class="title_head_code">单位内编号</view>
+					<span>总数: {{innerCodeData.length}}</span>
+				</view>
+				<view style="max-height: 800rpx;overflow-y: auto;overscroll-behavior: none;">
+					<view class="card_inner_item" v-for="(item,index) in innerCodeData" :key="index">
+						<view class="title_index_item">{{index + 1}}</view>
+						<view>{{item}}</view>
+					</view>
 				</view>
 			</view>
 		</u-popup>
@@ -39,9 +56,33 @@
 </template>
 
 <script>
+	import {
+		flowStep
+	} from '@/static/js/blockSort.js'
 	export default {
 		data() {
 			return {
+				lineBg: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAOCAYAAABdC15GAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFxSURBVHgBzZNRTsJAEIb/WTW+lpiY+FZPIDew3ABP4GJ8hxsI9zBpOYHeQDwBPQI+mRiRvpLojtPdYhCorQqF/6GdbGd2vvwzBXZcNAt4oj1ANeUoAT5iqkUjbEFLHNmhD1YPEvpZ3ghkGlVDCkc94/BmHMq998I5ONiY1ZBfpKAyuOtgAc5yOEDmYEWNh32BHF91sGHZHmwW4azciN9aQwnz3SJEgOmte+R2tdLprTYoa50mvuomlLpD4Y3oQZnov6D2RzCqI93bWOHaEmAGqQUyRBlZR1WfarcD/EJ2z8DtzDGvsMCwpm8XOCfDUsVOCYhiqRxI/CTQo4UOvjzO7Pow18vfywneuUHHUUxLn55lLw5JFpZ8bEUcY8oXdOLWiHLTxvoGpLqoUmy6dBT15o/ox3znpoycAmxUsiJTbs1cmxeVKp+0zmFIS7bGWiVghC7Vwse8jFKAX9eljh4ggKLLv7uaQvG9/F59Oo2SouxPu7OTCxN/s8wAAAAASUVORK5CYII=',
+				list4: [{
+					name: '我调拨的',
+				}, {
+					name: '我接收的'
+				}],
+				belowStandard: 0,
+				bottleList: [{
+					name: '全部',
+				}, {
+					name: '调拨中',
+				}, {
+					name: '已完成'
+				}, {
+					name: '已取消'
+				}, {
+					name: '超时取消'
+				}],
+				tabNumber: 0,
+				// allot-我调拨的 accept-我签收的
+				myType: 'allot',
 				list: [],
 				Pagination: {
 					PageIndex: 1,
@@ -50,7 +91,7 @@
 				},
 				loadingMore: true,
 				innerCodeShow: false,
-				innerCodeData: []
+				innerCodeData: [],
 			}
 		},
 		onReachBottom() {
@@ -58,13 +99,24 @@
 				this.getList()
 			}
 		},
-		mounted() {
+		onShow() {
+			this.Pagination.PageIndex = 1
+			this.list = []
 			this.getList()
 		},
 		methods: {
 			getList() {
+				uni.showLoading({
+					mask: true,
+				});
+				let statusNum = ''
+				if (this.tabNumber != 0) {
+					statusNum = this.tabNumber
+				}
 				this.loadingMore = true
 				this.$api.get('/api/gas-cylinder-allot', {
+					my: this.myType,
+					status: statusNum,
 					page: this.Pagination.PageIndex,
 					pageSize: this.Pagination.PageSize,
 				}).then(res => {
@@ -80,6 +132,9 @@
 							this.Pagination.PageIndex++
 						}
 					}
+					uni.hideLoading();
+				}).catch(() => {
+					uni.hideLoading();
 				})
 			},
 			// 点击查看
@@ -91,13 +146,40 @@
 				if (value == 1) {
 					return '调拨中'
 				} else if (value == 2) {
-					return '调拨完成'
+					return '完成'
 				} else if (value == 3) {
-					return '取消调拨'
+					return '取消'
 				} else if (value == 4) {
 					return '超时取消'
 				}
 			},
+			// 调拨状态
+			bottleClick(event) {
+				this.tabNumber = event.index
+
+				this.Pagination.PageIndex = 1
+				this.list = []
+				this.getList()
+			},
+			// 我调拨的/我接收的
+			standardClick(event) {
+				this.belowStandard = event.index
+				if (event.index == 0) {
+					this.myType = 'allot'
+				} else {
+					this.myType = 'accept'
+				}
+				this.Pagination.PageIndex = 1
+				this.list = []
+				this.getList()
+			},
+			// 详情
+			recordParticulars(value) {
+				uni.setStorageSync('transferData', JSON.stringify(value));
+				uni.navigateTo({
+					url: '/pages/information/transferDetails?type=' + this.belowStandard
+				});
+			},
 			getColor(value) {
 				if (value == 1) {
 					return '#3c9cff'
@@ -109,6 +191,13 @@
 					return '#909399'
 				}
 			},
+			getFlowStep(value) {
+				let array = flowStep()
+				const filteredArray = array.filter(item => item.value === value)
+				if(filteredArray.length > 0){
+					return filteredArray[0].label
+				}
+			},
 			close() {
 				this.innerCodeShow = false
 			}
@@ -121,6 +210,10 @@
 		background-color: #f4f4f5;
 	}
 
+	.tabs_card_bg {
+		background-color: #fff;
+	}
+
 	.transfer_card_item {
 		position: relative;
 		background-color: #fff;
@@ -174,12 +267,19 @@
 
 	.headlinetitle {
 		display: flex;
+		justify-content: space-between;
 		align-items: center;
-		justify-content: center;
-		padding: 20rpx;
+		padding: 30rpx;
+		border-bottom: 1rpx solid #d7d7d7;
+
+		span {
+			color: #2979ff;
+		}
+	}
+
+	.title_head_code {
 		font-size: 34rpx;
 		font-weight: 600;
-		border-bottom: 1rpx solid #d7d7d7;
 	}
 
 	.card_inner_item {

+ 20 - 1
pages/mine/index.vue

@@ -16,7 +16,7 @@
 			<view class="option_title">个人资料</view>
 			<u-icon name="arrow-right" size="20"></u-icon>
 		</view>
-		<view class="space_between card_mine_option" @click="goErweima">
+		<view class="space_between card_mine_option" v-if="getQrcode() == true" @click="goErweima">
 			<view class="option_title">我的二维码</view>
 			<span class="iconfont icon-erweima"></span>
 		</view>
@@ -44,6 +44,25 @@
 		},
 		mounted() {},
 		methods: {
+			// 判断是否是门店气站
+			getQrcode() {
+				var userInfo = this.$cache.getCache('userInfo')
+				let flag = false
+				if (userInfo.provUser) {
+					if (userInfo.provUser.isorders == 0 && userInfo.provUser.userType == 3) {
+						flag = false
+					} else if (userInfo.provUser.userType == 3) {
+						flag = true
+					} else if (userInfo.provUser.userType == 4) {
+						flag = false
+					} else if (userInfo.provUser.userType == 5) {
+						flag = true
+					}
+				} else {
+					flag = false
+				}
+				return flag
+			},
 			//微信授权
 			set_is_login(val) {
 				let _this = this;

+ 7 - 8
pages/mine/personal.vue

@@ -3,7 +3,7 @@
 	<view>
 		<u-navbar title="个人资料" autoBack placeholder></u-navbar>
 		<view class="card_form">
-			<x-form ref="personage" :userType="userType" :list="list" :model="model" :rules="rules" @confirm="confirm"
+			<x-form ref="personage" :userType="userType" :list="list" :model="model" :rules="rules"
 				@clientele="clientele"></x-form>
 		</view>
 	</view>
@@ -135,8 +135,10 @@
 				userType: 5,
 			}
 		},
-		mounted() {
+		onLoad() {
 			this.getLayout()
+		},
+		mounted() {
 			this.getUser()
 		},
 		methods: {
@@ -155,11 +157,9 @@
 							value.visible = false
 						}
 					} else {
-						if (value.field == 'imgUrl' || value.field == 'imgUrls' ||
-							value.field == 'line' || value.field == 'lines' || value
-							.field == 'certificateNo' ||
-							value.field == 'issueAuthority' || value.field ==
-							'issueAuthority' || value.field == 'remarks') {
+						if (['imgUrl', 'imgUrls', 'line', 'lines', 'certificateNo', 'issueAuthority',
+								'issueAuthority', 'remarks',
+							].includes(value.field)) {
 							value.visible = true
 						} else {
 							value.visible = false
@@ -256,7 +256,6 @@
 					mask: true,
 				});
 				uni.hideLoading();
-				console.log(param, this.model, 2667)
 				this.$api.put('/api/sys-user', param).then(res => {
 					if (res.code == 200) {
 						this.getUser()

+ 20 - 6
pages/order/cannibalize.vue

@@ -17,7 +17,7 @@
 						</view>
 					</view>
 				</view>
-				<view class="subheading_title1">钢瓶编号</view>
+				<view class="subheading_title1">单位内编号</view>
 				<view class="card_innercode" v-for="(item1,index1) in transferList.innerCodeList" :key="index1">
 					<view style="color: #82848a;">{{ index1 + 1 }}</view>
 					<view class="title_innerCode">{{ item1 }}</view>
@@ -26,10 +26,10 @@
 		</view>
 		<view class="btn_cannibalize" v-if="transferFlag">
 			<view style="flex: 1;">
-				<u-button style="width: 80%;" type="error" @click="cancelAllocation">取消</u-button>
+				<u-button style="width: 90%;" type="error" @click="cancelAllocation">取消</u-button>
 			</view>
 			<view style="flex: 1;">
-				<u-button style="width: 80%;" type="primary" @click="submit">确定</u-button>
+				<u-button style="width: 90%;" type="primary" @click="submit">确定</u-button>
 			</view>
 		</view>
 	</view>
@@ -44,8 +44,17 @@
 				headTile: '',
 				transferList: {},
 				transferFlag: false,
+				timer: null,
 			}
 		},
+		onUnload() {
+			clearTimeout(this.timer)
+			this.timer = null
+		},
+		beforeDestroy() {
+			clearTimeout(this.timer)
+			this.timer = null
+		},
 		onLoad(value) {
 			this.orderId = value.type
 			this.headTile = value.title
@@ -56,7 +65,7 @@
 			const qr = new UQRCode();
 			let numarr = 'dialCode?' + this.orderId + ',' + userInfo.id + ',' + userInfo.nickName + ',' + userInfo.dept
 				.id + ',' +
-				userInfo.dept.name + ','
+				userInfo.dept.name + ',' + this.headTile
 			qr.data = numarr;
 			qr.size = 140;
 			qr.make();
@@ -73,9 +82,12 @@
 						this.transferFlag = true
 						this.transferList = res.data
 					} else {
-						setTimeout(() => {
+						this.timer = setTimeout(() => {
 							this.getallot()
-						}, 60000);
+						}, 6000);
+						// setTimeout(() => {
+						// 	this.getallot()
+						// }, 60000);
 					}
 				})
 			},
@@ -127,6 +139,8 @@
 								});
 							}
 						}, 1500)
+					} else {
+						uni.$u.toast(res.data.msg)
 					}
 					uni.hideLoading();
 				}).catch(() => {

+ 1 - 1
pages/order/completionTasks.vue

@@ -147,7 +147,7 @@
 							arrimage.push(arr)
 						})
 						this.$refs.customer.fileList1 = arrimage
-						this.model.name = param.principalName
+						this.model.name = param.name
 						this.model.principalPhone = param.principalPhone
 						this.model.address = param.address
 						this.model.addressImg = res.data.addressImg

+ 2 - 2
pages/order/cylinderTransfer.vue

@@ -2,10 +2,10 @@
 	<view>
 		<u-navbar title="钢瓶调拨" autoBack placeholder></u-navbar>
 		<view style="width: 100%;">
-			<view class="transfer_cardil" @click="transferRecord">
+			<!-- <view class="transfer_cardil" @click="transferRecord">
 				<view class="title_eeeeiul">调拨记录</view>
 				<u-icon name="file-text" size="30"></u-icon>
-			</view>
+			</view> -->
 			<view class="transfer_card" v-for="(item,index) in dataList" :key="index" @click="getAllot(item)">
 				<view class="title_eeee">{{item.title}}</view>
 				<u-icon name="arrow-right"></u-icon>

+ 100 - 30
pages/order/delivery.vue

@@ -12,7 +12,7 @@
 					</view>
 				</view>
 			</view>
-			<view class="details_title">钢瓶编号 <span class="line_title">*</span></view>
+			<view class="details_title">单位内编号 <span class="line_title">*</span></view>
 			<view style="display: flex;align-items: center;" v-if="selectiveType != 'inspect'">
 				<u-input border="surround" placeholder="点击输入" v-model="frequencyCoding"></u-input>
 				<view class="btn_add_card">
@@ -56,7 +56,7 @@
 					</view>
 				</view>
 				<view class="card_empty" v-else>
-					<u-empty mode="list" text="请先扫描添加钢瓶编号"></u-empty>
+					<u-empty mode="list" text="请先扫描添加单位内编号"></u-empty>
 				</view>
 			</view>
 			<view class="card_examine" v-else>
@@ -87,7 +87,7 @@
 		</view>
 		<u-popup :show="show" :round="10" :closeOnClickOverlay="false" mode="center" @close="close">
 			<view class="card_coding_scan">
-				<view class="title_coding">钢瓶编号</view>
+				<view class="title_coding">单位内编号</view>
 				<view class="coding_title1">{{scanCoding}}</view>
 				<view style="display: flex;align-items: center;">
 					<u-icon color="#19be6b" size="30" name="checkmark-circle-fill"></u-icon>
@@ -137,7 +137,8 @@
 				show: false,
 				scanCoding: '',
 				storeFlag: false,
-				storeData: []
+				storeData: [],
+				scanFlag: true,
 			}
 		},
 		onUnload() {
@@ -196,7 +197,7 @@
 							uni.hideLoading();
 						})
 					} else {
-						uni.$u.toast('请先扫钢瓶编号')
+						uni.$u.toast('请先扫单位内编号')
 					}
 				} else if (this.selectiveType == 'inspect') {
 					if (this.frequencyCoding) {
@@ -214,6 +215,14 @@
 						}).then(res => {
 							if (res.code == 200) {
 								this.frequencyCoding = ''
+								for (const k in this.ruleForm) {
+									// 循环赋值
+									this.ruleForm[k] = 0
+									if (['deadWeight', 'color', 'pipePressure', 'fillWeight', 'repeatWeight']
+										.includes(k)) {
+										this.ruleForm[k] = ''
+									}
+								}
 								uni.$u.toast('操作成功')
 							}
 							uni.hideLoading();
@@ -221,7 +230,7 @@
 							uni.hideLoading();
 						})
 					} else {
-						uni.$u.toast('请先扫钢瓶编号')
+						uni.$u.toast('请先扫单位内编号')
 					}
 				} else {
 					if (this.list.length > 0) {
@@ -250,7 +259,7 @@
 							uni.hideLoading();
 						})
 					} else {
-						uni.$u.toast('请先扫钢瓶编号')
+						uni.$u.toast('请先扫单位内编号')
 					}
 				}
 			},
@@ -262,20 +271,47 @@
 			// 输入钢瓶编号添加
 			addCode() {
 				if (this.frequencyCoding) {
-					this.list.push(this.frequencyCoding)
-					this.list = Array.from(new Set(this.list));
-					this.frequencyCoding = ''
+					if (['10', '15', '33', '37', '12', '16', '19', '99'].includes(this.selectiveType)) {
+						let arrNum = ''
+						if (this.selectiveType == '99') {
+							arrNum = '26'
+						} else {
+							arrNum = this.selectiveType
+						}
+						this.$api.post('/api/operation-log/check', {
+							chipUid: this.frequencyCoding,
+							optType: arrNum,
+						}).then(res => {
+							if (res.code == 200) {
+								this.list.push(this.frequencyCoding)
+								this.list = Array.from(new Set(this.list));
+								this.frequencyCoding = ''
+							} else {
+								uni.$u.toast(res.data.msg)
+							}
+						})
+					} else {
+						this.list.push(this.frequencyCoding)
+						this.list = Array.from(new Set(this.list));
+						this.frequencyCoding = ''
+					}
 				}
 			},
 			// 添加一条
 			addLine() {
 				this.scanType = 1
-				this.sweep()
+				if (this.scanFlag) {
+					this.scanFlag = false
+					this.sweep()
+				}
 			},
 			// 连续添加
 			continuousAddition() {
 				this.scanType = 2
-				this.sweep()
+				if (this.scanFlag) {
+					this.scanFlag = false
+					this.sweep()
+				}
 			},
 			// 扫一扫
 			sweep() {
@@ -286,6 +322,7 @@
 					success: (res) => {
 						console.log(res, '--------');
 						if (res.result) {
+							this.scanFlag = true
 							let url = res.result;
 							const arrf = url.split('=')
 							this.unitCoding(arrf[1])
@@ -316,29 +353,62 @@
 					success: (res) => {
 						if (res.data.code == 0) {
 							var arr = res.data.data
-							if (this.selectiveType != '99' || this.selectiveType != '100') {
-								if (this.selectiveType == 'inspect') {
-									this.frequencyCoding = arr.inner_code
-								}
-								if (this.scanType == 1) {
-									this.list.push(arr.inner_code)
-									this.list = Array.from(new Set(this.list));
+							if (this.selectiveType != 'inspect') {
+								if (['10', '15', '33', '37', '12', '16', '19', '99'].includes(this
+										.selectiveType)) {
+									let arrNum = ''
+									if (this.selectiveType == '99') {
+										arrNum = '26'
+									} else {
+										arrNum = this.selectiveType
+									}
+									this.$api.post('/api/operation-log/check', {
+										chipUid: arr.inner_code,
+										optType: arrNum,
+									}).then(res => {
+										if (res.code == 200) {
+											if (this.scanType == 1) {
+												this.list.push(arr.inner_code)
+												this.list = Array.from(new Set(this.list));
+											} else {
+												this.show = true
+												this.list.push(arr.inner_code)
+												this.list = Array.from(new Set(this.list));
+												this.scanCoding = arr.inner_code
+												// 扫码间隔两秒
+												setTimeout(() => {
+													this.sweep()
+													this.show = false
+												}, 3000)
+											}
+										} else {
+											this.show = false
+											uni.$u.toast(res.data.msg)
+										}
+									})
 								} else {
-									this.show = true
-									this.list.push(arr.inner_code)
-									this.list = Array.from(new Set(this.list));
-									this.scanCoding = arr.inner_code
-									// 扫码间隔两秒
-									setTimeout(() => {
-										this.sweep()
-										this.show = false
-									}, 3000)
+									if (this.scanType == 1) {
+										this.list.push(arr.inner_code)
+										this.list = Array.from(new Set(this.list));
+									} else {
+										this.show = true
+										this.list.push(arr.inner_code)
+										this.list = Array.from(new Set(this.list));
+										this.scanCoding = arr.inner_code
+										// 扫码间隔两秒
+										setTimeout(() => {
+											this.sweep()
+											this.show = false
+										}, 3000)
+									}
 								}
 							} else {
 								this.frequencyCoding = arr.inner_code
 							}
-							uni.hideLoading();
+						} else {
+							uni.$u.toast('请扫描单位内编号二维码')
 						}
+						uni.hideLoading();
 					}
 				});
 			},
@@ -456,7 +526,7 @@
 		justify-content: space-between;
 		margin-top: 30rpx;
 		padding-bottom: 30rpx;
-		border-bottom: 1rpx solid #d7d7d7;
+		border-bottom: 1rpx solid #e4e7ed;
 	}
 
 	.card_bottle {

+ 3 - 2
pages/order/index.vue

@@ -7,7 +7,7 @@
 		</view>
 		<view class="cardOrder_tab"></view>
 		<view class="card_order_manag">
-			<orderManagement :datalist="datalist" @toDeliver="toDeliver"></orderManagement>
+			<orderManagement :key="Math.random()" :datalist="datalist" @toDeliver="toDeliver"></orderManagement>
 		</view>
 		<view class="card_empty" v-if="datalist.length === 0">
 			<u-empty mode="order"></u-empty>
@@ -67,7 +67,6 @@
 			},
 			// 获取订单列表
 			getOrderList() {
-				console.log(this.orderID, 34)
 				this.$api.get('/api/order/delivery', {
 					page: this.Pagination.PageIndex,
 					pageSize: this.Pagination.PageSize,
@@ -98,6 +97,8 @@
 						this.orderID = 5
 						this.datalist = []
 						this.getOrderList()
+					} else {
+						uni.$u.toast(res.data.msg)
 					}
 				})
 			},

+ 1 - 1
pages/order/orderDetails.vue

@@ -115,7 +115,7 @@
 						uni.hideLoading();
 					})
 				} else {
-					uni.$u.toast('请选择取消钢瓶编码')
+					uni.$u.toast('请选择取消单位内编号')
 				}
 				// uni.redirectTo({
 				// 	url: '/pages/order/delivery?id=' + '100' + '&title=' + '确定取消' + '&orderId=' + this.orderData.id

+ 21 - 5
pages/order/securityCheck.vue

@@ -20,11 +20,13 @@
 				</u-form-item>
 				<u-form-item label="客户签字" prop="customerImg">
 					<view class="card_signs center_in" v-if="clientFlag" @click="goSignature('client')">客户签字</view>
-					<u-image :showLoading="true" :src="imageData" width="200rpx" height="160rpx" v-else></u-image>
+					<u-image :showLoading="true" :src="imageData" width="200rpx" height="160rpx"
+						@click="goSignature('client')" v-else></u-image>
 				</u-form-item>
 				<u-form-item label="送气员签字" prop="signImg">
 					<view class="card_signs center_in" v-if="aeratorFlag" @click="goSignature('aerator')">送气员签字</view>
-					<u-image :showLoading="true" :src="aeratorData" width="200rpx" height="160rpx" v-else></u-image>
+					<u-image :showLoading="true" :src="aeratorData" width="200rpx" height="160rpx"
+						@click="goSignature('aerator')" v-else></u-image>
 				</u-form-item>
 			</u-form>
 			<view class="card_plate">
@@ -32,7 +34,7 @@
 				<u-line></u-line>
 				<view class="card_security">
 					<view class="" v-for="(item,index) in checkEntry" :key="index">
-						<view class="title_item_check">{{index + 1}}、{{item.label}}</view>
+						<view class="title_item_check">{{index + 1}}、{{item.inspectExplain}}</view>
 						<u-radio-group v-model="item.value" placement="row">
 							<u-radio shape="circle" :customStyle="{marginRight: '20px'}"
 								v-for="(item1, index1) in radioData" :key="index1" :label="item1.name"
@@ -139,9 +141,23 @@
 			uni.$off('sign');
 		},
 		mounted() {
-			this.checkEntry = check()
+			this.getCheck()
+			// this.checkEntry = check()
 		},
 		methods: {
+			// 获取入户安全检查项
+			getCheck() {
+				this.$api.get('/api/inspect-expand', {
+					pageSize: 9999,
+				}).then(res => {
+					if (res.code == 200) {
+						this.checkEntry = res.data.list
+						this.checkEntry.forEach(item => {
+							item.value = '0'
+						})
+					}
+				})
+			},
 			// 提价入户安全检查项
 			entrySecurity() {
 				this.$refs.uForm.validate().then(res => {
@@ -154,7 +170,7 @@
 							inspectItem: '',
 							itemCode: '',
 						}
-						arr1.inspectItem = item.id
+						arr1.inspectItem = item.inspectItem
 						arr1.itemCode = item.value
 						arrList.push(arr1)
 					})

+ 49 - 3
static/fonts/demo_index.html

@@ -55,6 +55,18 @@
           <ul class="icon_lists dib-box">
           
             <li class="dib">
+              <span class="icon iconfont">&#xe65e;</span>
+                <div class="name">调拨单</div>
+                <div class="code-name">&amp;#xe65e;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe600;</span>
+                <div class="name">调拨单-copy</div>
+                <div class="code-name">&amp;#xe600;</div>
+              </li>
+          
+            <li class="dib">
               <span class="icon iconfont">&#xe60a;</span>
                 <div class="name">订单</div>
                 <div class="code-name">&amp;#xe60a;</div>
@@ -228,9 +240,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1721630616175') format('woff2'),
-       url('iconfont.woff?t=1721630616175') format('woff'),
-       url('iconfont.ttf?t=1721630616175') format('truetype');
+  src: url('iconfont.woff2?t=1723624389024') format('woff2'),
+       url('iconfont.woff?t=1723624389024') format('woff'),
+       url('iconfont.ttf?t=1723624389024') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -257,6 +269,24 @@
         <ul class="icon_lists dib-box">
           
           <li class="dib">
+            <span class="icon iconfont icon-tiaobodan"></span>
+            <div class="name">
+              调拨单
+            </div>
+            <div class="code-name">.icon-tiaobodan
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-moveais"></span>
+            <div class="name">
+              调拨单-copy
+            </div>
+            <div class="code-name">.icon-moveais
+            </div>
+          </li>
+          
+          <li class="dib">
             <span class="icon iconfont icon-dingdan2"></span>
             <div class="name">
               订单
@@ -519,6 +549,22 @@
           
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-tiaobodan"></use>
+                </svg>
+                <div class="name">调拨单</div>
+                <div class="code-name">#icon-tiaobodan</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-moveais"></use>
+                </svg>
+                <div class="name">调拨单-copy</div>
+                <div class="code-name">#icon-moveais</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-dingdan2"></use>
                 </svg>
                 <div class="name">订单</div>

+ 11 - 3
static/fonts/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 4430625 */
-  src: url('@/static/fonts/iconfont.woff2?t=1721630616175') format('woff2'),
-       url('@/static/fonts/iconfont.woff?t=1721630616175') format('woff'),
-       url('@/static/fonts/iconfont.ttf?t=1721630616175') format('truetype');
+  src: url('@/static/fonts/iconfont.woff2?t=1723624389024') format('woff2'),
+       url('@/static/fonts/iconfont.woff?t=1723624389024') format('woff'),
+       url('@/static/fonts/iconfont.ttf?t=1723624389024') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,14 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-tiaobodan:before {
+  content: "\e65e";
+}
+
+.icon-moveais:before {
+  content: "\e600";
+}
+
 .icon-dingdan2:before {
   content: "\e60a";
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
static/fonts/iconfont.js


+ 14 - 0
static/fonts/iconfont.json

@@ -6,6 +6,20 @@
   "description": "",
   "glyphs": [
     {
+      "icon_id": "2317530",
+      "name": "调拨单",
+      "font_class": "tiaobodan",
+      "unicode": "e65e",
+      "unicode_decimal": 58974
+    },
+    {
+      "icon_id": "40412137",
+      "name": "调拨单-copy",
+      "font_class": "moveais",
+      "unicode": "e600",
+      "unicode_decimal": 58880
+    },
+    {
       "icon_id": "852293",
       "name": "订单",
       "font_class": "dingdan2",

BIN
static/fonts/iconfont.ttf


BIN
static/fonts/iconfont.woff


BIN
static/fonts/iconfont.woff2


+ 226 - 165
static/js/blockSort.js

@@ -1,176 +1,237 @@
 export const statisticalState = () => {
-  return [{
-      label: '已提交待审批',
-      value: 'inform',
-    },
-    {
-      label: '在用',
-      value: 'using',
-    },
-    {
-      label: '报废',
-      value: 'scrapped',
-    },
-  ]
+	return [{
+			label: '已提交待审批',
+			value: 'inform',
+		},
+		{
+			label: '在用',
+			value: 'using',
+		},
+		{
+			label: '报废',
+			value: 'scrapped',
+		},
+	]
 }
 export const neurogen = () => {
-  return [{
-      label: '液化石油气',
-      value: 0,
-    },
-    {
-      label: '二甲醚',
-      value: 1,
-    },
-    {
-      label: '氧气',
-      value: 2,
-    },
-    {
-      label: '二氧化碳',
-      value: 3,
-    },
-    {
-      label: '溶解乙炔',
-      value: 4,
-    }
-  ]
+	return [{
+			label: '液化石油气',
+			value: 0,
+		},
+		{
+			label: '二甲醚',
+			value: 1,
+		},
+		{
+			label: '氧气',
+			value: 2,
+		},
+		{
+			label: '二氧化碳',
+			value: 3,
+		},
+		{
+			label: '溶解乙炔',
+			value: 4,
+		}
+	]
 }
 export const attribution = () => {
-  return [{
-      label: '门店',
-      value: '0001',
-    },
-    {
-      label: '气站',
-      value: '0002',
-    },
-    {
-      label: '企业',
-      value: '0003',
-    },
-    {
-      label: '检验机构',
-      value: '0004',
-    },
-    {
-      label: '移动库',
-      value: '005',
-    },
-    {
-      label: '门店',
-      value: '006',
-    }
-  ]
+	return [{
+			label: '门店',
+			value: '0001',
+		},
+		{
+			label: '气站',
+			value: '0002',
+		},
+		{
+			label: '企业',
+			value: '0003',
+		},
+		{
+			label: '检验机构',
+			value: '0004',
+		},
+		{
+			label: '移动库',
+			value: '005',
+		},
+		{
+			label: '门店',
+			value: '006',
+		}
+	]
 }
 export const cylinderCondition = () => {
-  return [{
-      label: '新瓶提交',
-      value: 'submit',
-    },
-    {
-      label: '在用(以检验)',
-      value: 'using',
-    },
-    {
-      label: '停用(待检验)',
-      value: 'stop',
-    },
-    {
-      label: '报废',
-      value: 'scrapped',
-    }
-  ]
+	return [{
+			label: '新瓶提交',
+			value: 'submit',
+		},
+		{
+			label: '在用(以检验)',
+			value: 'using',
+		},
+		{
+			label: '停用(待检验)',
+			value: 'stop',
+		},
+		{
+			label: '报废',
+			value: 'scrapped',
+		}
+	]
 }
 
 export const process = () => {
-  return [{
-      label: '商家入库',
-      value: '6',
-    },
-    {
-      label: '门店空瓶出库',
-      value: '10',
-    },
-    {
-      label: '司机确认空瓶装车',
-      value: '11',
-    },
-    {
-      label: '司机运输空瓶到达气站',
-      value: '12',
-    },
-    {
-      label: '气站确认空瓶到达气站',
-      value: '13',
-    },
-    {
-      label: '气站充装空瓶',
-      value: '14',
-    },
-    {
-      label: '气站重瓶出库',
-      value: '15',
-    },
-    {
-      label: '司机将订单退回气站',
-      value: '16',
-    },
-    {
-      label: '司机确认重瓶从气站出库',
-      value: '17',
-    },
-    {
-      label: '司机交付门店',
-      value: '19',
-    },
-    {
-      label: '门店回收空瓶',
-      value: '21',
-    },
-    {
-      label: '气瓶检验',
-      value: '23',
-    },
-    {
-      label: '送气员领重瓶出库',
-      value: '25',
-    },
-    {
-      label: '送气员送达重瓶',
-      value: '26',
-    },
-    {
-      label: '送气员回收空瓶',
-      value: '27',
-    },
-    {
-      label: '门店确认重瓶卸货入库',
-      value: '31',
-    },
-    {
-      label: '门店将重瓶退回司机',
-      value: '33',
-    },
-    {
-      label: '门店取消订单',
-      value: '34',
-    },
-    {
-      label: '门店确认未配送重瓶返库',
-      value: '35',
-    },
-    {
-      label: '送气订单取消',
-      value: '36',
-    },
-    {
-      label: '门店重瓶出库',
-      value: '37',
-    },
-    {
-      label: '上报流程异常信息',
-      value: '1000',
-    }
-  ]
+	return [{
+			label: '商家入库',
+			value: '6',
+		},
+		{
+			label: '门店空瓶出库',
+			value: '10',
+		},
+		{
+			label: '司机确认空瓶装车',
+			value: '11',
+		},
+		{
+			label: '司机运输空瓶到达气站',
+			value: '12',
+		},
+		{
+			label: '气站确认空瓶到达气站',
+			value: '13',
+		},
+		{
+			label: '气站充装空瓶',
+			value: '14',
+		},
+		{
+			label: '气站重瓶出库',
+			value: '15',
+		},
+		{
+			label: '司机将订单退回气站',
+			value: '16',
+		},
+		{
+			label: '司机确认重瓶从气站出库',
+			value: '17',
+		},
+		{
+			label: '司机交付门店',
+			value: '19',
+		},
+		{
+			label: '门店回收空瓶',
+			value: '21',
+		},
+		{
+			label: '气瓶检验',
+			value: '23',
+		},
+		{
+			label: '送气员领重瓶出库',
+			value: '25',
+		},
+		{
+			label: '送气员送达重瓶',
+			value: '26',
+		},
+		{
+			label: '送气员回收空瓶',
+			value: '27',
+		},
+		{
+			label: '门店确认重瓶卸货入库',
+			value: '31',
+		},
+		{
+			label: '门店将重瓶退回司机',
+			value: '33',
+		},
+		{
+			label: '门店取消订单',
+			value: '34',
+		},
+		{
+			label: '门店确认未配送重瓶返库',
+			value: '35',
+		},
+		{
+			label: '送气订单取消',
+			value: '36',
+		},
+		{
+			label: '门店重瓶出库',
+			value: '37',
+		},
+		{
+			label: '上报流程异常信息',
+			value: '1000',
+		}
+	]
 }
+
+export const flowStep = () => {
+	return [{
+		label: '司机确定重瓶从气站出库',
+		value: '17',
+	}, {
+		label: '司机回收超期瓶',
+		value: 'sjextended',
+	}, {
+		label: '司机回收报废瓶',
+		value: 'sjscrap',
+	}, {
+		label: '门店确定重瓶卸货入库',
+		value: '31',
+	}, {
+		label: '气站确定重瓶到达气站',
+		value: '016',
+	}, {
+		label: '气站确定空瓶到达气站',
+		value: '13',
+	}, {
+		label: '门店回收超期瓶',
+		value: 'mdextended',
+	}, {
+		label: '气站回收超期瓶',
+		value: 'qzextended',
+	}, {
+		label: '门店回收报废瓶',
+		value: 'mdscrap',
+	}, {
+		label: '气站回收报废瓶',
+		value: 'qzscrap',
+	}, {
+		label: '送气员领重瓶出库',
+		value: '25',
+	}, {
+		label: '司机确定重瓶从门店出库',
+		value: '033',
+	}, {
+		label: '司机确定空瓶装车',
+		value: '11',
+	}, {
+		label: '司机回收超期瓶',
+		value: 'sjextended',
+	}, {
+		label: '司机回收报废瓶',
+		value: 'sjscrap',
+	}, {
+		label: '门店确定未配送重瓶返库',
+		value: '35',
+	}, {
+		label: '门店回收空瓶',
+		value: '21',
+	}, {
+		label: '门店回收超期瓶',
+		value: 'mdextended',
+	}, {
+		label: '门店回收报废瓶',
+		value: 'mdscrap',
+	}, ]
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/cache/wgt/__UNI__10C0A5F/app-service.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/cache/wgt/__UNI__10C0A5F/app-view.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/cache/wgt/__UNI__10C0A5F/manifest.json


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/build/app-plus/app-service.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/build/app-plus/app-view.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/build/app-plus/manifest.json


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
unpackage/dist/dev/app-plus/app-config-service.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/app-plus/app-service.js


Datei-Diff unterdrückt, da er zu groß ist
+ 41 - 24
unpackage/dist/dev/app-plus/app-view.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
unpackage/dist/dev/app-plus/manifest.json


BIN
unpackage/release/apk/__UNI__10C0A5F__20240806144132.apk


BIN
unpackage/release/apk/__UNI__10C0A5F__20240807141911.apk


BIN
unpackage/release/apk/__UNI__10C0A5F__20240807153118.apk


BIN
unpackage/release/apk/__UNI__10C0A5F__20240808150355.apk


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.