|
|
|
@ -28,7 +28,12 @@ const selectOptions = reactive({
|
|
|
|
|
})
|
|
|
|
|
let emit = defineEmits(['beforeSubmit','submitSuccess']);
|
|
|
|
|
const loading = ref(false)
|
|
|
|
|
// 显示表单抽屉
|
|
|
|
|
const showDrawer = ref(false)
|
|
|
|
|
const dataLoading = ref(false)
|
|
|
|
|
// 页面状态 1添加 2修改 3查看
|
|
|
|
|
const formStatus = ref(1)
|
|
|
|
|
// 表单数据
|
|
|
|
|
const formData = ref({})
|
|
|
|
|
const resetForm = (params) => {
|
|
|
|
|
formData.value = {
|
|
|
|
@ -44,10 +49,19 @@ const resetForm = (params) => {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const toAdd = (params = {}) => {
|
|
|
|
|
formStatus.value = 1
|
|
|
|
|
resetForm(deepClone(params))
|
|
|
|
|
uploadJsonData.value = []
|
|
|
|
|
showDrawer.value = true
|
|
|
|
|
}
|
|
|
|
|
const toUpdate = (row) => {
|
|
|
|
|
formStatus.value = 2
|
|
|
|
|
showDrawer.value = true
|
|
|
|
|
}
|
|
|
|
|
const toView = (row) => {
|
|
|
|
|
formStatus.value = 3
|
|
|
|
|
showDrawer.value = true
|
|
|
|
|
}
|
|
|
|
|
// 计算地块面积(亩)
|
|
|
|
|
const calculateArea = () => {
|
|
|
|
|
let value = [];
|
|
|
|
@ -104,7 +118,9 @@ const saveMassif = () => {
|
|
|
|
|
},2000)
|
|
|
|
|
}
|
|
|
|
|
defineExpose({
|
|
|
|
|
toAdd
|
|
|
|
|
toAdd,
|
|
|
|
|
toUpdate,
|
|
|
|
|
toView
|
|
|
|
|
})
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
@ -112,39 +128,44 @@ defineExpose({
|
|
|
|
|
<div>
|
|
|
|
|
<left-drawer v-model="showDrawer" width="40%">
|
|
|
|
|
<div class="title">
|
|
|
|
|
新增地块
|
|
|
|
|
<div v-if="formStatus === 1">新增地块</div>
|
|
|
|
|
<div v-if="formStatus === 2">编辑地块</div>
|
|
|
|
|
<div v-if="formStatus === 3">地块详情</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form">
|
|
|
|
|
<el-form v-model="formData" label-position="top">
|
|
|
|
|
<el-form v-model="formData" :label-position="formStatus===3?'left':'top'">
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<title-divider title="基本信息"/>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="地块名称" prop="name">
|
|
|
|
|
<el-input placeholder="请输入地块名称"></el-input>
|
|
|
|
|
<el-input placeholder="请输入地块名称" v-if="formStatus!==3"></el-input>
|
|
|
|
|
<div v-else>{{formData.name}}</div>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-tooltip
|
|
|
|
|
content="点击[亩]字可以自动计算坐标点面积"
|
|
|
|
|
placement="top"
|
|
|
|
|
:disabled="formStatus===3"
|
|
|
|
|
>
|
|
|
|
|
<el-form-item label="地块面积" prop="name">
|
|
|
|
|
<el-input v-model="formData.area">
|
|
|
|
|
<el-input v-model="formData.area" v-if="formStatus!==3">
|
|
|
|
|
<template #append><el-button @click="calculateArea">亩</el-button></template>
|
|
|
|
|
</el-input>
|
|
|
|
|
<div v-if="formStatus===3">{{formData.area}}亩</div>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="所属基地/资源圃" prop="name">
|
|
|
|
|
<el-input disabled></el-input>
|
|
|
|
|
<el-input disabled v-if="formStatus!==3"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="地块性质" prop="name">
|
|
|
|
|
<el-select placeholder="请选择地块性质" clearable>
|
|
|
|
|
<el-select placeholder="请选择地块性质" clearable v-if="formStatus!==3">
|
|
|
|
|
<el-option v-for="item in selectOptions.massifType" :key="item.value" :label="item.label"
|
|
|
|
|
:value="item.value"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
@ -152,7 +173,7 @@ defineExpose({
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="当前作物" prop="name">
|
|
|
|
|
<el-select placeholder="请选择当前作物" clearable multiple>
|
|
|
|
|
<el-select placeholder="请选择当前作物" clearable multiple v-if="formStatus!==3">
|
|
|
|
|
<el-option v-for="item in selectOptions.cropClass" :key="item.value" :label="item.label"
|
|
|
|
|
:value="item.value"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
@ -160,18 +181,18 @@ defineExpose({
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="当前状态" prop="name">
|
|
|
|
|
<el-switch></el-switch>
|
|
|
|
|
<el-switch v-if="formStatus!==3"></el-switch>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item label="备注" prop="name">
|
|
|
|
|
<el-input placeholder="请输入备注"></el-input>
|
|
|
|
|
<el-input placeholder="请输入备注" v-if="formStatus!==3"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<title-divider title="坐标信息" style="margin-top: 10px"/>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-col :span="24" v-if="formStatus!==3">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="16">
|
|
|
|
|
坐标上传方式
|
|
|
|
@ -200,7 +221,7 @@ defineExpose({
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col v-if="formData.coordinateType === 1" :span="24" v-for="(item,index) in formData.coordinateList"
|
|
|
|
|
<el-col v-if="formData.coordinateType === 1 && formStatus!==3" :span="24" v-for="(item,index) in formData.coordinateList"
|
|
|
|
|
:key="index" style="margin-top: 10px">
|
|
|
|
|
<el-row :gutter="10">
|
|
|
|
|
<el-col :span="11">
|
|
|
|
@ -220,7 +241,7 @@ defineExpose({
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="24" v-if="formData.coordinateType === 2">
|
|
|
|
|
<el-col :span="24" v-if="formData.coordinateType === 2 || formStatus===3">
|
|
|
|
|
<el-table :data="uploadJsonData" border style="margin-top: 10px">
|
|
|
|
|
<el-table-column prop="name" label="坐标序号" width="100" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
@ -235,7 +256,7 @@ defineExpose({
|
|
|
|
|
</el-form>
|
|
|
|
|
</div>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<el-button type="primary" :loading="loading" @click="saveMassif">保存</el-button>
|
|
|
|
|
<el-button v-if="formStatus!==3" type="primary" :loading="loading" @click="saveMassif">保存</el-button>
|
|
|
|
|
<el-button @click="showDrawer = false">取消</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</left-drawer>
|
|
|
|
|