Browse Source

暂时提交

sunChengjie 1 year ago
parent
commit
084815b1ea

+ 10 - 0
src/api/index.js

@@ -8,6 +8,16 @@ export function employee_login(data, config) {
     })
 }
 
+// 寄件-寄件人信息
+export function getSendInfo(data) {
+    return request({
+        url: '/tianzong/client/without/getSendInfo',
+        method: 'post',
+        data: data,
+        emulateJSON: true
+    })
+}
+
 // 寄件-我的寄件
 export function saveMailDo(data) {
     return request({

+ 123 - 0
src/components/ScrollRefresh.vue

@@ -0,0 +1,123 @@
+<template>
+    <div class="container" :style="{ height: height, overflowY: 'auto' }" @scroll.passive="getScroll($event)">
+        <van-pull-refresh v-model="refreshLoading" @refresh="onRefresh">
+            <slot v-bind:list="list"></slot>
+            <template v-if="!refreshLoading && list.length > 0">
+                <div class="bottom_text" v-if="loading">
+                    加载中...
+                </div>
+                <div class="bottom_text" v-else-if="noData">
+                    已经到底啦...
+                </div>
+            </template>
+            <template v-if="list.length === 0">
+                <div>数据为空!</div>
+            </template>
+        </van-pull-refresh>
+
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'ScrollRefresh',
+    props: {
+        height: {
+            required: true,
+        },
+        params: {
+            required: false,
+            type: Object,
+            default: function () {
+                return {}
+            }
+        },
+        request: {
+            required: true,
+            type: Function,
+        }
+    },
+    data() {
+        return {
+            noData: false,
+            loading: false,
+            refreshLoading: false,
+            pagination: {
+                page: 1,
+                limit: 3
+            },
+            list: []
+        };
+    },
+
+    mounted() {
+        this.loadData()
+    },
+    methods: {
+        // 刷新
+        async onRefresh() {
+            this.pagination.page = 1;
+            this.refreshLoading = true;
+            await this.loadData(true)
+            this.refreshLoading = false
+        },
+        getScroll(event) {
+            let scrollBottom =
+                event.target.scrollHeight -
+                event.target.scrollTop -
+                event.target.clientHeight;
+            // 距离底部20px以内 && 还有数据 && 没有正在加载中
+            if (scrollBottom <= 20 && !this.noData && !this.loading) {
+                this.pagination.page += 1;
+                this.getData();
+            }
+        },
+        async loadData(isClear) {
+            this.loading = true
+            let parmas = {
+                page: this.pagination.page, //   页数,
+                limit: this.pagination.limit, // 条数   
+            }
+            const res = await this.request({ ...parmas, ...this.params })
+            let list = res.data.map((item) => {
+                return {
+                    ...item,
+                }
+            })
+            if (isClear) {
+                this.list = list
+            } else {
+                this.list.push(...list)
+            }
+
+            this.loading = false
+            if (this.pagination.page * this.pagination.limit >= res.count) {
+                this.noData = true;
+            } else {
+                this.noData = false;
+            }
+        }
+    },
+
+
+
+    watch: {
+        params: {
+            handler() {
+                this.pagination.page = 1;
+                this.loadData(true)
+            },
+            deep: true,
+            immediate: false
+        }
+    },
+
+};
+</script>
+<style lang="less" scoped>
+.bottom_text {
+    text-align: center;
+    color: #969799;
+    font-size: 14px;
+}
+</style>

+ 62 - 13
src/pages/express.vue

@@ -17,10 +17,16 @@
 					<div class="jjaddress">
 						<p>寄</p>
 						<div>
-							<p v-if="jjname == '' || jjname == ' '">寄件地址</p>
-							<p v-else>{{ jjname }} {{ jjInfo.senderMobile }}</p>
-							<p v-if="jjadd == '' || jjadd == ' '" @click="addtype(1)">填写寄件地址</p>
-							<p v-else @click="addtype(1)">{{ jjadd }}</p>
+							<div style="display: flex; justify-content: space-between;">
+								<p style="font-size: 14px;">姓名 </p>
+								<span style="margin-left: 70px;">{{
+			SendInfoValue.address }}</span>
+							</div>
+							<div style="display: flex; justify-content: space-between;">
+								<p style="font-size: 14px; margin: 0">手机号 <span style="margin-left: 70px;">{{
+			SendInfoValue.phone }}</span></p>
+							</div>
+
 						</div>
 					</div>
 					<!-- <div class="dzb" @click="link(1)">
@@ -32,10 +38,13 @@
 					<div class="jjaddress">
 						<p style="background: #fa9c22;">收</p>
 						<div>
-							<p v-if="sjname == '' || sjname == ' '">收件地址</p>
-							<p v-else>{{ sjname }} {{ sjInfo.receiveMobile }}</p>
-							<p v-if="sjadd == '' || sjadd == ' '" @click="addtype(2)">填写收件地址</p>
-							<p v-else @click="addtype(2)">{{ sjadd }}</p>
+							<div style="display: flex; justify-content: space-between;">
+								<p style="font-size: 14px;">姓名 </p>
+								<span style="margin-left: 70px;">{{
+			transmitMessageVlaue.addresseeName }}</span>
+							</div>
+							<van-field v-model="elvenPhone" label="手机号" name="pattern" placeholder="请输入正确的手机号"
+								:rules="[{ pattern, message: '请输入正确的手机号' }]" />
 						</div>
 					</div>
 					<div class="dzb" @click="link(2)">
@@ -186,8 +195,9 @@
 <script>
 import areaList from "@/script/areas.js"
 import { Stepper, Toast } from 'vant';
-import { saveMailDo } from '../api/index'
+import { saveMailDo, getSendInfo } from '../api/index'
 export default {
+
 	data() {
 		return {
 			titlename: "寄件",
@@ -227,6 +237,7 @@ export default {
 			columns2: ["个人件", "公司件"],
 			jjInfo: {},
 			sjInfo: {},
+			// transmitMessageVlaue: {},
 			declaredValue: '0', //声明价值
 			showPicker2: false,
 			goodOrderNo: '',//商品订单编号
@@ -238,12 +249,14 @@ export default {
 			costCenterList: [],//成本中心列表
 			costCenterInfoShow: "",
 			costCenterName: "",//成本中心展示
-			costCenterId: ""//成本中心展示
+			costCenterId: "",//成本中心展示
+			elvenPhone: '',//收件人输入的手机号
+			pattern: /^\d{11}$/,
+			SendInfoValue: {},//寄件人信息
 		}
 	},
 	created: function () {
 		this.isLogin();
-
 		this.userId = localStorage.getItem("userId")
 		this.accountType = localStorage.getItem("accountType")
 		console.log("accountType:" + this.accountType)
@@ -275,6 +288,9 @@ export default {
 		//获取成本中心
 		this.getCostCenterList()
 	},
+	async mounted() {
+		this.SendInfoValue = await getSendInfo({ userId: localStorage.getItem("userId") })
+	},
 	methods: {
 		wxScanCode(type) {
 			// let purl = /(Android)/i.test(navigator.userAgent) ? window.location.href.split('#')[0] : encodeURI(window.location.href.split('#')[0]);
@@ -399,6 +415,7 @@ export default {
 		},
 		// 填写地址确定
 		onSubmit() {
+
 			if (this.name == '' || this.name == undefined) {
 				Toast('请填写姓名')
 				return
@@ -475,7 +492,8 @@ export default {
 		},
 		// 地址簿跳转
 		link(obj) {
-			this.$router.push({ path: '/Addressbook', query: { active: obj } })
+			// this.$router.push({ path: '/Addressbook', query: { active: obj } })
+			this.$router.push({ path: '/Myaddressbook', query: { active: obj } })
 		},
 		//立即寄件交互
 		async save() {
@@ -523,11 +541,25 @@ export default {
 			// 	return
 			// }
 
+
+
+			if (this.elvenPhone == '' || this.elvenPhone == undefined) {
+				Toast('手机号码不能为空')
+				return
+			}
+
+			if (!this.pattern.test(this.elvenPhone)) {
+				Toast('手机号码不正确')
+				return
+			}
+
 			if (this.expressInfo == '' || this.expressInfo == undefined) {
 				Toast('请选择快递公司')
 				return
 			}
 
+
+
 			if (this.wptype == '' || this.wptype == undefined) {
 				Toast('请选择物品类型')
 				return
@@ -587,6 +619,7 @@ export default {
 				expressRemark: this.bz,//快递备注
 				expressWeight: this.stepper,//公斤
 				expressPrice: this.declaredValue,//价值
+				addressee_phone: this.elvenPhone,//收件人手机号
 			}
 			const res = await saveMailDo({ ...parmas })
 			if (res.msg == 'success') {
@@ -600,7 +633,10 @@ export default {
 	computed: {
 		areaList() {
 			return areaList
-		}
+		},
+		transmitMessageVlaue() {
+			return this.$store.state.transmitMessageVlaue;
+		},
 	}
 }
 </script>
@@ -658,6 +694,19 @@ export default {
 					display: flex;
 					padding: .1rem 0rem;
 
+					.van-cell {
+						padding: 0;
+						margin: 0;
+
+
+						.van-field__label.van-cell__title {
+							width: 0.2em !important;
+						}
+
+					}
+
+
+
 					>p {
 						font-size: .24rem;
 						font-weight: bold;

+ 24 - 11
src/pages/inexpress.vue

@@ -45,13 +45,13 @@
 			<van-field :value="groupValue.seatNo" readonly name="phone" label="收件人座位" placeholder="占位" />
 		</div>
 		<!-- 快递公司 -->
-		<div class="kdshow">
+		<!-- <div class="kdshow">
 			<van-field readonly clickable name="picker" :value="expressInfoShow" label="快递公司" placeholder="请选择快递公司"
 				@click="showPicker = true" />
 			<van-popup v-model="showPicker" position="bottom">
 				<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
 			</van-popup>
-		</div>
+		</div> -->
 		<!-- 主体类型 -->
 		<!-- <div class="kdshow">
 			<van-field readonly clickable name="picker" :value="mainType" label="主体类型" placeholder="请选择主体类型" @click="showPicker2 = true" />
@@ -76,7 +76,7 @@
 					<div>
 						<p>
 							<template v-if="wptype == '产品'">重量(公斤)</template>
-							<template v-if="wptype == '非产品'">重量(公斤)</template>
+							<!-- <template v-if="wptype == '非产品'">重量(公斤)</template> -->
 							<template v-if="wptype == '文件'">数量(件数)</template>
 						</p>
 						<p>
@@ -223,9 +223,9 @@ export default {
 			titlename: "内部件",
 			wptype: "产品",//物品类型
 			wpshow: false,//物品类型弹窗显示
-			wplist: ["产品", "非产品", "文件"],
+			wplist: ["产品", "文件"],
 			pricetype: "",//付款类型
-			stepper: '',
+			stepper: '0 ',
 			max: '',
 			priceshow: false,//付款类型弹窗显示
 			pricelist: ["自费", "月结"],
@@ -531,12 +531,15 @@ export default {
 			// 	Toast('请填写收件人信息')
 			// 	return
 			// }
-
-			if (this.expressInfo == '' || this.expressInfo == undefined) {
-				Toast('请选择快递公司')
-				return
+			if (this.recipientsName == '' || this.recipientsName == undefined) {
+				return Toast('请输入收件人姓名')
 			}
 
+			// if (this.expressInfo == '' || this.expressInfo == undefined) {
+			// 	Toast('请选择快递公司')
+			// 	return
+			// }
+
 			if (this.wptype == '' || this.wptype == undefined) {
 				Toast('请选择物品类型')
 				return
@@ -580,7 +583,7 @@ export default {
 				duration: 0
 			});
 			let wptypeValue = ''
-			if (this.wptype == "品") {
+			if (this.wptype == "品") {
 				wptypeValue = 2
 			} else {
 				wptypeValue = 1
@@ -593,8 +596,18 @@ export default {
 				expressWeight: this.stepper,//公斤
 
 			}
+			Toast.clear()
 			const res = await saveInternal({ ...parmas })
+			if (res.msg == 'success') {
+				Toast.clear()
+				this.$router.push('/')
+				Toast('寄件成功')
+			} else {
+				Toast.clear()
+				Toast('寄件失败')
+			}
 			console.log(res, 'res')
+			Toast.clear()
 
 			// this.$http.post(this.$store.state.host + "/sendMail/saveMail.do", {
 			// 	userId: this.userId,
@@ -640,7 +653,7 @@ export default {
 			// 		//发送失败
 			// 		Toast("网络错误");
 			// 	})
-			Toast.clear()
+
 		}
 	},
 	computed: {

+ 14 - 123
src/pages/logisticslist.vue

@@ -26,14 +26,15 @@
 			<div class="list">
 				<div class="logistics" v-for="item in mailList">
 					<div class="logistics_top">
-						<p>订单号:<span :id="'copytkl' + item.expressNo">{{ item.expressNo }}</span></p>
+						<p>订单号:<span :id="'copytkl' + item.orderId">{{ item.orderId }}</span></p>
 						<!-- <p > -->
-						<img :id="'fz' + item.expressNo" @click="copyLink(item.expressNo)" data-clipboard-action="copy"
-							:data-clipboard-target="'#copytkl' + item.expressNo" src="../assets/images/2022copy.png"
+						<img :id="'fz' + item.orderId" @click="copyLink(item.orderId)" data-clipboard-action="copy"
+							:data-clipboard-target="'#copytkl' + item.orderId" src="../assets/images/2022copy.png"
 							alt="">
 						<!-- </p> -->
 					</div>
-					<div class="logistics_center" @click="mailDetail(item.id)">
+					<!-- <div class="logistics_center" @click="mailDetail(item.id)"> -->
+					<div class="logistics_center">
 						<div>
 							<p>{{ item.sendCity }}</p>
 							<p>{{ item.sender }}</p>
@@ -51,119 +52,18 @@
 							<p>{{ item.receiver }}</p>
 						</div>
 					</div>
-					<!-- <div class="logistics_bottom">
-				<p>已揽件:顺丰速运已取快件</p>
-				<p>接收时间:2022-10-23 10:11</p>
-			</div> -->
-				</div>
-				<!-- <div class="logistics">
-			<div class="logistics_top">
-				<p>订单号:CX223232322</p>
-				<img src="../assets/images/2022copy.png" alt="">
-			</div>
-			<div class="logistics_center">
-				<div>
-					<p>苏州</p>
-					<p>张三</p>
-				</div>
-				<div>
-					<img src="../assets/images/j_ico01.png" alt="">
-					<p>已揽件</p>
-				</div>
-				<div>
-					<p>上海</p>
-					<p>张三</p>
-				</div>
-			</div>
-			<div class="logistics_bottom">
-				<p>已揽件:顺丰速运已取快件</p>
-				<p>接收时间:2022-10-23 10:11</p>
-			</div>
-		</div> -->
-				<!-- <div class="logistics">
-			<div class="logistics_top">
-				<p>订单号:CX223232322</p>
-				<img src="../assets/images/2022copy.png" alt="">
-			</div>
-			<div class="logistics_center">
-				<div>
-					<p>苏州</p>
-					<p>张三</p>
-				</div>
-				<div>
-					<img src="../assets/images/j_ico02.png" alt="">
-					<p>派送中</p>
-				</div>
-				<div>
-					<p>上海</p>
-					<p>张三</p>
-				</div>
-			</div>
-			<div class="logistics_bottom">
-				<p>派送中:快件派送不成功</p>
-				<p>预计送达时间:2022-10-23 10:11</p>
-			</div>
-		</div> -->
-				<!-- <div class="logistics">
-			<div class="logistics_top">
-				<p>订单号:CX223232322</p>
-				<img src="../assets/images/2022copy.png" alt="">
-			</div>
-			<div class="logistics_center">
-				<div>
-					<p>苏州</p>
-					<p>张三</p>
-				</div>
-				<div>
-					<img src="../assets/images/j_ico03.png" alt="">
-					<p>已签收</p>
-				</div>
-				<div>
-					<p>上海</p>
-					<p>张三</p>
-				</div>
-			</div>
-			<div class="logistics_bottom">
-				<p>签收时间:2022-10-23 10:11</p>
-			</div>
-		</div> -->
-				<!-- <div class="logistics">
-			<div class="logistics_top">
-				<p>订单号:CX223232322</p>
-				<img src="../assets/images/2022copy.png" alt="">
-			</div>
-			<div class="logistics_center">
-				<div>
-					<p>苏州</p>
-					<p>张三</p>
-				</div>
-				<div>
-					<img src="../assets/images/j_ico01.png" alt="">
-					<p>已退回</p>
-				</div>
-				<div>
-					<p>上海</p>
-					<p>张三</p>
+
 				</div>
-			</div>
-			<div class="logistics_bottom">
-				<p>已退回:有客户要求快件正在退回</p>
-				<p>退回时间:2022-10-23 10:11</p>
-			</div>
-		</div> -->
+
 			</div>
 			<!-- 日历选择 -->
 			<van-calendar color="#00c4b8" v-model:show="showPicker" type="range" :min-date="minDate" :max-date="maxDate"
 				@confirm="onConfirm" />
 			<!-- 时间选择 -->
 			<!-- <van-popup v-model:show="showPicker" position="bottom">
-	  <van-datetime-picker
-		:type="showPickertype"
-		:max-date="maxDate"
-		@confirm="onConfirm"
-		@cancel="showPicker = false"
-	  />
-	</van-popup> -->
+				<van-datetime-picker :type="showPickertype" :max-date="maxDate" @confirm="onConfirm"
+					@cancel="showPicker = false" />
+			</van-popup> -->
 			<!-- <tabbar></tabbar> -->
 		</div>
 	</div>
@@ -232,21 +132,12 @@ export default {
 			let parmas = {
 				// expressNo:this.value,
 				startTime: this.startTime,
-				endTime: this.endTime
+				endTime: this.endTime,
+				type: this.index
 			}
 			const res = await getListByUser({ ...this.pageSize, ...parmas })
-			this.mailList = res.data.filter((item) => {
-				return item.type == this.index
-			})
-
-
-
-
-
-			// Toast.clear()
-
-
-
+			this.mailList = res.data
+			console.log(res, 'res')
 		},
 		tab(obj) {//外部件、内部件切换
 			this.index = obj

+ 10 - 21
src/pages/myaddressbook.vue

@@ -9,7 +9,7 @@
 			<div class="jjinfo" v-for="item in addressList" :key="item.id">
 				<div>
 					<div class="jj">
-						<div class="jjaddress">
+						<div class="jjaddress" @click="transmitMessage(item)">
 							<p style="background: #fa9c22;">收</p>
 							<div :id="'copytkl' + item.id">
 								<p>{{ item.addresseeName }} {{ item.addresseePhone }}</p>
@@ -128,28 +128,17 @@ export default {
 		linkEdit(id) {
 			this.$router.push({ path: "/Editaddress", query: { id: id } })
 		},
-		adressLink(item) {
-			let jjInfo = {}
-			jjInfo.jjname = item.name + ' ' + item.phone
-			jjInfo.jjadd = item.provinceAndCity + ' ' + item.address
-			jjInfo.sender = item.name
-			jjInfo.senderPhone = item.phone
-			jjInfo.sendAddr = item.provinceAndCity
-			jjInfo.sendAddress = item.address
-			this.$store.commit("getJjInfo", jjInfo)
+		transmitMessage(item) {
+			let transmitMessageVlaue = {}
+			transmitMessageVlaue.addresseeName = item.addresseeName
+			transmitMessageVlaue.addresseeAddress = item.addresseeAddress
+			transmitMessageVlaue.addresseePhone = item.addresseePhone
+			transmitMessageVlaue.createTime = item.createTime
+			transmitMessageVlaue.id = item.id
+			transmitMessageVlaue.userId = item.userId
+			this.$store.commit('getTransmitMessageVlaue', transmitMessageVlaue);
 			this.$router.push({ path: "/Express" })
 		},
-		adressLinkSj(item) {
-			let sjInfo = {}
-			sjInfo.sjname = item.name + ' ' + item.phone
-			sjInfo.sjadd = item.provinceAndCity + ' ' + item.address
-			sjInfo.receiver = item.name
-			sjInfo.receiverPhone = item.phone
-			sjInfo.receiveAddr = item.provinceAndCity
-			sjInfo.receiveAddress = item.address
-			this.$store.commit("getSjInfo", sjInfo)
-			this.$router.push({ path: "/Express" })
-		}
 	},
 	computed: {
 

+ 8 - 4
src/store/store.js

@@ -7,9 +7,9 @@ const store = new Vuex.Store({
 	state: {
 		openId: localStorage.getItem("openid"),
 		//服务器用
-		//host: "http://www.kzmos.com/tianzong",
-   host: "http://47.101.145.23/tianzong",
-		//本地用
+		//host: "http://www.kzmos.com/tianzong",
+		host: "http://47.101.145.23/tianzong",
+		//本地用
 		//host:"http://localhost:8080/tianzong",
 		regEmail: "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$",
 		regPhone: "^(1[3-9])\\d{9}$",
@@ -20,9 +20,13 @@ const store = new Vuex.Store({
 		foreignSjInfo: {},
 		foreignJjInfo: {},
 		hkSjInfo: {},
-		hkJjInfo: {}
+		hkJjInfo: {},
+		transmitMessageVlaue: {}
 	},
 	mutations: {
+		getTransmitMessageVlaue(state, transmitMessageVlaue) {
+			state.transmitMessageVlaue = transmitMessageVlaue
+		},
 		getId(state, openid) {
 			state.openId = openid
 		},