first commit
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,218 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="pull-right offscreen-right mt5">
|
||||
<el-button icon="el-icon-close" type="primary" size="small" :loading="submitLoading" plain
|
||||
@click="joinMemberFamily">批量删除
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%;" row-key="id"
|
||||
@sort-change="pageOrder" v-loading="tableLoading" :size="tableSize" class="vi-table"
|
||||
@selection-change="handleSelectionChange">
|
||||
<el-table-column :reserve-selection="true"
|
||||
type="selection"
|
||||
width="55">
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod"
|
||||
label="序号"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip>
|
||||
|
||||
<template scope="{row}" v-if="column.prop=='name'">
|
||||
<span v-if="row.name">{{ row.name }}</span>
|
||||
<span v-if="!row.name">暂无</span>
|
||||
</template>
|
||||
|
||||
<template scope="{row}" v-else-if="column.prop=='identity'">
|
||||
<el-tag v-if="row.identity.includes(1)" effect="light">运动员</el-tag>
|
||||
<el-tag v-if="row.identity.includes(2)" type="success" effect="light">教练
|
||||
</el-tag>
|
||||
<el-tag v-if="row.identity.includes(3)" type="warning" effect="light">领队
|
||||
</el-tag>
|
||||
<el-tag v-if="row.identity.includes(4)" type="warning"
|
||||
effect="light">处级领导
|
||||
</el-tag>
|
||||
<el-tag v-if="row.identity.includes(5)" type="warning" effect="light">替补
|
||||
</el-tag>
|
||||
|
||||
</template>
|
||||
|
||||
<template scope="{row}" v-else-if="column.prop=='divisionLevelLeadership'">
|
||||
<span v-if="row.divisionLevelLeadership==true">是</span>
|
||||
<span v-else>否</span>
|
||||
</template>
|
||||
|
||||
<template scope="{row}" v-else-if="column.prop=='status'">
|
||||
<span v-if="row.status==1">待审核</span>
|
||||
<span v-if="row.status==2" style="color: #66BD3D">报名成功</span>
|
||||
<span v-if="row.status==3" style="color: red">审核不通过</span>
|
||||
</template>
|
||||
<template scope="{row}" v-else-if="column.prop=='awardsMode'">
|
||||
<span v-if="row.awardsMode==1">团体</span>
|
||||
<span v-if="row.awardsMode==2">单项</span>
|
||||
</template>
|
||||
|
||||
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
|
||||
width="150px">
|
||||
<template scope="{row}">
|
||||
<el-button type="danger" icon="el-icon-delete" circle plain
|
||||
@click="doDelete(row)"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-row class="el-pagination-container" style="margin-bottom: 0px">
|
||||
<el-pagination
|
||||
@size-change="pageSizeChange"
|
||||
@current-change="pageNumberChange"
|
||||
:current-page="pageForm.pageNumber"
|
||||
:page-sizes="[10, 20, 30, 50]"
|
||||
:page-size="pageForm.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="pageForm.totalCount">
|
||||
</el-pagination>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props: {
|
||||
event_list: {
|
||||
type: Object,
|
||||
default: {},
|
||||
},
|
||||
},
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
searchName: "",
|
||||
searchKeyword: "",
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
pageOrderName: "",
|
||||
pageOrderBy: ""
|
||||
},
|
||||
selection: [],
|
||||
tableColumns: [
|
||||
{prop: 'name', label: '所属小队'},
|
||||
{prop: 'username', label: '姓名'},
|
||||
{prop: 'loginname', label: '工号'},
|
||||
{prop: 'mobile', label: '电话'},
|
||||
{prop: 'sex', label: '性别'},
|
||||
{prop: 'identity', label: '身份', sortable: true},
|
||||
// {prop: 'divisionLevelLeadership', label: '是否处级领导', sortable: true},
|
||||
{prop: 'status', label: '状态', sortable: true},
|
||||
// {prop: 'awardsMode', label: '项目类型'},
|
||||
{prop: 'allName', label: '报名项目'},
|
||||
],
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
event_list(val) {
|
||||
this.pageForm.activityId = val.activityId
|
||||
this.pageForm.eventId = val.eventId
|
||||
this.applyPageData(val)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
pageOrder(column) {
|
||||
this.pageForm.pageOrderName = column.prop;
|
||||
this.pageForm.pageOrderBy = column.order;
|
||||
this.applyPageData();
|
||||
},
|
||||
pageNumberChange(val) {
|
||||
this.pageForm.pageNumber = val;
|
||||
this.applyPageData();
|
||||
},
|
||||
pageSizeChange(val) {
|
||||
this.pageForm.pageSize = val;
|
||||
this.applyPageData();
|
||||
},
|
||||
doDelete(row) {
|
||||
const {id} = row
|
||||
this.$confirm('确定要删除该报名人员吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" === a) {
|
||||
this.$set(row, "loading", true)
|
||||
const resp = await $.post(loc() + "/doDelete", {id: id});
|
||||
if (resp.code === 0) {
|
||||
this.applyPageData()
|
||||
this.$emit('flush')
|
||||
this.notifySuccess(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
this.$set(row, "loading", false)
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.selection = val;
|
||||
},
|
||||
applyPageData() {
|
||||
sublime.showLoadingbar();
|
||||
this.tableLoading = true
|
||||
$.post(loc() + "/applyPageData", this.pageForm, (data) => {
|
||||
sublime.closeLoadingbar();
|
||||
this.tableLoading = false
|
||||
if (data.code == 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message.error(data.msg);
|
||||
}
|
||||
}, "json");
|
||||
},
|
||||
joinMemberFamily() {
|
||||
if (!this.selection.length) {
|
||||
this.$notify({
|
||||
title: '警告',
|
||||
message: '请先勾选需要删除的用户!',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
this.$confirm('是否将已勾选的人员删除?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
this.submitLoading = true
|
||||
const resp = await $.post(loc() + "/joinMemberFamily", {applysId: JSON.stringify(this.selection.map(v => v.id))})
|
||||
if (resp.code === 0) {
|
||||
this.applyPageData()
|
||||
this.$emit('flush')
|
||||
this.notifySuccess(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
this.submitLoading = false
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,519 @@
|
||||
<template>
|
||||
<el-tabs tab-position="top" v-model="activeName" v-loading="loading" class="activity_view">
|
||||
<el-tab-pane label="活动信息" name="1">
|
||||
<el-form label-suffix=":" label-position="left" style="padding: 20px 0">
|
||||
<el-row gutter="20">
|
||||
<el-col :span="24">
|
||||
<vi-title title="基本信息"></vi-title>
|
||||
</el-col>
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="活动计划">
|
||||
{{ viewData.plan | str }}
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
<el-col :span="8">
|
||||
<el-form-item label="活动名称">
|
||||
{{ viewData.name | str }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="活动地址">
|
||||
{{ viewData.address | str }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="活动级别">
|
||||
{{ activity.school.gameStyle[viewData.activityLevel] | str }}
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
<el-col :span="8">
|
||||
<el-form-item label="报名日期">
|
||||
{{ viewData.applyStartTime }} - {{ viewData.applyEndTime }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="主办单位">
|
||||
{{ viewData.unitSponsorName | str }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="协办单位">
|
||||
{{ viewData.unitJointlyName | str }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="活动时间">
|
||||
{{ viewData.startTime }} - {{ viewData.endTime }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="竞赛方式">
|
||||
<span v-if="viewData.gameStyle===1">竞赛类</span>
|
||||
<span v-if="viewData.gameStyle===2">非竞赛类</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="经费预算">
|
||||
{{ viewData.funding | money }} 元
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="报名方式">
|
||||
<span>{{ viewData.applyWay.map(v => activity.school.applyWay[v]).join('、') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :span="8">
|
||||
<el-form-item label="报名人员类型">
|
||||
<span v-if="viewData.personType===1">会员</span>
|
||||
<span v-if="viewData.personType===2">普通教职工</span>
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
|
||||
<el-col :span="24">
|
||||
<vi-title title="活动说明"></vi-title>
|
||||
</el-col>
|
||||
|
||||
<template v-if="viewData.gameStyle===1&&!viewData.applyWay.includes(3)">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="运动员资格 ">
|
||||
<div v-html="viewData.athleteQualification"></div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="报名方法 ">
|
||||
<div v-html="viewData.registrationMethod"></div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="竞赛方法 ">
|
||||
<div v-html="viewData.competitionMethod"></div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="奖励方法 ">
|
||||
<div v-html="viewData.rewardMethod"></div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="注意事项 ">
|
||||
<div v-html="viewData.precautions"></div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
|
||||
<template v-if="viewData.applyWay.includes(3)">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="活动通知 ">
|
||||
<div v-html="viewData.eventNotification"></div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="项目信息" name="2" v-if="!viewData.applyWay.includes(3)">
|
||||
<el-form style="margin-top: 20px">
|
||||
<el-card class="box-card mb10" v-for="app in viewData.events" shadow="hover">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>{{ app.allName }}</span>
|
||||
<el-button style="float: right; padding: 3px 5px" @click="$set(app,'show',!app.show)"
|
||||
type="text">{{ app.show ? '折叠' : '展开' }}
|
||||
</el-button>
|
||||
</div>
|
||||
<transition name="el-fade-in-linear">
|
||||
<div v-show="app.show" class="text item transition-box" style="padding: 20px 20px">
|
||||
<el-form label-suffix=":" label-position="left" style="padding: 20px 0">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="比赛模式">
|
||||
<span v-if="app.projectType==1">单项</span>
|
||||
<span v-else-if="app.projectType==2">团体</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
|
||||
<el-col :span="24" v-if="app.projectType==2">
|
||||
<vi-title title="团体报名人数"></vi-title>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :span="8" v-if="app.projectType==2">
|
||||
<el-form-item label="每队最少人数">
|
||||
{{ app.restrictMinNum | money }} 人
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
|
||||
<el-col :span="8" v-if="app.projectType==2&&app.applyType==1">
|
||||
<el-form-item label="每队最多人数">
|
||||
{{
|
||||
app.athletesMaxNum + app.leanderNum + app.coachNum + app.substituteNum | money
|
||||
}} 人
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8" v-if="app.projectType==2">
|
||||
<el-form-item label="最多创建几队 ">
|
||||
{{ app.restrictTotalTeam | money }} 队
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8" v-if="app.projectType==2&&app.applyType==1">
|
||||
<el-form-item label="运动员最多人数 ">
|
||||
{{ app.athletesMaxNum | money }} 人
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :span="8" v-if="app.projectType==2">
|
||||
<el-form-item label="运动员最少人数 ">
|
||||
{{ app.athletesMinNum | money }} 人
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
|
||||
<el-col :span="8" v-if="app.projectType==2&&app.applyType==1">
|
||||
<el-form-item label="领队人数 ">
|
||||
{{ app.leanderNum | money }} 人
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8" v-if="app.projectType==2&&app.applyType==1">
|
||||
<el-form-item label="教练人数">
|
||||
{{ app.coachNum | money }} 人
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8" v-if="app.projectType==2&&app.applyType==1">
|
||||
<el-form-item label="副处长(级)以上最少人数">
|
||||
{{ app.deputyDirectorNum | money }} 人
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8" v-if="app.projectType==2">
|
||||
<el-form-item label="男队人数 ">
|
||||
{{ app.restrictBoyNum | money }} 人
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8" v-if="app.projectType==2">
|
||||
<el-form-item label="女队人数 ">
|
||||
{{ app.restrictGirlNum | money }} 人
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8" v-if="app.projectType==2&&app.applyType==1">
|
||||
<el-form-item label="替补人员最少人数 ">
|
||||
{{ app.substituteNum | money }} 人
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</transition>
|
||||
</el-card>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="报名信息" name="3" v-if="viewData.applyWay.includes(2)">
|
||||
|
||||
<el-form style="margin-top: 20px">
|
||||
<el-form-item label="分工会报名信息 " label-width="150px" class="view-header"
|
||||
v-if="union_filter">
|
||||
<el-select v-model="unionid" placeholder="分工会筛选" filterable clearable
|
||||
style="width: 200px;float: right" size="small" @change="changeUnion"
|
||||
@clear="changeUnion">
|
||||
<el-option
|
||||
v-for="item in unions"
|
||||
:key="item.id"
|
||||
:label="item.unionname"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-card class="box-card mb10" v-for="app in viewData.apply" shadow="hover">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>{{ isDisPlayCode ? '(' + app.unioncode + ')' : null }}{{
|
||||
app.unionname
|
||||
}}({{ app.num |money }} 人)</span>
|
||||
<el-button style="float: right; padding: 3px 5px" @click="$set(app,'show',!app.show)"
|
||||
type="text">{{ app.show ? '折叠' : '展开' }}
|
||||
</el-button>
|
||||
</div>
|
||||
<transition name="el-fade-in-linear">
|
||||
<div v-show="app.show" class="text item transition-box" style="padding: 20px 20px">
|
||||
<el-timeline>
|
||||
<el-timeline-item timestamp="领队信息" placement="top">
|
||||
<el-card shadow="never">
|
||||
<el-form label-suffix=":" label-position="right" label-width="80px"
|
||||
style="margin-top: 30px">
|
||||
<el-row gutter="20">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="姓名">
|
||||
{{ app.leader.username | str }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="性别">
|
||||
{{ app.leader.sex | str }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="工号">
|
||||
{{ app.leader.loginname | str }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="电话">
|
||||
{{ app.leader.mobile | str }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="单位">
|
||||
{{ app.leader.unitname | str }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
<el-timeline-item timestamp="运动员信息" placement="top">
|
||||
|
||||
<el-table border stripe :data="app.apply" size="mini" :key="tableKey">
|
||||
<el-table-column
|
||||
type="index" label="序号" header-align="center" align="center" sortable
|
||||
width="100">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="team" header-align="center" align="center" sortable
|
||||
label="所属队">
|
||||
<template scope="{row}">
|
||||
<span v-if="row.team">{{ row.team }}</span>
|
||||
<span v-if="!row.team">单项比赛暂无小队</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="username" header-align="center" align="center"
|
||||
label="姓名">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="loginname" header-align="center" align="center"
|
||||
label="教工号">
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column
|
||||
prop="division_level_leadership" header-align="center" align="center" sortable
|
||||
label="是否处级领导">
|
||||
<template scope="{row:{division_level_leadership}}">
|
||||
<span v-if="division_level_leadership" class="text-primary">是</span>
|
||||
<span v-else class="text-danger">否</span>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
|
||||
<el-table-column
|
||||
prop="unitname" header-align="center" align="center" sortable
|
||||
label="单位">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="mobile" header-align="center" align="center"
|
||||
label="电话">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="sex" header-align="center" align="center" sortable
|
||||
label="性别">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="identity" header-align="center" align="center"
|
||||
label="身份">
|
||||
<template scope="{row}">
|
||||
<el-tag v-if="row.identity.includes('4')" type="info"
|
||||
effect="light">处级领导
|
||||
</el-tag>
|
||||
<el-tag v-if="row.identity.includes('3')" type="warning"
|
||||
effect="light">领队
|
||||
</el-tag>
|
||||
<el-tag v-if="row.identity.includes('2')" type="success"
|
||||
effect="light">教练
|
||||
</el-tag>
|
||||
<el-tag v-if="row.identity.includes('1')" effect="light">运动员
|
||||
</el-tag>
|
||||
<el-tag v-if="row.identity.includes('5')" type="danger"
|
||||
effect="light">替补
|
||||
</el-tag>
|
||||
<el-tag v-if="row.identity.includes('6')" effect="info">团长
|
||||
</el-tag>
|
||||
<el-tag v-if="row.identity.includes('7')" type="warning"
|
||||
effect="light">工作人员
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
</el-card>
|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props: {
|
||||
union_filter: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
default: '审核'
|
||||
},
|
||||
panes: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
},
|
||||
filters: {
|
||||
money(val) {
|
||||
return val ? val : 0
|
||||
},
|
||||
str(val) {
|
||||
return val ? val : '暂无'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeName: "1",
|
||||
viewData: {awardsMode: [], applyWay: [], combinationMethod: []},
|
||||
rootData: {},
|
||||
loading: true,
|
||||
units: [],
|
||||
unions: [],
|
||||
unionid: '',
|
||||
tableKey: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
changeUnion() {
|
||||
if (this.unionid) {
|
||||
this.viewData.apply = this.rootData.apply.filter(v => {
|
||||
return v.id === this.unionid
|
||||
})
|
||||
} else {
|
||||
this.viewData.apply = JSON.parse(JSON.stringify(this.rootData.apply))
|
||||
}
|
||||
this.tableKey = new Date().getTime()
|
||||
},
|
||||
hasPane(name) {
|
||||
return this.panes.includes(name)
|
||||
},
|
||||
async getUnitName(arr) {
|
||||
const clubs = await getClubs()
|
||||
const unitClubs = this.units.concat(clubs)
|
||||
let brr = []
|
||||
arr.forEach(a => {
|
||||
const unit = unitClubs.find(v => {
|
||||
return v.id === a
|
||||
})
|
||||
if (unit) {
|
||||
brr.push(unit.name)
|
||||
}
|
||||
})
|
||||
return brr.join(",")
|
||||
},
|
||||
async getInfo(id) {
|
||||
this.loading = true
|
||||
const {data} = await $.get("/platform/activity/common/findOne", {id})
|
||||
this.loading = false
|
||||
|
||||
if (data) {
|
||||
data.unitSponsorName = await this.getUnitName(JSON.parse(data.unitSponsor))
|
||||
data.unitJointly = JSON.parse(data.unitJointly)
|
||||
data.unitJointlyName = await this.getUnitName(data.unitJointly)
|
||||
data.applyWay = JSON.parse(data.applyWay)
|
||||
|
||||
if (!data.applyWay.includes(3) && data.events.length > 0) {
|
||||
data.events.forEach(v => {
|
||||
v.awardsMode = v.awardsMode
|
||||
v.combinationMethod = v.combinationMethod
|
||||
})
|
||||
}
|
||||
|
||||
if (data.applyWay.includes(2)) {
|
||||
data.apply.forEach(v => {
|
||||
const leaders = v.apply.filter(x => {
|
||||
return x.identity === 3
|
||||
})
|
||||
v.leader = {}
|
||||
if (leaders.length) {
|
||||
v.leader = leaders[0]
|
||||
}
|
||||
v.apply = v.apply.filter(x => {
|
||||
return x.identity !== 3
|
||||
})
|
||||
})
|
||||
|
||||
data.apply.sort((a, b) => {
|
||||
return b.num - a.num
|
||||
})
|
||||
|
||||
if (data.apply.length === 1) {
|
||||
data.apply[0].show = true
|
||||
}
|
||||
|
||||
this.unions = data.apply.map(v => {
|
||||
return {id: v.id, unionname: v.unionname}
|
||||
})
|
||||
}
|
||||
|
||||
this.rootData = clone(data)
|
||||
this.viewData = data
|
||||
this.tableKey = new Date().getTime()
|
||||
} else {
|
||||
this.viewData = {}
|
||||
this.$message({message: "获取信息失败", type: 'error'});
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.units = await getUnits(null)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.mb10 {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.activity_view .el-card__header {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.activity_view .el-card__body {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.activity_view .el-timeline {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,98 @@
|
||||
<template>
|
||||
<!-- <div>
|
||||
<el-form label-suffix=":" label-position="left" style="padding: 20px 0">
|
||||
<el-row gutter="20">
|
||||
<el-col :span="24">
|
||||
<vi-title title="计划详情"></vi-title>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="计划名称">
|
||||
{{ viewData.name }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预计时间">
|
||||
{{ viewData.time }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动项目">
|
||||
{{ viewData.allName }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="计划类型">
|
||||
{{ viewData.type == 1 ? '校活动计划' : viewData.type == 2 ? '分工会活动计划' : '协会(社团)计划' }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="计划内容 ">
|
||||
<div v-html="viewData.content"></div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>-->
|
||||
<div style="width: 80%; margin: 0 auto">
|
||||
<vi-title title="计划详情"></vi-title>
|
||||
<el-descriptions :column="2" border class="table_fixed">
|
||||
<el-descriptions-item label="计划名称">
|
||||
{{ viewData.name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="预计时间">
|
||||
{{ viewData.time }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="预算费用">
|
||||
{{ viewData.money }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="计划类型">
|
||||
{{ viewData.type == 40001 ? '校活动计划' : viewData.type == 40002 ? '分工会活动计划' : '协会(社团)计划' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="计划内容" :span="2">
|
||||
<div v-html="viewData.content"></div>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props: {
|
||||
label: {
|
||||
type: String,
|
||||
default: '审核'
|
||||
},
|
||||
panes: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
viewData: {},
|
||||
loading: true,
|
||||
tableKey: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getInfo(id) {
|
||||
this.loading = true
|
||||
const {data} = await $.get("/platform/activity/common/findOnePlan", {id})
|
||||
this.loading = false
|
||||
|
||||
if (data) {
|
||||
this.viewData = data
|
||||
this.tableKey = new Date().getTime()
|
||||
} else {
|
||||
this.viewData = {}
|
||||
this.$message({message: "获取信息失败", type: 'error'});
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@@ -0,0 +1,362 @@
|
||||
<template>
|
||||
<el-tabs tab-position="top" v-model="activeName" v-loading="loading">
|
||||
<el-tab-pane label="活动基础信息" name="1">
|
||||
<el-form label-suffix=":" style="padding: 20px 0" label-width="120px">
|
||||
<el-form-item class="item-center">{{ viewData.name }}</el-form-item>
|
||||
|
||||
|
||||
<el-row gutter="60">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人">
|
||||
<span v-if="viewData.username">
|
||||
{{ viewData.username }}
|
||||
({{ viewData.loginname }})</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系方式">
|
||||
{{ viewData.mobile }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动编号">
|
||||
{{ viewData.activityCode }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动项目类型">
|
||||
{{ viewData.projectTypeName }}({{ viewData.projectTypeCode }})
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动类型">
|
||||
{{ viewData.type === 1 ? '分工会活动' : viewData.type === 2 ? '协会社团活动' : '校工会活动' }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动计划时间">
|
||||
{{ viewData.startPlannedDate + ' - ' + viewData.endPlannedDate }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动时间">{{ viewData.startTime }} - {{
|
||||
viewData.endTime
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="viewData.applyStartTime">
|
||||
<el-form-item label="报名时间">{{ viewData.applyStartTime }} - {{
|
||||
viewData.applyEndTime
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动人数">{{ viewData.peopleNum || '暂无' }}</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="活动内容">{{ viewData.activityContent }}</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="活动地点">{{ viewData.address }}</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="报名方式">
|
||||
<span v-if="viewData.signUpMethod===1">个人报名</span>
|
||||
<span v-else-if="viewData.signUpMethod===2">分工会报名</span>
|
||||
<span v-else-if="viewData.signUpMethod===3">组队报名</span>
|
||||
<span v-else-if="!viewData.signUpMethod">无需报名</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动提醒">
|
||||
{{ viewData.xlFlag ? '提醒' : '不提醒' }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否用于报名">
|
||||
<span v-if="viewData.isEnrollSystem">活动报名</span>
|
||||
<span v-else>活动管理</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12" v-if="viewData.signUpMethod!=null">
|
||||
<el-form-item label="报名人数限制">
|
||||
<span v-if="viewData.userNumberLimit===1">总人数限制({{
|
||||
viewData.totalUserNumberLimit
|
||||
}}人)</span>
|
||||
<span v-else-if="viewData.userNumberLimit===2">分工会人数限制</span>
|
||||
<span v-else-if="!viewData.userNumberLimit">不限制</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" v-if="viewData.userNumberLimit===2">
|
||||
<el-form-item label="分工会限制名额">
|
||||
<el-table border stripe :data="viewData.unionUserNumberLimit" size="small"
|
||||
height="500">
|
||||
<el-table-column type="index" label="序号" header-align="center" align="center"
|
||||
width="100">
|
||||
</el-table-column>
|
||||
<el-table-column label="分工会名称" prop="unionName"></el-table-column>
|
||||
<el-table-column label="分工会人数" prop="unionNum"></el-table-column>
|
||||
<el-table-column label="限制人数" prop="limitNum"></el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item v-if="viewData.type===1" label="所属工会">
|
||||
{{ !viewData.unionname ? '暂无' : viewData.unionname }}
|
||||
</el-form-item>
|
||||
<el-form-item v-if="viewData.type===2" label="所属社团">
|
||||
{{ !viewData.clubName ? '暂无' : viewData.clubName }}
|
||||
</el-form-item>
|
||||
<el-form-item v-if="viewData.type===3" label="所属组织">
|
||||
校工会
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12" v-if="[1,2].includes(viewData.signUpMethod)">
|
||||
<el-form-item label="是否需要签到">
|
||||
{{ viewData.needSign ? '需要' : '不需要' }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12" v-if="viewData.signUpMethod!=null">
|
||||
<el-form-item label="签到半径(m)" v-if="viewData.needSign">
|
||||
{{ viewData.rangeMeter + '米' }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="封面图" prop="cover">
|
||||
<img v-if="viewData.cover"
|
||||
:src="FILE_DOMAIN + '/fileStreamPreview?id=' + viewData.cover"
|
||||
class="avatar" style="height: 200px;width: auto">
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" v-if="viewData.needSign">
|
||||
<el-form-item prop="" label="活动签到点位">
|
||||
<el-card shadow="never">
|
||||
<div style="width: 100%;height: 500px" id="signMap"></div>
|
||||
</el-card>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="活动费用" name="3" v-if="!viewData.isEnrollSystem">
|
||||
<el-form label-suffix=":" label-position="left" style="padding: 20px 0" label-width="80px">
|
||||
|
||||
<el-table border stripe :data="viewData.goods">
|
||||
|
||||
<el-table-column
|
||||
type="index" label="序号" header-align="center" align="center" width="100">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="物品名称" header-align="center" align="center" prop="name">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
label="物品价格" header-align="center" align="center" prop="actualPrice">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-form-item label="发  票">
|
||||
<file-upload v-if="viewData.billFiles&&viewData.billFiles.length"
|
||||
:files="viewData.billFiles" :view="true">
|
||||
</file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="照  片">
|
||||
<file-upload v-if="viewData.photoFiles&&viewData.photoFiles.length"
|
||||
:files="viewData.photoFiles" :view="true">
|
||||
</file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="其  他">
|
||||
<file-upload v-if="viewData.otherFiles&&viewData.otherFiles.length"
|
||||
:files="viewData.otherFiles" :view="true">
|
||||
</file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="活动总结" name="4" v-if="!viewData.isEnrollSystem">
|
||||
<el-form ref="form" label-width="120px">
|
||||
<el-form-item prop="activitySummary" label="活动总结">
|
||||
{{ viewData.activitySummary }}
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="审核信息" name="5" v-if="viewData.auditId">
|
||||
<el-form ref="form" label-width="120px">
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员:">
|
||||
{{ viewData.audit.username }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间:">
|
||||
{{ viewData.audit.auditTime }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="审核意见:">
|
||||
{{ viewData.audit.auditOpinion }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane v-if="handle" :label="label" name="999">
|
||||
<slot name="handle"></slot>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props: {
|
||||
handle: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
default: '审核'
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
userData: [],
|
||||
viewData: {},
|
||||
loading: true,
|
||||
search: '',
|
||||
tableKey: '',
|
||||
activeName: '1',
|
||||
userColumns: [],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
},
|
||||
methods: {
|
||||
hasPane(name) {
|
||||
if (!this.handle) {
|
||||
return true
|
||||
}
|
||||
return this.panes.includes(name)
|
||||
},
|
||||
async doExport() {
|
||||
window.open("/platform/activity/info/mange/doExportUser?id=" + this.viewData.id)
|
||||
},
|
||||
async userChange() {
|
||||
if (this.search) {
|
||||
const {data} = await $.get("/platform/activity/info/mange/searchTissueUser", {
|
||||
id: this.viewData.id,
|
||||
search: this.search
|
||||
})
|
||||
this.userData = data
|
||||
}
|
||||
},
|
||||
async getInfo(id) {
|
||||
this.userColumns = [{prop: 'userName', label: '姓名'},
|
||||
{prop: 'loginName', label: '工号'},
|
||||
{prop: 'sex', label: '性别'},
|
||||
{prop: 'mobile', label: '联系方式'},
|
||||
{prop: 'unitName', label: '所属单位'},
|
||||
{prop: 'unionName', label: '所属工会'}]
|
||||
this.loading = true
|
||||
const {data} = await $.get("/platform/activity/info/mange/findOne", {id})
|
||||
this.loading = false
|
||||
if (data) {
|
||||
if (data.needSign) {
|
||||
this.userColumns.push({prop: 'isSign', label: '是否签到'})
|
||||
this.userColumns.push({prop: 'signTime', label: '签到时间'})
|
||||
}
|
||||
data.billFiles = JSON.parse(data.billFiles)
|
||||
data.photoFiles = JSON.parse(data.photoFiles)
|
||||
data.otherFiles = JSON.parse(data.otherFiles)
|
||||
this.userData = clone(data.tissuePersonList)
|
||||
data.unionUserNumberLimit = JSON.parse(data.unionUserNumberLimit)
|
||||
data.location = JSON.parse(data.location)
|
||||
this.viewData = data
|
||||
this.tableKey = new Date().getTime()
|
||||
this.initMap()
|
||||
this.activeName = this.handle ? "999" : "1"
|
||||
} else {
|
||||
this.viewData = {}
|
||||
this.$notify.error({title: '错误', message: '获取信息失败'});
|
||||
}
|
||||
},
|
||||
initMap() {
|
||||
let marker = null
|
||||
this.$nextTick(() => {
|
||||
let map = new AMap.Map("signMap", {
|
||||
resizeEnable: true,
|
||||
center: [118.640081, 32.082496],
|
||||
zoom: 16
|
||||
});
|
||||
|
||||
if (this.viewData.location && Array.isArray(this.viewData.location)) {
|
||||
const lng = parseFloat(this.viewData.location[0])
|
||||
const lat = parseFloat(this.viewData.location[1])
|
||||
marker = new AMap.Marker({
|
||||
position: [lng, lat],
|
||||
offset: new AMap.Pixel(-13, -30)
|
||||
});
|
||||
marker.setMap(map);
|
||||
map.setZoomAndCenter(18, [lng, lat])
|
||||
}
|
||||
map.on('click', (e) => {
|
||||
console.log(e)
|
||||
if (marker) {
|
||||
marker.setMap(null)
|
||||
marker = null
|
||||
}
|
||||
marker = new AMap.Marker({
|
||||
position: [e.lnglat.getLng(), e.lnglat.getLat()],
|
||||
offset: new AMap.Pixel(-13, -30)
|
||||
})
|
||||
marker.setMap(map)
|
||||
this.formData.location = []
|
||||
this.formData.location.push(e.lnglat.getLng())
|
||||
this.formData.location.push(e.lnglat.getLat())
|
||||
});
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.item-center {
|
||||
text-align: center;
|
||||
font-weight: 700;
|
||||
margin-right: 110px;
|
||||
}
|
||||
|
||||
.item-center .el-form-item__content {
|
||||
font-size: 18px;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,152 @@
|
||||
<template>
|
||||
<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>
|
||||
|
||||
<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"
|
||||
align="center" fixed show-overflow-tooltip width="250px"></el-table-column>
|
||||
<el-table-column label="甲组" header-align="center" v-if="tableColumns.length>0">
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="乙组" header-align="center" v-if="tableColumns2.length>0">
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns2"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="丙组" header-align="center" v-if="tableColumns3.length>0">
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns3"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="丁组" header-align="center" v-if="tableColumns4.length>0">
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns4"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="团体" header-align="center" v-if="tableColumns5.length>0">
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns5"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="总分" prop="totalScore" header-align="center"
|
||||
align="center" show-overflow-tooltip fixed="right"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index" show-overflow-tooltip label="名次"
|
||||
width="80px" fixed="right"></el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props: {
|
||||
Form: {
|
||||
type: Object,
|
||||
default: {},
|
||||
}
|
||||
},
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
maxHeight: 0,
|
||||
tableColumns2: [],
|
||||
tableColumns3: [],
|
||||
tableColumns4: [],
|
||||
tableColumns5: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
/* const tabHeight = document.getElementById("app").clientHeight - (this.$refs.MaleFemaleTab.$el.offsetTop + 60)
|
||||
this.$nextTick(()=>{
|
||||
this.maxHeight = tabHeight
|
||||
})*/
|
||||
},
|
||||
methods: {
|
||||
async isMaleFemale() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '数据正在查询中,请稍后...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
});
|
||||
this.tableColumns = []
|
||||
this.tableColumns2 = []
|
||||
this.tableColumns3 = []
|
||||
this.tableColumns4 = []
|
||||
this.tableColumns5 = []
|
||||
this.tableData = []
|
||||
const {data} = await $.get(loc() + "/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)
|
||||
}
|
||||
|
||||
loading.close();
|
||||
|
||||
|
||||
},
|
||||
|
||||
compare(prop) {
|
||||
return function (obj1, obj2) {
|
||||
const val1 = obj1[prop];
|
||||
const val2 = obj2[prop];
|
||||
if (val1 > val2) {
|
||||
return -1;
|
||||
} else if (val1 < val2) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,77 @@
|
||||
<template>
|
||||
<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"-->
|
||||
<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"
|
||||
align="center" fixed show-overflow-tooltip></el-table-column>
|
||||
|
||||
<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>
|
||||
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props: {
|
||||
Form: {
|
||||
type: Object,
|
||||
default: {},
|
||||
}
|
||||
},
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
maxHeight: 0
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
/*const tabHeight = document.getElementById("app").clientHeight - (this.$refs.MaleFemaleTab.$el.offsetTop + 60)
|
||||
this.$nextTick(() => {
|
||||
this.maxHeight = tabHeight
|
||||
})*/
|
||||
},
|
||||
methods: {
|
||||
async isScoreTopEight() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '数据正在查询中,请稍后...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
});
|
||||
this.tableColumns = []
|
||||
this.tableData = []
|
||||
const {data} = await $.get(loc() + "/isScoreTopEight", this.Form)
|
||||
const table = data.score.sort(this.compare("totalScore"))
|
||||
this.tableData = table.slice(0, 8)
|
||||
|
||||
loading.close();
|
||||
|
||||
|
||||
},
|
||||
|
||||
compare(prop) {
|
||||
return function (obj1, obj2) {
|
||||
const val1 = obj1[prop];
|
||||
const val2 = obj2[prop];
|
||||
if (val1 > val2) {
|
||||
return -1;
|
||||
} else if (val1 < val2) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,93 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- <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">
|
||||
|
||||
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="名次"
|
||||
width="100px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>-->
|
||||
<table class="table table-bordered" style="table-layout: fixed;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: center!important;">项目</th>
|
||||
<th style="text-align: center!important;" v-for="i in 8">第{{ i }}名</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="i in tableData">
|
||||
<td align="center" width="20%">{{ i.label }}</td>
|
||||
<td v-for="x in 8" align="center" width="10%">
|
||||
{{ getTableTdContent(i.sss, x) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props: {
|
||||
Form: {
|
||||
type: Object,
|
||||
default: {},
|
||||
}
|
||||
},
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getTableTdContent(d, i) {
|
||||
return d.filter(v => {
|
||||
if (v.ranking == i) {
|
||||
return v.username
|
||||
}
|
||||
}).map(v => {
|
||||
return v.username
|
||||
}).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 $.get(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();
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-tabs tab-position="top" v-model="activeName">
|
||||
|
||||
<el-tab-pane v-if="$.parseJSON(role) === true" label="当前场地使用情况" name="1">
|
||||
<el-calendar v-model="reserve_time">
|
||||
<template slot="dateCell" slot-scope="{date, data}">
|
||||
<div class="div-Calendar">
|
||||
<p :class="data.isSelected ? 'is-selected' : ''">
|
||||
{{ data.day.split('-').slice(1).join('-') }} {{ data.isSelected ? '√' : '' }}
|
||||
</p>
|
||||
<div v-if="$.parseJSON(role) === true" v-for="item in viewData.site_info">
|
||||
<div v-if="data.day.toString()==item.reserve_day"
|
||||
:style="{backgroundColor:([0].includes(item.stateaudittype)?'#FAECD9':'#E0F4D9')}">
|
||||
<el-row :gutter="20" style="line-height: 30px;margin-bottom: 10px;">
|
||||
<el-col :span="4">
|
||||
<el-button v-if="[0].includes(item.stateaudittype)" type="warning"
|
||||
size="mini" circle>待
|
||||
</el-button>
|
||||
<el-button v-if="item.stateaudittype==3" type="success" size="mini" circle>通
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="20" style="font-size: 10px">
|
||||
<b>{{ item.reserve_person }}</b>:{{ item.start_time }}-{{ item.end_time }}
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-calendar>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="预约基本信息" name="2">
|
||||
<el-descriptions :column="2" border class="table_fixed">
|
||||
<el-descriptions-item label="预约人">{{ viewData.reserve_person }}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
||||
<el-descriptions-item label="工号">{{ viewData.loginname }}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属单位">{{ viewData.reserve_person_unit }}</el-descriptions-item>
|
||||
<el-descriptions-item label="联系方式">{{ viewData.reserve_person_phone }}</el-descriptions-item>
|
||||
<el-descriptions-item label="预约时间">
|
||||
({{ viewData.concat_day }}) {{ viewData.start_time }} - {{ viewData.end_time }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="场地名称">{{ viewData.site_name }}</el-descriptions-item>
|
||||
<el-descriptions-item label="预约状态">
|
||||
<span v-if="[0].includes(viewData.stateaudittype)" style="color: #e6a23c">{{viewData.state_name}}</span>
|
||||
<span v-if="viewData.stateaudittype==3" style="color: #67c23a">{{viewData.state_name}}</span>
|
||||
<span v-if="viewData.stateaudittype==1" style="color: #f56c6c">{{viewData.state_name}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="预约事由" :span="2">{{ viewData.reserve_cause }}</el-descriptions-item>
|
||||
<el-descriptions-item label="反馈意见" :span="2" v-if="$.parseJSON(backOptionShow) == true">
|
||||
{{ viewData.back_option }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="场地管理员批示信息" name="3" v-if="viewData.site_manager_id&&viewData.back_out_opinion">
|
||||
<el-form label-width="130px" style="padding: 20px 0">
|
||||
|
||||
<el-form-item label="批示信息 " label-width="115px" class="view-header">
|
||||
</el-form-item>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="批示人员:">
|
||||
{{ viewData.smusername }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="批示时间:">
|
||||
{{ viewData.site_manager_time }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="批示意见:">
|
||||
<div class="textarea-div">{{ viewData.back_out_opinion }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
|
||||
<slot v-if="btn && (activeName == '1' || activeName == '2')" name="btn"></slot>
|
||||
|
||||
|
||||
<el-tab-pane label="主席批示信息" name="4" v-if="viewData.chairman_review_person">
|
||||
<el-form label-width="130px" style="padding: 20px 0">
|
||||
|
||||
<el-form-item label="批示信息 " label-width="115px" class="view-header">
|
||||
</el-form-item>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="批示人员:">
|
||||
{{ viewData.username }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="批示时间:">
|
||||
{{ viewData.chairman_review_time }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="批示意见:">
|
||||
<div class="textarea-div">{{
|
||||
viewData.chairman_review_opinion ? viewData.chairman_review_opinion : '暂无'
|
||||
}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane v-if="handle" :label="label" name="999">
|
||||
<slot name="handle"></slot>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane v-for="(item,index) in viewData.auditlisttable" :label="item.auditStateName.replace('待', '')"
|
||||
:name="index + 5">
|
||||
<el-descriptions class="margin-top" :column="3" border>
|
||||
<el-descriptions-item label="审核人">{{ item.auditUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属单位">{{ item.auditUserUnionName }}</el-descriptions-item>
|
||||
<!--<el-descriptions-item label="审核所处状态">{{ item.auditStateName }}</el-descriptions-item>-->
|
||||
<el-descriptions-item label="审核结果">{{ item.auditListName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="审核意见">
|
||||
<div class="text-left">
|
||||
{{ item.auditOption }}
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
</el-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
module.exports = {
|
||||
props: {
|
||||
id: String,
|
||||
btn: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
handle: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
label: {
|
||||
type: String,
|
||||
default: '审核'
|
||||
},
|
||||
panes: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeName: '1',
|
||||
loading: true,
|
||||
viewData: {},
|
||||
reserve_time: '',
|
||||
role: false,
|
||||
backOptionShow: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
hasPane(name) {
|
||||
if (!this.handle) {
|
||||
return true
|
||||
}
|
||||
return this.panes.includes(name)
|
||||
},
|
||||
async getSiteReserveInfo(id) {
|
||||
const {data} = await $.get(base + "/platform/activity/site/reserve/findOne", {id})
|
||||
return data
|
||||
},
|
||||
async openView(id) {
|
||||
this.loading = true
|
||||
this.$forceUpdate()
|
||||
this.viewData = await this.getSiteReserveInfo(id)
|
||||
if (this.viewData) {
|
||||
this.activeName = this.role === true ? "1" : "2"
|
||||
} else {
|
||||
this.viewData = {}
|
||||
this.$message.error("获取场地预约信息失败");
|
||||
}
|
||||
this.$forceUpdate()
|
||||
this.loading = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.el-descriptions-item__cell {
|
||||
text-align: center !important;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user