<template>
|
<div class="dispatch">
|
<el-form ref="form" :model="dispatch" :rules="rules" label-width="120px">
|
<!-- 选择距离 -->
|
<el-form-item label="距离:" prop="distance">
|
<el-radio-group v-model="dispatch.distance">
|
<el-radio :label="1">100m以内</el-radio>
|
<el-radio :label="2">300m以内</el-radio>
|
<el-radio :label="3">500m以内</el-radio>
|
<el-radio :label="4">1km以内</el-radio>
|
<el-radio :label="5">2km以内</el-radio>
|
<el-radio :label="6">3km以内</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<!-- 选择执法车 -->
|
<el-form-item label="选择执法车:" prop="enforcementCar">
|
<el-select v-model="dispatch.enforcementCar" placeholder="请选择">
|
<el-option v-for="item in carOptions" :key="item.value" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<!-- 选择人员 -->
|
<div class="form-person">
|
<!-- 部门 -->
|
<el-form-item label="选择人员:" prop="dispatchOpinion">
|
<el-select v-model="dispatch.dispatchOpinion" placeholder="请选择部门">
|
<el-option v-for="item in departOptions" :key="item.value" :label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<!-- 中队 -->
|
<el-form-item prop="enforcementTeam" class="person-item">
|
<el-select v-model="dispatch.enforcementTeam" placeholder="选择中队">
|
<el-option v-for="item in squadronOptions" :key="item.value" :label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item prop='lawEnforcer' class="person-item">
|
<!-- 人员 -->
|
<el-select v-model="dispatch.lawEnforcer" placeholder="请选择人员">
|
<el-option v-for="item in personOptions" :key="item.value" :label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</div>
|
<div class="form-footer">
|
<!-- 执法人员编号 -->
|
<el-form-item label="执法人员编号:" prop="lawEnforcerName">
|
<el-input v-model="dispatch.lawEnforcerName"></el-input>
|
</el-form-item>
|
<!-- 执法人员联系方式 -->
|
<el-form-item label="联系方式:" prop="contactWay">
|
<el-input v-model="dispatch.contactWay"></el-input>
|
</el-form-item>
|
<el-button type="primary" @click.native.prevent="handleDispatch">发送短信</el-button>
|
</div>
|
</el-form>
|
<div class="map">
|
<!-- <MyMap></MyMap> -->
|
</div>
|
</div>
|
</template>
|
<script>
|
import MyMap from '@/components/map'
|
export default {
|
components: {
|
MyMap
|
},
|
props: ['id','changeDialog'],
|
created() {
|
console.log(this.id);
|
},
|
data() {
|
const checkPhone = (rule, value, callback) => {
|
if (value) {
|
const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
|
if (!rep.test(value)) {
|
callback("请输入正确的手机号码");
|
} else {
|
callback();
|
}
|
} else {
|
callback(new Error('联系方式不能为空'))
|
}
|
}
|
const checkOpinion = (rule, value, callback) => {
|
if (value) {
|
callback();
|
} else {
|
callback(new Error('部门不能为空'))
|
}
|
}
|
const checkDistance = (rule, value, callback) => {
|
if (value) {
|
callback();
|
} else {
|
callback(new Error('距离不能为空'))
|
}
|
}
|
const checkCar = (rule, value, callback) => {
|
if (value) {
|
callback();
|
} else {
|
callback(new Error('执法车辆不能为空'))
|
}
|
}
|
const checkTeam = (rule, value, callback) => {
|
if (value) {
|
callback();
|
} else {
|
callback(new Error('中队不能为空'))
|
}
|
}
|
const checkPerson = (rule, value, callback) => {
|
if (value) {
|
callback();
|
} else {
|
callback(new Error('执法人员不能为空'))
|
}
|
}
|
const checkNumber = (rule, value, callback) => {
|
if (value) {
|
callback();
|
} else {
|
callback(new Error('执法人员编号不能为空'))
|
}
|
}
|
return {
|
dispatch: {
|
baseCaseId: 0,//案件id
|
contactWay: "",//联系方式
|
dispatchOpinion: "",//部门
|
disposeDate: "",//处置日期
|
distance: 0,//距离
|
enforcementCar: '',//执法车
|
enforcementTeam: "",//执法中队
|
lawEnforcer: '',//执法人员
|
lawEnforcerName: ""//执法编号
|
},
|
rules: {
|
contactWay: [
|
{
|
required: true, trigger: 'blur', validator: checkPhone
|
}
|
],
|
dispatchOpinion: [
|
{ required: true, trigger: 'change', validator: checkOpinion }
|
],
|
distance: [
|
{ required: true, trigger: 'change', validator: checkDistance }
|
],
|
enforcementCar: [
|
{ required: true, trigger: 'change', validator: checkCar }
|
],
|
enforcementTeam: [
|
{ required: true, trigger: 'change', validator: checkTeam }
|
],
|
lawEnforcer: [
|
{ required: true, trigger: 'change', validator: checkPerson }
|
],
|
lawEnforcerName: [
|
{ required: true, trigger: 'change', validator: checkNumber }
|
],
|
},
|
carOptions: [
|
{
|
label: '车辆一',
|
value: 1,
|
},
|
{
|
label: '车辆二',
|
value: 2,
|
},
|
],
|
departOptions: [
|
{
|
label: '部门一',
|
value: 1,
|
},
|
{
|
label: '部门二',
|
value: 2,
|
},
|
],
|
carOptions: [
|
{
|
label: '车辆一',
|
value: 1,
|
},
|
{
|
label: '车辆二',
|
value: 2,
|
},
|
],
|
squadronOptions: [
|
{
|
label: '中队一',
|
value: 1,
|
},
|
{
|
label: '中队二',
|
value: 2,
|
},
|
],
|
personOptions: [
|
{
|
label: '人员一',
|
value: 1,
|
},
|
{
|
label: '人员二',
|
value: 2,
|
},
|
],
|
}
|
},
|
methods: {
|
// 执行调度
|
handleDispatch() {
|
console.log(this.dispatch);
|
this.$refs.form.validate((valid) => {
|
console.log(valid);
|
if (valid) {
|
const {dispatch,id} = this;
|
dispatch.disposeDate = new Date();
|
console.log(id);
|
dispatch.baseCaseId = id;
|
console.log(dispatch);
|
this.$axios({
|
method:'post',
|
url:`sccg/dispatch_handle/dispatch`,
|
data:dispatch
|
})
|
.then(res=>{
|
this.$message({
|
type: res.code === 200 ? 'success':'error',
|
message: res.code === 200 ? '调度成功':res.message,
|
})
|
this.$emit('changeDialog',{dialogView:false});
|
})
|
} else {
|
return false;
|
}
|
})
|
}
|
}
|
}
|
</script>
|
<style lang="scss" scoped>
|
.dispatch {
|
padding: 50px 20px 10px;
|
.form-person{
|
display: flex;
|
.person-item{
|
margin-left: -100px;
|
}
|
}
|
.form-footer {
|
display: flex;
|
align-items: center;
|
line-height: 40px;
|
|
.el-button {
|
margin-bottom: 22px;
|
margin-left: 40px;
|
}
|
}
|
|
.map {
|
height: 388px;
|
width: 100%;
|
}
|
}
|
</style>
|