index.vue 3.1 KB
<template>
  <div class="basicSetup">
    <el-card>
      <template #header>
        <div class="card-header">
          <span>基本设置</span>
        </div>
      </template>
      <el-form
        ref="basicFormRef"
        :model="basicForm"
        style="max-width: 500px"
        :rules="rules"
        label-width="auto"
      >
        <el-form-item label="站点名称" prop="webname">
          <el-input v-model="basicForm.webname" placeholder="请输入站点名称" />
        </el-form-item>
        <el-form-item label="网站首页" prop="webtitle">
          <el-input v-model="basicForm.webtitle" placeholder="请输入网站首页" />
        </el-form-item>
        <el-form-item label="网站域名" prop="webkeywords">
          <el-input
            v-model="basicForm.webkeywords"
            placeholder="请输入网站域名"
          />
        </el-form-item>
        <el-form-item label="网站简介" prop="webdescription">
          <el-input
            v-model="basicForm.webdescription"
            placeholder="请输入网站简介"
          />
        </el-form-item>
        <el-form-item label="滚动公告" prop="rollingAnnouncements">
          <el-input
            v-model="basicForm.rollingAnnouncements"
            placeholder="请输入滚动公告"
          />
        </el-form-item>
        <el-form-item label="底部公告" prop="bottomAnnouncement">
          <el-input
            v-model="basicForm.bottomAnnouncement"
            placeholder="请输入底部公告"
          />
        </el-form-item>
      </el-form>
      <template #footer
        ><el-button type="primary" @click="submitForm"
          >保存</el-button
        ></template
      >
    </el-card>
  </div>
</template>

<script setup>
import { ref, getCurrentInstance, onMounted } from "vue";
import {
  getBasicInfo,
  updateBasicInfo,
  addBasicInfo,
} from "@/api/system/basicSetup";
const { proxy } = getCurrentInstance();
const basicFormRef = ref(null);
const basicForm = ref({
  bottomAnnouncement: "",
  rollingAnnouncements: "",
  webdescription: "",
  webkeywords: "",
  webname: "",
  webtitle: "",
});

const rules = {
  webname: [
    { required: true, message: "请输入站点名称", trigger: "blur" },
    { min: 2, max: 20, message: "长度在 2 到 20 个字符", trigger: "blur" },
  ],
  webtitle: [
    { required: true, message: "请输入网站首页", trigger: "blur" },
    { min: 2, max: 20, message: "长度在 2 到 20 个 " },
  ],
};

function submitForm() {
  basicFormRef.value.validate(async (valid) => {
    if (valid) {
      if (basicForm.value.id) {
        await updateBasicInfo(basicForm.value);
        getBasicInfo();
        proxy.$modal.msgSuccess("修改成功");
      } else {
        await addBasicInfo(basicForm.value);
        getBasicInfo();
        proxy.$modal.msgSuccess("新增成功");
      }
    } else {
      proxy.$modal.msgSuccess("请填写必填项");
    }
  });
}

function getInfo() {
  getBasicInfo().then((response) => {
    if (response.data) {
      basicForm.value = response.data;
    }
  });
}

onMounted(() => {
  getInfo();
});
</script>

<style lang="scss" scoped>
.basicSetup {
  padding: 30px;
}
</style>