Commit 76062105 authored by Facius's avatar Facius

Merge branch 'dev-1.5.3' into test

parents 2c439c19 6434480e
<!-- ******************* 输入框 ******************* -->
<template>
<view :style="{'width': fieldsWidth}">
<u-input :type="type" class="input-item" v-model="dataValue" @input="valueChange" :placeholder="placeholder" :placeholder-style="placeholderStyle"
:custom-style="customStyle" :clearable="false" :border="border" border-color="#ECECEC" :maxlength="maxlength" :cursor-spacing="10" :disabled="isDisabled" hold-keyboard/>
<view class="content" v-if="slotContent">
<text class="txt">{{ slotContent }}</text>
</view>
</view>
<view :style="{ width: fieldsWidth }" class="input-view-class">
<view class="tip-span" v-if="showTip">({{placeholderText}})</view>
<u-input
:type="type"
class="input-item"
v-model="dataValue"
@input="valueChange"
:placeholder="placeholderText"
:placeholder-style="placeholderStyle"
:custom-style="customStyle"
:clearable="false"
:border="border"
border-color="#ECECEC"
:maxlength="maxlength"
:cursor-spacing="10"
:disabled="isDisabled"
hold-keyboard
@blur="showTip=isESerialNum && dataValue.length < maxlength"
/>
<view class="content" v-if="slotContent">
<text class="txt">{{ slotContent }}</text>
</view>
</view>
</template>
<script>
import stringMixin from './stringMixin'
export default {
name: 'XhInput', // 新建 input
components: {},
mixins: [stringMixin],
props: {
placeholder: {
type: String,
default: '请输入'
},
item: {
type: Object,
default() {
return {}
}
},
type: {
type: String,
default: 'text'
},
slotContent: {
type: String,
default: ''
}
},
data() {
return {
inputType: 'text'
}
},
computed: {
maxlength() {
return this.type == 'digit' ? 9 : 140
},
fieldsWidth() {
return this.item.fieldsWidth ? (this.item.fieldsWidth + 'rpx') : '100%'
},
placeholderStyle() {
return 'color:#999999;font-size:26rpx'
},
customStyle() {
return {
'background-color': this.backgroundColor,
'border-radius': '12rpx',
'color': '#333333',
'padding-left': this.textarea ? '0rpx' : '20rpx',
'font-size':'26rpx',
'height': '76rpx'
}
},
border() {
return this.textarea
},
textarea() {
return this.inputType == 'textarea'
},
backgroundColor() {
return this.textarea ? 'transparent' : '#F4F5F7'
},
isDisabled() {
return this.item.fieldsName === 'pipeAmount' || this.disabled ? true : false
}
},
watch: {},
mounted() {},
methods: {}
import stringMixin from './stringMixin'
export default {
name: 'XhInput', // 新建 input
components: {},
mixins: [stringMixin],
props: {
placeholder: {
type: String,
default: '请输入',
},
item: {
type: Object,
default() {
return {}
},
},
type: {
type: String,
default: 'text',
},
slotContent: {
type: String,
default: '',
},
},
data() {
return {
inputType: 'text',
showTip: false,
}
},
computed: {
isDigit() {
return this.type == 'digit'
},
maxlength() {
return this.isDigit ? 9 : (this.isESerialNum ? 8 : 140)
},
fieldsWidth() {
return this.item.fieldsWidth ? this.item.fieldsWidth + 'rpx' : '100%'
},
placeholderStyle() {
return 'color:#999999;font-size:26rpx'
},
customStyle() {
return {
'background-color': this.backgroundColor,
'border-radius': '12rpx',
color: '#333333',
'padding-left': this.textarea ? '0rpx' : '20rpx',
'font-size': '26rpx',
height: '76rpx',
}
},
border() {
return this.textarea
},
textarea() {
return this.inputType == 'textarea'
},
backgroundColor() {
return this.textarea ? 'transparent' : '#F4F5F7'
},
isDisabled() {
return this.item.fieldsName === 'pipeAmount' || this.disabled
? true
: false
},
isESerialNum() { // 输入框是交易流水号
return this.item.fieldsName === 'eSerialNum'
},
placeholderText() {
return this.isESerialNum ? '请填写交易流水号后8位数字' : this.placeholder
}
},
watch: {},
mounted() {},
methods: {},
}
</script>
<style lang="scss" scoped>
.input-item{
background: #F4F5F7;
}
.content {
padding-top: 20rpx;
line-height: 45rpx;
.txt {
font-size: 24rpx;
color: #999;
}
}
.input-view-class {
position: relative;
.input-item {
background: #f4f5f7;
}
.content {
padding-top: 20rpx;
line-height: 45rpx;
.txt {
font-size: 24rpx;
color: #999;
}
}
.tip-span {
position: absolute;
font-size: 28rpx;
color: #FA5A49;
left: 190rpx;
top: -74rpx;
}
}
</style>
......@@ -41,6 +41,10 @@ export default {
this.dataValue = val
})
}
// 交易流水号到8位就取消提示
if (this.isESerialNum && val.length >= this.maxlength) {
this.showTip = false
}
const data = {
groupIndex: this.groupIndex, // 左侧菜单下标
itemIndex: this.itemIndex, //右侧某一项下标
......
This diff is collapsed.
......@@ -45,7 +45,7 @@
:src="dizhiImage"
mode="widthFix"
></image>
<text>{{ formatAddress(orderData) }}</text>
<text>{{ orderData.customerAddress }}</text>
</view>
<view v-if="showDistance" class="address-right-view">
{{ orderDistance }}km
......@@ -128,6 +128,8 @@ export default {
auditResults: {}, // 审核结果
orderBusinessType: 'R', // 业务类型 R 为抢单
orderId: '0', // 订单id
partnerSerialNumber: '', // 上游单号
customerAddress: '', // 上游地址
}
},
},
......@@ -209,16 +211,16 @@ export default {
infoTexts() {
return this.isSimple
? {
orderNumber: {
partnerSerialNumber: {
symbol: true,
name: '单编号',
name: '单编号',
style: 'font-weight: 450;font-size: 28rpx',
icon: 'arrow-right',
},
contactName: { name: '客户信息', content: 'contactPhone' },
}
: {
orderNumber: { name: '工单编号' },
partnerSerialNumber: { name: '订单编号' },
partnerCompanyName: { name: '合作厂商' },
contactName: { name: '客户信息', content: 'contactPhone' },
}
......@@ -497,17 +499,17 @@ export default {
}, 1000)
}
},
formatAddress(order) {
let address = ''
if (order) {
address = order.contactProvinceText || ''
address += order.contactCityText || ''
address += order.contactCommunityText || ''
address += order.contactStreetText || ''
address += order.contactAddress || ''
}
return address
},
// formatAddress(order) {
// let address = ''
// if (order) {
// address = order.contactProvinceText || ''
// address += order.contactCityText || ''
// address += order.contactCommunityText || ''
// address += order.contactStreetText || ''
// address += order.contactAddress || ''
// }
// return address
// },
/**
* echo distance(116.3896,39.91917,116.3940,39.91726);
* 计算两点之间直线距离
......@@ -549,7 +551,7 @@ export default {
},
handleLongpress(key, text) {
// 长按复制单号
if (key == 'orderNumber') {
if (key == 'partnerSerialNumber') {
uni.setClipboardData({
data: text,
success: function() {
......
<template>
<view class="upload-progress">
<view :class="['u-flex', 'suspension', {'error': uploadStatus === 3}]" @click="openpRrogress">
<view :class="['u-flex', 'suspension', {'error': uploadStatus === 3, 'no-active': clicked <= 0}]" @click="openpRrogress">
<view class="progress" v-if="taskCount > 0">{{ uploadPercentage }}%</view>
<view class="upload-img" v-if="taskCount === 0">
<view class="upload-img" v-else>
<image class="icon" :src="icon"></image>
</view>
</view>
......@@ -66,17 +66,19 @@
data() {
return {
open: false,
progressStatus: false
progressStatus: false,
clicked: 1
}
},
computed: {
icon() {
icon() {
console.log(process.uniEnv.qn_base_url + 'upload-photo.png')
return process.uniEnv.qn_base_url + 'upload-photo.png'
},
defaultImg() {
return process.uniEnv.qn_base_url + 'upload-default.png'
},
taskCount() {
taskCount() {
return this.uploadTotal
},
uploadStatusName() {
......@@ -101,7 +103,7 @@
const num = this.uploadSuccess
const total = this.uploadTotal
return total > 0 ? Math.floor(Math.round(num / total * 10000) / 100.00) : 0
}
},
},
watch: {
uploadStatus(newValue) {
......@@ -109,13 +111,22 @@
this.$nextTick(() => {
this.progressStatus = true
})
}
},
},
open(val) {
if (val == false) {
this.changeActive()
}
},
},
created() {
this.changeActive()
},
methods: {
closePopup() {
this.progressStatus = false
},
openpRrogress() {
openpRrogress() {
this.clicked += 1
this.open = true
this.progressStatus = false
setTimeout(() => {
......@@ -124,7 +135,13 @@
},
retry() {
if(this.uploadStatus !== 2) upload.uploadImageTask(this)
}
},
changeActive() {
setTimeout(() => {
// 三秒不点击,算失去活跃
this.clicked = Math.max(0, this.clicked - 1)
}, 3000)
}
}
}
</script>
......@@ -135,16 +152,20 @@
height: 100%;
.suspension {
position: fixed;
right: 5%;
right: 20rpx;
bottom: 20%;
width: 80rpx;
height: 80rpx;
border-radius: 50%;
background: #2272FF;
z-index: 999;
z-index: 999;
opacity: 1;
&.error {
background: #FA5A49;
}
}
&.no-active {
opacity: 0.6;
}
.progress {
font-size: 24rpx;
color: #fff;
......
......@@ -236,7 +236,8 @@ export default {
const callBack = (vm, result) => {
// 后台自动判断入驻流程是否完成,前台通过status确定状态
if (result && result.record) {
vm.needSettled = result.needSettled
// 不返回该字段或返回true代表需要入驻
vm.needSettled = result.needSettled == undefined ? true : result.needSettled
vm.status = Number(result.record.status || '0')
// vm.status = 8
}
......
......@@ -254,7 +254,11 @@
},
handleSuperButton() {
this.$u.route({url: 'pages/mine/superLogin/index'})
if(this.vuex_token) {
this.$u.route({url: 'pages/mine/superLogin/index'})
} else {
this.$u.route({url: "pages/login/index"})
}
}
}
}
......
......@@ -318,7 +318,7 @@
.fixed-button {
position: fixed;
right: 10rpx;
right: 20rpx;
bottom: 64rpx;
}
......
......@@ -349,7 +349,7 @@ const formType = new Map([
['decimal', ['input', 'digit']],
['double', ['input', 'digit']],
['integer', ['input', 'digit']],
['string', ['input', 'text']],
['string', ['input', 'number']],
['jscode', ['input', 'text']],
['multiinput', ['multiinput', 'text']],
['select', ['select', 'text']],
......@@ -833,8 +833,9 @@ export default {
if (ele.required) {
panelResult.required++
let value = this.form[ele.fieldsName]
if (value && !Array.isArray(value)) {
panelResult.submitted++
// "ele.fieldsName != 'eSerialNum' || value.length == 8" 意思是: "非付款流水号 || 8位付款流水号"
if (value && !Array.isArray(value) && (ele.fieldsName != 'eSerialNum' || value.length == 8)) {
panelResult.submitted++
} else if (value && Array.isArray(value) && value.length > 0) {
if (ele.fieldsName === 'materialList') {
let hasMate = false
......@@ -1145,12 +1146,12 @@ export default {
const actualPaid = groupItem.items.find(
(v) => v.fieldsName === 'actualPaid'
)
actualPaid.required = data.value != '03'
if (actualPaid) actualPaid.required = data.value != '03'
const eSerialNum = groupItem.items.find(
(v) => v.fieldsName === 'eSerialNum'
)
eSerialNum.required = data.value != '03'
if (eSerialNum) eSerialNum.required = data.value != '03'
}
if (
......
......@@ -5,7 +5,7 @@
<u-search
v-model="search.keyword"
bg-color="#FFFFFF"
placeholder="搜索:工单号·用户姓名·手机号·地址"
placeholder="扳手会工单·用户姓名·手机号·地址"
search-icon-color="#999999"
color="#333333"
placeholder-color="#999999"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment