first commit

This commit is contained in:
2026-09-20 15:46:34 +08:00
parent 72fb5eae10
commit e558339dcc
3340 changed files with 671310 additions and 251 deletions
@@ -0,0 +1,200 @@
<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 style="line-height: 20px">
<el-col :span="4" style="font-size: 10px">
<span v-if="[0].includes(item.stateaudittype)">待审</span>
<span v-if="item.stateaudittype==3">通过</span>
<span v-if="item.stateaudittype==1">拒绝</span>
</el-col>
<el-col :span="20" style="font-size: 10px">
<span>
<b>{{item.reserve_person}}</b>:{{item.start_time}}-{{item.end_time}}
</span>
</el-col>
</el-row>
</div>
</div>
</div>
</template>
</el-calendar>
</el-tab-pane>
<el-tab-pane label="预约基本信息" name="2">
<el-descriptions class="margin-top" :column="3" border>
<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="2">
<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="3">
<div style="word-break: break-all" v-html="viewData.reserve_cause"></div>
</el-descriptions-item>
<el-descriptions-item v-if="$.parseJSON(backOptionShow) == true" label="反馈意见">
<div style="word-break: break-all" v-html="viewData.back_option"></div>
</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>