|
@@ -11,7 +11,7 @@
|
|
|
<p class="miniTitle">基础信息</p>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.activity"
|
|
|
+ v-model="placeActivity.activityName"
|
|
|
center
|
|
|
label="活动名称:"
|
|
|
placeholder="请填写活动名称"
|
|
@@ -20,7 +20,7 @@
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.place"
|
|
|
+ v-model="placeActivity.siteName.name"
|
|
|
readonly
|
|
|
required
|
|
|
label="场所名称:"
|
|
@@ -33,6 +33,7 @@
|
|
|
<van-picker
|
|
|
title="活动场所"
|
|
|
:columns="places"
|
|
|
+ :columns-field-names="customFieldName"
|
|
|
@cancel="showPlace = false"
|
|
|
@confirm="getPlace"
|
|
|
/>
|
|
@@ -64,7 +65,7 @@
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.countPerson"
|
|
|
+ v-model="placeActivity.participantsNum"
|
|
|
center
|
|
|
label="参会人数:"
|
|
|
placeholder="请填写参会人数"
|
|
@@ -74,7 +75,7 @@
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.list"
|
|
|
+ v-model="placeActivity.knownList.name"
|
|
|
center
|
|
|
required
|
|
|
label="已知名单:"
|
|
@@ -89,12 +90,12 @@
|
|
|
show-cancel-button
|
|
|
@confirm="reselected"
|
|
|
>
|
|
|
- <person-list @selected="selected"></person-list>
|
|
|
+ <person-list @selected="selected" :type="1"></person-list>
|
|
|
</van-dialog>
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.portname"
|
|
|
+ v-model="placeActivity.reporter.id"
|
|
|
center
|
|
|
label="报告人:"
|
|
|
placeholder="请选择报告人"
|
|
@@ -104,7 +105,7 @@
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.area"
|
|
|
+ v-model="placeActivity.participation"
|
|
|
center
|
|
|
label="参加范围:"
|
|
|
placeholder="请填写参加范围"
|
|
@@ -113,7 +114,7 @@
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.activityPlace"
|
|
|
+ v-model="placeActivity.place"
|
|
|
center
|
|
|
readonly
|
|
|
label="活动地点:"
|
|
@@ -129,12 +130,13 @@
|
|
|
:options="options"
|
|
|
@close="showArea = false"
|
|
|
@finish="onFinish"
|
|
|
+ :field-names="fieldNames"
|
|
|
/>
|
|
|
</van-popup>
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.address"
|
|
|
+ v-model="placeActivity.placeDel"
|
|
|
center
|
|
|
label="详细地址:"
|
|
|
placeholder="请填写活参加地点"
|
|
@@ -144,7 +146,7 @@
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.money"
|
|
|
+ v-model="placeActivity.sourceFunds"
|
|
|
center
|
|
|
label="经费来源:"
|
|
|
placeholder="请选择"
|
|
@@ -153,7 +155,7 @@
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.activityName"
|
|
|
+ v-model="placeActivity.activityPerson.name"
|
|
|
center
|
|
|
label="活动负责人:"
|
|
|
placeholder="请选择活动负责人"
|
|
@@ -165,13 +167,14 @@
|
|
|
v-model:show="showReport"
|
|
|
title="选择活动负责人"
|
|
|
show-cancel-button
|
|
|
+ @confirm="reselected"
|
|
|
>
|
|
|
- <person-list></person-list>
|
|
|
+ <person-list @selected="selected" :type="0"></person-list>
|
|
|
</van-dialog>
|
|
|
</van-cell-group>
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
- v-model="placeActivity.tel"
|
|
|
+ v-model="placeActivity.phone"
|
|
|
center
|
|
|
type="tel"
|
|
|
label="联系方式:"
|
|
@@ -191,7 +194,7 @@
|
|
|
<van-cell-group>
|
|
|
<div class="rowTextArea">
|
|
|
<van-field
|
|
|
- v-model="placeActivity.into"
|
|
|
+ v-model="placeActivity.subjectContent"
|
|
|
center
|
|
|
rows="2"
|
|
|
type="textarea"
|
|
@@ -202,7 +205,7 @@
|
|
|
</van-cell-group>
|
|
|
</div>
|
|
|
<div class="subbtn">
|
|
|
- <van-button type="primary">提交</van-button>
|
|
|
+ <van-button type="primary" @click="submit">提交</van-button>
|
|
|
<van-button type="default" hairline>取消</van-button>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -212,10 +215,9 @@
|
|
|
import { reactive, ref } from "vue";
|
|
|
import personList from "../personList.vue";
|
|
|
import placeActivityServer from "@/api/placeActivity/placeActivityServer";
|
|
|
-import tools from '@/api/sys/tools'
|
|
|
+import tools from "@/api/sys/tools";
|
|
|
export default {
|
|
|
components: { personList },
|
|
|
- tools:new tools(),
|
|
|
setup() {
|
|
|
// 返回
|
|
|
const onClickLeft = () => {
|
|
@@ -223,33 +225,53 @@ export default {
|
|
|
};
|
|
|
// 活动信息
|
|
|
const placeActivity = reactive({
|
|
|
- activity: "",
|
|
|
- place: "",
|
|
|
- activityTime: "",
|
|
|
- countPerson: "",
|
|
|
- list: "",
|
|
|
- portname: "",
|
|
|
- area: "",
|
|
|
- activityPlace: "",
|
|
|
- address: "",
|
|
|
- money: "",
|
|
|
+ id: "",
|
|
|
activityName: "",
|
|
|
- tel: "",
|
|
|
- file: "",
|
|
|
- into: "",
|
|
|
+ siteName: {
|
|
|
+ id: "",
|
|
|
+ },
|
|
|
+ activityTime: "",
|
|
|
+ participantsNum: "",
|
|
|
+ knownList: {
|
|
|
+ id: "",
|
|
|
+ name: "",
|
|
|
+ },
|
|
|
+ subjectContent: "",
|
|
|
+ reporter: {
|
|
|
+ id: "",
|
|
|
+ },
|
|
|
+ participation: "",
|
|
|
+ place: "",
|
|
|
+ placeDel: "",
|
|
|
+ sourceFunds: "",
|
|
|
+ safetyPlan: "",
|
|
|
+ activityPerson: {
|
|
|
+ id: "",
|
|
|
+ name: "",
|
|
|
+ },
|
|
|
+ phone: "",
|
|
|
+ state: "0",
|
|
|
+ assessment: "0",
|
|
|
});
|
|
|
// 场所名称
|
|
|
- const places = [
|
|
|
- { text: "杭州", value: "Hangzhou" },
|
|
|
- { text: "宁波", value: "Ningbo" },
|
|
|
- { text: "温州", value: "Wenzhou" },
|
|
|
- { text: "绍兴", value: "Shaoxing" },
|
|
|
- { text: "湖州", value: "Huzhou" },
|
|
|
- ];
|
|
|
+ let places = ref([]);
|
|
|
+ const customFieldName = {
|
|
|
+ text: "name",
|
|
|
+ value: "id",
|
|
|
+ };
|
|
|
+ new tools()
|
|
|
+ .placeList({
|
|
|
+ current: 1,
|
|
|
+ size: 10000,
|
|
|
+ })
|
|
|
+ .then(({ records }) => {
|
|
|
+ places.value.push(...records);
|
|
|
+ });
|
|
|
let showPlace = ref(false);
|
|
|
const getPlace = ({ selectedOptions }) => {
|
|
|
+ // console.log("选择",selectedOptions);
|
|
|
showPlace.value = false;
|
|
|
- placeActivity.place = selectedOptions[0].text;
|
|
|
+ placeActivity.siteName = selectedOptions[0];
|
|
|
};
|
|
|
// 获取活动时间
|
|
|
let showAct = ref(false);
|
|
@@ -265,45 +287,60 @@ export default {
|
|
|
let showPerson = ref(false);
|
|
|
// 活动负责人
|
|
|
let showReport = ref(false);
|
|
|
- // const show = () => {
|
|
|
- // showPerson = true;
|
|
|
- // };
|
|
|
- let list = "";
|
|
|
- const selected = (val) => {
|
|
|
- list = val;
|
|
|
+ let list = {
|
|
|
+ value: [],
|
|
|
+ type: "",
|
|
|
+ };
|
|
|
+ const selected = (val, type) => {
|
|
|
+ list.value = val;
|
|
|
+ list.type = type;
|
|
|
+ console.log("选择", list);
|
|
|
};
|
|
|
const reselected = () => {
|
|
|
- placeActivity.list = list;
|
|
|
+ let ids = [];
|
|
|
+ let names = [];
|
|
|
+ if (list.type == 1) {
|
|
|
+ list.value.forEach((item) => {
|
|
|
+ ids.push(item.id);
|
|
|
+ names.push(item.name);
|
|
|
+ });
|
|
|
+ placeActivity.knownList.id = ids.join(",");
|
|
|
+ placeActivity.knownList.name = names.join(",");
|
|
|
+ } else {
|
|
|
+ placeActivity.activityPerson.id = list.value.id;
|
|
|
+ placeActivity.activityPerson.name = list.value.name;
|
|
|
+ }
|
|
|
};
|
|
|
// 地区选择
|
|
|
let showArea = ref(false);
|
|
|
const cascaderValue = ref("");
|
|
|
- tools.treeData().then((res) => {
|
|
|
- console.log("area", res);
|
|
|
- });
|
|
|
+ const fieldNames = {
|
|
|
+ text: "name",
|
|
|
+ value: "code",
|
|
|
+ children: "children",
|
|
|
+ };
|
|
|
// 选项列表,children 代表子选项,支持多级嵌套
|
|
|
- const options = [
|
|
|
- {
|
|
|
- text: "浙江省",
|
|
|
- value: "330000",
|
|
|
- children: [{ text: "杭州市", value: "330100" }],
|
|
|
- },
|
|
|
- {
|
|
|
- text: "江苏省",
|
|
|
- value: "320000",
|
|
|
- children: [{ text: "南京市", value: "320100" }],
|
|
|
- },
|
|
|
- ];
|
|
|
+ let options = ref([]);
|
|
|
+ new tools().treeData().then((res) => {
|
|
|
+ options.value.push(res[0]);
|
|
|
+ });
|
|
|
// 全部选项选择完毕后,会触发 finish 事件
|
|
|
const onFinish = ({ selectedOptions }) => {
|
|
|
showArea.value = false;
|
|
|
- placeActivity.activityPlace = selectedOptions
|
|
|
- .map((option) => option.text)
|
|
|
+ placeActivity.place = selectedOptions
|
|
|
+ .map((option) => option.name)
|
|
|
.join("/");
|
|
|
};
|
|
|
+ // 提交数据
|
|
|
+ const submit = () => {
|
|
|
+ new placeActivityServer().save({placeActivity}).then((res) => {
|
|
|
+ console.log("提交", res);
|
|
|
+ });
|
|
|
+ };
|
|
|
return {
|
|
|
placeActivity,
|
|
|
// 活动场所
|
|
|
+ customFieldName,
|
|
|
showPlace,
|
|
|
places,
|
|
|
getPlace,
|
|
@@ -321,9 +358,11 @@ export default {
|
|
|
reselected,
|
|
|
// 地区选择
|
|
|
showArea,
|
|
|
+ fieldNames,
|
|
|
options,
|
|
|
onFinish,
|
|
|
cascaderValue,
|
|
|
+ submit,
|
|
|
};
|
|
|
},
|
|
|
};
|