202 lines
5.4 KiB
Vue
Raw Normal View History

2024-10-17 11:26:09 +08:00
<!--
* @Author: SunTao 328867980@qq.com
* @Date: 2024-10-17 11:01:18
* @LastEditors: SunTao 328867980@qq.com
* @LastEditTime: 2024-10-17 11:24:08
* @FilePath: \znxjxt-ui\src\views\xj\route\route-terminal\components\terminal-add.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div class="add-content">
<div class="add-form">
<el-form
ref="dialogForm"
:model="dialogForm"
:rules="rules"
label-width="120px"
>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="设备编号" prop="clientid">
<el-input
v-model="dialogForm.clientid"
placeholder="请输入设备编号"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属车辆" prop="plateno">
<el-input
v-model="dialogForm.plateno"
placeholder="请输入所属车辆"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="作业范围" prop="areas">
<el-select
v-model="dialogForm.areas"
placeholder="请选择作业范围"
multiple
collapse-tags
>
<el-option
v-for="dict in bindCarList"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input
type="textarea"
v-model="dialogForm.remark"
rows="3"
resize="none"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="bottom-map">
<fssm-map
@endEoordinate="geteoordinate"
:editCoordinates="editCoordinates"
:showChange="true"
:showZoom="false"
:showDraw="false"
></fssm-map>
</div>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</div>
</template>
<script>
import { addTerminal, updateTerminal } from "@/api/xj/terminal";
import FssmMap from "@/components/map/fssm-map";
export default {
components: { FssmMap },
name: "TerminalAdd",
props: {
dialogItem: {
type: Object,
default: () => {},
},
},
data() {
return {
// 表单绑定
dialogForm: {
clientid: "",
plateno: "",
areas: [],
remark: "",
},
rules: {
clientid: [
{ required: true, message: "设备编号不能为空", trigger: "blur" },
],
plateno: [
{ required: true, message: "所属车辆不能为空", trigger: "blur" },
],
areas: [
{ required: true, message: "请选择作业范围", trigger: "change" },
],
coordinates: [
{
required: true,
message: "请在下方地图添加作业范围",
trigger: "blur",
},
],
},
// 根据id查询到的区域坐标
editCoordinates: [],
};
},
watch: {
dialogItem: {
handler(val) {
if (val.title === "修改") {
const a =
"122.2772084092066,42.1903654574782;122.4566518803403,41.91936930784885;123.0608999272153,41.9541594027907;122.9638539170191,42.419247153717315;122.37425425176474,42.413753989654815;122.36143698071095,42.24529693046514;122.2772084092066,42.1903654574782";
this.dialogForm.coordinates = a;
this.editCoordinates = a.split(";").map((item) => {
return item.split(",");
});
}
},
immediate: true,
deep: true,
},
},
created() {},
methods: {
/* 获取多边形坐标方法 */
geteoordinate(list) {
this.dialogForm.coordinates = list.join(";");
},
/* 点击取消事件 */
cancel() {
this.$emit("addCancel");
},
/* 点击确认事件 */
submitForm() {
this.$refs["dialogForm"].validate((valid) => {
if (valid) {
if (this.dialogItem.title === "修改") {
updateTerminal(this.dialogForm).then(({ data, code }) => {
if (code === 200) {
this.$emit("addCancel");
}
});
} else {
addTerminal(this.dialogForm).then(({ data, code }) => {
if (code === 200) {
this.$emit("addCancel");
}
});
}
}
});
},
},
};
</script>
<style lang="scss" scoped>
.add-content {
width: 100%;
height: 100%;
.add-form {
.el-select {
width: 100%;
}
}
.bottom-map {
width: 100%;
height: 30rem;
}
.dialog-footer {
width: 100%;
height: 2.5rem;
margin-top: 1rem;
display: flex;
justify-content: flex-end;
}
}
</style>