add-watch-people.vue 4.01 KB
<script setup>
import { ElMessage } from "element-plus";
import { addViewPeople } from "./api/index.js";
import { languageFormat } from "./utils/language.js";
import { useStorage } from "@vueuse/core/index";
const language = useStorage("language", 0);

const router = useRouter();

const people = reactive({
  form: {
    name: "",
    idCard: "",
  },
  type: language.value == 0 ? "身份证" : "Identity Card",
  onConfirm() {
    if (!people.form.name)
      return ElMessage({
        type: "warning",
        message: languageFormat(language.value, "请输入姓名", "Name"),
      });
    if (!people.form.idCard)
      return ElMessage({
        type: "warning",
        message: languageFormat(language.value, "请输入证件号", "ID Numbe"),
      });

    addViewPeople(people.form).then((res) => {
      ElMessage({
        type: "success",
        message: languageFormat(language.value, "操作成功", "Operate successfully"),
      });
      router.go(-2);
    });
  },
});
</script>

<template>
  <div class="container">
    <div class="title">
      {{ languageFormat(language, "新增观影人", "Companion") }}
    </div>
    <div class="content">
      <div class="form-item">
        <div>
          <div class="label">
            {{ languageFormat(language, "姓名", "Full Name") }}
          </div>
          <el-input
            v-model="people.form.name"
            :placeholder="language == 0 ? '请输入姓名' : 'Name'"
          />
        </div>
        <!-- <div>
          <div class="label">
            {{ languageFormat(language, "证件类型", "Type of Document") }}
          </div>
          <el-input
            v-model="people.type"
            style="width: 570px"
            placeholder="Please input"
            readonly
          />
        </div> -->
      </div>
      <div class="form-item">
        <div>
          <div class="label">
            {{ languageFormat(language, "有效证件号", "Identity Card") }}
          </div>
          <el-input
            v-model="people.form.idCard"
            :placeholder="language == 0 ? '请输入有效证件号' : 'ID Number'"
          />
        </div>
      </div>
    </div>

    <div class="footer">
      <div class="can_pay" @click="$router.go(-1)">
        {{ languageFormat(language, "取消", "Cancel") }}
      </div>
      <div class="pay" @click="people.onConfirm()">
        {{ languageFormat(language, "确认", "Confirm") }}
      </div>
    </div>
  </div>
</template>

<style scoped lang="scss">
div {
  box-sizing: border-box;
}
.container {
  padding: 20px 0;
  width: 1200px;
  margin: 0 auto;

  .title {
    padding: 11px;
    text-align: center;
    background: linear-gradient(270deg, #493ceb 0%, #8623fc 100%);
    font-size: 18px;
    color: #ffffff;
  }

  .content {
    padding: 46px 20px 24px;
    background-color: #fff;
    :deep(.el-input) {
      height: 48px;
      border-radius: 24px !important;
    }
    .form-item {
      display: flex;
      gap: 20px;width: 100%;
      margin-bottom: 36px;
      &:last-child {
        margin: 0;
      }
      .label {
        font-size: 18px;
        color: #333333;
        margin-bottom: 16px;
      }
    }
    :deep(.el-input) {width: 400px;}
  }
  .footer {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    height: 70px;
    background-color: #fff;
    margin-top: 12px;
    user-select: none;
    .pay {
      width: 200px;
      height: 40px;
      background: linear-gradient(270deg, #493ceb 0%, #8623fc 100%);
      border-radius: 20px;
      font-weight: 500;
      font-size: 16px;
      color: #ffffff;
      line-height: 40px;
      text-align: center;
      cursor: pointer;
    }
    .can_pay {
      width: 200px;
      height: 40px;
      background: #f6f6f6;
      border-radius: 20px;
      font-weight: 500;
      font-size: 16px;
      color: #999;
      line-height: 40px;
      text-align: center;
      box-sizing: border-box;
      cursor: pointer;
    }
  }
}
@media screen and (max-width: 768px) {
  .container {
    width: 100%;
  }
}
</style>