瀏覽代碼

Merge remote-tracking branch 'remotes/origin/developer' into developerA

zhengjinyi 1 年之前
父節點
當前提交
95a228a197

+ 32 - 4
common/css/iconfont.scss

@@ -1,9 +1,9 @@
 @font-face {
   font-family: "iconfont"; /* Project id 4053045 */
-  src: url('//at.alicdn.com/t/c/font_4053045_ne05dr0bqd8.woff2?t=1684465163145') format('woff2'),
-       url('//at.alicdn.com/t/c/font_4053045_ne05dr0bqd8.woff?t=1684465163145') format('woff'),
-       url('//at.alicdn.com/t/c/font_4053045_ne05dr0bqd8.ttf?t=1684465163145') format('truetype'),
-       url('//at.alicdn.com/t/c/font_4053045_ne05dr0bqd8.svg?t=1684465163145#iconfont') format('svg');
+  src: url('//at.alicdn.com/t/c/font_4053045_089c7b5c4rrl.woff2?t=1685000375643') format('woff2'),
+       url('//at.alicdn.com/t/c/font_4053045_089c7b5c4rrl.woff?t=1685000375643') format('woff'),
+       url('//at.alicdn.com/t/c/font_4053045_089c7b5c4rrl.ttf?t=1685000375643') format('truetype'),
+       url('//at.alicdn.com/t/c/font_4053045_089c7b5c4rrl.svg?t=1685000375643#iconfont') format('svg');
 }
 
 .iconfont {
@@ -14,6 +14,34 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-web_xiangxiazhankai:before {
+  content: "\e650";
+}
+
+.icon-shanchu1:before {
+  content: "\e765";
+}
+
+.icon-weixin:before {
+  content: "\e766";
+}
+
+.icon-yaoqingmakuaijiedenglu:before {
+  content: "\e762";
+}
+
+.icon-jituancaigouyuandenglu:before {
+  content: "\e764";
+}
+
+.icon-yunyingrenyuanguanli:before {
+  content: "\e760";
+}
+
+.icon-bangjigoucaigou:before {
+  content: "\e761";
+}
+
 .icon-genghuan:before {
   content: "\e61a";
 }

+ 1 - 0
components/cm-module/cm-cart-temp/cm-unit-popup.vue

@@ -42,6 +42,7 @@
 									v-model="addParams.count"
 									maxlength="4"
 									@blur="skuChangNumberChange($event)"
+									cursor-spacing="40"
 								/>
 								<view
 									class="iconfont icon-jiahao"

+ 1 - 0
components/cm-module/productDetails/cm-unit-popup.vue

@@ -44,6 +44,7 @@
 									v-model="productCount"
 									maxlength="4"
 									@blur="changeNumber($event)"
+									cursor-spacing="40"
 								/>
 								<view
 									class="iconfont icon-jiahao"

+ 1 - 0
pages.json

@@ -227,6 +227,7 @@
 					"path": "order/order-details",
 					"style": {
 						"navigationBarTitleText": "订单详情",
+						"enablePullDownRefresh": true,
 						"navigationStyle": "custom"
 					}
 				},

+ 3 - 1
pages/goods/components/cm-unit-popup.vue

@@ -40,6 +40,7 @@
 										v-model="productCount"
 										maxlength="4"
 										@blur="changeNumber($event)"
+										cursor-spacing="40"
 									/>
 									<view
 										class="iconfont icon-jiahao"
