<template>
|
<div v-if="!loading">
|
<el-table v-loading="loading" :data="entityList" stripe border size="default" highlight-current-row
|
element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
|
element-loading-background="rgba(0, 0, 0, 0.8)"
|
:header-row-style="{ height: '45px', color: 'var(--el-color-primary)', background: 'var(--el-color-info-light)', }"
|
:header-cell-style="{ height: '45px', margin: '0px', padding: '0px', background: 'var(--el-color-info-light)' }"
|
@row-dblclick="showApprovalCenter">
|
<el-table-column type="index" fixed :label="$t('label.Index')" width="80"/>
|
<el-table-column prop="title" sortable align="left" :label="$t('label.Title')" width="300"/>
|
<el-table-column prop="startdatetime" sortable align="left" :label="$t('label.ScheduledStartTime')"
|
width="160">
|
<template #default="scope">
|
<p class="text-overflow">
|
<span>{{ `${formatterDatetime(scope.row.startdatetime)}` }}</span>
|
</p>
|
</template>
|
</el-table-column>
|
<el-table-column prop="enddatetime" sortable align="left" :label="$t('label.ScheduledFinishedTime')"
|
width="160">
|
<template #default="scope">
|
<p class="text-overflow">
|
<span>{{ `${formatterDatetime(scope.row.enddatetime)}` }}</span>
|
</p>
|
</template>
|
</el-table-column>
|
<el-table-column prop="createtime" min-width="160" width="*" align="left"
|
:label="$t('label.CreateTime')">
|
<template #default="scope">
|
<p class="text-overflow">
|
<span>{{ `${formatterDatetime(scope.row.createtime)}` }}</span>
|
</p>
|
</template>
|
</el-table-column>
|
<el-table-column fixed="right" :label="$t('label.Operation')" width="130">
|
<template #default="scope">
|
<el-button @click="showApprovalCenter(scope.row)" :icon="icon.More"
|
:title="$t('button.Detail')"
|
size="small" type="primary" plain circle>
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<div style="display: flex;justify-content: space-between">
|
<div>
|
|
</div>
|
<div>
|
<el-link type="primary" @click="showApprovalCenter">
|
{{ `${$t('button.More')}` }}
|
<el-icon>
|
<Right/>
|
</el-icon>
|
</el-link>
|
</div>
|
</div>
|
</div>
|
<el-skeleton v-else :rows="5"/>
|
</template>
|
|
<script>
|
|
import {getCurrentInstance, onBeforeUnmount, onMounted, reactive, toRefs} from "vue";
|
import {useBasicInfoStore} from "@/store/basicInfo";
|
import * as icon from "@element-plus/icons-vue";
|
import {formatterDate, formatterDatetime, formatterNumber} from "@/utils/common";
|
import {GetApprovalList} from "@/api/admin/ifc";
|
|
export default {
|
name: 'LatestApproval',
|
components: {},
|
setup() {
|
let {proxy} = getCurrentInstance();
|
const store = useBasicInfoStore();
|
const state = reactive({
|
loading: false,
|
entityList: [],
|
});
|
|
onMounted(() => {
|
Init();
|
LoadData();
|
});
|
onBeforeUnmount(() => {
|
|
});
|
|
const Init = () => {
|
|
};
|
const LoadData = () => {
|
state.loading = true;
|
let userid = store.user.id;
|
|
GetApprovalList(userid).then(resp => {
|
if (resp.data) {
|
state.entityList = resp.data.data;
|
}
|
state.loading = false;
|
}).catch(err => {
|
console.error(err);
|
});
|
};
|
const showApprovalCenter = () => {
|
store.launchIframe(`${WGURL.ifcDomain}/client/center/approval`, `${proxy.$t('label.ApprovalCenter')}`);
|
}
|
|
return {
|
...toRefs(state),
|
icon,
|
formatterDate,
|
formatterDatetime,
|
formatterNumber,
|
showApprovalCenter,
|
}
|
},
|
}
|
</script>
|
|
<style scoped>
|
|
</style>
|