You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

460 lines
14 KiB

<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="disabled" @click="handleCreate()">保存</el-button>
<el-button type="primary" size="small" :disabled="disabled" @click="handleSubmit()">提交</el-button>
</div>
</div>
<div class="">
<div class="title">车辆存放地点变更申请</div>
<el-form ref="dataForm" :model="temp" label-position="right" class="formadd" :rules="rules">
<div class="tit">
<div class="times">
<div>
<span>申请日期</span>
<span>{{ temp.applicantDate }}</span>
</div>
<div>
<span>申请人</span>
<span>{{ temp.applicantName }}</span>
</div>
</div>
</div>
<el-row style="border-top: 1px solid #e0e3eb;">
<el-col :span="3">
<span>现存放地点</span>
</el-col>
<el-col :span="9">
<el-select v-model="temp.location" placeholder="请选择" clearable class="addinputw"
@change="locationChange">
<el-option v-for="item in warehouwarehouse_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue"/>
</el-select>
</el-col>
<el-col :span="3">
<span>目标存放地点</span>
</el-col>
<el-col :span="9">
<el-select v-model="temp.targetLocation" placeholder="请选择" clearable class="addinputw"
@change="targetLocationChange">
<el-option v-for="item in warehouwarehouse_list" :key="item.dictKey" :label="item.dictValue"
:value="item.dictValue"/>
</el-select>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<span>车架号</span>
</el-col>
<el-col :span="21">
<el-select v-model="temp.vinNo" placeholder="请选择" filterable clearable class="addinputw">
<el-option v-for="item in vinNo_list" :key="item.vin" :label="item.vin" :value="item.vin"/>
</el-select>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<span>变更原因</span>
</el-col>
<el-col :span="21">
<el-input v-model="temp.changeReason" maxlength="125" placeholder="" class="addinputw" clearable/>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<span>申请费用</span>
</el-col>
<el-col :span="21">
<el-input v-model="temp.applicantFunds" maxlength="125" placeholder="" class="addinputw" clearable/>
</el-col>
</el-row>
<el-row>
<el-col :span="3"> <!--<span class="icon">*</span>-->
<span>经办人</span>
</el-col>
<el-col :span="9">
<el-input v-model="temp.operator" maxlength="125" placeholder="" class="addinputw" clearable/>
</el-col>
<el-col :span="3">
<span>保险状态</span>
</el-col>
<el-col :span="9">
<el-form-item>
<el-radio-group v-model="temp.InsuranceStateKey">
<el-radio v-for="item in InsuranceState_list" :key="item.key" :label="item.key"
@change="InsuranceStateChange(item.key)">{{ item.value }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="temp.InsuranceStateKey == '1'">
<el-col :span="3">
<span>保单</span>
</el-col>
<el-col :span="21">
<upload ref="uploadImg" v-model="imgList" :limit="1" bucket="map" :upload-data="{type:'0001'}"/>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<span>临牌</span>
</el-col>
<el-col :span="21">
<el-input v-model="temp.temporaryCard" maxlength="125" placeholder="" class="addinputw" clearable/>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import {
getCarTransferInfo,
getVinByWarehouseSid,
saveCarTransferInfo,
selectWarehouseByUserSid,
submitCarTransfer
} from '@/api/supplychain/cunfangdidianbiangeng'
import Upload from '@/components/uploadFile/uploadImg.vue'
export default {
name: 'cunfangdidianbiangengEdit',
components: {
Upload
},
data() {
return {
viewTitle: '',
// --按钮菜单-------
sid: '',
datas: null,
stateId: 0,
FormLoading: false,
listLoading: false,
disabled: false,
location_list: [],
targetLocation_list: [],
imgList: [], // 附件上传
vinNo_list: [], // 车架号
InsuranceState_list: [{
key: '0',
value: '否'
}, {
key: '1',
value: '是'
}],
warehouwarehouse_list: [], // 存放地点
temp: {
sid: '',
// taskId: '',
// procInsId: '',
userSid: window.sessionStorage.getItem('userSid'),
// applyId: '',
applicantName: '',
applicantDate: '',
location: '',
locationKey: '',
locationSid: '',
vinNo: '',
targetLocation: '',
targetLocationKey: '',
targetLocationSid: '',
changeReason: '',
applicantFunds: '',
operator: '',
InsuranceState: '',
InsuranceStateKey: '',
temporaryCard: '',
policyImage: [],
instanceId:'',
taskId:'',
}, // 添加和修改
dialogFormVisible: false, // 添加修改对话框状态
dialogFormShowVisible: false, // 查看对话框默认关闭状态
dialogStatus: '', // 对话框状态
vehiclePhoto: [],
rules: {}
// ------------------------------------
}
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
// 告诉父级页面,子页面的弹框高度。
code: 2,
data: document.body.scrollHeight + 'px'
}
}, '*')
},
created() {
console.log('url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // 第一个?后面的一个字符的位置
var b = window.location.href.indexOf('#data') // 第一个#data出现的位置
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
// ===获取参数
var one = window.location.href.lastIndexOf('#') + 1
var two = window.location.href.lastIndexOf('}') + 1
const data = decodeURI(window.location.href.slice(one, two)) // url解码unescape()已从web中移除,尽量不使用
var tar = data.substr(data.indexOf('=') + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
this.showEdit(sid,obj.instanceId,obj.taskId)
},
methods: {
getType() {
// 存放地点
const userSid = window.sessionStorage.getItem('userSid')
selectWarehouseByUserSid(userSid).then((res) => {
if (res.code === '200') {
this.warehouwarehouse_list = res.data
console.log('存放地点', this.warehouwarehouse_list)
}
})
},
getVin(sid) {
const data = {
warehouseSid: sid,
userSid: window.sessionStorage.getItem('userSid')
}
getVinByWarehouseSid(data).then((res) => {
if (res.code === '200') {
this.vinNo_list = res.data
console.log('车架号', this.vinNo_list)
}
})
},
locationChange(val) {
const choosetItem = this.warehouwarehouse_list.filter((item) => item.dictValue == val)
this.temp.locationKey = choosetItem[0].dictKey
this.temp.locationSid = choosetItem[0].sid
this.getVin(this.temp.locationSid)
console.log('name:', this.temp.location, 'key:', this.temp.locationKey, 'sid:', this.temp.locationSid)
},
targetLocationChange(val) {
const choosetItem = this.warehouwarehouse_list.filter((item) => item.dictValue == val)
this.temp.targetLocationKey = choosetItem[0].dictKey
this.temp.targetLocationSid = choosetItem[0].sid
console.log('name:', this.temp.targetLocation, 'key:', this.temp.targetLocationKey, 'sid:', this.temp.targetLocationSid)
},
InsuranceStateChange(val) {
const choosetItem = this.InsuranceState_list.filter((item) => item.key == val)
this.temp.InsuranceState = choosetItem[0].value
console.log('name:', this.temp.InsuranceState, 'key:', this.temp.InsuranceStateKey)
},
showAdd() {
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
this.dialogStatus = 'add'
this.viewTitle = '【新增】车辆存放地点变更申请'
this.temp.applicantName = window.sessionStorage.getItem('name')
var nowDate = new Date()
var date = {
year: nowDate.getFullYear(),
month: nowDate.getMonth() + 1,
day: nowDate.getDate()
}
var dayDate = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day)
this.temp.applicantDate = dayDate
this.getType()
},
showEdit(sid, instanceId, taskId) {
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
this.dialogStatus = 'update'
this.viewTitle = '【修改】车辆存放地点变更申请'
this.temp.sid = sid
const data = {
userSid: window.sessionStorage.getItem('userSid'),
sid: sid
}
getCarTransferInfo(data).then((res) => {
if (res.success) {
this.temp = res.data
this.temp.InsuranceStateKey = res.data.insuranceStateKey
this.temp.InsuranceState = res.data.insuranceState
this.temp.instanceId = instanceId
this.temp.taskId = taskId
if (this.temp.policyImage.length > 0) {
for (var i = 0; i < this.temp.policyImage.length; i++) {
const imgName = this.temp.policyImage[i].split('/')
this.imgList.push({
name: imgName[imgName.length - 1],
url: this.temp.policyImage[i]
})
}
}
}
})
this.getType()
},
getUrl() {
if (this.temp.InsuranceStateKey == '1') {
if (this.imgList.length > 0) {
console.log('保存imgList', this.imgList)
const img_list = []
for (var i = 0; i < this.imgList.length; i++) {
img_list.push(this.imgList[i].url)
this.temp.policyImage = img_list
console.log('保存img_list', img_list)
}
} else {
this.temp.policyImage = []
}
} else {
this.temp.policyImage = []
}
},
// ----------------------------------方法--------------------
// 返回
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.temp = {
sid: '',
// taskId: '',
// procInsId: '',
userSid: window.sessionStorage.getItem('userSid'),
// applyId: '',
applicantName: '',
applicantDate: '',
location: '',
locationKey: '',
locationSid: '',
vinNo: '',
targetLocation: '',
targetLocationKey: '',
targetLocationSid: '',
changeReason: '',
applicantFunds: '',
operator: '',
InsuranceState: '',
InsuranceStateKey: '',
temporaryCard: '',
policyImage: [],
instanceId:'',
taskId:''
}
this.imgList = []
this.vinNo_list = []
this.$emit('doback')
},
// 提交添加数据
handleCreate() {
this.getUrl()
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.FormLoading = true
// 只需添加和修改
saveCarTransferInfo(this.temp).then((response) => {
this.FormLoading = false
if (response.code === '200') {
this.dialogFormVisible = false
window.parent.postMessage({
cmd: 'returnHeight',
params: {
// 操作成功,告诉父级页面关闭弹框
code: 1
}
}, '*')
} else {
this.$message({
showClose: true,
message: '保存失败!',
type: 'error'
})
}
})
}
})
},
handleSubmit() {
const _this = this
this.getUrl()
this.$refs['dataForm'].validate(valid => {
if (valid) {
// this.submitdisabled = true
this.$confirm('是否确定提交该业务', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
submitCarTransfer(this.temp).then(resp => {
// this.submitdisabled = false
if (resp.success) {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
// 操作成功,告诉父级页面关闭弹框
code: 1
}
}, '*')
}
}).catch(() => {
// this.submitdisabled = false
})
})
} else {
return false
}
})
}
}
}
</script>
<style scoped>
/deep/ .el-autocomplete {
width: 80%;
}
.title {
padding-top: 28px;
}
.formadd .title {
padding: 10px !important;
}
.yancheAdd .el-row {
border: 0 !important;
}
.yancheAdd .el-col {
border: 0 !important;
}
/deep/ .el-col-3 {
text-align: right;
float: left;
font-size: 14px;
color: #606266;
line-height: 40px !important;
font-weight: 600;
}
.tit {
margin-bottom: 30px;
border-bottom: 1px solid #e0e3eb;
}
.times {
display: flex;
flex-direction: row;
justify-content: space-between;
padding: 30px 0 10px 0;
margin: 0 auto 0 auto;
width: 75%;
font-size: 14px;
text-align: center;
}
.title{
text-align: center;
}
</style>