xiatian před 5 roky
rodič
revize
9b01472144

+ 6 - 0
src/modules/basic/routes/routes.js

@@ -14,6 +14,7 @@ import school_privilege_settings from "../view/school_privilege_settings.vue";
 import resource_list from "../view/resource_list.vue";
 import sys_prop_list from "../view/sys_prop_list";
 import client_config from "../view/clientConfig";
+import school_config from "../view/school_config";
 
 export default [
   {
@@ -93,6 +94,11 @@ export default [
         path: "client_config",
         meta: { privilegeCodes: "client_config" },
         component: client_config
+      },
+      {
+        path: "school_config", //学校设置
+        meta: { privilegeCodes: "school_config" },
+        component: school_config
       }
     ]
   }

+ 212 - 0
src/modules/basic/view/school_config.vue

@@ -0,0 +1,212 @@
+<template>
+  <el-container>
+    <el-main class="el-main-padding">
+      <el-form
+        :model="ruleForm"
+        :rules="rules"
+        ref="ruleForm"
+        label-width="150px"
+        class="demo-ruleForm"
+        :inline-message="true"
+      >
+        <el-form-item v-if="isSuperAdmin" label="学校">
+          <el-select
+            v-model="ruleForm.orgId"
+            placeholder="请选择"
+            style="width: 180px"
+          >
+            <el-option
+              v-for="item in rootOrgList"
+              :label="item.name"
+              :value="item.id"
+              :key="item.id"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          label="是否使用第三方登录"
+          prop="STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY"
+        >
+          <el-checkbox
+            v-model="ruleForm.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY"
+          ></el-checkbox>
+        </el-form-item>
+        <el-form-item
+          label="第三方登录页地址"
+          prop="STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL"
+        >
+          <el-input
+            :disabled="!ruleForm.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY"
+            v-model="ruleForm.STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL"
+            placeholder="请输入第三方登录页地址,以http://或https://开头"
+            class="input-width"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="是否展示我司logo" prop="SHOW_QMTH_LOGO">
+          <el-checkbox v-model="ruleForm.SHOW_QMTH_LOGO"></el-checkbox>
+        </el-form-item>
+        <el-form-item>
+          <el-button
+            :disabled="btnSaveDiabled"
+            type="primary"
+            @click="submitForm('ruleForm')"
+            >保 存</el-button
+          >
+        </el-form-item>
+      </el-form>
+    </el-main>
+  </el-container>
+</template>
+<script>
+import { mapState } from "vuex";
+import { CORE_API } from "@/constants/constants.js";
+export default {
+  data() {
+    var validateUrl = (rule, value, callback) => {
+      var ass = this.ruleForm.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY;
+      var reg = /^(http:\/\/|https:\/\/){1}.*$/;
+      if (ass && !value) {
+        return callback(new Error("请输入第三方登录页地址"));
+      } else if (ass && !value.match(reg)) {
+        return callback(new Error("url以http://或https://开头"));
+      } else {
+        callback();
+      }
+    };
+    return {
+      rootOrgList: [],
+      propertyGroupId: "",
+      formDataChanged: false,
+      originalRuleForm: {},
+      ruleForm: {
+        relatedPropertyGroupIdList: [],
+        orgId: null,
+        STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY: false,
+        STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL: "",
+        SHOW_QMTH_LOGO: false,
+        properties: {
+          STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY: false,
+          STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL: "",
+          SHOW_QMTH_LOGO: false
+        }
+      },
+      rules: {
+        STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL: [
+          {
+            validator: validateUrl,
+            trigger: "change"
+          }
+        ]
+      }
+    };
+  },
+  methods: {
+    submitForm(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          this.ruleForm.properties.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY = this.ruleForm.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY;
+          this.ruleForm.properties.STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL = this.ruleForm.STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL;
+          this.ruleForm.properties.SHOW_QMTH_LOGO = this.ruleForm.SHOW_QMTH_LOGO;
+
+          this.$httpWithMsg
+            .put(CORE_API + "/org/saveOrgProperties", this.ruleForm)
+            .then(
+              () => {
+                this.$notify({
+                  message: "保存成功",
+                  type: "success"
+                });
+                this.originalRuleForm = Object.assign({}, this.ruleForm);
+                this.formDataChanged = false;
+              },
+              () => {}
+            );
+        } else {
+          return false;
+        }
+      });
+    },
+
+    initForm() {
+      this.ruleForm.relatedPropertyGroupIdList = ["studentClientConfig"];
+      var url =
+        CORE_API +
+        "/org/getOrgPropertiesByGroupWithoutCache/" +
+        this.ruleForm.orgId +
+        "/" +
+        this.propertyGroupId;
+      this.$httpWithMsg.get(url).then(response => {
+        if (response) {
+          this.ruleForm.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY =
+            response.data.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY == "true";
+          this.ruleForm.STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL =
+            response.data.STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL;
+          this.ruleForm.SHOW_QMTH_LOGO = response.data.SHOW_QMTH_LOGO == "true";
+          this.originalRuleForm = Object.assign({}, this.ruleForm);
+        } else {
+          this.$notify({
+            message: "学校设置信息暂未初始化,请立即初始化",
+            type: "warning"
+          });
+        }
+      });
+    }
+  },
+  created() {
+    this.ruleForm.orgId = this.user.rootOrgId;
+    this.propertyGroupId = "studentClientConfig4Edit";
+    if (this.isSuperAdmin) {
+      this.$httpWithMsg.get(CORE_API + "/org/getRootOrgList").then(response => {
+        this.rootOrgList = response.data;
+      });
+    }
+    this.initForm();
+  },
+  watch: {
+    "ruleForm.orgId": {
+      handler: function() {
+        this.initForm();
+      }
+    },
+    "ruleForm.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY": {
+      handler: function(val) {
+        this.$refs["ruleForm"].validate();
+        if (!val) {
+          this.ruleForm.STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL = null;
+        }
+      }
+    },
+    ruleForm: {
+      deep: true,
+      handler: function(newForm) {
+        if (Object.keys(this.originalRuleForm).length > 0) {
+          this.formDataChanged = !(
+            newForm.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY ==
+              this.originalRuleForm.STUDENT_CLIENT_ACCESS_FROM_THIRD_PARTY &&
+            newForm.STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL ==
+              this.originalRuleForm.STUDENT_CLIENT_THIRD_PARTY_LOGIN_URL &&
+            newForm.SHOW_QMTH_LOGO == this.originalRuleForm.SHOW_QMTH_LOGO
+          );
+        } else {
+          this.formDataChanged = false;
+        }
+      }
+    }
+  },
+  computed: {
+    ...mapState({ user: state => state.user }),
+    btnSaveDiabled() {
+      console.log(this.formDataChanged);
+      return !this.formDataChanged;
+    },
+    isSuperAdmin() {
+      return this.user.roleList.some(role => role.roleCode == "SUPER_ADMIN");
+    }
+  }
+};
+</script>
+<style scoped>
+.input-width {
+  width: 638px;
+}
+</style>