Browse Source

第四次提交

LongYuFei 2 năm trước cách đây
mục cha
commit
20e9f037a3

BIN
components/cuihai-combox/arrow_down.png


+ 0 - 417
components/cuihai-combox/cuihai-combox.vue

@@ -1,417 +0,0 @@
-<template>
-	<view>
-		<view class="maskbox" v-show="showSelector&&showMask" @click="showSelector=!showSelector"></view>
-		<view class="uni-combox" :style="{zIndex:showSelector?999:1}">
-			<view v-if="label" class="uni-combox__label" :style="labelStyle">
-				<text>{{label}}</text>
-			</view>
-			<view class="uni-combox__input-box">
-				<view class="combox_tags">
-					<view class="combox_tag" v-for="(item,index) in selectList" :key="item[keyId]"
-						@click="delSelected(index)">
-						<view class="tag_name">{{item[keyName]}}</view>
-						<icon type="clear" size="16" />
-					</view>
-				</view>
-				<view class="combox_input_view">
-					<input class="uni-combox__input" type="text" :placeholder="placeholder" :disabled="isDisabled"
-						v-model="inputVal" @input="onInput" @focus="onFocus" @blur="onBlur"
-						@click="isDisabled?toggleSelector():''" />
-					<icon type="clear" size="16" @tap="clearInputValue" v-if="!isDisabled" />
-					<image class="uni-combox__input-arrow" src="./arrow_down.png" style="width: 30rpx;height: 30rpx;"
-						@click="toggleSelector"></image>
-					<view class="uni-combox__selector" v-if="showSelector">
-						<scroll-view scroll-y="true" :style="{maxHeight:selectHeight+'px'}"
-							class="uni-combox__selector-scroll">
-							<view class="uni-combox__selector-empty" v-if="filterCandidatesLength === 0">
-								<text>{{emptyTips}}</text>
-							</view>
-							<view class="uni-combox__selector-item" v-for="(item,index) in filterCandidates"
-								:key="item[keyId]" @click="onSelectorClick(index)"
-								:style="isCheck(item[keyId])?'color:'+selectColor+';background-color:'+selectBgColor+';':'color:'+color+';'">
-								<text>{{item[keyName]}}</text>
-							</view>
-						</scroll-view>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	/**
-	 * Combox 组合输入框
-	 * @description 组合输入框一般用于既可以输入也可以选择的场景
-	 * @property {String} unikey 一个页面同时使用多个组件时用不同值区分
-	 * @property {String} label 左侧文字
-	 * @property {String} labelWidth 左侧内容宽度
-	 * @property {String} placeholder 输入框占位符
-	 * @property {Array} candidates 候选项列表
-	 * @property {String} emptyTips 筛选结果为空时显示的文字
-	 * @property {String} value 单选时组合框的初始值
-	 * @property {Array} initValue 多选时组合框的初始值(下标集合)
-	 * @property {String} keyName json数组显示的字段值
-	 * @property {String} keyId json数组返回的字段
-	 * @property {String} showMask 展示下拉框是否显示遮罩
-	 * @property {Boolean} isJSON 是否是json数组,默认不是
-	 * @property {Boolean} isDisabled 是否是禁用输入,默认不禁用
-	 * @property {Boolean} isCheckBox 是否是多选,默认不是,多选时不能输入查询
-	 * @property {Number} maxNum 多选最多选择个数
-	 * @property {String} color 默认字体颜色,默认#000000
-	 * @property {String} selectColor 选中字体颜色,默认#0081ff
-	 * @property {String} selectBgColor 选中背景颜色,默认#e8e8e8
-	 * @property {String} selectHeight 下拉框最大高度,默认200px
-	 */
-	export default {
-		name: 'comboxSearch',
-		props: {
-			unikey: {
-				type: Number,
-				default: 0
-			},
-			label: {
-				type: String,
-				default: ''
-			},
-			labelWidth: {
-				type: String,
-				default: 'auto'
-			},
-			placeholder: {
-				type: String,
-				default: ''
-			},
-			candidates: {
-				type: Array,
-				default () {
-					return []
-				}
-			},
-			emptyTips: {
-				type: String,
-				default: '无匹配项'
-			},
-			value: {
-				type: String,
-				default: ''
-			},
-			initValue: {
-				type: Array,
-				default: null
-			},
-			keyName: {
-				type: String,
-				default: 'boxname'
-			},
-			keyId: {
-				type: String,
-				default: 'boxsort'
-			},
-			isJSON: {
-				type: Boolean,
-				default: false
-			},
-			isDisabled: {
-				type: Boolean,
-				default: false
-			},
-			showMask: {
-				type: Boolean,
-				default: true
-			},
-			isCheckBox: {
-				type: Boolean,
-				default: false
-			},
-			maxNum: {
-				type: Number,
-				default: -1
-			},
-			color: {
-				default: "#000000",
-				type: String
-			},
-			selectColor: {
-				default: "#0081ff",
-				type: String
-			},
-			selectBgColor: {
-				default: "#e8e8e8",
-				type: String
-			},
-			selectHeight: {
-				type: Number,
-				default: 200
-			}
-		},
-		data() {
-			return {
-				showSelector: false,
-				inputVal: '',
-				selectList: [],
-				arrays: [],
-				gid: `sm-org-dropDown-${(new Date()).getTime()}${Math.random()}`
-			}
-		},
-		computed: {
-			labelStyle() {
-				if (this.labelWidth === 'auto') {
-					return {}
-				}
-				return {
-					width: this.labelWidth
-				}
-			},
-			filterCandidates() {
-				if (!this.isDisabled) {
-					return this["candidates" + this.unikey].filter((item) => {
-						return item[this.keyName].indexOf(this.inputVal) > -1
-					})
-				} else {
-					return this["candidates" + this.unikey];
-				}
-			},
-			filterCandidatesLength() {
-				return this.filterCandidates.length
-			}
-		},
-		created() {
-			this["candidates" + this.unikey] = JSON.parse(JSON.stringify(this.candidates));
-			this.candidates.forEach((item, index) => {
-				if (this.isJSON) {
-					if (this.keyId == "boxsort") {
-						this["candidates" + this.unikey][index].boxsort = index;
-					}
-				} else {
-					let a = {
-						boxsort: index,
-						boxname: item
-					};
-					this["candidates" + this.unikey][index] = a;
-				}
-			});
-			if (this.initValue != null) {
-				this.initValue.forEach(v => {
-					this["candidates" + this.unikey].forEach(c => {
-						if (v == c[this.keyId]) {
-							this.selectList.push(c);
-						}
-					})
-				})
-			}
-			//在created的时候,给子组件放置一个监听,这个时候只是监听器被建立,此时这段代码不会生效
-			//uni.$on接收一个sm-org-dropDown-show的广播
-			uni.$on('sm-org-dropDown-show', (targetId) => {
-				//接收广播,当该组件处于下拉框被打开的状态,并且跟下一个被点击的下拉框的gid不同时,将该组件的下拉框关闭,产生一个互斥效果。
-				if (this.showSelector && this.gid != targetId) {
-					this.showSelector = false
-				}
-			})
-		},
-		//当子组件销毁的时候,将建立的监听销毁,这里不会影响代码效果,但是在多次反复引用组件时,会在根节点定义越来越多的监听,长此以往影响性能,所以在不用的时候及时销毁,养成好习惯
-		beforeDestroy() {
-			uni.$off('sm-org-dropDown-show')
-		},
-		watch: {
-			value: {
-				handler(newVal) {
-					this.inputVal = newVal
-				},
-				immediate: true
-			}
-		},
-		methods: {
-			toggleSelector() {
-				this.showSelector = !this.showSelector
-				if (this.showSelector) {
-					uni.$emit('sm-org-dropDown-show', this.gid)
-				}
-			},
-			onFocus() {
-				this.showSelector = true;
-				uni.$emit('sm-org-dropDown-show', this.gid)
-			},
-			onBlur() {
-
-			},
-			onSelectorClick(index) {
-				if (this.isCheckBox) {
-					let flag = this.selectList.
-					findIndex(item => item[this.keyId] == this.filterCandidates[index][this.keyId]);
-					if (flag != -1) {
-						this.selectList.splice(flag, 1);
-					} else {
-						if (this.selectList.length == this.maxNum) {
-							return;
-						}
-						this.selectList.push(this.filterCandidates[index]);
-					}
-					this.$emit('getValue', this.selectValue());
-				} else {
-					this.showSelector = false
-					if (this.isJSON) {
-						this.$emit('getValue', this.filterCandidates[index][this.keyId]);
-					} else {
-						this.$emit('getValue', this.filterCandidates[index][this.keyName]);
-					}
-					this.inputVal = this.filterCandidates[index][this.keyName];
-				}
-			},
-			selectValue() {
-				let arr = [];
-				if (this.isJSON) {
-					this.selectList.forEach(v => {
-						arr.push(v[this.keyId]);
-					})
-				} else {
-					this.selectList.forEach(v => {
-						arr.push(v[this.keyName]);
-					})
-				}
-				return arr;
-			},
-			delSelected(index) {
-				this.selectList.splice(index, 1);
-				this.$emit('getValue', this.selectValue());
-			},
-			onInput() {
-				setTimeout(() => {
-					this.$emit('input', this.inputVal)
-				})
-			},
-			clearInputValue() {
-				this.inputVal = "";
-				this.showSelector = false;
-			},
-			isCheck(keyId) {
-				return this.selectList.findIndex(v => v[this.keyId] == keyId) != -1;
-			}
-		}
-	}
-</script>
-
-<style scoped>
-	.uni-combox {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		min-height: 40px;
-		flex-direction: row;
-		align-items: center;
-		position: relative;
-	}
-
-	.uni-combox__label {
-		font-size: 16px;
-		line-height: 22px;
-		padding-right: 10px;
-		color: #999999;
-	}
-
-	.uni-combox__input-box {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex: 1;
-		flex-direction: column;
-	}
-
-	.combox_tags {
-		display: flex;
-		justify-content: flex-start;
-		flex-wrap: wrap;
-	}
-
-	.combox_tag {
-		padding: 10rpx 15rpx;
-		background-color: #F0F2F5;
-		color: #94979D;
-		margin-right: 10rpx;
-		display: flex;
-		justify-content: flex-start;
-		align-items: center;
-		margin-bottom: 10rpx;
-	}
-
-	.combox_tag .tag_name {
-		margin-right: 10rpx;
-	}
-
-	.combox_input_view {
-		position: relative;
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex: 1;
-		flex-direction: row;
-		align-items: center;
-		min-width: 100%;
-	}
-
-	.uni-combox__input {
-		flex: 1;
-		font-size: 16px;
-		height: 22px;
-		line-height: 22px;
-	}
-
-	.uni-combox__input-arrow {
-		padding: 10px;
-	}
-
-	.uni-combox__selector {
-		box-sizing: border-box;
-		position: absolute;
-		top: 42px;
-		left: 0;
-		width: 100%;
-		background-color: #FFFFFF;
-		border-radius: 6px;
-		box-shadow: #DDDDDD 4px 4px 8px, #DDDDDD -4px -4px 8px;
-		z-index: 2;
-	}
-
-	.uni-combox__selector-scroll {
-		box-sizing: border-box;
-	}
-
-	.uni-combox__selector::before {
-		content: '';
-		position: absolute;
-		width: 0;
-		height: 0;
-		border-bottom: solid 6px #FFFFFF;
-		border-right: solid 6px transparent;
-		border-left: solid 6px transparent;
-		left: 50%;
-		top: -6px;
-		margin-left: -6px;
-	}
-
-	.uni-combox__selector-empty,
-	.uni-combox__selector-item {
-		/* #ifdef APP-NVUE */
-		display: flex;
-		/* #endif */
-		line-height: 36px;
-		font-size: 14px;
-		text-align: center;
-		border-bottom: solid 1px #DDDDDD;
-		/* margin: 0px 10px; */
-	}
-
-	.uni-combox__selector-empty:last-child,
-	.uni-combox__selector-item:last-child {
-		border-bottom: none;
-	}
-
-	.maskbox {
-		position: fixed;
-		top: 0;
-		left: 0;
-		width: 100vw;
-		height: 100vh;
-		z-index: 99;
-	}
-</style>

