165 lines
4.1 KiB
Vue
165 lines
4.1 KiB
Vue
<template>
|
|
<div class="wrap">
|
|
<div class="title">报备事项:</div>
|
|
<div class="line"></div>
|
|
<van-radio-group v-model="radio" @change="change">
|
|
<van-radio v-for="(item,index) in reportingRadioList" :key="index" :name="item" class="item">
|
|
{{ item }}
|
|
<img
|
|
slot="icon"
|
|
slot-scope="props"
|
|
:src="props.checked ? activeIcon : inactiveIcon"
|
|
>
|
|
</van-radio>
|
|
</van-radio-group>
|
|
<textarea v-if="radio == '其他报备'" class="multiple" id="text-input" rows="4" cols="50" placeholder="报备描述"
|
|
v-model.trim="decscripTxt"></textarea><br>
|
|
<common-btn @submitClick="submit"/>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {orderReporting} from "@/api/order"
|
|
import {myMixins} from "@/utils/myMixins"
|
|
import CommonBtn from "@/components/commonBtn.vue"
|
|
|
|
export default {
|
|
name: "reportingView",
|
|
mixins: [myMixins],
|
|
data() {
|
|
return {
|
|
decscripTxt: '',
|
|
radio: '',
|
|
activeIcon: require('@/assets/check.png'),
|
|
inactiveIcon: require('@/assets/uncheck.png'),
|
|
queryType: '',
|
|
userOrderId: '',
|
|
orderCode: '',
|
|
reportingList: [],
|
|
reportingRadioList: ['目的地变更', '服务项目更改', '拖车实际在地库', '目的地没有门头照片', '联系不到客户', '车牌、车架号不符',
|
|
'第三方路段无法救援', '客户酒后代驾叫拖车', '车上有货物无法卸货', '客户无钥匙打不开车门', '事故车走故障救援', '电瓶检测仪显示优良客户要搭电', '客户车辆位于非正常路面', '其他报备']
|
|
}
|
|
},
|
|
mounted() {
|
|
const urlParams = new URLSearchParams(window.location.search);
|
|
this.queryType = urlParams.get('queryType');
|
|
this.userOrderId = urlParams.get('userOrderId');
|
|
this.orderCode = urlParams.get('orderCode')
|
|
// this.$toast('queryType' + this.queryType)
|
|
},
|
|
computed: {
|
|
isRadio() {
|
|
return this.radio ? true : false
|
|
},
|
|
isTxt() {
|
|
return this.decscripTxt ? true : false
|
|
},
|
|
},
|
|
methods: {
|
|
submit() {
|
|
this.goReporting();
|
|
},
|
|
change(e) {
|
|
this.radio = e
|
|
},
|
|
async goReporting() {
|
|
if (!this.isRadio) {
|
|
this.$toast('报备事项必选')
|
|
return
|
|
}
|
|
if (this.radio == '其他报备') {
|
|
if (!this.decscripTxt) {
|
|
this.$toast('报备描述必填')
|
|
return
|
|
}
|
|
}
|
|
let result = await orderReporting({
|
|
queryType: Number(this.queryType),
|
|
userOrderId: this.userOrderId,
|
|
orderCode: this.orderCode,
|
|
reportingConfirm: 1,
|
|
reportingItem: this.radio ? this.radio : "",
|
|
reportingDesc: this.decscripTxt ? this.decscripTxt : ""
|
|
})
|
|
// reportingConfirm: this.radio == '其他报备' ? 0 : 1,
|
|
this.$toast(result.msg)
|
|
setTimeout(() => {
|
|
let data = {"action": "goBack", "params": ""}
|
|
var u = navigator.userAgent;
|
|
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
|
|
if (isiOS) {
|
|
window.webkit.messageHandlers.nativeObject.postMessage(data);
|
|
} else {
|
|
window.android.sendMessage("goBack");
|
|
}
|
|
}, 2000)
|
|
|
|
},
|
|
},
|
|
components: {
|
|
CommonBtn
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
@import "@/styles/mixin.scss";
|
|
@import "@/styles/common.scss";
|
|
|
|
.wrap {
|
|
box-sizing: border-box;
|
|
padding: 13px 24px 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.title {
|
|
@include fontWeightSize(bold, 14px);
|
|
color: #323643;
|
|
|
|
}
|
|
|
|
.item {
|
|
font-size: 14px;
|
|
margin-bottom: 8px;
|
|
@include flexCenter;
|
|
}
|
|
|
|
.line {
|
|
@include wh(100%, 2px);
|
|
opacity: 0.16;
|
|
border-top: 1px solid;
|
|
margin-bottom: 10px;
|
|
margin-top: 10px;
|
|
border-image: linear-gradient(270deg, rgba(217, 217, 217, 0.6), rgba(178, 178, 178, 1), rgba(178, 178, 178, 1), rgba(217, 217, 217, 0.6)) 1 1;
|
|
}
|
|
|
|
img {
|
|
@include widHeiMar(16px, 16px, 10px);
|
|
}
|
|
|
|
|
|
.multiple {
|
|
width: 100%;
|
|
height: 125px;
|
|
background: #FAFAFA;
|
|
border-radius: 3px;
|
|
border: 1px solid #E6E6E6;
|
|
backdrop-filter: blur(10px);
|
|
padding: 10px;
|
|
box-sizing: border-box;
|
|
//margin-top: 20px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.btn {
|
|
box-sizing: border-box;
|
|
padding: 13px 24px 0;
|
|
}
|
|
|
|
.scrollWrap {
|
|
|
|
}
|
|
|
|
</style> |