202 lines
5.9 KiB
Vue
202 lines
5.9 KiB
Vue
|
|
<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>
|