|  | @@ -0,0 +1,256 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <van-nav-bar
 | 
	
		
			
				|  |  | +    title="信息上报中心"
 | 
	
		
			
				|  |  | +    left-text=""
 | 
	
		
			
				|  |  | +    left-arrow
 | 
	
		
			
				|  |  | +    @click-left="onClickLeft"
 | 
	
		
			
				|  |  | +  />
 | 
	
		
			
				|  |  | +  <div class="main">
 | 
	
		
			
				|  |  | +    <p class="title">信教异常群众上报</p>
 | 
	
		
			
				|  |  | +    <div class="formArea">
 | 
	
		
			
				|  |  | +      <p class="miniTitle">基础信息</p>
 | 
	
		
			
				|  |  | +      <van-cell-group>
 | 
	
		
			
				|  |  | +        <van-field
 | 
	
		
			
				|  |  | +          v-model="inputForm.count"
 | 
	
		
			
				|  |  | +          center
 | 
	
		
			
				|  |  | +          label="异常人员:"
 | 
	
		
			
				|  |  | +          placeholder="请填写异常人员姓名"
 | 
	
		
			
				|  |  | +          input-align="right"
 | 
	
		
			
				|  |  | +          type="digit"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +      </van-cell-group>
 | 
	
		
			
				|  |  | +      <van-cell-group>
 | 
	
		
			
				|  |  | +        <van-field
 | 
	
		
			
				|  |  | +          v-model="inputForm.count"
 | 
	
		
			
				|  |  | +          center
 | 
	
		
			
				|  |  | +          label="身份证号:"
 | 
	
		
			
				|  |  | +          placeholder="请填写身份证号"
 | 
	
		
			
				|  |  | +          input-align="right"
 | 
	
		
			
				|  |  | +          type="digit"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +      </van-cell-group>
 | 
	
		
			
				|  |  | +      <van-cell-group>
 | 
	
		
			
				|  |  | +        <van-field
 | 
	
		
			
				|  |  | +          v-model="inputForm.count"
 | 
	
		
			
				|  |  | +          center
 | 
	
		
			
				|  |  | +          label="手机号:"
 | 
	
		
			
				|  |  | +          placeholder="请填写手机号"
 | 
	
		
			
				|  |  | +          input-align="right"
 | 
	
		
			
				|  |  | +          type="tel"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +      </van-cell-group>
 | 
	
		
			
				|  |  | +      <van-cell-group>
 | 
	
		
			
				|  |  | +        <van-cell title="性别:">
 | 
	
		
			
				|  |  | +          <template #right-icon>
 | 
	
		
			
				|  |  | +            <van-radio-group v-model="checked" direction="horizontal">
 | 
	
		
			
				|  |  | +              <van-radio name="1">男</van-radio>
 | 
	
		
			
				|  |  | +              <van-radio name="2">女</van-radio>
 | 
	
		
			
				|  |  | +            </van-radio-group>
 | 
	
		
			
				|  |  | +          </template>
 | 
	
		
			
				|  |  | +        </van-cell>
 | 
	
		
			
				|  |  | +      </van-cell-group>
 | 
	
		
			
				|  |  | +      <van-cell-group>
 | 
	
		
			
				|  |  | +        <van-field
 | 
	
		
			
				|  |  | +          v-model="inputForm.place"
 | 
	
		
			
				|  |  | +          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="inputForm.place"
 | 
	
		
			
				|  |  | +          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="inputForm.address"
 | 
	
		
			
				|  |  | +          center
 | 
	
		
			
				|  |  | +          label="详细地址:"
 | 
	
		
			
				|  |  | +          placeholder="请填写具体地址"
 | 
	
		
			
				|  |  | +          input-align="right"
 | 
	
		
			
				|  |  | +          right-icon="location"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +      </van-cell-group>
 | 
	
		
			
				|  |  | +      <van-cell-group>
 | 
	
		
			
				|  |  | +        <div class="rowTextArea">
 | 
	
		
			
				|  |  | +          <van-field
 | 
	
		
			
				|  |  | +            v-model="inputForm.into"
 | 
	
		
			
				|  |  | +            placeholder="请填写异常行为"
 | 
	
		
			
				|  |  | +            center
 | 
	
		
			
				|  |  | +            rows="2"
 | 
	
		
			
				|  |  | +            type="textarea"
 | 
	
		
			
				|  |  | +            label="异常行为:"
 | 
	
		
			
				|  |  | +            label-align="top"
 | 
	
		
			
				|  |  | +          />
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </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";
 | 
	
		
			
				|  |  | +import { useCascaderAreaData } from "@vant/area-data";
 | 
	
		
			
				|  |  | +import personList from "../personList.vue";
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  components: { personList },
 | 
	
		
			
				|  |  | +  setup() {
 | 
	
		
			
				|  |  | +    // 返回
 | 
	
		
			
				|  |  | +    const onClickLeft = () => {
 | 
	
		
			
				|  |  | +      history.back();
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    // 活动信息
 | 
	
		
			
				|  |  | +    const inputForm = reactive({
 | 
	
		
			
				|  |  | +      place: "",
 | 
	
		
			
				|  |  | +      count: "",
 | 
	
		
			
				|  |  | +      time: "",
 | 
	
		
			
				|  |  | +      person: "",
 | 
	
		
			
				|  |  | +      place: "",
 | 
	
		
			
				|  |  | +      address: "",
 | 
	
		
			
				|  |  | +      into: "",
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    // 获取活动时间
 | 
	
		
			
				|  |  | +    let showAct = ref(false);
 | 
	
		
			
				|  |  | +    let currentDate = ref(["" + new Date().getFullYear(), "01", "01"]);
 | 
	
		
			
				|  |  | +    let currentTime = ref(["00", "00"]);
 | 
	
		
			
				|  |  | +    const getTime = () => {
 | 
	
		
			
				|  |  | +      showAct.value = false;
 | 
	
		
			
				|  |  | +      inputForm.time = `${currentDate.value.join("-")} ${currentTime.value.join(
 | 
	
		
			
				|  |  | +        ":"
 | 
	
		
			
				|  |  | +      )}`;
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    // 相关人
 | 
	
		
			
				|  |  | +    let showPerson = ref(false);
 | 
	
		
			
				|  |  | +    let list = "";
 | 
	
		
			
				|  |  | +    const selected = (val) => {
 | 
	
		
			
				|  |  | +      list = val;
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    const reselected = () => {
 | 
	
		
			
				|  |  | +      inputForm.person = list;
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    // 地区选择
 | 
	
		
			
				|  |  | +    let showArea = ref(false);
 | 
	
		
			
				|  |  | +    const cascaderValue = ref("");
 | 
	
		
			
				|  |  | +    // 选项列表,children 代表子选项,支持多级嵌套
 | 
	
		
			
				|  |  | +    const options = useCascaderAreaData();
 | 
	
		
			
				|  |  | +    // 全部选项选择完毕后,会触发 finish 事件
 | 
	
		
			
				|  |  | +    const onFinish = ({ selectedOptions }) => {
 | 
	
		
			
				|  |  | +      showArea.value = false;
 | 
	
		
			
				|  |  | +      inputForm.place = selectedOptions.map((option) => option.text).join("/");
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    // 性别
 | 
	
		
			
				|  |  | +    let checked = ref("1");
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      inputForm,
 | 
	
		
			
				|  |  | +      // 活动时间
 | 
	
		
			
				|  |  | +      showAct,
 | 
	
		
			
				|  |  | +      currentDate,
 | 
	
		
			
				|  |  | +      currentTime,
 | 
	
		
			
				|  |  | +      getTime,
 | 
	
		
			
				|  |  | +      // 返回
 | 
	
		
			
				|  |  | +      onClickLeft,
 | 
	
		
			
				|  |  | +      // 人员选择
 | 
	
		
			
				|  |  | +      showPerson,
 | 
	
		
			
				|  |  | +      selected,
 | 
	
		
			
				|  |  | +      reselected,
 | 
	
		
			
				|  |  | +      // 地区选择
 | 
	
		
			
				|  |  | +      showArea,
 | 
	
		
			
				|  |  | +      options,
 | 
	
		
			
				|  |  | +      onFinish,
 | 
	
		
			
				|  |  | +      cascaderValue,
 | 
	
		
			
				|  |  | +      checked,
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    <style scoped>
 | 
	
		
			
				|  |  | +* {
 | 
	
		
			
				|  |  | +  margin: 0;
 | 
	
		
			
				|  |  | +  padding: 0;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.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-radio {
 | 
	
		
			
				|  |  | +  margin-right: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 |