+ 0 - 137
components/uni-section.vue

@@ -1,137 +0,0 @@
-<template>
-	<view class="uni-section" nvue>
-		<view v-if="type" class="uni-section__head">
-			<view :class="type" class="uni-section__head-tag" />
-		</view>
-		<view class="uni-section__content">
-			<text :class="{'distraction':!subTitle}" class="uni-section__content-title">{{ title }}</text>
-			<text v-if="subTitle" class="uni-section__content-sub">{{ subTitle }}</text>
-		</view>
-		<slot />
-	</view>
-</template>
-
-<script>
-	/**
-	 * Section 标题栏
-	 * @description 标题栏
-	 * @property {String} type = [line|circle] 标题装饰类型
-	 * 	@value line 竖线
-	 * 	@value circle 圆形
-	 * @property {String} title 主标题
-	 * @property {String} subTitle 副标题
-	 */
-
-	export default {
-		name: 'UniTitle',
-		props: {
-			type: {
-				type: String,
-				default: ''
-			},
-			title: {
-				type: String,
-				default: ''
-			},
-			subTitle: {
-				type: String,
-				default: ''
-			}
-		},
-		data() {
-			return {}
-		},
-		watch: {
-			title(newVal) {
-				if (uni.report && newVal !== '') {
-					uni.report('title', newVal)
-				}
-			}
-		},
-		methods: {
-			onClick() {
-				this.$emit('click')
-			}
-		}
-	}
-</script>
-<style scoped>
-	.uni-section {
-		position: relative;
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		margin-top: 10px;
-		flex-direction: row;
-		align-items: center;
-		padding: 0 10px;
-		height: 50px;
-		background-color: #f8f8f8;
-		/* #ifdef APP-NVUE */
-		border-bottom-color: #e5e5e5;
-		border-bottom-style: solid;
-		border-bottom-width: 0.5px;
-		/* #endif */
-		font-weight: normal;
-	}
-
-	/* #ifndef APP-NVUE */
-	.uni-section:after {
-		position: absolute;
-		bottom: 0;
-		right: 0;
-		left: 0;
-		height: 1px;
-		content: '';
-		-webkit-transform: scaleY(.5);
-		transform: scaleY(.5);
-		background-color: #e5e5e5;
-	}
-
-	/* #endif */
-
-	.uni-section__head {
-		flex-direction: row;
-		justify-content: center;
-		align-items: center;
-		margin-right: 10px;
-	}
-
-	.line {
-		height: 15px;
-		background-color: #c0c0c0;
-		border-radius: 5px;
-		width: 3px;
-	}
-
-	.circle {
-		width: 8px;
-		height: 8px;
-		border-top-right-radius: 50px;
-		border-top-left-radius: 50px;
-		border-bottom-left-radius: 50px;
-		border-bottom-right-radius: 50px;
-		background-color: #c0c0c0;
-	}
-
-	.uni-section__content {
-		flex-direction: column;
-		flex: 1;
-		color: #333;
-	}
-
-	.uni-section__content-title {
-		font-size: 14px;
-		color: #333;
-	}
-
-	.distraction {
-		flex-direction: row;
-		align-items: center;
-	}
-
-	.uni-section__content-sub {
-		font-size: 12px;
-		color: #999;
-	}
-</style>

