|
@@ -0,0 +1,256 @@
|
|
|
+<template>
|
|
|
+ <van-nav-bar title="智慧“和顺”" left-arrow @click-left="goback" />
|
|
|
+ <div class="main">
|
|
|
+ <p class="title">宗教场所录入</p>
|
|
|
+ <div class="formArea">
|
|
|
+ <p class="miniTitle">基础信息</p>
|
|
|
+ <van-cell-group>
|
|
|
+ <van-field
|
|
|
+ v-model="placeActivity.place"
|
|
|
+ readonly
|
|
|
+ label="所属宗教:"
|
|
|
+ placeholder="请选择宗教"
|
|
|
+ input-align="right"
|
|
|
+ right-icon="arrow-down"
|
|
|
+ @click="showPlace = true"
|
|
|
+ />
|
|
|
+ <van-popup v-model:show="showPlace" round position="bottom">
|
|
|
+ <van-picker
|
|
|
+ title="宗教选择"
|
|
|
+ :columns="places"
|
|
|
+ @cancel="showPlace = false"
|
|
|
+ @confirm="getPlace"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ </van-cell-group>
|
|
|
+ <van-cell-group>
|
|
|
+ <van-field
|
|
|
+ v-model="placeActivity.activityPlace"
|
|
|
+ center
|
|
|
+ readonly
|
|
|
+ label="所属县(区):"
|
|
|
+ placeholder="请填写所属县(区)"
|
|
|
+ input-align="right"
|
|
|
+ right-icon="arrow-down"
|
|
|
+ @click="showArea = true"
|
|
|
+ />
|
|
|
+ <van-popup v-model:show="showArea" round position="bottom">
|
|
|
+ <van-cascader
|
|
|
+ v-model="cascaderValue"
|
|
|
+ title="请选择所在地区"
|
|
|
+ :options="options"
|
|
|
+ @close="showArea = false"
|
|
|
+ @finish="onFinish"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ </van-cell-group>
|
|
|
+ <van-cell-group>
|
|
|
+ <van-field
|
|
|
+ v-model="placeActivity.address"
|
|
|
+ center
|
|
|
+ label="具体地址:"
|
|
|
+ placeholder="请填写具体地址"
|
|
|
+ input-align="right"
|
|
|
+ right-icon="location"
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+ <van-cell-group>
|
|
|
+ <van-field
|
|
|
+ v-model="placeActivity.money"
|
|
|
+ center
|
|
|
+ label="场所名称:"
|
|
|
+ placeholder="请填写场所名称"
|
|
|
+ input-align="right"
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+ <van-cell-group>
|
|
|
+ <van-field
|
|
|
+ v-model="placeActivity.money"
|
|
|
+ center
|
|
|
+ label="联络人姓名:"
|
|
|
+ placeholder="请填写联络人姓名"
|
|
|
+ input-align="right"
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+ <van-cell-group>
|
|
|
+ <van-field
|
|
|
+ v-model="placeActivity.money"
|
|
|
+ center
|
|
|
+ label="联系方式:"
|
|
|
+ placeholder="请填写联络人联系方式"
|
|
|
+ input-align="right"
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+ <van-cell-group>
|
|
|
+ <van-field name="uploader" label="外景照片:">
|
|
|
+ <template #input>
|
|
|
+ <van-uploader :after-read="afterRead" />
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+ </van-cell-group>
|
|
|
+ <van-cell-group>
|
|
|
+ <van-field name="uploader" label="内景照片:">
|
|
|
+ <template #input>
|
|
|
+ <van-uploader :after-read="afterRead" />
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+ </van-cell-group>
|
|
|
+ </div>
|
|
|
+ <div class="subbtn">
|
|
|
+ <van-button type="primary">提交</van-button>
|
|
|
+ <van-button type="default" hairline>取消</van-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { reactive, ref } from "vue";
|
|
|
+export default {
|
|
|
+ setup() {
|
|
|
+ const goback = () => {
|
|
|
+ history.back();
|
|
|
+ };
|
|
|
+ //场所录入
|
|
|
+ const placeActivity = reactive({
|
|
|
+ activity: "",
|
|
|
+ place: "",
|
|
|
+ activityTime: "",
|
|
|
+ countPerson: "",
|
|
|
+ list: "",
|
|
|
+ portname: "",
|
|
|
+ area: "",
|
|
|
+ activityPlace: "",
|
|
|
+ address: "",
|
|
|
+ money: "",
|
|
|
+ activityName: "",
|
|
|
+ tel: "",
|
|
|
+ file: "",
|
|
|
+ into: "",
|
|
|
+ });
|
|
|
+ // 宗教名称
|
|
|
+ const places = [
|
|
|
+ { text: "基督教", value: "基督教" },
|
|
|
+ { text: "佛教", value: "佛教" },
|
|
|
+ { text: "伊斯兰教", value: "伊斯兰教" },
|
|
|
+ ];
|
|
|
+ let showPlace = ref(false);
|
|
|
+ const getPlace = ({ selectedOptions }) => {
|
|
|
+ showPlace.value = false;
|
|
|
+ placeActivity.place = selectedOptions[0].text;
|
|
|
+ };
|
|
|
+ //图片上传
|
|
|
+ const afterRead = (file) => {
|
|
|
+ // 此时可以自行将文件上传至服务器
|
|
|
+ console.log(file);
|
|
|
+ };
|
|
|
+
|
|
|
+ // 地区选择
|
|
|
+ let showArea = ref(false);
|
|
|
+ const cascaderValue = ref("");
|
|
|
+ // 选项列表,children 代表子选项,支持多级嵌套
|
|
|
+ const options = [
|
|
|
+ {
|
|
|
+ text: "浙江省",
|
|
|
+ value: "330000",
|
|
|
+ children: [{ text: "杭州市", value: "330100" }],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "江苏省",
|
|
|
+ value: "320000",
|
|
|
+ children: [{ text: "南京市", value: "320100" }],
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ // 全部选项选择完毕后,会触发 finish 事件
|
|
|
+ const onFinish = ({ selectedOptions }) => {
|
|
|
+ showArea.value = false;
|
|
|
+ placeActivity.activityPlace = selectedOptions
|
|
|
+ .map((option) => option.text)
|
|
|
+ .join("/");
|
|
|
+ };
|
|
|
+ return {
|
|
|
+ placeActivity,
|
|
|
+ // 活动场所
|
|
|
+ showPlace,
|
|
|
+ places,
|
|
|
+ getPlace,
|
|
|
+ //图片上传
|
|
|
+ afterRead,
|
|
|
+ // 返回
|
|
|
+ goback,
|
|
|
+ // 地区选择
|
|
|
+ showArea,
|
|
|
+ options,
|
|
|
+ onFinish,
|
|
|
+ cascaderValue,
|
|
|
+ };
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less">
|
|
|
+body,
|
|
|
+html {
|
|
|
+ margin: 0;
|
|
|
+ padding: 0;
|
|
|
+}
|
|
|
+.van-nav-bar {
|
|
|
+ background-color: #36a7f3;
|
|
|
+ .van-nav-bar__title {
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ .van-badge__wrapper {
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+}
|
|
|
+.main p {
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ color: #36a7f3;
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
+}
|
|
|
+.title {
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 700;
|
|
|
+ padding-left: 20px;
|
|
|
+}
|
|
|
+.miniTitle {
|
|
|
+ font-size: 16px;
|
|
|
+}
|
|
|
+.formArea {
|
|
|
+ padding: 0px 20px;
|
|
|
+}
|
|
|
+.formArea .van-cell-group .van-field__label {
|
|
|
+ height: 40px;
|
|
|
+}
|
|
|
+.formArea .van-cell-group .van-cell {
|
|
|
+ line-height: 40px;
|
|
|
+}
|
|
|
+.van-cell__value .van-field__right-icon .van-icon-location {
|
|
|
+ color: #36a7f3 !important;
|
|
|
+}
|
|
|
+.rowTextArea::v-deep .van-field__value {
|
|
|
+ width: 98%;
|
|
|
+ border: 2px solid #ccc;
|
|
|
+ border-radius: 10px;
|
|
|
+}
|
|
|
+.rowTextArea::v-deep .van-cell {
|
|
|
+ display: flow-root;
|
|
|
+}
|
|
|
+.subbtn {
|
|
|
+ margin: 20px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+.subbtn .van-button {
|
|
|
+ width: 40%;
|
|
|
+ margin: 5px;
|
|
|
+}
|
|
|
+.van-uploader .van-button {
|
|
|
+ border: none;
|
|
|
+ color: #36a7f3;
|
|
|
+ top: -4px;
|
|
|
+}
|
|
|
+.van-dialog {
|
|
|
+ width: 80%;
|
|
|
+ top: 50%;
|
|
|
+}
|
|
|
+</style>
|