first commit

This commit is contained in:
2026-09-08 20:07:08 +08:00
commit f822f0cb31
565 changed files with 125356 additions and 0 deletions
@@ -0,0 +1,290 @@
<template>
<div>
<div class="search-fixed">
<van-dropdown-menu class="slide-dropdown">
<van-dropdown-item v-model="pageForm.year" @change="yearChange" :options="yearList"></van-dropdown-item>
<van-dropdown-item v-model="pageForm.isAudit" @change="yearChange" :options="auditList">
</van-dropdown-item>
<van-dropdown-item v-model="pageForm.unionId" @change="yearChange" :options="unionList">
</van-dropdown-item>
<van-dropdown-item v-model="pageForm.unitId" @change="yearChange" :options="unitList">
</van-dropdown-item>
</van-dropdown-menu>
</div>
<div>
<van-list v-model="tableLoading" :finished="finished" :finished-text="tableData.length>0?'没有更多了':''"
v-if="tableData && tableData.length>0" @load="pageData">
<div v-for="o in tableData" class="van-doc-card" @click="openView(o)">
<van-row>
<van-col span="3">
<uni-icons type="person-filled" size="26"
style="background-color: #44b887; border-radius: 50%; color: white"></uni-icons>
</van-col>
<van-col span="11" class="username">
{{ o.helpUserName + '(' + o.helpLoginName + ')' }}
</van-col>
<van-col span="10" class="applyTime">
<span>申请时间{{ o.applyTime }}</span>
</van-col>
</van-row>
<van-row class="info" style="margin-top: 8px">
<van-col span="12">
<span>&ensp;&ensp;</span>
<span>{{ o.applyUserName }}</span>
</van-col>
<van-col span="12">
<span>联系方式</span>
<span>{{ o.mobile }}</span>
</van-col>
</van-row>
<van-row class="info">
<van-col span="24">
<span>所属单位</span>
<span>{{ o.helpDeptName }}</span>
</van-col>
</van-row>
<van-row class="info">
<van-col span="24">
<span>所属工会</span>
<span>{{ o.helpUnionName }}</span>
</van-col>
</van-row>
<van-row class="info">
<van-col span="24">
<span>审核状态</span>
<span :style="'color:'+o.stateColor">{{ o.stateName }}</span>
</van-col>
</van-row>
<div v-if="[280,290,300].includes(o.state)" style="position: absolute; right: 8px; bottom: 10px">
<van-button @click.stop="rollBack(o)" color="#1867b0" size="small" round> </van-button>
</div>
</div>
</van-list>
<van-empty v-else description="暂无数据"></van-empty>
</div>
<van-popup v-model="infoShow" position="right" style="height: 100%; width: 100%; background-color: #f6f7f9">
<van-nav-bar title="困难补助申请信息" left-arrow placeholder fixed
@click-left="infoShow = false"></van-nav-bar>
<info ref="viewInfo"></info>
</van-popup>
</div>
</template>
<script>
import initTableMixins from "@/mixins/initTableMixins";
import Info from "./common/info.vue";
export default {
name: 'difficultySchoolAudit',
components: {Info},
mixins: [initTableMixins],
data() {
return {
infoShow: false,
yearList: [],
auditList: [{
text: '未审核',
value: false
},
{
text: '已审核',
value: true
},
],
pageForm: {
year: new Date().getFullYear(),
isAudit: false,
},
id: "",
formData: {},
}
},
methods: {
async rollBack(row) {
this.$modal.confirm('您确定要撤回吗?').then(async () => {
const resp = await this.$http.post("/staff/difficulty/schoolAudit/rollBack/" + row.id);
if (resp.code === 200) {
this.$modal.msg(resp.msg)
this.doSearch()
}
})
},
openView(o) {
this.id = o.id
if(o.state === 270) {
this.$tab.navigateTo('/pages/difficulty/difficultySchoolAudit?id=' + o.id)
} else {
this.infoShow = true
this.$nextTick(() => {
this.$refs.viewInfo.getInfo(o.id)
})
}
},
yearChange() {
this.finished = false
this.flushUnits()
this.doSearch()
},
async pageData() {
const resp = await this.$http.post('/staff/difficulty/schoolAudit/pageData', this.pageForm, {
params: {
year: this.pageForm.year,
unitId: this.pageForm.unitId,
unionId: this.pageForm.unionId,
isAudit: this.pageForm.isAudit,
}
})
if (resp.code === 200) {
this.tableData = this.tableData.concat(resp.data.list)
if (this.tableData.length === resp.data.totalCount) {
this.finished = true
} else {
this.pageForm.pageNumber++
}
}
},
async flushUnits() {
this.$set(this.pageForm, "unitId", "")
if (this.$auth.hasRoleOr(['admin', 'A06', 'H03'])) {
await this.getUnitsByUnionId(this.pageForm.unionId)
} else {
await this.getUnitsByUnionId(this.$store.state.user.userInfo.union.id)
}
},
async init() {
let nowYear = new Date().getFullYear()
for (let i = nowYear; i >= nowYear - 9; i--) {
this.yearList.push({
text: i,
value: i
})
}
await this.getUnions()
await this.getUnits()
if (this.unionList && this.unionList.length > 0) {
this.$set(this.pageForm, "unionId", this.unionList[0].value)
}
if (this.unitList && this.unitList.length > 0) {
this.$set(this.pageForm, "unitId", this.unitList[0].value)
}
},
doSearch() {
this.tableData = []
this.pageForm.pageNumber = 1
this.pageData()
},
async getUnions() {
const resp = await this.$http.get('/system/union/listUnionByRole')
this.unionList = resp.data
this.unionList.forEach(v => {
v.text = v.unionName
v.value = v.id
})
this.unionList.unshift({
text: "全部工会",
value: null
})
},
//获取二级单位信息根据权限
async getUnits() {
const resp = await this.$http.get('/system/dept/listUnitByRole')
this.unitList = resp.data
this.unitList.forEach(v => {
v.text = v.deptName
v.value = v.deptId
})
this.unitList.unshift({
text: "全部单位",
value: null
})
},
async getUnitsByUnionId(unionId) {
const resp = await this.$http.get('/system/dept/listUnitByUnionId', {
params: {
unionId
}
})
this.unitList = resp.data
this.unitList.forEach(v => {
v.text = v.deptName
v.value = v.deptId
})
this.unitList.unshift({
text: "全部单位",
value: null
})
if (this.unitList) {
this.$set(this.pageForm, "unitId", this.unitList[0].value)
}
},
},
async created() {
await this.init()
await this.pageData()
},
onLoad() {
uni.$on('refreshData', res => {
this.doSearch()
})
}
}
</script>
<style lang="scss">
.info {
line-height: 28px;
font-size: 14px;
}
.info span:nth-of-type(1) {
color: grey;
}
.username {
font-size: 17px;
font-weight: bold;
}
.applyTime {
font-size: 12px;
color: grey;
}
::v-deep .van-nav-bar__title {
font-weight: 700;
font-size: 16px;
opacity: 1;
}
::v-deep .van-nav-bar__left .van-icon{
color: rgb(0, 0, 0);
font-size: 22px;
}
::v-deep .van-nav-bar__left {
padding: 0 6px;
}
.van-cell, .van-picker button, .submit .van-button--normal {
font-size: 16px;
}
.van-button--small {
height: 28px;
padding: 0px 20px;
}
</style>