Files
UNION_NSI/target/classes/views/platform/activity/site/SiteUnionProcess.html
T
2026-09-08 19:49:21 +08:00

218 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label">月份:</div>
<div class="search-item-option">
<el-date-picker
style="width: 100%"
@change="doSearch"
v-model="pageForm.time"
placeholder="请选择月份"
type="month"
value-format="yyyy-MM">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">姓名工号:</div>
<div class="search-item-option">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
style="width: 100%"
@keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend"
placeholder="查询类型"
style="width: 80px;">
<el-option label="姓名" value="u.username"></el-option>
<el-option label="工号" value="u.loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="search-item">
<div class="search-item-label">场地名称:</div>
<div class="search-item-option">
<el-input @keyup.enter.native="doSearch" clearable clearable
placeholder="请输入场地名称"
style="width: 100%"
v-model="pageForm.siteName">
</el-input>
</div>
</div>
<div class="search-item">
<div class="search-item-label">场地类型:</div>
<div class="search-item-option">
<el-select v-model="pageForm.siteType" placeholder="场地类型"
clearable filterable style="width: 100%">
<el-option v-for="item in activityTypeList" :label="item.text" :value="item.value"></el-option>
</el-select>
</div>
</div>
<div class="search-query">
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索</el-button>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool :app="this" label="预约列表">
<template #func>
<el-radio-group @change="doSearch" class="mr10" size="small" v-model="pageForm.isAudit">
<el-radio-button :label="null">全部</el-radio-button>
<el-radio-button :label="true">已审核</el-radio-button>
<el-radio-button :label="false">未审核</el-radio-button>
</el-radio-group>
</template>
</table-tool>
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
align="center"
header-align="center">
<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"
:sortable="column.sortable"
align="center"
header-align="center"
show-overflow-tooltip
v-for="column in tableColumns"
>
<template scope="{row}" v-if="column.prop==='state_name'">
<!--<span :style="'color:'+row.state_color">{{row.state_name}}</span>-->
<span v-if="[0].includes(row.stateaudittype)"
style="color: #e6a23c">{{row.state_name}}</span>
<span v-if="row.stateaudittype==3" style="color: #67c23a">{{row.state_name}}</span>
<span v-if="row.stateaudittype==1" style="color: #f56c6c">{{row.state_name}}</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" fixed="right"
width="200px">
<template scope="{row}">
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
<el-button v-if="row.reserve_state == 6098" @click="doProcess(row)" size="mini" type="primary">审核</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
<template #edit style="padding: 0 10%">
<reserve-info ref="auditInfo">
<template #handle>
<el-tab-pane label="分工会审核" name="fghsh">
<el-form :model="formData" label-suffix="" label-width="100px" ref="auditForm">
<el-form-item label="审核人">
${@shiro.getPrincipalProperty('username')}
</el-form-item>
<el-form-item label="审核时间">
{{moment().format('YYYY-MM-DD')}}
</el-form-item>
<el-form-item :rules="[{required: true, message: '请输入审核意见', trigger: ['blur']}]"
label="审核意见"
prop="unionOption">
<el-input maxlength="300" rows="5" type="textarea"
v-model="formData.unionOption"></el-input>
</el-form-item>
</el-form>
<el-row style="margin: 40px 0;text-align: right">
<el-button type="danger" @click="doReview(false)">拒绝</el-button>
<el-button type="primary" @click="doReview(true)">通过</el-button>
</el-row>
</el-tab-pane>
</template>
</reserve-info>
</template>
<template #view>
<reserve-info ref="reserve"></reserve-info>
</template>
</guava>
</div>
<script>
<!--# include("/platform/activity/includeJs/activityUtil.js"){} #-->
const activityUtil = new typeUtil()
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data(){
return{
activityTypeList:[],
siteList:[],
pageForm: {
searchName: "u.username",
searchKeyword: "",
isAudit: false,
time: "",
},
tableColumns: [
{label: '场地名称', prop: 'site_name', sortable: true},
{label: '预约人姓名', prop: 'reserve_person_username', sortable: true},
{label: '预约人部门', prop: 'reserve_person_unitname', sortable: true},
{label: '开始时间', prop: 'reserve_start_time', sortable: true},
{label: '结束时间', prop: 'reserve_end_time', sortable: true},
{label: '联系电话', prop: 'reserve_person_phone'},
// {label: '活动名称', prop: 'reserve_activity'},
{label: '预约事由', prop: 'reserve_cause'},
{label: '预约状态', prop: 'state_name'},
],
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'reserve-info': httpVueLoader('/components/activity/site/ReserveInfo.vue'),
},
methods:{
openView(row){
this.$refs.guava.view()
const role = "${@shiro.hasRole('sysadmin')||@shiro.hasRole('xghng')||@shiro.hasRole('A06')}"
this.$refs.reserve.role = role
const backOptionShow = "${@shiro.getPrincipalProperty('id')}" === row.reserve_person_id
this.$refs.reserve.backOptionShow = (role || backOptionShow)
this.$refs.reserve.openView(row.id)
},
doProcess(row){
this.$refs.guava.edit()
this.$refs.auditInfo.openView(row.id, 'fghsh')
this.formData={
id: row.id,
unionOption: null,
}
},
async doReview(row){
const valid = await this.$refs['auditForm'].validate()
if (!valid) return
this.formData.reserve_state = row ? 6118 : 6108
this.formData.isPass = row
const resp = await $.post('/platform/activity/site/unionProcess/doProcess', this.formData)
if (resp.code === 0) {
this.$refs.guava.index()
this.notifySuccess(resp.msg)
this.pageData()
}
},
async findAllOpenSite() {
const {data} = await $.get("/platform/activity/site/apply/getAllSite")
return data
},
},
async created(){
this.activityTypeList = await activityUtil.getAllType()
this.siteList = await this.findAllOpenSite()
this.pageData();
}
})
</script>
<!--#
}
#-->