更改校端权限
deploy-userbase-front / build-and-deploy (push) Successful in 1m57s

This commit is contained in:
chenxing
2026-09-07 09:32:38 +08:00
parent 9200fa2135
commit 7e37f2ada6
15 changed files with 461 additions and 120 deletions
+28 -16
View File
@@ -2,14 +2,14 @@
<Modal v-model="show" :mask-closable="false" width="800" scrollable :title="title"
@on-visible-change="onVisibleChange">
<Form ref="formRef" :model="form" :rules="rules" :label-width="130" class="app-form width-95">
<!-- 第一行:应用名称 / 应用类型 -->
<!-- 第一行:应用名称 / 应用类型(学校模式隐藏类型——类型归属平台主数据) -->
<Row>
<Col span="12">
<FormItem label="应用名称:" prop="name">
<Input v-model="form.name" placeholder="请输入应用名称" />
</FormItem>
</Col>
<Col span="12">
<Col span="12" v-if="!schoolMode">
<FormItem label="应用类型:" prop="categoryId">
<Select v-model="form.categoryId" transfer placeholder="请选择应用类型">
<Option v-for="item in categoryList" :key="item.id" :value="item.id" :label="item.name" />
@@ -26,8 +26,15 @@
</Col>
</Row>
<!-- 第三行:appKey / appSecret(编辑模式才显示) -->
<Row v-if="isEdit">
<!-- 学校模式说明:仅 名称/描述/图标 可编辑,且仅对本校生效 -->
<Row v-if="schoolMode">
<Col span="24">
<Alert show-icon>学校模式:此处修改仅对本校生效(应用别名),平台主数据与密钥/推送等配置不可修改。</Alert>
</Col>
</Row>
<!-- 第三行:appKey / appSecret(编辑模式且非学校模式才显示) -->
<Row v-if="isEdit && !schoolMode">
<Col span="12">
<FormItem label="appKey:">
<Input :model-value="form.appKey?.toString()" readonly />
@@ -43,8 +50,8 @@
</Col>
</Row>
<!-- 第四行:应用前端类型(tag 多选) -->
<Row>
<!-- 第四行:应用前端类型(tag 多选;学校模式隐藏) -->
<Row v-if="!schoolMode">
<Col span="24">
<FormItem label="应用前端类型:">
<Select v-model="form.clients" multiple transfer placeholder="请选择前端类型" class="client-select">
@@ -54,9 +61,9 @@
</Col>
</Row>
<!-- 第五行:Pc应用地址 / Pc应用图标 -->
<!-- 第五行:Pc应用地址 / Pc应用图标(学校模式仅保留 Pc应用图标) -->
<Row>
<Col span="12">
<Col span="12" v-if="!schoolMode">
<FormItem label="Pc应用地址:">
<Input v-model="form.pcUrl" placeholder="请输入Pc应用地址" />
</FormItem>
@@ -79,8 +86,8 @@
</Col>
</Row>
<!-- 第六行:App接口地址 / App应用图标 -->
<Row>
<!-- 第六行:App接口地址 / App应用图标(学校模式隐藏) -->
<Row v-if="!schoolMode">
<Col span="12">
<FormItem label="App接口地址:">
<Input v-model="form.appUrl" placeholder="请输入App接口地址" />
@@ -104,8 +111,8 @@
</Col>
</Row>
<!-- 第七行:公众号应用地址 / 钉钉应用地址 -->
<Row>
<!-- 第七行:公众号应用地址 / 钉钉应用地址(学校模式隐藏) -->
<Row v-if="!schoolMode">
<Col span="12">
<FormItem label="公众号应用地址:">
<Input v-model="form.officialAccountUrl" placeholder="请输入公众号应用地址" />
@@ -139,11 +146,14 @@ const props = withDefaults(defineProps<{
categoryList?: any[];
isEdit?: boolean;
loading?: boolean;
/** 学校管理员模式:仅 名称/描述/Pc图标 三字段可编辑(写学校覆盖表) */
schoolMode?: boolean;
}>(), {
initForm: () => ({}),
categoryList: () => [],
isEdit: false,
loading: false,
schoolMode: false,
});
const emit = defineEmits(['update:modelValue', 'submit', 'cancel', 'reset-secret']);
@@ -211,11 +221,13 @@ const clientOptions = [
{ value: 32, label: '钉钉' },
];
/* ---------- 校验规则 ---------- */
const rules = {
/* ---------- 校验规则(学校模式不校验 categoryId——类型字段不展示且不可改) ---------- */
const rules = computed(() => ({
name: [{ required: true, message: '请输入应用名称', trigger: 'blur' }],
categoryId: [{ required: true, type: 'number' as const, message: '请选择应用类型', trigger: 'change' }],
};
...(props.schoolMode ? {} : {
categoryId: [{ required: true, type: 'number' as const, message: '请选择应用类型', trigger: 'change' }],
}),
}));
/* ---------- 提交 ---------- */
const formRef = ref();