+ 0 - 167
components/uni-section/uni-section.vue

@@ -1,167 +0,0 @@
-<template>
-	<view class="uni-section">
-		<view class="uni-section-header" @click="onClick">
-				<view class="uni-section-header__decoration" v-if="type" :class="type" />
-        <slot v-else name="decoration"></slot>
-
-        <view class="uni-section-header__content">
-          <text :style="{'font-size':titleFontSize,'color':titleColor}" class="uni-section__content-title" :class="{'distraction':!subTitle}">{{ title }}</text>
-          <text v-if="subTitle" :style="{'font-size':subTitleFontSize,'color':subTitleColor}" class="uni-section-header__content-sub">{{ subTitle }}</text>
-        </view>
-
-        <view class="uni-section-header__slot-right">
-          <slot name="right"></slot>
-        </view>
-		</view>
-
-		<view class="uni-section-content" :style="{padding: _padding}">
-			<slot />
-		</view>
-	</view>
-</template>
-
-<script>
-
-	/**
-	 * Section 标题栏
-	 * @description 标题栏
-	 * @property {String} type = [line|circle|square] 标题装饰类型
-	 * 	@value line 竖线
-	 * 	@value circle 圆形
-	 * 	@value square 正方形
-	 * @property {String} title 主标题
-	 * @property {String} titleFontSize 主标题字体大小
-	 * @property {String} titleColor 主标题字体颜色
-	 * @property {String} subTitle 副标题
-	 * @property {String} subTitleFontSize 副标题字体大小
-	 * @property {String} subTitleColor 副标题字体颜色
-	 * @property {String} padding 默认插槽 padding
-	 */
-
-	export default {
-		name: 'UniSection',
-    emits:['click'],
-		props: {
-			type: {
-				type: String,
-				default: ''
-			},
-			title: {
-				type: String,
-				required: true,
-				default: ''
-			},
-      titleFontSize: {
-        type: String,
-        default: '14px'
-      },
-			titleColor:{
-				type: String,
-				default: '#333'
-			},
-			subTitle: {
-				type: String,
-				default: ''
-			},
-      subTitleFontSize: {
-        type: String,
-        default: '12px'
-      },
-      subTitleColor: {
-        type: String,
-        default: '#999'
-      },
-			padding: {
-				type: [Boolean, String],
-				default: false
-			}
-		},
-    computed:{
-      _padding(){
-        if(typeof this.padding === 'string'){
-          return this.padding
-        }
-
-        return this.padding?'10px':''
-      }
-    },
-		watch: {
-			title(newVal) {
-				if (uni.report && newVal !== '') {
-					uni.report('title', newVal)
-				}
-			}
-		},
-    methods: {
-			onClick() {
-				this.$emit('click')
-			}
-		}
-	}
-</script>
-<style lang="scss" >
-	$uni-primary: #2979ff !default;
-
-	.uni-section {
-		background-color: #fff;
-    .uni-section-header {
-      position: relative;
-      /* #ifndef APP-NVUE */
-      display: flex;
-      /* #endif */
-      flex-direction: row;
-      align-items: center;
-      padding: 12px 10px;
-      font-weight: normal;
-
-      &__decoration{
-        margin-right: 6px;
-        background-color: $uni-primary;
-        &.line {
-          width: 4px;
-          height: 12px;
-          border-radius: 10px;
-        }
-
-        &.circle {
-          width: 8px;
-          height: 8px;
-          border-top-right-radius: 50px;
-          border-top-left-radius: 50px;
-          border-bottom-left-radius: 50px;
-          border-bottom-right-radius: 50px;
-        }
-
-        &.square {
-          width: 8px;
-          height: 8px;
-        }
-      }
-
-      &__content {
-        /* #ifndef APP-NVUE */
-        display: flex;
-        /* #endif */
-        flex-direction: column;
-        flex: 1;
-        color: #333;
-
-        .distraction {
-          flex-direction: row;
-          align-items: center;
-        }
-        &-sub {
-          margin-top: 2px;
-        }
-      }
-
-      &__slot-right{
-        font-size: 14px;
-      }
-    }
-
-    .uni-section-content{
-      font-size: 14px;
-    }
-	}
-</style>

