This commit is contained in:
2025-10-19 18:46:49 +08:00
parent 908c8d4d76
commit 71860af928
17 changed files with 316 additions and 185 deletions
@@ -236,11 +236,20 @@ layout("/layouts/platform.html"){
openAdd() {
this.stepActive = 0
this.dialogVisible = true
this.formData={}
this.formData={
name: "",
year: new Date().getFullYear().toString(),
startTime: null,
endTime: null,
notice: null,
quotaAllocations: null,
activityGroupId: "",
enable: true
}
this.$nextTick(() => {
this.$refs.formRef.resetFields()
this.$refs.formRef.clearValidate()
})
this.$refs.formRef.clearValidate()
this.$axios.post("/platform/evaluate/activity/initQuotaAllocations").then((res) => {
if (res.code === 0) {
this.$set(this.formData, "quotaAllocations", res.data)
@@ -7,21 +7,24 @@ layout("/layouts/platform.html"){
<search @search="doSearch">
<search-item label="授予年度">
<el-date-picker
v-model="pageForm.year"
type="year"
style="width: 100%"
value-format="yyyy"
placeholder="授予年度"
v-model="pageForm.year"
type="year"
style="width: 100%"
value-format="yyyy"
placeholder="授予年度"
></el-date-picker>
</search-item>
<search-item label="荣誉类型">
<el-select v-model="pageForm.honorType" placeholder="请选择荣誉类型" style="width: 100%" @change="honorTypeChange">
<el-select v-model="pageForm.honorType" placeholder="请选择荣誉类型" style="width: 100%"
@change="honorTypeChange">
<el-option v-for="o in honorTypeList" :key="o.id" :label="o.name" :value="o.id"></el-option>
</el-select>
</search-item>
<search-item label="获奖奖项">
<el-select v-model="pageForm.prize" filterable style="width: 100%" placeholder="请选择荣誉奖项" clearable>
<el-option v-for="o in honorPrizeList" :key="o.id" style="width: 100%" :label="o.name" :value="o.id"></el-option>
<el-select v-model="pageForm.prize" filterable style="width: 100%" placeholder="请选择荣誉奖项"
clearable>
<el-option v-for="o in honorPrizeList" :key="o.id" style="width: 100%" :label="o.name"
:value="o.id"></el-option>
</el-select>
</search-item>
<search-item label="荣誉级别">
@@ -29,12 +32,14 @@ layout("/layouts/platform.html"){
<el-option v-for="o in honorLevelList" :key="o.id" :label="o.name" :value="o.id"></el-option>
</el-select>
</search-item>
<search-item label="姓名">
<el-input v-model="pageForm.userName" placeholder="请输入姓名"></el-input>
<search-item label="姓名/工号">
<el-input v-model="pageForm.searchKeyword" placeholder="请输入姓名或工号" clearable=""></el-input>
</search-item>
<search-item label="获奖工会">
<el-select v-model="pageForm.unionName" placeholder="请选择获奖工会" @change="doSearch" style="width: 100%" clearable>
<el-option v-for="o in unionList" :key="o.id" :label="o.unionname" :value="o.unionname"></el-option>
<el-select v-model="pageForm.unionId" placeholder="请选择获奖工会" @change="doSearch"
style="width: 100%" clearable>
<el-option v-for="o in unionList" :key="o.id" :label="o.name"
:value="o.id"></el-option>
</el-select>
</search-item>
</search>
@@ -45,34 +50,44 @@ layout("/layouts/platform.html"){
<el-button type="primary" size="small" @click="doExport">导出</el-button>
</table-tool>
<el-table :data="tableData">
<el-table-column label="序号" type="index" header-align="center" align="center" width="50"></el-table-column>
<el-table-column label="序号" type="index"
width="50"></el-table-column>
<template v-if="pageForm.queryTypeCode=='HONOR_SINGLE'">
<el-table-column prop="userName" label="姓名" header-align="center" align="center" sortable></el-table-column>
<el-table-column prop="loginName" label="工号" header-align="center" align="center" sortable></el-table-column>
<el-table-column prop="unionName" label="所属工会" header-align="center" align="center" sortable></el-table-column>
<el-table-column prop="unitName" label="所属单位" header-align="center" align="center" sortable></el-table-column>
<el-table-column prop="userName" label="姓名"
sortable></el-table-column>
<el-table-column prop="loginname" label="工号"
sortable></el-table-column>
<el-table-column prop="unionName" label="所属工会"
sortable></el-table-column>
<el-table-column prop="unitName" label="所属单位"
sortable></el-table-column>
</template>
<template v-if="pageForm.queryTypeCode=='HONOR_LIST'">
<el-table-column prop="applyUnionName" label="申报分工会" header-align="center" align="center" sortable></el-table-column>
<el-table-column
prop="gameName"
label="参加比赛名称"
header-align="center"
align="center"
show-overflow-tooltip
></el-table-column>
<el-table-column prop="applyUnionName" label="申报分工会"
sortable></el-table-column>
<!-- <el-table-column
prop="gameName"
label="参加比赛名称"
header-align="center"
align="center"
show-overflow-tooltip
></el-table-column>-->
</template>
<el-table-column prop="prizeName" label="奖项" header-align="center" align="center" sortable></el-table-column>
<!--<el-table-column prop="prizeDesc" label="奖项说明" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="typeName" label="荣誉类型" header-align="center" align="center"></el-table-column>
<el-table-column prop="levelName" label="级别" header-align="center" align="center" sortable></el-table-column>
<el-table-column prop="grantUnit" label="授予单位" header-align="center" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="grantDate" label="授予时间" header-align="center" align="center" sortable></el-table-column>
<el-table-column prop="prizeName" label="奖项"
sortable></el-table-column>
<!--<el-table-column prop="prizeDesc" label="奖项说明" ></el-table-column>-->
<el-table-column prop="typeName" label="荣誉类型"></el-table-column>
<el-table-column prop="levelName" label="级别"
sortable></el-table-column>
<el-table-column prop="grantUnit" label="授予单位"
show-overflow-tooltip></el-table-column>
<el-table-column prop="grantDate" label="授予时间"
sortable></el-table-column>
<!--<el-table-column prop="archiveStatus" label="存档情况" header-align="center"
align="center"></el-table-column>-->
<el-table-column prop="awardMaterialsExcel" label="获奖材料" header-align="center" align="center"></el-table-column>
<el-table-column prop="awardMaterialsExcel" label="获奖材料"></el-table-column>
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="100px">
<el-table-column label="操作" fixed="right" width="100px">
<template scope="{row}">
<el-dropdown @command="dropdownCommand">
<el-button plain size="mini">
@@ -191,7 +206,8 @@ layout("/layouts/platform.html"){
<el-row :gutter="20">
<el-col :span="24">
<el-form-item prop="user_name" label="附&emsp;&emsp;件">
<file-upload v-if="viewData.files&&viewData.files.length" :files="viewData.files" :view="true"></file-upload>
<file-upload v-if="viewData.files&&viewData.files.length" :files="viewData.files"
:view="true"></file-upload>
<span v-else>暂无</span>
</el-form-item>
</el-col>
@@ -229,7 +245,7 @@ layout("/layouts/platform.html"){
},
methods: {
dropdownCommand(command) {
const { type, row } = command
const {type, row} = command
if (type === "edit") {
this.openEdit(row)
} else if (type === "delete") {
@@ -246,7 +262,7 @@ layout("/layouts/platform.html"){
this.$refs.guava.view()
},
doExport() {
const { year, honorType, prize, honorLevel, userName, unitName } = this.pageForm
const {year, honorType, prize, honorLevel, userName, unitName} = this.pageForm
window.location.href =
"/platform/honor/manage/doExport?year=" +
year +
@@ -262,11 +278,11 @@ layout("/layouts/platform.html"){
unitName
},
openEdit(row) {
this.$store.dispatch("pjaxRoute", "/platform/honor/registration?id=" + row.id)
commonUtil.pjaxPush("/platform/honor/registration?id=" + row.id)
// window.location.href = "/platform/honor/registration?id=" + row.id
},
async doDelete(row) {
const { id } = row
const {id} = row
const confirm = await this.$confirm("确定要删除该记录吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@@ -274,17 +290,17 @@ layout("/layouts/platform.html"){
})
if ("confirm" === confirm) {
this.$set(row, "loading", true)
const resp = await $.post(loc() + "/doDelete", { id: id })
const resp = await $.post(loc() + "/doDelete", {id: id})
if (resp.code === 0) {
this.$notify.success({ title: "成功", message: resp.msg })
this.$notify.success({title: "成功", message: resp.msg})
this.doSearch()
} else {
this.$notify.error({ title: "失败", message: resp.msg })
this.$notify.error({title: "失败", message: resp.msg})
}
}
},
async getHonorPrize(honorType) {
const res = await this.$axios.post("/platform/honor/basic/settings/getData", { parentId: honorType })
const res = await this.$axios.post("/platform/honor/basic/settings/getData", {parentId: honorType})
return res.data
},
getHonorType() {
@@ -316,6 +332,7 @@ layout("/layouts/platform.html"){
this.$businessTool.listUnit().then((data) => {
this.units = data
})
this.unionList = await this.$businessTool.listUnion()
if (this.honorTypeList && this.honorLevelList.length > 0) {
this.formData = {
honorType: this.honorTypeList[0].id,
@@ -12,7 +12,8 @@ layout("/layouts/platform.html"){
<el-col :span="24">
<el-form-item label="荣誉类型" prop="honorType">
<el-select v-model="formData.honorType" style="width: 100%" @change="honorTypeChange">
<el-option v-for="o in honorTypeList" :key="o.id" :label="o.name" :value="o.id"></el-option>
<el-option v-for="o in honorTypeList" :key="o.id" :label="o.name"
:value="o.id"></el-option>
</el-select>
</el-form-item>
</el-col>
@@ -30,15 +31,22 @@ layout("/layouts/platform.html"){
<el-input v-model="formData.userName" readonly></el-input>
</el-form-item>
<el-form-item v-else prop="userId" label="姓名">
<user-select
v-model="formData.userId"
@change="userChange"
ref="beComfortedUserRef"
api="/platform/honor/registration/listBeComfortedUser"
api_input_key_name="keyWord"
:option_label_func="(item)=>{return item.userName + item.loginName + '(' + item.unitName + ')'}"
style="width: 100%"
></user-select>
<el-select
style="width: 100%"
v-model="formData.userId"
filterable remote
@change="userChange"
reserve-keyword
placeholder="请输入姓名或工号"
:remote-method="userRemoteMethod">
<el-option
v-for="item in userOptions"
:key="item.id"
:label="item.userName + item.loginName + '(' + item.unitName + ')'"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -55,28 +63,30 @@ layout("/layouts/platform.html"){
<el-col :span="12">
<el-form-item label="所属单位" prop="unitId">
<el-select
placeholder="所属单位"
v-model="formData.unitId"
clearable
style="width: 100%"
clearable
filterable
placeholder="所属单位"
v-model="formData.unitId"
clearable
style="width: 100%"
clearable
filterable
>
<el-option v-for="item in units" :label="item.name" :value="item.id" :key="item.id"></el-option>
<el-option v-for="item in units" :label="item.name" :value="item.id"
:key="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属工会" prop="unionId">
<el-select
placeholder="所属工会"
v-model="formData.unionId"
clearable
style="width: 100%"
clearable
filterable
placeholder="所属工会"
v-model="formData.unionId"
clearable
style="width: 100%"
clearable
filterable
>
<el-option v-for="item in unions" :label="item.name" :value="item.id" :key="item.id"></el-option>
<el-option v-for="item in unions" :label="item.name" :value="item.id"
:key="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
@@ -86,11 +96,11 @@ layout("/layouts/platform.html"){
<el-col :span="12">
<el-form-item label="生日" prop="birthday">
<el-date-picker
style="width: 100%"
v-model="formData.birthday"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
style="width: 100%"
v-model="formData.birthday"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
</el-col>
@@ -118,11 +128,11 @@ layout("/layouts/platform.html"){
<el-col :span="12">
<el-form-item label="加入工会时间" prop="joinTime">
<el-date-picker
style="width: 100%"
v-model="formData.joinTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
style="width: 100%"
v-model="formData.joinTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
</el-col>
@@ -138,15 +148,16 @@ layout("/layouts/platform.html"){
<el-col :span="12">
<el-form-item label="申报分工会" prop="unionId">
<el-select
placeholder="请选择申报分工会"
v-model="formData.unionId"
style="width: 100%"
disabled
clearable
filterable
@change="searchUnionInfo(formData.unionId)"
placeholder="请选择申报分工会"
v-model="formData.unionId"
style="width: 100%"
disabled
clearable
filterable
@change="searchUnionInfo(formData.unionId)"
>
<el-option v-for="item in unions" :label="item.name" :value="item.id" :key="item.id"></el-option>
<el-option v-for="item in unions" :label="item.name" :value="item.id"
:key="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
@@ -177,7 +188,8 @@ layout("/layouts/platform.html"){
</el-col>-->
<el-col :span="12">
<el-form-item label="会员人数" prop="memberNumber">
<el-input-number v-model="formData.memberNumber" :min="0" :max="2000" style="width: 100%"></el-input-number>
<el-input-number v-model="formData.memberNumber" :min="0" :max="2000"
style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
</el-row>
@@ -192,14 +204,16 @@ layout("/layouts/platform.html"){
<el-col :span="12">
<el-form-item label="奖项" prop="prize">
<el-select v-model="formData.prize" style="width: 100%">
<el-option v-for="o in honorPrizeList" :key="o.id" :label="o.name" :value="o.id"></el-option>
<el-option v-for="o in honorPrizeList" :key="o.id" :label="o.name"
:value="o.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="获奖材料" prop="awardMaterials">
<el-select v-model="formData.awardMaterials" multiple style="width: 100%">
<el-option v-for="o in honorAwardList" :key="o.id" :label="o.name" :value="o.id"></el-option>
<el-option v-for="o in honorAwardList" :key="o.id" :label="o.name"
:value="o.id"></el-option>
</el-select>
</el-form-item>
</el-col>
@@ -219,11 +233,11 @@ layout("/layouts/platform.html"){
<el-col :span="12">
<el-form-item label="授予时间">
<el-date-picker
style="width: 100%"
v-model="formData.grantDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
style="width: 100%"
v-model="formData.grantDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
</el-col>
@@ -237,8 +251,10 @@ layout("/layouts/platform.html"){
</el-col>
<el-col :span="12">
<el-form-item label="级别">
<el-select v-model="formData.honorLevel" placeholder="请选择级别" style="width: 100%">
<el-option v-for="o in honorLevelList" :key="o.id" :label="o.name" :value="o.id"></el-option>
<el-select v-model="formData.honorLevel" placeholder="请选择级别"
style="width: 100%">
<el-option v-for="o in honorLevelList" :key="o.id" :label="o.name"
:value="o.id"></el-option>
</el-select>
</el-form-item>
</el-col>
@@ -253,7 +269,8 @@ layout("/layouts/platform.html"){
</el-row>
<el-col :span="24">
<el-form-item label="附件" prop="files">
<file-upload card :files.sync="formData.files" :max-size="50 * 1024 * 1024"></file-upload>
<file-upload card :files.sync="formData.files"
:max-size="50 * 1024 * 1024"></file-upload>
</el-form-item>
</el-col>
</template>
@@ -287,10 +304,17 @@ layout("/layouts/platform.html"){
userOptions: [],
isEdit: false,
firstInPage: true,
id: GetQueryString("id") ? GetQueryString("id") : ""
id: GetQueryString("id") ? GetQueryString("id") : "",
}
},
methods: {
async userRemoteMethod(query) {
if (query) {
this.userOptions = []
const resp = await this.$axios.post("/platform/honor/registration/listBeComfortedUser", {keyWord: query})
this.userOptions = resp.data
}
},
doBack() {
if (GetQueryString("id")) {
this.$store.dispatch("pjaxRoute", "/platform/honor/manage")
@@ -311,7 +335,7 @@ layout("/layouts/platform.html"){
})
},
userChange(id) {
this.$axios.post("/platform/honor/apply/getUserInfo", { id: id }).then((res) => {
this.$axios.post("/platform/honor/apply/getUserInfo", {id: id}).then((res) => {
if (res.code === 0) {
this.setFormData(res.data)
}
@@ -330,7 +354,7 @@ layout("/layouts/platform.html"){
this.$set(this.formData, "political", user.political)
},
async getUser(keyWord) {
const resp = await this.$axios.post("/platform/condolence/apply/listBeComfortedUser", { keyWord: keyWord })
const resp = await this.$axios.post("/platform/condolence/apply/listBeComfortedUser", {keyWord: keyWord})
return resp.data
},
async honorTypeChange(val) {
@@ -339,7 +363,7 @@ layout("/layouts/platform.html"){
const data = this.honorTypeList.find((v) => v.id === val)
if (data) {
this.$set(this.formData, "queryTypeCode", data.queryTypeCode)
if(data.queryTypeCode === 'HONOR_LIST') {
if (data.queryTypeCode === 'HONOR_LIST') {
this.$set(this.formData, "unionId", this.$store.state.user.union ? this.$store.state.user.union.id : "")
if (this.formData.unionId) {
this.searchUnionInfo(this.formData.unionId)
@@ -350,32 +374,29 @@ layout("/layouts/platform.html"){
}
},
async getHonorPrize(honorType) {
const res = await this.$axios.post("/platform/honor/basic/settings/getData", { parentId: honorType })
const res = await this.$axios.post("/platform/honor/basic/settings/getData", {parentId: honorType})
return res.data
},
getHonorType() {
this.$axios.post("/platform/honor/basic/settings/getHonorType").then((res) => {
if (res.code === 0) {
this.honorTypeList = res.data
}
})
async getHonorType() {
const res = await this.$axios.post("/platform/honor/basic/settings/getHonorType")
if (res.code === 0) {
this.honorTypeList = res.data
}
},
getHonorLevel() {
this.$axios.post("/platform/honor/basic/settings/getHonorLevel").then((res) => {
if (res.code === 0) {
this.honorLevelList = res.data
}
})
async getHonorLevel() {
const res = await this.$axios.post("/platform/honor/basic/settings/getHonorLevel")
if (res.code === 0) {
this.honorLevelList = res.data
}
},
getHonorAwardType() {
this.$axios.post("/platform/honor/basic/settings/getHonorAwardType").then((res) => {
if (res.code === 0) {
this.honorAwardList = res.data
}
})
async getHonorAwardType() {
const res = await this.$axios.post("/platform/honor/basic/settings/getHonorAwardType")
if (res.code === 0) {
this.honorAwardList = res.data
}
},
searchUnionInfo(id) {
this.$axios.post("/platform/honor/basic/settings/getUnionInfo", { id: id }).then((res) => {
this.$axios.post("/platform/honor/basic/settings/getUnionInfo", {id: id}).then((res) => {
if (res.code === 0) {
this.formData.memberNumber = res.data.memberNumber
this.formData.unionLeader = res.data.username
@@ -383,29 +404,28 @@ layout("/layouts/platform.html"){
})
},
async findData(id) {
const resp = await this.$axios.post(loc() + "/findData", { id: id })
const resp = await this.$axios.post(loc() + "/findData", {id: id})
const data1 = resp.data
this.formData = resp.data
if (this.formData.userId && this.formData.userId !== "") {
this.$nextTick(() => {
this.userChange(this.formData.userId)
})
await this.userRemoteMethod(this.formData.userName)
} else {
this.$set(this.formData, "userName", this.formData.userName)
}
await this.honorTypeChange(data1.honorType)
this.$set(this.formData, "prize", data1.prize)
this.$set(this.formData, "honorLevel", data1.honorLevel)
this.$set(this.formData, "political", data1.political)
this.$set(this.formData, "post", data1.post)
this.$set(this.formData, "title", data1.title)
this.$set(this.formData, "unionId", data1.unionId)
this.$set(this.formData, "unionLeader", data1.unionLeader)
/* this.$set(this.formData, "prize", data1.prize)
this.$set(this.formData, "honorLevel", data1.honorLevel)
this.$set(this.formData, "political", data1.political)
this.$set(this.formData, "post", data1.post)
this.$set(this.formData, "title", data1.title)
this.$set(this.formData, "unionId", data1.unionId)
this.$set(this.formData, "unionLeader", data1.unionLeader)*/
console.log(this.formData)
},
async initData() {
this.getHonorType()
this.getHonorLevel()
this.getHonorAwardType()
await this.getHonorType()
await this.getHonorLevel()
await this.getHonorAwardType()
this.unions = await this.$businessTool.listUnion()
this.units = await this.$businessTool.listUnit()
/*this.$set(this.formData, "unionId", this.$store.state.user.union ? this.$store.state.user.union.id : "")
@@ -421,8 +441,8 @@ layout("/layouts/platform.html"){
}
}
},
created() {
this.initData()
async created() {
await this.initData()
if (GetQueryString("id")) {
this.findData(GetQueryString("id"))
}
@@ -145,7 +145,7 @@ layout("/layouts/platform.html"){
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$axios.post("/flow/common/executeTask", {
this.$axios.post("/platform/outlay/reimburse/clubAudit/submit", {
data: JSON.stringify({
...this.formData,
submitType: val
@@ -6,18 +6,8 @@ layout("/layouts/platform.html"){
<guava ref="guava">
<el-card shadow="never">
<search @search="doSearch">
<search-item label="关键字">
<el-input v-model="pageForm.searchKeyword" placeholder="请填写内容">
<el-select
slot="prepend"
v-model="pageForm.searchName"
placeholder="查询"
style="width: 100px;"
>
<el-option label="工号" value="op.loginName"></el-option>
<el-option label="姓名" value="op.userName"></el-option>
</el-select>
</el-input>
<search-item label="姓名/工号">
<el-input v-model="pageForm.searchKeyword" placeholder="请输入姓名或工号"></el-input>
</search-item>
<search-item label="教代会">
<el-select
@@ -137,7 +127,6 @@ layout("/layouts/platform.html"){
return {
pageDataUrl: "/platform/executiveCommittee/executiveCommitteeMember/pageData",
pageForm: {
searchName: 'op.userName',
},
teacherMeets: [],
unionOptions: [],
@@ -121,7 +121,7 @@ layout("/layouts/platform_h5.html"){
title: '温馨提示',
message: '您确定要提交吗?',
}).then(() => {
this.$axios.post('/flow/common/executeTask', {
this.$axios.post('/platform/outlay/reimburse/clubAudit/submit', {
data: JSON.stringify({
...this.formData,
submitType: val