656 lines
15 KiB
Vue
656 lines
15 KiB
Vue
<template>
|
||
<div class="page-cont">
|
||
<div class="upload-wrap-header">
|
||
<div class="upload-info">
|
||
<img :src="user.Membership_Headimage" alt="">
|
||
<div>
|
||
<p>{{user.Membership_Name}}</p>
|
||
<p class="fs12">巡查人员</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- <div class="upload-h2">请在下方填写你的巡查内容</div> -->
|
||
<div class=" upload-h2">
|
||
<div class="uni-flex ai-top">
|
||
<image src="/static/images/publicity/dingwei.png" mode="aspectFit" class="img-address"></image>
|
||
<div>
|
||
<p class="xuncha address">{{work_address}}</p>
|
||
<div><span>巡查时间:</span><span>{{now_time}}</span></div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="form_box_bg">
|
||
<ul>
|
||
|
||
<li :class="{'active':inputfocus}">
|
||
<span class="circle circle-first" ></span>
|
||
<div class="li_right_top">
|
||
<div class="li_title">
|
||
<i class="img-zds"></i>
|
||
<div class="xuncha" style="display: flex;"><i style="color: red;margin-right: 5px;">*</i>巡查内容</div>
|
||
</div>
|
||
<div class="list-content">
|
||
<textarea auto-height v-model="uploadResult" placeholder="请输入巡查内容" focus="true" @focus="inputfocus=true" @blur="inputfocus = false"></textarea>
|
||
</div>
|
||
<div class="tag-list" v-for="(tags,i) in tagList" :key="i">
|
||
<div class="tag-name">{{tags.FIELDENUM_NAME}}</div>
|
||
<div class="tags-box">
|
||
<div class="tag-unit" v-for="(tag,s) in tags.fieldenumList" :key="s" @tap="selectTag(tag)" :class="{'active':tag.ischecked}">{{tag.FIELDENUM_NAME}}</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</li>
|
||
<li :class="{'active':imgfocus}">
|
||
<span class="circle"></span>
|
||
<div class="li_right_top">
|
||
<div class="li_title">
|
||
<i class="img-upload"></i>
|
||
<div style="display: flex;" class="xuncha"><i style="color: red;margin-right: 5px;">*</i>请上传现场图片</div>
|
||
</div>
|
||
<div class="upload-file-container">
|
||
<div class="upload-file-list" v-for="(item,index) in imgsList" :key="index">
|
||
<span class="upload-file-remove" @click.stop="deleteImgFunc(item,index)">×</span>
|
||
<image :src="item" @tap="showImg2(index)" mode='aspectFill' />
|
||
</div>
|
||
<div class="upload-file-add" @click="submitImg">
|
||
<div class="upload-file-add-container">
|
||
<span class="walk-manage-plus">+</span>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li :class="{'active':radiofocus}">
|
||
<span class="circle circle-last"></span>
|
||
<div class="li_right_top">
|
||
<radio-group @change="radioChange" style="display: flex;" @click="radioFocus" @blur="radiofocus=false">
|
||
<label class="uni-list-cell " v-for="(item, index) in options" :key="item.value">
|
||
<view>
|
||
<radio :value="item.value" color='#409eff' :checked="index === current" style="transform:scale(0.8);"/>
|
||
</view>
|
||
<view>{{item.name}}</view>
|
||
</label>
|
||
</radio-group>
|
||
</div>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div>
|
||
<div v-show="current==1">
|
||
<div class="resolve-box">
|
||
<div class="uni-flex">处理人<i style="color: red;margin-right: 5px;">*</i></div>
|
||
<picker mode="selector" @change="pickerChange" :value="pickerIndex" range-key="Membership_Name" :range="dealerList" class="resolve-person">
|
||
<view>{{pickerIndex==-1 ? '请选择': dealerList[pickerIndex].Membership_Name}}</view>
|
||
</picker>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<button class="btn" @click="submitUpload">提交</button>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import {mapGetters} from 'vuex'
|
||
export default {
|
||
data() {
|
||
let nowTime = this.$util.cutDate(new Date(), 'hh:mm:ss')
|
||
return {
|
||
inputfocus: true,
|
||
imgfocus: false,
|
||
loadingType: 1,
|
||
radiofocus: true,
|
||
work_address: '',
|
||
uploadResult: '',
|
||
now_time: nowTime,
|
||
imgData: [],
|
||
imgsList: [],
|
||
value: '0',
|
||
current: 0,
|
||
mbwaId: '', // 3748,2781,西区接待室
|
||
options: [{
|
||
name: '情况正常',
|
||
value: '0'
|
||
},
|
||
{
|
||
name: '急需处理',
|
||
value: '2'
|
||
}
|
||
],
|
||
pickerIndex: -1,
|
||
dealerList:[], // 待处理人可选列表
|
||
tagList: [] ,// 巡查可选标签
|
||
selectTags:[] // 选中的标签集合
|
||
}
|
||
},
|
||
computed:{
|
||
...mapGetters({
|
||
'user':'getUser'
|
||
})
|
||
},
|
||
methods: {
|
||
radioFocus () {
|
||
this.radiofocus=true
|
||
this.imgfocus=false
|
||
},
|
||
showImg2(index) {
|
||
uni.previewImage(this.imgsList, {
|
||
current: index,
|
||
loop: true,
|
||
indicator: 'number'
|
||
});
|
||
},
|
||
pickerChange(e){
|
||
this.pickerIndex = e.detail.value
|
||
},
|
||
submitUpload(){
|
||
let _this = this
|
||
this.radiofocus = false
|
||
this.imgfocus = false
|
||
let index= this.pickerIndex
|
||
if(this.uploadResult == ''){
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: '请输入巡查内容!'
|
||
})
|
||
return false
|
||
}
|
||
if(_this.imgData.length === 0){
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: '请上传现场图片。'
|
||
})
|
||
return false
|
||
}
|
||
if(this.current==1 && index==-1) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: '请选择处理人员。'
|
||
})
|
||
return false
|
||
}
|
||
uni.showLoading({
|
||
title: '提交中,请稍后'
|
||
})
|
||
let address = _this.mbwaId.split(',')
|
||
let province = address[address.length-1]
|
||
let postMsg = {
|
||
MBWA_ADDRESS: _this.mbwaId,
|
||
MBWA_CONTENT: _this.uploadResult,
|
||
ImageArr: _this.imgData.toString(),
|
||
PROCESSMODE: _this.value,
|
||
enumLabel: _this.selectTags.toString()
|
||
}
|
||
if(this.current==1 && index!==-1) {
|
||
|
||
postMsg = {...postMsg,
|
||
DEALER_ID: this.dealerList[index].Membership_Id,
|
||
DEALER_NAME: this.dealerList[index].Membership_Name,
|
||
DEALER_STAFFID: this.dealerList[index].Staff_Id
|
||
}
|
||
}
|
||
_this.$request.$webPost( '/WeChat/MBWA/AddMBWA',postMsg).then(res =>{
|
||
uni.hideLoading()
|
||
if(res.Result_Code==100){
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: '提交成功',
|
||
success() {
|
||
setTimeout(() => {
|
||
uni.navigateBack({
|
||
delta: 1
|
||
});
|
||
}, 500)
|
||
}
|
||
})
|
||
}else{
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: res.Result_Desc
|
||
})
|
||
}
|
||
})
|
||
},
|
||
submitImg(e) {
|
||
this.imgfocus = true
|
||
let _this = this
|
||
uni.chooseImage({
|
||
count: 1, //默认9
|
||
sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
|
||
sourceType: ['camera'], //从相册选择
|
||
success: function(res) {
|
||
|
||
let imageSrc = res.tempFilePaths[0]
|
||
uni.showLoading()
|
||
uni.uploadFile({
|
||
url: 'https://user.eshangtech.com/Coop.Merchant/Handler/handler_ajax.ashx?action_type=UploadFile&folder=MBWA',
|
||
filePath: imageSrc,
|
||
fileType: 'image',
|
||
name: 'data',
|
||
success: (res) => {
|
||
let _data = JSON.parse(res.data)
|
||
|
||
uni.hideLoading()
|
||
_this.imgsList.push(imageSrc)
|
||
_this.imgData.push(_data.Data.IMAGE_PATH)
|
||
|
||
},
|
||
fail: (err) => {
|
||
// console.log('uploadImage fail', err);
|
||
uni.showModal({
|
||
content: err.errMsg,
|
||
showCancel: false
|
||
});
|
||
}
|
||
});
|
||
}
|
||
});
|
||
},
|
||
deleteImgFunc(item, index) {
|
||
let _this = this
|
||
_this.$request.$post('DelFile',{
|
||
|
||
fileUrl: _this.imgData[index]
|
||
}).then(res => {
|
||
_this.imgData.splice(index, 1)
|
||
_this.imgsList.splice(index, 1)
|
||
uni.showToast({
|
||
title: res.data,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
})
|
||
},
|
||
radioChange(evt) {
|
||
this.value = evt.target.value
|
||
for (let i = 0; i < this.options.length; i++) {
|
||
if (this.options[i].value === evt.target.value) {
|
||
this.current = i;
|
||
break;
|
||
}
|
||
}
|
||
},
|
||
getDealerList (sid,pcode) {
|
||
let _this = this
|
||
uni.showLoading()
|
||
_this.$request.$webGet('/WeChat/MBWA/GetDealerList',{
|
||
|
||
PROVINCE_CODE: pcode,
|
||
SERVERPART_ID: sid
|
||
}).then(rs => {
|
||
uni.hideLoading()
|
||
_this.dealerList = rs.Result_Data.List
|
||
|
||
})
|
||
},
|
||
getTag() {
|
||
let _this = this
|
||
_this.$request.$get( 'GetEnumLable',{
|
||
|
||
fieldexplainField: 'BUSINESS_TARGET',
|
||
fieldenumIndex:3000
|
||
}).then(res=>{
|
||
|
||
_this.tagList = res.Data.List
|
||
})
|
||
},
|
||
selectTag(tag) {
|
||
let index = this.selectTags.indexOf(tag.FIELDENUM_VALUE)
|
||
if (index !== -1) {
|
||
this.selectTags.splice(index, 1)
|
||
} else {
|
||
this.selectTags.push(tag.FIELDENUM_VALUE)
|
||
}
|
||
|
||
tag.ischecked = tag.ischecked!=undefined ?!tag.ischecked : true
|
||
this.$forceUpdate()
|
||
},
|
||
},
|
||
onUnload() {
|
||
this.$util.addUserBehavior()
|
||
},
|
||
onLoad(option) {
|
||
// 1,-39,测试,500000
|
||
this.mbwaId = option.mbwaID
|
||
let key = option.mbwaID.trim().split(',')
|
||
|
||
if(key.length){
|
||
this.work_address= key[2]
|
||
this.getDealerList( key[0],key[key.length-1])
|
||
this.getTag()
|
||
}
|
||
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped>
|
||
.page-cont {
|
||
min-height: 100%;
|
||
background-color: #fff;
|
||
padding-bottom: 40rpx;
|
||
}
|
||
.fs12 {
|
||
font-size: 24rpx;
|
||
}
|
||
.upload-wrap-header {
|
||
height: 120rpx;
|
||
width: 100%;
|
||
background-color: rgb(246, 246, 246);
|
||
box-shadow: rgb(214, 207, 207) 4rpx 0px 20rpx;
|
||
background: url('../../static/images/mbwa/bj_logo.png') no-repeat bottom right;
|
||
background-size: 34%;
|
||
padding-left: 30rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.upload-info {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.upload-info img {
|
||
width: 100rpx;
|
||
height: 100rpx;
|
||
border-radius: 50%;
|
||
margin-top: 10rpx;
|
||
margin-right: 20rpx;
|
||
}
|
||
|
||
.upload-h2 {
|
||
color: #727272;
|
||
|
||
padding: 30rpx;
|
||
}
|
||
.upload-h2 span {
|
||
font-size: 24rpx;
|
||
}
|
||
.form_box_bg:before {
|
||
position: absolute;
|
||
left: 9rpx;
|
||
top: 24rpx;
|
||
content: ' ';
|
||
display: block;
|
||
height: 96%;
|
||
background-color: #eee;
|
||
width: 1rpx;
|
||
|
||
}
|
||
.form_box_bg {
|
||
position: relative;
|
||
margin-left: 24rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
.form_box_bg li {
|
||
width: 100%;
|
||
position: relative;
|
||
margin-top: 16rpx;
|
||
}
|
||
|
||
.circle {
|
||
background-color: #b2b2b2;
|
||
height: 16rpx;
|
||
width: 16rpx;
|
||
border-radius: 50%;
|
||
position: absolute;
|
||
top: 16rpx;
|
||
left: 1rpx;
|
||
}
|
||
.circle-first{
|
||
top: 14rpx;
|
||
}
|
||
.circle-last{
|
||
top: 46rpx;
|
||
}
|
||
|
||
.img-address {
|
||
display: inline-block;
|
||
width: 49rpx;
|
||
height: 48rpx;
|
||
border-radius: 10rpx;
|
||
/* background: url("../../static/images/publicity/dingwei.png") no-repeat center;
|
||
background-size: contain; */
|
||
margin-right: 6rpx;
|
||
}
|
||
|
||
.img-zds {
|
||
display: inline-block;
|
||
width: 32rpx;
|
||
height: 32rpx;
|
||
background: url("../../static/images/mbwa/content_img_gray.png") no-repeat center;
|
||
background-size: contain;
|
||
margin-right: 6rpx;
|
||
}
|
||
|
||
.img-upload {
|
||
display: inline-block;
|
||
width: 32rpx;
|
||
height: 32rpx;
|
||
background: url("../../static/images/mbwa/pic_img_gray.png") no-repeat center;
|
||
background-size: contain;
|
||
margin-right: 6rpx;
|
||
}
|
||
|
||
.li_right_top {
|
||
margin-left: 40rpx;
|
||
}
|
||
.li_title {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
.li_right_bottom , .list-content{
|
||
color: #939393;
|
||
font-size: 24rpx;
|
||
|
||
padding-bottom: 40rpx;
|
||
}
|
||
.list-content textarea {
|
||
min-height: 50rpx;
|
||
line-height: 1.5;
|
||
}
|
||
.tag-list {
|
||
display: flex;
|
||
font-size: 24rpx;
|
||
color: #606266;
|
||
width: 100%;
|
||
}
|
||
.tag-list + .tag-list {
|
||
margin-top: 8rpx;
|
||
}
|
||
.tag-list .tag-name {
|
||
margin-right: 16rpx;
|
||
font-size: 22rpx;
|
||
line-height: 2.9;
|
||
}
|
||
.tag-list .tags-box {
|
||
width: 546rpx;
|
||
padding: 0 24rpx 0 12rpx;
|
||
/* overflow: auto;
|
||
white-space: nowrap;
|
||
-webkit-overflow-scrolling: touch; */
|
||
}
|
||
.tag-list .tags-box .tag-unit {
|
||
padding: 4rpx 16rpx;
|
||
background-color: #F4F4F4;
|
||
color: #606266;
|
||
border-radius: 24rpx;
|
||
margin: 8rpx;
|
||
font-size: 22rpx;
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
}
|
||
.tag-list .tags-box .tag-unit.active {
|
||
color: #ED7043;
|
||
background-color: #FDF1EC;
|
||
}
|
||
.list-content textarea {
|
||
border-bottom: 1rpx solid #eee;
|
||
margin-top: 20rpx;
|
||
color: #727272;
|
||
font-size: 24rpx;
|
||
line-height: 1.8;
|
||
}
|
||
.upload-file-container {
|
||
display: flex;
|
||
flex-flow: row wrap;
|
||
justify-content: flex-start;
|
||
align-items: flex-start;
|
||
width: 100%;
|
||
padding: 20rpx 0;
|
||
/* padding-left: 54rpx; */
|
||
min-height: 160rpx;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.upload-file-add {
|
||
width: 26%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.upload-file-add-container {
|
||
display: flex;
|
||
flex-flow: column nowrap;
|
||
justify-content: center;
|
||
align-items: center;
|
||
border: 1rpx dashed #c6c6c6;
|
||
height: 160rpx;
|
||
width: 160rpx;
|
||
margin-top: 15rpx;
|
||
border-radius: 6rpx;
|
||
margin-left: 12rpx;
|
||
}
|
||
|
||
.walk-manage-plus {
|
||
line-height: 60rpx;
|
||
width: 62rpx;
|
||
height: 62rpx;
|
||
text-align: center;
|
||
border-radius: 50%;
|
||
background-color: #409eff;
|
||
color: #ffffff;
|
||
font-size: 48rpx;
|
||
box-shadow: 0 2rpx 6rpx 0 #eee;
|
||
}
|
||
|
||
.upload-file-add-img {
|
||
margin-top: 10rpx;
|
||
font-size: 24rpx;
|
||
color: #919191;
|
||
}
|
||
|
||
.upload-file-list {
|
||
position: relative;
|
||
display: flex;
|
||
flex-flow: row nowrap;
|
||
justify-content: center;
|
||
align-items: center;
|
||
background-color: #f1f1f1;
|
||
box-sizing: border-box;
|
||
width: 160rpx;
|
||
height: 160rpx;
|
||
border-radius: 6rpx;
|
||
margin-top: 16rpx;
|
||
}
|
||
.upload-file-list:nth-child(3n-1) {
|
||
margin-left: 16rpx;
|
||
margin-right: 16rpx;
|
||
|
||
}
|
||
.upload-file-list image {
|
||
width: 160rpx;
|
||
height: 160rpx;
|
||
border-radius: 6rpx;
|
||
}
|
||
.upload-file-remove {
|
||
position: absolute;
|
||
top: -14rpx;
|
||
right: -12rpx;
|
||
display: inline-block;
|
||
width: 30rpx;
|
||
height: 30rpx;
|
||
line-height: 26rpx;
|
||
background-color: #f56c6c;
|
||
color: #ffffff;
|
||
font-size: 30rpx;
|
||
border-radius: 50%;
|
||
text-align: center;
|
||
z-index: 1;
|
||
}
|
||
|
||
uni-radio-group {
|
||
display: flex;
|
||
}
|
||
.uni-list-cell {
|
||
justify-content: unset;
|
||
margin-top: 28rpx;
|
||
}
|
||
|
||
.uni-list-cell:after{
|
||
background-color: #F9F9F9;
|
||
}
|
||
|
||
.btn{
|
||
width: 80%;
|
||
margin: 0 auto;
|
||
margin-top: 50rpx;
|
||
background-color:#409eff;
|
||
border-radius: 10rpx;
|
||
color: #fff;
|
||
font-size: 28rpx;
|
||
line-height: 2.8;
|
||
margin-top: 96rpx;
|
||
}
|
||
.active .circle {
|
||
background-color: #409eff;
|
||
}
|
||
.active .img-zds {
|
||
background-image: url("../../static/images/mbwa/zdsgl_sm_nr.png");
|
||
}
|
||
.active .img-upload {
|
||
background-image: url("../../static/images/mbwa/zdsgl_sm_pic.png");
|
||
}
|
||
.xuncha {
|
||
font-size: 26rpx;
|
||
color: #7A7A7A;
|
||
}
|
||
.address {
|
||
color: #1B1C20;
|
||
}
|
||
.active .xuncha {
|
||
color: #409eff;
|
||
}
|
||
.resolve-box {
|
||
width: 656rpx;
|
||
height: 82rpx;
|
||
background: #ffffff;
|
||
border-radius: 12rpx;
|
||
box-shadow: 0px 0rpx 4rpx 0px rgba(166,166,166,0.60);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding-left: 24rpx;
|
||
box-sizing: border-box;
|
||
margin-left: 72rpx;
|
||
margin-top: 40rpx;
|
||
}
|
||
.resolve-box .resolve-person {
|
||
padding-right: 16upx;
|
||
text-align: right;
|
||
padding-right: 72upx;
|
||
position: relative;
|
||
}
|
||
.resolve-box .resolve-person:after{
|
||
font-family: uniicons;
|
||
content: '\E583';
|
||
position: absolute;
|
||
right: 12px;
|
||
top: 50%;
|
||
color: #333;
|
||
transform: translateY(-50%);
|
||
}
|
||
</style>
|