Merge pull request 'fix/updatesyspic' (#208) from fix/updatesyspic into test

Reviewed-on: #208
pull/212/head
刘释隆 1 year ago
commit c9282047ec

@ -39,5 +39,10 @@
"jsonc",
"yaml"
],
"vue3snippets.enable-compile-vue-file-on-did-save-code": true
"vue3snippets.enable-compile-vue-file-on-did-save-code": true,
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint",
"[vue]": {
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
},
"editor.formatOnSaveMode": "modifications"
}

32
components.d.ts vendored

@ -10,49 +10,17 @@ declare module 'vue' {
Application: typeof import('./src/components/Application/Application.vue')['default']
BasicModal: typeof import('./src/components/Modal/BasicModal.vue')['default']
DataHeader: typeof import('./src/components/DataHeader/index.vue')['default']
NAvatar: typeof import('naive-ui')['NAvatar']
NBackTop: typeof import('naive-ui')['NBackTop']
NButton: typeof import('naive-ui')['NButton']
NCard: typeof import('naive-ui')['NCard']
NCheckbox: typeof import('naive-ui')['NCheckbox']
NCollapse: typeof import('naive-ui')['NCollapse']
NCollapseItem: typeof import('naive-ui')['NCollapseItem']
NConfigProvider: typeof import('naive-ui')['NConfigProvider']
NDatePicker: typeof import('naive-ui')['NDatePicker']
NDialogProvider: typeof import('naive-ui')['NDialogProvider']
NDivider: typeof import('naive-ui')['NDivider']
NDropdown: typeof import('naive-ui')['NDropdown']
NEllipsis: typeof import('naive-ui')['NEllipsis']
NEmpty: typeof import('naive-ui')['NEmpty']
NForm: typeof import('naive-ui')['NForm']
NFormItem: typeof import('naive-ui')['NFormItem']
NGi: typeof import('naive-ui')['NGi']
NGrid: typeof import('naive-ui')['NGrid']
NGridItem: typeof import('naive-ui')['NGridItem']
NImage: typeof import('naive-ui')['NImage']
NInput: typeof import('naive-ui')['NInput']
NMessageProvider: typeof import('naive-ui')['NMessageProvider']
NModal: typeof import('naive-ui')['NModal']
NNotificationProvider: typeof import('naive-ui')['NNotificationProvider']
NotPassed: typeof import('./src/components/NotPassed.vue')['default']
NPopconfirm: typeof import('naive-ui')['NPopconfirm']
NPopover: typeof import('naive-ui')['NPopover']
NPopselect: typeof import('naive-ui')['NPopselect']
NProgress: typeof import('naive-ui')['NProgress']
NScrollbar: typeof import('naive-ui')['NScrollbar']
NSelect: typeof import('naive-ui')['NSelect']
NSlider: typeof import('naive-ui')['NSlider']
NSpace: typeof import('naive-ui')['NSpace']
NSpin: typeof import('naive-ui')['NSpin']
NSwitch: typeof import('naive-ui')['NSwitch']
NTabPane: typeof import('naive-ui')['NTabPane']
NTabs: typeof import('naive-ui')['NTabs']
NTag: typeof import('naive-ui')['NTag']
NTimeline: typeof import('naive-ui')['NTimeline']
NTimelineItem: typeof import('naive-ui')['NTimelineItem']
NTooltip: typeof import('naive-ui')['NTooltip']
NUpload: typeof import('naive-ui')['NUpload']
NUploadDragger: typeof import('naive-ui')['NUploadDragger']
Quill: typeof import('./src/components/RichEditor/Quill.vue')['default']
Robot: typeof import('./src/components/Robot/index.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@ -13,12 +13,14 @@ import { viewOptions } from '@/config/home'
import NotPassed from '@/components/Approval/NotPassed.vue'
import { formatToDateHMS } from '@/utils/dateUtil'
import { off, on } from '@/utils/domUtils'
import bgLoading from '@/assets/images/bg-loading.png'
const cardStyle = {
'--n-padding-bottom': '40px',
'--n-padding-left': '120px',
}
const bgLoadingImg = ref(bgLoading)
let startTime = 0
let endTime = 0
let startCalTime = false
@ -732,6 +734,7 @@ watch(() => pagination.pageNo, (newVal, oldVal) => {
ref="imageRef"
:src="item.imgUrl"
:preview-src="item.imgUrl"
:fallback-src="bgLoadingImg"
class="img "
:class="{
'img-fit': viewMode === 'horizontalVersion',

@ -11,88 +11,90 @@ import { useMessage, useDialog } from "naive-ui";
import { audit } from "@/api/task/task";
import NotPassed from "@/components/Approval/NotPassed.vue";
import { RepeatModal, RepeatTaskTableModal } from "../comp";
const dialog = useDialog();
const message = useMessage();
const router = useRouter();
const notPassModalRef = ref(null); //
const sortorder = ref("asc");
const sortname = ref("states");
const loading = ref(true);
const total = ref(0);
const scrollContainer = ref(null);
const tableData = ref<any>([]);
const finalStore = useFinal();
let num = 1;
const emit = defineEmits(['changeShow'])
const dialog = useDialog()
const message = useMessage()
const router = useRouter()
const notPassModalRef = ref(null) //
const sortorder = ref('asc')
const sortname = ref('states')
const loading = ref(true)
const total = ref(0)
const scrollContainer = ref(null)
const tableData = ref<any>([])
const finalStore = useFinal()
let num = 1
const pagination = reactive({
page: 1,
pageCount: 20,
pageSize: 20,
});
const repeatModalRef = ref(null);
const repeatTaskTableModalRef = ref(null);
const selectionIds = ref([]);
})
const repeatModalRef = ref(null)
const repeatTaskTableModalRef = ref(null)
const selectionIds = ref([])
const showActions = computed(() => {
return selectionIds.value.length;
});
const emit = defineEmits(["changeShow"]);
return selectionIds.value.length
})
function handleCheck(row: any, showcheck: any) {
if (showcheck == false) {
console.log(tableData.value);
tableData.value.map((item) => {
console.log(tableData.value)
tableData.value.forEach((item) => {
if (item.length > 0) {
item.map((itemx, index) => {
if (row.id == itemx.id) {
itemx.showcheck = true;
}
item.forEach((itemx, index) => {
if (row.id == itemx.id)
itemx.showcheck = true
// newlistx.push(itemx)
});
})
}
});
selectionIds.value.push(row);
} else {
tableData.value.map((item) => {
if (item.length > 0) {
item.map((itemx, index) => {
if (row.id == itemx.id) {
itemx.showcheck = false;
})
selectionIds.value.push(row)
}
else {
tableData.value.forEach((item) => {
if (item.length > 0) {
item.forEach((itemx, index) => {
if (row.id == itemx.id)
itemx.showcheck = false
// newlistx.push(itemx)
});
})
}
});
selectionIds.value.pop(row);
})
selectionIds.value.pop(row)
}
}
function switchBatch() {
tableData.value.map((item) => {
item.map((itemx, index) => {
itemx.showcheck = false;
});
});
selectionIds.value = [];
tableData.value.forEach((item) => {
item.forEach((itemx, index) => {
itemx.showcheck = false
})
})
selectionIds.value = []
}
function changeContent() {
emit("changeShow");
emit('changeShow')
}
function initRem() {
const designWidth = 1440
const rempPx = 16
const scale = window.innerWidth / designWidth
document.documentElement.style.fontSize = `${scale * rempPx}px`
}
const initRem = () => {
const designWidth = 1440;
const rempPx = 16;
const scale = window.innerWidth / designWidth;
document.documentElement.style.fontSize = scale * rempPx + "px";
};
async function initData(
page: number,
pageSize: number,
filterId?: any,
taskName?: string
taskName?: string,
) {
const asideParmas = unref(finalStore.getAsideValue);
const asideParmas = unref(finalStore.getAsideValue)
// 使使
// let params = filterId ? { userSearchId: filterId } : asideParmas
let params = asideParmas;
params = params?.izshowall ? {} : params;
let params = asideParmas
params = params?.izshowall ? {} : params
const result = await getFinalList({
sortorder: sortorder.value,
@ -112,28 +114,28 @@ async function initData(
pagination.page = page;
pagination.pageCount = Math.ceil(totalCount / pageSize);
loading.value = false;
tableData.value.map((item) => {
tableData.value.forEach((item) => {
item.showcheck = false;
if (isValidTimestamp(item.fromuptime)) {
item.fromuptime = formatToDateHMS(item.fromuptime);
}
});
tableData.value = chunk(tableData.value, 4);
tableData.value = chunk(tableData.value, 4)
}
async function query(
page: number,
pageSize: number,
filterId?: any,
taskName?: string
taskName?: string,
) {
console.log("query", taskName);
console.log('query', taskName)
const asideParmas = unref(finalStore.getAsideValue);
const asideParmas = unref(finalStore.getAsideValue)
// 使使
// let params = filterId ? { userSearchId: filterId } : asideParmas
let params = asideParmas;
params = params?.izshowall ? {} : params;
let params = asideParmas
params = params?.izshowall ? {} : params
const result = await getFinalList({
sortorder: sortorder.value,
@ -143,151 +145,154 @@ async function query(
taskName,
isFail: true,
...params,
});
const { data, pageCount, totalCount } = result;
})
const { data, pageCount, totalCount } = result
// console.log(data, pageCount, totalCount);
let newlist = [];
let oldlist = tableData.value;
const newlist = []
const oldlist = tableData.value
if (oldlist.length > 0) {
oldlist.map((item) => {
oldlist.forEach((item) => {
// console.log(item);
if (item.length > 0) {
item.map((itemx: any) => {
itemx.showcheck = false;
newlist.push(itemx);
});
}
});
data.map((item) => {
item.showcheck = false;
newlist.push(item);
});
} else {
data.map((item) => {
item.showcheck = false;
newlist.push(item);
});
item.forEach((itemx: any) => {
itemx.showcheck = false
newlist.push(itemx)
})
}
})
data.forEach((item) => {
item.showcheck = false
newlist.push(item)
})
}
else {
data.forEach((item) => {
item.showcheck = false
newlist.push(item)
})
}
// tableData.value = tableData.value.concat(data);
tableData.value = newlist;
tableData.value = newlist
// console.log(tableData.value);
total.value = totalCount;
pagination.page = page;
pagination.pageCount = Math.ceil(totalCount / pageSize);
loading.value = false;
tableData.value.map((item) => {
tableData.value.forEach((item) => {
if (isValidTimestamp(item.fromuptime)) {
item.fromuptime = formatToDateHMS(item.fromuptime);
}
});
tableData.value = chunk(tableData.value, 4);
tableData.value = chunk(tableData.value, 4)
}
function isValidTimestamp(value) {
if (typeof value !== "number" || !Number.isInteger(value)) {
return false; //
}
const date = new Date(value);
return !isNaN(date.getTime()); //
if (typeof value !== 'number' || !Number.isInteger(value))
return false //
const date = new Date(value)
return !Number.isNaN(date.getTime()) //
}
//
function goDetail(row) {
router.push({
name: "final-detail",
name: 'final-detail',
query: { id: row.id, packageid: row.packageid },
});
})
}
//
function repeatBatchReject(items) {
console.log(items);
rejectHandler(items);
console.log(items)
rejectHandler(items)
}
//
function rejectHandler(list) {
console.log(list);
const msg = validate(list);
console.log(list)
const msg = validate(list)
if (msg !== null) {
message.error(msg);
return;
message.error(msg)
return
}
function validate(items: any[]) {
if (items.length === 0) return "至少选中一个任务";
return null;
if (items.length === 0)
return '至少选中一个任务'
return null
}
console.log(notPassModalRef);
const modal = unref(notPassModalRef)! as any;
modal.showModal(list);
console.log(notPassModalRef)
const modal = unref(notPassModalRef)! as any
modal.showModal(list)
}
function showModal(modalRef: any) {
const modal = unref(modalRef)! as any;
modal.showModal();
const modal = unref(modalRef)! as any
modal.showModal()
}
onMounted(() => {
initRem();
initData(1, 20);
});
initRem()
initData(1, 20)
})
const item = {
img: testImg,
checked: false,
title: "YP45678",
date: "2023-12-19 12:09:18",
};
const data = ref<any[]>([]);
title: 'YP45678',
date: '2023-12-19 12:09:18',
}
const data = ref<any[]>([])
function actionHandler(action: any, row: any) {
const { key } = action;
const { key } = action
switch (key) {
case "view":
goDetail(row);
break;
case "reset":
case 'view':
goDetail(row)
break
case 'reset':
// resetHandler()
break;
case "approval":
singleApproval(row);
break;
case "reject":
rejectHandler(row);
break;
break
case 'approval':
singleApproval(row)
break
case 'reject':
rejectHandler(row)
break
default:
break;
break
}
}
//
function doAudit(param: any, row: any) {
dialog.info({
title: "确认提示",
content: "确认给该任务审批为【通过】吗?",
positiveText: "确定",
negativeText: "取消",
title: '确认提示',
content: '确认给该任务审批为【通过】吗?',
positiveText: '确定',
negativeText: '取消',
onPositiveClick: () => {
audit(param).then((res) => {
const { code } = res;
if (code === "OK") {
message.success(res.message);
const { code } = res
if (code === 'OK') {
message.success(res.message)
// changecardstatus(3, row);
initData(1, 20);
num = 1;
reload();
} else {
message.error(res.message);
initData(1, 20)
num = 1
reload()
}
});
else {
message.error(res.message)
}
})
},
onNegativeClick: () => {},
});
})
}
//
function singleApproval(row) {
console.log(row);
console.log(row)
const param = {
result: true,
comment: "",
disposeType: "",
disposeTypeId: "",
failCauseId: "",
failCauseName: "",
comment: '',
disposeType: '',
disposeTypeId: '',
failCauseId: '',
failCauseName: '',
flowTaskInfoList: [
{
formId: row.id,
@ -295,65 +300,66 @@ function singleApproval(row) {
taskName: row.fromTaskName,
},
],
};
doAudit(param, row);
}
doAudit(param, row)
}
//
function batchApproval() {
const items: any = selectionIds.value;
const msg = validate(items);
const items: any = selectionIds.value
const msg = validate(items)
function validate(items: any[]) {
if (items.length === 0) return "至少选中一个任务";
return null;
if (items.length === 0)
return '至少选中一个任务'
return null
}
if (msg !== null) {
message.error(msg);
return;
message.error(msg)
return
}
console.log(items);
const list: any = [];
console.log(items)
const list: any = []
items.forEach((item) => {
list.push({
formId: item.id,
taskId: item.taskId,
taskName: item.fromtaskname,
});
});
})
})
const param = {
result: true,
comment: "",
disposeType: "",
disposeTypeId: "",
failCauseId: "",
failCauseName: "",
comment: '',
disposeType: '',
disposeTypeId: '',
failCauseId: '',
failCauseName: '',
flowTaskInfoList: list,
};
}
doAudit(param, {});
selectionIds.value = [];
num = 1;
doAudit(param, {})
selectionIds.value = []
num = 1
}
//
function batchReject() {
const items: any = selectionIds.value;
rejectHandler(items);
selectionIds.value = [];
num = 1;
const items: any = selectionIds.value
rejectHandler(items)
selectionIds.value = []
num = 1
}
//
function changecardstatus(states, item) {
// let index = tableData.value.findIndex(itemx => itemx.id === item.id);
let newlist = [];
tableData.value.map((itemarr, indexarr) => {
itemarr.map((itemobj, indexobj) => {
if (item.id == itemobj.id) {
itemobj.states = states;
}
newlist.push(itemobj);
});
});
tableData.value = chunk(newlist, 4);
const newlist = []
tableData.value.forEach((itemarr, indexarr) => {
itemarr.forEach((itemobj, indexobj) => {
if (item.id == itemobj.id)
itemobj.states = states
newlist.push(itemobj)
})
})
tableData.value = chunk(newlist, 4)
}
function reload() {
@ -365,32 +371,33 @@ function reload() {
// query(page!, pageSize!)
}
let debounceTimer;
let debounceTimer
//
function checkBottom() {
const container = scrollContainer.value;
const container = scrollContainer.value
// console.log(1)
if (!container) return;
if (!container)
return
// const { scrollTop, clientHeight, scrollHeight } = container;
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
const scrollTop = window.pageYOffset || document.documentElement.scrollTop
//
const clientHeight =
window.innerHeight || document.documentElement.clientHeight;
const clientHeight
= window.innerHeight || document.documentElement.clientHeight
//
const scrollHeight = document.documentElement.scrollHeight;
const scrollHeight = document.documentElement.scrollHeight
clearTimeout(debounceTimer);
clearTimeout(debounceTimer)
debounceTimer = setTimeout(() => {
if (scrollTop + clientHeight >= scrollHeight - 10) {
num = num + 1;
console.log(num);
query(num, 20);
num = num + 1
console.log(num)
query(num, 20)
// fetchData(); //
}
}, 500);
}, 500)
}
function changesort(sortnamex) {
if (sortorder.value == "asc" && sortnamex == "submit_date_timestamp") {
@ -470,18 +477,17 @@ defineExpose({
src="@/assets/images/task/btn-not-pass.png"
alt=""
@click.stop="batchReject"
/>
>
<SvgIcon size="24" name="vs" />
<img
class="btn-approval"
src="@/assets/images/task/btn-pass.png"
alt=""
@click.stop="batchApproval"
/>
>
</div>
<n-popover
ref="popover"
:style="{ padding: '0px' }"
style="width: 148px"
:show-arrow="false"
@ -495,26 +501,20 @@ defineExpose({
</template>
<ul class="wrapper-header-action">
<li @click="importHandler">
<SvgIcon size="20" name="import" /><span style="margin-left: 5px"
>批量导入数据</span
>
<SvgIcon size="20" name="import" /><span style="margin-left: 5px">批量导入数据</span>
</li>
<li @click="exportHandler">
<SvgIcon size="20" name="download" /><span
style="margin-left: 5px"
>导出待审数据</span
>
>导出待审数据</span>
</li>
<li>
<SvgIcon size="20" name="download" /><span
style="margin-left: 5px"
>导出全部数据</span
>
>导出全部数据</span>
</li>
<li>
<SvgIcon size="20" name="look" /><span style="margin-left: 5px"
>查看导入记录</span
>
<SvgIcon size="20" name="look" /><span style="margin-left: 5px">查看导入记录</span>
</li>
</ul>
</n-popover>
@ -522,7 +522,7 @@ defineExpose({
</div>
<div class="header_data">
<DataHeader :hasColor="true" />
<DataHeader :has-color="true" />
</div>
<div class="wrapper-settings">
<div>
@ -551,9 +551,9 @@ defineExpose({
</div>
<div :class="tableData.length>16?'cotnet_wrapeer':'cotnet_wrapeertwo'" @scroll="checkBottom" ref="scrollContainer">
<div
class="data_wrapper"
v-for="(sitem, sindex) in tableData"
:key="sindex"
class="data_wrapper"
:style="
sitem.length == 1
? { width: '25%' }
@ -565,9 +565,9 @@ defineExpose({
"
>
<div
class="item"
v-for="(item, index) in sitem"
:key="index"
class="item"
:style="
sitem.length == 1
? { margin: '0 4% 0 4%' }
@ -580,20 +580,20 @@ defineExpose({
>
<div class="top">
<div
@click="goDetail(item)"
class="img"
:style="
item.serverThumbnailUrl != null
? `background:url(${item.serverThumbnailUrl});background-size:100% 100%;background-repeat: no-repeat;`
: `background:url(${item.imgUrl});background-size:100% 100%;background-repeat: no-repeat;`
"
></div>
<div class="check_box" v-show="item.states == 2">
@click="goDetail(item)"
/>
<div v-show="item.states == 2" class="check_box">
<n-checkbox
size="medium"
label=" "
@click="handleCheck(item, item.showcheck)"
:checked="item.showcheck"
@click="handleCheck(item, item.showcheck)"
/>
</div>
<div class="content" @click="goDetail(item)">
@ -609,9 +609,9 @@ defineExpose({
</div>
<div class="tag_box">
<div
class="tag_item"
v-for="index in 2"
:key="index"
class="tag_item"
:style="
index == 2 || item.states == 3
? 'color:#02C984'
@ -640,22 +640,22 @@ defineExpose({
<div class="bottom">
<!-- <div class="reset_action">重置审批</div> -->
<div
class="resovle_action"
v-show="item.states != 2"
class="resovle_action"
@click="goDetail(item)"
>
查看
</div>
<div
class="resovle_action"
v-show="item.states == 2"
class="resovle_action"
@click="actionHandler({ key: 'approval' }, item)"
>
通过
</div>
<div
class="reject_action"
v-show="item.states == 2"
class="reject_action"
@click="actionHandler({ key: 'reject' }, [item])"
>
不通过

File diff suppressed because it is too large Load Diff

@ -33,6 +33,7 @@ import { useUser } from '@/store/modules/user'
import { isEmpty } from '@/utils'
import { formatToDateHMS } from '@/utils/dateUtil'
import { hideDownload } from '@/utils/image'
import bgLoading from '@/assets/images/bg-loading.png'
const emit = defineEmits(['setAsideItemName'])
@ -59,6 +60,8 @@ const sortBy: any = {
orderName: 'similarityScore',
}
const el = ref<HTMLDivElement | null>(null)
const bgLoadingImg = ref(bgLoading)
const pagination = reactive({
pageNo: 0,
pageSize: 30,
@ -411,7 +414,7 @@ async function getTableData() {
'拜访项目类别',
]
fieldList.map((v) => {
fieldList.forEach((v) => {
if (userFieldList.includes(v.name)) {
let locationobj = { address: '' }
if (v.name == 'location') {
@ -803,20 +806,23 @@ function sortHandler(orderby: 'similarityScore' | 'createdate') {
isFullScreen
? imgbigshow
? {
'position': 'relative',
position: 'relative',
//width: '70vw',
'flex': 1,
flex: 1,
// flex: 0.75,
'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
// 'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
background: `url(${taskDetailInfo?.ocrPicture?.imgurl}), url(${bgLoadingImg})`,
}
: {
'height': '92vh',
'flex': 1,
height: '92vh',
flex: 1,
'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
// 'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
background: `url(${taskDetailInfo?.ocrPicture?.imgurl}), url(${bgLoadingImg})`,
}
: {
'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
// 'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
background: `url(${taskDetailInfo?.ocrPicture?.imgurl}), url(${bgLoadingImg})`,
}
"
@mouseover="overTaskHandle"
@ -993,7 +999,8 @@ function sortHandler(orderby: 'similarityScore' | 'createdate') {
<div
class="img-wrapper"
:style="{
'background-image': `url(${item.serverThumbnailUrl})`,
// 'background-image': `url(${item.serverThumbnailUrl ? item.serverThumbnailUrl : item.imgUrl})`,
background: `url(${item.serverThumbnailUrl ? item.serverThumbnailUrl : item.imgUrl}), url(${bgLoadingImg})`,
}"
/>
<div class="small-mark" />
@ -1218,7 +1225,8 @@ function sortHandler(orderby: 'similarityScore' | 'createdate') {
<div
class="img-wrapper"
:style="{
'background-image': `url(${item.serverThumbnailUrl})`,
// 'background-image': `url(${item.serverThumbnailUrl ? item.serverThumbnailUrl : item.imgUrl})`,
background: `url(${item.serverThumbnailUrl ? item.serverThumbnailUrl : item.imgUrl}), url(${bgLoadingImg})`,
}"
@mouseover="overTaskHandelr(item)"
@mouseleave="leaveTaskHandler"

@ -254,19 +254,16 @@ function afterLeave() {
onMounted(() => {
show.value && addListeners()
window.addEventListener("keydown", handleKeydown);
window.addEventListener('keydown', handleKeydown)
})
//
function handleKeydown(event) {
//
if (event.keyCode === 67) {
if (event.keyCode === 67)
show.value = false
// batchModalRef.value.closeModal()
}
}
function showModal(value) {
taskId.value = value
refreshHandler()
@ -408,7 +405,8 @@ const gridHeight = computed(() => {
defineExpose({
showModal,
reload,closeModal
reload,
closeModal,
})
</script>
@ -545,7 +543,6 @@ defineExpose({
class="grid-item"
>
<n-image
ref="imageRef"
class="img"
:class="{
@ -553,7 +550,7 @@ defineExpose({
'img-full': viewMode === '3:4' || viewMode === 'verticalVersion',
}"
:src="item.serverThumbnailUrl"
:src="item.serverThumbnailUrl ? item.serverThumbnailUrl : item.imgUrl"
/>
<div class="small-mark" />
<div class="time">

@ -1,5 +1,6 @@
<script setup lang="ts">
import { ref } from 'vue'
import bgLoading from '@/assets/images/bg-loading.png'
const props = defineProps({
imgurl: String,
@ -12,6 +13,7 @@ const props = defineProps({
const imageRef = ref<ComponentElRef | null>()
const overTask = ref<any>(null)
const overTasktwo = ref<any>(null)
const bgLoadingImg = ref(bgLoading)
function overTaskHandle() {
const item = props.taskDetailInfo
@ -65,17 +67,20 @@ function previewHandler(event: MouseEvent) {
isFullScreen
? imgbigshow
? {
'position': 'relative',
'flex': 2,
'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
position: 'relative',
flex: 2,
// 'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
background: `url(${taskDetailInfo?.ocrPicture?.imgurl}), url(${bgLoadingImg})`,
}
: {
'height': '92vh',
'flex': 2,
'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
height: '92vh',
flex: 2,
// 'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
background: `url(${taskDetailInfo?.ocrPicture?.imgurl}), url(${bgLoadingImg})`,
}
: {
'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
// 'background-image': `url(${taskDetailInfo?.ocrPicture?.imgurl})`,
background: `url(${taskDetailInfo?.ocrPicture?.imgurl}), url(${bgLoadingImg})`,
}
"
@mouseover="overTaskHandle"
@ -103,11 +108,16 @@ function previewHandler(event: MouseEvent) {
/>
</div>
<div class="check">
<n-checkbox
<!-- <n-checkbox
v-show="batch && taskDetailInfo?.userapprove?.statshis === 1"
v-model:checked="taskDetailInfo?.checked"
:checked="taskDetailInfo?.checked"
@click.stop
@update:checked="onCheckChange($event, taskDetailInfo)"
/> -->
<n-checkbox
v-show="batch && taskDetailInfo?.userapprove?.statshis === 1"
:checked="taskDetailInfo?.checked"
@click.stop
/>
</div>

@ -1,16 +1,4 @@
<script lang="ts" setup>
import { audit, dubiousfileyd } from '@/api/task/task'
import {
getPictureSimilarityList,
getTaskDetailInfo,
} from '@/api/work/work'
import NotPassed from '@/components/Approval/NotPassed.vue'
import { TASK_STATUS_OBJ } from '@/enums/index'
import { useWorkOrder } from '@/store/modules/workOrder'
import { isEmpty } from '@/utils'
import { formatToDateHMS } from '@/utils/dateUtil'
import { hideDownload } from '@/utils/image'
import emitter from '@/utils/mitt'
import { useInfiniteScroll } from '@vueuse/core'
import { format } from 'date-fns'
import imagesloaded from 'imagesloaded'
@ -28,7 +16,20 @@ import {
} from 'vue'
import PictureInfo from '../components/PictureInfo.vue'
import ConfrimModal from '../modal/ConfrimModal.vue'
import { audit, dubiousfileyd } from '@/api/task/task'
import {
getPictureSimilarityList,
getTaskDetailInfo,
} from '@/api/work/work'
import NotPassed from '@/components/Approval/NotPassed.vue'
import { TASK_STATUS_OBJ } from '@/enums/index'
import { useWorkOrder } from '@/store/modules/workOrder'
import { isEmpty } from '@/utils'
import { formatToDateHMS } from '@/utils/dateUtil'
import { hideDownload } from '@/utils/image'
import emitter from '@/utils/mitt'
import type { ApprovalParam, SimilarityPictureSortParam } from '/#/api'
import bgLoading from '@/assets/images/bg-loading.png'
const batch = ref(false) //
const selectItems = ref<any[]>([])
@ -36,6 +37,7 @@ const message = useMessage()
const dialog = useDialog()
const totalCount = ref(0)
let _imagesload: any
const bgLoadingImg = ref(bgLoading)
function setBatch(value: boolean) {
if (value && batch.value)
@ -798,7 +800,7 @@ defineExpose({
>
<div
class="img-wrapper"
:style="{ 'background-image': `url(${item.imgurl})` }"
:style="{ background: `url(${item?.serverThumbnailUrl ? item.serverThumbnailUrl : item.imgurl}), url(${bgLoadingImg})` }"
/>
<div class="time-wrapper">
<div class="time">

Loading…
Cancel
Save