浏览代码

feat: 学校编辑新增两个参数

zhangjie 2 月之前
父节点
当前提交
ee3b093099
共有 1 个文件被更改,包括 70 次插入3 次删除
  1. 70 3
      src/modules/admin/components/ModifySchool.vue

+ 70 - 3
src/modules/admin/components/ModifySchool.vue

@@ -21,12 +21,11 @@
         {{ modalForm.code }}
       </el-form-item>
       <el-form-item prop="name" label="学校名称:">
-        <!-- <el-input
+        <el-input
           v-model.trim="modalForm.name"
           placeholder="请输入名称"
           clearable
-        ></el-input> -->
-        {{ modalForm.name }}
+        ></el-input>
       </el-form-item>
       <el-form-item prop="initPassword" label="用户初始密码:">
         <el-input
@@ -88,6 +87,29 @@
           clearable
         ></el-input>
       </el-form-item>
+      <el-form-item prop="systemLogo" label="系统logo:">
+        <UploadFetchFile
+          ref="SystemLogoUploadFetchFile"
+          input-width="300px"
+          :disabled="isSubmit"
+          :format="['png', 'jpg']"
+          @file-change="systemLogoChange"
+          @valid-change="systemLogoValidChange"
+        />
+        <div class="mt-1">
+          <p class="tips-info">文件必须是jpg或png格式的图片,不超过2M。</p>
+        </div>
+        <div class="logo-image" v-if="systemLogoSrc">
+          <img class="logo-view" :src="systemLogoSrc" alt="system-logo" />
+        </div>
+      </el-form-item>
+      <el-form-item prop="tabName" label="标签名称:">
+        <el-input
+          v-model.trim="modalForm.tabName"
+          placeholder="请输入标签名称"
+          clearable
+        ></el-input>
+      </el-form-item>
     </el-form>
     <div slot="footer">
       <el-button type="danger" @click="cancel" plain>取消</el-button>
@@ -111,6 +133,9 @@ const initModalForm = {
   logoMd5: "",
   backgroundImage: "",
   backgroundImageMd5: "",
+  systemLogo: "",
+  systemLogoMd5: "",
+  tabName: "",
   initPassword: "",
   examTaskInstr: "",
   defaultSchool: false,
@@ -145,6 +170,8 @@ export default {
       logoValidInfo: {},
       bgSrc: "",
       bgValidInfo: {},
+      systemLogoSrc: "",
+      systemLogoValidInfo: {},
       rules: {
         name: [
           {
@@ -191,6 +218,31 @@ export default {
             trigger: "change",
           },
         ],
+        systemLogo: [
+          {
+            validator: (rule, value, callback) => {
+              if (
+                !this.systemLogoValidInfo.success &&
+                this.systemLogoValidInfo.message
+              ) {
+                return callback(new Error(this.systemLogoValidInfo.message));
+              }
+              callback();
+            },
+          },
+        ],
+        tabName: [
+          {
+            required: true,
+            message: "请输入标签名称",
+            trigger: "change",
+          },
+          {
+            max: 30,
+            message: "标签名称不超过30字符",
+            trigger: "change",
+          },
+        ],
       },
     };
   },
@@ -204,15 +256,20 @@ export default {
         this.bgSrc = val.backgroundImage || "";
         this.modalForm.backgroundImage = "";
         this.modalForm.backgroundImageMd5 = "";
+        this.systemLogoSrc = val.systemLogo || "";
+        this.modalForm.systemLogo = "";
+        this.modalForm.systemLogoMd5 = "";
       } else {
         this.logoSrc = "";
         this.bgSrc = "";
+        this.systemLogoSrc = "";
         this.modalForm = { ...initModalForm };
       }
       this.$refs.modalFormComp.clearValidate();
       this.$nextTick(() => {
         this.$refs.LogoUploadFetchFile.setAttachmentName("");
         this.$refs.BgUploadFetchFile.setAttachmentName("");
+        this.$refs.SystemLogoUploadFetchFile.setAttachmentName("");
       });
     },
     visibleChange() {
@@ -244,6 +301,16 @@ export default {
       this.bgValidInfo = res;
       this.$refs.modalFormComp.validateField("backgroundImage", () => {});
     },
+    systemLogoChange({ file, md5 }) {
+      let uRl = window.URL || window.webkitURL;
+      this.systemLogoSrc = uRl.createObjectURL(file);
+      this.modalForm.systemLogo = file;
+      this.modalForm.systemLogoMd5 = md5;
+    },
+    systemLogoValidChange(res) {
+      this.systemLogoValidInfo = res;
+      this.$refs.modalFormComp.validateField("systemLogo", () => {});
+    },
     async submit() {
       const valid = await this.$refs.modalFormComp.validate();
       if (!valid) return;