first commit

This commit is contained in:
2026-09-08 19:49:21 +08:00
commit ebffbab428
7320 changed files with 1477614 additions and 0 deletions
@@ -0,0 +1,72 @@
const COMMON_QUERY = {
template: /*language=HTML*/ `
<div class="search">
<div class="search-item">
<div class="search-item-label">姓名/工号</div>
<div class="search-item-option">
<el-input placeholder="请输入姓名或工号查询" clearable v-model="pageForm.searchKeyword"></el-input>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属工会</div>
<div class="search-item-option">
<el-select @change="flushUnits" @clear="flushUnits" clearable filterable
placeholder="请选择所属工会" style="width: 100%;" v-model="pageForm.unionId">
<el-option :key="item.id" :label="item.unionname" :value="item.id"
v-for="item in unions"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">所属单位</div>
<div class="search-item-option">
<el-select clearable filterable placeholder="请选择所属单位" style="width: 100%"
v-model="pageForm.unitId">
<el-option :key="item.id" :label="item.name" :value="item.id"
v-for="item in units"></el-option>
</el-select>
</div>
</div>
<div class="search-query">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
</div>
</div>
`,
data() {
return {
unions: [],
units: [],
pageForm: {
searchKeyword: '',
unionId: '',
unitId: '',
}
}
},
methods: {
doSearch(){
this.$emit('search', this.pageForm)
},
async initData(){
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')||@shiro.hasRole('SchoolUnionAdmin')||@shiro.hasRole('SchoolUnionMemberAdmin')}" === 'true') {
this.unions = await getUnions(null, false)
this.units = await getUnits()
} else {
this.unions = await getUnions(null, true)
this.$set(this.pageForm, 'unionId', this.unions && this.unions.length ? this.unions[0].id : null)
await this.flushUnits()
}
},
async flushUnits(){
this.$set(this.pageForm, "unitId", null)
this.units = []
if (this.pageForm.unionId) {
this.units = await getUnits(this.pageForm.unionId)
}
}
},
async created() {
this.initData()
}
}
@@ -0,0 +1,80 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app">
<guava ref="guava">
<el-card shadow="never">
<common-query ref="commonQuery" @search="search"></common-query>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool :app="this" label="数据列表">
<template #func>
<!-- <el-button type="primary" size="small" @click="doExport">导出Excel</el-button>-->
</template>
</table-tool>
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" ref="table"
row-key="id" style="width: 100%">
<el-table-column :index="indexMethod"
align="center"
header-align="center"
label="序号" type="index" width="80px"></el-table-column>
<el-table-column :label="column.label"
align="center"
:prop="column.prop"
:sortable="column.sortable"
:width="column.width"
header-align="center"
min-width="100px"
show-overflow-tooltip
v-for="column in tableColumns">
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</guava>
</div>
<script>
<!--#include("commonQuery.js"){}#-->
new Vue({
el: '#app',
mixins: [initTableMixins],
data(){
return{
pageForm: {},
tableColumns: [
{ prop: "loginname", label: "工号", sortable: true },
{ prop: "username", label: "姓名", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true, width: "160px" },
{ prop: "unitName", label: "所属单位", sortable: true, width: "160px" },
{ prop: "msgTitle", label: "消息标题", sortable: true },
{ prop: "msgContent", label: "消息内容", sortable: true },
{ prop: "pushByName", label: "推送人", sortable: true },
{ prop: "pushTime", label: "推送时间", sortable: true },
{ prop: "pushType", label: "推送类型", sortable: true },
],
}
},
components: {
'common-query': COMMON_QUERY,
},
methods: {
doExport(){
},
search(pageForm){
this.pageForm = { ...this.pageForm, ...pageForm }
this.pageData()
},
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->