+ 1 - 1
pages.json

@@ -78,7 +78,7 @@
 		}, {
 			"path": "pages/particulars/index",
 			"style": {
-				"navigationBarTitleText": "单详情"
+				"navigationBarTitleText": "单详情"
 			}
 
 		}, {

+ 6 - 2
pages/index.vue

@@ -36,8 +36,8 @@
 						<text>{{ item.billDate }}</text>
 					</view> -->
 					<view class="date">
-						<text class="true"
-							v-if="item.status317 == 2 || item.status376 == 2 || item.status376 == 0">{{ item.billStatusName }}</text>
+						<text class="true" v-if="item.status317 == 2">{{ item.billStatusName }}</text>
+						<text class="yellow" v-if="item.status376 == 2 && item.status317 == 6 || item.status376 == 0">{{ item.billStatusName }}</text>
 						<text class="false" v-if="item.status376 == 6">{{ item.billStatusName }}</text>
 					</view>
 				</view>
@@ -316,6 +316,10 @@
 					.true {
 						color: red;
 					}
+					
+					.yellow {
+						color: #3c9cff;
+					}
 
 					.false {
 						color: green;

+ 264 - 169
pages/particulars/claimExpense/index.vue

@@ -13,26 +13,26 @@
 				<view class="box">
 					<view class="data">
 						<text class="key">ETC金额</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnLoadetc"
-							v-model="formData.loadetc" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnLoadetc" v-model="formData.loadetc" />
 					</view>
 					<view class="data">
 						<text class="key">现金过路费</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnLoadtoll"
-							v-model="formData.loadtoll" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnLoadtoll" v-model="formData.loadtoll" />
 					</view>
 				</view>
 
 				<view class="box">
 					<view class="data">
 						<text class="key">公司加油(升)</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilhomeQty"
-							v-model="formData.oilhomeQty" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilhomeQty" v-model="formData.oilhomeQty" />
 					</view>
 					<view class="data">
 						<text class="key">加油金额</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilhomeAmt"
-							v-model="formData.oilhomeAmt" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilhomeAmt" v-model="formData.oilhomeAmt" />
 					</view>
 				</view>
 
@@ -46,129 +46,61 @@
 						<text class="key">定点加油</text>
 						<view class="list">
 							<uni-data-select :disabled="disabled" :localdata="gasStationList"
-								v-model="formData.gasstation1" :clear="false"></uni-data-select>
+								v-model="formData.gasstation1" @change="gasstation1Change"></uni-data-select>
 						</view>
 					</view>
 				</view>
 				<view class="box">
 					<view class="data">
 						<text class="key">升数</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilappoint1Qty"
-							placeholder="请输入升数" v-model="formData.oilappoint1Qty" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilappoint1Qty" placeholder="请输入升数"
+							v-model="formData.oilappoint1Qty" />
 					</view>
 					<view class="data">
 						<text class="key">金额</text>
 
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilappoint1Amt"
-							placeholder="请输入金额" v-model="formData.oilappoint1Amt" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilappoint1Amt" placeholder="请输入金额"
+							v-model="formData.oilappoint1Amt" />
 					</view>
 				</view>
 
-
-
-
-				<!-- <view class="box-list vertical-layout"> -->
-				<!-- <view class="iconfont icon-jiayouzhan icon"></view> -->
-				<!-- <view class="icon" style="color: #3c9cff;">定点加油</view>
-					<view> -->
-				<!-- <u-radio-group class="list" :disabled="disabled" v-model="formData.gasstation1"
-							@change="groupChangeOne">
-							<u-radio :customStyle="{marginBottom: '20rpx', marginRight: '30rpx'}"
-								v-for="(item, index) in gasStationList" :key="index" :label="item.cname"
-								:name="item.cname" @change="radioChangeOne">
-							</u-radio>
-						</u-radio-group> -->
-				<!-- <view class="list">
-							<uni-data-select :localdata="gasStationList" v-model="formData.gasstation1"
-								:clear="false"></uni-data-select>
-						</view> -->
-
-				<!-- <view class="quantity-aum vertical-layout">
-							<view class="aaa vertical-layout">
-								<text style="color: #3c9cff;">升数</text>
-								<input class="key" :disabled="disabled" inputmode="decimal"
-									@input="checkUnOilappoint1Qty" placeholder="请输入升数"
-									v-model="formData.oilappoint1Qty" />
-							</view>
-							<view class="bbb vertical-layout">
-								<text style="color: #3c9cff;">金额</text>
-								<input class="value" :disabled="disabled" inputmode="decimal"
-									@input="checkUnOilappoint1Amt" placeholder="请输入金额"
-									v-model="formData.oilappoint1Amt" />
-							</view>
-						</view>
-					</view>
-				</view> -->
-
 				<view class="box">
 					<view class="data-two">
 						<text class="key">定点加油</text>
 						<view class="list">
 							<uni-data-select :disabled="disabled" :localdata="gasStationList"
-								v-model="formData.gasstation2" :clear="false"></uni-data-select>
+								v-model="formData.gasstation2" @change="gasstation2Change"></uni-data-select>
 						</view>
 					</view>
 				</view>
 				<view class="box">
 					<view class="data">
 						<text class="key">升数</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilappoint2Qty"
-							placeholder="请输入升数" v-model="formData.oilappoint2Qty" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilappoint2Qty" placeholder="请输入升数"
+							v-model="formData.oilappoint2Qty" />
 					</view>
 					<view class="data">
 						<text class="key">金额</text>
 
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilappoint2Amt"
-							placeholder="请输入金额" v-model="formData.oilappoint2Amt" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilappoint2Amt" placeholder="请输入金额"
+							v-model="formData.oilappoint2Amt" />
 					</view>
 				</view>
 
-
-				<!-- <view class="box-list vertical-layout"> -->
-				<!-- <view class="iconfont icon-jiayouzhan icon"></view> -->
-				<!-- <view class="icon" style="color: #3c9cff;">定点加油</view>
-					<view> -->
-				<!-- <u-radio-group class="list" :disabled="disabled" v-model="formData.gasstation2"
-							@change="groupChangeTwo">
-							<u-radio :customStyle="{marginBottom: '20rpx', marginRight: '30rpx'}"
-								v-for="(item, index) in gasStationList" :key="index" :label="item.cname"
-								:name="item.cname" @change="radioChangeTwo">
-							</u-radio>
-						</u-radio-group> -->
-
-
-				<!-- <view class="list">
-							<uni-data-select :localdata="gasStationList" v-model="formData.gasstation2"
-								:clear="false"></uni-data-select>
-						</view>
-
-						<view class="quantity-aum vertical-layout">
-							<view class="aaa vertical-layout">
-								<text style="color: #3c9cff;">升数</text>
-								<input class="key" :disabled="disabled" inputmode="decimal"
-									@input="checkUnOilappoint2Qty" placeholder="请输入升数"
-									v-model="formData.oilappoint2Qty" />
-							</view>
-							<view class="bbb vertical-layout">
-								<text style="color: #3c9cff;">金额</text>
-								<input class="value" :disabled="disabled" inputmode="decimal"
-									@input="checkUnOilappoint2Amt" placeholder="请输入金额"
-									v-model="formData.oilappoint2Amt" />
-							</view>
-						</view>
-					</view>
-				</view> -->
-
 				<view class="box">
 					<view class="data">
 						<text class="key">现金加油(升)</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilcash1Qty"
-							v-model="formData.oilcash1Qty" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilcash1Qty" v-model="formData.oilcash1Qty" />
 					</view>
 					<view class="data">
 						<text class="key">加油金额</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilcash1Amt"
-							v-model="formData.oilcash1Amt" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilcash1Amt" v-model="formData.oilcash1Amt" />
 					</view>
 				</view>
 
@@ -176,18 +108,30 @@
 				<view class="box">
 					<view class="data">
 						<text class="key">油卡加油(升)</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilcardQty"
-							v-model="formData.oilcardQty" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilcardQty" v-model="formData.oilcardQty" />
 					</view>
 					<view class="data">
 						<text class="key">加油金额</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" @input="checkUnOilcardAmt"
-							v-model="formData.oilcardAmt" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+							inputmode="decimal" @input="checkUnOilcardAmt" v-model="formData.oilcardAmt" />
 					</view>
 				</view>
+				
+				<view class="box-two">
+					<text class="key">备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注</text>
+					<input class="value" selection-start="0" selection-end="9999" :disabled="disabled" v-model="formData.driverassdesc" />
+				</view>
 				<!-- </u-collapse-item> -->
 			</view>
 
+			<u-collapse-item title="照片" name="img" ref="collapseHeight">
+				<!-- @afterRead="imgUploading" -->
+				<u-upload :fileList="fileList1" @afterRead="imgUploading" @delete="deletePic" name="1" multiple
+					:disabled="this.status376 == 6" :previewFullImage="true"></u-upload>
+				
+			</u-collapse-item>
+
 
 
 			<u-collapse-item title="其他费用" name="cost breakdown">
@@ -197,14 +141,21 @@
 							<text style="color: #3c9cff;">{{ item.cname }}</text>
 						</view>
 						<view class="sum">
-							<input class="value" :disabled="disabled" inputmode="decimal"
-								@input="checkUnAmt(item.amt, index)" cursor-spacing="15" :adjust-position="true"
-								v-model="item.amt" />
+							<!-- <input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+								inputmode="decimal" @input="checkUnAmt(item.amt, index)" cursor-spacing="15"
+								:adjust-position="true" v-model="item.amt" /> -->
+								<input class="value" selection-start="0" selection-end="9999" :disabled="disabled"
+									inputmode="decimal" @input="checkUnAmt(item.amt, index)" @click="inputHeight" cursor-spacing="30"
+									:always-embed="true" :adjust-position="true" v-model="item.amt" />
 						</view>
 					</view>
 				</view>
 			</u-collapse-item>
 		</u-collapse>
+		
+		<view class="input" :style="{'height':vHeight + 'rpx'}">
+		
+		</view>
 
 		<view class="cushion">
 
@@ -219,6 +170,12 @@
 
 		<!-- 消息提示 -->
 		<u-toast ref="uToast"></u-toast>
+
+		<u-modal :show="deleteShow" title="提示" showCancelButton @confirm="deleteImg" @cancel="deleteShow = false">
+			<view class="slot-content">
+				<rich-text nodes="确定删除这张图片吗?"></rich-text>
+			</view>
+		</u-modal>
 	</view>
 </template>
 
@@ -229,6 +186,14 @@
 		insertLoadFeeItems,
 		getLoadFeeItems
 	} from "@/api/reimbursement"
+	
+	import {
+		getOrderBillsPlansByid,
+		putOrderBillsPlansByid,
+		insertTmsAttachMngs,
+		pictureUploading,
+		deleteTmsAttachMngs
+	} from "@/api/particulars"
 	export default {
 		data() {
 			return {
@@ -252,7 +217,13 @@
 				numTwo: 0, //用于区分是否是重复选中
 				// 输入框禁用
 				disabled: false,
-				status376: 0
+				status376: 0,
+				selectionLength: 0,
+				fileList1: [],
+				// 删除弹框
+				deleteShow: false,
+				event: {},
+				vHeight: 0
 			}
 		},
 		onUnload() {
@@ -281,15 +252,7 @@
 						this.formData = res.data;
 						var costBreakdownList = res.data.loadFeeItemsList;
 						this.itemsList = costBreakdownList;
-						// for (var inex in this.itemsList) {
-						// 	for (var inexs in costBreakdownList) {
-						// 		// 金额赋值
-						// 		if (this.itemsList[inex].itemId == costBreakdownList[inexs]
-						// 			.itemId) {
-						// 			this.itemsList[inex].amt = costBreakdownList[inexs].amt
-						// 		}
-						// 	}
-						// }
+						this.fileList1 = res.data.fileList1;
 						this.loading = false;
 					})
 				})
