|
|
@ -5,185 +5,186 @@ |
|
|
|
:title="t(`ts.详情`).replace('ts.','')" |
|
|
|
direction="rtl" |
|
|
|
size="80%" |
|
|
|
v-loading="detailLoading" |
|
|
|
> |
|
|
|
<template #header> |
|
|
|
<div class="font-size-18px"> |
|
|
|
{{ titleValueRef }} <span class="ml-20px font-size-16px">{{ t(`ts.${titleNameRef}`).replace('ts.','') }}</span> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<Tabs ref="tabRef" :tabsList="tabsList" :current="current" @change="change"/> |
|
|
|
<ContentWrap v-if="!isBasic" v-show="tabsList[current].label=='主数据'"> |
|
|
|
<Descriptions |
|
|
|
:data="detailData" |
|
|
|
labelClassName="label-class-name" |
|
|
|
label-align="left" |
|
|
|
:direction="direction" |
|
|
|
:column="column" |
|
|
|
:schema="allSchemas.detailSchema" |
|
|
|
:columns="2" |
|
|
|
width="200px" |
|
|
|
> |
|
|
|
<template v-for="name in Object.keys($slots)" :key="name" #[name]="{ row }"> |
|
|
|
<slot :name="name" :row="row"></slot> |
|
|
|
</template> |
|
|
|
</Descriptions> |
|
|
|
</ContentWrap> |
|
|
|
<div class="flex"> |
|
|
|
<!-- 详情 --> |
|
|
|
<ContentWrap class="w-[100%]" v-show="tabsList[current].label!=annexAlias.label&&tabsList[current].label!='备注'&&tabsList[current].label!='变更记录'&&tabsList[current].label!='主数据'&&!annexTableData.some(item=>item.label==tabsList[current].label)"> |
|
|
|
<!-- 列表头部 --> |
|
|
|
<TableHead |
|
|
|
v-if="!isBasic&&!slotDetailTabList.some(item=>item.label==tabsList[current].label)" |
|
|
|
:HeadButttondata="HeadButttondata" |
|
|
|
:masterId="masterParmas.masterId" |
|
|
|
@button-base-click="buttonBaseClick" |
|
|
|
:routeName="routeName" |
|
|
|
@searchFormClick="searchFormClick" |
|
|
|
:allSchemas="detailAllSchemas" |
|
|
|
:key="updateKey" |
|
|
|
/> |
|
|
|
<!-- 默认单表展现 --> |
|
|
|
<div v-loading="detailLoading"> |
|
|
|
<Tabs ref="tabRef" :tabsList="tabsList" :current="current" @change="change"/> |
|
|
|
<ContentWrap v-if="!isBasic" v-show="tabsList[current].label=='主数据'"> |
|
|
|
<Descriptions |
|
|
|
v-if="isBasic && !tabsExtend" |
|
|
|
:data="detailData" |
|
|
|
labelClassName="label-class-name" |
|
|
|
label-align="left" |
|
|
|
:direction="direction" |
|
|
|
:column="column" |
|
|
|
:schema="allSchemas.detailSchema" |
|
|
|
:columns="2" |
|
|
|
:key="updateKey" |
|
|
|
/> |
|
|
|
<!-- 检验工序用到插槽 --> |
|
|
|
<slot v-if="isBasic && !tabsExtend" :data="detailData" name="basicBottom" :key="updateKey"></slot> |
|
|
|
<!-- 单表切换tabs 展现table --> |
|
|
|
<Table |
|
|
|
v-if="isBasic && tabsExtend" |
|
|
|
:columns="detailAllSchemasRef.tableColumns" |
|
|
|
:data="tableObjectRef.tableList" |
|
|
|
:loading="tableObjectRef.loading" |
|
|
|
:pagination="{ total: tableObjectRef.total }" |
|
|
|
v-model:pageSize="tableObjectRef.pageSize" |
|
|
|
v-model:currentPage="tableObjectRef.currentPage" |
|
|
|
v-model:sort="tableObjectRef.sort" |
|
|
|
:isShowPackNumber="isShowPackNumber" |
|
|
|
|
|
|
|
> |
|
|
|
<!-- <template #action="{ row }"> |
|
|
|
<ButtonBase |
|
|
|
:Butttondata="buttondata(row)" |
|
|
|
@button-base-click="buttonTableClick($event, row)" |
|
|
|
/> |
|
|
|
</template> --> |
|
|
|
</Table> |
|
|
|
<Table |
|
|
|
v-if="!isBasic && fromeWhere != 'countPlan'&&!slotDetailTabList.some(item=>item.label==tabsList[current].label)" |
|
|
|
:columns="detailAllSchemasRef.tableColumns" |
|
|
|
:data="tableObjectRef.tableList" |
|
|
|
:loading="tableObjectRef.loading" |
|
|
|
:pagination="{ total: tableObjectRef.total }" |
|
|
|
v-model:pageSize="tableObjectRef.pageSize" |
|
|
|
v-model:currentPage="tableObjectRef.currentPage" |
|
|
|
v-model:sort="tableObjectRef.sort" |
|
|
|
:isShowPackNumber="isShowPackNumber" |
|
|
|
width="200px" |
|
|
|
> |
|
|
|
<template v-for="name in Object.keys($slots)" :key="name" #[name]="{ row }"> |
|
|
|
<slot :name="name" :row="row"></slot> |
|
|
|
</template> |
|
|
|
<template #photos="{ row }"> |
|
|
|
<div v-for="(item,index) in row.photos.split(',')" :key="index" style="color:#409eff ; cursor: pointer;" @click="openImage(item)">{{ item }}</div> |
|
|
|
</template> |
|
|
|
<template #differencePrice="{row}"> |
|
|
|
<slot name="differencePrice" :row="row"></slot> |
|
|
|
</template> |
|
|
|
<template #action="{ row }"> |
|
|
|
<ButtonBase |
|
|
|
:Butttondata="buttondata(row)" |
|
|
|
@button-base-click="buttonTableClick($event, row)" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</Table> |
|
|
|
<slot v-if="slotDetailTabList.some(item=>item.label==tabsList[current].label)" :name="slotDetail.prop" v-for="slotDetail in slotDetailTabList"></slot> |
|
|
|
<DetailTable |
|
|
|
v-if="!isBasic && fromeWhere == 'countPlan' && isShowDrawer" |
|
|
|
:columns="detailAllSchemasRef.tableColumns" |
|
|
|
:data="tableObjectRef.tableList" |
|
|
|
:allList="allList" |
|
|
|
:countScopeType="countScopeType" |
|
|
|
:key="updateKey" |
|
|
|
> |
|
|
|
<template #action="{ row }"> |
|
|
|
<ButtonBase |
|
|
|
:Butttondata="buttondata(row)" |
|
|
|
@button-base-click="buttonTableClick($event, row)" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</DetailTable> |
|
|
|
</Descriptions> |
|
|
|
</ContentWrap> |
|
|
|
<!-- other附件组件:如质检明细 --> |
|
|
|
<div v-for="(annexItem ,index) in annexTableData" :key="index" v-show="annexItem.label==tabsList[current].label" class="w-[100%]" :style="{height:annexItem.hasSubDetail?'100%':remarkHeight+'px'}"> |
|
|
|
<ContentWrap class="w-[100%]"> |
|
|
|
<ElScrollbar ref="scrollbar" :style="{height:annexItem.hasSubDetail?'100%':(remarkHeight-40)+'px'}"> |
|
|
|
<Annex v-show="tabsList[current].label==annexItem.label" |
|
|
|
:annexData="annexItem" |
|
|
|
:fileType="annexItem.fileType" |
|
|
|
:limit="annexItem.limit" |
|
|
|
:fileSize="annexItem.fileSize" |
|
|
|
:showAddBtn="!annexItem.hiddenUpload" |
|
|
|
:showPreview="annexItem.showPreview" |
|
|
|
:showDownload = "annexItem.showDownload" |
|
|
|
:hiddenDelete = "annexItem.hiddenDelete" |
|
|
|
@handleAnnexSuccess="updateAnnexTableHandle" |
|
|
|
@deleteAnnexSuccess="updateAnnexTableHandle" |
|
|
|
:upData="{...remarksData.data,tableName:annexItem.tableName}" |
|
|
|
<div class="flex"> |
|
|
|
<!-- 详情 --> |
|
|
|
<ContentWrap class="w-[100%]" v-show="tabsList[current].label!=annexAlias.label&&tabsList[current].label!='备注'&&tabsList[current].label!='变更记录'&&tabsList[current].label!='主数据'&&!annexTableData.some(item=>item.label==tabsList[current].label)"> |
|
|
|
<!-- 列表头部 --> |
|
|
|
<TableHead |
|
|
|
v-if="!isBasic&&!slotDetailTabList.some(item=>item.label==tabsList[current].label)" |
|
|
|
:HeadButttondata="HeadButttondata" |
|
|
|
:masterId="masterParmas.masterId" |
|
|
|
@button-base-click="buttonBaseClick" |
|
|
|
:routeName="routeName" |
|
|
|
@searchFormClick="searchFormClick" |
|
|
|
:allSchemas="detailAllSchemas" |
|
|
|
:key="updateKey" |
|
|
|
/> |
|
|
|
<!-- 默认单表展现 --> |
|
|
|
<Descriptions |
|
|
|
v-if="isBasic && !tabsExtend" |
|
|
|
:data="detailData" |
|
|
|
:schema="allSchemas.detailSchema" |
|
|
|
:columns="2" |
|
|
|
:key="updateKey" |
|
|
|
/> |
|
|
|
<!-- 检验工序用到插槽 --> |
|
|
|
<slot v-if="isBasic && !tabsExtend" :data="detailData" name="basicBottom" :key="updateKey"></slot> |
|
|
|
<!-- 单表切换tabs 展现table --> |
|
|
|
<Table |
|
|
|
v-if="isBasic && tabsExtend" |
|
|
|
:columns="detailAllSchemasRef.tableColumns" |
|
|
|
:data="tableObjectRef.tableList" |
|
|
|
:loading="tableObjectRef.loading" |
|
|
|
:pagination="{ total: tableObjectRef.total }" |
|
|
|
v-model:pageSize="tableObjectRef.pageSize" |
|
|
|
v-model:currentPage="tableObjectRef.currentPage" |
|
|
|
v-model:sort="tableObjectRef.sort" |
|
|
|
:isShowPackNumber="isShowPackNumber" |
|
|
|
|
|
|
|
> |
|
|
|
<!-- <template #action="{ row }"> |
|
|
|
<ButtonBase |
|
|
|
:Butttondata="buttondata(row)" |
|
|
|
@button-base-click="buttonTableClick($event, row)" |
|
|
|
/> |
|
|
|
</ElScrollbar> |
|
|
|
</ContentWrap> |
|
|
|
<ContentWrap class="w-[100%]" v-if="annexItem.subDetailTableData"> |
|
|
|
</template> --> |
|
|
|
</Table> |
|
|
|
<Table |
|
|
|
v-if="!isBasic && fromeWhere != 'countPlan'" |
|
|
|
:align="annexItem.align?annexItem.align:'center'" |
|
|
|
:columns="annexItem.subDetailTableData.tableColumns" |
|
|
|
:data="annexItem.subDetailTableData.tableList" |
|
|
|
:loading="annexItem.subDetailTableData.loading" |
|
|
|
:pagination="{ total: annexItem.subDetailTableData.tableList.length }" |
|
|
|
v-if="!isBasic && fromeWhere != 'countPlan'&&!slotDetailTabList.some(item=>item.label==tabsList[current].label)" |
|
|
|
:columns="detailAllSchemasRef.tableColumns" |
|
|
|
:data="tableObjectRef.tableList" |
|
|
|
:loading="tableObjectRef.loading" |
|
|
|
:pagination="{ total: tableObjectRef.total }" |
|
|
|
v-model:pageSize="tableObjectRef.pageSize" |
|
|
|
v-model:currentPage="tableObjectRef.currentPage" |
|
|
|
v-model:sort="tableObjectRef.sort" |
|
|
|
:isShowPackNumber="isShowPackNumber" |
|
|
|
/> |
|
|
|
> |
|
|
|
<template v-for="name in Object.keys($slots)" :key="name" #[name]="{ row }"> |
|
|
|
<slot :name="name" :row="row"></slot> |
|
|
|
</template> |
|
|
|
<template #photos="{ row }"> |
|
|
|
<div v-for="(item,index) in row.photos.split(',')" :key="index" style="color:#409eff ; cursor: pointer;" @click="openImage(item)">{{ item }}</div> |
|
|
|
</template> |
|
|
|
<template #differencePrice="{row}"> |
|
|
|
<slot name="differencePrice" :row="row"></slot> |
|
|
|
</template> |
|
|
|
<template #action="{ row }"> |
|
|
|
<ButtonBase |
|
|
|
:Butttondata="buttondata(row)" |
|
|
|
@button-base-click="buttonTableClick($event, row)" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</Table> |
|
|
|
<slot v-if="slotDetailTabList.some(item=>item.label==tabsList[current].label)" :name="slotDetail.prop" v-for="slotDetail in slotDetailTabList"></slot> |
|
|
|
<DetailTable |
|
|
|
v-if="!isBasic && fromeWhere == 'countPlan' && isShowDrawer" |
|
|
|
:columns="detailAllSchemasRef.tableColumns" |
|
|
|
:data="tableObjectRef.tableList" |
|
|
|
:allList="allList" |
|
|
|
:countScopeType="countScopeType" |
|
|
|
:key="updateKey" |
|
|
|
> |
|
|
|
<template #action="{ row }"> |
|
|
|
<ButtonBase |
|
|
|
:Butttondata="buttondata(row)" |
|
|
|
@button-base-click="buttonTableClick($event, row)" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
</DetailTable> |
|
|
|
</ContentWrap> |
|
|
|
|
|
|
|
</div> |
|
|
|
<!-- 附件/备注/变更记录 --> |
|
|
|
<ContentWrap v-if="!annexAlias.hidden" class="w-[100%]" v-show="tabsList[current].label==annexAlias.label" :style="{height:remarkHeight+'px'}"> |
|
|
|
<!-- 附件组件 --> |
|
|
|
<ElScrollbar ref="scrollbar" :style="{height:(remarkHeight-40)+'px'}"> |
|
|
|
<Annex |
|
|
|
:annexData="annexData" |
|
|
|
:showDownload = "annexAlias.showDownload" |
|
|
|
:hiddenDelete = "annexAlias.hiddenDelete" |
|
|
|
@handleAnnexSuccess="handleAnnexSuccess" |
|
|
|
@deleteAnnexSuccess="deleteAnnexSuccess" |
|
|
|
:upData="remarksData.data" |
|
|
|
<!-- other附件组件:如质检明细 --> |
|
|
|
<div v-for="(annexItem ,index) in annexTableData" :key="index" v-show="annexItem.label==tabsList[current].label" class="w-[100%]" :style="{height:annexItem.hasSubDetail?'100%':remarkHeight+'px'}"> |
|
|
|
<ContentWrap class="w-[100%]"> |
|
|
|
<ElScrollbar ref="scrollbar" :style="{height:annexItem.hasSubDetail?'100%':(remarkHeight-40)+'px'}"> |
|
|
|
<Annex v-show="tabsList[current].label==annexItem.label" |
|
|
|
:annexData="annexItem" |
|
|
|
:fileType="annexItem.fileType" |
|
|
|
:limit="annexItem.limit" |
|
|
|
:fileSize="annexItem.fileSize" |
|
|
|
:showAddBtn="!annexItem.hiddenUpload" |
|
|
|
:showPreview="annexItem.showPreview" |
|
|
|
:showDownload = "annexItem.showDownload" |
|
|
|
:hiddenDelete = "annexItem.hiddenDelete" |
|
|
|
@handleAnnexSuccess="updateAnnexTableHandle" |
|
|
|
@deleteAnnexSuccess="updateAnnexTableHandle" |
|
|
|
:upData="{...remarksData.data,tableName:annexItem.tableName}" |
|
|
|
/> |
|
|
|
</ElScrollbar> |
|
|
|
</ContentWrap> |
|
|
|
<ContentWrap class="w-[100%]" v-if="annexItem.subDetailTableData"> |
|
|
|
<Table |
|
|
|
v-if="!isBasic && fromeWhere != 'countPlan'" |
|
|
|
:align="annexItem.align?annexItem.align:'center'" |
|
|
|
:columns="annexItem.subDetailTableData.tableColumns" |
|
|
|
:data="annexItem.subDetailTableData.tableList" |
|
|
|
:loading="annexItem.subDetailTableData.loading" |
|
|
|
:pagination="{ total: annexItem.subDetailTableData.tableList.length }" |
|
|
|
v-model:pageSize="tableObjectRef.pageSize" |
|
|
|
v-model:currentPage="tableObjectRef.currentPage" |
|
|
|
v-model:sort="tableObjectRef.sort" |
|
|
|
:isShowPackNumber="isShowPackNumber" |
|
|
|
/> |
|
|
|
</ContentWrap> |
|
|
|
|
|
|
|
</div> |
|
|
|
<!-- 附件/备注/变更记录 --> |
|
|
|
<ContentWrap v-if="!annexAlias.hidden" class="w-[100%]" v-show="tabsList[current].label==annexAlias.label" :style="{height:remarkHeight+'px'}"> |
|
|
|
<!-- 附件组件 --> |
|
|
|
<ElScrollbar ref="scrollbar" :style="{height:(remarkHeight-40)+'px'}"> |
|
|
|
<Annex |
|
|
|
:annexData="annexData" |
|
|
|
:showDownload = "annexAlias.showDownload" |
|
|
|
:hiddenDelete = "annexAlias.hiddenDelete" |
|
|
|
@handleAnnexSuccess="handleAnnexSuccess" |
|
|
|
@deleteAnnexSuccess="deleteAnnexSuccess" |
|
|
|
:upData="remarksData.data" |
|
|
|
:key="count" |
|
|
|
/> |
|
|
|
</ElScrollbar> |
|
|
|
</ContentWrap> |
|
|
|
<ContentWrap class="w-[100%]" v-show="tabsList[current].label=='备注'" :style="{height:remarkHeight+'px'}"> |
|
|
|
<ElScrollbar ref="scrollbar" :style="{height:(remarkHeight-40)+'px'}"> |
|
|
|
<!-- 备注组件 --> |
|
|
|
<Remarks |
|
|
|
:remarksData="remarksData" |
|
|
|
class="mt-20px" |
|
|
|
@remarksSubmitScuess="remarksSubmitScuess" |
|
|
|
:key="count" |
|
|
|
/> |
|
|
|
</ElScrollbar> |
|
|
|
</ContentWrap> |
|
|
|
<ContentWrap class="w-[100%]" v-show="tabsList[current].label=='备注'" :style="{height:remarkHeight+'px'}"> |
|
|
|
<ElScrollbar ref="scrollbar" :style="{height:(remarkHeight-40)+'px'}"> |
|
|
|
<!-- 备注组件 --> |
|
|
|
<Remarks |
|
|
|
:remarksData="remarksData" |
|
|
|
class="mt-20px" |
|
|
|
@remarksSubmitScuess="remarksSubmitScuess" |
|
|
|
:key="count" |
|
|
|
/> |
|
|
|
</ElScrollbar> |
|
|
|
</ContentWrap> |
|
|
|
<ContentWrap class="w-[100%]" v-show="tabsList[current].label=='变更记录'" :style="{height:remarkHeight+'px'}"> |
|
|
|
<ElScrollbar ref="scrollbar" :style="{height:(remarkHeight-40)+'px'}"> |
|
|
|
<!-- 变更记录组件 --> |
|
|
|
<ChangeRecord :changeRecordData="changeRecordData" class="mt-20px" :key="count" :schema="allSchemas.detailSchema"/> |
|
|
|
</ElScrollbar> |
|
|
|
</ContentWrap> |
|
|
|
</ElScrollbar> |
|
|
|
</ContentWrap> |
|
|
|
<ContentWrap class="w-[100%]" v-show="tabsList[current].label=='变更记录'" :style="{height:remarkHeight+'px'}"> |
|
|
|
<ElScrollbar ref="scrollbar" :style="{height:(remarkHeight-40)+'px'}"> |
|
|
|
<!-- 变更记录组件 --> |
|
|
|
<ChangeRecord :changeRecordData="changeRecordData" class="mt-20px" :key="count" :schema="allSchemas.detailSchema"/> |
|
|
|
</ElScrollbar> |
|
|
|
</ContentWrap> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-drawer> |
|
|
|
<!-- 表格弹窗 --> |
|
|
@ -1045,7 +1046,7 @@ const buttonBaseClick = (val, item) => { |
|
|
|
} |
|
|
|
} else if (val.includes('export')) { |
|
|
|
// 刷新 |
|
|
|
emit('buttonBaseClick',val, item,tableObject) |
|
|
|
emit('buttonBaseClick',val, item,tableObjectRef.value) |
|
|
|
} else if (val == 'refresh') { |
|
|
|
// 刷新 |
|
|
|
getList() |
|
|
@ -1388,7 +1389,7 @@ watch( |
|
|
|
deep: true |
|
|
|
} |
|
|
|
) |
|
|
|
defineExpose({ openDetail, formRef ,updateList,submitUpdateList,changeTabCurrent,openForm,tableObjectRef}) // 提供 open 方法,用于打开弹窗 |
|
|
|
defineExpose({ openDetail, formRef ,updateList,submitUpdateList,changeTabCurrent,openForm,tableObjectRef,detailLoading}) // 提供 open 方法,用于打开弹窗 |
|
|
|
|
|
|
|
</script> |
|
|
|
<style lang="scss"> |
|
|
|