|
|
@@ -3,7 +3,7 @@
|
|
|
<!-- 顶部条-->
|
|
|
<van-nav-bar class="navBar" title="异常拜访" left-arrow @click-left="onClickLeft">
|
|
|
<template #right>
|
|
|
- <span @click="onstopVisit" class="navRightBtnTop">取消拜访</span>
|
|
|
+ <span @click="onstopVisit" class="navRightBtnTop">取消拜访</span>
|
|
|
</template>
|
|
|
</van-nav-bar>
|
|
|
<!-- 主体内容-->
|
|
|
@@ -12,40 +12,57 @@
|
|
|
<van-form class="bgWhite">
|
|
|
<div class="formLabel">
|
|
|
<van-cell>
|
|
|
- <template #title>
|
|
|
- <span class="van-f-red">*</span>异常信息照
|
|
|
- </template>
|
|
|
+ <template #title> <span class="van-f-red">*</span>异常信息照 </template>
|
|
|
<template #right-icon>
|
|
|
- <upload-img :uploadid="uploadid2" :imgArr="imgs" @newimgarr="newimgarr1"
|
|
|
- :visitModel="visitModel" :visitsId="visitId" :taskId="rdId"></upload-img>
|
|
|
+ <upload-img
|
|
|
+ :uploadid="uploadid2"
|
|
|
+ :imgArr="imgs"
|
|
|
+ @newimgarr="newimgarr1"
|
|
|
+ :visitModel="visitModel"
|
|
|
+ :visitsId="visitId"
|
|
|
+ :taskId="rdId"></upload-img>
|
|
|
</template>
|
|
|
</van-cell>
|
|
|
</div>
|
|
|
- <div style="padding:10px 10px 0;"><delete-upload-img :imgs="imgs" @delimg="newimgarr1"></delete-upload-img></div>
|
|
|
+ <div style="padding: 10px 10px 0">
|
|
|
+ <delete-upload-img :imgs="imgs" @delimg="newimgarr1"></delete-upload-img>
|
|
|
+ </div>
|
|
|
<div class="formLabel">
|
|
|
<van-cell>
|
|
|
- <template #title>
|
|
|
- <span class="van-f-red">*</span>异常事由
|
|
|
- </template>
|
|
|
+ <template #title> <span class="van-f-red">*</span>异常事由 </template>
|
|
|
</van-cell>
|
|
|
<van-radio-group v-model="abnormalReason" class="z-checkbox">
|
|
|
- <van-radio :name="item.dictValue" v-for="(item,index) in typeList" :key="index">{{item.dictLabel }}</van-radio>
|
|
|
+ <van-radio :name="item.dictValue" v-for="(item, index) in typeList" :key="index">{{
|
|
|
+ item.dictLabel
|
|
|
+ }}</van-radio>
|
|
|
</van-radio-group>
|
|
|
</div>
|
|
|
- <div class="formLabel" style="padding-bottom: 20px;">
|
|
|
+ <div class="formLabel" style="padding-bottom: 20px">
|
|
|
<van-cell>
|
|
|
<van-cell>
|
|
|
- <template #title>
|
|
|
- <span class="van-f-red">*</span>信息备注
|
|
|
- </template>
|
|
|
+ <template #title> <span class="van-f-red">*</span>信息备注 </template>
|
|
|
</van-cell>
|
|
|
</van-cell>
|
|
|
- <van-field v-model="remark" rows="3" autosize maxlength="260" show-word-limit label=""
|
|
|
- :formatter="formatter" type="textarea" placeholder="请填写异常信息"/>
|
|
|
+ <van-field
|
|
|
+ v-model="remark"
|
|
|
+ rows="3"
|
|
|
+ autosize
|
|
|
+ maxlength="260"
|
|
|
+ show-word-limit
|
|
|
+ label=""
|
|
|
+ :formatter="formatter"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请填写异常信息" />
|
|
|
</div>
|
|
|
</van-form>
|
|
|
- <div class="formLabel" style="margin:20px 16px;">
|
|
|
- <van-button block type="info" size="normal" style="background-color: #0057ba;" @click="endVisitsFn">提交
|
|
|
+ <div class="formLabel" style="margin: 20px 16px">
|
|
|
+ <van-button
|
|
|
+ block
|
|
|
+ type="info"
|
|
|
+ size="normal"
|
|
|
+ style="background-color: #0057ba"
|
|
|
+ @click="endVisitsFn"
|
|
|
+ >提交
|
|
|
</van-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -55,114 +72,121 @@
|
|
|
|
|
|
<script>
|
|
|
// import uploadImg from "@/components/uploadImg";
|
|
|
-import uploadImg from "@/components/uploadVvisit";
|
|
|
-import deleteUploadImg from "@/components/deleteUploadImg1";
|
|
|
-import {addVisits, endVisits, getPhotoTypeList1, stopVisit} from "@/api/index";
|
|
|
+import uploadImg from '@/components/uploadVvisit';
|
|
|
+import deleteUploadImg from '@/components/deleteUploadImg1';
|
|
|
+import { addVisits, endVisits, getPhotoTypeList1, stopVisit } from '@/api/index';
|
|
|
import axios from 'axios';
|
|
|
|
|
|
export default {
|
|
|
- name: "outabnormalVisit",
|
|
|
- components: {uploadImg, deleteUploadImg},
|
|
|
+ name: 'outabnormalVisit',
|
|
|
+ components: { uploadImg, deleteUploadImg },
|
|
|
data() {
|
|
|
return {
|
|
|
PhotoTypeList: [],
|
|
|
- typeList: "",
|
|
|
+ typeList: '',
|
|
|
imgs: [],
|
|
|
cont: 0,
|
|
|
- abnormalReason: "",
|
|
|
+ abnormalReason: '',
|
|
|
uploadid2: 'uploadid2',
|
|
|
- remark: "",
|
|
|
- lat: "",
|
|
|
- lon: "",
|
|
|
- storeCode: "",
|
|
|
+ remark: '',
|
|
|
+ lat: '',
|
|
|
+ lon: '',
|
|
|
+ storeCode: '',
|
|
|
dialogms: true,
|
|
|
- visitModel: ""
|
|
|
- }
|
|
|
+ visitModel: '',
|
|
|
+ };
|
|
|
},
|
|
|
created() {
|
|
|
- this.getPhotoTypeList()
|
|
|
- this.urlParameter = this.$route.query
|
|
|
- this.storeId = this.$route.query.storeId + "";
|
|
|
+ this.getPhotoTypeList();
|
|
|
+ this.urlParameter = this.$route.query;
|
|
|
+ this.storeId = this.$route.query.storeId + '';
|
|
|
this.visitId = this.$route.query.visitId;
|
|
|
this.storeCode = this.$route.query.storeCode;
|
|
|
- this.rdId = this.$route.query.rdId + "";
|
|
|
- this.lat = this.$route.query.lat + "";
|
|
|
- this.lon = this.$route.query.lon + "";
|
|
|
- this.visitModel = this.$route.query.visitModel + "";
|
|
|
- this.imgs = []
|
|
|
- this.remark = ""
|
|
|
- this.abnormalReason = ""
|
|
|
+ this.rdId = this.$route.query.rdId + '';
|
|
|
+ this.lat = this.$route.query.lat + '';
|
|
|
+ this.lon = this.$route.query.lon + '';
|
|
|
+ this.visitModel = this.$route.query.visitModel + '';
|
|
|
+ this.imgs = [];
|
|
|
+ this.remark = '';
|
|
|
+ this.abnormalReason = '';
|
|
|
},
|
|
|
watch: {
|
|
|
$route(to, from) {
|
|
|
- if (from.path == "/outsidelist/index" && to.path == "/outabnormalVisit") {
|
|
|
- this.imgs = []
|
|
|
- this.remark = ""
|
|
|
- this.abnormalReason = ""
|
|
|
+ if (from.path == '/outsidelist/index' && to.path == '/outabnormalVisit') {
|
|
|
+ this.imgs = [];
|
|
|
+ this.remark = '';
|
|
|
+ this.abnormalReason = '';
|
|
|
}
|
|
|
- if (from.path == "/outabnormalVisit" && to.path == "/outsidelist/index") {
|
|
|
- localStorage.removeItem("visitId")
|
|
|
+ if (from.path == '/outabnormalVisit' && to.path == '/outsidelist/index') {
|
|
|
+ localStorage.removeItem('visitId');
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
},
|
|
|
activated() {
|
|
|
- this.addVisits()
|
|
|
- this.imgs = []
|
|
|
- this.remark = ""
|
|
|
- this.abnormalReason = ""
|
|
|
- this.visitModel = this.$route.query.visitModel + "";
|
|
|
- this.urlParameter = this.$route.query
|
|
|
- this.storeId = this.$route.query.storeId + "";
|
|
|
+ this.addVisits();
|
|
|
+ this.imgs = [];
|
|
|
+ this.remark = '';
|
|
|
+ this.abnormalReason = '';
|
|
|
+ this.visitModel = this.$route.query.visitModel + '';
|
|
|
+ this.urlParameter = this.$route.query;
|
|
|
+ this.storeId = this.$route.query.storeId + '';
|
|
|
this.visitId = this.$route.query.visitId;
|
|
|
this.storeCode = this.$route.query.storeCode;
|
|
|
- this.rdId = this.$route.query.rdId + "";
|
|
|
- this.lat = this.$route.query.lat + "";
|
|
|
- this.lon = this.$route.query.lon + "";
|
|
|
+ this.rdId = this.$route.query.rdId + '';
|
|
|
+ this.lat = this.$route.query.lat + '';
|
|
|
+ this.lon = this.$route.query.lon + '';
|
|
|
},
|
|
|
methods: {
|
|
|
// 结束拜访
|
|
|
- onstopVisit(){
|
|
|
- this.$dialog.confirm({
|
|
|
- confirmButtonText:"确定",
|
|
|
- cancelButtonText:"取消",
|
|
|
- title: '系统提示',
|
|
|
- message: '取消拜访会清空填写的拜访内容和照片,是否确认?',
|
|
|
- }).then(() => {
|
|
|
- stopVisit({visitsId:this.visitId}).then(res=>{
|
|
|
- if(res.code==200){
|
|
|
- this.$dialog.alert({
|
|
|
+ onstopVisit() {
|
|
|
+ this.$dialog
|
|
|
+ .confirm({
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ title: '系统提示',
|
|
|
+ message: '取消拜访会清空填写的拜访内容和照片,是否确认?',
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ stopVisit({ visitsId: this.visitId }).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$dialog
|
|
|
+ .alert({
|
|
|
title: '系统提示',
|
|
|
message: '拜访中任务结束成功!',
|
|
|
- }).then(() => {
|
|
|
- window.location.replace(window.location.origin+"/mobile/outsidelist/index")
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ window.location.replace(window.location.origin + '/mobile/outsidelist/index');
|
|
|
});
|
|
|
- }else{
|
|
|
- this.$toast(res.msg)
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
+ } else {
|
|
|
+ this.$toast(res.msg);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
},
|
|
|
formatter(value) {
|
|
|
- return value.replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi, '');
|
|
|
+ return value.replace(
|
|
|
+ /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi,
|
|
|
+ ''
|
|
|
+ );
|
|
|
},
|
|
|
getPhotoTypeList() {
|
|
|
- getPhotoTypeList1({}).then(res => {
|
|
|
- this.typeList = res.data
|
|
|
- })
|
|
|
+ getPhotoTypeList1({}).then((res) => {
|
|
|
+ this.typeList = res.data;
|
|
|
+ });
|
|
|
},
|
|
|
newimgarr1(val) {
|
|
|
- this.imgs.push(val)
|
|
|
+ this.imgs.push(val);
|
|
|
},
|
|
|
onClickLeft() {
|
|
|
- this.$router.go(-1)
|
|
|
+ this.$router.go(-1);
|
|
|
},
|
|
|
addVisits() {
|
|
|
var that = this;
|
|
|
- var visitEntry = ""
|
|
|
- if (this.urlParameter.tabVal == "0") {
|
|
|
- visitEntry = "2"
|
|
|
+ var visitEntry = '';
|
|
|
+ if (this.urlParameter.tabVal == '0') {
|
|
|
+ visitEntry = '2';
|
|
|
} else {
|
|
|
- visitEntry = "1"
|
|
|
+ visitEntry = '1';
|
|
|
}
|
|
|
var map = new TMap.Map('allmap', {
|
|
|
zoom: 14,
|
|
|
@@ -184,10 +208,9 @@ export default {
|
|
|
position: location,
|
|
|
},
|
|
|
]);
|
|
|
- geocoder
|
|
|
- .getAddress({ location: location })
|
|
|
- .then(function(result){
|
|
|
- var addresses=result.result.formatted_addresses
|
|
|
+ geocoder.getAddress({ location: location }).then(
|
|
|
+ function (result) {
|
|
|
+ var addresses = result.result.formatted_addresses;
|
|
|
var params = {
|
|
|
storeId: that.storeId,
|
|
|
storeCode: that.storeCode,
|
|
|
@@ -195,119 +218,161 @@ export default {
|
|
|
lat: that.urlParameter.lat,
|
|
|
lon: that.urlParameter.lon,
|
|
|
visitModel: that.$route.query.visitModel,
|
|
|
- visitSource: "2",
|
|
|
+ visitSource: '2',
|
|
|
routeDetailsId: that.rdId,
|
|
|
- locationCity: "",
|
|
|
+ locationCity: '',
|
|
|
locationRemark: addresses.recommend,
|
|
|
- locationAccuracy: that.urlParameter.PointSum
|
|
|
+ locationAccuracy: that.urlParameter.PointSum,
|
|
|
+ };
|
|
|
+ localStorage.setItem('address', '');
|
|
|
+ if (that.visitId != null) {
|
|
|
+ params.id = that.visitId;
|
|
|
}
|
|
|
- localStorage.setItem('address', "");
|
|
|
+ addVisits(params).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ localStorage.setItem('visitId', res.data);
|
|
|
+ that.visitId = res.data;
|
|
|
+ } else {
|
|
|
+ that.$toast(res.msg);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ function (err) {
|
|
|
+ var params = {
|
|
|
+ storeId: that.storeId,
|
|
|
+ storeCode: that.storeCode,
|
|
|
+ visitEntry: visitEntry,
|
|
|
+ lat: that.urlParameter.lat,
|
|
|
+ lon: that.urlParameter.lon,
|
|
|
+ visitModel: that.$route.query.visitModel,
|
|
|
+ visitSource: '2',
|
|
|
+ routeDetailsId: that.rdId,
|
|
|
+ locationCity: '',
|
|
|
+ locationRemark: '',
|
|
|
+ locationAccuracy: that.urlParameter.PointSum,
|
|
|
+ };
|
|
|
+ localStorage.setItem('address', '');
|
|
|
if (that.visitId != null) {
|
|
|
- params.id = that.visitId
|
|
|
+ params.id = that.visitId;
|
|
|
}
|
|
|
- addVisits(params).then(res => {
|
|
|
+ addVisits(params).then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
localStorage.setItem('visitId', res.data);
|
|
|
that.visitId = res.data;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
that.$toast(res.msg);
|
|
|
}
|
|
|
- })
|
|
|
- },function(err){
|
|
|
- var params = {
|
|
|
- storeId: that.storeId,
|
|
|
- storeCode: that.storeCode,
|
|
|
- visitEntry: visitEntry,
|
|
|
- lat: that.urlParameter.lat,
|
|
|
- lon: that.urlParameter.lon,
|
|
|
- visitModel: that.$route.query.visitModel,
|
|
|
- visitSource: "2",
|
|
|
- routeDetailsId: that.rdId,
|
|
|
- locationCity: "",
|
|
|
- locationRemark:"",
|
|
|
- locationAccuracy: that.urlParameter.PointSum
|
|
|
- }
|
|
|
- localStorage.setItem('address', "");
|
|
|
- if (that.visitId != null) {
|
|
|
- params.id = that.visitId
|
|
|
+ });
|
|
|
}
|
|
|
- addVisits(params).then(res => {
|
|
|
- if (res.code == 200) {
|
|
|
- localStorage.setItem('visitId', res.data);
|
|
|
- that.visitId = res.data;
|
|
|
- }else{
|
|
|
- that.$toast(res.msg)
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
+ );
|
|
|
},
|
|
|
endVisitsFn() {
|
|
|
if (this.imgs.length == 0) {
|
|
|
- this.$toast("请上传图片");
|
|
|
- return
|
|
|
- } if (this.abnormalReason == "") {
|
|
|
- this.$toast("请选择事由");
|
|
|
- return
|
|
|
- } else if (this.remark.trim() == "") {
|
|
|
- this.$toast("请填写异常内容");
|
|
|
- return
|
|
|
+ this.$toast('请上传图片');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (this.abnormalReason == '') {
|
|
|
+ this.$toast('请选择事由');
|
|
|
+ return;
|
|
|
+ } else if (this.remark.trim() == '') {
|
|
|
+ this.$toast('请填写异常内容');
|
|
|
+ return;
|
|
|
} else {
|
|
|
- let dwellTime = this.weekend(localStorage.getItem('startTime'))
|
|
|
+ let dwellTime = this.weekend(localStorage.getItem('startTime'));
|
|
|
endVisits({
|
|
|
- visitSource: "2",
|
|
|
+ visitSource: '2',
|
|
|
dwellTime: dwellTime,
|
|
|
remark: this.remark,
|
|
|
- visitType: "0",
|
|
|
+ visitType: '0',
|
|
|
abnormalReason: this.abnormalReason,
|
|
|
id: this.visitId,
|
|
|
storeCode: this.storeCode,
|
|
|
- visitModel: this.$route.query.visitModel
|
|
|
- }).then(res => {
|
|
|
+ visitModel: this.$route.query.visitModel,
|
|
|
+ }).then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
- this.$dialog.alert({
|
|
|
- title: '系统提示',
|
|
|
- message: '保存成功',
|
|
|
- }).then(() => {
|
|
|
- if(this.$route.query.linkType==6){
|
|
|
- window.location.replace(window.location.origin + "/mobile/topStore?info=y")
|
|
|
- }else{
|
|
|
- window.location.replace(window.location.origin + "/mobile/outsidelist/index?info=y")
|
|
|
- }
|
|
|
- });
|
|
|
- localStorage.removeItem("visitId")
|
|
|
+ this.$dialog
|
|
|
+ .alert({
|
|
|
+ title: '系统提示',
|
|
|
+ message: '保存成功',
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ // if(this.$route.query.linkType==6){
|
|
|
+ // window.location.replace(window.location.origin + "/mobile/topStore?info=y")
|
|
|
+ // }else{
|
|
|
+ window.location.replace(
|
|
|
+ window.location.origin + '/mobile/outsidelist/index?info=y'
|
|
|
+ );
|
|
|
+ // }
|
|
|
+ });
|
|
|
+ localStorage.removeItem('visitId');
|
|
|
localStorage.removeItem('startTime');
|
|
|
} else {
|
|
|
this.$toast.fail(res.msg);
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
weekend(time1) {
|
|
|
var arrtime1 = new Date(time1).getTime();
|
|
|
var arrtime2 = new Date().getTime();
|
|
|
- return (Math.round((arrtime2 - arrtime1) / 1000));
|
|
|
+ return Math.round((arrtime2 - arrtime1) / 1000);
|
|
|
},
|
|
|
- }
|
|
|
-}
|
|
|
+ },
|
|
|
+};
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
-.bgWhite {background-color: white;}
|
|
|
-.container {padding-bottom: 50px;}
|
|
|
-.van-f-red {color: red;width: 4px;display: inline-block}
|
|
|
-.formLabel {margin: 0 16px;border-bottom: 1px solid #f1f1f1}
|
|
|
-.formLabel .van-cell {padding: 10px 0}
|
|
|
-.z-checkbox .van-radio {padding: 6px 0;}
|
|
|
+.bgWhite {
|
|
|
+ background-color: white;
|
|
|
+}
|
|
|
+.container {
|
|
|
+ padding-bottom: 50px;
|
|
|
+}
|
|
|
+.van-f-red {
|
|
|
+ color: red;
|
|
|
+ width: 4px;
|
|
|
+ display: inline-block;
|
|
|
+}
|
|
|
+.formLabel {
|
|
|
+ margin: 0 16px;
|
|
|
+ border-bottom: 1px solid #f1f1f1;
|
|
|
+}
|
|
|
+.formLabel .van-cell {
|
|
|
+ padding: 10px 0;
|
|
|
+}
|
|
|
+.z-checkbox .van-radio {
|
|
|
+ padding: 6px 0;
|
|
|
+}
|
|
|
</style>
|
|
|
<style>
|
|
|
-#allmap{
|
|
|
+#allmap {
|
|
|
width: 20px;
|
|
|
height: 20px;
|
|
|
left: -1000px;
|
|
|
position: relative;
|
|
|
}
|
|
|
-.formLabel .van-field {border: 1px solid #f1f1f1;padding: 10px;width: 100%;background-color: #f1f1f1;}
|
|
|
-.formLabel .van-field__control {padding: 0 10px}
|
|
|
-.lineGrey {height: 10px;width: 100%;background: #f1f1f1;}
|
|
|
-.van-dialog__confirm, .van-dialog__confirm:active {color: #0057ba;}
|
|
|
-.navRightBtnTop{color: white; background: #74a4d9; display: block; padding: 6px 10px; border-radius: 6px;}
|
|
|
-</style>
|
|
|
+.formLabel .van-field {
|
|
|
+ border: 1px solid #f1f1f1;
|
|
|
+ padding: 10px;
|
|
|
+ width: 100%;
|
|
|
+ background-color: #f1f1f1;
|
|
|
+}
|
|
|
+.formLabel .van-field__control {
|
|
|
+ padding: 0 10px;
|
|
|
+}
|
|
|
+.lineGrey {
|
|
|
+ height: 10px;
|
|
|
+ width: 100%;
|
|
|
+ background: #f1f1f1;
|
|
|
+}
|
|
|
+.van-dialog__confirm,
|
|
|
+.van-dialog__confirm:active {
|
|
|
+ color: #0057ba;
|
|
|
+}
|
|
|
+.navRightBtnTop {
|
|
|
+ color: white;
|
|
|
+ background: #74a4d9;
|
|
|
+ display: block;
|
|
|
+ padding: 6px 10px;
|
|
|
+ border-radius: 6px;
|
|
|
+}
|
|
|
+</style>
|