@@ -308,36 +271,154 @@
 					})
 				} else if (this.status376 == 2) {
 
-					this.loading = true;
-					var list = [];
-					for (var item in this.itemsList) {
-						var amt = this.itemsList[item].amt;
-						if (amt != null) {
-							var items = this.itemsList[item];
-							list.push(items);
+
+
+					if (this.formData.loadetc == null ||
+						this.formData.loadtoll == null ||
+						this.formData.oilhomeQty == null ||
+						this.formData.oilhomeAmt == null ||
+						this.formData.oilappoint1Qty == null ||
+						this.formData.oilappoint1Amt == null ||
+						this.formData.oilappoint2Qty == null ||
+						this.formData.oilappoint2Amt == null ||
+						this.formData.oilcash1Qty == null ||
+						this.formData.oilcash1Amt == null ||
+						this.formData.oilcardQty == null ||
+						this.formData.oilcardAmt == null
+					) {
+						this.$refs.uToast.show({
+							type: 'warning',
+							icon: false,
+							message: "请输入金额或升数!",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/warning.png'
+						})
+					} else {
+						this.loading = true;
+						var list = [];
+						for (var item in this.itemsList) {
+							var amt = this.itemsList[item].amt;
+							if (amt != null) {
+								var items = this.itemsList[item];
+								list.push(items);
+							}
 						}
+						this.formData.itemsVoList = list;
+						insertLoadFeeItems(this.formData).then(res => {
+							this.loading = false;
+							if (res.code == 200) {
+								// 保存成功弹窗提示
+								this.$refs.uToast.show({
+									type: 'success',
+									message: "保存成功!",
+									iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
+								})
+							} else {
+								// 保存失败消息
+								this.$refs.uToast.show({
+									icon: false,
+									message: "保存失败请重试!",
+									iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/error.png'
+								})
+							}
+						})
 					}
-					this.formData.itemsVoList = list;
-					insertLoadFeeItems(this.formData).then(res => {
-						this.loading = false;
+				}
+
+			},
+
+			// 删除图片
+			deletePic(event) {
+				if (this.status376 == 6) {
+					this.$refs.uToast.show({
+						type: 'warning',
+						icon: false,
+						message: "不允许修改!",
+						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/warning.png'
+					})
+				} else if (this.status376 == 2) {
+				this.event = event;
+				this.deleteShow = true;
+				}
+			},
+			deleteImg() {
+				var event = this.event;
+				var url = event.file.url;
+				var index = url.lastIndexOf("\/");
+				var attachId = url.substring(index + 1, url.length);
+
+				deleteTmsAttachMngs(attachId).then(res => {
+					if (res.code == 200) {
+						this[`fileList${event.name}`].splice(event.index, 1)
+						// 删除成功消息
+						this.$refs.uToast.show({
+							type: 'success',
+							message: "删除成功!",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
+						})
+					} else {
+						// 删除失败消息
+						this.$refs.uToast.show({
+							icon: false,
+							message: "删除失败请重试!",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/error.png'
+						})
+					}
+
+					this.event = {};
+					this.deleteShow = false;
+				})
+			},
+			// 新增图片
+			imgUploading(event) {
+
+				// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					insertTmsAttachMngs(this.formData).then(res => {
 						if (res.code == 200) {
-							// 保存成功弹窗提示
-							this.$refs.uToast.show({
-								type: 'success',
-								message: "保存成功!",
-								iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
-							})
-						} else {
-							// 保存失败消息
-							this.$refs.uToast.show({
-								icon: false,
-								message: "保存失败请重试!",
-								iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/error.png'
+							let data = {
+								name: 'avatarfile',
+								filePath: lists[i].url
+							}
+							let dataForm = {
+								attachId: res.data
+							}
+
+							pictureUploading(data, dataForm).then(res => {
+
+								let item = this[`fileList${event.name}`][fileListLen]
+								// console.log("item");
+								// console.log(item);
+								this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(
+									item, {
+										status: 'success',
+										message: '',
+										url: res.data.data
+									}))
+								fileListLen++
 							})
 						}
+
 					})
 				}
-
+			},
+			// 定点加油1清空
+			gasstation1Change() {
+				this.formData.oilappoint1Qty = 0;
+				this.formData.oilappoint1Amt = 0;
+			},
+			// 定点加油2清空
+			gasstation2Change() {
+				this.formData.oilappoint2Qty = 0;
+				this.formData.oilappoint2Amt = 0;
 			},
 			// 点击拨打电话
 			telFun() {
@@ -500,11 +581,19 @@
 
 			},
 			checkUnAmt(amt, index) {
+				
 				var amt = (amt.match(/^\d*(\.?\d{0,2})/g)[0]) || null
 				//重新赋值给input
 				this.$nextTick(() => {
 					this.itemsList[index].amt = amt
 				})
+			},
+			inputHeight() {
+				// if (this.vHeight == 0) {
+				this.vHeight = 600;
+				// } else {
+				// 		this.vHeight = 0;
+				// }
 			}
 		}
 	}
