commit
This commit is contained in:
@@ -1,630 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div class="block">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-select v-model="pageForm.honorLevel" placeholder="请选择级别" style="width: 100%"
|
||||
@change="doSearch"
|
||||
clearable>
|
||||
<el-option v-for="o in honorLevelList"
|
||||
:key="o.id"
|
||||
:label="o.name"
|
||||
:value="o.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-radio-group v-model="pageForm.honorType" @change="doSearch">
|
||||
<el-radio-button v-for="v in honorTypeList" :label="v.id">{{v.name}}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
|
||||
</div>
|
||||
|
||||
<div class="pull-right offscreen-right">
|
||||
<el-button size="medium" type="primary" @click="applyHonor">申请荣誉</el-button>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
|
||||
|
||||
<honor-apply-table :loading="tableLoading" :page="pageForm" :data="tableData"
|
||||
ref="hat"
|
||||
@order="pageOrder">
|
||||
|
||||
<template #vi-title>
|
||||
<vi-title title="申请列表"></vi-title>
|
||||
</template>
|
||||
|
||||
<template #column>
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
|
||||
<template scope="{row}">
|
||||
|
||||
<el-dropdown @command="dropdownCommand">
|
||||
<el-button plain size="mini">
|
||||
<i class="ti-settings"></i>
|
||||
<span class="ti-angle-down"></span>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item :command="{type:'view',data:row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'edit',data:row}"
|
||||
:disabled="(row.honorType=='101'&&row.stateId>1500)||(row.honorType=='102'&&row.stateId>1600)">
|
||||
编辑
|
||||
</el-dropdown-item>
|
||||
|
||||
<!--#if(@shiro.hasRole('sysadmin')){#-->
|
||||
<el-dropdown-item :command="{type:'delete',data:row}"
|
||||
:loading="row.delLoading">
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
<!--#}else{#-->
|
||||
<el-dropdown-item :command="{type:'delete',data:row}"
|
||||
:disabled="(row.honorType=='101'&&row.stateId>1500)||(row.honorType=='102'&&row.stateId>1600)"
|
||||
:loading="row.delLoading">
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
<!--#}#-->
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
|
||||
|
||||
<template #pagination>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</template>
|
||||
</honor-apply-table>
|
||||
</template>
|
||||
<template #edit>
|
||||
<template #header>
|
||||
<el-row type="flex" justify="space-between">
|
||||
<h3>{{isEdit?'修改数据':'添加数据'}}</h3>
|
||||
</el-row>
|
||||
</template>
|
||||
<el-form :model="formData" label-width="120px" ref="form">
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="荣誉类型" prop="honorType">
|
||||
<el-select v-model="formData.honorType" @change="honorTypeChange" :disabled="isEdit">
|
||||
<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>
|
||||
</el-row>
|
||||
<el-collapse v-model="collapse">
|
||||
<el-collapse-item title="" name="basic">
|
||||
<template slot="title">
|
||||
<div class="text-primary" style="width: 100%">
|
||||
基础信息
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="formData.honorType===HonorApi.honor_single_id">
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="24" prop="userId">
|
||||
<el-form-item prop="userId" label="获奖人员">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.userId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查找"
|
||||
:remote-method="userRemoteMethod"
|
||||
:loading="userLoading"
|
||||
@change="userChange"
|
||||
:disabled="isEdit">
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.username+'('+item.loginname+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="性别" prop="userSex">
|
||||
<el-radio-group v-model="formData.userSex" :disabled="isEdit">
|
||||
<el-radio-button label="男"></el-radio-button>
|
||||
<el-radio-button label="女"></el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="在职状态" prop="jobStatus">
|
||||
<el-input v-model="formData.jobStatus"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="担任工会职务" prop="post">
|
||||
<el-input v-model="formData.post"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="职称" prop="title">
|
||||
<el-input v-model="formData.title"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<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="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="政治面貌" prop="political">
|
||||
<el-input v-model="formData.political"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="民族" prop="nation">
|
||||
<el-select placeholder="民族" style="width: 100%" filterable
|
||||
v-model="formData.nation">
|
||||
<el-option v-for="nation in nationOptions" :key="nation" :value="nation"
|
||||
:label="nation"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<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="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属单位" prop="unitId">
|
||||
<el-select placeholder="所属单位" v-model="formData.unitId" clearable
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable="true"
|
||||
:disabled="isEdit">
|
||||
<el-option v-for="item in units"
|
||||
:label="item.name"
|
||||
:value="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="true"
|
||||
filterable="true"
|
||||
:disabled="isEdit">
|
||||
<el-option v-for="item in unions"
|
||||
:label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
|
||||
<template v-else>
|
||||
<el-row type="flex">
|
||||
<el-col :span="12">
|
||||
<!--<el-form-item label="获奖单位" prop="unitName">
|
||||
<el-select placeholder="获奖单位" v-model="formData.unitName"
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable
|
||||
allow-create
|
||||
:disabled="isEdit">
|
||||
<el-option v-for="item in units"
|
||||
:label="item.name"
|
||||
:value="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>-->
|
||||
<el-form-item label="申报院级工会" prop="unionId">
|
||||
<el-select placeholder="请选择申报院级工会" v-model="formData.unionId"
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable
|
||||
@change="unionSelectChange"
|
||||
:disabled="isEdit">
|
||||
<el-option v-for="item in unions"
|
||||
:label="item.unionname"
|
||||
:value="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"
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable="true"
|
||||
:disabled="isEdit">
|
||||
<el-option v-for="item in unions"
|
||||
:label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>-->
|
||||
<el-form-item label="工会主席" prop="unionLeader">
|
||||
<el-input v-model="formData.unionLeader"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row type="flex">
|
||||
<!--<el-col :span="8">
|
||||
<el-form-item label="单位负责人" prop="unitLeader">
|
||||
<el-input v-model="formData.unitLeader"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单位人数" prop="unitPeopleNum">
|
||||
<el-input-number v-model="formData.unitPeopleNum" :min="0"
|
||||
:max="2000" style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="女职工人员" prop="unitFemalePeopleNum">
|
||||
<el-input-number
|
||||
v-model.number="formData.unitFemalePeopleNum" :min="0"
|
||||
:max="2000" style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</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-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工会小组数" prop="unionGroupNumber">
|
||||
<el-input-number v-model="formData.unionGroupNumber" :min="0"
|
||||
:max="2000" style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="曾受何种奖励" prop="award">
|
||||
<el-input v-model="formData.award" type="textarea" rows="4"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="主要事迹" prop="Deeds">
|
||||
<el-input v-model="formData.Deeds" type="textarea" rows="4"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="获奖信息" name="prize">
|
||||
<template slot="title">
|
||||
<div class="text-primary" style="width: 100%">
|
||||
获奖信息
|
||||
</div>
|
||||
</template>
|
||||
<template>
|
||||
<!-- <el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="奖项" prop="prize">
|
||||
<el-select v-model="formData.prize">
|
||||
<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="prizeDesc">
|
||||
<el-input v-model="formData.prizeDesc" maxlength="100"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="级别">
|
||||
<el-select v-model="formData.honorLevel" placeholder="">
|
||||
<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>
|
||||
-->
|
||||
</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>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
|
||||
</el-form>
|
||||
<el-row class="m20 text-right">
|
||||
<el-button type="primary" @click="doSubmit">提交</el-button>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
|
||||
<template #view>
|
||||
<honor-info ref="info"></honor-info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
units: [],
|
||||
unions: [],
|
||||
nationOptions: nation,
|
||||
honorTypeList: [],
|
||||
honorLevelList: [],
|
||||
honorAwardList: [],
|
||||
honorPrizeList: [],
|
||||
collapse: ['basic', 'prize'],
|
||||
userLoading: false,
|
||||
userOptions: [],
|
||||
isEdit: false,
|
||||
pageForm: {
|
||||
year: new Date().getFullYear() + "",
|
||||
honorType: '',
|
||||
honorLevel: ''
|
||||
},
|
||||
firstInPage: true,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
'honor-apply-table': httpVueLoader('/components/honor/honorApplyTable.vue'),
|
||||
'honor-info': httpVueLoader('/components/honor/honorInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
unionSelectChange(val) {
|
||||
|
||||
},
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'edit') {
|
||||
this.openEdit(data)
|
||||
} else if (type == 'delete') {
|
||||
this.doDelete(data)
|
||||
}
|
||||
},
|
||||
openView(data) {
|
||||
this.$refs.info.getInfo(data.id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
doDelete(row) {
|
||||
this.$confirm('确定要删除吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" == a) {//确认后再执行
|
||||
this.$set(row, "delLoading", true)
|
||||
const resp = await $.post(loc() + '/doDelete', {id: row.id})
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
this.$set(row, "delLoading", false)
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
openEdit(data) {
|
||||
this.isEdit = true
|
||||
this.findData(data)
|
||||
this.$refs.guava.edit()
|
||||
},
|
||||
applyHonor() {
|
||||
this.initData()
|
||||
this.isEdit = false
|
||||
this.$refs.guava.edit()
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
},
|
||||
async userChange() {
|
||||
const user = await queryUserById(this.formData.userId)
|
||||
this.setFormData(user)
|
||||
},
|
||||
setFormData(user) {
|
||||
this.$set(this.formData, "userSex", user[0].sex)
|
||||
this.$set(this.formData, "userName", user[0].username)
|
||||
this.$set(this.formData, "unitId", user[0].unitid)
|
||||
this.$set(this.formData, "unionId", user[0].unionid)
|
||||
this.$set(this.formData, "birthday", user[0].birthday)
|
||||
this.$set(this.formData, "title", user[0].jobTitle)
|
||||
//this.$set(this.formData, "post", user[0].position)
|
||||
this.$set(this.formData, "unionName", user[0].unionname)
|
||||
this.$set(this.formData, "unitName", user[0].unitname)
|
||||
this.$set(this.formData, "jobStatus", user[0].userState)
|
||||
this.$set(this.formData, "political", user[0].political)
|
||||
},
|
||||
async userRemoteMethod(query) {
|
||||
if (query) {
|
||||
this.userLoading = true
|
||||
const arr = await searchUser(query)
|
||||
this.userOptions = arr
|
||||
this.userLoading = false
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
this.honorTypeList = await HonorApi.getHonorType()
|
||||
if (this.honorTypeList) {
|
||||
this.$set(this.pageForm,"honorType",this.honorTypeList[0].id)
|
||||
this.formData = {
|
||||
honorType: this.honorTypeList[0].id
|
||||
}
|
||||
this.honorPrizeList = await HonorApi.getHonorPrize(this.formData.honorType)
|
||||
}
|
||||
this.honorLevelList = await HonorApi.getHonorLevel()
|
||||
this.honorAwardList = await HonorApi.getHonorAwardType()
|
||||
this.units = await getUnits(null)
|
||||
this.unions = await getUnions(null)
|
||||
if (this.formData.honorType === HonorApi.honor_single_id) {
|
||||
await this.userRemoteMethod("${@shiro.getPrincipalProperty('loginname')}")
|
||||
this.$set(this.formData, "userId", this.userOptions[0].id)
|
||||
await this.userChange()
|
||||
}
|
||||
},
|
||||
async honorTypeChange(val) {
|
||||
this.$set(this.formData, "prize", null)
|
||||
this.honorPrizeList = await HonorApi.getHonorPrize(val)
|
||||
if (this.formData.honorType === HonorApi.honor_single_id) {
|
||||
await this.userRemoteMethod("${@shiro.getPrincipalProperty('loginname')}")
|
||||
this.$set(this.formData, "userId", this.userOptions[0].id)
|
||||
await this.userChange()
|
||||
} else {
|
||||
|
||||
}
|
||||
},
|
||||
async doSubmit() {
|
||||
this.formData.files = JSON.stringify(this.formData.files)
|
||||
const resp = await $.post(loc() + '/doSubmit', this.formData)
|
||||
if(resp.code===0){
|
||||
this.$notify.success({title: '成功', message: resp.msg});
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
}
|
||||
},
|
||||
async findData(data) {
|
||||
this.formData = {}
|
||||
const data1 = clone(data)
|
||||
this.honorPrizeList = await HonorApi.getHonorPrize(data.honorType)
|
||||
|
||||
this.formData = data1
|
||||
if (this.formData.userId && this.formData.userId !== '') {
|
||||
const user = await queryUserById(this.formData.userId)
|
||||
this.setFormData(user)
|
||||
} else {
|
||||
this.$set(this.formData, 'userName', this.formData.userName)
|
||||
}
|
||||
|
||||
this.$set(this.formData, "prize", data.prize)
|
||||
this.$set(this.formData, "honorLevel", data.honorLevel)
|
||||
this.$set(this.formData, "political", data.political)
|
||||
this.$set(this.formData, "post", data.post)
|
||||
this.$set(this.formData, "title", data.title)
|
||||
this.$set(this.formData, "unionId", data1.unionId)
|
||||
this.$set(this.formData, "unionLeader", data1.unionLeader)
|
||||
if (data.files && data.files.length > 0) this.$set(this.formData, "files", JSON.parse(data.files))
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
"formData.prize"(newVal) {
|
||||
if (this.firstInPage === false && newVal) {
|
||||
this.$set(this.formData, "honorLevel", this.honorPrizeList.find(v => v.id === newVal).level)
|
||||
this.firstInPage = false
|
||||
}
|
||||
},
|
||||
"formData.unitName"(newVal) {
|
||||
const isExist = this.units.some(v => v.name == newVal)
|
||||
if(this.formData.honorType === HonorApi.honor_single_id) {
|
||||
if (isExist) {
|
||||
const unionId = this.units.find(v => v.name == newVal).unionid
|
||||
this.$set(this.formData, "unionId", unionId ? unionId : "")
|
||||
} else {
|
||||
this.$set(this.formData, "unionId", "")
|
||||
}
|
||||
}
|
||||
},
|
||||
"formData.unionId"(newVal) {
|
||||
if(this.formData.honorType === HonorApi.honor_list_id) {
|
||||
if(this.firstInPage === false) {
|
||||
const un = this.unions.find(o => o.id === newVal)
|
||||
this.formData.unionLeader = un ? un.leadername : ''
|
||||
this.formData.unionName = un ? un.unionname : ''
|
||||
} else {
|
||||
this.firstInPage = false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.initData()
|
||||
this.pageData()
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,279 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
|
||||
<el-card shadow="never">
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div class="block">
|
||||
<el-date-picker
|
||||
style="width: 100px"
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-select v-model="pageForm.honorLevel" placeholder="请选择级别" style="width: 200px"
|
||||
@change="doSearch"
|
||||
clearable>
|
||||
<el-option v-for="o in honorLevelList"
|
||||
:key="o.id"
|
||||
:label="o.name"
|
||||
:value="o.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button" v-if="pageForm.honorType=='101'">
|
||||
<div>
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword" clearable>
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
style="width: 100px;">
|
||||
<el-option label="工号" value="us.loginname"></el-option>
|
||||
<el-option label="姓名" value="us.username"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}"
|
||||
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-radio-group v-model="pageForm.honorType" @change="doSearch">
|
||||
<el-radio-button v-for="v in honorTypeList" :label="v.id">{{v.name}}({{v.num}})
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
|
||||
</div>
|
||||
<div class="pull-right offscreen-right mt5">
|
||||
|
||||
<el-radio-group v-model="pageForm.isAudit" @change="doSearch">
|
||||
<el-radio-button :label="null">全部</el-radio-button>
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
|
||||
<honor-apply-table :loading="tableLoading" :page="pageForm" :data="tableData"
|
||||
ref="hat"
|
||||
@order="pageOrder">
|
||||
|
||||
<template #vi-title>
|
||||
<vi-title title="申请列表"></vi-title>
|
||||
</template>
|
||||
|
||||
|
||||
<template #column>
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" @click="openView(row)">
|
||||
查看
|
||||
</el-button>
|
||||
<el-button size="mini" @click="openEdit(row)" type="primary" :disabled="row.stateId>1700">
|
||||
审核
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
|
||||
<template #pagination>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</template>
|
||||
|
||||
|
||||
</honor-apply-table>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<honor-info ref="info2" :handle="true" label="院级党组织审核" :panes="[4]">
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0"
|
||||
label-width="120px">
|
||||
<el-form-item label="审核信息 " label-width="135px" class="view-header">
|
||||
</el-form-item>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="time" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doReview(false)">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doReview(true)">通
|
||||
过
|
||||
</el-button>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
</honor-info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<honor-info ref="info"></honor-info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
units: [],
|
||||
unions: [],
|
||||
honorLevelList: [],
|
||||
honorTypeList: [],
|
||||
pageForm: {
|
||||
year: new Date().getFullYear() + "",
|
||||
isAudit: false,
|
||||
searchName: 'us.username',
|
||||
honorType: '',
|
||||
honorLevel: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'honor-apply-table': httpVueLoader('/components/honor/honorApplyTable.vue'),
|
||||
'honor-info': httpVueLoader('/components/honor/honorInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'edit') {
|
||||
this.openEdit(data)
|
||||
}
|
||||
},
|
||||
async doReview(flag) {
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.getHonorNum()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
openView(data) {
|
||||
this.$refs.info.getInfo(data.id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
openEdit(data) {
|
||||
this.formData = {
|
||||
id: data.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
|
||||
this.$refs.info2.getInfo(data.id)
|
||||
this.$refs.guava.edit()
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
},
|
||||
async flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", "")
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
this.units = await getUnits(this.pageForm.unionId)
|
||||
} else {
|
||||
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
},
|
||||
async getHonorNum() {
|
||||
const honorNum = await HonorApi.getHonorNum(1700)
|
||||
this.honorTypeList.map(v => {
|
||||
if (v.code === "H1100") {
|
||||
v.num = honorNum.gr
|
||||
} else {
|
||||
v.num = honorNum.jt
|
||||
}
|
||||
})
|
||||
this.$forceUpdate();
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.honorLevelList = await HonorApi.getHonorLevel()
|
||||
this.honorTypeList = await HonorApi.getHonorType()
|
||||
if (this.honorTypeList) {
|
||||
await this.getHonorNum()
|
||||
this.$set(this.pageForm, "honorType", this.honorTypeList[0].id)
|
||||
}
|
||||
this.unions = await getUnions(null)
|
||||
this.flushUnits()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,282 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
|
||||
<el-card shadow="never">
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div class="block">
|
||||
<el-date-picker
|
||||
style="width: 100px"
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-select v-model="pageForm.honorLevel" placeholder="请选择级别" style="width: 200px"
|
||||
@change="doSearch"
|
||||
clearable>
|
||||
<el-option v-for="o in honorLevelList"
|
||||
:key="o.id"
|
||||
:label="o.name"
|
||||
:value="o.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button" v-if="pageForm.honorType=='101'">
|
||||
<div>
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword" clearable>
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
style="width: 100px;">
|
||||
<el-option label="工号" value="us.loginname"></el-option>
|
||||
<el-option label="姓名" value="us.username"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}"
|
||||
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-radio-group v-model="pageForm.honorType" @change="doSearch">
|
||||
<el-radio-button v-for="v in honorTypeList" :label="v.id">{{v.name}}({{v.num}})
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
|
||||
</div>
|
||||
<div class="pull-right offscreen-right mt5">
|
||||
|
||||
<el-radio-group v-model="pageForm.isAudit" @change="doSearch">
|
||||
<el-radio-button :label="null">全部</el-radio-button>
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
|
||||
<honor-apply-table :loading="tableLoading" :page="pageForm" :data="tableData"
|
||||
ref="hat"
|
||||
@order="pageOrder">
|
||||
|
||||
<template #vi-title>
|
||||
<vi-title title="申请列表"></vi-title>
|
||||
</template>
|
||||
|
||||
|
||||
<template #column>
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" @click="openView(row)">
|
||||
查看
|
||||
</el-button>
|
||||
<el-button size="mini" @click="openEdit(row)" type="primary" :disabled="row.stateId>1800">
|
||||
审核
|
||||
</el-button>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
|
||||
<template #pagination>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</template>
|
||||
|
||||
|
||||
</honor-apply-table>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<honor-info ref="info2" :handle="true" label="校工会审核" :panes="[5]">
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0"
|
||||
label-width="120px">
|
||||
<el-form-item label="审核信息 " label-width="135px" class="view-header">
|
||||
</el-form-item>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="time" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doReview(false)">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doReview(true)">通
|
||||
过
|
||||
</el-button>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
</honor-info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<honor-info ref="info"></honor-info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
units: [],
|
||||
unions: [],
|
||||
honorLevelList: [],
|
||||
honorTypeList: [],
|
||||
pageForm: {
|
||||
year: new Date().getFullYear() + "",
|
||||
isAudit: false,
|
||||
searchName: 'us.username',
|
||||
honorType: '',
|
||||
honorLevel: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'honor-apply-table': httpVueLoader('/components/honor/honorApplyTable.vue'),
|
||||
'honor-info': httpVueLoader('/components/honor/honorInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'edit') {
|
||||
this.openEdit(data)
|
||||
}
|
||||
},
|
||||
async doReview(flag) {
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.getHonorNum()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
openView(data) {
|
||||
this.$refs.info.getInfo(data.id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
openEdit(data) {
|
||||
this.formData = {
|
||||
id: data.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
|
||||
this.$refs.info2.getInfo(data.id)
|
||||
this.$refs.guava.edit()
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
},
|
||||
async flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", "")
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" === 'true') {
|
||||
this.units = await getUnits(this.pageForm.unionId)
|
||||
} else {
|
||||
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
},
|
||||
async getHonorNum() {
|
||||
const honorNum = await HonorApi.getHonorNum(1800)
|
||||
this.honorTypeList.map(v => {
|
||||
if (v.code === "H1100") {
|
||||
v.num = honorNum.gr
|
||||
} else {
|
||||
v.num = honorNum.jt
|
||||
}
|
||||
})
|
||||
this.$forceUpdate();
|
||||
}
|
||||
|
||||
},
|
||||
async created() {
|
||||
this.honorLevelList = await HonorApi.getHonorLevel()
|
||||
this.honorTypeList = await HonorApi.getHonorType()
|
||||
|
||||
if (this.honorTypeList) {
|
||||
await this.getHonorNum()
|
||||
this.$set(this.pageForm, "honorType", this.honorTypeList[0].id)
|
||||
}
|
||||
this.unions = await getUnions(null)
|
||||
this.flushUnits()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,280 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
|
||||
<el-card shadow="never">
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div class="block">
|
||||
<el-date-picker
|
||||
style="width: 100px"
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-select v-model="pageForm.honorLevel" placeholder="请选择级别" style="width: 100%"
|
||||
@change="doSearch"
|
||||
clearable>
|
||||
<el-option v-for="o in honorLevelList"
|
||||
:key="o.id"
|
||||
:label="o.name"
|
||||
:value="o.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button" v-if="pageForm.honorType=='101'">
|
||||
<div>
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword" clearable>
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
style="width: 100px;">
|
||||
<el-option label="工号" value="us.loginname"></el-option>
|
||||
<el-option label="姓名" value="us.username"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
|
||||
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select placeholder="所属单位" v-model="pageForm.unitId" style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-radio-group v-model="pageForm.honorType" @change="doSearch">
|
||||
<el-radio-button v-for="v in honorTypeList" :label="v.id">{{v.name}}({{v.num}})
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
|
||||
</div>
|
||||
<div class="pull-right offscreen-right mt5">
|
||||
|
||||
<el-radio-group v-model="pageForm.isAudit" @change="doSearch">
|
||||
<el-radio-button :label="null">全部</el-radio-button>
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
|
||||
<honor-apply-table :loading="tableLoading" :page="pageForm" :data="tableData"
|
||||
ref="hat"
|
||||
@order="pageOrder">
|
||||
|
||||
<template #vi-title>
|
||||
<vi-title title="申请列表"></vi-title>
|
||||
</template>
|
||||
|
||||
|
||||
<template #column>
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" @click="openView(row)">
|
||||
查看
|
||||
</el-button>
|
||||
<el-button size="mini" @click="openEdit(row)" type="primary" :disabled="row.stateId>1600">
|
||||
审核
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
|
||||
<template #pagination>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</template>
|
||||
|
||||
|
||||
</honor-apply-table>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<honor-info ref="info2" :handle="true" label="院级工会审核" :panes="[3]">
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0"
|
||||
label-width="120px">
|
||||
<el-form-item label="审核信息 " label-width="135px" class="view-header">
|
||||
</el-form-item>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="time" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doReview(false)">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doReview(true)">通
|
||||
过
|
||||
</el-button>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
</honor-info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<honor-info ref="info"></honor-info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
units: [],
|
||||
unions: [],
|
||||
honorLevelList: [],
|
||||
honorTypeList: [],
|
||||
pageForm: {
|
||||
year: new Date().getFullYear() + "",
|
||||
isAudit: false,
|
||||
searchName: 'us.username',
|
||||
honorType: '',
|
||||
honorLevel: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'honor-apply-table': httpVueLoader('/components/honor/honorApplyTable.vue'),
|
||||
'honor-info': httpVueLoader('/components/honor/honorInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'edit') {
|
||||
this.openEdit(data)
|
||||
}
|
||||
},
|
||||
async doReview(flag) {
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.getHonorNum()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
openView(data) {
|
||||
this.$refs.info.getInfo(data.id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
openEdit(data) {
|
||||
this.formData = {
|
||||
id: data.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
|
||||
this.$refs.info2.getInfo(data.id)
|
||||
this.$refs.guava.edit()
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
},
|
||||
async flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", "")
|
||||
if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}" === 'true') {
|
||||
this.units = await getUnits(this.pageForm.unionId)
|
||||
} else {
|
||||
this.units = await getUnits("${@shiro.getPrincipalProperty('unit').getUnionid()}")
|
||||
}
|
||||
},
|
||||
async getHonorNum() {
|
||||
const honorNum = await HonorApi.getHonorNum(1600)
|
||||
this.honorTypeList.map(v => {
|
||||
if (v.code === "H1100") {
|
||||
v.num = honorNum.gr
|
||||
} else {
|
||||
v.num = honorNum.jt
|
||||
}
|
||||
})
|
||||
this.$forceUpdate();
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.honorLevelList = await HonorApi.getHonorLevel()
|
||||
this.honorTypeList = await HonorApi.getHonorType()
|
||||
if (this.honorTypeList) {
|
||||
await this.getHonorNum()
|
||||
this.$set(this.pageForm, "honorType", this.honorTypeList[0].id)
|
||||
}
|
||||
this.unions = await getUnions(null)
|
||||
this.flushUnits()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,235 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
|
||||
<el-card shadow="never">
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<div class="block">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-select v-model="pageForm.honorLevel" placeholder="请选择级别" style="width: 200px"
|
||||
@change="doSearch"
|
||||
clearable>
|
||||
<el-option v-for="o in honorLevelList"
|
||||
:key="o.id"
|
||||
:label="o.name"
|
||||
:value="o.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button" v-if="pageForm.honorType=='101'">
|
||||
<div>
|
||||
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword" clearable>
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
style="width: 100px;">
|
||||
<el-option label="工号" value="us.loginname"></el-option>
|
||||
<el-option label="姓名" value="us.username"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-radio-group v-model="pageForm.honorType" @change="doSearch">
|
||||
<el-radio-button v-for="v in honorTypeList" :label="v.id">{{v.name}}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
|
||||
</div>
|
||||
<div class="pull-right offscreen-right mt5">
|
||||
|
||||
<el-radio-group v-model="pageForm.isAudit" @change="doSearch">
|
||||
<el-radio-button :label="null">全部</el-radio-button>
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
|
||||
<honor-apply-table :loading="tableLoading" :page="pageForm" :data="tableData"
|
||||
ref="hat"
|
||||
@order="pageOrder">
|
||||
|
||||
<template #vi-title>
|
||||
<vi-title title="申请列表"></vi-title>
|
||||
</template>
|
||||
|
||||
|
||||
<template #column>
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" @click="openView(row)">
|
||||
查看
|
||||
</el-button>
|
||||
<el-button size="mini" @click="openEdit(row)" type="primary" :disabled="row.stateId!=1500">
|
||||
审核
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
|
||||
<template #pagination>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</template>
|
||||
|
||||
|
||||
</honor-apply-table>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<honor-info ref="info2" :handle="true" label="单位审核" :panes="[2]">
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0"
|
||||
label-width="120px">
|
||||
<el-form-item label="审核信息 " label-width="135px" class="view-header">
|
||||
</el-form-item>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="username" label="审核人员">
|
||||
<el-input v-model="formData.username"
|
||||
disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="time" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
<el-form-item prop="opinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doReview(false)">拒
|
||||
绝
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doReview(true)">通
|
||||
过
|
||||
</el-button>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
</honor-info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<honor-info ref="info"></honor-info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
units: [],
|
||||
unions: [],
|
||||
honorLevelList: [],
|
||||
honorTypeList: [],
|
||||
pageForm: {
|
||||
year: new Date().getFullYear() + "",
|
||||
isAudit: false,
|
||||
searchName: 'us.username',
|
||||
honorType: '',
|
||||
honorLevel: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'honor-apply-table': httpVueLoader('/components/honor/honorApplyTable.vue'),
|
||||
'honor-info': httpVueLoader('/components/honor/honorInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'edit') {
|
||||
this.openEdit(data)
|
||||
}
|
||||
},
|
||||
async doReview(flag) {
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
if (resp.code===0){
|
||||
this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
openView(data) {
|
||||
this.$refs.info.getInfo(data.id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
openEdit(data) {
|
||||
this.formData = {
|
||||
id: data.id,
|
||||
username: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
|
||||
this.$refs.info2.getInfo(data.id)
|
||||
this.$refs.guava.edit()
|
||||
if (this.$refs['form']) {
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.honorLevelList = await HonorApi.getHonorLevel()
|
||||
const honorTypeList = await HonorApi.getHonorType()
|
||||
|
||||
if (honorTypeList) {
|
||||
this.honorTypeList = honorTypeList.filter(v => v.code === "H1100")
|
||||
this.$set(this.pageForm, "honorType", this.honorTypeList[0].id)
|
||||
}
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,289 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.v-tree-layout-left .v-tree {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.v-tree-layout-left .custom-tree-node {
|
||||
width: 90%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.v-tree-layout-left .v-tree .v-node {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.v-tree-layout-left .v-tree {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.v-tree-layout-left .custom-tree-node {
|
||||
width: 90%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.v-tree-layout-left .v-tree .v-node {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<tree-layout>
|
||||
<template #tree>
|
||||
<div style="padding: 20px;">
|
||||
<el-input
|
||||
placeholder="输入关键字进行查找"
|
||||
v-model="filterText">
|
||||
</el-input>
|
||||
</div>
|
||||
<el-tree ref="tree"
|
||||
:data="treeData"
|
||||
node-key="id"
|
||||
:props="defaultProps"
|
||||
:default-expanded-keys="defaultExpandedKeys"
|
||||
:expand-on-click-node="false"
|
||||
accordion
|
||||
highlight-current
|
||||
@node-click="nodeClick"
|
||||
:filter-node-method="filterNode">
|
||||
<div class="custom-tree-node" slot-scope="{ node, data }">
|
||||
<div v-if="node.level==1" style="font-size: 16px;" class="v-node"><i
|
||||
class="el-icon-s-home"></i>
|
||||
{{ data.name }}
|
||||
</div>
|
||||
<div v-if="node.level==2"
|
||||
style="font-size: 15px" :title="data.name" class="v-node">
|
||||
<i class="el-icon-star-on" v-if="chooseNode.name==data.name"></i>
|
||||
<i class="el-icon-star-off" v-else></i>
|
||||
{{ data.name }}
|
||||
</div>
|
||||
|
||||
|
||||
<div v-if="node.level>=3"
|
||||
style="font-size: 14px" :title="data.name" class="v-node">
|
||||
<i class="fa fa-dot-circle-o" v-if="chooseNode.name==data.name"></i>
|
||||
<i class="fa fa-circle-o" v-else></i>
|
||||
{{ data.name }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</el-tree>
|
||||
</template>
|
||||
<template>
|
||||
<el-card class="text-right" shadow="never">
|
||||
<el-button size="medium" type="primary"
|
||||
@click="openAddBasicType">
|
||||
新建基础类型
|
||||
<i class="el-icon-plus"></i>
|
||||
</el-button>
|
||||
</el-card>
|
||||
<el-card shadow="never" class="mt10">
|
||||
<el-table :data="tableData" ref="table" :height="tableHeight">
|
||||
<el-table-column label="序号" type="index" sortable></el-table-column>
|
||||
<el-table-column prop="name" align="center" label="名称"></el-table-column>
|
||||
<el-table-column prop="code" align="center" label="代码"></el-table-column>
|
||||
<el-table-column prop="level" align="center" label="等级"
|
||||
sortable
|
||||
v-if="honor_type_id.includes(chooseNode.id)">
|
||||
<template slot-scope="{row}">
|
||||
{{row.level?honorLevelList.find(v=>v.id === row.level).name:''}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="操作" width="200px">
|
||||
<template scope="{row}">
|
||||
<el-button type="primary" size="mini" @click="openEditType(row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button size="mini" @click="doDelete(row)" type="danger"
|
||||
v-if="!HonorApi.disabledIds.includes(row.id)">
|
||||
删除
|
||||
</el-button>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</template>
|
||||
</tree-layout>
|
||||
|
||||
<el-dialog :visible.sync="basicTypeDialogVisible" width="40%" title="基础类型" :close-on-click-modal="false">
|
||||
<el-form :model="formData" ref="basicForm" :rules="rules" label-width="80">
|
||||
<el-row gutter="30">
|
||||
<el-form-item label="上级名称" prop="parentName" v-if="submitType==='add'">
|
||||
<el-input maxlength="100" disabled v-model="formData.parentName"
|
||||
type="text"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input maxlength="100" placeholder="请输入基础类型名称" v-model="formData.name"
|
||||
type="text"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="代码" prop="code">
|
||||
<el-input maxlength="100" placeholder="请输入基础类型名称" v-model="formData.code"
|
||||
type="text"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="荣誉等级" prop="level"
|
||||
v-if="honor_type_id.includes(chooseNode.id)">
|
||||
<el-radio-group v-model="formData.level">
|
||||
<el-radio-button v-for="o in honorLevelList" :key="o.id"
|
||||
:label="o.id">{{o.name}}
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="el-dialog__footer">
|
||||
<el-button type="primary" @click="doSubmit">提交
|
||||
</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
const honor_type_id = ['6b9e26a9467f49ae88fbd3951377e0f8', '8a8b455b964a41f2bbf18a4896cbd83e']
|
||||
const honor_level_id = '3c1058afc91b4e69be46c585b1a48191'
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
honor_type_id: ['6b9e26a9467f49ae88fbd3951377e0f8', '8a8b455b964a41f2bbf18a4896cbd83e'],
|
||||
honor_level_id: "3c1058afc91b4e69be46c585b1a48191",
|
||||
defaultExpandedKeys: ['1'],
|
||||
basicTypeDialogVisible: false,
|
||||
filterText: '',
|
||||
treeData: [],
|
||||
defaultProps: {
|
||||
children: 'child',
|
||||
label: 'name',
|
||||
},
|
||||
chooseNode: {},
|
||||
formData: {},
|
||||
rules: {
|
||||
name: [{required: true, message: '必填', trigger: ['change', 'blur']}],
|
||||
code: [{required: true, message: '必填', trigger: ['change', 'blur']}]
|
||||
},
|
||||
submitType: 'add',
|
||||
tableData: [],
|
||||
honorLevelList: [],
|
||||
tableHeight: null
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
},
|
||||
},
|
||||
components: {
|
||||
'tree-layout': httpVueLoader('/components/plugins/TreeLayout.vue')
|
||||
},
|
||||
methods: {
|
||||
filterNode(value, data, node) {
|
||||
if (!value) return true;
|
||||
return data.name.indexOf(value) !== -1
|
||||
},
|
||||
openEditType(row) {
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
name: row.name,
|
||||
code: row.code,
|
||||
level: row.level
|
||||
}
|
||||
this.basicTypeDialogVisible = true
|
||||
this.submitType = 'edit'
|
||||
},
|
||||
doDelete({id}) {
|
||||
this.$confirm('确定要删除该机构吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a) => {
|
||||
if ("confirm" === a) {
|
||||
const resp = await $.post(loc() + "/doDelete", {id: id})
|
||||
if(resp.code===0){
|
||||
this.$notify.success({title: '成功', message: resp.msg});
|
||||
this.getTree(false)
|
||||
}else{
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
async getTree(changeNode = false) {
|
||||
const res = await $.get('/platform/honor/basic/settings/getTree')
|
||||
if (res.code === 0) {
|
||||
this.treeData = res.data
|
||||
if (changeNode) {
|
||||
this.chooseNode = res.data[0]
|
||||
}
|
||||
await this.getData()
|
||||
} else {
|
||||
this.$notify.error({message: res.msg, title: '失败'})
|
||||
}
|
||||
},
|
||||
openAddBasicType() {
|
||||
this.basicTypeDialogVisible = true
|
||||
this.formData = {
|
||||
parentId: this.chooseNode.id,
|
||||
parentName: this.chooseNode.name,
|
||||
name: '',
|
||||
code: '',
|
||||
level: honor_type_id.includes(this.chooseNode.id) ? this.honorLevelList[0].id : null
|
||||
}
|
||||
this.submitType = 'add'
|
||||
},
|
||||
doSubmit() {
|
||||
this.$refs["basicForm"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
const res_data = await $.post('/platform/honor/basic/settings/doSubmit', this.formData)
|
||||
if (res_data.code === 0) {
|
||||
this.$message.success('操作成功')
|
||||
this.basicTypeDialogVisible = false
|
||||
await this.getTree(false)
|
||||
} else {
|
||||
this.$message.warning('操作失败')
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
nodeClick(data) {
|
||||
this.chooseNode = data
|
||||
this.getData()
|
||||
},
|
||||
async getData() {
|
||||
const res_data = await $.get('/platform/honor/basic/settings/getData', {parentId: this.chooseNode.id})
|
||||
this.tableData = res_data.data
|
||||
},
|
||||
async getHonorLevelData() {
|
||||
const res_data = await $.get('/platform/honor/basic/settings/getData', {parentId: honor_level_id})
|
||||
this.honorLevelList = res_data.data
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
await this.getTree(true)
|
||||
await this.getHonorLevelData()
|
||||
this.$nextTick(() => {
|
||||
this.tableHeight = window.innerHeight - this.$refs.table.$el.children[2].getBoundingClientRect().top
|
||||
window.onresize = () => {
|
||||
this.tableHeight = window.innerHeight - this.$refs.table.$el.children[2].getBoundingClientRect().top
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,190 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never" style="height: 100%">
|
||||
<template #header>
|
||||
<h3>数据导入</h3>
|
||||
<el-row type="flex" justify="end" class="">
|
||||
<el-select v-model="lx" class="mr10"
|
||||
placeholder="请选择导入类型">
|
||||
<el-option
|
||||
v-for="item in lxOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-button @click="doRead" icon="el-icon-upload2" type="primary">导入</el-button>
|
||||
<el-button @click="doTemplate" icon="el-icon-download" type="primary">下载模板</el-button>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-upload
|
||||
name="file"
|
||||
ref="upload"
|
||||
:limit="1"
|
||||
action="/platform/honor/batchHonor/readExcel"
|
||||
:on-success="onSuccess"
|
||||
:on-remove="onRemove"
|
||||
:on-progress="onProgress"
|
||||
:before-upload="beforeUpload"
|
||||
drag
|
||||
:file-list="fileList" style="width: 100%;text-align: center">
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
</el-upload>
|
||||
|
||||
<el-table :data="tableData" :height="tableHeight" ref="table">
|
||||
<el-table-column type="index" width="50" label="序号" fixed></el-table-column>
|
||||
<template v-if="lx==1">
|
||||
<el-table-column property="userName" label="姓名" width="100px"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column property="userSex" label="性别" width="100px"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column property="birthday" label="生日" width="100px" align="center" show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column property="political" label="政治面貌" align="center" show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column property="post" label="担任工会职务" align="center" show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column property="joinTime" label="加入工会时间" align="center" show-overflow-tooltip
|
||||
></el-table-column>
|
||||
<el-table-column property="jobStatus" label="在职状态" width="100px" align="center"
|
||||
></el-table-column>
|
||||
<el-table-column property="prize" label="奖项" align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="grantUnit" align="center" label="授予单位" width="200px"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="grantDate" align="center" label="授予时间" width="100px"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="awardMaterialsExcel" align="center" label="获奖材料"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
</template>
|
||||
|
||||
<div v-if="lx==2">
|
||||
<el-table-column property="applyUnionName" label="申报院级工会" width="200px" align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="unionLeader" label="工会主席" align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="memberNumber" label="会员人数" align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="unionGroupNumber" label="工会小组数" align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="prize" label="奖项" align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="grantUnit" align="center" label="授予单位" width="200px"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="grantDate" align="center" label="授予时间"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="gameName" label="参加比赛名称" width="200px" align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column property="awardMaterialsExcel" align="center" label="获奖材料"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
</div>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
lx: 1,
|
||||
lxOptions: [{
|
||||
value: 1,
|
||||
label: '个人荣誉'
|
||||
}, {
|
||||
value: 2,
|
||||
label: '集体荣誉',
|
||||
}],
|
||||
fileList: [],
|
||||
tableData: [],
|
||||
file: {},
|
||||
tableHeight: null,
|
||||
loading: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async doTemplate() {
|
||||
if (this.lx == "") {
|
||||
this.$notify.warning({title: '警告', message: "请选择下载模板类型"});
|
||||
return
|
||||
}
|
||||
window.open(loc() + "/doTemplate?lx=" + this.lx)
|
||||
},
|
||||
async doRead() {
|
||||
if (![1, 2].includes(this.lx)) {
|
||||
this.$notify.warning({title: '警告', message: "请选择导入类型"});
|
||||
return
|
||||
}
|
||||
if (this.tableData == [] || this.tableData.length === 0) {
|
||||
this.$notify.warning({title: '警告', message: "请上传数据"});
|
||||
return
|
||||
}
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在提交...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
});
|
||||
const resp = await $.post(loc() + "/doRead", {data: JSON.stringify(this.tableData), lx: this.lx})
|
||||
if(resp.code===0){
|
||||
this.tableData = []
|
||||
this.fileList = []
|
||||
this.lx = 1
|
||||
this.$notify.success({title: '成功', message: resp.msg});
|
||||
}else{
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
}
|
||||
loading.close()
|
||||
|
||||
},
|
||||
beforeUpload() {
|
||||
|
||||
},
|
||||
onRemove() {
|
||||
this.tableData = []
|
||||
},
|
||||
onProgress(event) {
|
||||
this.loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在提交...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
});
|
||||
},
|
||||
onSuccess(resp, file, fileList) {
|
||||
if (resp.code == 0) {
|
||||
this.tableData = resp.data
|
||||
} else {
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
this.fileList = []
|
||||
}
|
||||
this.loading.close()
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
created() {
|
||||
this.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
this.tableHeight = window.innerHeight - this.$refs.table.$el.children[2].getBoundingClientRect().top
|
||||
window.onresize = () => {
|
||||
this.tableHeight = window.innerHeight - this.$refs.table.$el.children[2].getBoundingClientRect().top
|
||||
}
|
||||
}, 100)
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,218 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<el-card shadow="never">
|
||||
<el-date-picker
|
||||
v-model="startYear"
|
||||
value-format="yyyy"
|
||||
type="year"
|
||||
placeholder="开始年份">
|
||||
</el-date-picker>
|
||||
<span>至</span>
|
||||
<el-date-picker
|
||||
v-model="endYear"
|
||||
value-format="yyyy"
|
||||
type="year"
|
||||
placeholder="结束年份">
|
||||
</el-date-picker>
|
||||
<el-button icon="el-icon-search" type="primary" @click="doFilter"></el-button>
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<template #header>
|
||||
<el-row type="flex">
|
||||
<el-col :span="12">
|
||||
<vi-title title="年度获奖趋势"></vi-title>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<div id="honor_type_box"></div>
|
||||
</el-card>
|
||||
|
||||
<el-row :gutter="20" class="mt10" type="flex">
|
||||
<el-col :span="12">
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<vi-title title="个人荣誉奖项"></vi-title>
|
||||
</template>
|
||||
<div id="single_honor_type_box"></div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<vi-title title="个人荣誉奖项级别"></vi-title>
|
||||
</template>
|
||||
<div id="single_honor_level_box"></div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</guava>
|
||||
</div>
|
||||
<script>
|
||||
let linePlot = null
|
||||
let singleHonorTypePlot = null
|
||||
let singleLevelTypePlot = null
|
||||
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
startYear: null,
|
||||
endYear: null,
|
||||
honorTypeList: [],
|
||||
singleHonorList: [],
|
||||
singleLevelList: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getHonorTypeByYear() {
|
||||
const resp_data = await $.get('/platform/honor/board/getHonorTypeByYear')
|
||||
if(resp_data.code===0){
|
||||
this.honorTypeList = resp_data.data
|
||||
}
|
||||
},
|
||||
renderHonorTypeByYear(data) {
|
||||
console.log(data)
|
||||
|
||||
// data = [{
|
||||
// name: "集体荣誉",
|
||||
// num: 4,
|
||||
// year: 2022
|
||||
// },{
|
||||
// name: "个人荣誉",
|
||||
// num:10,
|
||||
// year: 2022
|
||||
// }]
|
||||
|
||||
if (linePlot) {
|
||||
linePlot.changeData(data)
|
||||
} else {
|
||||
linePlot = new G2Plot.Line('honor_type_box', {
|
||||
data,
|
||||
xField: 'year',
|
||||
yField: 'num',
|
||||
seriesField: 'name',
|
||||
legend: {
|
||||
position: 'top',
|
||||
},
|
||||
smooth: true,
|
||||
});
|
||||
linePlot.render()
|
||||
}
|
||||
},
|
||||
|
||||
async getSingleHonorByYear() {
|
||||
const resp_data = await $.get('/platform/honor/board/getSingleHonorByYear')
|
||||
if(resp_data.code===0){
|
||||
this.singleHonorList = resp_data.data
|
||||
}
|
||||
},
|
||||
renderSingleHonorByYear(data) {
|
||||
if (singleHonorTypePlot) {
|
||||
singleHonorTypePlot.changeData(data)
|
||||
} else {
|
||||
singleHonorTypePlot = new G2Plot.Pie('single_honor_type_box', {
|
||||
appendPadding: 10,
|
||||
data,
|
||||
angleField: 'num',
|
||||
colorField: 'name',
|
||||
radius: 0.9,
|
||||
label: {
|
||||
type: 'inner',
|
||||
offset: '-30%',
|
||||
content: ({percent}) => (percent * 100).toFixed(0) + "%",
|
||||
style: {
|
||||
fontSize: 14,
|
||||
textAlign: 'center',
|
||||
},
|
||||
},
|
||||
interactions: [{type: 'element-active'}],
|
||||
})
|
||||
singleHonorTypePlot.render()
|
||||
}
|
||||
},
|
||||
|
||||
async getSingleLevelByYear() {
|
||||
const resp_data = await $.get('/platform/honor/board/getSingleLevelByYear')
|
||||
if(resp_data.code===0){
|
||||
this.singleLevelList = resp_data.data
|
||||
}
|
||||
},
|
||||
renderSingleLevelByYear(data) {
|
||||
if (singleLevelTypePlot) {
|
||||
singleLevelTypePlot.changeData(data)
|
||||
} else {
|
||||
singleLevelTypePlot = new G2Plot.Column('single_honor_level_box', {
|
||||
data,
|
||||
xField: 'name',
|
||||
yField: 'num',
|
||||
position: 'middle',
|
||||
columnStyle: {
|
||||
radius: [20, 20, 0, 0],
|
||||
},
|
||||
})
|
||||
singleLevelTypePlot.render()
|
||||
}
|
||||
},
|
||||
|
||||
doFilter() {
|
||||
if (this.startYear == null) {
|
||||
this.notifyWarning('请输入开始年份')
|
||||
return
|
||||
}
|
||||
if (this.endYear == null) {
|
||||
this.notifyWarning('请输入结束年份')
|
||||
return
|
||||
}
|
||||
if (parseInt(this.startYear) > parseInt(moment().format('YYYY'))) {
|
||||
this.notifyWarning('开始年份不能大于当前年份')
|
||||
return
|
||||
}
|
||||
if (parseInt(this.endYear) > parseInt(moment().format('YYYY'))) {
|
||||
this.notifyWarning('结束年份不能大于当前年份')
|
||||
return
|
||||
}
|
||||
if (parseInt(this.startYear) > parseInt(this.endYear)) {
|
||||
this.notifyWarning('开始年份不能大于结束年份')
|
||||
return
|
||||
}
|
||||
|
||||
const startYear = parseInt(this.startYear)
|
||||
const endYear = parseInt(this.endYear)
|
||||
|
||||
const htl = this.honorTypeList.filter(v => {
|
||||
return startYear <= v.year && v.year <= endYear
|
||||
})
|
||||
console.log(htl)
|
||||
this.renderHonorTypeByYear(htl)
|
||||
|
||||
const shl = this.singleHonorList.filter(v => {
|
||||
return startYear <= v.year && v.year <= endYear
|
||||
})
|
||||
this.renderSingleHonorByYear(shl)
|
||||
|
||||
const sll = this.singleLevelList.filter(v => {
|
||||
return startYear <= v.year && v.year <= endYear
|
||||
})
|
||||
this.renderSingleLevelByYear(sll)
|
||||
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.startYear = (parseInt(moment().format('YYYY')) - 10).toString()
|
||||
this.endYear = moment().format('YYYY')
|
||||
await this.getHonorTypeByYear()
|
||||
await this.getSingleHonorByYear()
|
||||
await this.getSingleLevelByYear()
|
||||
this.doFilter()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,75 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button">
|
||||
<div class="block">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="年度"
|
||||
@change="honorLevelData">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable="true" @change="honorLevelData">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt20">
|
||||
<el-table :data="tableData">
|
||||
<el-table-column type="index" label="序号"></el-table-column>
|
||||
<el-table-column property="unionname" label="工会" sortable align="center"></el-table-column>
|
||||
<el-table-column property="nationalLevelNum" label="国家级" sortable align="center"></el-table-column>
|
||||
<el-table-column property="provincialNum" label="省部级" sortable align="center"></el-table-column>
|
||||
<el-table-column property="schoolLevelNum" label="校内级" sortable align="center"></el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</guava>
|
||||
</div>
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
unions: [],
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
honorLevelData() {
|
||||
sublime.showLoadingbar();
|
||||
this.tableLoading = true
|
||||
$.post("/platform/honor/Summary/honorLevelData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tableLoading = false
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data;
|
||||
} else {
|
||||
this.$message.error(data.msg);
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.unions = await getUnions()
|
||||
this.honorLevelData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,405 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.el-select, .el-date-editor {
|
||||
width: 100% !important;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="授予年度">
|
||||
</el-date-picker>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-select v-model="pageForm.honorType"
|
||||
placeholder="请选择荣誉类型"
|
||||
@change="honorTypeChange">
|
||||
<el-option v-for="o in honorTypeList"
|
||||
:key="o.id"
|
||||
:label="o.name"
|
||||
:value="o.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6">
|
||||
<el-select v-model="pageForm.prize"
|
||||
filterable
|
||||
placeholder="请选择荣誉奖项"
|
||||
clearable>
|
||||
<el-option v-for="o in honorPrizeList"
|
||||
:key="o.id"
|
||||
:label="o.name"
|
||||
:value="o.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6">
|
||||
<el-select v-model="pageForm.honorLevel"
|
||||
placeholder="请选择荣誉级别"
|
||||
clearable>
|
||||
<el-option v-for="o in honorLevelList"
|
||||
:key="o.id"
|
||||
:label="o.name"
|
||||
:value="o.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row type="flex" class="mt15" :gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-input v-model="pageForm.userName">
|
||||
<template slot="prepend">姓名</template>
|
||||
</el-input>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-select v-model="pageForm.unionName"
|
||||
placeholder="请选择获奖工会"
|
||||
@change="doSearch"
|
||||
clearable>
|
||||
<el-option v-for="o in unionList"
|
||||
:key="o.id"
|
||||
:label="o.unionname"
|
||||
:value="o.unionname"
|
||||
></el-option>
|
||||
</el-select>
|
||||
|
||||
<!-- <el-input v-model="pageForm.unionName">-->
|
||||
<!-- <template slot="prepend">获奖工会</template>-->
|
||||
<!-- </el-input>-->
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-button type="primary" icon="el-icon-search" @click="doSearch"></el-button>
|
||||
<el-button type="primary" icon="el-icon-search" @click="doExport">导出</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt20">
|
||||
<vi-title title="荣誉列表"></vi-title>
|
||||
<el-table :data="tableData">
|
||||
<el-table-column label="序号" type="index" header-align="center" align="center"
|
||||
width="50"></el-table-column>
|
||||
<template v-if="pageForm.honorType===HonorApi.honor_single_id">
|
||||
<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>
|
||||
</template>
|
||||
<template v-if="pageForm.honorType===HonorApi.honor_list_id">
|
||||
<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>
|
||||
</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="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 align="center" header-align="center" label="操作" fixed="right" width="100px">
|
||||
<template scope="{row}">
|
||||
<el-dropdown @command="dropdownCommand">
|
||||
<el-button plain size="mini">
|
||||
<i class="ti-settings"></i>
|
||||
<span class="ti-angle-down"></span>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item :command="{type:'view',row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
|
||||
<!--#if(@shiro.hasRole('sysadmin')){#-->
|
||||
<el-dropdown-item :command="{type:'edit',row}">
|
||||
编辑
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'delete',row}">
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
<!--#}#-->
|
||||
|
||||
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
<template #view>
|
||||
<el-form label-suffix=":" label-position="left" style="padding: 20px 0">
|
||||
<vi-title title="基础信息"></vi-title>
|
||||
<el-row gutter="20" v-if="viewData.honorType===HonorApi.honor_single_id">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="获奖姓名">
|
||||
{{ viewData.userName }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="申请人性别">
|
||||
{{ viewData.userSex }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="在职状态">
|
||||
{{ viewData.jobStatus }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="所属单位">
|
||||
{{ viewData.unitName }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="所属工会">
|
||||
{{ viewData.unionName }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6">
|
||||
<el-form-item label="担任工会职务">
|
||||
{{ viewData.post }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="职称">
|
||||
{{ viewData.title }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="生日">
|
||||
{{ viewData.birthday }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="政治面貌">
|
||||
{{ viewData.political }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="加入工会时间">
|
||||
{{ viewData.joinTime }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row gutter="20" v-else>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="申报院级工会">
|
||||
{{ viewData.applyUnionName }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="工会主席">
|
||||
{{ viewData.unionLeader }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="会员人数">
|
||||
{{ viewData.memberNumber }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="工会小组数">
|
||||
{{ viewData.unionGroupNumber }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!--<el-col :span="6">
|
||||
<el-form-item label="单位负责人">
|
||||
{{ viewData.unitLeader }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="单位人数">
|
||||
{{ viewData.unitPeopleNum }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="单位女职工人数">
|
||||
{{ viewData.unitFemalePeopleNum }}
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
<vi-title title="获奖信息"></vi-title>
|
||||
<el-row gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="奖项">
|
||||
{{ viewData.prizeName }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!--<el-col :span="6">
|
||||
<el-form-item label="奖项说明">
|
||||
{{ viewData.prizeDesc }}
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
<el-col :span="6">
|
||||
<el-form-item label="级别">
|
||||
{{ viewData.levelName }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="授予单位">
|
||||
{{ viewData.grantUnit }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="授予时间">
|
||||
{{ viewData.grantDate }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!--<el-col :span="6">
|
||||
<el-form-item label="存档情况">
|
||||
{{ viewData.archiveStatus }}
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
<el-col :span="6">
|
||||
<el-form-item label="获奖材料">
|
||||
{{ viewData.awardMaterialsExcel }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<vi-title title="附件"></vi-title>
|
||||
<el-row gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="user_name" label="附  件">
|
||||
<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>
|
||||
</el-row>
|
||||
|
||||
|
||||
</el-form>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
viewData: {},
|
||||
pageForm: {
|
||||
year: "",
|
||||
honorType: "",
|
||||
prize: "",
|
||||
honorLevel: "",
|
||||
userName: "",
|
||||
unitName: ""
|
||||
},
|
||||
honorTypeList: [],
|
||||
honorLevelList: [],
|
||||
honorAwardList: [],
|
||||
honorPrizeList: [],
|
||||
unionList:[],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
},
|
||||
methods: {
|
||||
dropdownCommand(command) {
|
||||
const {type, row} = command
|
||||
if (type === 'edit') {
|
||||
this.openEdit(row)
|
||||
} else if (type === 'delete') {
|
||||
this.doDelete(row)
|
||||
} else if (type === 'view') {
|
||||
this.openView(row)
|
||||
}
|
||||
},
|
||||
openView(row) {
|
||||
if(row.files) {
|
||||
row.files = JSON.parse(row.files)
|
||||
}
|
||||
this.viewData = row
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
doExport() {
|
||||
const {year, honorType, prize, honorLevel, userName, unitName} = this.pageForm
|
||||
window.location.href = "/platform/honor/manage/doExport?year="
|
||||
+ year + "&honorType=" + honorType
|
||||
+ "&prize=" + prize
|
||||
+ "&honorLevel=" + honorLevel
|
||||
+ "&userName" + userName
|
||||
+ "&unitName" + unitName
|
||||
},
|
||||
openEdit(row) {
|
||||
window.location.href = "/platform/honor/registration?id=" + row.id
|
||||
},
|
||||
async doDelete(row) {
|
||||
const {id} = row
|
||||
const confirm = await this.$confirm('确定要删除该记录吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if ("confirm" === confirm) {
|
||||
this.$set(row, "loading", true)
|
||||
const resp = await $.post(loc() + "/doDelete", {id: id});
|
||||
if (resp.code === 0) {
|
||||
this.$notify.success({title: '成功', message: resp.msg});
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
}
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
this.honorTypeList = await HonorApi.getHonorType()
|
||||
if (this.honorTypeList) {
|
||||
this.$set(this.pageForm, "honorType", this.honorTypeList[0].id)
|
||||
this.honorPrizeList = await HonorApi.getHonorPrize(this.pageForm.honorType)
|
||||
}
|
||||
this.honorLevelList = await HonorApi.getHonorLevel()
|
||||
this.honorAwardList = await HonorApi.getHonorAwardType()
|
||||
this.unionList = await getUnions();
|
||||
}
|
||||
,
|
||||
async honorTypeChange(val) {
|
||||
this.honorPrizeList = await HonorApi.getHonorPrize(val)
|
||||
this.doSearch()
|
||||
}
|
||||
,
|
||||
},
|
||||
async created() {
|
||||
await this.initData()
|
||||
await this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,470 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<h3 style="color: #1867b0">{{isEdit?'修改登记':'荣誉登记'}}</h3>
|
||||
</template>
|
||||
<el-form :model="formData" label-width="120px">
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="荣誉类型" prop="honorType">
|
||||
<el-select v-model="formData.honorType" @change="honorTypeChange">
|
||||
<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>
|
||||
</el-row>
|
||||
<el-collapse v-model="collapse">
|
||||
<el-collapse-item title="" name="basic">
|
||||
<template slot="title">
|
||||
<div class="text-primary" style="width: 100%">
|
||||
基础信息
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="formData.honorType===HonorApi.honor_single_id">
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12" prop="userId">
|
||||
<el-form-item label="姓名" v-if="isEdit" prop="userName">
|
||||
<el-input v-model="formData.userName" readonly></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item v-else prop="userId" label="姓名">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.userId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查找"
|
||||
:remote-method="userRemoteMethod"
|
||||
:loading="userLoading"
|
||||
@change="userChange">
|
||||
<el-option
|
||||
v-for="item in userOptions"
|
||||
:key="item.id"
|
||||
:label="item.username+'('+item.loginname+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="性别" prop="userSex">
|
||||
<el-radio-group v-model="formData.userSex">
|
||||
<el-radio-button label="男"></el-radio-button>
|
||||
<el-radio-button label="女"></el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属单位" prop="unitId">
|
||||
<el-select placeholder="所属单位" v-model="formData.unitId" clearable
|
||||
style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in units"
|
||||
:label="item.name"
|
||||
:value="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="true"
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions"
|
||||
:label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<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="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="政治面貌" prop="political">
|
||||
<el-input v-model="formData.political"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="在职状态" prop="jobStatus">
|
||||
<el-input v-model="formData.jobStatus"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="职称" prop="title">
|
||||
<el-input v-model="formData.title"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
|
||||
<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="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="担任工会职务" prop="post">
|
||||
<el-input v-model="formData.post"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-row type="flex">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申报院级工会" prop="unionId">
|
||||
<el-select placeholder="请选择申报院级工会" v-model="formData.unionId"
|
||||
style="width: 100%;"
|
||||
disabled
|
||||
clearable="true"
|
||||
filterable
|
||||
@change="searchUnionInfo(formData.unionId)">
|
||||
<el-option v-for="item in unions"
|
||||
:label="item.unionname"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工会主席" prop="unionLeader">
|
||||
<el-input v-model="formData.unionLeader"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
<el-row type="flex">
|
||||
<!--<el-col :span="8">
|
||||
<el-form-item label="单位负责人" prop="unitLeader">
|
||||
<el-input v-model="formData.unitLeader"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单位人数" prop="unitPeopleNum">
|
||||
<el-input-number v-model="formData.unitPeopleNum" :min="0"
|
||||
:max="2000" style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="女职工人员" prop="unitFemalePeopleNum">
|
||||
<el-input-number
|
||||
v-model.number="formData.unitFemalePeopleNum" :min="0"
|
||||
:max="2000" style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</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-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工会小组数" prop="unionGroupNumber">
|
||||
<el-input-number v-model="formData.unionGroupNumber" :min="0"
|
||||
:max="2000" style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item title="获奖信息" name="prize">
|
||||
<template slot="title">
|
||||
<div class="text-primary" style="width: 100%">
|
||||
获奖信息
|
||||
</div>
|
||||
</template>
|
||||
<template>
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="奖项" prop="prize">
|
||||
<el-select v-model="formData.prize">
|
||||
<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>
|
||||
<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>
|
||||
<!--<el-col :span="12">
|
||||
<el-form-item label="奖项说明" prop="prizeDesc">
|
||||
<el-input v-model="formData.prizeDesc" maxlength="100"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="授予单位" prop="grantUnit">
|
||||
<el-input v-model="formData.grantUnit"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<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="选择日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12" v-if="formData.honorType==HonorApi.honor_list_id">
|
||||
<el-form-item label="参加比赛名称" prop="gameName">
|
||||
<el-input v-model="formData.gameName" maxlength="100"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="级别">
|
||||
<el-select v-model="formData.honorLevel" placeholder="">
|
||||
<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>
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" :gutter="20">
|
||||
<!--<el-col :span="12">
|
||||
<el-form-item label="存档情况" prop="archiveStatus">
|
||||
<el-input v-model="formData.archiveStatus"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
|
||||
</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>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
|
||||
</el-form>
|
||||
<el-row class="m20 text-right">
|
||||
<el-button v-if="GetQueryString('id') !== ''" @click="doBack">返回</el-button>
|
||||
<el-button type="primary" @click="doSubmit">提交</el-button>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
units: [],
|
||||
unions: [],
|
||||
honorTypeList: [],
|
||||
honorLevelList: [],
|
||||
honorAwardList: [],
|
||||
honorPrizeList: [],
|
||||
collapse: ['basic', 'prize'],
|
||||
formData: {},
|
||||
userLoading: false,
|
||||
userOptions: [],
|
||||
isEdit: GetQueryString("id") && GetQueryString("id") !== '',
|
||||
firstInPage: true,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
},
|
||||
methods: {
|
||||
doBack() {
|
||||
if (GetQueryString("id") !== '') {
|
||||
sublime.jumpPagePjax('/platform/honor/manage')
|
||||
}
|
||||
},
|
||||
async userChange() {
|
||||
const user = await queryUserById(this.formData.userId)
|
||||
this.setFormData(user)
|
||||
},
|
||||
setFormData(user) {
|
||||
this.$set(this.formData, "userSex", user[0].sex)
|
||||
this.$set(this.formData, "userName", user[0].username)
|
||||
this.$set(this.formData, "unitId", user[0].unitid)
|
||||
this.$set(this.formData, "unionId", user[0].unionid)
|
||||
this.$set(this.formData, "birthday", user[0].birthday)
|
||||
this.$set(this.formData, "title", user[0].jobTitle)
|
||||
//this.$set(this.formData, "post", user[0].position)
|
||||
this.$set(this.formData, "unionName", user[0].unionname)
|
||||
this.$set(this.formData, "unitName", user[0].unitname)
|
||||
this.$set(this.formData, "jobStatus", user[0].userState)
|
||||
this.$set(this.formData, "political", user[0].political)
|
||||
},
|
||||
async userRemoteMethod(query) {
|
||||
if (query) {
|
||||
this.userLoading = true
|
||||
const arr = await searchUser(query)
|
||||
this.userOptions = arr
|
||||
this.userLoading = false
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
this.honorTypeList = await HonorApi.getHonorType()
|
||||
if (this.honorTypeList) {
|
||||
this.formData = {
|
||||
honorType: this.honorTypeList[0].id
|
||||
}
|
||||
this.honorPrizeList = await HonorApi.getHonorPrize(this.formData.honorType)
|
||||
}
|
||||
this.honorLevelList = await HonorApi.getHonorLevel()
|
||||
this.honorAwardList = await HonorApi.getHonorAwardType()
|
||||
this.units = await getUnits(null)
|
||||
this.unions = await getUnions(null)
|
||||
this.$set(this.formData, 'unionId', "${@shiro.getPrincipalProperty('union').getId()}")
|
||||
await this.searchUnionInfo(this.formData.unionId)
|
||||
},
|
||||
async searchUnionInfo(id){
|
||||
const resp = await $.get('/platform/projectfunding/declare/getUnionInfo',{id:id})
|
||||
if (resp.code === 0){
|
||||
this.formData.memberNumber = resp.data.memberNumber;
|
||||
this.formData.unionLeader = resp.data.username;
|
||||
}
|
||||
const data = await unionGroupsByUnionId(id)
|
||||
this.formData.unionGroupNumber = data.length
|
||||
},
|
||||
async honorTypeChange(val) {
|
||||
this.$set(this.formData, "prize", null)
|
||||
this.honorPrizeList = await HonorApi.getHonorPrize(val)
|
||||
},
|
||||
async doSubmit() {
|
||||
this.formData.awardMaterials = JSON.stringify(this.formData.awardMaterials)
|
||||
this.formData.files = JSON.stringify(this.formData.files)
|
||||
const resp = await $.post(loc() + '/doSubmit', this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.$notify({
|
||||
title: '成功',
|
||||
message: resp.msg,
|
||||
type: 'success',
|
||||
duration: 500,
|
||||
onClose: () => {
|
||||
sublime.jumpPagePjax('/platform/honor/manage')
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
async findData(id) {
|
||||
const resp = await $.post(loc() + '/findData', {id: id})
|
||||
const data1 = clone(resp.data.data)
|
||||
this.honorPrizeList = await HonorApi.getHonorPrize(resp.data.data.honorType)
|
||||
this.formData = resp.data.data
|
||||
if (this.formData.userId && this.formData.userId !== '') {
|
||||
const user = await queryUserById(this.formData.userId)
|
||||
this.setFormData(user)
|
||||
} else {
|
||||
this.$set(this.formData, 'userName', this.formData.userName)
|
||||
}
|
||||
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)
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
"formData.prize"(newVal) {
|
||||
if (this.firstInPage === false && newVal) {
|
||||
this.$set(this.formData, "honorLevel", this.honorPrizeList.find(v => v.id === newVal).level)
|
||||
this.firstInPage = false
|
||||
}
|
||||
},
|
||||
"formData.unitName"(newVal) {
|
||||
const isExist = this.units.some(v => v.name == newVal)
|
||||
if(this.formData.honorType === HonorApi.honor_single_id) {
|
||||
if (isExist) {
|
||||
const unionId = this.units.find(v => v.name == newVal).unionid
|
||||
this.$set(this.formData, "unionId", unionId ? unionId : "")
|
||||
} else {
|
||||
this.$set(this.formData, "unionId", "")
|
||||
}
|
||||
}
|
||||
},
|
||||
"formData.unionId"(newVal) {
|
||||
if(this.formData.honorType === HonorApi.honor_list_id) {
|
||||
if(this.firstInPage === false) {
|
||||
const un = this.unions.find(o => o.id === newVal)
|
||||
this.formData.unionLeader = un ? un.leadername : ''
|
||||
this.formData.unionName = un ? un.unionname : ''
|
||||
} else {
|
||||
this.firstInPage = false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.initData()
|
||||
if (GetQueryString("id") !== '') {
|
||||
await this.findData(GetQueryString("id"))
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -1,73 +0,0 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button">
|
||||
<div class="block">
|
||||
<el-date-picker
|
||||
v-model="pageForm.year"
|
||||
type="year"
|
||||
value-format="yyyy"
|
||||
placeholder="年度"
|
||||
@change="pageData">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable="true"
|
||||
filterable="true" @change="pageData">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt20">
|
||||
<el-table :data="tableData">
|
||||
<el-table-column type="index" label="序号"></el-table-column>
|
||||
<el-table-column property="unionname" label="分工会" sortable align="center"></el-table-column>
|
||||
<el-table-column property="personalHonorNum" label="个人荣誉" sortable align="center"></el-table-column>
|
||||
<el-table-column property="collectiveHonorNum" label="集体荣誉" sortable align="center"></el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</guava>
|
||||
</div>
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
unions: [],
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
pageData() {
|
||||
sublime.showLoadingbar();
|
||||
this.tableLoading = true
|
||||
$.post("/platform/honor/Summary/unionData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tableLoading = false
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data;
|
||||
} else {
|
||||
this.$message.error(data.msg);
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.unions = await getUnions()
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user