|
|
|
@ -10,7 +10,8 @@ import { attrButton,tableButton,tableButtonList,tableLogButtonList,tableAttrLogB |
|
|
|
|
|
|
|
import { json2string,objToStringify,string2json,stringToObj } from '@/utils/DesignForm/form' |
|
|
|
import { analysisForm,setFlowFormKeyPower } from '@/api/workflowapi/index' |
|
|
|
import { gainFormTableField,editCustomerFormList,gainFormListCont } from '@/api/DesignForm/requestapi' |
|
|
|
import { gainFormTableField,editCustomerFormList,gainFormListCont,gainListTableField } from '@/api/DesignForm/requestapi' |
|
|
|
|
|
|
|
import { formTableField,formTabelStruct } from "@/api/DesignForm/type"; |
|
|
|
|
|
|
|
import tempOtherUnit from '@/components/DesignForm/pageList/types' |
|
|
|
@ -132,7 +133,59 @@ const state = reactive({ |
|
|
|
lookApiUrl:"" |
|
|
|
}, |
|
|
|
dict: {}, |
|
|
|
refreshTable: true |
|
|
|
refreshTable: true, |
|
|
|
view:{ |
|
|
|
list:{ |
|
|
|
status:true, |
|
|
|
isClick:true, |
|
|
|
form:{ |
|
|
|
sortWord:"", |
|
|
|
sort:1 |
|
|
|
} |
|
|
|
}, |
|
|
|
date:{ |
|
|
|
status:false, |
|
|
|
isClick:false, |
|
|
|
form:{ |
|
|
|
startTime:"", |
|
|
|
endTime:"", |
|
|
|
dayType:1 |
|
|
|
} |
|
|
|
} |
|
|
|
, |
|
|
|
time:{ |
|
|
|
status:false, |
|
|
|
isClick:false, |
|
|
|
form:{ |
|
|
|
sortWord:"", |
|
|
|
sort:1 |
|
|
|
} |
|
|
|
} |
|
|
|
, |
|
|
|
gantt:{ |
|
|
|
status:false, |
|
|
|
isClick:false, |
|
|
|
form:{ |
|
|
|
startTime:"", |
|
|
|
endTime:"", |
|
|
|
dayType:2, |
|
|
|
sortWord:"", |
|
|
|
sort:1 |
|
|
|
} |
|
|
|
} |
|
|
|
, |
|
|
|
map:{ |
|
|
|
status:false, |
|
|
|
isClick:false, |
|
|
|
form:{ |
|
|
|
mapWord:"", |
|
|
|
sortWord:"", |
|
|
|
sort:1 |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ -202,6 +255,7 @@ const jieForm = () => { |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2024-05-21 15:41:53 |
|
|
|
@ -212,8 +266,31 @@ onMounted(()=>{ |
|
|
|
nextTick(() => { |
|
|
|
columnDrop() |
|
|
|
getListInfo(); |
|
|
|
|
|
|
|
|
|
|
|
gainFormTableKeyWord(props.appPageKey.toString()) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
const allKeyWords = ref<any[]>([]) |
|
|
|
const timeKeyWords = ref<any[]>([]) |
|
|
|
const mapKeyWords = ref<any[]>([]) |
|
|
|
const isMapTrue = ref(true) |
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2024-07-06 10:44:54 |
|
|
|
@ 功能: 获取数据表字段数据 |
|
|
|
*/ |
|
|
|
const gainFormTableKeyWord = (val:string) => { |
|
|
|
gainListTableField({id:val.toString()}) |
|
|
|
.then((data) =>{ |
|
|
|
console.log("获取数据表字段数据",data) |
|
|
|
allKeyWords.value = data.data.allKeyWords |
|
|
|
timeKeyWords.value = data.data.timeKeyWords |
|
|
|
mapKeyWords.value = data.data.mapKeyWords |
|
|
|
isMapTrue.value = !data.data.isMap |
|
|
|
}) |
|
|
|
} |
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2024-05-21 15:42:18 |
|
|
|
@ -271,6 +348,7 @@ const getListInfo = () => { |
|
|
|
state.formApi = stateData.formApi |
|
|
|
state.dict = stateData.dict |
|
|
|
state.refreshTable = stateData.refreshTable |
|
|
|
state.view = stateData.view |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -612,6 +690,37 @@ const dialogOpen = (obj: any, params: any = {}) => { |
|
|
|
} |
|
|
|
drawer.content = editData |
|
|
|
} |
|
|
|
|
|
|
|
const activeName = ref<any[]>(["list"]) |
|
|
|
const listOnOrOff = ref(true) |
|
|
|
|
|
|
|
const viewList1 = ref() |
|
|
|
|
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2024-07-05 16:11:05 |
|
|
|
@ 功能: 折叠组件变动事件 |
|
|
|
*/ |
|
|
|
const handleChange = (val: string[]) => { |
|
|
|
console.log("折叠组件变动事件--->",val,activeName) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// judjeIsTrue |
|
|
|
} |
|
|
|
|
|
|
|
const judjeIsTrue = (val:string) => { |
|
|
|
if (activeName.value.includes(val)){ |
|
|
|
return true |
|
|
|
}else{ |
|
|
|
false |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const tabsView = (val:any) => { |
|
|
|
val.isClick = !val.isClick |
|
|
|
} |
|
|
|
|
|
|
|
</script> |
|
|
|
<template> |
|
|
|
<el-main class="mainBox"> |
|
|
|
@ -642,15 +751,67 @@ const dialogOpen = (obj: any, params: any = {}) => { |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-tooltip |
|
|
|
v-if="state.config.searchFormIsShow" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="折叠查询表单" |
|
|
|
placement="bottom" |
|
|
|
> |
|
|
|
<el-icon @click="state.config.searchIsShow=!state.config.searchIsShow"><Search /></el-icon> |
|
|
|
</el-tooltip> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-button-group class="ml-4"> |
|
|
|
<el-tooltip |
|
|
|
v-if="state.config.searchFormIsShow" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="折叠查询表单" |
|
|
|
placement="top" |
|
|
|
> |
|
|
|
<el-button size="small" @click="state.config.searchIsShow=!state.config.searchIsShow" class="fa fa-search" /> |
|
|
|
</el-tooltip> |
|
|
|
<el-tooltip |
|
|
|
v-if="state.view.list.status" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="列表视图" |
|
|
|
placement="top" |
|
|
|
> |
|
|
|
<el-button size="small" class="fa fa-table" :color="state.view.list.isClick?'#a0cfff':''" @click="tabsView(state.view.list)" /> |
|
|
|
</el-tooltip> |
|
|
|
<el-tooltip |
|
|
|
v-if="state.view.date.status" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="日历视图" |
|
|
|
placement="top" |
|
|
|
> |
|
|
|
<el-button size="small" class="fa fa-calendar" /> |
|
|
|
</el-tooltip> |
|
|
|
<el-tooltip |
|
|
|
v-if="state.view.time.status" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="时间轴" |
|
|
|
placement="top" |
|
|
|
> |
|
|
|
<el-button size="small" class="fa fa-clock-o" /> |
|
|
|
</el-tooltip> |
|
|
|
<el-tooltip |
|
|
|
v-if="state.view.gantt.status" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="甘特图" |
|
|
|
placement="top" |
|
|
|
> |
|
|
|
<el-button size="small" class="fa fa-bar-chart" /> |
|
|
|
</el-tooltip> |
|
|
|
<el-tooltip |
|
|
|
v-if="state.view.map.status" |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="地图视图" |
|
|
|
placement="top" |
|
|
|
> |
|
|
|
<el-button size="small" class="fa fa-map-signs" /> |
|
|
|
</el-tooltip> |
|
|
|
|
|
|
|
</el-button-group> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
@ -770,9 +931,233 @@ const dialogOpen = (obj: any, params: any = {}) => { |
|
|
|
</div> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="列表设置" :name="2"> |
|
|
|
|
|
|
|
<el-divider content-position="left">开启视图</el-divider> |
|
|
|
<div class="demo-collapse"> |
|
|
|
111 |
|
|
|
<div class="demo_collapse"> |
|
|
|
<el-collapse v-value="activeName" @change="handleChange"> |
|
|
|
<el-collapse-item name="list" :class="state.view.list.status?'isTrueItem':''" :disabled="!state.view.list.status"> |
|
|
|
<template #title> |
|
|
|
<div class="collapse-title"> |
|
|
|
<div> |
|
|
|
<i class="fa fa-table"></i> |
|
|
|
<el-text>列表视图</el-text> |
|
|
|
</div> |
|
|
|
<el-switch v-if="1==0" class="openOfClose" v-model="state.view.list.status" @click.stop="showCollapse" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<div> |
|
|
|
<el-form |
|
|
|
label-position="top" |
|
|
|
label-width="auto" |
|
|
|
:model="state.view.list.form" |
|
|
|
style="max-width: 600px" |
|
|
|
> |
|
|
|
<el-form-item label="排序字段"> |
|
|
|
<el-select v-model="state.view.list.form.sortWord" placeholder="请选择排序字段"> |
|
|
|
<el-option v-for="item in allKeyWords" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="排序方式"> |
|
|
|
<el-radio-group v-model="state.view.list.form.sort"> |
|
|
|
<el-radio :label="1">降序</el-radio> |
|
|
|
<el-radio :label="2">升序</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
</el-collapse-item> |
|
|
|
<el-collapse-item title="Consistency" name="date" :class="state.view.date.status?'isTrueItem':''" :disabled="!state.view.date.status"> |
|
|
|
<template #title> |
|
|
|
<div class="collapse-title"> |
|
|
|
<div> |
|
|
|
<i class="fa fa-calendar"></i> |
|
|
|
<el-text>日历视图</el-text> |
|
|
|
</div> |
|
|
|
<el-switch class="openOfClose" v-model="state.view.date.status" @click.stop="showCollapse" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<div> |
|
|
|
<el-form |
|
|
|
label-position="top" |
|
|
|
label-width="auto" |
|
|
|
:model="state.view.date.form" |
|
|
|
style="max-width: 600px" |
|
|
|
> |
|
|
|
<el-form-item > |
|
|
|
<span slot="label"> |
|
|
|
时间跨度 |
|
|
|
<el-tooltip |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="假如一个任务今天开始,明天结束。日历列表中用区间日期展示这一条信息。" |
|
|
|
placement="top" |
|
|
|
> |
|
|
|
<i class="fa fa-question-circle-o"></i> |
|
|
|
</el-tooltip> |
|
|
|
</span> |
|
|
|
<el-select v-model="state.view.date.form.startTime" clearable placeholder="请选择开始时间"> |
|
|
|
<template #prefix>从</template> |
|
|
|
<el-option v-for="item in timeKeyWords" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
<el-select v-model="state.view.date.form.endTime" clearable placeholder="请选择结束时间" style="margin-top:10px;"> |
|
|
|
<template #prefix>至</template> |
|
|
|
<el-option v-for="item in timeKeyWords" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="默认展示"> |
|
|
|
<el-select v-model="state.view.date.form.dayType" clearable placeholder="请选择展示方式"> |
|
|
|
<el-option label="月" :value="1" /> |
|
|
|
<el-option label="周" :value="2" /> |
|
|
|
<el-option label="日" :value="3" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
</el-collapse-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-collapse-item title="Consistency" name="time" :class="state.view.time.status?'isTrueItem':''" :disabled="!state.view.time.status"> |
|
|
|
<template #title> |
|
|
|
<div class="collapse-title"> |
|
|
|
<div> |
|
|
|
<i class="fa fa-clock-o"></i> |
|
|
|
<el-text>时间轴</el-text> |
|
|
|
</div> |
|
|
|
<el-switch class="openOfClose" v-model="state.view.time.status" @click.stop="showCollapse" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<div> |
|
|
|
<el-form |
|
|
|
label-position="top" |
|
|
|
label-width="auto" |
|
|
|
:model="state.view.time.form" |
|
|
|
style="max-width: 600px" |
|
|
|
> |
|
|
|
<el-form-item label="时间轴字段"> |
|
|
|
<el-select v-model="state.view.time.form.sortWord" placeholder="请选择时间轴段"> |
|
|
|
<el-option v-for="item in timeKeyWords" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="排序方式"> |
|
|
|
<el-radio-group v-model="state.view.time.form.sort"> |
|
|
|
<el-radio :label="1">降序</el-radio> |
|
|
|
<el-radio :label="2">升序</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
</el-collapse-item> |
|
|
|
|
|
|
|
<el-collapse-item title="Consistency" name="gantt" :class="state.view.gantt.status?'isTrueItem':''" :disabled="!state.view.gantt.status"> |
|
|
|
<template #title> |
|
|
|
<div class="collapse-title"> |
|
|
|
<div> |
|
|
|
<i class="fa fa-bar-chart fa-rotate-0 "></i> |
|
|
|
<el-text>甘特图</el-text> |
|
|
|
</div> |
|
|
|
<el-switch class="openOfClose" v-model="state.view.gantt.status" @click.stop="showCollapse" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<div> |
|
|
|
<el-form |
|
|
|
label-position="top" |
|
|
|
label-width="auto" |
|
|
|
:model="state.view.gantt.form" |
|
|
|
style="max-width: 600px" |
|
|
|
> |
|
|
|
<el-form-item label="时间设置"> |
|
|
|
<el-select v-model="state.view.gantt.form.startTime" clearable placeholder="请选择开始时间"> |
|
|
|
<template #prefix>开始时间</template> |
|
|
|
<el-option v-for="item in timeKeyWords" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
<el-select v-model="state.view.gantt.form.endTime" clearable placeholder="请选择结束时间" style="margin-top:10px;"> |
|
|
|
<template #prefix>结束时间</template> |
|
|
|
<el-option v-for="item in timeKeyWords" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="默认时间刻度"> |
|
|
|
<el-select v-model="state.view.gantt.form.dayType" clearable placeholder="请选择展示方式"> |
|
|
|
<el-option label="时" :value="1" /> |
|
|
|
<el-option label="日" :value="2" /> |
|
|
|
<el-option label="周" :value="3" /> |
|
|
|
<el-option label="月" :value="4" /> |
|
|
|
<el-option label="季" :value="5" /> |
|
|
|
<el-option label="年" :value="6" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="排序字段"> |
|
|
|
<el-select v-model="state.view.gantt.form.sortWord" placeholder="请选择时间轴段"> |
|
|
|
<el-option v-for="item in allKeyWords" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="排序方式"> |
|
|
|
<el-radio-group v-model="state.view.gantt.form.sort"> |
|
|
|
<el-radio :label="1">降序</el-radio> |
|
|
|
<el-radio :label="2">升序</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
</el-collapse-item> |
|
|
|
|
|
|
|
<el-collapse-item title="Consistency" name="map" :class="state.view.map.status?'isTrueItem':''" :disabled="!state.view.map.status"> |
|
|
|
<template #title> |
|
|
|
<div class="collapse-title"> |
|
|
|
<div> |
|
|
|
<i class="fa fa-map-signs"></i> |
|
|
|
<el-text>地图视图</el-text> |
|
|
|
</div> |
|
|
|
<el-switch class="openOfClose" v-model="state.view.map.status" :disabled="isMapTrue" @click.stop="showCollapse" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<div> |
|
|
|
<el-form |
|
|
|
label-position="top" |
|
|
|
label-width="auto" |
|
|
|
:model="state.view.map.form" |
|
|
|
style="max-width: 600px" |
|
|
|
> |
|
|
|
<el-form-item label="位置字段"> |
|
|
|
<el-select v-model="state.view.map.form.mapWord" placeholder="请选择位置字段"> |
|
|
|
<el-option v-for="item in mapKeyWords" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="排序字段"> |
|
|
|
<el-select v-model="state.view.map.form.sortWord" placeholder="请选择时间轴段"> |
|
|
|
<el-option v-for="item in allKeyWords" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="排序方式"> |
|
|
|
<el-radio-group v-model="state.view.map.form.sort"> |
|
|
|
<el-radio :label="1">降序</el-radio> |
|
|
|
<el-radio :label="2">升序</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
</el-collapse-item> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</el-collapse> |
|
|
|
</div> |
|
|
|
<el-divider content-position="left">功能按钮</el-divider> |
|
|
|
<div class="form_tabs"> |
|
|
|
@ -929,4 +1314,71 @@ const dialogOpen = (obj: any, params: any = {}) => { |
|
|
|
text-align: center; |
|
|
|
cursor: pointer; |
|
|
|
} |
|
|
|
|
|
|
|
.demo_collapse{ |
|
|
|
padding: 0 10px; |
|
|
|
|
|
|
|
:deep .el-collapse{ |
|
|
|
border: 0px; |
|
|
|
|
|
|
|
} |
|
|
|
:deep .el-collapse-item__header { |
|
|
|
padding-left:5px; |
|
|
|
border: 1px solid #eeeeee; |
|
|
|
border-radius:10px; |
|
|
|
|
|
|
|
} |
|
|
|
:deep .el-collapse-item{ |
|
|
|
border-radius: 10px 10px; |
|
|
|
background-color: rgb(245, 247, 250) !important; |
|
|
|
margin-bottom: 10px; |
|
|
|
.el-collapse-item__wrap{ |
|
|
|
background-color: rgb(245, 247, 250) !important; |
|
|
|
} |
|
|
|
|
|
|
|
.collapse-title{ |
|
|
|
i{ |
|
|
|
padding:0 5px 0 0; |
|
|
|
} |
|
|
|
} |
|
|
|
.openOfClose{ |
|
|
|
margin:9px 9px 0 0; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
:deep .el-collapse-item:last-child{ |
|
|
|
margin-bottom:0; |
|
|
|
} |
|
|
|
|
|
|
|
:deep .el-collapse-item__content { |
|
|
|
|
|
|
|
padding-left: 10px; |
|
|
|
padding-bottom:0px; |
|
|
|
padding-top: 10px; |
|
|
|
} |
|
|
|
|
|
|
|
:deep .collapse-title { |
|
|
|
flex: 1 0 90%; |
|
|
|
order: 1; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
.el-collapse-item__header { |
|
|
|
flex: 1 0 auto; |
|
|
|
order: -1; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
.isTrueItem{ |
|
|
|
:deep .el-collapse-item__header{ |
|
|
|
color:#79bbff; |
|
|
|
background-color: #c6e2ff; |
|
|
|
} |
|
|
|
.el-text{ |
|
|
|
color:#337ecc; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|
|