@@ -614,41 +703,6 @@
 			}
 		}
 
-		// .box {
-
-		// 	color: #3b3b3b;
-
-		// 	overflow: hidden;
-		// 	height: 100rpx;
-
-		// 	border-bottom: 2rpx solid #f0f0f0f0;
-
-		// 	font-size: 30rpx;
-
-		// 	display: flex;
-		// 	align-items: center;
-
-		// 	.data {
-		// 		width: 50%;
-		// 		height: 100%;
-		// 		// background-color: pink;
-		// 		display: flex;
-		// 		align-items: center;
-
-		// 		.key {
-		// 			// background-color: indianred;
-		// 			width: 80%;
-		// 		}
-
-		// 		.value {
-		// 			color: #3b3b3b;
-		// 			width: 45%;
-		// 			margin-right: 20rpx;
-		// 			border-bottom: 2rpx dotted #000;
-		// 		}
-		// 	}
-		// }
-
 		.box {
 
 			color: #3b3b3b;
@@ -711,6 +765,40 @@
 				}
 			}
 		}
+		
+		.box-two {
+		
+			color: #3b3b3b;
+		
+			overflow: hidden;
+			height: 100rpx;
+		
+			padding-left: 20rpx;
+			// margin-right: 20rpx;
+		
+			font-size: 30rpx;
+		
+			display: flex;
+			align-items: center;
+		
+			.key {
+				
+				
+				display: inline-block;
+				width: 24%;
+				color:  #3c9cff;
+		
+			}
+		
+			.value {
+				margin-left: 20rpx;
+				width: calc(100% - 24%);
+				color: #3b3b3b;
+				// margin-right: 20rpx;
+				border-bottom: 2rpx dotted #000;
+		
+			}
+		}
 
 		.table {
 			margin-left: 20rpx;
@@ -761,6 +849,13 @@
 				background-color: #0b68ffff;
 			}
 		}