@@ -128,7 +129,8 @@ export default {
 			handleMinNumber: 1, // 规格起订量
 			isShowLadder: false,
 			laddePopupShow: false,
-			isBtnDisable: false
+			isBtnDisable: false,
+			isIphoneX:this.$store.state.isIphoneX,
 		}
 	},
 	created() {

+ 452 - 0
pages/user/order/components/cm-invice-popup.vue

@@ -0,0 +1,452 @@
+<template name="cm-parameter">
+	<view class="invoice-template">
+		<!-- 发票信息 -->
+		<view class="invoice-title" @tap.stop="handleShowPopup">
+			<text class="text">发票信息:</text> <text class="invoice-text">{{ invoiceText }}</text>
+			<text class="iconfont icon-xiangyou"></text>
+		</view>
+		<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup">
+			<view class="tui-popup-box clearfix">
+				<view class="title">发票信息</view>
+				<view class="tui-popup-close" @click="hidePopup">
+					<text class="iconfont icon-iconfontguanbi"></text>
+				</view>
+				<view class="tui-popup-main">
+					<view class="popup-form">
+						<text
+							class="radio"
+							v-for="(invoice, index) in invoiceType"
+							:key="index"
+							@click="handleTnvoiceType(invoice.type, index)"
+							:class="invoiceTypeIndex === index ? 'active' : ''"
+						>
+							{{ invoice.name }}
+						</text>
+					</view>
+					<view class="popup-form" v-if="invoiceTypeIndex === 1">
+						<view class="label">抬头类型:</view>
+						<text
+							class="radio"
+							v-for="(title, index) in titleType"
+							:key="index"
+							@click="handleTitleType(title.type, index)"
+							:class="titleIndex === index ? 'active' : ''"
+						>
+							{{ title.name }}
+						</text>
+					</view>
+					<view class="popup-form" v-if="invoiceTypeIndex > 0">
+						<view class="label">发票抬头:</view>
+						<input
+							class="input"
+							type="text"
+							v-model="invoiceData.invoiceTitle"
+							placeholder="请输入发票抬头"
+							maxlength="50"
+							cursor-spacing="40"
+						/>
+					</view>
+					<template v-if="invoiceTypeIndex === 2 || titleIndex === 1">
+						<view class="popup-form">
+							<view class="label">单位税号:</view>
+							<input
+								class="input"
+								type="text"
+								v-model="invoiceData.corporationTaxNum"
+								placeholder="请输入单位税号"
+								maxlength="30"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">注册地址:</view>
+							<input
+								type="text"
+								class="input"
+								v-model="invoiceData.registeredAddress"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入注册地址' : '选填'"
+								maxlength="50"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">注册电话:</view>
+							<input
+								type="number"
+								class="input"
+								v-model="invoiceData.registeredPhone"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入注册电话' : '选填'"
+								maxlength="11"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">开户银行:</view>
+							<input
+								type="text"
+								class="input"
+								v-model="invoiceData.openBank"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入开户银行' : '选填'"
+								maxlength="50"
+								cursor-spacing="40"
+							/>
+						</view>
+						<view class="popup-form">
+							<view class="label">银行账号:</view>
+							<input
+								type="number"
+								class="input"
+								v-model="invoiceData.bankAccountNo"
+								:placeholder="invoiceTypeIndex === 2 ? '请输入银行账号' : '选填'"
+								maxlength="30"
+								cursor-spacing="40"
+							/>
+						</view>
+					</template>
+				</view>
+				<view class="tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
+					<view class="tui-modal-flex">
+						<button
+							class="tui-modal-button"
+							:disabled="disabled"
+							@click="handleConfirm"
+						>
+							确定
+						</button>
+					</view>
+				</view>
+			</view>
+		</tui-bottom-popup>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'cm-prams-popup',
+	props: {},
+	data() {
+		return {
+			popupShow: false,
+			isIphoneX: this.$store.state.isIphoneX,
+			userId:0,
+			invoiceTypeIndex: 0,
+			titleIndex: 0,
+			invoiceType: [
+				{
+					name: '不开发票',
+					type: 0
+				},
+				{
+					name: '普通发票',
+					type: 1
+				},
+				{
+					name: '增值税专用发票',
+					type: 2
+				}
+			],
+			titleType: [
+				{
+					name: '个人',
+					type: 0
+				},
+				{
+					name: '单位',
+					type: 1
+				}
+			],
+			invoiceText: '不开发票',
+			invoiceData: {
+				type: 0, 		//发票类型 0 不开发票 1 普通发票 2 增值税发票
+				headingType: 0, 		//抬头类型 0 个人 1 单位
+				invoiceTitle: '', 		//发票抬头
+				corporationTaxNum: '',  //单位税号
+				registeredAddress: '',  //单位地址
+				registeredPhone: '',    //注册电话
+				openBank: '', 		    //开户银行
+				bankAccountNo: ''       //银行账号
+			}
+		}
+	},
+	created() {
+		
+	},
+	computed: {
+		
+	},
+	methods: {
+		// 切换发票类型
+		handleTnvoiceType(type, index) {
+			this.invoiceTypeIndex = index
+			this.invoiceData.type = type
+			if(this.invoiceTypeIndex === 1){
+				this.titleIndex = 0
+				this.invoiceData.headingType = 0
+			}
+		},
+		// 切换抬头类型
+		handleTitleType(type, index) {
+			this.titleIndex = index
+			this.invoiceData.headingType = type
+		},
+		// 显示发票弹窗 查询发票信息
+		handleShowPopup(){
+			this.getUseFindInvoice()
+		},
+		// 确认保存发票
+		handleConfirm(){
+			if(this.invoiceTypeIndex === 0){
+				this.invoiceData = {...this.invoiceData , ...{ type : 0 }}
+				this.invoiceText = this.setInvoiceText(this.invoiceData)
+				this.hidePopup()
+			}else{
+				this.checkedInput()
+			}
+		},
+		// 校验必填项
+		checkedInput(){
+			/**
+			 *  普通发票 个人 仅校验发票抬头
+			 * 	普通发票 单位 校验发票抬头 校验单位税号
+			 *  增值税发票 校验全部
+			 * */ 
+			if(this.invoiceTypeIndex === 1 && this.titleIndex === 0){
+				if (!this.invoiceData.invoiceTitle) {
+					this.$util.msg('请输入发票抬头', 2000)
+					return
+				}
+			}
+			if(this.invoiceTypeIndex === 1 && this.titleIndex === 1){
+				if (!this.invoiceData.invoiceTitle) {
+					this.$util.msg('请输入发票抬头', 2000)
+					return
+				}
+				if (!this.invoiceData.corporationTaxNum) {
+					this.$util.msg('请输入单位税号', 2000)
+					return
+				}
+			}
+			if(this.invoiceTypeIndex === 2){
+				if (!this.invoiceData.invoiceTitle) {
+					this.$util.msg('请输入发票抬头', 2000)
+					return
+				}
+				if (!this.invoiceData.corporationTaxNum) {
+					this.$util.msg('请输入单位税号', 2000)
+					return
+				}
+				if (!this.invoiceData.registeredAddress) {
+					this.$util.msg('请输入注册地址', 2000)
+					return
+				}
+				if (!this.invoiceData.registeredPhone) {
+					this.$util.msg('请输入注册电话', 2000)
+					return
+				}
+				if (!this.invoiceData.openBank) {
+					this.$util.msg('请输入开户银行', 2000)
+					return
+				}
+				if (!this.invoiceData.bankAccountNo) {
+					this.$util.msg('请输入银行账号', 2000)
+					return
+				}
+			}
+			this.updateInvoiceFn()
+		},
+		//获取发票信息
+		async getUseFindInvoice() {
+			try {
+				this.popupShow = true
+				const resolve = await this.$api.getStorage()
+				this.userId = resolve.userId
+				const res = await this.OrderService.GetFindInvoice({ userId: resolve.userId })
+				this.invoiceData = {...this.invoiceData, ...res.data}
+				console.log('invoiceData',this.invoiceData)
+			} catch (error) {
+				console.log('error',error)
+			}
+		},
+		//保存发票信息
+		async updateInvoiceFn() {
+			try {
+				const res = await this.OrderService.updateOrganize({ ...this.invoiceData,...{userId: this.userId }})
+				this.invoiceText = this.setInvoiceText(this.invoiceData)
+				this.$emit('handleChoiceaInvoice', this.invoiceData)
+				this.popupShow = false
+			} catch (error) {
+				console.log('error',error)
+			}
+		},
+		// 设置发票文案
+		setInvoiceText(data){
+			const map = {
+				0:'个人',
+				1:'单位'
+			}
+			switch (data.type){
+				case 0:
+					return `不开发票`
+					break;
+				case 1:
+					return `普票-${map[data.headingType]}(${this.nameFilters(data.invoiceTitle)})`
+					break;
+				case 2:
+					return `专票(${this.nameFilters(data.invoiceTitle)})`
+					break;
+			}
+		},
+		nameFilters(value) {
+			if(value && value.length>10){
+				return value.substring(0,10)+"..." 
+			}else{
+				return value
+			}
+		},
+		hidePopup() {
+			this.popupShow = false
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.invoice-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.invoice-title {
+		width: 702rpx;
+		padding: 0 24rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		position: relative;
+		border-bottom: 1px solid #ebebeb;
+		.text {
+			font-size: $font-size-28;
+			color: $text-color;
+		}
+		.invoice-text {
+			font-size: $font-size-28;
+			color: #F85050;
+			line-height: 90rpx;
+			display: inline-block;
+			float: right;
+			box-sizing: border-box;
+			padding-right: 30rpx;
+		}
+		.iconfont {
+			width: 50rpx;
+			height: 88rpx;
+			line-height: 88rpx;
+			color: #999999;
+			display: block;
+			position: absolute;
+			right: 0;
+			top: 0;
+		}
+	}
+}
+.tui-popup-box {
+	position: relative;
+	box-sizing: border-box;
+	min-height: 220rpx;
+	padding: 24rpx 24rpx 0 24rpx;
+	.title {
+		font-size: $font-size-34;
+		color: $text-color;
+		line-height: 88rpx;
+		text-align: center;
+		float: left;
+		width: 100%;
+		height: 88rpx;
+		font-weight: bold;
+	}
+	.tui-popup-close {
+		width: 90rpx;
+		height: 90rpx;
+		position: absolute;
+		right: 0;
+		top: 24rpx;
+		line-height: 90rpx;
+		text-align: center;
+		color: #b2b2b2;
+		.icon-iconfontguanbi {
+			font-size: $font-size-40;
+		}
+	}
+	.tui-popup-main {
+		width: 100%;
+		float: left;
+		min-height: 400rpx;
+		.popup-form {
+			width: 100%;
+			height: 112rpx;
+			box-sizing: border-box;
+			padding: 23rpx 0;
+			border-bottom: 1px solid #e1e1e1;
+			&.none{
+				border-bottom: none;
+			}
+			.label {
+				width: 140rpx;
+				float: left;
+				font-size: $font-size-28;
+				line-height: 64rpx;
+				color: #666666;
+			}
+			.radio {
+				height: 64rpx;
+				padding: 0 28rpx;
+				line-height: 64rpx;
+				color: #666666;
+				text-align: center;
+				border-radius: 32rpx;
+				margin: 0 8rpx;
+				display: inline-block;
+				background: #f5f5f5;
+				font-size: $font-size-28;
+				&.active {
+					background: #fff4e6;
+					color: #f3b574;
+				}
+			}
+			.input {
+				line-height: 64rpx;
+				height: 64rpx;
+				color: #333333;
+				font-size: $font-size-28;
+			}
+		}
+	}
+	.tui-popup-btn {
+		width: 100%;
+		height: auto;
+		float: left;
+	}
+	.tui-modal-flex {
+		width: 100%;
+		height: 84rpx;
+		margin-top: 40rpx;
+		display: flex;
+		.tui-modal-button {
+			flex: 1;
+			line-height: 84rpx;
+			font-size: $font-size-28;
+			text-align: center;
+			border-radius: 42rpx;
+			padding: 0;
+			margin: 0 15rpx;
+			box-sizing: border-box;
+			background: $btn-confirm;
+			color: #ffffff;
+			&.disabled {
+				background: #e1e1e1;
+				border-radius: 42rpx;
+			}
+		}
+	}
+}
+</style>

+ 122 - 168
pages/user/order/components/details/invoiceTent.vue

@@ -1,197 +1,151 @@
 <template name="invoice">
 	<view class="invoice-template">
-		 <!-- 发票信息 -->
-		 <view class="invoice-content">
-		 	<view class="invoice-title">发票信息</view>
-			<view class="invoice-empty" v-if="isEmpty">
-			 	<text>不要发票</text></text>
+		<!-- 发票信息 -->
+		<view class="invoice-content">
+			<view class="invoice-title">发票信息</view>
+			<view class="invoice-empty">
+				<text>{{ invoiceText }}</text>
 			</view>
-			<view class="invoice-text" v-else>
-				<view class="invoice-top" @click="showInvoice">
-					<view class="name">{{orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : ''}}</view>
-					<text class="iconfont icon-web_xiangxiazhankai" :class="{'icon-web_xiangxiazhankai-active':isOpen}"></text>
+			<view class="invoice-text" v-if="orderInvoice.type > 0">
+				<view class="table">
+					<text class="label-name">发票抬头:</text>
+					<text class="label-text">{{ orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : '无' }}</text>
 				</view>
-				<view :class="{'invoice-warp--hide':!isOpen}" class="invoice-warp">
-					<view  class="invoice-warp__wrapper invoice-animation" 
-						   :style="{'transform':isOpen?'translateY(0)':'translateY(-50%)','-webkit-transform':isOpen?'translateY(0)':'translateY(-50%)'}">
-						<view class="table">
-							<text class="label-name">单位名称:</text>
-							<text>{{orderInvoice.invoiceTitle ? orderInvoice.invoiceTitle : ''}}</text>
-						</view>
-						<view class="table long">
-							<text class="label-name">纳锐人识别号:</text>
-							<text>{{orderInvoice.corporationTaxNum ? orderInvoice.corporationTaxNum :''}}</text> 
-						</view>
-						<view class="table">
-							<text class="label-name">注册地址:</text>
-							<text>{{orderInvoice.registeredAddress ? orderInvoice.registeredAddress : ''}}</text> 
-						</view>
-						<view class="table">
-							<text class="label-name">注册电话:</text>
-							<text>{{orderInvoice.registeredPhone ? orderInvoice.registeredPhone : ''}}</text>
-						</view>
-						<view class="table">
-							<text class="label-name">开户银行:</text>
-							<text>{{orderInvoice.openBank ? orderInvoice.openBank : ''}}</text>
-						</view>
-						<view class="table">
-							<text class="label-name">银行账号:</text>
-							<text>{{bankAccountNo ? bankAccountNo : ''}}</text>
-						</view>
+				<template v-if="orderInvoice.type === 2 || orderInvoice.headingType === 1">
+					<view class="table">
+						<text class="label-name">单位税号:</text>
+						<text class="label-text">{{
+							orderInvoice.corporationTaxNum ? orderInvoice.corporationTaxNum : '无'
+						}}</text>
 					</view>
-				</view>
+					<view class="table">
+						<text class="label-name">注册地址:</text>
+						<text class="label-text">{{
+							orderInvoice.registeredAddress ? orderInvoice.registeredAddress : '无'
+						}}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">注册电话:</text>
+						<text class="label-text">{{
+							orderInvoice.registeredPhone ? orderInvoice.registeredPhone : '无'
+						}}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">开户银行:</text>
+						<text class="label-text">{{ orderInvoice.openBank ? orderInvoice.openBank : '无' }}</text>
+					</view>
+					<view class="table">
+						<text class="label-name">银行账号:</text>
+						<text class="label-text">{{ bankAccountNo ? bankAccountNo : '无' }}</text>
+					</view>
+				</template>
 			</view>
-		 </view>
+		</view>
 	</view>
 </template>
 
 <script>
-	export default{
-		name:"invoice",
-		props:{
-			orderInvoice:{
-				type:Object
+export default {
+	name: 'invoice',
+	props: {
+		orderInvoice: {
+			type: Object
+		}
+	},
+	filters: {},
+	data() {
+		return {
+			invoiceText: '不开发票',
+			title: '发票信息',
+			isOpen: false,
+			bankAccountNo: ''
+		}
+	},
+	created() {
+		this.initData(this.orderInvoice)
+	},
+	computed: {},
+	methods: {
+		initData(data) {
+			if (data) {
+				this.bankAccountNo = this.$reg.bankRegex(data.bankAccountNo)
+				this.invoiceText = this.setInvoiceText(data)
 			}
 		},
-		data() {
-			return{
-				isEmpty:false,
-				title:'发票信息',
-				isOpen:false,
-				bankAccountNo:''
+		// 设置发票文案
+		setInvoiceText(data) {
+			const map = {
+				0: '个人',
+				1: '单位'
 			}
-		},
-		created(){
-			this.initData(this.orderInvoice)
-		},
-		computed: {
-
-		},
-		methods:{
-			initData(res) {
-				if(res == null || res.type == 0){
-					this.isEmpty = true
-				}else{
-					this.isEmpty = false
-					this.bankAccountNo = this.$reg.bankRegex(res.bankAccountNo)
-				}
-			},
-			onMessage(pros){
-			},
-			showInvoice(){
-				this.isOpen = !this.isOpen
+			switch (data.type) {
+				case 0:
+					return `不开发票`
+					break
+				case 1:
+					return `普票-${map[data.headingType]}`
+					break
+				case 2:
+					return `专票`
+					break
 			}
+		},
+		onMessage(pros) {},
+		showInvoice() {
+			this.isOpen = !this.isOpen
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.invoice-template{
+.invoice-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.invoice-content {
+		width: 702rpx;
+		padding: 20rpx 24rpx;
+	}
+	.invoice-title {
+		font-size: $font-size-28;
+		color: $text-color;
+		text-align: left;
+		line-height: 40rpx;
+		font-weight: bold;
+		margin-bottom: 30rpx;
+	}
+	.invoice-empty {
+		font-size: $font-size-28;
+		color: $text-color;
+		text-align: left;
+		line-height: 64rpx;
+		.txt {
+			font-size: $font-size-24;
+			color: #999999;
+		}
+	}
+	.invoice-text {
 		width: 100%;
 		height: auto;
-		background: #FFFFFF;
-		float: left;
-		margin-top: 24rpx;
-		.invoice-content{
-			width: 702rpx;
-			padding: 20rpx 24rpx;
-		}
-		.invoice-title{
-			font-size: $font-size-28;
-			color: $text-color;
-			text-align: left;
-			line-height: 40rpx;
-			font-weight: bold;
-			margin-bottom: 30rpx;
-		}
-		.invoice-empty{
-			font-size: $font-size-28;
+		.table {
+			height: auto;
+			line-height: 64rpx;
+			font-size: $font-size-26;
 			color: $text-color;
 			text-align: left;
-			line-height: 40rpx;
-			.txt{
-				font-size: $font-size-24;
+			position: relative;
+			.label-name {
+				display: inline-block;
+				line-height: 64rpx;
 				color: #999999;
 			}
-		}
-		.invoice-animation {
-			/* transition: transform 0.3s ease;*/
-			transition-property: transform;
-			transition-duration: 0.3s;
-			transition-timing-function: ease;
-		}
-		.invoice-text{
-			width: 100%;
-			height: auto;
-			.invoice-top{
-				width: 100%;
-				height: 40rpx;
-				line-height: 40rpx;
-				font-size: $font-size-28;
-				color: $text-color;
-				text-align: left;
-				.name{
-					width: 400rpx;
-					float: left;
-					-o-text-overflow: ellipsis;
-					text-overflow: ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 1;
-					overflow: hidden;
-				}
-				.icon-web_xiangxiazhankai{
-					transform: rotate(0deg);
-					transform-origin: center center;
-					float: right;
-					font-size: $font-size-32;
-					color: #000000;
-					/* transition: transform 0.3s ease;*/
-					transition-property: transform;
-					transition-duration: 0.3s;
-					transition-timing-function: ease;
-				}
-				.icon-web_xiangxiazhankai-active{
-					transform: rotate(180deg);
-				}
-			}
-			.invoice-warp{
-				width: 100%;
-				padding: 24rpx 0 0 0;
-				overflow: hidden;
-				.table{
-					padding-left: 130rpx;
-					height: auto;
-					line-height: 64rpx;
-					font-size: $font-size-26;
-					color: $text-color;
-					text-align: left;
-					position: relative;
-					.label-name{
-						display: inline-block;
-						line-height: 64rpx;
-						position: absolute;
-						left: 0;
-						top: 0;
-					}
-					&.long{
-						padding-left: 180rpx;
-					}
-				}
-			}	
-			.invoice-warp__wrapper{
-				/* #ifndef APP-NVUE */
-				display: flex;
-				/* #endif */
-				flex-direction: column;
-				padding-top: 20rpx;
+			.label-text {
+				color: #333333;
 			}
-			.invoice-warp--hide {
-				padding: 0 0;
-				height: 0px;
-				line-height: 0px;
-			}		
 		}
 	}
+}
 </style>

+ 1 - 1
pages/user/order/components/details/voucherRecord.vue

@@ -14,7 +14,7 @@
 						</view>
 					</view>
 				</scroll-view>
-				<view class="record-list-tmk">
+				<view class="record-list-tmk" v-if="item.remarks">
 					备注:{{ item.remarks }}
 				</view>
 			</view>

+ 597 - 534
pages/user/order/components/invoiceTent.vue

@@ -1,15 +1,14 @@
 <template name="invoice">
 	<view class="invoice-template">
-		 <!-- 发票信息 -->
+		<!-- 发票信息 -->
 		<view class="invoice-title" @tap.stop="hanldOperationConfim">
-			<text class="text">发票信息:</text>
-			<text class="iconfont icon-xiangyou"></text>
+			<text class="text">发票信息:</text> <text class="iconfont icon-xiangyou"></text>
 		</view>
 		<view class="invoice-text">
-			<text>{{invoiceText}}</text>
+			<text>{{ invoiceText }}</text>
 		</view>
 		<!--底部选择模态层弹窗组件 -->
-		<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" @tap="choiceaInvoiceConfim">
+		<view class="popup spec" :class="specClass" @touchmove.stop.prevent="discard" @tap="choiceaInvoiceConfim">
 			<!-- 遮罩层 -->
 			<view class="mask"></view>
 			<view class="layer" @tap.stop="discard">
@@ -18,39 +17,76 @@
 					<view class="invoice-radio">
 						<radio-group class="row-group" @change="radioChange">
 							<label class="row-input" v-for="(item, index) in invoiceTypeList" :key="item.value">
-								<radio class="row-radio" :value="item.value" :checked="index === current" color="#F3B574"/>
-								<view class="row-text">{{item.name}}</view>
+								<radio
+									class="row-radio"
+									:value="item.value"
+									:checked="index === current"
+									color="#F3B574"
+								/>
+								<view class="row-text">{{ item.name }}</view>
 							</label>
 						</radio-group>
 					</view>
 					<view class="invoice-main from" v-if="invoiceType == '2'">
 						<view class="invoice-from">
 							<view class="label">单位名称:</view>
-							<input class="form-input" type="text" v-model="invoiceData.invoiceTitle" placeholder="请填写单位信息(必填)" maxlength="24">
+							<input
+								class="form-input"
+								type="text"
+								v-model="invoiceData.invoiceTitle"
+								placeholder="请填写单位信息(必填)"
+								maxlength="24"
+							/>
 						</view>
 						<view class="invoice-from">
 							<view class="label">纳税人识别号:</view>
-							<input class="form-input" type="text" v-model="invoiceData.corporationTaxNum" placeholder="请填写纳税人识别号(必填)" maxlength="24">
+							<input
+								class="form-input"
+								type="text"
+								v-model="invoiceData.corporationTaxNum"
+								placeholder="请填写纳税人识别号(必填)"
+								maxlength="24"
+							/>
 						</view>
 						<view class="invoice-from">
 							<view class="label">注册地址:</view>
-							<input class="form-input" type="text" v-model="invoiceData.registeredAddress" placeholder="请填写单位注册地址(必填)" maxlength="100">
+							<input
+								class="form-input"
+								type="text"
+								v-model="invoiceData.registeredAddress"
+								placeholder="请填写单位注册地址(必填)"
+								maxlength="100"
+							/>
 						</view>
 						<view class="invoice-from">
 							<view class="label">注册电话:</view>
-							<input class="form-input" type="text" v-model="invoiceData.registeredPhone" placeholder="请填写注册电话(必填)" maxlength="15">
+							<input
+								class="form-input"
+								type="text"
+								v-model="invoiceData.registeredPhone"
+								placeholder="请填写注册电话(必填)"
+								maxlength="15"
+							/>
 						</view>
 						<view class="invoice-from">
 							<view class="label">开户银行:</view>
-							<input class="form-input" type="text" v-model="invoiceData.openBank"   placeholder="请填写开户银行(必填)" maxlength="30">
+							<input
+								class="form-input"
+								type="text"
+								v-model="invoiceData.openBank"
+								placeholder="请填写开户银行(必填)"
+								maxlength="30"
+							/>
 						</view>
 						<view class="invoice-from">
 							<view class="label">银行账号:</view>
-							<input class="form-input" 
-								   type="text" 
-								   v-model="invoiceData.bankAccountNo" 
-								   placeholder="请填写银行账号(必填)" 
-								   maxlength="30">
+							<input
+								class="form-input"
+								type="text"
+								v-model="invoiceData.bankAccountNo"
+								placeholder="请填写银行账号(必填)"
+								maxlength="30"
+							/>
 						</view>
 					</view>
 					<view class="invoice-main" v-if="invoiceType == '3'">
@@ -58,27 +94,55 @@
 						<view class="invoice-group tit">
 							<checkbox-group class="row-group" @change="checkboxChange">
 								<view class="text">商品明细</view>
-								<checkbox class="row-radio" value="明细"  :checked="inventoryChecked" color="#F3B574"></checkbox>
+								<checkbox
+									class="row-radio"
+									value="明细"
+									:checked="inventoryChecked"
+									color="#F3B574"
+								></checkbox>
 							</checkbox-group>
 						</view>
 						<view class="invoice-ltitle">发票抬头</view>
 						<view class="invoice-group tit">
 							<radio-group class="row-group radio" @change="radioChangeTitle">
 								<label class="row-input" v-for="(item, index) in invoiceTitleList" :key="item.value">
-									<radio class="row-radio" :value="item.value" :checked="index === titleCurrent" color="#F3B574"/>
-									<view class="row-text">{{item.name}}</view>
+									<radio
+										class="row-radio"
+										:value="item.value"
+										:checked="index === titleCurrent"
+										color="#F3B574"
+									/>
+									<view class="row-text">{{ item.name }}</view>
 								</label>
 							</radio-group>
 						</view>
 						<view class="invoice-group from">
 							<view class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '0'">
-								<input class="form-input" type="text" v-model="peopleInvoiceData.invoiceTitle"   placeholder="请填写个人抬头" maxlength="20">
+								<input
+									class="form-input"
+									type="text"
+									v-model="peopleInvoiceData.invoiceTitle"
+									placeholder="请填写个人抬头"
+									maxlength="20"
+								/>
 							</view>
 							<view class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '1'">
-								<input class="form-input" type="text" v-model="peopleInvoiceData.invoiceTitle"   placeholder="请填写公司抬头" maxlength="20">
+								<input
+									class="form-input"
+									type="text"
+									v-model="peopleInvoiceData.invoiceTitle"
+									placeholder="请填写公司抬头"
+									maxlength="20"
+								/>
 							</view>
 							<view class="group-from" v-if="peopleInvoiceData.invoiceTitleType == '1'">
-								<input class="form-input" type="text" v-model="peopleInvoiceData.corporationTaxNum"   placeholder="请填写纳税人识别号" maxlength="20">
+								<input
+									class="form-input"
+									type="text"
+									v-model="peopleInvoiceData.corporationTaxNum"
+									placeholder="请填写纳税人识别号"
+									maxlength="20"
+								/>
 							</view>
 						</view>
 					</view>
@@ -86,598 +150,597 @@
 						<view class="invoice-none">不开具发票信息</view>
 					</view>
 				</view>
-				<view class="btn">
-					<view class="button add" @click="choiceaInvoiceConfim">完成</view>
-				</view>
+				<view class="btn"> <view class="button add" @click="choiceaInvoiceConfim">完成</view> </view>
 			</view>
 		</view>
 	</view>
 </template>
 
 <script>
-	export default{
-		name:'invoice',
-		data() {
-			return{
-				invoiceText:'不要发票',
-				specClass: '',//规格弹窗css类,控制开关动画
-				invoiceType:'1',//发票类型
-				current:0,
-				titleCurrent:0,
-				inventoryChecked:false,
-				invoiceTypeList:[
-					{value:'1',name:'不要发票'},
-					{value:'2',name:'要发票'},
-				],
-				invoiceTitleList:[
-					{value:'0',name:'个人'},
-					{value:'1',name:'公司'},
-				],
-				peopleInvoiceData:{
-					invoiceTitle:'',   //单位名称
-					invoiceContent:'', //商品明细
-					corporationTaxNum:'',//纳税人识别号
-					invoiceTitleType:'0'//发票抬头类型 1企业 0个人
-				},
-				invoiceData:{
-					invoiceTitle:'',	 //单位名称
-					corporationTaxNum:'',//纳税人识别号
-					registeredAddress: '',//单位地址
-					registeredPhone:'',	 //注册电话
-					openBank:'',		//开户银行
-					bankAccountNo: ''  ,//银行账号
-				},
+export default {
+	name: 'invoice',
+	data() {
+		return {
+			invoiceText: '不要发票',
+			specClass: '', //规格弹窗css类,控制开关动画
+			invoiceType: '1', //发票类型
+			current: 0,
+			titleCurrent: 0,
+			inventoryChecked: false,
+			invoiceTypeList: [{ value: '1', name: '不要发票' }, { value: '2', name: '要发票' }],
+			invoiceTitleList: [{ value: '0', name: '个人' }, { value: '1', name: '公司' }],
+			peopleInvoiceData: {
+				invoiceTitle: '', //单位名称
+				invoiceContent: '', //商品明细
+				corporationTaxNum: '', //纳税人识别号
+				invoiceTitleType: '0' //发票抬头类型 1企业 0个人
+			},
+			invoiceData: {
+				invoiceTitle: '', //单位名称
+				corporationTaxNum: '', //纳税人识别号
+				registeredAddress: '', //单位地址
+				registeredPhone: '', //注册电话
+				openBank: '', //开户银行
+				bankAccountNo: '' //银行账号
 			}
+		}
+	},
+	created() {
+		// this.initData(this.invoiceDatas)
+	},
+	computed: {},
+	methods: {
+		getUseFindInvoice() {
+			//获取发票信息
+			this.$api.getStorage().then(resolve => {
+				this.OrderService.GetFindInvoice({ userId: resolve.userId }).then(response => {
+					if (response.data == null) {
+						this.invoiceData = Object.assign(this.invoiceData, '', { type: 0 })
+					} else {
+						this.invoiceData = response.data
+					}
+				})
+			})
 		},
-		created(){
-			// this.initData(this.invoiceDatas)
+		updateInvoiceFn() {
+			//保存发票信息
+			this.$api.getStorage().then(resolve => {
+				console.log(resolve.userId)
+				this.OrderService.UpdateInvoice(Object.assign({ userId: resolve.userId }, this.invoiceData)).then(
+					response => {}
+				)
+			})
 		},
-		computed: {
-
+		choiceaInvoiceConfim() {
+			switch (this.invoiceType) {
+				case '1':
+					this.choiceaInvoiceThree()
+					this.invoiceText = '不要发票'
+					break
+				// case '2':
+				// 	this.choiceaInvoiceTwo()
+				// 	this.invoiceText = this.peopleInvoiceData.invoiceTitle
+				// 	break;
+				case '2':
+					this.choiceaInvoiceFirst()
+					this.invoiceText = this.invoiceData.invoiceTitle
+					break
+				default:
+					this.choiceaInvoiceThree()
+					this.invoiceText = '不要发票'
+			}
 		},
-		methods:{
-			getUseFindInvoice(){//获取发票信息
-				this.$api.getStorage().then((resolve) => {
-					this.OrderService.GetFindInvoice({userId:resolve.userId}).then(response =>{
-						if(response.data == null){
-							this.invoiceData = Object.assign(this.invoiceData,'',{type:0})
-						}else{
-							this.invoiceData = response.data
-						} 
-					})
-				})
-			},
-			updateInvoiceFn(){//保存发票信息
-				this.$api.getStorage().then((resolve) => {
-					console.log(resolve.userId)
-					this.OrderService.UpdateInvoice(Object.assign({userId:resolve.userId},this.invoiceData)).then(response =>{})
-				})
-			},
-			choiceaInvoiceConfim(){
-				switch(this.invoiceType){
-					case '1':
-						this.choiceaInvoiceThree()
-						this.invoiceText = '不要发票'
-						break
-					// case '2':
-					// 	this.choiceaInvoiceTwo()
-					// 	this.invoiceText = this.peopleInvoiceData.invoiceTitle
-					// 	break;
-					case '2':
-						this.choiceaInvoiceFirst()
-						this.invoiceText = this.invoiceData.invoiceTitle
-						break	
-						default:
-						this.choiceaInvoiceThree()
-						this.invoiceText = '不要发票'
-				}
-			},
-			choiceaInvoiceFirst(){//增值税发票
-				if(this.invoiceData.invoiceTitle == ''){
-					this.$util.msg('请输入单位名称',2000)
-					return
-				}
-				if(this.invoiceData.corporationTaxNum == ''){
-					this.$util.msg('请输入纳税人识别号',2000)
-					return
-				}
-				if(this.invoiceData.registeredAddress == ''){
-					this.$util.msg('请输入单位地址',2000)
-					return
-				}
-				if(this.invoiceData.registeredPhone == ''){
-					this.$util.msg('请输入注册电话',2000)
-					return
-				}
-				if(this.invoiceData.openBank == ''){
-					this.$util.msg('请输入开户银行',2000)
-					return
-				}
-				if(this.invoiceData.bankAccountNo == ''){
-					this.$util.msg('请输入银行账号',2000)
-					return
-				}
-				this.updateInvoiceFn()
-				this.$emit('handleChoiceaInvoice',Object.assign(this.invoiceData,'',{type:2}))
-				this.hideSpec()
-			},
-			choiceaInvoiceTwo(){//取消普通发票.(可删除)	
-				switch(this.peopleInvoiceData.invoiceTitleType){
-					case '0':
-						if(this.peopleInvoiceData.invoiceContent == ''){
-							this.$util.msg('请选择商品明细',2000)
-							return
-						}
-						if(this.peopleInvoiceData.invoiceTitle == ''){
-							this.$util.msg('请输入个人抬头',2000)
-							return
-						}
-						break
-					case '1':
-						if(this.peopleInvoiceData.invoiceContent == ''){
-							this.$util.msg('请选择商品明细',2000)
-							return
-						}
-						if(this.peopleInvoiceData.invoiceTitle == ''){
-							this.$util.msg('请输入公司抬头',2000)
-							return
-						}
-						if(this.peopleInvoiceData.corporationTaxNum == ''){
-							this.$util.msg('请输入纳税人识别号',2000)
-							return
-						}
-						break
-				}
-				this.$emit('handleChoiceaInvoice',Object.assign(this.peopleInvoiceData,'',{type:1}))
-				this.hideSpec()
-			},
-			choiceaInvoiceThree(){//不要发票
-				this.invoiceData = {}
-				this.$emit('handleChoiceaInvoice',Object.assign(this.invoiceData,'',{type:0}))
-				this.hideSpec()
-			},
-			hideSpec() {//关闭弹窗
-				this.specClass = 'hide'
-				setTimeout(() => {
-					this.specClass = 'none'
-				}, 200)
-			},
-			hanldOperationConfim(){//显示发票弹窗
-				this.specClass = 'show'
-			},
-			radioChange(e) {
-				this.invoiceType = e.target.value
-				for (let i = 0; i < this.invoiceTypeList.length; i++) {
-					if (this.invoiceTypeList[i].value === this.invoiceType) {
-						this.current = i
-						break
+		choiceaInvoiceFirst() {
+			//增值税发票
+			if (this.invoiceData.invoiceTitle == '') {
+				this.$util.msg('请输入单位名称', 2000)
+				return
+			}
+			if (this.invoiceData.corporationTaxNum == '') {
+				this.$util.msg('请输入纳税人识别号', 2000)
+				return
+			}
+			if (this.invoiceData.registeredAddress == '') {
+				this.$util.msg('请输入单位地址', 2000)
+				return
+			}
+			if (this.invoiceData.registeredPhone == '') {
+				this.$util.msg('请输入注册电话', 2000)
+				return
+			}
+			if (this.invoiceData.openBank == '') {
+				this.$util.msg('请输入开户银行', 2000)
+				return
+			}
+			if (this.invoiceData.bankAccountNo == '') {
+				this.$util.msg('请输入银行账号', 2000)
+				return
+			}
+			this.updateInvoiceFn()
+			this.$emit('handleChoiceaInvoice', Object.assign(this.invoiceData, '', { type: 2 }))
+			this.hideSpec()
+		},
+		choiceaInvoiceTwo() {
+			//取消普通发票.(可删除)
+			switch (this.peopleInvoiceData.invoiceTitleType) {
+				case '0':
+					if (this.peopleInvoiceData.invoiceContent == '') {
+						this.$util.msg('请选择商品明细', 2000)
+						return
 					}
-				}
-				switch(this.invoiceType){
-					case '2':
-						this.getUseFindInvoice()
-						break
-					//取消普通发票.(可删除)	
-					// case '3':
-					// 	this.peopleInvoiceData.invoiceTitleType = "0"
-					// 	this.titleCurrent = 0
-					// 	break;
-				}		
-			},
-			radioChangeTitle(e) {
-				this.peopleInvoiceData.invoiceTitleType = e.target.value
-				for (let i = 0; i < this.invoiceTitleList.length; i++) {
-					if (this.invoiceTitleList[i].value === this.peopleInvoiceData.invoiceTitleType) {
-						this.titleCurrent = i
-						break
+					if (this.peopleInvoiceData.invoiceTitle == '') {
+						this.$util.msg('请输入个人抬头', 2000)
+						return
+					}
+					break
+				case '1':
+					if (this.peopleInvoiceData.invoiceContent == '') {
+						this.$util.msg('请选择商品明细', 2000)
+						return
+					}
+					if (this.peopleInvoiceData.invoiceTitle == '') {
+						this.$util.msg('请输入公司抬头', 2000)
+						return
+					}
+					if (this.peopleInvoiceData.corporationTaxNum == '') {
+						this.$util.msg('请输入纳税人识别号', 2000)
+						return
 					}
+					break
+			}
+			this.$emit('handleChoiceaInvoice', Object.assign(this.peopleInvoiceData, '', { type: 1 }))
+			this.hideSpec()
+		},
+		choiceaInvoiceThree() {
+			//不要发票
+			this.invoiceData = {}
+			this.$emit('handleChoiceaInvoice', Object.assign(this.invoiceData, '', { type: 0 }))
+			this.hideSpec()
+		},
+		hideSpec() {
+			//关闭弹窗
+			this.specClass = 'hide'
+			setTimeout(() => {
+				this.specClass = 'none'
+			}, 200)
+		},
+		hanldOperationConfim() {
+			//显示发票弹窗
+			this.specClass = 'show'
+		},
+		radioChange(e) {
+			this.invoiceType = e.target.value
+			for (let i = 0; i < this.invoiceTypeList.length; i++) {
+				if (this.invoiceTypeList[i].value === this.invoiceType) {
+					this.current = i
+					break
 				}
-				switch(this.peopleInvoiceData.invoiceTitleType){
-					case '1':
-						this.inventoryChecked = false
-						this.peopleInvoiceData.invoiceTitle = ''
-						this.peopleInvoiceData.invoiceContent = ''
-						break
-				}		
-			},
-			checkboxChange(e){
-				this.inventoryChecked = !this.inventoryChecked
-				this.peopleInvoiceData.invoiceContent = e.detail.value[0]
-			},
-			inputBankNum(val) {
-				if (/\S{5}/.test(val)) {
-					this.invoiceData.bankAccountNo = val.replace(/\s/g, '').replace(/(.{4})/g, '$1 ')
+			}
+			switch (this.invoiceType) {
+				case '2':
+					this.getUseFindInvoice()
+					break
+				//取消普通发票.(可删除)
+				// case '3':
+				// 	this.peopleInvoiceData.invoiceTitleType = "0"
+				// 	this.titleCurrent = 0
+				// 	break;
+			}
+		},
+		radioChangeTitle(e) {
+			this.peopleInvoiceData.invoiceTitleType = e.target.value
+			for (let i = 0; i < this.invoiceTitleList.length; i++) {
+				if (this.invoiceTitleList[i].value === this.peopleInvoiceData.invoiceTitleType) {
+					this.titleCurrent = i
+					break
 				}
-			},
-			discard(){
-				//丢弃
 			}
+			switch (this.peopleInvoiceData.invoiceTitleType) {
+				case '1':
+					this.inventoryChecked = false
+					this.peopleInvoiceData.invoiceTitle = ''
+					this.peopleInvoiceData.invoiceContent = ''
+					break
+			}
+		},
+		checkboxChange(e) {
+			this.inventoryChecked = !this.inventoryChecked
+			this.peopleInvoiceData.invoiceContent = e.detail.value[0]
+		},
+		inputBankNum(val) {
+			if (/\S{5}/.test(val)) {
+				this.invoiceData.bankAccountNo = val.replace(/\s/g, '').replace(/(.{4})/g, '$1 ')
+			}
+		},
+		discard() {
+			//丢弃
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	.invoice-template{
+.invoice-template {
+	width: 100%;
+	height: auto;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	.invoice-title {
+		width: 702rpx;
+		padding: 0 24rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		position: relative;
+		border-bottom: 1px solid #ebebeb;
+		.text {
+			font-size: $font-size-28;
+			color: $text-color;
+		}
+		.iconfont {
+			width: 50rpx;
+			height: 88rpx;
+			line-height: 88rpx;
+			color: #999999;
+			display: block;
+			position: absolute;
+			right: 0;
+			top: 0;
+		}
+	}
+	.invoice-text {
+		width: 702rpx;
+		padding: 0 24rpx;
+		font-size: $font-size-24;
+		color: #666666;
+		line-height: 60rpx;
+	}
+	.invoice-ltitle {
 		width: 100%;
-		height: auto;
-		background: #FFFFFF;
-		float: left;
-		margin-top: 24rpx;
-		.invoice-title{
-			width: 702rpx;
-			padding: 0 24rpx;
+		line-height: 60rpx;
+		height: 60rpx;
+		font-size: $font-size-28;
+		color: #333333;
+	}
+	.invoice-radio {
+		width: 100%;
+		height: 88rpx;
+		line-height: 88rpx;
+		display: flex;
+		border-bottom: 1px solid #ebebeb;
+		.row-group {
+			flex: 1;
+			display: flex;
+		}
+		.row-input {
+			flex: 1;
 			height: 88rpx;
 			line-height: 88rpx;
-			position: relative;
-			border-bottom: 1px solid #EBEBEB;
-			.text{
-				font-size: $font-size-28;
-				color: $text-color;
-			}
-			.iconfont{
-				width: 50rpx;
-				height: 88rpx;
-				line-height: 88rpx;
-				color: #999999;
-				display: block;
-				position: absolute;
-				right: 0;
-				top: 0;
-			}
 		}
-		.invoice-text{
-			width: 702rpx;
-			padding: 0 24rpx;
+		.row-radio {
+			float: left;
+			transform: scale(0.6);
+		}
+		.row-text {
 			font-size: $font-size-24;
-			color: #666666;
-			line-height: 60rpx;
+			color: $text-color;
 		}
-		.invoice-ltitle{
-			width: 100%;
+	}
+	.invoice-main {
+		width: 100%;
+		height: auto;
+		margin-top: 30rpx;
+		&.from {
+			padding-bottom: 40rpx;
+		}
+		.invoice-none {
 			line-height: 60rpx;
 			height: 60rpx;
-			font-size: $font-size-28;
-			color: #333333;
+			font-size: $font-size-24;
+			color: #666666;
+			text-align: center;
 		}
-		.invoice-radio{
-			width: 100%;
-			height: 88rpx;
-			line-height: 88rpx;
-			display: flex;
-			border-bottom: 1px solid #EBEBEB;
-			.row-group{
-				flex:1;
-				display: flex;
-			}
-			.row-input{
-				flex: 1;
-				height: 88rpx;
-				line-height: 88rpx;
-			}
-			.row-radio{
+		.invoice-from {
+			width: 662rpx;
+			height: 40rpx;
+			padding: 20rpx;
+			line-height: 40rpx;
+			align-items: flex-start;
+			font-size: $font-size-28;
+			color: $text-color;
+			background: #f7f7f7;
+			border-radius: 14rpx;
+			margin-bottom: 20rpx;
+			.label {
+				height: 40rpx;
+				line-height: 40rpx;
 				float: left;
-				transform: scale(0.6);
 			}
-			.row-text{
-				font-size: $font-size-24;
-				color: $text-color;
+			.form-input {
+				height: 40rpx;
+				line-height: 40rpx;
+				flex-grow: 1;
+				padding-left: 20rpx;
 			}
 		}
-		.invoice-main{
+		.invoice-group {
 			width: 100%;
-			height: auto;
-			margin-top: 30rpx;
-			&.from{
-				padding-bottom: 40rpx;
-			}
-			.invoice-none{
-				line-height: 60rpx;
-				height: 60rpx;
-				font-size: $font-size-24;
-				color: #666666;
-				text-align: center;
+			height: 88rpx;
+			display: flex;
+			border-bottom: 1px solid #ebebeb;
+			&.tit {
+				margin-bottom: 30rpx;
 			}
-			.invoice-from{
-				width: 662rpx;
-				height: 40rpx;
-				padding: 20rpx;
-				line-height: 40rpx;
-				align-items: flex-start;
-				font-size: $font-size-28;
-				color: $text-color;
-				background: #F7F7F7;
-				border-radius: 14rpx;
-				margin-bottom: 20rpx;
-				.label{
-					height: 40rpx;
-					line-height: 40rpx;
-					float: left;
-				}
-				.form-input{
+			&.from {
+				margin-bottom: 30rpx;
+				border-bottom: 1px solid #ffffff;
+				flex-direction: row;
+				display: block;
+				.group-from {
+					flex: 1;
 					height: 40rpx;
+					padding: 20rpx;
 					line-height: 40rpx;
-					flex-grow: 1;
-					padding-left: 20rpx;
-				}
-			}
-			.invoice-group{
-				width: 100%;
-				height: 88rpx;
-				display: flex;
-				border-bottom: 1px solid #EBEBEB;
-				&.tit{
-					margin-bottom: 30rpx;
-				}
-				&.from{
-					margin-bottom: 30rpx;
-					border-bottom: 1px solid #FFFFFF;
-					flex-direction: row;
-					display: block;
-					.group-from{
-						flex: 1;
+					align-items: flex-start;
+					font-size: $font-size-24;
+					color: $text-color;
+					background: #f7f7f7;
+					border-radius: 14rpx;
+					margin-bottom: 20rpx;
+					.form-input {
 						height: 40rpx;
-						padding: 20rpx;
 						line-height: 40rpx;
-						align-items: flex-start;
-						font-size: $font-size-24;
-						color: $text-color;
-						background: #F7F7F7;
-						border-radius: 14rpx;
-						margin-bottom: 20rpx;
-						.form-input{
-							height: 40rpx;
-							line-height: 40rpx;
-							flex-grow: 1;
-						}
+						flex-grow: 1;
 					}
 				}
-				.row-group{
+			}
+			.row-group {
+				line-height: 88rpx;
+				flex: 1;
+				.text {
+					font-size: $font-size-24;
+					color: $text-color;
 					line-height: 88rpx;
-					flex: 1;
-					.text{
-						font-size: $font-size-24;
-						color: $text-color;
+					float: left;
+				}
+				.row-radio {
+					float: right;
+					transform: scale(0.8);
+					border-radius: 50%;
+				}
+				&.radio {
+					display: flex;
+					.row-input {
+						flex: 1;
+						height: 88rpx;
 						line-height: 88rpx;
-						float: left;
 					}
-					.row-radio{
-						float: right;
-						transform: scale(0.8);
-						border-radius: 50%;
+					.row-radio {
+						float: left;
+						transform: scale(0.6);
 					}
-					&.radio{
-						display: flex;
-						.row-input{
-							flex: 1;
-							height: 88rpx;
-							line-height: 88rpx;
-						}
-						.row-radio{
-							float: left;
-							transform: scale(0.6);
-						}
-						.row-text{
-							font-size: $font-size-24;
-							color: $text-color;
-						}
+					.row-text {
+						font-size: $font-size-24;
+						color: $text-color;
 					}
 				}
 			}
 		}
 	}
-	/* 加入购物模态层*/
-	@keyframes showPopup {
-		0% {
-			opacity: 0;
-		}
-		100% {
-			opacity: 1;
-		}
+}
+/* 加入购物模态层*/
+@keyframes showPopup {
+	0% {
+		opacity: 0;
 	}
-	@keyframes hidePopup {
-		0% {
-			opacity: 1;
-		}
-		100% {
-			opacity: 0;
-		}
+	100% {
+		opacity: 1;
 	}
-	@keyframes showLayer {
-		0% {
-			transform: translateY(0);
-		}
-		100% {
-			transform: translateY(-100%);
-		}
+}
+@keyframes hidePopup {
+	0% {
+		opacity: 1;
 	}
-	@keyframes hideLayer {
-		0% {
-			transform: translateY(-100%);
-		}
-		100% {
-			transform: translateY(0);
-		}
+	100% {
+		opacity: 0;
 	}
-	@keyframes showAmnation {
-		0% {
-			top: -12rpx;
-			opacity: 0;
-		}
-		50% {
-			top: -60rpx;
-			opacity: 1;
-		}
-		100% {
-			top: -100rpx;
-			opacity: 0;
-		}
+}
+@keyframes showLayer {
+	0% {
+		transform: translateY(0);
 	}
-	@keyframes hideAmnation {
-		0% {
-			top: -100rpx;
-			opacity: 0;
-		}
-		100% {
-			top: -12rpx;
-			opacity: 0;
-		}
+	100% {
+		transform: translateY(-100%);
+	}
+}
+@keyframes hideLayer {
+	0% {
+		transform: translateY(-100%);
+	}
+	100% {
+		transform: translateY(0);
 	}
-	.popup {
+}
+@keyframes showAmnation {
+	0% {
+		top: -12rpx;
+		opacity: 0;
+	}
+	50% {
+		top: -60rpx;
+		opacity: 1;
+	}
+	100% {
+		top: -100rpx;
+		opacity: 0;
+	}
+}
+@keyframes hideAmnation {
+	0% {
+		top: -100rpx;
+		opacity: 0;
+	}
+	100% {
+		top: -12rpx;
+		opacity: 0;
+	}
+}
+.popup {
+	position: fixed;
+	top: 0;
+	width: 100%;
+	height: 100%;
+	z-index: 999;
+	display: none;
+	.mask {
 		position: fixed;
 		top: 0;
 		width: 100%;
 		height: 100%;
-		z-index: 999;
-		display: none;
-		.mask{
-			position: fixed;
-			top: 0;
+		z-index: 21;
+		background-color: rgba(0, 0, 0, 0.6);
+	}
+	.layer {
+		position: absolute;
+		z-index: 22;
+		bottom: -1010rpx;
+		width: 702rpx;
+		padding: 24rpx 24rpx 65rpx 24rpx;
+		height: 920rpx;
+		border-radius: 20rpx 20rpx 0 0;
+		background-color: #fff;
+		display: flex;
+		flex-wrap: wrap;
+		align-content: space-between;
+		.content {
 			width: 100%;
-			height: 100%;
-			z-index: 21;
-			background-color: rgba(0, 0, 0, 0.6);
 		}
-		.layer {
-			position: absolute;
-			z-index: 22;
-			bottom: -1010rpx;
-			width: 702rpx;
-			padding: 24rpx 24rpx 65rpx 24rpx;
-			height: 920rpx;
-			border-radius: 20rpx 20rpx 0 0;
-			background-color: #fff;
+		.btn {
+			width: 100%;
+			height: 88rpx;
 			display: flex;
-			flex-wrap: wrap;
-			align-content: space-between;
-			.content {
-				width: 100%;
-			}
-			.btn {
-				width: 100%;
+			.button {
+				width: 702rpx;
 				height: 88rpx;
+				color: #fff;
 				display: flex;
-				.button {
-					width: 702rpx;
-					height: 88rpx;
-					color: #fff;
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					font-size: $font-size-28;
-					border-radius: 44rpx;
-					background: $btn-confirm;
-				}
+				align-items: center;
+				justify-content: center;
+				font-size: $font-size-28;
+				border-radius: 44rpx;
+				background: $btn-confirm;
 			}
 		}
-		
-		&.show {
-			display: block;
-			.mask{
-				animation: showPopup 0.2s linear both;
-			}
-			.layer {
-				animation: showLayer 0.2s linear both;
-			}
+	}
+
+	&.show {
+		display: block;
+		.mask {
+			animation: showPopup 0.2s linear both;
 		}
-		&.hide {
-			display: block;
-			.mask{
-				animation: hidePopup 0.2s linear both;
-			}
-			
-			.layer {
-				animation: hideLayer 0.2s linear both;
-			}
+		.layer {
+			animation: showLayer 0.2s linear both;
 		}
-		&.none {
-			display: none;
+	}
+	&.hide {
+		display: block;
+		.mask {
+			animation: hidePopup 0.2s linear both;
 		}
-		&.service {
-			.row {
-				margin: 30upx 0;
-				.title {
-					font-size: 30upx;
-					margin: 10upx 0;
-				}
-				.description {
-					font-size: 28upx;
-					color: #999;
-				}
+
+		.layer {
+			animation: hideLayer 0.2s linear both;
+		}
+	}
+	&.none {
+		display: none;
+	}
+	&.service {
+		.row {
+			margin: 30upx 0;
+			.title {
+				font-size: 30upx;
+				margin: 10upx 0;
+			}
+			.description {
+				font-size: 28upx;
+				color: #999;
 			}
 		}
-		.layer-smimg{
+	}
+	.layer-smimg {
+		width: 114rpx;
+		height: 114rpx;
+		float: left;
+		border-radius: 10rpx;
+		margin-right: 24rpx;
+		image {
 			width: 114rpx;
 			height: 114rpx;
-			float: left;
 			border-radius: 10rpx;
-			margin-right: 24rpx;
-			image{
-				width: 114rpx;
-				height: 114rpx;	
-				border-radius: 10rpx;
-			}
 		}
-		.layer-nunbox{
-			justify-content: space-between;
-			align-items: center;
-			width: 536rpx;
-			height: 88rpx;
-			padding: 13rpx 0 0 0;
-			float: left;
-			.layer-nunbox-t{
-				width: 100%;
-				height:44rpx;
-				position:relative;
+	}
+	.layer-nunbox {
+		justify-content: space-between;
+		align-items: center;
+		width: 536rpx;
+		height: 88rpx;
+		padding: 13rpx 0 0 0;
+		float: left;
+		.layer-nunbox-t {
+			width: 100%;
+			height: 44rpx;
+			position: relative;
+			display: flex;
+			.layer-nunbox-text {
+				line-height: 44rpx;
+				font-size: $font-size-28;
+			}
+			.number-box {
 				display: flex;
-				.layer-nunbox-text{
-					line-height: 44rpx;
-					font-size: $font-size-28;
+				justify-content: center;
+				align-items: center;
+				.iconfont {
+					font-size: $font-size-32;
+					padding: 0 18rpx;
+					font-size: $text-color;
 				}
-				.number-box{
-					display: flex;
-					justify-content: center;
-					align-items: center;
-					.iconfont{
-						font-size: $font-size-32;
-						padding:0 18rpx;
-						font-size: $text-color;
-					}
-					.btn-input{
-						width: 62rpx;
-						height: 48rpx;
-						line-height: 48rpx;
-						background: #F8F8F8;
-						border-radius: 4rpx;
-						text-align: center;
-						font-size: $font-size-28;
-					}
-				}
-				.product-step{
-					position: absolute;
-					left: 45rpx;
-					bottom: 0;
-					height: 44rpx;
-					background: #FFFFFF;
+				.btn-input {
+					width: 62rpx;
+					height: 48rpx;
+					line-height: 48rpx;
+					background: #f8f8f8;
+					border-radius: 4rpx;
+					text-align: center;
+					font-size: $font-size-28;
 				}
 			}
-			.layer-nunbox-b{
-				width: 100%;
-				height:44rpx;
-				margin-top: 13rpx;
+			.product-step {
+				position: absolute;
+				left: 45rpx;
+				bottom: 0;
+				height: 44rpx;
+				background: #ffffff;
+			}
+		}
+		.layer-nunbox-b {
+			width: 100%;
+			height: 44rpx;
+			margin-top: 13rpx;
+		}
+		.text {
+			line-height: 44rpx;
+			font-size: $font-size-28;
+			.p {
+				color: #ff2a2a;
 			}
-			.text{
-				line-height: 44rpx;
-				font-size: $font-size-28;
-				.p{
-					color: #FF2A2A;
-				}
-				.p:first-child{
-					margin-left: 30rpx;
-				}
-				.p.sm{
-					font-size: $font-size-24;
-				}
+			.p:first-child {
+				margin-left: 30rpx;
+			}
+			.p.sm {
+				font-size: $font-size-24;
 			}
 		}
-	}	
+	}
+}
 </style>

+ 3 - 3
pages/user/order/create-order.vue

@@ -5,7 +5,7 @@
 		<!-- 商品 -->
 		<goods-list ref="goods" v-if="isRequest" :goodsData="goodsData" @handleGoodList="handChangeInputGoodsList" />
 		<!-- 发票信息 -->
-		<invoice-tent
+		<cm-invice-popup
 			ref="invoice"
 			v-if="isRequest"
 			:invoiceDatas="invoiceData"
@@ -50,14 +50,14 @@
 import { mapState, mapMutations } from 'vuex'
 import choiceAddress from './components/choiceAddress'
 import goodsList from './components/goodsList'
-import invoiceTent from './components/invoiceTent'
+import cmInvicePopup from './components/cm-invice-popup'
 import freight from './components/freight'
 import freightAlert from '@/components/cm-module/modelAlert/freightAlert'
 export default {
 	components: {
 		choiceAddress,
 		goodsList,
-		invoiceTent,
+		cmInvicePopup,
 		freight,
 		freightAlert
 	},

+ 4 - 0
pages/user/order/order-details.vue

@@ -349,6 +349,10 @@ export default {
 			return systeminfo
 		}
 	},
+	onPullDownRefresh() {//下拉刷新
+		this.initOrderDetaileData()
+		uni.stopPullDownRefresh()
+	},
 	onShow() {}
 }
 </script>

+ 4 - 4
pages/user/pay/card-order.vue

@@ -51,7 +51,7 @@
 						</view>
 					</view>
 					<view class="pay-checked">
-						<template v-if="showQuickpayMode">
+						<!-- <template v-if="showQuickpayMode">
 							<view class="pay-card-main" v-if="cardsList.length > 0">
 								<view class="pay-item-cell" @click="tabClick(3)">
 									<view class="item-icon">
@@ -85,7 +85,7 @@
 									<view class="item-checked"> <text class="iconfont icon-xiangyou"></text> </view>
 								</view>
 							</view>
-						</template>
+						</template> -->
 						<!-- <view class="pay-item" @click="tabClick(0)" v-if="showWeChatPayMode">
 							<view class="pay-item-cell">
 								<view class="item-icon"><text class="iconfont icon-weixinzhifu"></text></view>
@@ -110,7 +110,7 @@
 								</view>
 							</view>
 						</view>
-						<view class="pay-item" @click="tabClick(2)">
+						<!-- <view class="pay-item" @click="tabClick(2)">
 							<view class="pay-item-cell">
 								<view class="item-icon"><text class="iconfont icon-gerenwangyinzhifu"></text></view>
 								<view class="item-texts"><text>个人网银支付</text></view>
@@ -121,7 +121,7 @@
 									></text>
 								</view>
 							</view>
-						</view>
+						</view> -->
 					</view>
 					<view class="pay-statustext">
 						<view class="pay-statustext-inner">

+ 2 - 2
services/order.service.js

@@ -216,9 +216,9 @@ export default class OrderService {
 	 *@确认订单-保存发票信息
 	 *@param userId		用户ID
 	 */
-    UpdateInvoice (data = {}) {
+    updateOrganize (data = {}) {
         return this.AjaxService.post({ 
-            url:'/order/club/invoice/update', 
+            url:'/order/club/invoice/updateOrganize', 
             data, 
             isLoading: true ,