Merge branch 'main' of https://dd3skj.picp.vip/JyuHsin/zhgh_cug_v4
This commit is contained in:
@@ -99,30 +99,31 @@ module.exports = {
|
||||
},
|
||||
methods: {
|
||||
async isMaleFemale() {
|
||||
|
||||
this.tableLoading = true
|
||||
this.tableColumns = []
|
||||
this.tableColumns2 = []
|
||||
this.tableColumns3 = []
|
||||
this.tableColumns4 = []
|
||||
this.tableColumns5 = []
|
||||
this.tableData = []
|
||||
const {data} = await this.$axios.post("/platform/activity/score/statistics/isMaleFemale", this.Form)
|
||||
data.eventList.forEach(v => {
|
||||
if (v.baname == "甲组" || v.baname == "乙组" || v.baname == "丙组" || v.baname == "丁组") {
|
||||
this.tableColumns.push({label: v.isMenWomen ? v.label.substr(4) : v.label.substr(2), prop: v.label})
|
||||
} else {
|
||||
|
||||
this.tableColumns5.push({label: v.label, prop: v.label})
|
||||
|
||||
try {
|
||||
const {data} = await this.$axios.post("/platform/activity/score/statistics/isMaleFemale", this.Form)
|
||||
data.eventList.forEach(v => {
|
||||
if (v.baname == "甲组" || v.baname == "乙组" || v.baname == "丙组" || v.baname == "丁组") {
|
||||
this.tableColumns.push({label: v.isMenWomen ? v.label.substr(4) : v.label.substr(2), prop: v.label})
|
||||
} else {
|
||||
this.tableColumns5.push({label: v.label, prop: v.label})
|
||||
}
|
||||
})
|
||||
this.tableData = data.score.sort(this.compare("totalScore"))
|
||||
if (this.Form.unionname) {
|
||||
this.tableData = this.tableData.filter(v => v.unionname == this.Form.unionname)
|
||||
}
|
||||
})
|
||||
|
||||
this.tableData = data.score.sort(this.compare("totalScore"))
|
||||
if (this.Form.unionname) {
|
||||
this.tableData = this.tableData.filter(v => v.unionname == this.Form.unionname)
|
||||
}catch ( e){
|
||||
this.$message.error(e.msg)
|
||||
}finally {
|
||||
this.tableLoading = false
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
|
||||
compare(prop) {
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<el-table :data="tableData" style="width: 100%;height: 100%" stripe border
|
||||
ref="MaleFemaleTab"
|
||||
:header-cell-style="{background:'#FAFAFA'}" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tableLoading" size="mini" fixed >
|
||||
<!--:max-height="maxHeight"-->
|
||||
v-loading="tableLoading" size="mini" fixed>
|
||||
<!--:max-height="maxHeight"-->
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
|
||||
width="80px" fixed></el-table-column>
|
||||
<el-table-column label="分工会" prop="unionname" header-align="center"
|
||||
@@ -12,7 +12,7 @@
|
||||
<el-table-column label="总分" prop="totalScore" header-align="center"
|
||||
align="center" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="名次"
|
||||
width="80px" ></el-table-column>
|
||||
width="80px"></el-table-column>
|
||||
|
||||
</el-table>
|
||||
</template>
|
||||
@@ -41,12 +41,18 @@ module.exports = {
|
||||
methods: {
|
||||
async isScoreTopEight() {
|
||||
|
||||
this.tableColumns = []
|
||||
this.tableData = []
|
||||
const {data} = await this.$axios.post(loc() + "/isScoreTopEight", this.Form)
|
||||
const table = data.score.sort(this.compare("totalScore"))
|
||||
this.tableData = table.slice(0, 8)
|
||||
|
||||
try {
|
||||
this.tableLoading = true
|
||||
this.tableColumns = []
|
||||
this.tableData = []
|
||||
const {data} = await this.$axios.post(loc() + "/isScoreTopEight", this.Form)
|
||||
const table = data.score.sort(this.compare("totalScore"))
|
||||
this.tableData = table.slice(0, 8)
|
||||
} catch (e) {
|
||||
this.$message.error(e.msg)
|
||||
} finally {
|
||||
this.tableLoading = false
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-loading="tableLoading">
|
||||
<!-- <el-table :data="tableData" style="width: 100%" stripe border
|
||||
:header-cell-style="{background:'#FAFAFA'}" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tableLoading" size="mini">
|
||||
@@ -62,27 +62,27 @@ module.exports = {
|
||||
}).toString()
|
||||
},
|
||||
async isTopEight() {
|
||||
var loading = this.$loading({
|
||||
lock: true,
|
||||
text: '数据正在查询中,请稍后...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
this.tableColumns = []
|
||||
this.tableData = []
|
||||
const {data} = await this.$axios.post(loc() + "/isTopEight", this.Form)
|
||||
data.eventList.map(v => {
|
||||
v.sss = []
|
||||
data.userList.map(x => {
|
||||
if (v.label === x.allname) {
|
||||
console.log(x)
|
||||
v.sss.push(x)
|
||||
}
|
||||
try {
|
||||
this.tableLoading = true
|
||||
this.tableColumns = []
|
||||
this.tableData = []
|
||||
const {data} = await this.$axios.post(loc() + "/isTopEight", this.Form)
|
||||
data.eventList.map(v => {
|
||||
v.sss = []
|
||||
data.userList.map(x => {
|
||||
if (v.label === x.allname) {
|
||||
console.log(x)
|
||||
v.sss.push(x)
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
this.tableData = data.eventList
|
||||
loading.close();
|
||||
this.tableData = data.eventList
|
||||
} catch (e) {
|
||||
this.$message.error(e.msg)
|
||||
} finally {
|
||||
this.tableLoading = false
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
<template>
|
||||
<div class="search">
|
||||
<slot></slot>
|
||||
<div class="search-query">
|
||||
<el-button type="primary" icon="el-icon-search" @click="$emit('search', null)">搜索</el-button>
|
||||
</div>
|
||||
<div class="search">
|
||||
<slot></slot>
|
||||
<div class="search-query" v-if="isSearchButton">
|
||||
<el-button type="primary" icon="el-icon-search" @click="$emit('search', null)">搜索</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
name: "pageFormSearch"
|
||||
name: "pageFormSearch",
|
||||
props: {
|
||||
isSearchButton: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -0,0 +1,486 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div class="platform" id="app" v-cloak>
|
||||
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch" :is-search-button="false">
|
||||
<search-item label="年度">
|
||||
<el-date-picker
|
||||
:clearable="false"
|
||||
@change="getActivitys"
|
||||
placeholder="选择年"
|
||||
style="width: 100%" type="year"
|
||||
v-model="pageForm.year" value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="活动名称" v-if="!pageForm.status">
|
||||
<el-select :clearable="false" @change="actChange(pageForm.activityId)"
|
||||
filterable
|
||||
placeholder="请选择活动名称"
|
||||
style="width: 100%" v-model="pageForm.activityId">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in activityList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="工会名称" v-if="!pageForm.status">
|
||||
<el-select :clearable="false" @change="unionChange(pageForm.unionId)"
|
||||
filterable
|
||||
placeholder="请选择工会"
|
||||
style="width: 100%" v-model="pageForm.unionId">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in unionList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="性别" v-if="pageForm.status==='1'||!pageForm.status">
|
||||
<el-select filterable
|
||||
placeholder="请选择性别"
|
||||
style="width: 100%" v-model="pageForm.sex">
|
||||
<el-option label="男" value="男"></el-option>
|
||||
<el-option label="女" value="女"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
</search>
|
||||
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool
|
||||
:label="pageForm.status==='2'?('中国地质大学(武汉)'+pageForm.year+'年教职工运动会获奖个数汇总表'):'奖品名单'">
|
||||
<el-tag
|
||||
:effect="pageForm.status===item.code?'dark':'plain'"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
@click="statusType(item.code)"
|
||||
style="margin-right: 10px;cursor: pointer"
|
||||
v-for="item in statusOptions">
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
<el-button @click="print" icon="el-icon-printer" type="primary" size="small">打 印</el-button>
|
||||
</table-tool>
|
||||
|
||||
|
||||
<div id=print>
|
||||
<template v-if="pageForm.activityId!=null">
|
||||
<table class="table table-bordered" v-if="isSummary==1" v-loading="tableLoading">
|
||||
<tr>
|
||||
<td class="text-center" colspan="11">
|
||||
<span v-if="activityList.find(v=>v.id === pageForm.activityId)">
|
||||
中国地质大学(武汉){{ activityList.find(v=>v.id === pageForm.activityId).name }}
|
||||
({{unionName}})获奖名单
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>项目</td>
|
||||
<td v-for="i in 8">
|
||||
第{{i}}名
|
||||
</td>
|
||||
<td>备注</td>
|
||||
</tr>
|
||||
<tr v-for="(o,k,index) in tableDataUnionPrize['团体项目']">
|
||||
<td :rowspan="Object.keys(tableDataUnionPrize['团体项目']).length"
|
||||
style="vertical-align:middle"
|
||||
v-if="0==index">团体项目
|
||||
</td>
|
||||
<td>{{k}}</td>
|
||||
<td v-for="i in 8">
|
||||
<span v-if="o.filter(f=>f.ranking==i && f.numberOfPeople!=null) && o.filter(f=>f.ranking==i && f.numberOfPeople!=null).length>0">
|
||||
{{o.filter(f=>f.ranking==i && f.numberOfPeople!=null).map(g=>g.numberOfPeople).reduce((a,b)=>a+b)}}
|
||||
</span>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr v-for="(o,k,index) in tableDataUnionPrize['男子项目']">
|
||||
<td :rowspan="Object.keys(tableDataUnionPrize['男子项目']).length"
|
||||
style="vertical-align:middle"
|
||||
v-if="0==index">男子项目
|
||||
</td>
|
||||
<td>{{k}}</td>
|
||||
<td v-for="i in 8">
|
||||
{{o.filter(f=>f.ranking==i).map(g=>g.username).join('、')}}
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr v-for="(o,k,index) in tableDataUnionPrize['女子项目']">
|
||||
<td :rowspan="Object.keys(tableDataUnionPrize['女子项目']).length" dd
|
||||
style="vertical-align:middle"
|
||||
v-if="0==index">女子项目
|
||||
</td>
|
||||
<td>{{k}}</td>
|
||||
<td v-for="i in 8">
|
||||
{{o.filter(f=>f.ranking==i).map(g=>g.username).join('、')}}
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>合计</td>
|
||||
<td></td>
|
||||
<td v-for="i in 9">
|
||||
{{lastSum[i]}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<el-table :data="tableData" :header-cell-style="{background:'#FAFAFA'}"
|
||||
@sort-change="pageOrder"
|
||||
border row-key="id"
|
||||
show-summary
|
||||
size="mini" stripe style="width: 100%"
|
||||
v-if="isSummary==2" v-loading="tableLoading">
|
||||
|
||||
|
||||
<el-table-column :index="indexMethod" align="center"
|
||||
header-align="center"
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"></el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:key="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip
|
||||
v-for="column in summaryColumns"
|
||||
v-if="isSummary==2">
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column align="center" header-align="center" label="签字"
|
||||
show-overflow-tooltip
|
||||
v-if="isSummary==2"></el-table-column>
|
||||
|
||||
</el-table>
|
||||
</template>
|
||||
<template v-else>
|
||||
<table class="table table-bordered" v-if="isSummary==3">
|
||||
<tr>
|
||||
<td class="text-center" colspan="11">
|
||||
{{pageForm.year}}田径运动会教工{{pageForm.sex}}子甲、乙、丙、丁、前八名记录表
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<div style="display: flex;justify-content: center;">项目</div>
|
||||
</td>
|
||||
<td v-for="i in 8">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
第{{i}}名
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-for="(o,k,index) in tableDataPrize['甲组']">
|
||||
<td :rowspan="Object.keys(tableDataPrize['甲组']).length"
|
||||
style="vertical-align:middle"
|
||||
v-if="0==index">甲组
|
||||
</td>
|
||||
<td>{{k}}</td>
|
||||
<td v-for="i in 8">
|
||||
<span>
|
||||
{{getSummaryByYear(o,i,'甲组')}}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-for="(o,k,index) in tableDataPrize['乙组']">
|
||||
<td :rowspan="Object.keys(tableDataPrize['乙组']).length"
|
||||
style="vertical-align:middle"
|
||||
v-if="0==index">乙组
|
||||
</td>
|
||||
<td>{{k}}</td>
|
||||
<td v-for="i in 8">
|
||||
<span>
|
||||
{{getSummaryByYear(o,i,'乙组')}}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-for="(o,k,index) in tableDataPrize['丙组']">
|
||||
<td :rowspan="Object.keys(tableDataPrize['丙组']).length"
|
||||
style="vertical-align:middle"
|
||||
v-if="0==index">丙组
|
||||
</td>
|
||||
<td>{{k}}</td>
|
||||
<td v-for="i in 8">
|
||||
<span>
|
||||
{{getSummaryByYear(o,i,'丙组')}}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-for="(o,k,index) in tableDataPrize['丁组']">
|
||||
<td :rowspan="Object.keys(tableDataPrize['丁组']).length"
|
||||
style="vertical-align:middle"
|
||||
v-if="0==index">丁组
|
||||
</td>
|
||||
<td>{{k}}</td>
|
||||
<td v-for="i in 8">
|
||||
<span>
|
||||
{{getSummaryByYear(o,i,'丁组')}}
|
||||
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr v-for="(o,k,index) in tableDataPrize['集体项目']">
|
||||
<td :rowspan="Object.keys(tableDataPrize['集体项目']).length"
|
||||
style="vertical-align:middle"
|
||||
v-if="0==index">集体项目
|
||||
</td>
|
||||
<td>{{k}}</td>
|
||||
<td v-for="i in 8">
|
||||
<span>
|
||||
{{getSummaryByYear(o,i,'集体项目')}}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
</template>
|
||||
</div>
|
||||
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
|
||||
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
isSummary: 1,
|
||||
activityList: [],
|
||||
unionList: [],
|
||||
unionName: "",
|
||||
pageForm: {
|
||||
activityId: "",
|
||||
unionId: "",
|
||||
status: null,
|
||||
sex: null,
|
||||
year: new Date().getFullYear() + ''
|
||||
},
|
||||
summaryColumns: [
|
||||
{prop: 'unionname', label: '分工会'},
|
||||
{prop: 'one', label: '第一名'},
|
||||
{prop: 'two', label: '第二名'},
|
||||
{prop: 'three', label: '第三名'},
|
||||
{prop: 'four', label: '第四名'},
|
||||
{prop: 'fives', label: '第五名'},
|
||||
{prop: 'six', label: '第六名'},
|
||||
{prop: 'seven', label: '第七名'},
|
||||
{prop: 'eight', label: '第八名'},
|
||||
{prop: 'totalPeople', label: '合计'},
|
||||
],
|
||||
tableDataUnionPrize: {},
|
||||
lastSum: {},
|
||||
tableDataPrize: [],
|
||||
|
||||
statusOptions: [{code: "1", name: "分组汇总年度前八"}, {code: "2", name: "奖品个数年度汇总表"}]
|
||||
}
|
||||
},
|
||||
components: {},
|
||||
methods: {
|
||||
async statusType(state) {
|
||||
this.tableLoading = true
|
||||
if (state === "1") {
|
||||
const data = await this.summaryYearPrizes()
|
||||
if (!data) {
|
||||
this.tableLoading = false
|
||||
return
|
||||
}
|
||||
} else if (state === "2") {
|
||||
this.pageForm.sex = null
|
||||
await this.summary()
|
||||
}
|
||||
|
||||
if (this.pageForm.status === state) {
|
||||
this.pageForm.status = null
|
||||
this.pageForm.sex = null
|
||||
this.pageForm.activityId = this.activityList[0].id
|
||||
this.pageForm.unionId = this.unionList[0].id
|
||||
this.unionChange(this.unionList[0].id)
|
||||
} else {
|
||||
this.pageForm.status = state
|
||||
}
|
||||
this.tableLoading = false
|
||||
|
||||
},
|
||||
getSummaryByYear(o, i, type) {
|
||||
if (type === "集体项目") {
|
||||
const datas = o.filter(o => o.ranking === i).map(o => o.unionname)
|
||||
if (datas) {
|
||||
return datas.join(",")
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
} else {
|
||||
//甲组里面有可能有团体项目,所以说如果这个没有username就代表是团体
|
||||
return o.filter(f => f.ranking === i).map(g => g.username ? g.username : g.unionname).join('、')
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
async summaryYearPrizes() {
|
||||
try {
|
||||
if (!this.pageForm.sex) {
|
||||
this.$message.warning("请选择性别")
|
||||
return false
|
||||
}
|
||||
this.$set(this.pageForm, "unionId", null)
|
||||
this.$set(this.pageForm, "activityId", null)
|
||||
this.isSummary = 3
|
||||
const {data} = await this.$axios.post(loc() + "/getSummaryYearPrizes", this.pageForm)
|
||||
this.tableDataPrize = data
|
||||
return true
|
||||
} catch (e) {
|
||||
this.$message.error(e.msg)
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
getTableTdContent(d, i) {
|
||||
return d.filter(v => {
|
||||
if (v.isteampersonal === 1) {
|
||||
if (v.ranking == i) {
|
||||
console.log(v, i)
|
||||
return v.username
|
||||
}
|
||||
} else {
|
||||
if (v.ranking == i) {
|
||||
return v.numberofpeople
|
||||
}
|
||||
}
|
||||
}).map(v => {
|
||||
return v.isteampersonal === 1 ? v.username : v.numberofpeople
|
||||
}).toString()
|
||||
},
|
||||
|
||||
async summary() {
|
||||
try {
|
||||
if (this.activityList.length === 0) {
|
||||
return
|
||||
}
|
||||
if (!this.pageForm.activityId) {
|
||||
this.pageForm.activityId = this.activityList[0].id
|
||||
}
|
||||
this.$set(this.pageForm, "unionId", null)
|
||||
this.isSummary = 2
|
||||
this.tableData = []
|
||||
|
||||
const {data} = await this.$axios.post(loc() + "/summary", this.pageForm)
|
||||
this.$set(this, "tableData", data.score)
|
||||
this.unionName = "汇总"
|
||||
} catch (e) {
|
||||
this.$message.error(e.msg)
|
||||
}
|
||||
|
||||
},
|
||||
print() {
|
||||
let subOutputRankPrint = document.getElementById('print');
|
||||
let newContent = subOutputRankPrint.innerHTML;
|
||||
let oldContent = document.body.innerHTML;
|
||||
document.body.innerHTML = newContent;
|
||||
window.print();
|
||||
window.location.reload();
|
||||
document.body.innerHTML = oldContent;
|
||||
return false;
|
||||
},
|
||||
actChange(activityId) {
|
||||
this.tableColumns = []
|
||||
this.tableData = []
|
||||
this.pageForm.activityId = ""
|
||||
const activityData = this.activityList.find(v => v.id == activityId)
|
||||
this.pageForm.activityId = activityData.id
|
||||
this.getPrizes()
|
||||
},
|
||||
unionChange(unionId) {
|
||||
this.tableColumns = []
|
||||
this.tableData = []
|
||||
this.pageForm.unionId = ""
|
||||
this.isSummary = 1
|
||||
const unionData = this.unionList.find(v => v.id == unionId)
|
||||
this.pageForm.unionId = unionData.id
|
||||
this.unionName = unionData.name
|
||||
this.getPrizes()
|
||||
},
|
||||
async getActivitys() {
|
||||
this.tableData = []
|
||||
const {data} = await this.$axios.post("/platform/activity/score/statistics/getActivitys", {year: this.pageForm.year})
|
||||
this.pageForm.activityId = ""
|
||||
this.activityList = data
|
||||
if (data && data.length > 0) {
|
||||
this.pageForm.activityId = data[0].id
|
||||
}
|
||||
await this.getPrizes()
|
||||
|
||||
},
|
||||
async getPrizes() {
|
||||
try {
|
||||
this.tableLoading = true
|
||||
const {data} = await this.$axios.post(loc() + "/getPrizes", this.pageForm)
|
||||
this.tableDataUnionPrize = data
|
||||
const lastSum = {}
|
||||
for (let i = 1; i <= 8; i++) {
|
||||
let sum = 0
|
||||
if (!$.isEmptyObject(data['男子项目'])) {
|
||||
let xm = []
|
||||
for (let key in data['男子项目']) {
|
||||
xm = xm.concat(data['男子项目'][key])
|
||||
}
|
||||
sum += xm.filter(v => v.ranking === i).length
|
||||
}
|
||||
if (!$.isEmptyObject(data['女子项目'])) {
|
||||
let xm = []
|
||||
for (let key in data['女子项目']) {
|
||||
xm = xm.concat(data['女子项目'][key])
|
||||
}
|
||||
sum += xm.filter(v => v.ranking === i).length
|
||||
}
|
||||
if (!$.isEmptyObject(data['团体项目'])) {
|
||||
let xm = []
|
||||
for (let key in data['团体项目']) {
|
||||
xm = xm.concat(data['团体项目'][key])
|
||||
}
|
||||
const teams = xm.filter(v => v.ranking === i).map(v => Number(v.numberOfPeople))
|
||||
if (teams && teams.length > 0) {
|
||||
sum += teams.reduce((a, b) => a + b)
|
||||
}
|
||||
}
|
||||
lastSum[i] = sum
|
||||
}
|
||||
|
||||
lastSum[9] = Object.values(lastSum).reduce((a, b) => a + b)
|
||||
this.lastSum = lastSum
|
||||
} catch (e) {
|
||||
this.$message.error(e.msg)
|
||||
} finally {
|
||||
this.tableLoading = false
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
await this.getActivitys()
|
||||
this.unionList = await this.$businessTool.listUnion()
|
||||
if (this.unionList.length > 0) {
|
||||
this.pageForm.unionId = this.unionList[0].id
|
||||
this.unionName = this.unionList[0].unionname
|
||||
}
|
||||
await this.getPrizes()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -423,7 +423,7 @@ layout("/layouts/platform.html"){
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<script nonce="${cspNonce!}">
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
|
||||
+244
-197
@@ -39,69 +39,75 @@ layout("/layouts/platform.html"){
|
||||
<guava ref="guava"
|
||||
style="width: 100%;min-height: 100%;background-color: #f0f2f5;padding: 20px;box-sizing: border-box;">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch" :is-search-button="false">
|
||||
<search-item label="年度">
|
||||
<el-date-picker
|
||||
:clearable="false"
|
||||
@change="getActivitys"
|
||||
placeholder="选择年"
|
||||
type="year"
|
||||
v-model="pageForm.year" value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="活动名称" v-if="!pageForm.status">
|
||||
<el-select :clearable="false" @change="activityChange" filterable
|
||||
placeholder="请选择活动名称" style="width: 100%" v-model="pageForm.activityId">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in activityList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属工会" v-if="isUnion">
|
||||
<el-select @change="unionChange(pageForm.unionId)" clearable filterable placeholder="请选择工会"
|
||||
style="width: 100%" v-model="pageForm.unionname">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name"
|
||||
v-for="item in unionList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item>
|
||||
<el-button @click="doExcelCj" icon="el-icon-printer" type="primary">导出成绩excel
|
||||
</el-button>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
<div style="max-height: 250px">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="年度">
|
||||
<el-date-picker
|
||||
:clearable="false"
|
||||
@change="getActivitys"
|
||||
placeholder="选择年"
|
||||
type="year"
|
||||
v-model="pageForm.year" value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="活动名称">
|
||||
<el-select :clearable="false" @change="activityChange" filterable
|
||||
placeholder="请选择活动名称" style="width: 100%" v-model="pageForm.activityId">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
v-for="item in activityList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select @change="unionChange(pageForm.unionId)" clearable filterable
|
||||
placeholder="请选择工会"
|
||||
style="width: 100%" v-model="pageForm.name">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.name"
|
||||
v-for="item in unionList">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
|
||||
</search>
|
||||
|
||||
|
||||
<!-- <div class="pull-right offscreen-right">
|
||||
<el-button @click="getYear8(1)" icon="el-icon-search" type="primary">年度男子团体总分
|
||||
</el-button>
|
||||
<el-button @click="getYear8(2)" icon="el-icon-search" type="primary">年度女子团体总分
|
||||
</el-button>
|
||||
<el-button @click="annualResults" icon="el-icon-search" type="primary">年度团体总分</el-button>
|
||||
<el-button @click="doExcelCj" class="mr10" icon="el-icon-printer" type="primary">导出成绩excel
|
||||
</el-button>
|
||||
</div>-->
|
||||
|
||||
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" style="margin-top: 10px">
|
||||
<el-row type="flex" align="middle" class="query-row">
|
||||
<el-col class="query-row-title">按活动统计:</el-col>
|
||||
<el-col class="query-row-title">按年度统计:</el-col>
|
||||
<el-col class="query-row-content" v-if="isSearchOptions">
|
||||
<el-button
|
||||
style="margin-left: 10px"
|
||||
size="medium"
|
||||
v-for="item in searchOptions"
|
||||
<el-tag
|
||||
:effect="pageForm.status===item.code?'dark':'plain'"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
@click="statusType(item.code)"
|
||||
style="margin-right: 10px;cursor: pointer"
|
||||
v-for="item in statusOptions">
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<el-row type="flex" align="middle" class="query-row">
|
||||
<el-col class="query-row-title">运动会成绩统计:</el-col>
|
||||
<el-col class="query-row-content" v-if="isSearchOptions">
|
||||
<el-tag
|
||||
:effect="pageForm.status2===item.id?'dark':'plain'"
|
||||
:key="item.id"
|
||||
:type="item.name" @click="searchClick(item.id)">{{item.name}}
|
||||
</el-button>
|
||||
:type="item.name"
|
||||
@click="status2Type(item.id)"
|
||||
style="margin-right: 10px;cursor: pointer"
|
||||
v-for="item in searchOptions">
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
</el-col>
|
||||
<el-col class="query-row-content" v-else>
|
||||
<el-button style="margin-left: 10px"
|
||||
@@ -111,77 +117,70 @@ layout("/layouts/platform.html"){
|
||||
|
||||
|
||||
<div class="pull-right offscreen-right" style="margin-left: auto">
|
||||
<!--
|
||||
<el-button type="primary" icon="el-icon-printer" @click="doExport8ByActivity"
|
||||
v-if="[11,12].includes(isSearchOptions)&&pageForm.activityId">导出
|
||||
</el-button>
|
||||
<el-button type="primary" icon="el-icon-printer" @click="doGetYear8" v-else-if="isYear8">导出
|
||||
</el-button>
|
||||
<el-button type="primary" icon="el-icon-printer" @click="print" v-else>打 印</el-button>-->
|
||||
<el-button @click="doExportByActivityStatisticsType" icon="el-icon-printer" type="primary">
|
||||
导出
|
||||
</el-button>
|
||||
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
|
||||
</el-card>
|
||||
</div>
|
||||
<div id=print ref="print">
|
||||
<el-card shadow="never" class="mt10"
|
||||
v-show="[1,2,3,4,5,9,10].includes(isSearchOptions)&&isSearchOptions">
|
||||
<table-tool v-if="isSearchOptions==1" label="男子单项成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==2" label="女子单项成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==3" label="男子团体成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==4" label="女子团体成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==5" label="男女混合类成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==9&&isSearch" label="分工会男子项目积分"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==9&&!isSearch" label="分工会项目成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==10" label="分工会女子项目积分"></table-tool>
|
||||
<is-male-female :form="pageForm" ref="female"></is-male-female>
|
||||
<el-card shadow="never" class="mt10"
|
||||
v-show="[1,2,3,4,5,9,10].includes(isSearchOptions)&&isSearchOptions">
|
||||
<table-tool v-if="isSearchOptions==1" label="男子单项成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==2" label="女子单项成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==3" label="男子团体成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==4" label="女子团体成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==5" label="男女混合类成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==9&&isSearch" label="男子项目分工会积分"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==9&&!isSearch" label="分工会项目成绩"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==10" label="女子项目分工会积分"></table-tool>
|
||||
<is-male-female :form="pageForm" ref="female"></is-male-female>
|
||||
|
||||
</el-card>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10" v-show="[6,7,8].includes(isSearchOptions)&&isSearchOptions">
|
||||
<table-tool v-if="isSearchOptions==6" label="男子项目前八"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==7" label="女子项目前八"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==8" label="综合类前八"></table-tool>
|
||||
<el-row>
|
||||
<top-eight :form="pageForm" ref="doeight"></top-eight>
|
||||
</el-row>
|
||||
<el-card shadow="never" class="mt10" v-show="[6,7,8].includes(isSearchOptions)&&isSearchOptions">
|
||||
<table-tool v-if="isSearchOptions==6" label="男子项目前八"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==7" label="女子项目前八"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==8" label="综合类前八"></table-tool>
|
||||
<el-row>
|
||||
<top-eight :form="pageForm" ref="doeight"></top-eight>
|
||||
</el-row>
|
||||
|
||||
</el-card>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10" v-show="[11,12].includes(isSearchOptions)&&isSearchOptions">
|
||||
<table-tool v-if="isSearchOptions==11" label="分工会男子总分前八"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==12" label="分工会女子总分前八"></table-tool>
|
||||
<score-top-eight :form="pageForm" ref="doTopEight"></score-top-eight>
|
||||
<el-card shadow="never" class="mt10" v-show="[11,12].includes(isSearchOptions)&&isSearchOptions">
|
||||
<table-tool v-if="isSearchOptions==11" label="男子总分前八"></table-tool>
|
||||
<table-tool v-if="isSearchOptions==12" label="女子总分前八"></table-tool>
|
||||
<score-top-eight :form="pageForm" ref="doTopEight"></score-top-eight>
|
||||
|
||||
</el-card>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10" v-show="[99].includes(isSearchOptions)">
|
||||
<table-tool v-if="isSearchOptions==99" label="全年成绩"></table-tool>
|
||||
<el-table :data="annualResultsTableData" style="width: 100%;height: 100%" stripe border
|
||||
show-summary
|
||||
:header-cell-style="{background:'#FAFAFA'}" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tableLoading" size="mini" fixed ref="annualResults"
|
||||
>
|
||||
<el-card shadow="never" class="mt10" v-show="[99].includes(isSearchOptions)">
|
||||
<table-tool v-if="isSearchOptions==99" label="全年成绩"></table-tool>
|
||||
<el-table :data="annualResultsTableData" style="width: 100%;height: 100%" stripe border
|
||||
show-summary
|
||||
:header-cell-style="{background:'#FAFAFA'}" row-key="id" @sort-change="pageOrder"
|
||||
v-loading="tableLoading" size="mini" fixed ref="annualResults"
|
||||
>
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
label="名次"
|
||||
width="80px" fixed></el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in annualTableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
label="名次"
|
||||
width="80px" fixed></el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in annualTableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
</el-card>
|
||||
</div>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
|
||||
</template>
|
||||
@@ -189,7 +188,7 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
|
||||
|
||||
<script>
|
||||
<script nonce="${cspNonce!}">
|
||||
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
@@ -218,24 +217,31 @@ layout("/layouts/platform.html"){
|
||||
{id: 3, name: "男子团体"},
|
||||
{id: 4, name: "女子团体"},
|
||||
{id: 5, name: "男女混合类"},*/
|
||||
{id: 9, name: "分工会男子项目积分"},
|
||||
{id: 10, name: "分工会女子项目积分"},
|
||||
{id: 6, name: "男子项目前八"},
|
||||
{id: 7, name: "女子项目前八"},
|
||||
{id: 8, name: "团体前八"},
|
||||
{id: 9, name: "男子项目分工会积分"},
|
||||
{id: 10, name: "女子项目分工会积分"},
|
||||
{id: 6, name: "男子单项前八"},
|
||||
{id: 7, name: "女子单项前八"},
|
||||
{id: 8, name: "团体项目前八"},
|
||||
|
||||
{id: 11, name: "分工会男子总分前八"},
|
||||
{id: 12, name: "分工会女子总分前八"},
|
||||
{id: 11, name: "男子总分前八"},
|
||||
{id: 12, name: "女子总分前八"},
|
||||
|
||||
],
|
||||
isSearchOptions: 9,
|
||||
pageForm: {
|
||||
status2: 9,
|
||||
status: '',
|
||||
unionname: '',
|
||||
activityId: "",
|
||||
personTypes: [],
|
||||
year: new Date().getFullYear() + "",
|
||||
},
|
||||
activityStatisticsType: 0//统计类型说明:1 年度男子团体总分2.年度女子团体总分3.年度团体总分4.分工会男子项目积分5.分工会女子项目积分,依次后推
|
||||
activityStatisticsType: 0,//统计类型说明:1 年度男子团体总分2.年度女子团体总分3.年度团体总分4.分工会男子项目积分5.分工会女子项目积分,依次后推
|
||||
statusOptions: [
|
||||
{code: "1", name: "年度男子团体总分"},
|
||||
{code: "2", name: "年度女子团体总分"},
|
||||
{code: "3", name: "年度团体总分"}
|
||||
]
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -244,29 +250,55 @@ layout("/layouts/platform.html"){
|
||||
'score-top-eight': httpVueLoader('/components/module/activity/score/scoreTopEight.vue?v=' + new Date().getTime()),
|
||||
},
|
||||
methods: {
|
||||
async status2Type(id) {
|
||||
if (this.pageForm.status2 === id) {
|
||||
this.$set(this.pageForm, "status2", 9)
|
||||
this.$set(this.pageForm, "sex", "男")
|
||||
this.$set(this.pageForm, "activityId", this.activityList[0].id)
|
||||
} else {
|
||||
this.$set(this.pageForm, "status2", id)
|
||||
}
|
||||
this.searchClick(id)
|
||||
},
|
||||
async statusType(state) {
|
||||
if (state === "1") {
|
||||
await this.getYear8(1)
|
||||
} else if (state === "2") {
|
||||
await this.getYear8(2)
|
||||
} else if (state === "3") {
|
||||
await this.annualResults()
|
||||
}
|
||||
|
||||
if (this.pageForm.status === state) {
|
||||
this.$set(this.pageForm, "status", null)
|
||||
this.$set(this.pageForm, "activityId", this.activityList[0].id)
|
||||
this.activityChange()
|
||||
this.$set(this.pageForm, "status2", 9)
|
||||
} else {
|
||||
this.$set(this.pageForm, "status", state)
|
||||
this.$set(this.pageForm, "status2", '')
|
||||
|
||||
}
|
||||
},
|
||||
async doExportByActivityStatisticsType() {
|
||||
const {activityId, year} = this.pageForm
|
||||
const url = "/platform/activity/statistics/export"
|
||||
if (this.activityStatisticsType === 1 || this.activityStatisticsType === 2) {
|
||||
window.open(url + "/getYear8?year=" + year + "&isMenWomen=" + this.isMenWomen)
|
||||
this.$downLoad(url + "/getYear8", {year: year, isMenWomen: this.isMenWomen})
|
||||
} else if (this.activityStatisticsType === 3) {
|
||||
window.open(url + "/getAnnualResults?year=" + year)
|
||||
this.$downLoad(url + "/getAnnualResults", {year})
|
||||
} else if (this.activityStatisticsType === 4 || this.activityStatisticsType === 5) {
|
||||
let sex = this.activityStatisticsType === 4 ? "男性" : "女性"
|
||||
window.open(url + "/isMaleFemale?activityId=" + activityId + "&sex=" + sex + "&awardsMode=4")
|
||||
let sex = this.activityStatisticsType === 4 ? "男" : "女"
|
||||
this.$downLoad(url + "/isMaleFemale", {activityId: activityId, sex: sex, awardsMode: 4})
|
||||
} else if (this.activityStatisticsType === 6 || this.activityStatisticsType === 7 || this.activityStatisticsType === 8) {
|
||||
let sex = this.activityStatisticsType === 6 ? "男性" : "女性"
|
||||
let sex = this.activityStatisticsType === 6 ? "男" : "女"
|
||||
let awardsMode = this.activityStatisticsType === 8 ? 2 : 1
|
||||
window.open(url + "/isTopEight?activityId=" + activityId + "&sex=" + sex + "&awardsMode=" + awardsMode)
|
||||
this.$downLoad(url + "/isTopEight", {activityId: activityId, sex: sex, awardsMode: awardsMode})
|
||||
} else if (this.activityStatisticsType === 9 || this.activityStatisticsType === 10) {
|
||||
let sex = this.activityStatisticsType === 9 ? "男性" : "女性"
|
||||
window.open(url + "/isScoreTopEight?activityId=" + activityId + "&sex=" + sex)
|
||||
let sex = this.activityStatisticsType === 9 ? "男" : "女"
|
||||
this.$downLoad(url + "/isScoreTopEight", {activityId: activityId, sex: sex})
|
||||
}
|
||||
},
|
||||
doExport8ByActivity() {
|
||||
window.open(loc() + "/doExport8ByActivity?activityId=" + this.pageForm.activityId + "&isMenWomen=" + (this.isSearchOptions === 11 ? 1 : 2))
|
||||
|
||||
},
|
||||
doExcelCj() {
|
||||
const {activityId, unionname} = this.pageForm
|
||||
let unionId = ''
|
||||
@@ -274,21 +306,11 @@ layout("/layouts/platform.html"){
|
||||
const unionlist = clone(this.unionList)
|
||||
unionId = unionlist.find(v => v.unionname === unionname).id
|
||||
}
|
||||
window.open(loc() + "/doExcelCj?activityId=" + activityId + "&unionId=" + unionId)
|
||||
|
||||
},
|
||||
print() {
|
||||
let subOutputRankPrint = document.getElementById('print');
|
||||
let newContent = subOutputRankPrint.innerHTML;
|
||||
let oldContent = document.body.innerHTML;
|
||||
document.body.innerHTML = newContent;
|
||||
window.print();
|
||||
window.location.reload();
|
||||
document.body.innerHTML = oldContent;
|
||||
return false;
|
||||
this.$downLoad(loc() + "/doExcelCj", {activityId: activityId, unionId: unionId})
|
||||
|
||||
},
|
||||
activityChange() {
|
||||
this.$set(this.pageForm, "yearDoSearch", null)
|
||||
const aa = this.activityList.find(v => v.id == this.pageForm.activityId)
|
||||
if (aa.applyType == 1) {
|
||||
this.isSearch = false
|
||||
@@ -302,6 +324,10 @@ layout("/layouts/platform.html"){
|
||||
this.searchClick(9)
|
||||
},
|
||||
searchClick(id) {
|
||||
this.$set(this.pageForm, "status", null)
|
||||
if (!this.pageForm.activityId) {
|
||||
this.$set(this.pageForm, "activityId", this.activityList[0].id)
|
||||
}
|
||||
if (id === 9) {
|
||||
this.activityStatisticsType = 4
|
||||
} else if (id === 10) {
|
||||
@@ -322,16 +348,16 @@ layout("/layouts/platform.html"){
|
||||
if (id == 1 || id == 2) {
|
||||
this.isUnion = false
|
||||
this.isYear8 = false
|
||||
this.pageForm.sex = id == 1 ? "男性" : "女性"
|
||||
this.pageForm.sex = id == 1 ? "男" : "女"
|
||||
this.pageForm.awardsMode = 1
|
||||
} else if (id == 3 || id == 4) {
|
||||
this.isUnion = false
|
||||
this.isUnionisYear8 = false
|
||||
this.pageForm.sex = id == 3 ? "男性" : "女性"
|
||||
this.pageForm.sex = id == 3 ? "男" : "女"
|
||||
this.pageForm.awardsMode = 2
|
||||
} else if (id == 9 || id == 10) {
|
||||
this.isUnion = true
|
||||
this.pageForm.sex = id == 9 ? "男性" : "女性"
|
||||
this.pageForm.sex = id == 9 ? "男" : "女"
|
||||
this.pageForm.awardsMode = 4
|
||||
} else {
|
||||
this.pageForm.awardsMode = 3
|
||||
@@ -341,76 +367,97 @@ layout("/layouts/platform.html"){
|
||||
if (id == 6 || id == 7) {
|
||||
this.isUnion = false
|
||||
this.isYear8 = false
|
||||
this.pageForm.sex = id == 6 ? "男性" : "女性"
|
||||
this.pageForm.sex = id == 6 ? "男" : "女"
|
||||
this.pageForm.awardsMode = 1
|
||||
} else if (id == 8) {
|
||||
this.pageForm.awardsMode = 2
|
||||
}
|
||||
this.$refs.doeight.isTopEight()
|
||||
} else if (id == 11 || id == 12) {
|
||||
this.pageForm.sex = id == 11 ? "男性" : "女性"
|
||||
this.pageForm.sex = id == 11 ? "男" : "女"
|
||||
this.$refs.doTopEight.isScoreTopEight()
|
||||
}
|
||||
},
|
||||
async doGetYear8() {
|
||||
location.href = loc() + "/doGetYear8?year=" + this.pageForm.year + "&isMenWomen=" + this.isMenWomen
|
||||
},
|
||||
async getYear8(isMenWomen) {
|
||||
this.activityStatisticsType = isMenWomen
|
||||
this.isMenWomen = isMenWomen
|
||||
this.isUnion = false
|
||||
this.isYear8 = true
|
||||
this.$set(this.pageForm, "activityId", null)
|
||||
this.$set(this.pageForm, "unionname", null)
|
||||
this.annualTableColumns = []
|
||||
this.annualResultsTableData = []
|
||||
try {
|
||||
this.activityStatisticsType = isMenWomen
|
||||
this.isMenWomen = isMenWomen
|
||||
this.isUnion = false
|
||||
this.isYear8 = true
|
||||
this.$set(this.pageForm, "activityId", null)
|
||||
this.$set(this.pageForm, "unionname", null)
|
||||
this.annualTableColumns = []
|
||||
this.annualResultsTableData = []
|
||||
this.tableLoading = true
|
||||
this.isSearchOptions = 99
|
||||
const {data} = await this.$axios.post(loc() + "/getYear8", {
|
||||
year: this.pageForm.year,
|
||||
isMenWomen: isMenWomen
|
||||
})
|
||||
this.annualResultsTableData = data.score
|
||||
this.annualResultsTableData = this.annualResultsTableData.sort((a, b) => b['总分'] - a['总分'])
|
||||
|
||||
this.isSearchOptions = 99
|
||||
const {data} = await this.$axios.post(loc() + "/getYear8", {
|
||||
year: this.pageForm.year,
|
||||
isMenWomen: isMenWomen
|
||||
})
|
||||
this.annualResultsTableData = data.score
|
||||
this.annualResultsTableData = this.annualResultsTableData.sort((a, b) => b['总分'] - a['总分'])
|
||||
data.label.forEach(v => {
|
||||
this.annualTableColumns.push({label: v, prop: v})
|
||||
})
|
||||
|
||||
} catch (e) {
|
||||
this.$message().error(e.msg)
|
||||
} finally {
|
||||
this.tableLoading = false
|
||||
}
|
||||
|
||||
data.label.forEach(v => {
|
||||
this.annualTableColumns.push({label: v, prop: v})
|
||||
})
|
||||
},
|
||||
|
||||
async annualResults() {
|
||||
this.activityStatisticsType = 3
|
||||
this.isUnion = false
|
||||
this.isYear8 = false
|
||||
this.$set(this.pageForm, "activityId", null)
|
||||
this.$set(this.pageForm, "unionname", null)
|
||||
this.annualTableColumns = []
|
||||
this.annualResultsTableData = []
|
||||
try {
|
||||
this.activityStatisticsType = 3
|
||||
this.isUnion = false
|
||||
this.isYear8 = false
|
||||
this.$set(this.pageForm, "activityId", null)
|
||||
this.$set(this.pageForm, "unionname", null)
|
||||
this.annualTableColumns = []
|
||||
this.annualResultsTableData = []
|
||||
this.tableLoading = true;
|
||||
this.isSearchOptions = 99
|
||||
const {data} = await this.$axios.post(loc() + "/getAnnualResults", {
|
||||
year: this.pageForm.year
|
||||
})
|
||||
this.annualResultsTableData = data.score
|
||||
this.annualResultsTableData = this.annualResultsTableData.sort((a, b) => b['总分'] - a['总分'])
|
||||
|
||||
this.isSearchOptions = 99
|
||||
const {data} = await this.$axios.post(loc() + "/getAnnualResults", {
|
||||
year: this.pageForm.year
|
||||
})
|
||||
this.annualResultsTableData = data.score
|
||||
this.annualResultsTableData = this.annualResultsTableData.sort((a, b) => b['总分'] - a['总分'])
|
||||
|
||||
data.label.forEach(v => {
|
||||
this.annualTableColumns.push({label: v, prop: v})
|
||||
})
|
||||
data.label.forEach(v => {
|
||||
this.annualTableColumns.push({label: v, prop: v})
|
||||
})
|
||||
} catch (e) {
|
||||
this.$message().error(e.msg)
|
||||
} finally {
|
||||
this.tableLoading = false
|
||||
}
|
||||
},
|
||||
async getActivitys() {
|
||||
|
||||
const {data} = await this.$axios.post(loc() + "/getActivitys", {year: this.pageForm.year})
|
||||
this.pageForm = {
|
||||
activityId: "",
|
||||
year: this.pageForm.year
|
||||
try {
|
||||
const {data} = await this.$axios.post(loc() + "/getActivitys", {year: this.pageForm.year})
|
||||
this.pageForm = {
|
||||
activityId: "",
|
||||
status2: 9,
|
||||
year: this.pageForm.year
|
||||
}
|
||||
this.activityList = data
|
||||
} catch (e) {
|
||||
this.$message().error(e.msg)
|
||||
}
|
||||
this.activityList = data
|
||||
|
||||
|
||||
},
|
||||
async changeActivit() {
|
||||
const resp = await this.$axios.post("/platform/activity/apply/getEvents", {activityId: this.pageForm.activityId})
|
||||
this.events = resp
|
||||
try {
|
||||
const resp = await this.$axios.post("/platform/activity/apply/getEvents", {activityId: this.pageForm.activityId})
|
||||
this.events = resp
|
||||
} catch (e) {
|
||||
this.$message().error(e.msg)
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
|
||||
+188
-114
@@ -2,7 +2,7 @@
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
<el-card shadow="never">
|
||||
<el-card shadow="never" v-if="isShow">
|
||||
<snaker-start slot="header" label="困难帮扶申请" define_key="KNBF"></snaker-start>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":" class="flow-task-form">
|
||||
<el-descriptions :column="3" border>
|
||||
@@ -11,21 +11,20 @@ layout("/layouts/platform.html"){
|
||||
<el-input readonly v-model="formData.proxyUserName"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="填写人工号">
|
||||
<el-form-item prop="proxyLoginName">
|
||||
<el-input readonly v-model="formData.proxyLoginName"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申请模式">
|
||||
<el-form-item prop="mode">
|
||||
<el-select v-model="formData.mode" placeholder="申请模式" @change="modeChange" style="width: 100%">
|
||||
<el-option label="本人申请" value="1"></el-option>
|
||||
<el-option v-if="$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN, BRANCH_UNION_CHAIRMAN, BRANCH_UNION_OPERATOR')"
|
||||
label="替他人申请" value="2"></el-option>
|
||||
label="替他人申请" value="2"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="填写人工号">
|
||||
<el-form-item prop="proxyLoginName">
|
||||
<el-input readonly v-model="formData.proxyLoginName"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="受补助人">
|
||||
<el-form-item prop="userName">
|
||||
<template v-if="formData.mode == 2">
|
||||
@@ -45,71 +44,72 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">
|
||||
<el-form-item prop="sex">
|
||||
<el-select v-model="formData.sex" placeholder="请选择性别" clearable style="width: 100%">
|
||||
<el-option v-for="item in ['男性','女性']" :key="item" :label="item" :value="item">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="出生年月">
|
||||
<el-form-item prop="birthday">
|
||||
<el-date-picker
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="formData.birthday"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择出生年月">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="所属单位">
|
||||
<el-form-item prop="unitName">
|
||||
<el-input maxlength="50" clearable placeholder="所在单位"
|
||||
readonly v-model="formData.unitName"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属工会">
|
||||
<el-form-item prop="unionName">
|
||||
<el-input maxlength="50" clearable placeholder="所属工会"
|
||||
readonly v-model="formData.unionName"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="职务职称">
|
||||
<el-form-item prop="officialCapacity">
|
||||
<el-input maxlength="20" clearable placeholder="请填写职务职称"
|
||||
v-model="formData.officialCapacity"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="手机号码">
|
||||
<el-form-item prop="mobile">
|
||||
<el-input maxlength="11" clearable placeholder="请填写手机号码"
|
||||
v-model="formData.mobile" maxlength="11"></el-input>
|
||||
<el-descriptions-item label="受补助人工号">
|
||||
<el-form-item prop="loginName">
|
||||
<el-input readonly v-model="formData.loginName"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="身份证号" :span="2">
|
||||
<el-form-item prop="idCard">
|
||||
<el-input maxlength="20" clearable placeholder="请填写身份证号"
|
||||
v-model="formData.idCard" maxlength="18"></el-input>
|
||||
v-model="formData.idCard" maxlength="18"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="困难类型" >
|
||||
<el-form-item prop="subsidyStandards">
|
||||
<el-select v-model="formData.subsidyStandards" style="width: 100%" placeholder="请选择困难类型">
|
||||
<el-option v-for="(item,index) in subsidyStandards" :key="index" :label="item"
|
||||
:value="item">
|
||||
<el-descriptions-item label="性别">
|
||||
<el-form-item prop="sex">
|
||||
<el-select v-model="formData.sex" placeholder="请选择性别" clearable style="width: 100%">
|
||||
<el-option v-for="item in ['男','女']" :key="item" :label="item" :value="item">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭住址" :span="2">
|
||||
<el-descriptions-item label="职务">
|
||||
<el-form-item prop="position">
|
||||
<el-input maxlength="20" clearable placeholder="请填写职务"
|
||||
v-model="formData.position"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="职称">
|
||||
<el-form-item prop="officialCapacity">
|
||||
<el-input maxlength="20" clearable placeholder="请填写职称"
|
||||
v-model="formData.officialCapacity"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属单位">
|
||||
<el-form-item prop="unitName">
|
||||
<el-input maxlength="50" clearable placeholder="请填写所在单位"
|
||||
readonly v-model="formData.unitName"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="手机号码">
|
||||
<el-form-item prop="mobile">
|
||||
<el-input maxlength="11" clearable placeholder="请填写手机号码"
|
||||
v-model="formData.mobile" maxlength="11"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭年总收入(万元)">
|
||||
<el-form-item prop="homeIncome">
|
||||
<el-input-number
|
||||
v-model="formData.homeIncome"
|
||||
:precision="2"
|
||||
:min="0"
|
||||
style="width: 100%"
|
||||
placeholder="请填写总收入(万元)">
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭人数">
|
||||
<el-form-item prop="homeNumber">
|
||||
<el-input-number
|
||||
v-model="formData.homeNumber"
|
||||
:min="1"
|
||||
:step="1"
|
||||
style="width: 100%"
|
||||
placeholder="请填写家庭人数">
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭住址" >
|
||||
<el-form-item prop="homeAddress">
|
||||
<el-input clearable
|
||||
style="width: 100%"
|
||||
@@ -118,86 +118,133 @@ layout("/layouts/platform.html"){
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="收款账户" >
|
||||
<el-form-item prop="bankCardNum">
|
||||
<el-input maxlength="20" clearable placeholder="请填写收款卡号"
|
||||
v-model="formData.bankCardNum"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="户名" >
|
||||
<el-form-item prop="bankUserName">
|
||||
<el-input maxlength="20" clearable placeholder="请填写户名"
|
||||
v-model="formData.bankUserName"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="开户行" >
|
||||
<el-form-item prop="bankOfDeposit">
|
||||
<el-input maxlength="30" clearable placeholder="请填写开户行"
|
||||
v-model="formData.bankOfDeposit"></el-input>
|
||||
v-model="formData.bankOfDeposit"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="申请次数" >-->
|
||||
<!-- <el-form-item prop="applyCount">-->
|
||||
<!-- <el-input maxlength="20" clearable placeholder="请填写"-->
|
||||
<!-- v-model="formData.applyCount"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<el-descriptions-item label="银行卡号" >
|
||||
<el-form-item prop="bankCardNum">
|
||||
<el-input maxlength="20" clearable placeholder="请填写银行卡号"
|
||||
v-model="formData.bankCardNum"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="补助类型" >
|
||||
<el-form-item prop="subsidy">
|
||||
<search-item>
|
||||
<dict-select v-model="formData.subsidy" code="DIFFICULT_SUBSIDY_TYPE" style="width: 100%" placeholder="请选择补助类型"></dict-select>
|
||||
</search-item>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="困难类型" >
|
||||
<el-form-item prop="subsidyStandards">
|
||||
<search-item>
|
||||
<dict-select v-model="formData.subsidyStandards" code="DIFFICULT_TYPE" style="width: 100%" placeholder="请选择困难类型"></dict-select>
|
||||
</search-item>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<el-descriptions-item label="申请原因" :span="3">
|
||||
<el-descriptions-item label="生活致困原因" :span="3">
|
||||
<el-form-item prop="reason">
|
||||
<el-input maxlength="500" :autosize="{ minRows: 5, maxRows: 10}"
|
||||
placeholder="请简述申请原因"
|
||||
placeholder="请简述生活致困原因"
|
||||
clearable
|
||||
show-word-limit
|
||||
v-model="formData.reason"
|
||||
type="textarea"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<!-- <el-descriptions-item label="家庭成员经济收入" :span="3">
|
||||
<!-- <el-descriptions-item label="户名" >-->
|
||||
<!-- <el-form-item prop="bankUserName">-->
|
||||
<!-- <el-input maxlength="20" clearable placeholder="请填写户名"-->
|
||||
<!-- v-model="formData.bankUserName"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item label="出生年月">-->
|
||||
<!-- <el-form-item prop="birthday">-->
|
||||
<!-- <el-date-picker-->
|
||||
<!-- clearable-->
|
||||
<!-- style="width: 100%"-->
|
||||
<!-- v-model="formData.birthday"-->
|
||||
<!-- type="date"-->
|
||||
<!-- value-format="yyyy-MM-dd"-->
|
||||
<!-- placeholder="选择出生年月">-->
|
||||
<!-- </el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item label="所属工会">-->
|
||||
<!-- <el-form-item prop="unionName">-->
|
||||
<!-- <el-input maxlength="50" clearable placeholder="所属工会"-->
|
||||
<!-- readonly v-model="formData.unionName"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<el-descriptions-item label="家庭主要成员(在一起生活的直系亲属)经济收入情况" :span="3">
|
||||
<el-form-item prop="familyList">
|
||||
<el-table :data="formData.familyList" border max-height="500" size="mini" style="width: 100%">
|
||||
<el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
|
||||
<el-table-column prop="name" label="姓名">
|
||||
<el-table-column prop="relation" label="与本人关系">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'familyList.'+$index+'.name'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input v-model="row.name" placeholder="请输入姓名" clearable></el-input>
|
||||
:prop="'familyList.'+$index+'.relation'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input v-model="row.relation" placeholder="请填写与本人关系" clearable></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="relation" label="年龄(岁)">
|
||||
<el-table-column prop="name" label="姓名">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'familyList.'+$index+'.name'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input v-model="row.name" placeholder="请填写姓名" clearable></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="age" label="年龄(岁)">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'familyList.'+$index+'.age'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input-number v-model="row.age" placeholder="请输入年龄" :min="1"
|
||||
<el-input-number v-model="row.age" placeholder="年龄" :min="1"
|
||||
:max="100" :step="1" style="width: 100%" clearable></el-input-number>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="relation" label="关系">
|
||||
<el-table-column prop="homeUnit" label="工作单位">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'familyList.'+$index+'.relation'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input v-model="row.relation" placeholder="请输入关系" clearable></el-input>
|
||||
:prop="'familyList.'+$index+'.homeUnit'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input v-model="row.homeUnit" placeholder="请填写工作单位" clearable></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="monthlyIncome" label="月收入(元)">
|
||||
<el-table-column prop="yearIncome" label="年收入(元)">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'familyList.'+$index+'.monthlyIncome'"
|
||||
:prop="'familyList.'+$index+'.yearIncome'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input-number v-model="row.monthlyIncome" placeholder="请输入月收入"
|
||||
<el-input-number v-model="row.yearIncome" placeholder="年收入"
|
||||
:min="0" :step="1" style="width: 100%" clearable></el-input-number>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remarks" label="备注">
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'familyList.'+$index+'.remarks'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input v-model="row.remarks" placeholder="请填写备注" clearable></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作" width="150px">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button @click="formData.familyList.push({})" icon="el-icon-plus" type="primary"
|
||||
@@ -213,8 +260,7 @@ layout("/layouts/platform.html"){
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>-->
|
||||
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="附件" :span="3">
|
||||
<el-form-item prop="files">
|
||||
@@ -225,11 +271,15 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="签字" :span="3">
|
||||
<el-form-item prop="sign">
|
||||
<pc-signature v-model="formData.sign"></pc-signature>
|
||||
</el-form-item>
|
||||
<el-form-item class="mt10">
|
||||
<div style="color: red;">
|
||||
{{ '本人承诺:本人及家庭成员未有购买价格超过15万元的机动车,也未有两套及以上商品房,特此承诺!' }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-form>
|
||||
@@ -240,6 +290,15 @@ layout("/layouts/platform.html"){
|
||||
<el-button type="primary" @click="onFinishTask" v-else>提交</el-button>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<div v-else>
|
||||
<el-card class="box-card" style="height: 92vh" shadow="never">
|
||||
<el-result icon="warning" title="温馨提醒" subTitle="">
|
||||
<template slot="extra">
|
||||
抱歉,当前时间不能申请,可申请时间为{{time}}。
|
||||
</template>
|
||||
</el-result>
|
||||
</el-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
@@ -251,17 +310,13 @@ layout("/layouts/platform.html"){
|
||||
return {
|
||||
bizId: GetQueryString("bizId"),
|
||||
taskId: GetQueryString("taskId"),
|
||||
isShow: false,
|
||||
time: '',
|
||||
formData: {
|
||||
id: GetQueryString("bizId"),
|
||||
mode: '1'
|
||||
mode: '1',
|
||||
applyCount: '1',
|
||||
},
|
||||
subsidyStandards: [
|
||||
'患重大疾病',
|
||||
'低收入家庭',
|
||||
'因突发变故致困',
|
||||
'长期病休',
|
||||
'其他情况'
|
||||
],
|
||||
formRules: {
|
||||
proxyUserName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
proxyLoginName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
@@ -275,10 +330,11 @@ layout("/layouts/platform.html"){
|
||||
bankCardNum: [{required: true, message: '请填写收款账户卡号', trigger: ['blur', 'change']}],
|
||||
bankUserName: [{required: true, message: '请填写户名', trigger: ['blur', 'change']}],
|
||||
bankOfDeposit: [{required: true, message: '请填写开户行', trigger: ['blur', 'change']}],
|
||||
officialCapacity: [{required: true, message: '请填写职务职称', trigger: ['blur', 'change']}],
|
||||
position: [{required: true, message: '请填写职务', trigger: ['blur', 'change']}],
|
||||
officialCapacity: [{required: true, message: '请填写职称', trigger: ['blur', 'change']}],
|
||||
subsidyStandards: [{required: true, message: '请选择困难类型', trigger: ['blur', 'change']}],
|
||||
reason: [{required: true, message: '请填写申请原因', trigger: ['blur', 'change']}],
|
||||
sign: [{required: true, message: '请签字', trigger: ['blur', 'change']}]
|
||||
// sign: [{required: true, message: '请签字', trigger: ['blur', 'change']}]
|
||||
},
|
||||
|
||||
// 替他人申请相关
|
||||
@@ -400,6 +456,8 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.formData, 'unionName', user.unionName)
|
||||
this.$set(this.formData, 'birthday', user.birthday)
|
||||
this.$set(this.formData, 'mobile', user.mobile)
|
||||
this.$set(this.formData, 'idCard', user.idCard)
|
||||
|
||||
} else {
|
||||
this.$set(this.formData, 'userId', null)
|
||||
this.$set(this.formData, 'userName', null)
|
||||
@@ -415,6 +473,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
// 申请模式
|
||||
modeChange(val) {
|
||||
const savedApplyCount = this.formData.applyCount;
|
||||
const user = this.$store.state.user
|
||||
if (val === "1") {
|
||||
this.$set(this.formData, 'userId', user.id)
|
||||
@@ -429,8 +488,9 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.formData, 'unitName', user.unit.name)
|
||||
this.$set(this.formData, 'unionId', user.union.id)
|
||||
this.$set(this.formData, 'unionName', user.union.name)
|
||||
this.$set(this.formData, 'monthlyIncome', null)
|
||||
this.$set(this.formData, 'yearIncome', null)
|
||||
this.$set(this.formData, 'birthday', user.birthday)
|
||||
this.$set(this.formData, 'idCard', user.idCard)
|
||||
this.$set(this.formData, 'mobile', user.mobile)
|
||||
this.$set(this.formData, 'homeAddress', user.homeAddress)
|
||||
this.$set(this.formData, 'subsidyStandards', null)
|
||||
@@ -438,6 +498,7 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.formData, 'remarks', null)
|
||||
this.$set(this.formData, 'familyList', [])
|
||||
this.$set(this.formData, 'files', [])
|
||||
this.$set(this.formData, 'applyCount', savedApplyCount )
|
||||
this.queryRecipients(user.loginname)
|
||||
} else {
|
||||
this.formData = {}
|
||||
@@ -447,6 +508,7 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.formData, 'mode', "2")
|
||||
this.$set(this.formData, 'familyList', [])
|
||||
this.$set(this.formData, 'files', [])
|
||||
this.$set(this.formData, 'applyCount',savedApplyCount )
|
||||
}
|
||||
},
|
||||
/**
|
||||
@@ -536,9 +598,21 @@ layout("/layouts/platform.html"){
|
||||
return { status: 0, msg: "无效的卡号,请检查后再试。" };
|
||||
}
|
||||
return { status: 200, msg: "卡号有效。" };
|
||||
},
|
||||
async getIsCanPlay() {
|
||||
this.$axios.post('/platform/difficultHelp/apply/getIsCanPlay').then(res => {
|
||||
if (res.code === 0) {
|
||||
this.isShow = res.data.result
|
||||
this.$set(this, 'time', res.data.time);
|
||||
if (res.data.applyCount !== null && res.data.applyCount !== undefined && res.data.applyCount !== 0) {
|
||||
this.$set(this.formData, 'applyCount', res.data.applyCount)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.getIsCanPlay();
|
||||
if (this.bizId) {
|
||||
this.findOne(this.bizId)
|
||||
} else {
|
||||
|
||||
+6
-3
@@ -120,14 +120,17 @@ layout("/layouts/platform.html"){
|
||||
audit: false
|
||||
},
|
||||
tableColumns: [
|
||||
{ prop: "loginName", label: "工号", sortable: true },
|
||||
{ prop: "loginName", label: "受助人工号", sortable: true },
|
||||
{ prop: "userName", label: "姓名", sortable: true },
|
||||
{ prop: "proxyUserName", label: "申请人", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
{ prop: "mobile", label: "联系方式", sortable: true },
|
||||
{ prop: "subsidyStandards", label: "困难类型", sortable: true },
|
||||
{ prop: "applyTime", label: "申请时间", sortable: true },
|
||||
{ prop: "curTaskName", label: "当前节点"},
|
||||
{ prop: "instanceState", label: "流程状态"}
|
||||
{ prop: "applyCount", label: "申请次数", sortable: true },
|
||||
{ prop: "taskName", label: "当前节点" },
|
||||
{ prop: "instanceState", label: "流程状态" }
|
||||
],
|
||||
unions: [],
|
||||
units: [],
|
||||
|
||||
@@ -6,42 +6,47 @@ const INFO = {
|
||||
</div>
|
||||
<el-descriptions :column="3" border>
|
||||
<el-descriptions-item label="填写人姓名">{{ viewData.proxyUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="填写人工号">{{ viewData.proxyLoginName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请模式">{{ viewData.mode == 1 ? '本人申请' : '替他人申请' }}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="受助人">{{ viewData.userName + '(' + viewData.loginName + ')' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
||||
<el-descriptions-item label="出生年月">{{ viewData.birthday }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="所属工会">{{ viewData.unionName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="填写人工号">{{ viewData.proxyLoginName }}</el-descriptions-item>
|
||||
<!--\t\t<el-descriptions-item label="申请模式">{{ viewData.mode == 1 ? '本人申请' : '替他人申请' }}</el-descriptions-item>-->
|
||||
<el-descriptions-item label="所属单位">{{ viewData.unitName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="职务职称">{{ viewData.officialCapacity }}</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭年总收入(万元)">{{ viewData.homeIncome }}</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭人数">{{ viewData.homeNumber }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="手机号码">{{ viewData.mobile }}</el-descriptions-item>
|
||||
<el-descriptions-item label="身份证号" :span="2">{{ viewData.idCard }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="困难类型" >{{ viewData.subsidyStandards }}</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭住址" :span="2">{{ viewData.homeAddress }}</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="收款账户">{{ viewData.bankCardNum }}</el-descriptions-item>
|
||||
<el-descriptions-item label="户名">{{ viewData.bankUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="职务">{{ viewData.position }}</el-descriptions-item>
|
||||
<el-descriptions-item label="职称">{{ viewData.officialCapacity }}</el-descriptions-item>
|
||||
<el-descriptions-item label="联系电话">{{ viewData.mobile }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="受补助人">{{ viewData.userName + '(' + viewData.loginName + ')' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="开户行">{{ viewData.bankOfDeposit }}</el-descriptions-item>
|
||||
<el-descriptions-item label="银行卡号">{{ viewData.bankCardNum }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="申请次数" >{{ 1 }}</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭住址" :span="2">{{ viewData.homeAddress }}</el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="申请原因" :span="3">{{ viewData.reason }}</el-descriptions-item>
|
||||
|
||||
<!-- <el-descriptions-item label="家庭成员经济收入" :span="3">
|
||||
<el-descriptions-item label="家庭主要成员(在一起生活的直系亲属)经济收入情况" :span="3">
|
||||
<el-table :data="viewData.familyList" border style="width: 92%">
|
||||
<el-table-column label="序号" type="index" width="50"></el-table-column>
|
||||
<el-table-column prop="name" label="姓名"></el-table-column>
|
||||
<el-table-column prop="age" label="年龄(岁)"></el-table-column>
|
||||
<el-table-column prop="relation" label="关系"></el-table-column>
|
||||
<el-table-column prop="monthlyIncome" label="月收入(元)"></el-table-column>
|
||||
<el-table-column label="姓名" prop="name"></el-table-column>
|
||||
<el-table-column prop="age" label="年龄"></el-table-column>
|
||||
<el-table-column prop="homeUnit" label="工作或学习单位"></el-table-column>
|
||||
<el-table-column prop="yearIncome" label="年均收入"></el-table-column>
|
||||
<el-table-column prop="remarks" label="备注"></el-table-column>
|
||||
</el-table>
|
||||
</el-descriptions-item>-->
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="本人承诺" :span="3">
|
||||
<div style="text-align: left; padding-left: 10px">
|
||||
本人及家庭成员未有购买价格超过15万元的机动车,也未有两套及以上商品房,特此承诺!
|
||||
</div>
|
||||
<div style="text-align: right; padding-right: 80px; margin-top: 10px;">
|
||||
<span>承诺人:{{ viewData.userName }}</span>
|
||||
<span style="margin-left: 30px;">{{ $moment(viewData.applyTime).format('YYYY-MM-DD') }}</span>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="生活致困原因" :span="3">{{ viewData.reason }}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="附件" :span="3">
|
||||
<file-preview v-if="viewData.files && viewData.files.length > 0" :files="viewData.files"
|
||||
@@ -82,11 +87,12 @@ const INFO = {
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
|
||||
<template v-if="task.taskFormData.tf_money">
|
||||
<el-descriptions-item label="审批金额">{{ '¥' + task.taskFormData.tf_money }}
|
||||
</el-descriptions-item>
|
||||
<template v-if="task.displayName == '校工会审核'">
|
||||
<el-descriptions-item label="审批级别">{{ viewData.level }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审批金额">{{ '¥' + viewData.money }}</el-descriptions-item>
|
||||
</template>
|
||||
|
||||
|
||||
<el-descriptions-item label="办理意见" :span="3" v-if="!task.ext.isFirstTaskNode">{{
|
||||
task.taskFormData.opinion }}
|
||||
</el-descriptions-item>
|
||||
|
||||
@@ -64,7 +64,7 @@ layout("/layouts/platform.html"){
|
||||
size="small"></enum-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="300px">
|
||||
<el-table-column label="操作" fixed="right" width="250px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onEdit(row)" size="mini" type="primary">
|
||||
@@ -72,6 +72,7 @@ layout("/layouts/platform.html"){
|
||||
</el-button>
|
||||
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
|
||||
</el-button>
|
||||
<el-button @click="doExportApply(row)" size="mini" type="primary">打印</el-button>
|
||||
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -99,12 +100,15 @@ layout("/layouts/platform.html"){
|
||||
year: this.$moment().format("YYYY")
|
||||
},
|
||||
tableColumns: [
|
||||
{ prop: "loginName", label: "工号", sortable: true },
|
||||
{ prop: "loginName", label: "受助人工号", sortable: true },
|
||||
{ prop: "userName", label: "姓名", sortable: true },
|
||||
{ prop: "proxyUserName", label: "申请人", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
{ prop: "mobile", label: "联系方式", sortable: true },
|
||||
{ prop: "subsidyStandards", label: "困难类型", sortable: true },
|
||||
{ prop: "applyTime", label: "申请时间", sortable: true },
|
||||
{ prop: "applyCount", label: "申请次数", sortable: true },
|
||||
{ prop: "taskName", label: "当前节点" },
|
||||
{ prop: "instanceState", label: "流程状态" }
|
||||
],
|
||||
@@ -163,6 +167,9 @@ layout("/layouts/platform.html"){
|
||||
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
|
||||
}
|
||||
},
|
||||
doExportApply(row) {
|
||||
this.$downLoad('/platform/difficultHelp/reading/doExportApply?id=' + row.id + '&print=true')
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.pageData()
|
||||
|
||||
+24
-3
@@ -42,6 +42,9 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="数据列表">
|
||||
<el-button @click="exportAllApply" size="mini" type="primary">导出申请表(压缩包)</el-button>
|
||||
<el-button @click="exportSummaryXlsx" size="mini" type="primary">导出汇总表(excel)</el-button>
|
||||
<el-button @click="exportSummaryDocx" size="mini" type="primary">导出汇总表(word)</el-button>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
@@ -66,9 +69,10 @@ layout("/layouts/platform.html"){
|
||||
<span>{{ row.instanceState == '20' ? '结束' : row.taskName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="200px">
|
||||
<el-table-column label="操作" fixed="right" width="250px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button @click="doExportApply(row)" size="mini" type="primary">导出</el-button>
|
||||
<el-button v-if="$auth.hasRole('SYSADMIN')" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -93,15 +97,18 @@ layout("/layouts/platform.html"){
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
year: this.$moment().format("YYYY")
|
||||
year: this.$moment().format("YYYY"),
|
||||
},
|
||||
tableColumns: [
|
||||
{ prop: "loginName", label: "工号", sortable: true },
|
||||
{ prop: "loginName", label: "受助人工号", sortable: true },
|
||||
{ prop: "userName", label: "姓名", sortable: true },
|
||||
{ prop: "proxyUserName", label: "申请人", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
{ prop: "mobile", label: "联系方式", sortable: true },
|
||||
{ prop: "subsidyStandards", label: "困难类型", sortable: true },
|
||||
{ prop: "applyTime", label: "申请时间", sortable: true },
|
||||
{ prop: "applyCount", label: "申请次数", sortable: true },
|
||||
{ prop: "taskName", label: "当前节点" },
|
||||
{ prop: "instanceState", label: "流程状态" }
|
||||
],
|
||||
@@ -157,6 +164,20 @@ layout("/layouts/platform.html"){
|
||||
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
|
||||
}
|
||||
},
|
||||
exportAllApply() {
|
||||
this.$downLoad('/platform/difficultHelp/reading/doExportAllApply', this.pageForm)
|
||||
},
|
||||
exportSummaryXlsx() {
|
||||
const params = {...this.pageForm, flag: "xlsx"};
|
||||
this.$downLoad('/platform/difficultHelp/reading/exportSummary', params)
|
||||
},
|
||||
exportSummaryDocx() {
|
||||
const params = {...this.pageForm, flag: "docx"};
|
||||
this.$downLoad('/platform/difficultHelp/reading/exportSummary', params)
|
||||
},
|
||||
doExportApply(row) {
|
||||
this.$downLoad('/platform/difficultHelp/reading/doExportApply?id=' + row.id + '&print=false')
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.pageData()
|
||||
|
||||
+52
-26
@@ -86,9 +86,21 @@ layout("/layouts/platform.html"){
|
||||
{{formData.taskName}}
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="100px" label-suffix=":">
|
||||
<el-form-item label="审核金额" prop="tf_money" :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input-number placeholder="请输入金额" v-model="formData.tf_money" style="width: 60%"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="级别" prop="level" :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<search-item>
|
||||
<dict-select v-model="formData.level" code="DIFFICULT_LEVEL" style="width: 100%" placeholder="请选择级别"></dict-select>
|
||||
</search-item>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核金额" prop="money" :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input-number placeholder="请输入金额" v-model="formData.money" style="width: 100%" :precision="2"
|
||||
:min="0" ></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="审批意见" prop="tf_opinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
@@ -121,21 +133,24 @@ layout("/layouts/platform.html"){
|
||||
audit: false
|
||||
},
|
||||
tableColumns: [
|
||||
{ prop: "loginName", label: "工号", sortable: true },
|
||||
{ prop: "loginName", label: "受助人工号", sortable: true },
|
||||
{ prop: "userName", label: "姓名", sortable: true },
|
||||
{ prop: "proxyUserName", label: "申请人", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
{ prop: "mobile", label: "联系方式", sortable: true },
|
||||
{ prop: "subsidyStandards", label: "困难类型", sortable: true },
|
||||
{ prop: "applyTime", label: "申请时间", sortable: true },
|
||||
{ prop: "curTaskName", label: "当前节点"},
|
||||
{ prop: "instanceState", label: "流程状态"}
|
||||
{ prop: "applyCount", label: "申请次数", sortable: true },
|
||||
{ prop: "taskName", label: "当前节点" },
|
||||
{ prop: "instanceState", label: "流程状态" }
|
||||
],
|
||||
unions: [],
|
||||
units: [],
|
||||
|
||||
// 审核相关
|
||||
formData: {
|
||||
tf_money: 0,
|
||||
money: 0,
|
||||
tf_opinion: "",
|
||||
},
|
||||
showApprovalForm: false
|
||||
@@ -156,31 +171,42 @@ layout("/layouts/platform.html"){
|
||||
this.showApprovalForm = true
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
taskName: row.curTaskName,
|
||||
id: row.id
|
||||
}
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
|
||||
handleTaskAction(val) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/difficultHelp/schoolUnionApproval/save", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
})
|
||||
}).then((saveRes) => {
|
||||
if (saveRes.code === 0) {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((taskRes) => {
|
||||
if (taskRes.code === 0) {
|
||||
this.$message.success('操作成功');
|
||||
this.$refs.guava.index();
|
||||
this.doSearch();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}).catch(() => {
|
||||
|
||||
});
|
||||
},
|
||||
|
||||
onRevoke(row) {
|
||||
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
<div id="difficult_help_branch_union_approval_form">
|
||||
<el-form :model="formData" ref="formRef" label-width="0" label-suffix=":" class="flow-task-form">
|
||||
<el-form-item label="审批意见" prop="tf_opinion" :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<snaker-flow-task-form-action @task-action="handleTaskAction" @cancel="handleCancel"></snaker-flow-task-form-action>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
new Vue({
|
||||
el: "#difficult_help_branch_union_approval_form",
|
||||
data() {
|
||||
return {
|
||||
businessId: GetQueryString("businessId"),
|
||||
formData: {
|
||||
tf_opinion: ""
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleTaskAction(val) {
|
||||
console.log(val)
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...val,
|
||||
...this.formData
|
||||
})
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success("操作成功")
|
||||
// 发送完成消息
|
||||
window.GlobalBroadcastChannel.postMessage({
|
||||
type: "task-complete",
|
||||
payload: val
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleCancel(val) {
|
||||
console.log(val)
|
||||
},
|
||||
}
|
||||
})
|
||||
</script>
|
||||
+221
@@ -0,0 +1,221 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="年度">
|
||||
<el-date-picker
|
||||
placeholder="年度"
|
||||
type="year"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</search-item>
|
||||
|
||||
<search-item label="受助人">
|
||||
<el-input placeholder="请输入受助人工号或姓名" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
|
||||
<search-item label="所属工会">
|
||||
<el-select @change="flushUnits" @clear="flushUnits" clearable
|
||||
filterable
|
||||
placeholder="请选择所属工会"
|
||||
style="width: 100%;"
|
||||
v-model="pageForm.unionId">
|
||||
<el-option :label="item.name" :value="item.id"
|
||||
v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
|
||||
<search-item label="所属单位">
|
||||
<el-select clearable filterable placeholder="请选择所属单位"
|
||||
style="width: 100%;" v-model="pageForm.unitId">
|
||||
<el-option :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool :app="this" label="审批列表">
|
||||
<el-radio-group @change="doSearch" class="mr5" size="small" v-model="pageForm.audit">
|
||||
<el-radio-button label="true">已审核</el-radio-button>
|
||||
<el-radio-button label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
ref="table" row-key="id" style="width: 100%">
|
||||
<el-table-column :index="indexMethod" header-align="center" label="序号"
|
||||
type="index" width="60px"></el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
header-align="center"
|
||||
min-width="100px"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template scope="{row}" v-if="column.prop=='instanceState'">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="200px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.taskState === 10" @click="openAudit(row)" size="mini" type="primary">审核
|
||||
</el-button>
|
||||
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
<template #edit>
|
||||
<info ref="infoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">
|
||||
{{formData.taskName}}
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":"
|
||||
class="flow-task-form">
|
||||
<el-form-item label="审批意见" prop="tf_opinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button>
|
||||
<el-button @click="handleTaskAction(2)" size="small" type="danger">拒绝申请</el-button>
|
||||
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意申请</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
|
||||
<!--#include("../common/info.js"){}#-->
|
||||
|
||||
new Vue({
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
store,
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
year: this.$moment().format("YYYY"),
|
||||
audit: false
|
||||
},
|
||||
tableColumns: [
|
||||
{ prop: "loginName", label: "受助人工号", sortable: true },
|
||||
{ prop: "userName", label: "姓名", sortable: true },
|
||||
{ prop: "proxyUserName", label: "申请人", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
{ prop: "mobile", label: "联系方式", sortable: true },
|
||||
{ prop: "subsidyStandards", label: "困难类型", sortable: true },
|
||||
{ prop: "applyTime", label: "申请时间", sortable: true },
|
||||
{ prop: "applyCount", label: "申请次数", sortable: true },
|
||||
{ prop: "taskName", label: "当前节点" },
|
||||
{ prop: "instanceState", label: "流程状态" }
|
||||
],
|
||||
unions: [],
|
||||
units: [],
|
||||
|
||||
// 审核相关
|
||||
formData: {},
|
||||
showApprovalForm: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'info': INFO,
|
||||
},
|
||||
methods: {
|
||||
openView(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
openAudit(row) {
|
||||
this.$refs.guava.edit(()=>{
|
||||
this.showApprovalForm = true
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
|
||||
handleTaskAction(val) {
|
||||
this.$confirm("您确定要提交吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
onRevoke(row) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "info"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async flushUnits(){
|
||||
this.$set(this.pageForm, "unitId", null)
|
||||
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
|
||||
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
|
||||
} else {
|
||||
this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id)
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.pageData()
|
||||
if (this.$auth.hasRoleOr('SYSADMIN, SCHOOL_UNION_ADMIN')) {
|
||||
this.unions = await this.$businessTool.listUnion()
|
||||
} else {
|
||||
this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id)
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+102
-2
@@ -1,6 +1,106 @@
|
||||
<!--#include("payRecord.js"){}#-->
|
||||
const AID_FUND_INFO = {
|
||||
template: /*language=HTML*/
|
||||
`
|
||||
|
||||
`
|
||||
<div>
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane label="用户信息" name="one">
|
||||
<el-descriptions :column="3" border>
|
||||
<el-descriptions-item label="申报人">{{viewData.username}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工号">{{viewData.loginname}}</el-descriptions-item>
|
||||
<el-descriptions-item label="联系方式">{{viewData.mobile}}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{viewData.sex}}</el-descriptions-item>
|
||||
<el-descriptions-item label="入校时间">
|
||||
{{$moment(viewData.arrivalAtSchoolDate).format('YYYY-MM-DD')}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="基金会员类型">
|
||||
{{viewData.aidFundMemberUserType}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="起扣时间">
|
||||
{{viewData.aidFundDeductTime}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所在单位">{{viewData.unitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所在工会">{{viewData.unionName}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="变更记录" name="two">
|
||||
<el-table :data="changeRecordTableData" ref="table" row-key="id" style="width: 100%">
|
||||
<el-table-column label="序号" type="index" width="60px"></el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:key="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
header-align="center"
|
||||
min-width="100px"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template v-slot="{row}" v-if="column.prop=='changeType'">
|
||||
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
|
||||
:value="row.changeType"></dict-tag>
|
||||
</template>
|
||||
<template v-slot="{row}" v-else-if="column.prop=='applyTime'">
|
||||
<template v-if="row.applyTime">
|
||||
{{$moment(row.applyTime).format('YYYY-MM-DD')}}
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="缴费记录" name="three">
|
||||
<pay_record ref="payRecord"></pay_record>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
`,
|
||||
store,
|
||||
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
viewData: {},
|
||||
changeRecordTableData: [],
|
||||
activeName:"one",
|
||||
tableColumns: [
|
||||
{prop: "loginname", label: "工号"},
|
||||
{prop: "username", label: "姓名"},
|
||||
{prop: "sex", label: "性别"},
|
||||
{prop: "arrivalAtSchoolDate", label: "入校时间"},
|
||||
{prop: "unitName", label: "所属单位"},
|
||||
{prop: "unionName", label: "所属工会"},
|
||||
{prop: "aidFundMemberUserType", label: "基金会员类型"},
|
||||
{prop: "changeType", label: "变更类型"},
|
||||
{prop: "applyTime", label: "变更时间"},
|
||||
],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'pay_record': PAY_RECORD,
|
||||
},
|
||||
methods: {
|
||||
// 打开
|
||||
onOpen(row) {
|
||||
this.row = row
|
||||
this.info()
|
||||
this.findChangeRecordList()
|
||||
this.$refs.payRecord.getUserPayRecordList(row.id)
|
||||
},
|
||||
// 获取申请信息
|
||||
info() {
|
||||
this.$axios.post("/platform/medicalMutualAid/aidFund/manage/findOne", {userId: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取申请信息
|
||||
findChangeRecordList() {
|
||||
this.$axios.post("/platform/medicalMutualAid/aidFund/manage/findChangeRecordList", {userId: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.changeRecordTableData = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
+4
-8
@@ -5,11 +5,12 @@ const APPLY_INFO = {
|
||||
<el-link type="primary" @click="openChart">点击查看流程图</el-link>
|
||||
</div>
|
||||
<el-descriptions :column="3" border>
|
||||
<el-descriptions-item label="申报人">{{viewData.username}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人">{{viewData.username}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工号">{{viewData.loginname}}</el-descriptions-item>
|
||||
<el-descriptions-item label="联系方式">{{viewData.mobile}}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{viewData.sex}}</el-descriptions-item>
|
||||
<el-descriptions-item label="入校时间">{{$moment(viewData.arrivalAtSchoolDate).format('YYYY-MM-DD')}}</el-descriptions-item>
|
||||
<el-descriptions-item label="入校时间">{{$moment(viewData.arrivalAtSchoolDate).format('YYYY-MM-DD')}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所在单位">{{viewData.unitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="所在工会">{{viewData.unionName}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
@@ -40,11 +41,6 @@ const APPLY_INFO = {
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
|
||||
<template v-if="task.taskFormData.tf_money">
|
||||
<el-descriptions-item label="审批金额">{{ '¥' + task.taskFormData.tf_money }}
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
|
||||
<el-descriptions-item label="办理意见" :span="3" v-if="!task.ext.isFirstTaskNode">{{
|
||||
task.taskFormData.opinion }}
|
||||
</el-descriptions-item>
|
||||
@@ -58,7 +54,7 @@ const APPLY_INFO = {
|
||||
</div>
|
||||
`,
|
||||
store,
|
||||
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
|
||||
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE", "PROCESS_TASK_SUBMIT_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
viewData: {},
|
||||
|
||||
+2
-2
@@ -29,8 +29,8 @@ const PAY_RECORD = {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getUserPayRecordList() {
|
||||
this.$axios.post('/platform/medicalMutualAid/aidFund/apply/getUserPayRecordList').then(resp => {
|
||||
getUserPayRecordList(userId) {
|
||||
this.$axios.post('/platform/medicalMutualAid/aidFund/apply/getUserPayRecordList',{userId}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.payRecordList = resp.data
|
||||
}
|
||||
|
||||
+1
-5
@@ -130,11 +130,9 @@ layout("/layouts/platform.html"){
|
||||
<div class="process-title">
|
||||
{{formData.taskName}}
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":"
|
||||
class="flow-task-form">
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="100px" label-suffix=":">
|
||||
<el-form-item label="审核状态" prop="submitType"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
审核状态:
|
||||
<el-radio-group v-model="formData.submitType">
|
||||
<el-radio-button :label="2">拒绝</el-radio-button>
|
||||
<el-radio-button :label="1">通过</el-radio-button>
|
||||
@@ -146,7 +144,6 @@ layout("/layouts/platform.html"){
|
||||
<el-col :span="12">
|
||||
<el-form-item label="入校时间" prop="arrivalAtSchoolDate"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
入校时间:
|
||||
<el-date-picker
|
||||
:picker-options="pickerOptions"
|
||||
@change="getPayMoney"
|
||||
@@ -159,7 +156,6 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="缴纳费用" prop="money">
|
||||
缴纳费用:
|
||||
<el-input readonly v-model="formData.money"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
+1
-2
@@ -164,8 +164,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
methods: {
|
||||
openImport() {
|
||||
this.$refs.guava.edit()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.guava.edit(()=>{
|
||||
setTimeout(() => {
|
||||
this.$refs.viewImport.resetImportData()
|
||||
this.$refs.viewImport.importData.year = this.pageForm.year
|
||||
|
||||
+269
@@ -0,0 +1,269 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
/* 整个弹窗容器 */
|
||||
.custom-action-sheet {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
/* 设置弹窗最大高度,避免过高(可根据需要调整) */
|
||||
max-height: 80vh;
|
||||
height: auto; /* 允许内容撑开,但不超过 max-height */
|
||||
}
|
||||
|
||||
/* 可滚动的内容区域 */
|
||||
.scrollable-content {
|
||||
flex: 1;
|
||||
overflow-y: auto; /* 关键:只让内容滚动 */
|
||||
padding: 0 16px;
|
||||
/* 可选:防止滚动时文字贴边 */
|
||||
-webkit-overflow-scrolling: touch; /* iOS 滚动优化 */
|
||||
}
|
||||
|
||||
/* 底部按钮区域 */
|
||||
.dialog-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 8px;
|
||||
padding: 12px 16px;
|
||||
background: white;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
/* 注意:这里不用 position: fixed! */
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div id="app">
|
||||
<!-- 导航栏 -->
|
||||
<van-nav-bar title="基金会员申请" left-text="返回" left-arrow @click-left="historyBack" fixed
|
||||
placeholder></van-nav-bar>
|
||||
|
||||
<van-notice-bar left-icon="info-o" wrapable>
|
||||
温馨提醒:入校时间关联会费缴纳金额,请确认是否正确,若有疑问请联系校工会!另外,务必按您的实际情况选择基金会员类型!
|
||||
</van-notice-bar>
|
||||
<!-- 表单容器 -->
|
||||
<van-form ref="formRef" class="form-container">
|
||||
|
||||
<van-field required v-model="formData.userName" label="姓名" disabled></van-field>
|
||||
|
||||
<van-field required v-model="formData.loginName" label="工号" disabled></van-field>
|
||||
|
||||
<van-field required v-model="formData.applyTime" label="申请时间" disabled></van-field>
|
||||
|
||||
<van-field required v-model="formData.mobile" name="mobile" label="联系方式" placeholder="请输入联系方式"
|
||||
clearable type="tel" maxlength="11"
|
||||
:rules="[{ required: true, message: '请填写入校时间' }]"></van-field>
|
||||
|
||||
<van-field required v-model="formData.idCard" name="idCard" label="身份证号" placeholder="请输入身份证件号"
|
||||
clearable maxlength="18"></van-field>
|
||||
|
||||
<van-field
|
||||
v-model="formData.arrivalAtSchoolDate"
|
||||
label="入校时间"
|
||||
placeholder="若没有入校时间,请联系校工会"
|
||||
disabled
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写入校时间' }]"
|
||||
></van-field>
|
||||
|
||||
<van-field
|
||||
v-model="formData.aidFundMemberUserType"
|
||||
name="aidFundMemberUserType"
|
||||
label="基金会员类型"
|
||||
readonly
|
||||
required
|
||||
is-link
|
||||
placeholder="请选择基金会员类型"
|
||||
@click="aidFundMemberUserTypeClick"
|
||||
:rules="[{ required: true, message: '请选择基金会员类型' }]"
|
||||
clickable
|
||||
></van-field>
|
||||
<van-popup position="bottom" round v-model:show="showAidFundMemberUserTypePicker">
|
||||
<van-picker show-toolbar
|
||||
:default-index="aidFundMemberUserTypeIndex"
|
||||
:columns="aidFundMemberUserTypeOptions"
|
||||
@cancel="showAidFundMemberUserTypePicker = false"
|
||||
value-key="name"
|
||||
@confirm="(v)=>{formData.aidFundMemberUserType = v.name;showAidFundMemberUserTypePicker = false}"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
|
||||
<div style="padding: 10px;">
|
||||
<van-checkbox v-model="formData.isRead" shape="square" @change="isReadChange">
|
||||
<div style="color:#246FB4;" @click.stop="isReadClick">
|
||||
中国地质大学(武汉)教职工重大疾病互助基金管理办法
|
||||
</div>
|
||||
</van-checkbox>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button block type="primary" :disabled="applyInfo.disabled"
|
||||
@click="openSubmit">{{ applyInfo.label }}
|
||||
</van-button>
|
||||
</div>
|
||||
|
||||
</van-form>
|
||||
|
||||
<!-- 弹窗 -->
|
||||
<van-action-sheet
|
||||
title="温馨提示"
|
||||
v-model="dialogVisible"
|
||||
:close-on-click-overlay="false"
|
||||
class="custom-action-sheet"
|
||||
>
|
||||
<!-- 内容可滚动区域 -->
|
||||
<div class="scrollable-content">
|
||||
<pay-record ref="payRecord"></pay-record>
|
||||
|
||||
|
||||
</div>
|
||||
<van-notice-bar
|
||||
v-if="!$store.state.user.aidFundMember"
|
||||
class="mt10"
|
||||
color="#faad14"
|
||||
background="#fffbe6"
|
||||
:scrollable="false"
|
||||
>
|
||||
本次入会,您需要缴费会费{{ payMoney }}元,请详知。
|
||||
</van-notice-bar>
|
||||
<!-- 底部按钮:固定在弹窗底部,不滚动 -->
|
||||
<div class="dialog-footer">
|
||||
|
||||
<van-button plain hairline @click="dialogVisible = false">取消</van-button>
|
||||
<van-button type="primary" @click="onSubmit">提交</van-button>
|
||||
</div>
|
||||
</van-action-sheet>
|
||||
|
||||
</div>
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/payRecord.js"){}#-->
|
||||
new Vue({
|
||||
el: '#app',
|
||||
store,
|
||||
dicts: ["AIDFUND_MEMBER_USER_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
formData: {},
|
||||
aidFundMemberUserTypeOptions: [],
|
||||
isReadChangeType: true,
|
||||
applyInfo: {
|
||||
disabled: true,
|
||||
label: '申请加入'
|
||||
},
|
||||
dialogVisible: false,
|
||||
payMoney: 0,
|
||||
payRecordsDialogTitle: "",
|
||||
payRecordList: [],
|
||||
|
||||
showAidFundMemberUserTypePicker: false,
|
||||
aidFundMemberUserTypeIndex: 0
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'pay-record': payRecord
|
||||
},
|
||||
methods: {
|
||||
onSubmit() {
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交申请吗?",
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/aidFund/apply/submit", {
|
||||
data: JSON.stringify(this.formData)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.dialogVisible = false
|
||||
this.$pjaxReplace("/platform/medicalMutualAid/aidFund/applyMine/h5")
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
async openSubmit() {
|
||||
await this.$refs.formRef.validate();
|
||||
if (!this.formData.isRead) {
|
||||
this.$dialog.alert({
|
||||
title: '温馨提醒',
|
||||
message: '请阅读《教职工重大疾病互助基金管理办法》的通知文件',
|
||||
}).then(() => {
|
||||
})
|
||||
return
|
||||
}
|
||||
this.getPayMoney()
|
||||
this.dialogVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.payRecord.getPayRecords()
|
||||
})
|
||||
},
|
||||
isReadClick() {
|
||||
this.isReadChangeType = false
|
||||
this.$set(this.formData, 'isRead', true)
|
||||
this.$commonUtil.previewFile({
|
||||
suffix: "pdf",
|
||||
downloadPath: "/platform/sys/file/download?id=orpgde84uggjmpflbob83tadan",
|
||||
name: "中国地质大学(武汉)教职工重大疾病互助基金管理办法.pdf",
|
||||
id: "orpgde84uggjmpflbob83tadan"
|
||||
})
|
||||
},
|
||||
isReadChange() {
|
||||
if (this.isReadChangeType) {
|
||||
this.$set(this.formData, 'isRead', false)
|
||||
this.$dialog.alert({
|
||||
title: '温馨提醒',
|
||||
message: '请阅读《教职工重大疾病互助基金管理办法》的通知文件',
|
||||
}).then(() => {
|
||||
})
|
||||
return
|
||||
}
|
||||
},
|
||||
aidFundMemberUserTypeClick() {
|
||||
if (this.formData.aidFundMemberUserType) {
|
||||
this.aidFundMemberUserTypeIndex = this.aidFundMemberUserTypeOptions.findIndex(
|
||||
item => item.name === this.formData.aidFundMemberUserType
|
||||
);
|
||||
}
|
||||
this.showAidFundMemberUserTypePicker = true
|
||||
},
|
||||
canApply() {
|
||||
this.$axios.post('/platform/medicalMutualAid/aidFund/apply/canApply').then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.applyInfo = resp.data
|
||||
}
|
||||
})
|
||||
},
|
||||
getPayMoney() {
|
||||
this.$axios.post('/platform/medicalMutualAid/aidFund/apply/getPayMoney', {arrivalAtSchoolDate: this.formData.arrivalAtSchoolDate}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.payMoney = resp.data
|
||||
}
|
||||
})
|
||||
},
|
||||
initData() {
|
||||
this.canApply()
|
||||
this.$set(this.formData, "userName", this.$store.state.user.username)
|
||||
this.$set(this.formData, "loginName", this.$store.state.user.loginname)
|
||||
this.$set(this.formData, "mobile", this.$store.state.user.mobile)
|
||||
this.$set(this.formData, "idCard", this.$store.state.user.idCard)
|
||||
this.$set(this.formData, "aidFundMemberUserType", this.$store.state.user.aidFundMemberUserType)
|
||||
if (this.$store.state.user.arrivalAtSchoolDate) {
|
||||
this.$set(this.formData, "arrivalAtSchoolDate", this.$moment(this.$store.state.user.arrivalAtSchoolDate).format("YYYY-MM-DD"))
|
||||
}
|
||||
this.$set(this.formData, "applyTime", this.$moment(new Date()).format("YYYY-MM-DD"))
|
||||
|
||||
this.$businessTool.getDictOptions("AIDFUND_MEMBER_USER_TYPE").then(data => {
|
||||
this.aidFundMemberUserTypeOptions = data
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+113
@@ -0,0 +1,113 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<div id="app">
|
||||
<!-- 导航栏 -->
|
||||
<van-nav-bar title="我的申请" left-text="返回" left-arrow @click-left="historyBack" fixed
|
||||
placeholder></van-nav-bar>
|
||||
|
||||
<table-list api="/platform/medicalMutualAid/aidFund/applyMine/pageData" :page_form.sync="pageForm"
|
||||
ref="tableListRef" @ready="doSearch">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="工号">{{row.loginName}}</table-column>
|
||||
<table-column label="姓名">{{row.userName}}</table-column>
|
||||
<table-column label="所属工会">{{row.unionName}}</table-column>
|
||||
<table-column label="所属单位">{{row.unitName}}</table-column>
|
||||
<table-column label="变更类型">
|
||||
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
|
||||
:value="row.changeType"></dict-tag>
|
||||
</table-column>
|
||||
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||
<i class="fa fa-reply"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onFinishTask(row)">
|
||||
<i class="fa fa-mail-forward"></i>
|
||||
<span>提交</span>
|
||||
</div>
|
||||
<div class="action-btn delete" @click="onDelete(row)"
|
||||
v-if="row.taskKey === 'startTask' || !row.instanceId">
|
||||
<i class="fa fa-trash"></i>
|
||||
<span>删除</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
</div>
|
||||
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
year: new Date().getFullYear(),
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onFinishTask(row) {
|
||||
this.$dialog.confirm({
|
||||
title: "温馨提示",
|
||||
message: "您确定要重新提交吗?",
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/aidFund/applyMine/submitAgain", {taskId: row.startTaskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
onRevoke(row) {
|
||||
this.$dialog.confirm({
|
||||
title: "温馨提示",
|
||||
message: "您确定要撤回吗?",
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.startTaskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
onDelete(id) {
|
||||
this.$dialog.confirm({
|
||||
title: "温馨提示",
|
||||
message: "您确定要取消申请吗?取消后将不能撤?",
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/aidFund/applyMine/delete", {id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
const AID_FUND_INFO = {
|
||||
template: /*language=HTML*/
|
||||
`
|
||||
<van-action-sheet v-model="visible" title="查看详情">
|
||||
<div class="detail-container">
|
||||
<van-cell-group title="基本信息">
|
||||
<van-cell title="申请人">{{viewData.username}}</van-cell>
|
||||
<van-cell title="工号">{{viewData.loginname}}</van-cell>
|
||||
<van-cell title="联系方式">{{viewData.mobile}}</van-cell>
|
||||
<van-cell title="性别">{{viewData.sex}}</van-cell>
|
||||
<van-cell title="入校时间">{{$moment(viewData.arrivalAtSchoolDate).format('YYYY-MM-DD')}}</van-cell>
|
||||
<van-cell title="所在单位">{{viewData.unitName}}</van-cell>
|
||||
<van-cell title="所在工会">{{viewData.unionName}}</van-cell>
|
||||
</van-cell-group>
|
||||
|
||||
|
||||
<template v-for="task in doneTasks">
|
||||
<van-cell-group :title="task.displayName" v-if="task.ext.isFirstTaskNode">
|
||||
<van-cell title="申请用户">{{ task.ext.initiatorName }}({{task.ext.initiatorAccount}})
|
||||
</van-cell>
|
||||
<van-cell title="申请时间">{{ task.finishTime }}</van-cell>
|
||||
<van-cell title="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
|
||||
<van-cell-group :title="task.displayName" v-else>
|
||||
<van-cell title="办理用户">{{ task.taskFormData.userName }}({{task.taskFormData.loginName}})
|
||||
</van-cell>
|
||||
<van-cell title="办理时间">{{ task.finishTime }}</van-cell>
|
||||
<van-cell title="办理结果">
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</van-cell>
|
||||
<van-cell title="办理意见" v-if="!task.ext.isFirstTaskNode" class="direction-column-cell">
|
||||
<div v-html="task.taskFormData.tf_opinion"></div>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
</div>
|
||||
<slot></slot>
|
||||
</van-action-sheet>
|
||||
`,
|
||||
dicts: ["PROCESS_TASK_SUBMIT_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
row: {},
|
||||
viewData: {},
|
||||
doneTasks: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 打开
|
||||
onOpen(row) {
|
||||
this.row = row
|
||||
this.visible = true
|
||||
this.info()
|
||||
this.getDoneTasks()
|
||||
},
|
||||
|
||||
// 关闭
|
||||
onClose() {
|
||||
this.visible = false
|
||||
},
|
||||
|
||||
// 获取申请信息
|
||||
info() {
|
||||
this.$axios.post("/platform/medicalMutualAid/aidFund/apply/info", {id: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 获取已办任务审批记录
|
||||
getDoneTasks() {
|
||||
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.doneTasks = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
const payRecord = {
|
||||
template: /*language=HTML*/ `
|
||||
<div style="max-height: 250px">
|
||||
<!-- 展开面板 -->
|
||||
<van-collapse v-model="activeNames" @change="onExpand">
|
||||
<van-collapse-item
|
||||
v-for="(row, index) in records"
|
||||
:key="row.id"
|
||||
:name="row.id"
|
||||
:title="titleTemplate(row, index)"
|
||||
class="pay-row"
|
||||
>
|
||||
<!-- 展开后详情 -->
|
||||
<van-cell-group>
|
||||
<van-cell title="缴费年份" :value="row.year"></van-cell>
|
||||
<van-cell title="缴费金额">
|
||||
<template #default>
|
||||
<van-tag type="primary">{{ row.money }}</van-tag>
|
||||
</template>
|
||||
</van-cell>
|
||||
<van-cell title="扣款状态">
|
||||
<template #default>
|
||||
<van-tag :type="row.isPayed ? 'success' : 'default'">
|
||||
{{ row.isPayed ? '已扣款' : '未扣款' }}
|
||||
</van-tag>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</van-collapse-item>
|
||||
</van-collapse>
|
||||
|
||||
<!-- 空提示 -->
|
||||
<van-empty v-if="!loading && !records.length" description="暂无缴费记录"/>
|
||||
</div>
|
||||
`,
|
||||
props: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: true,
|
||||
activeNames: [] ,
|
||||
records: []
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
userid: 'getPayRecords'
|
||||
},
|
||||
methods: {
|
||||
onExpand(names) {
|
||||
// 如需异步加载详情可在此处理
|
||||
|
||||
},
|
||||
titleTemplate(row, idx) {
|
||||
return '序号 ' + (idx + 1) + ' · ' + row.year + ' · ¥' + row.money
|
||||
},
|
||||
async getPayRecords(userId) {
|
||||
this.loading = true
|
||||
try {
|
||||
this.$axios.post("/platform/medicalMutualAid/aidFund/apply/getUserPayRecordList",{userId}).then(resp=>{
|
||||
if (resp.code === 0){
|
||||
this.records = resp.data
|
||||
}
|
||||
})
|
||||
} catch (e) {
|
||||
this.$notify({ type: 'danger', message: '获取缴费记录失败' })
|
||||
} finally {
|
||||
this.loading = false
|
||||
}
|
||||
}
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
.pay-row {
|
||||
margin-bottom: 8px;
|
||||
background: #fafafa;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
}
|
||||
`
|
||||
}
|
||||
+271
@@ -0,0 +1,271 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
<van-sticky>
|
||||
<van-nav-bar title="互管会审核" left-text="返回" left-arrow @click-left="historyBack" fixed
|
||||
placeholder></van-nav-bar>
|
||||
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
placeholder="请输入工号或者姓名进行查询"
|
||||
show-action
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
@search="doSearch">
|
||||
<template #action>
|
||||
<div @click="doSearch">搜索</div>
|
||||
</template>
|
||||
</van-search>
|
||||
<van-dropdown-menu
|
||||
:close-on-click-outside="false"
|
||||
:close-on-click-overlay="false"
|
||||
>
|
||||
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||
<van-dropdown-item :options="unionList" @change="unionChange"
|
||||
v-model="pageForm.unionId"></van-dropdown-item>
|
||||
<van-dropdown-item :options="unitList" @change="doSearch" v-model="pageForm.unitId"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
<van-tabs v-model="pageForm.approvalText"
|
||||
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||
<van-tab title="已审核" name="1"></van-tab>
|
||||
<van-tab title="未审核" name="0"></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/medicalMutualAid/aidFund/foundationAudit/pageData" :page_form.sync="pageForm"
|
||||
ref="tableListRef" @ready="doSearch">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="工号">{{row.loginName}}</table-column>
|
||||
<table-column label="姓名">{{row.userName}}</table-column>
|
||||
<table-column label="所属工会">{{row.unionName}}</table-column>
|
||||
<table-column label="所属单位">{{row.unitName}}</table-column>
|
||||
<table-column label="变更类型">
|
||||
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
|
||||
:value="row.changeType"></dict-tag>
|
||||
</table-column>
|
||||
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||
<i class="fa fa-check"></i>
|
||||
<span>审核</span>
|
||||
</div>
|
||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||
<i class="fa fa-undo"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<info ref="infoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{formData.taskName}}</div>
|
||||
<van-form ref="formRef">
|
||||
<van-field
|
||||
:rules="[{ required: true, message: '请选择审核状态' }]"
|
||||
label="审核状态"
|
||||
name="submitType">
|
||||
<template #input>
|
||||
<van-radio-group direction="horizontal" v-model="formData.submitType">
|
||||
<van-radio :name="2" shape="square">拒绝</van-radio>
|
||||
<van-radio :name="1" shape="square">同意</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
</van-field>
|
||||
<div v-if="formData.submitType===1
|
||||
&&formData.changeType==='AIDFUND_MEMBER_CHANGE_TYPE_ONE'">
|
||||
<van-field
|
||||
v-model="formData.arrivalAtSchoolDate"
|
||||
label="入校时间"
|
||||
placeholder="若没有入校时间,请联系校工会"
|
||||
disabled
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写入校时间' }]"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.money"
|
||||
label="金额"
|
||||
placeholder="金额"
|
||||
disabled
|
||||
required
|
||||
:rules="[{ required: true, message: '请填写入校时间' }]"
|
||||
></van-field>
|
||||
</div>
|
||||
<van-field
|
||||
v-model="formData.tf_opinion"
|
||||
name="tf_opinion"
|
||||
label="审批意见"
|
||||
placeholder="请输入审批意见"
|
||||
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||
required
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button block @click="$refs.infoRef.onClose()">关闭</van-button>
|
||||
<van-button type="primary" block @click="handleTaskAction(formData.submitType)">提交</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</info>
|
||||
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/applyInfo.js"){}#-->
|
||||
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
store,
|
||||
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
searchKeyword: '',
|
||||
unionId: null,
|
||||
unitId: null,
|
||||
approvalText: "0",
|
||||
approval: false,
|
||||
year: new Date().getFullYear()
|
||||
},
|
||||
formData: {},
|
||||
showApprovalForm: false,
|
||||
unionList: [],
|
||||
unitList: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"info": AID_FUND_INFO
|
||||
},
|
||||
methods: {
|
||||
getPayMoney() {
|
||||
this.$axios.post('/platform/medicalMutualAid/aidFund/foundationAudit/getPayMoney', {
|
||||
arrivalAtSchoolDate: this.formData.arrivalAtSchoolDate,
|
||||
userId: this.formData.userId
|
||||
}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.$set(this.formData, 'money', resp.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
onReady() {
|
||||
this.doSearch()
|
||||
},
|
||||
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
},
|
||||
|
||||
// 查看详情
|
||||
onView(row) {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
},
|
||||
|
||||
onApproval(row) {
|
||||
this.showApprovalForm = true
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
arrivalAtSchoolDate: row.arrivalAtSchoolDate,
|
||||
userId: row.userId,
|
||||
changeType: row.changeType,
|
||||
submitType: 1,
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
this.getPayMoney()
|
||||
},
|
||||
|
||||
async handleTaskAction(val) {
|
||||
try {
|
||||
await this.$refs.formRef.validate();
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/medicalMutualAid/aidFund/foundationAudit/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
}), id: this.formData.id
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.infoRef.onClose()
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
// 撤回
|
||||
onRevoke(row) {
|
||||
debugger
|
||||
this.$dialog.confirm({
|
||||
title: '提示',
|
||||
message: '您确定要撤回吗?',
|
||||
}).then(() => {
|
||||
this.$axios.post('/flow/common/revokeTask', {taskId: row.taskId}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success('撤回成功');
|
||||
this.doSearch();
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
unionChange() {
|
||||
this.$set(this.pageForm, "unitId", null)
|
||||
this.flushUnits()
|
||||
this.doSearch()
|
||||
},
|
||||
async flushUnits() {
|
||||
this.unitList = await this.$businessTool.listUnit(unionId)
|
||||
this.unitList.forEach((v) => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
this.unitList.unshift({text: "全部单位", value: null})
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.unitList = await this.$businessTool.listUnit()
|
||||
this.unitList.forEach((v) => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
this.unitList.unshift({text: "全部单位", value: null})
|
||||
this.unionList = await this.$businessTool.listUnion()
|
||||
this.unionList.forEach((v) => {
|
||||
v.text = v.name
|
||||
v.value = v.id
|
||||
})
|
||||
this.unionList.unshift({text: "全部工会", value: null})
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+197
@@ -0,0 +1,197 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
<van-sticky>
|
||||
<van-nav-bar title="离退休审核" left-text="返回" left-arrow @click-left="historyBack" fixed
|
||||
placeholder></van-nav-bar>
|
||||
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
placeholder="请输入工号或者姓名进行查询"
|
||||
show-action
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
@search="doSearch">
|
||||
<template #action>
|
||||
<div @click="doSearch">搜索</div>
|
||||
</template>
|
||||
</van-search>
|
||||
<van-dropdown-menu
|
||||
:close-on-click-outside="false"
|
||||
:close-on-click-overlay="false"
|
||||
>
|
||||
<year-van-dropdown-item :num="5" @change="doSearch" v-model="pageForm.year"></year-van-dropdown-item>
|
||||
|
||||
</van-dropdown-menu>
|
||||
<van-tabs v-model="pageForm.approvalText"
|
||||
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||
<van-tab title="已审核" name="1"></van-tab>
|
||||
<van-tab title="未审核" name="0"></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/medicalMutualAid/aidFund/retirementAudit/pageData" :page_form.sync="pageForm"
|
||||
ref="tableListRef" @ready="doSearch">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="工号">{{row.loginName}}</table-column>
|
||||
<table-column label="姓名">{{row.userName}}</table-column>
|
||||
<table-column label="所属工会">{{row.unionName}}</table-column>
|
||||
<table-column label="所属单位">{{row.unitName}}</table-column>
|
||||
<table-column label="变更类型">
|
||||
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
|
||||
:value="row.changeType"></dict-tag>
|
||||
</table-column>
|
||||
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||
<i class="fa fa-check"></i>
|
||||
<span>审核</span>
|
||||
</div>
|
||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||
<i class="fa fa-undo"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<info ref="infoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{formData.taskName}}</div>
|
||||
<van-form ref="formRef">
|
||||
<van-field
|
||||
v-model="formData.tf_opinion"
|
||||
name="tf_opinion"
|
||||
label="审批意见"
|
||||
placeholder="请输入审批意见"
|
||||
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||
required
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button block @click="$refs.infoRef.onClose()">关闭</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(2)">拒绝</van-button>
|
||||
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</info>
|
||||
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/applyInfo.js"){}#-->
|
||||
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
store,
|
||||
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
searchKeyword: '',
|
||||
unionId: null,
|
||||
unitId: null,
|
||||
approvalText: "0",
|
||||
approval: false,
|
||||
year: new Date().getFullYear()
|
||||
},
|
||||
formData: {},
|
||||
showApprovalForm: false,
|
||||
unionList: [],
|
||||
unitList: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"info": AID_FUND_INFO
|
||||
},
|
||||
methods: {
|
||||
onReady() {
|
||||
this.doSearch()
|
||||
},
|
||||
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
},
|
||||
|
||||
// 查看详情
|
||||
onView(row) {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
},
|
||||
|
||||
onApproval(row) {
|
||||
this.showApprovalForm = true
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
},
|
||||
|
||||
async handleTaskAction(val) {
|
||||
try {
|
||||
await this.$refs.formRef.validate();
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.infoRef.onClose()
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
// 撤回
|
||||
onRevoke(row) {
|
||||
debugger
|
||||
this.$dialog.confirm({
|
||||
title: '提示',
|
||||
message: '您确定要撤回吗?',
|
||||
}).then(() => {
|
||||
this.$axios.post('/flow/common/revokeTask', {taskId: row.taskId}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success('撤回成功');
|
||||
this.doSearch();
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+187
@@ -0,0 +1,187 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
<van-sticky>
|
||||
<van-nav-bar title="分工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed
|
||||
placeholder></van-nav-bar>
|
||||
|
||||
<van-search
|
||||
v-model="pageForm.searchKeyword"
|
||||
placeholder="请输入工号或者姓名进行查询"
|
||||
show-action
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
@search="doSearch">
|
||||
<template #action>
|
||||
<div @click="doSearch">搜索</div>
|
||||
</template>
|
||||
</van-search>
|
||||
<van-tabs v-model="pageForm.approvalText"
|
||||
@change="(val)=>{this.pageForm.approval = val==='1';this.doSearch();}">
|
||||
<van-tab title="已审核" name="1"></van-tab>
|
||||
<van-tab title="未审核" name="0"></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/medicalMutualAid/aidFund/unionAudit/pageData" :page_form.sync="pageForm"
|
||||
ref="tableListRef" @ready="doSearch">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="工号">{{row.loginName}}</table-column>
|
||||
<table-column label="姓名">{{row.userName}}</table-column>
|
||||
<table-column label="所属工会">{{row.unionName}}</table-column>
|
||||
<table-column label="所属单位">{{row.unitName}}</table-column>
|
||||
<table-column label="变更类型">
|
||||
<dict-tag :options="dict.type.AIDFUND_MEMBER_CHANGE_TYPE"
|
||||
:value="row.changeType"></dict-tag>
|
||||
</table-column>
|
||||
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||
<i class="fa fa-check"></i>
|
||||
<span>审核</span>
|
||||
</div>
|
||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(row)">
|
||||
<i class="fa fa-undo"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<info ref="infoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
<div class="process-title">{{formData.taskName}}</div>
|
||||
<van-form ref="formRef">
|
||||
<van-field
|
||||
v-model="formData.tf_opinion"
|
||||
name="tf_opinion"
|
||||
label="审批意见"
|
||||
placeholder="请输入审批意见"
|
||||
:rules="[{ required: true, message: '请填写审批意见' }]"
|
||||
required
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button block @click="$refs.infoRef.onClose()">关闭</van-button>
|
||||
<van-button type="danger" block @click="handleTaskAction(2)">拒绝</van-button>
|
||||
<van-button type="primary" block @click="handleTaskAction(1)">同意</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</info>
|
||||
|
||||
</div>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/applyInfo.js"){}#-->
|
||||
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
store,
|
||||
dicts: ["AIDFUND_MEMBER_USER_TYPE", "AIDFUND_MEMBER_CHANGE_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
searchKeyword: '',
|
||||
unionId: '',
|
||||
unitId: '',
|
||||
approvalText: "0",
|
||||
approval: false
|
||||
},
|
||||
formData: {},
|
||||
showApprovalForm: false,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"info": AID_FUND_INFO
|
||||
},
|
||||
methods: {
|
||||
onReady() {
|
||||
this.doSearch()
|
||||
},
|
||||
|
||||
doSearch() {
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
},
|
||||
|
||||
// 查看详情
|
||||
onView(row) {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
},
|
||||
|
||||
onApproval(row) {
|
||||
this.showApprovalForm = true
|
||||
this.$refs.infoRef.onOpen(row)
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
},
|
||||
|
||||
async handleTaskAction(val) {
|
||||
try {
|
||||
await this.$refs.formRef.validate();
|
||||
this.$dialog.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要提交吗?"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.infoRef.onClose()
|
||||
this.$toast.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
// 撤回
|
||||
onRevoke(row) {
|
||||
debugger
|
||||
this.$dialog.confirm({
|
||||
title: '提示',
|
||||
message: '您确定要撤回吗?',
|
||||
}).then(() => {
|
||||
this.$axios.post('/flow/common/revokeTask', {taskId: row.taskId}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$toast.success('撤回成功');
|
||||
this.doSearch();
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user