+		
+		.input {
+			width: 100%;
+			// height: 100rpx;
+			// background-color: red;
+			
+		}
 
 		.cushion {
 			width: 100%;

+ 16 - 9
pages/particulars/index.vue

@@ -27,7 +27,7 @@
 
 				<view class="box-two">
 					<text class="key">装车吨位</text>
-					<input class="value-two" :disabled="disabled" inputmode="decimal" @input="checkLoadQty"
+					<input class="value-two" selection-start="0" selection-end="9999" :disabled="disabled" inputmode="decimal" @input="checkLoadQty"
 						v-model="formData.loadQty" />
 				</view>
 
@@ -55,7 +55,7 @@
 
 				<view class="box-two">
 					<text class="key">卸车吨位</text>
-					<input class="value-two" :disabled="disabled" inputmode="decimal" @input="checkUnLoadQty"
+					<input class="value-two" selection-start="0" selection-end="9999" :disabled="disabled" inputmode="decimal" @input="checkUnLoadQty"
 						v-model="formData.unLoadQty" />
 				</view>
 
@@ -70,11 +70,11 @@
 				<view class="box">
 					<view class="data">
 						<text class="key">空载起点</text>
-						<input class="value" :disabled="disabled" v-model="formData.emptyaddr1" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled" v-model="formData.emptyaddr1" />
 					</view>
 					<view class="data">
 						<text class="key">空车里程</text>
-						<input class="value" :disabled="disabled" inputmode="decimal"
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled" inputmode="decimal"
 							v-model="formData.odometerstart" />
 					</view>
 				</view>
@@ -82,22 +82,22 @@
 				<view class="box">
 					<view class="data">
 						<text class="key">空载终点</text>
-						<input class="value" :disabled="disabled" v-model="formData.emptyaddr2" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled" v-model="formData.emptyaddr2" />
 					</view>
 					<view class="data">
 						<text class="key">空车里程</text>
-						<input class="value" :disabled="disabled" inputmode="decimal" v-model="formData.odometerend" />
+						<input class="value" selection-start="0" selection-end="9999" :disabled="disabled" inputmode="decimal" v-model="formData.odometerend" />
 					</view>
 				</view>
 
 				<view class="box-two">
 					<text class="key">重车里程</text>
-					<input class="value-two" :disabled="disabled" inputmode="decimal" @input="checkUnLoadmile"
+					<input class="value-two" selection-start="0" selection-end="9999" :disabled="disabled" inputmode="decimal" @input="checkUnLoadmile"
 						v-model="formData.loadmile" />
 				</view>
 				<view class="box-two">
 					<text class="key">备&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注</text>
-					<input class="value-two" :disabled="disabled" v-model="formData.driverassdesc" />
+					<input class="value-two" selection-start="0" selection-end="9999" :disabled="disabled" v-model="formData.driverassdesc" />
 				</view>
 
 			</view>
@@ -186,6 +186,13 @@
 		pictureUploading,
 		deleteTmsAttachMngs
 	} from "@/api/particulars"
