This commit is contained in:
yanran200730
2023-04-14 17:42:43 +08:00
parent 42eff40f48
commit e553c9c758
4 changed files with 1053 additions and 0 deletions

View File

@@ -0,0 +1,217 @@
<template>
<div class="add-block">
<ai-detail>
<template #title>
<ai-title
:title="pageTitle"
:isShowBack="true"
:isShowBottomBorder="true"
@onBackClick="cancel(false)"
/>
</template>
<template #content>
<el-form ref="rules" :model="forms" :rules="formRules" size="small" label-suffix="" label-width="120px">
<ai-card title="基础信息">
<template slot="content">
<el-form-item label="网格名称" prop="girdName">
<el-input v-model="forms.girdName" placeholder="请输入…" :maxlength="50" show-word-limit clearable/>
</el-form-item>
<el-form-item label="网格长" prop="girdMemberManageList">
<ai-user-selecter isShowUser :instance="instance" v-model="forms.girdMemberManageList" :props="{label:'name', id: 'id'}"/>
</el-form-item>
<el-form-item label="网格员" prop="girdMemberList">
<ai-user-selecter isShowUser :instance="instance" v-model="forms.girdMemberList" :props="{label:'name', id: 'id'}"/>
</el-form-item>
</template>
</ai-card>
<ai-card title="其他信息">
<template slot="content">
<el-row type="flex">
<div class="fill">
<el-form-item label="初始日期" prop="startDate">
<el-date-picker
v-model="forms.startDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
style="width: 100%;"/>
</el-form-item>
<el-form-item label="终止日期" prop="endDate">
<el-date-picker v-model="forms.endDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 100%;"/>
</el-form-item>
</div>
<div class="fill">
<el-form-item label="面积" prop="area">
<el-input v-model="forms.area" placeholder="面积㎡" clearable/>
</el-form-item>
</div>
</el-row>
<el-form-item label="网格地址" prop="address">
<el-input v-model="forms.address" placeholder="限200字" maxlength="200"></el-input>
</el-form-item>
<el-form-item label="网格范围" prop="enclosure">
<map-plotting v-model="forms.points">
<el-button size="small">地图标绘</el-button>
</map-plotting>
</el-form-item>
</template>
</ai-card>
</el-form>
</template>
<template #footer>
<el-button @click="cancel(false)" class="delete-btn footer-btn">
</el-button>
<el-button type="primary" @click="save()" class="footer-btn">
</el-button>
</template>
</ai-detail>
</div>
</template>
<script>
import {mapState} from "vuex";
import MapPlotting from "./mapPlotting";
export default {
name: "addBlock",
components: {MapPlotting},
props: {
instance: Function,
dict: Object,
params: Object,
},
data() {
return {
forms: {
girdMemberManageList: [],
girdMemberList: []
},
options: [],
parentGirdInfo: {},
};
},
computed: {
...mapState(["user"]),
formRules() {
return {
girdName: [
{required: true, message: "请输入网格名称", trigger: "change"},
],
girdCode: [
{required: true, message: "请输入网格编号"},
{pattern: /^\d+$/g, message: "请输入数字"},
]
};
},
unitProps() {
return {
value: "id",
checkStrictly: true,
emitPath: false,
};
},
unitOps() {
let initData = JSON.parse(JSON.stringify(this.options)),
ops = initData.filter((e) => !e.parentId);
ops.map((e) => this.addChild(e, initData));
return ops;
},
pageTitle() {
return this.isEdit ? "编辑网格区块" : "添加网格区块"
},
isEdit() {
return !!this.$route.query.id;
}
},
created() {
if (this.isEdit) {
this.searchDetail();
} else {
this.forms = {
...this.forms,
...this.$route.query
}
}
},
methods: {
cancel() {
this.$router.push({})
},
// 获取所有单位
getAllUnit(data) {
this.options = [];
this.instance.post("/admin/sysunit/getAll", null, {
params: {areaId: data},
}).then((res) => {
if (res?.data) {
res.data = res.data.map((a) => {
return {...a, label: a.name}
});
this.options = res.data.filter((e) => !e.parentId);
this.options.map((t) => this.addChild(t, res.data));
}
});
},
save() {
this.$refs["rules"].validate((valid) => {
if (valid) {
let {girdMemberManageList, girdMemberList} = this.forms
this.instance.post(`/app/appgirdinfo/addOrUpdate`, {
...this.forms,
girdMemberManageList: girdMemberManageList?.map(v => ({wxUserId: v.id})) || [],
girdMemberList: girdMemberList?.map(v => ({wxUserId: v.id})) || []
}).then((res) => {
if (res.code == 0) {
this.cancel(true)
}
});
} else {
console.log("error submit!!");
return false;
}
});
},
searchDetail() {
let {id} = this.$route.query
this.instance.post(`/app/appgirdinfo/queryDetailById`, null, {
params: {id},
}).then((res) => {
if (res?.data) {
this.forms = {
...res.data,
girdMemberManageList: res.data.girdMemberManageList ? res.data.girdMemberManageList.map(v => {
return {
...v,
id: v.wxUserId,
avatar: v.photo
}
}) : [],
girdMemberList: res.data.girdMemberList ? res.data.girdMemberList.map(v => {
return {
...v,
id: v.wxUserId,
avatar: v.photo
}
}) : []
};
this.parentGirdInfo = res.data.parentGirdInfo;
this.forms.parentGirdName = res.data.parentGirdInfo && res.data.parentGirdInfo.girdName;
}
});
},
},
};
</script>
<style lang="scss" scoped>
.add-block {
width: 100%;
height: 100%;
.footer-btn {
width: 92px;
}
}
</style>