|
|
|
@ -50,7 +50,6 @@ import FormPageCont from "@/components/DesignForm/tableListPage/formPageCont.vue |
|
|
|
import NewFormPageCont from "@/components/DesignForm/tableListPage/newFormPageCont.vue"; |
|
|
|
|
|
|
|
import NewTableFlow from "@/views/sysworkflow/lowcodepage/pageFlow/newTableFlow.vue"; |
|
|
|
import TableFlow from "@/views/sysworkflow/lowcodepage/pageFlow/tableFlow.vue"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1151,19 +1150,11 @@ let asfQueryParams: any[] = []; |
|
|
|
@ 功能: 获取数据 |
|
|
|
*/ |
|
|
|
const getPageData = () => { |
|
|
|
|
|
|
|
// by han2015: 处理排序字段信息 |
|
|
|
let arr:string[]=[]; |
|
|
|
columnSortData.forEach((value, key) => { |
|
|
|
arr.push(`${key} ${value}`) |
|
|
|
}); |
|
|
|
|
|
|
|
let sendData = { |
|
|
|
formId: props.formId, |
|
|
|
page: state.currentPage, |
|
|
|
pagesize: state.pageSize, |
|
|
|
searchData: json2string(props.searchData), |
|
|
|
sortData: arr.join(", "), |
|
|
|
}; |
|
|
|
// console.log("获取列表详细信息",sendData) |
|
|
|
|
|
|
|
@ -1193,7 +1184,6 @@ const getPageData = () => { |
|
|
|
break; |
|
|
|
default: |
|
|
|
state.loading = true; |
|
|
|
|
|
|
|
//by han2015, 抽成独立部分,方便其他功能调用 |
|
|
|
doGainFormPageListCont(sendData) |
|
|
|
.then((datas) => { |
|
|
|
@ -1791,32 +1781,6 @@ const lookPageInfoIsShow = ref(false); |
|
|
|
const asflookPageInfoIsShow = ref(false); |
|
|
|
const pageInfoCont = ref<any>(); |
|
|
|
|
|
|
|
//------------------ by han2015: 支持表单排序功能---------------------- |
|
|
|
const columnSortData = new Map(); |
|
|
|
const setHeaderClass=(params:any)=>{ |
|
|
|
if(columnSortData.has(params.column.property)){ |
|
|
|
if(columnSortData.get(params.column.property)=="DESC"){ |
|
|
|
params.column.order="descending" |
|
|
|
return |
|
|
|
}else{ |
|
|
|
params.column.order="ascending" |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// by han2015: 列表支持表头排序 |
|
|
|
const onUpdateSort = (data: { prop: string; order: "ascending" | "descending" | null }) => { |
|
|
|
if (data.order === "descending") { |
|
|
|
columnSortData.set(data.prop, "DESC"); |
|
|
|
} else if (data.order === "ascending") { |
|
|
|
columnSortData.set(data.prop, "ASC"); |
|
|
|
} else { |
|
|
|
columnSortData.delete(data.prop); |
|
|
|
} |
|
|
|
getPageData() |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const lookPageInfo = (val: any) => { |
|
|
|
console.log("查看详细内容--------------------------->"); |
|
|
|
console.log(val); |
|
|
|
@ -2366,14 +2330,13 @@ const getNonValue = () => { |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col v-if="viewType == 1" :span="24" class="tableTdClass"> |
|
|
|
|
|
|
|
<el-table |
|
|
|
v-bind="data.tableProps" |
|
|
|
ref="table" |
|
|
|
v-loading="state.loading" |
|
|
|
:data="tableDataList" |
|
|
|
table-layout="fixed" |
|
|
|
@sort-change="onUpdateSort" |
|
|
|
:header-cell-class-name="(params:any)=>{setHeaderClass(params)}" |
|
|
|
border |
|
|
|
@selection-change="selectionChange" |
|
|
|
> |
|
|
|
@ -2386,64 +2349,27 @@ const getNonValue = () => { |
|
|
|
config="" |
|
|
|
width="60" |
|
|
|
fixed |
|
|
|
header-align="center" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
> |
|
|
|
<template v-if="item.help" #header="scope"> |
|
|
|
{{ scope.column.label }} |
|
|
|
<tooltip :content="item.help" /> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-else-if="item.fieldClass == '_lableTitle'" |
|
|
|
label="标题" |
|
|
|
config="" |
|
|
|
min-width="20" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
{{ writeListTitle(scope.row, viewPage.list) }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
v-else-if="item.fieldClass == ''" |
|
|
|
:prop="item.field" |
|
|
|
:label="item.label" |
|
|
|
:min-width="readerColumnSun(item)" |
|
|
|
header-align="center" |
|
|
|
sortable="custom" |
|
|
|
align="center" |
|
|
|
> |
|
|
|
<template #default> |
|
|
|
<template v-for="sunItem in item.children" :key="sunItem.field"> |
|
|
|
<template v-if="item.pattern == 'table'" > |
|
|
|
<el-table-column v-if="sunItem.fieldClass == ''" :prop="sunItem.field" :label="sunItem.label" header-align="center" align="center" :min-width="readerColumnSun(sunItem)"> |
|
|
|
<template #default="scopeChilder"> |
|
|
|
<div v-html="tableChildren(sunItem.field,scopeChilder.row[item.field])"></div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
|
|
|
|
<el-table-column |
|
|
|
v-else-if="item.fieldClass == '__control'" |
|
|
|
:prop="item.field" |
|
|
|
:label="item.label" |
|
|
|
config="" |
|
|
|
min-width="220" |
|
|
|
header-align="center" |
|
|
|
width="200" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
fixed="right" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
<el-button-group> |
|
|
|
<el-tooltip |
|
|
|
v-if="scope.row.flowIsOpens == 1 && scope.row.taskStatus == 1" |
|
|
|
v-if="scope.row.flowIsOpen == 1 && scope.row.taskStatus == 1" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="提交审批" |
|
|
|
@ -2456,8 +2382,9 @@ const getNonValue = () => { |
|
|
|
@click="submitApproval(scope.row)" |
|
|
|
/> |
|
|
|
</el-tooltip> |
|
|
|
|
|
|
|
<el-tooltip |
|
|
|
v-if="scope.row.flowIsOpens == 1 && scope.row.taskStatus == 2" |
|
|
|
v-if="scope.row.flowIsOpen == 1 && scope.row.taskStatus == 2" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="重新申请" |
|
|
|
@ -2470,7 +2397,7 @@ const getNonValue = () => { |
|
|
|
@click="afreshSendFlow(scope.row)" |
|
|
|
/> |
|
|
|
</el-tooltip> |
|
|
|
<el-tooltip |
|
|
|
<el-tooltip |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="查看详情" |
|
|
|
@ -2483,6 +2410,22 @@ const getNonValue = () => { |
|
|
|
@click="lookPageInfo(scope.row)" |
|
|
|
/> |
|
|
|
</el-tooltip> |
|
|
|
|
|
|
|
<el-tooltip |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="打印表单" |
|
|
|
placement="top-end" |
|
|
|
> |
|
|
|
<el-button |
|
|
|
@click="printHtmlPage(props.formId,props.appKey,props.versionid, props.formKey,scope.row)" |
|
|
|
type="primary" |
|
|
|
size="small" |
|
|
|
class="fa fa-print" |
|
|
|
|
|
|
|
/> |
|
|
|
</el-tooltip> |
|
|
|
|
|
|
|
<el-popconfirm |
|
|
|
v-if="scope.row.retract_true" |
|
|
|
confirm-button-text="确定" |
|
|
|
@ -2498,11 +2441,13 @@ const getNonValue = () => { |
|
|
|
size="small" |
|
|
|
class="fa fa-mail-reply-all" |
|
|
|
color="rgb(250, 181.5, 181.5)" |
|
|
|
|
|
|
|
/> |
|
|
|
</template> |
|
|
|
</el-popconfirm> |
|
|
|
|
|
|
|
<el-popconfirm |
|
|
|
v-if="scope.row.flowIsOpens == 1 && scope.row.isRetract" |
|
|
|
v-if="scope.row.flowIsOpen == 1 && scope.row.isRetract" |
|
|
|
confirm-button-text="确定" |
|
|
|
cancel-button-text="取消" |
|
|
|
:icon="QuestionFilled" |
|
|
|
@ -2516,34 +2461,20 @@ const getNonValue = () => { |
|
|
|
</template> |
|
|
|
</el-popconfirm> |
|
|
|
<el-tooltip |
|
|
|
v-if="scope.row.flowIsOpens == 2" |
|
|
|
v-if="scope.row.flowIsOpen == 2" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="编辑" |
|
|
|
placement="top-end" |
|
|
|
> |
|
|
|
<el-button |
|
|
|
v-if="formHasPower(props.pickAppMenu.appkey,props.signCode,'bj',0)" |
|
|
|
v-if="formHasPower(props.appKey,props.signCode,'bj',0)" |
|
|
|
type="info" |
|
|
|
size="small" |
|
|
|
class="fa fa-edit" |
|
|
|
@click="editInfo(scope.row)" |
|
|
|
/> |
|
|
|
</el-tooltip> |
|
|
|
<el-tooltip |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="打印表单" |
|
|
|
placement="top-end" |
|
|
|
> |
|
|
|
<el-button |
|
|
|
@click="printHtmlPage(props.formId,props.appKey,props.versionid, props.formKey,scope.row)" |
|
|
|
type="primary" |
|
|
|
size="small" |
|
|
|
class="fa fa-print" |
|
|
|
|
|
|
|
/> |
|
|
|
</el-tooltip> |
|
|
|
<el-popconfirm |
|
|
|
v-if="scope.row.taskStatus == 2 || scope.row.taskStatus == 1" |
|
|
|
confirm-button-text="确定" |
|
|
|
@ -2555,12 +2486,12 @@ const getNonValue = () => { |
|
|
|
@cancel="cancelEvent(scope.row)" |
|
|
|
> |
|
|
|
<template #reference> |
|
|
|
<el-button v-if="formHasPower(props.pickAppMenu.appkey,props.signCode,'sc',0)" type="danger" size="small" class="fa fa-trash-o" /> |
|
|
|
<el-button v-if="formHasPower(props.appKey,props.signCode,'sc',0)" type="danger" size="small" class="fa fa-trash-o" /> |
|
|
|
</template> |
|
|
|
</el-popconfirm> |
|
|
|
|
|
|
|
<el-tooltip |
|
|
|
v-if="scope.row.flowIsOpens == 1 && scope.row.taskStatus == 4" |
|
|
|
v-if="scope.row.flowIsOpen == 1 && scope.row.taskStatus == 4" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="申请修改" |
|
|
|
@ -2573,55 +2504,109 @@ const getNonValue = () => { |
|
|
|
@click="editFormSendFlow(scope.row)" |
|
|
|
/> |
|
|
|
</el-tooltip> |
|
|
|
|
|
|
|
|
|
|
|
</el-button-group> |
|
|
|
</template> |
|
|
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
|
|
|
|
<el-table-column |
|
|
|
<el-table-column |
|
|
|
v-else-if="item.fieldClass == '_lableTitle'" |
|
|
|
label="标题" |
|
|
|
config="" |
|
|
|
min-width="320" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
{{ writeListTitle(scope.row, viewPage.list) }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-else-if="item.fieldClass == ''" |
|
|
|
:prop="item.field" |
|
|
|
:label="item.label" |
|
|
|
:width="readerColumnSun(item)" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
<template v-for="sunItem in item.children" v-if="item.pattern == 'table'"> |
|
|
|
<el-table-column v-if="sunItem.fieldClass == ''" :prop="sunItem.field" :label="sunItem.label" header-align="center" align="center" :min-width="readerColumnSun(sunItem)"> |
|
|
|
<template #default="scopeChilder"> |
|
|
|
<div v-html="tableChildren(sunItem.field,scopeChilder.row[item.field])"></div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-else |
|
|
|
:prop="item.field" |
|
|
|
:label="item.label" |
|
|
|
config="" |
|
|
|
min-width="220" |
|
|
|
header-align="center" |
|
|
|
sortable="custom" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
> |
|
|
|
<template v-if="item.help" #header="scope"> |
|
|
|
{{ scope.column.label }} |
|
|
|
<tooltip :content="item.help" /> |
|
|
|
</template> |
|
|
|
<template #default="scope"> |
|
|
|
<div v-if="item.fieldClass == 'deptOrg'"> |
|
|
|
<!-- {{scope.row[scope.column.property]}}{{item}} --> |
|
|
|
{{ scope.row[scope.column.property] }} |
|
|
|
</div> |
|
|
|
<div v-else-if="item.fieldClass == 'cascader'"> |
|
|
|
{{ judjeCascader(scope.row[scope.column.property], item.options) }} |
|
|
|
</div> |
|
|
|
<div v-else-if="item.fieldClass == 'radio'"> |
|
|
|
<!-- {{scope.row[scope.column.property]}}{{item}} --> |
|
|
|
{{ judjeRadio(scope.row[scope.column.property], item.options) }} |
|
|
|
</div> |
|
|
|
<div v-else-if="item.fieldClass == 'upload'"> |
|
|
|
<div class="demo-image__error"> |
|
|
|
<el-image |
|
|
|
style="width: 50px; height: 50px" |
|
|
|
:src="scope.row[scope.column.property]" |
|
|
|
> |
|
|
|
<template #error> |
|
|
|
<div class="image-slot"> |
|
|
|
<el-icon><Picture /></el-icon> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-image> |
|
|
|
</div> |
|
|
|
|
|
|
|
<template v-if="item.fieldClass == 'select'" #default="scope"> |
|
|
|
{{ scope.row[scope.column.property] }} |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == ''" #default="scope"> |
|
|
|
<!-- {{scope.row[scope.column.property]}}{{item}} --> |
|
|
|
<el-tag v-if="scope.row[scope.column.property] == 1" type="success" |
|
|
|
>启用</el-tag |
|
|
|
> |
|
|
|
<el-tag v-if="scope.row[scope.column.property] == 2" type="danger" |
|
|
|
>已禁用</el-tag |
|
|
|
> |
|
|
|
<el-tag v-if="scope.row[scope.column.property] == 3" type="info" |
|
|
|
>已删除</el-tag |
|
|
|
> |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'deptOrg'" #default="scope"> |
|
|
|
<!-- {{scope.row[scope.column.property]}}{{item}} --> |
|
|
|
{{ scope.row[scope.column.property] }} |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'owner'" #default="scope"> |
|
|
|
<!-- {{scope.row[scope.column.property]}}{{item}}拥有者 --> |
|
|
|
{{ scope.row[scope.column.property] }} |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'lowcodeImage'" #default="scope"> |
|
|
|
<el-image |
|
|
|
style="width: 30px; height: 30px" |
|
|
|
:src="scope.row[scope.column.property]" |
|
|
|
:fit="fit" |
|
|
|
/> |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'expand-user'" #default="scope"> |
|
|
|
{{ scope.row[scope.column.property] }} |
|
|
|
<!--选择用户--> |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'cascader'" #default="scope"> |
|
|
|
{{ judjeCascader(scope.row[scope.column.property], item.options) }} |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'radio'" #default="scope"> |
|
|
|
<!-- {{scope.row[scope.column.property]}}{{item}} --> |
|
|
|
{{ judjeRadio(scope.row[scope.column.property], item.options) }} |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'upload'" #default="scope"> |
|
|
|
<div class="demo-image__error"> |
|
|
|
<el-image |
|
|
|
style="width: 30px; height: 30px" |
|
|
|
:src="scope.row[scope.column.property]" |
|
|
|
> |
|
|
|
<template #error> |
|
|
|
<div class="image-slot"> |
|
|
|
<el-icon><Picture /></el-icon> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-image> |
|
|
|
</div> |
|
|
|
<div v-else-if="item.fieldClass == 'switch'"> |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'switch'" #default="scope"> |
|
|
|
<el-tag |
|
|
|
v-if="judjeSwitch(scope.row[scope.column.property], item.activeValue)" |
|
|
|
type="success" |
|
|
|
@ -2630,19 +2615,21 @@ const getNonValue = () => { |
|
|
|
启用 |
|
|
|
</el-tag> |
|
|
|
<el-tag v-else type="danger" effect="light"> 禁用 </el-tag> |
|
|
|
</div> |
|
|
|
<div v-else-if="item.fieldClass == 'baidumap'"> |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'baidumap'" #default="scope"> |
|
|
|
{{ scope.row[scope.column.property] }} |
|
|
|
</template> |
|
|
|
<template v-if="item.fieldClass == 'associatedForms'" #default="scope"> |
|
|
|
<el-link |
|
|
|
key="primary" |
|
|
|
type="primary" |
|
|
|
@click="showAsfDetailDialog(item, scope, asfQueryParams)" |
|
|
|
> |
|
|
|
{{ scope.row[scope.column.property] }} |
|
|
|
</div> |
|
|
|
<div v-else-if="item.fieldClass == 'associatedForms'"> |
|
|
|
<el-link |
|
|
|
key="primary" |
|
|
|
type="primary" |
|
|
|
@click="showAsfDetailDialog(item, scope, asfQueryParams)" |
|
|
|
> |
|
|
|
{{ scope.row[scope.column.property] }} |
|
|
|
</el-link> |
|
|
|
</div> |
|
|
|
</el-link> |
|
|
|
</template> |
|
|
|
<template v-else #default="scope"> |
|
|
|
{{ scope.row[scope.column.property] }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</template> |
|
|
|
@ -2711,7 +2698,7 @@ const getNonValue = () => { |
|
|
|
|
|
|
|
|
|
|
|
<SeeContChart |
|
|
|
:echats-views="echatsViews" |
|
|
|
:echats-views="[echatsViewsdf]" |
|
|
|
:table-key="formBasicConfig.name" |
|
|
|
:types="1" |
|
|
|
/> |
|
|
|
|