+	
+	import {
+		getGasStations,
+		getItems,
+		insertLoadFeeItems,
+		getLoadFeeItems
+	} from "@/api/reimbursement"
 	export default {
 		data() {
 			return {
@@ -228,7 +235,7 @@
 				this.fileList1 = res.data.fileList1;
 				this.loading = false;
 
-				if (res.data.billStatus == 6) {
+				if (this.status317 == 6) {
 					this.disabled = true;
 				}
 			})

+ 0 - 0
uni_modules/uni-load-more/changelog.md → uni_modules/uni-grid/uni-load-more/changelog.md


+ 0 - 0
uni_modules/uni-load-more/components/uni-load-more/i18n/en.json → uni_modules/uni-grid/uni-load-more/components/uni-load-more/i18n/en.json


+ 0 - 0
uni_modules/uni-load-more/components/uni-load-more/i18n/index.js → uni_modules/uni-grid/uni-load-more/components/uni-load-more/i18n/index.js


+ 0 - 0
uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json → uni_modules/uni-grid/uni-load-more/components/uni-load-more/i18n/zh-Hans.json


+ 0 - 0
uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json → uni_modules/uni-grid/uni-load-more/components/uni-load-more/i18n/zh-Hant.json


+ 0 - 0
uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue → uni_modules/uni-grid/uni-load-more/components/uni-load-more/uni-load-more.vue


+ 0 - 0
uni_modules/uni-load-more/package.json → uni_modules/uni-grid/uni-load-more/package.json


+ 0 - 0
uni_modules/uni-load-more/readme.md → uni_modules/uni-grid/uni-load-more/readme.md