200 lines
7.3 KiB
Vue
200 lines
7.3 KiB
Vue
<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>
|