Files
UNION_HUTB/target/classes/static/components/activity/site/ReserveInfo.vue
T
2026-09-09 09:14:28 +08:00

200 lines
7.3 KiB
Vue
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.
<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="批示信息&emsp;" 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="批示信息&emsp;" 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>