Files
supplier-dispatch-h5/src/views/index/reporting.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>