Merge remote-tracking branch 'origin/main'

This commit is contained in:
@jyuhsin
2025-09-26 08:54:58 +08:00
13 changed files with 31 additions and 26 deletions
@@ -64,7 +64,7 @@ public class SysHomeController {
String userAgentStr = req.getHeader("User-Agent"); String userAgentStr = req.getHeader("User-Agent");
UserAgent userAgent = UserAgentUtil.parse(userAgentStr); UserAgent userAgent = UserAgentUtil.parse(userAgentStr);
if (!userAgent.isMobile()) { if (!userAgent.isMobile()) {
return "beetl:/layouts/v4/home.html"; return "beetl:/layouts/v4/home/index.html";
} else { } else {
return "beetl:/platform/zhghh5/sys/home/index.html"; return "beetl:/platform/zhghh5/sys/home/index.html";
} }
@@ -307,7 +307,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Sys_user> implements Sys
String decodePwd = Base64Decoder.decodeStr(passowrd); String decodePwd = Base64Decoder.decodeStr(passowrd);
String hashedPassword = PwdUtil.getPassword(decodePwd, user.getSalt()); String hashedPassword = PwdUtil.getPassword(decodePwd, user.getSalt());
if (!Strings.sNull(hashedPassword).equalsIgnoreCase(user.getPassword())) { if (!Strings.sNull(hashedPassword).equalsIgnoreCase(user.getPassword())) {
// throw new BaseException("用户名或者密码不正确"); throw new BaseException("用户名或者密码不正确");
} }
user = this.fetchLinks(user, "unit"); user = this.fetchLinks(user, "unit");
if (Lang.isNotEmpty(user.getUnit()) && StrUtil.isNotBlank(user.getUnit().getUnionId())) { if (Lang.isNotEmpty(user.getUnit()) && StrUtil.isNotBlank(user.getUnit().getUnionId())) {
@@ -57,8 +57,8 @@ public class ActivitySchoolTeam extends BaseModel implements Serializable {
@Column @Column
@Comment("排序") @Comment("排序")
@Prev({ @Prev({
@SQL(db = DB.MYSQL, value = "SELECT IFNULL(MAX(location),0)+1 FROM Activity_School_Team"), @SQL(db = DB.MYSQL, value = "SELECT IFNULL(MAX(location),0)+1 FROM activity_school_team"),
@SQL(db = DB.ORACLE, value = "SELECT COALESCE(MAX(location),0)+1 FROM Activity_School_Team") @SQL(db = DB.ORACLE, value = "SELECT COALESCE(MAX(location),0)+1 FROM activity_school_team")
}) })
private Integer location; private Integer location;
File diff suppressed because one or more lines are too long
@@ -374,9 +374,9 @@ layout("/layouts/v4/baseLayout.html"){
<div class="apps-grid" v-if="applications.length > 0"> <div class="apps-grid" v-if="applications.length > 0">
<div v-for="app in applications" :key="app.id" class="app-card" @click.stop="openApp(app)"> <div v-for="app in applications" :key="app.id" class="app-card" @click.stop="openApp(app)">
<div :class="['app-icon', app.iconType]"> <div :class="['app-icon', app.iconType]">
<i v-if="app.icon && !app.picIcon" :class="app.icon"></i> <!-- <i v-if="app.icon && !app.picIcon" :class="app.icon"></i>-->
<img v-else-if="app.picIcon" :src="app.picIcon" :alt="app.name || ''" /> <!-- <img v-else-if="app.picIcon" :src="app.picIcon" :alt="app.name || ''" />-->
<i v-else class="fa fa-skype"></i> <i class="fa fa-skype"></i>
</div> </div>
<div class="app-info"> <div class="app-info">
<div class="app-title">{{ app.name }}</div> <div class="app-title">{{ app.name }}</div>
@@ -2,9 +2,6 @@
layout("/layouts/v4/baseLayout.html"){ layout("/layouts/v4/baseLayout.html"){
#--> #-->
<!-- 引入Swiper CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"/>
<style> <style>
.section-banner { .section-banner {
position: relative; position: relative;
@@ -59,9 +56,6 @@ layout("/layouts/v4/baseLayout.html"){
</div> </div>
<!-- 引入Swiper JS -->
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
<script> <script>
<!--#include("act.js"){}#--> <!--#include("act.js"){}#-->
<!--#include("jcdt.js"){}#--> <!--#include("jcdt.js"){}#-->
@@ -46,7 +46,7 @@ const branchUnionManage = {
<el-input v-model="formData.unionCode" maxlength="100" placeholder="工会编码"></el-input> <el-input v-model="formData.unionCode" maxlength="100" placeholder="工会编码"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="校区" prop="campus"> <el-form-item label="校区" prop="campus">
<dict-select v-model="formData.campus" code="CAMPUS"></dict-select> <dict-select v-model="formData.campus" code="USER_CAMPUS"></dict-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@@ -218,7 +218,7 @@ const basicForm = {
<el-table-column label="校区" prop="campus"> <el-table-column label="校区" prop="campus">
<template v-slot="{row}"> <template v-slot="{row}">
<el-select size="small" v-model="row.campus" style="width: 100%"> <el-select size="small" v-model="row.campus" style="width: 100%">
<el-option :label="item.name" :value="item.name" :key="item.code" v-for="item in dict.type.CAMPUS"></el-option> <el-option :label="item.name" :value="item.name" :key="item.code" v-for="item in dict.type.USER_CAMPUS"></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@@ -321,7 +321,7 @@ const basicForm = {
<custom-form ref="customFormRef"></custom-form> <custom-form ref="customFormRef"></custom-form>
</div> </div>
`, `,
dicts: ["CAMPUS", "FAMILY_SIGNUP_TYPE"], dicts: ["USER_CAMPUS", "FAMILY_SIGNUP_TYPE"],
data() { data() {
return { return {
signUpDialog: false, signUpDialog: false,
@@ -133,7 +133,7 @@ layout("/layouts/platform.html"){
new Vue({ new Vue({
el: "#app", el: "#app",
store, store,
dicts: ["CAMPUS", "FAMILY_SIGNUP_TYPE"], dicts: ["USER_CAMPUS", "FAMILY_SIGNUP_TYPE"],
mixins: [initTableMixins], mixins: [initTableMixins],
components: { components: {
"info": info, "info": info,
@@ -24,7 +24,7 @@ layout("/layouts/platform.html"){
<template> <template>
<el-card shadow="never"> <el-card shadow="never">
<search @search="activityInfoData"> <search @search="activityInfoData">
<search-item label=""> <search-item label="年度">
<el-date-picker <el-date-picker
@change="activityInfoData" @change="activityInfoData"
placeholder="选择年" placeholder="选择年"
@@ -35,14 +35,14 @@ layout("/layouts/platform.html"){
></el-date-picker> ></el-date-picker>
</search-item> </search-item>
<search-item label=""> <search-item label="报名状态">
<el-radio-group @change="activityInfoData" v-model="pageForm.isActivity"> <el-radio-group @change="activityInfoData" v-model="pageForm.isActivity">
<el-radio-button :label="1">全部</el-radio-button> <el-radio-button :label="1">全部</el-radio-button>
<el-radio-button :label="2">报名中</el-radio-button> <el-radio-button :label="2">报名中</el-radio-button>
<el-radio-button :label="3">已结束</el-radio-button> <el-radio-button :label="3">已结束</el-radio-button>
</el-radio-group> </el-radio-group>
</search-item> </search-item>
<search-item label="" <search-item label="所属工会"
v-if="$auth.hasRole('SYSADMIN')||$auth.hasRole('SCHOOL_UNION_ADMIN')"> v-if="$auth.hasRole('SYSADMIN')||$auth.hasRole('SCHOOL_UNION_ADMIN')">
<el-select <el-select
@change="doSearch" @change="doSearch"
@@ -206,7 +206,7 @@ const basicForm = {
<el-table-column label="校区" prop="campus"> <el-table-column label="校区" prop="campus">
<template v-slot="{row}"> <template v-slot="{row}">
<el-select size="small" v-model="row.campus" style="width: 100%"> <el-select size="small" v-model="row.campus" style="width: 100%">
<el-option :label="item.name" :value="item.name" :key="item.code" v-for="item in dict.type.CAMPUS"></el-option> <el-option :label="item.name" :value="item.name" :key="item.code" v-for="item in dict.type.USER_CAMPUS"></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@@ -302,7 +302,7 @@ const basicForm = {
<custom-form ref="customFormRef"></custom-form> <custom-form ref="customFormRef"></custom-form>
</div> </div>
`, `,
dicts: ["CAMPUS", "TRAIN_SIGNUP_TYPE"], dicts: ["USER_CAMPUS", "TRAIN_SIGNUP_TYPE"],
data() { data() {
return { return {
signUpDialog: false, signUpDialog: false,
@@ -123,7 +123,7 @@ layout("/layouts/platform.html"){
new Vue({ new Vue({
el: "#app", el: "#app",
store, store,
dicts: ["CAMPUS", "TRAIN_SIGNUP_TYPE"], dicts: ["USER_CAMPUS", "TRAIN_SIGNUP_TYPE"],
mixins: [initTableMixins], mixins: [initTableMixins],
components: { components: {
"info": info, "info": info,
@@ -82,8 +82,8 @@ layout("/layouts/platform.html"){
v-for="item in changeTypeData" v-for="item in changeTypeData"
:key="item.code" :key="item.code"
:type="item.name" :type="item.name"
:effect="pageForm.changeTypes.includes(item.type)?'dark':'plain'" :effect="pageForm.changeTypes.includes(item.code)?'dark':'plain'"
@click="tagClick('changeTypes',item.type)"> @click="tagClick('changeTypes',item.code)">
{{ item.changeTypeName }} {{ item.changeTypeName }}
</el-tag> </el-tag>
<el-link type="danger" <el-link type="danger"
@@ -302,6 +302,17 @@ layout("/layouts/platform.html"){
this.changeTypeData = await this.$businessTool.getEnumOptions("MemberChangeType") this.changeTypeData = await this.$businessTool.getEnumOptions("MemberChangeType")
this.changeOriginData = await this.$businessTool.getEnumOptions("MemberChangeOrigin") this.changeOriginData = await this.$businessTool.getEnumOptions("MemberChangeOrigin")
}, },
async pageData() {
const pageForm = clone(this.pageForm)
pageForm.changeTypes = JSON.stringify(this.pageForm.changeTypes)
const resp = await $.post('/platform/sourcechange/manage/pageData', pageForm)
if (resp.code === 0) {
this.tableData = resp.data.list
this.pageForm.totalCount = resp.data.totalCount
} else {
this.$message.warning(resp.msg)
}
}
}, },
async created() { async created() {
await this.initData() await this.initData()