---初始化后台管理web页面项目
This commit is contained in:
@ -0,0 +1,201 @@
|
||||
<template>
|
||||
<!-- <h2 align="left" disabled="true" size="default" isshow="true" style="font-size: 18px; font-weight: bold;"
|
||||
required="false">变更详情</h2> -->
|
||||
<div class="geg-flow-history">
|
||||
<div v-for="(item, index) in dataList" :class="{ sep: index !== 0 }" class="item">
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<span style="color: gray;">{{ index + 1 + "、" }}</span>
|
||||
<span style="color: gray;">用户 </span>
|
||||
<span style="font-weight: bold;font-size: larger;"> {{ props.currentUserName }} </span>
|
||||
<span style="color: gray;"> 将 </span>
|
||||
<span style="font-weight: bold;font-size: larger;"> {{ item.fieldName ? item.fieldName :
|
||||
item.fieldCode }} </span>
|
||||
<span v-if="item.changeType == 'insert'">{{ " 新增为 " }}
|
||||
<span v-for="file in fileList">
|
||||
<span style="font-weight: bold;font-size: larger;color: black;"
|
||||
v-if="file.id == item.oldValue">{{ file.name + "-" }}</span>
|
||||
</span>
|
||||
<span style="font-weight: bold;font-size: larger;">{{
|
||||
item.newValue }} </span>
|
||||
</span>
|
||||
<span v-if="item.changeType == 'update'" style="color: gray;">{{ " 从 " }}
|
||||
<span v-for="file2 in fileList">
|
||||
<span style="font-weight: bold;font-size: larger;color: black;"
|
||||
v-if="file2.id == item.oldValue">{{ file2.name + "-" }}</span>
|
||||
</span>
|
||||
<span style="font-weight: bold;font-size: larger;color: black;">{{
|
||||
item.oldValue }}</span>
|
||||
<span>{{ " 修改至 " }}</span>
|
||||
<span v-for="file3 in fileList">
|
||||
<span style="font-weight: bold;font-size: larger;color: black;"
|
||||
v-if="file3.id == item.newValue">{{ file3.name + "-" }}</span>
|
||||
</span>
|
||||
<span style="font-weight: bold;font-size: larger;color: black;">{{
|
||||
item.newValue }}</span>
|
||||
</span>
|
||||
<span v-if="item.changeType == 'delete'" style="color: gray;">{{ " 删除了 " }}</span>
|
||||
</div>
|
||||
<div class="col-4"> </div>
|
||||
<div class="col-2">
|
||||
{{ props.currentCreateTime }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { useI18n } from '/@/hooks/web/useI18n';
|
||||
import { defineProps, onMounted, ref, watch } from 'vue';
|
||||
import dayjs from 'dayjs';
|
||||
import { getFileList } from "/@/api/system/file";
|
||||
import { getFormChangeRecordItemPage, getFormChangeRecordItemList } from '/@/api/formChange/changeLogDetail/index'
|
||||
import { FormChangeRecordItemModel, FormChangeRecordItemPageModel, FormChangeRecordItemPageParams } from '/@/api/formChange/changeLogDetail/model/ChangeLogDetailModel';
|
||||
import { array } from 'vue-types';
|
||||
import { FilePageListModel } from '/@/api/system/file/model';
|
||||
|
||||
const { t } = useI18n();
|
||||
const props = defineProps({
|
||||
mode: {
|
||||
type: String,
|
||||
default: 'simple'
|
||||
},
|
||||
items: Array,
|
||||
autoHide: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
sort: {
|
||||
type: String,
|
||||
default: 'desc'
|
||||
},
|
||||
rowId: {
|
||||
type: Number
|
||||
},
|
||||
currentUserName: {
|
||||
type: String,
|
||||
},
|
||||
currentCreateTime: {
|
||||
type: String,
|
||||
},
|
||||
formInfos: {
|
||||
type: Array,
|
||||
},
|
||||
isShow: {
|
||||
type: Boolean
|
||||
}
|
||||
});
|
||||
|
||||
const dataList = ref<FormChangeRecordItemPageModel[]>([]);
|
||||
const fileList = ref<{ id: string; name: string }[]>([]);
|
||||
|
||||
|
||||
function parseTime(t) {
|
||||
return dayjs(t).format('YYYY-MM-DD HH:mm');
|
||||
}
|
||||
|
||||
async function getData() {
|
||||
|
||||
getFormChangeRecordItemList({ "operationId": props.rowId, "size": 99, "limit": 1 }).then((res) => {
|
||||
dataList.value = res.list;
|
||||
})
|
||||
|
||||
fileList.value = [];
|
||||
|
||||
dataList.value.forEach(async ele1 => {
|
||||
props.formInfos?.forEach(ele2 => {
|
||||
if (ele1.fieldName == null && ele1.fieldCode == ele2.fieldId) {
|
||||
ele1.fieldName = ele2.fieldName
|
||||
}
|
||||
})
|
||||
if (ele1.fieldCode.indexOf('file') > 0 || ele1.fieldCode.indexOf('File') > 0) {
|
||||
const newlist = await getFileList({ folderId: ele1.newValue });
|
||||
fileList.value.push({ 'id': ele1.newValue, 'name': newlist.map((item) => item.fileName).join('、') });
|
||||
|
||||
const oldlist = await getFileList({ folderId: ele1.oldValue });
|
||||
fileList.value.push({ 'id': ele1.oldValue, 'name': oldlist.map((item) => item.fileName).join('、') });
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
onMounted(async () => {
|
||||
await getData();
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.isShow,
|
||||
async (val) => {
|
||||
if (val) {
|
||||
await getData();
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.geg-flow-history {
|
||||
.signature {
|
||||
/* height: 20px;*/
|
||||
height: 30px;
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin: 6px 0;
|
||||
line-height: 20px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.col-1 {
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.col-2 {
|
||||
width: 130px;
|
||||
color: #5a6875;
|
||||
}
|
||||
|
||||
.col-3 {
|
||||
flex: 1;
|
||||
|
||||
&.agree {
|
||||
color: #52c41a;
|
||||
}
|
||||
}
|
||||
|
||||
.tag {
|
||||
padding-right: 4px;
|
||||
|
||||
&.agree {
|
||||
color: #52c41a;
|
||||
}
|
||||
|
||||
&.reject {
|
||||
color: #eaa63c;
|
||||
}
|
||||
}
|
||||
|
||||
.col-node {
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
.position {
|
||||
color: #90a0af;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding: 8px 0;
|
||||
|
||||
&.sep {
|
||||
border-top: 1px solid #e9e9e9;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user