|
|
|
@ -3,23 +3,40 @@ |
|
|
|
@ 时间: 2024-05-31 09:22:06 |
|
|
|
@ 备注: 执行表格 |
|
|
|
--> |
|
|
|
<script lang='ts' setup> |
|
|
|
import { json2string,objToStringify,string2json,stringToObj } from '@/utils/DesignForm/form' |
|
|
|
import { judgeSubmitCancel,gainAppPageInfo,getFieldRecord } from '@/api/DesignForm/requestapi' |
|
|
|
import { Edit,Picture as IconPicture } from '@element-plus/icons-vue' |
|
|
|
import { appPageDataInit,appWorkFlow } from "@/api/date/type" |
|
|
|
import { notAsA_BasisForJudgment,asAnApprovalActionControl,fixedValueControl,timeControl,timeEquation,submitButton, afreshSubmitButton } from '@/utils/workflow/const' |
|
|
|
<script lang="ts" setup> |
|
|
|
import { |
|
|
|
json2string, |
|
|
|
objToStringify, |
|
|
|
string2json, |
|
|
|
stringToObj, |
|
|
|
} from "@/utils/DesignForm/form"; |
|
|
|
import { |
|
|
|
judgeSubmitCancel, |
|
|
|
gainAppPageInfo, |
|
|
|
getFieldRecord, |
|
|
|
} from "@/api/DesignForm/requestapi"; |
|
|
|
import { Edit, Picture as IconPicture } from "@element-plus/icons-vue"; |
|
|
|
import { appPageDataInit, appWorkFlow } from "@/api/date/type"; |
|
|
|
import { |
|
|
|
notAsA_BasisForJudgment, |
|
|
|
asAnApprovalActionControl, |
|
|
|
fixedValueControl, |
|
|
|
timeControl, |
|
|
|
timeEquation, |
|
|
|
submitButton, |
|
|
|
afreshSubmitButton, |
|
|
|
} from "@/utils/workflow/const"; |
|
|
|
|
|
|
|
const props = defineProps({ |
|
|
|
pickAppMenu: { |
|
|
|
type: Object, |
|
|
|
default() { |
|
|
|
return {} |
|
|
|
} |
|
|
|
} |
|
|
|
return {}; |
|
|
|
}, |
|
|
|
}, |
|
|
|
}); |
|
|
|
const activePage = ref(0) //默认选择的页面 |
|
|
|
const appInitData = ref<appPageDataInit>("") |
|
|
|
const activePage = ref(0); //默认选择的页面 |
|
|
|
const appInitData = ref<appPageDataInit>(""); |
|
|
|
//app表单 |
|
|
|
const stateForm = reactive<any>({ |
|
|
|
type: 1, // 1新增;2修改;3查看(表单模式) ;4查看; 5设计 |
|
|
|
@ -27,15 +44,15 @@ const stateForm = reactive<any>({ |
|
|
|
list: [], |
|
|
|
form: {}, |
|
|
|
config: {}, |
|
|
|
powerstr:{} |
|
|
|
powerstr: {}, |
|
|
|
}, |
|
|
|
dict: {}, |
|
|
|
formId: "1", |
|
|
|
id: 0, |
|
|
|
formId: 0, |
|
|
|
versionId: 0, |
|
|
|
loading: true |
|
|
|
}) |
|
|
|
loading: true, |
|
|
|
}); |
|
|
|
//表单列表 |
|
|
|
const stateList = reactive({ |
|
|
|
tableData: { |
|
|
|
@ -43,7 +60,7 @@ const stateList = reactive({ |
|
|
|
columns: [], |
|
|
|
config: {}, |
|
|
|
controlBtn: [], |
|
|
|
operateBtn:[] |
|
|
|
operateBtn: [], |
|
|
|
}, |
|
|
|
searchData: [], |
|
|
|
loading: false, |
|
|
|
@ -52,22 +69,22 @@ const stateList = reactive({ |
|
|
|
pageSize: 10, |
|
|
|
searchIsShow: true, |
|
|
|
searchFormIsShow: true, |
|
|
|
openPageMode:"drawer" |
|
|
|
openPageMode: "drawer", |
|
|
|
}, |
|
|
|
tagList: {}, |
|
|
|
formId: props.formKey || '', |
|
|
|
formId: props.formKey || "", |
|
|
|
formList: [], // 所有可选表单数据源 |
|
|
|
name: '', |
|
|
|
name: "", |
|
|
|
treeData: {}, // 左侧树相关 |
|
|
|
previewVisible: false, |
|
|
|
tabsName: 'second', |
|
|
|
tabsName: "second", |
|
|
|
formFieldList: [], // 表单数据源所有可选字段 |
|
|
|
formApi: { |
|
|
|
type: "1", |
|
|
|
addApiUrl: "", |
|
|
|
editApiUrl: "", |
|
|
|
delApiUrl: "", |
|
|
|
lookApiUrl:"" |
|
|
|
lookApiUrl: "", |
|
|
|
}, |
|
|
|
dict: {}, |
|
|
|
refreshTable: true, |
|
|
|
@ -78,8 +95,8 @@ const stateList = reactive({ |
|
|
|
form: { |
|
|
|
sortWord: "", |
|
|
|
sortClass: 1, |
|
|
|
title:[] |
|
|
|
} |
|
|
|
title: [], |
|
|
|
}, |
|
|
|
}, |
|
|
|
date: { |
|
|
|
status: false, |
|
|
|
@ -88,20 +105,18 @@ const stateList = reactive({ |
|
|
|
startTime: "", |
|
|
|
endTime: "", |
|
|
|
dayType: 1, |
|
|
|
title:[] |
|
|
|
} |
|
|
|
} |
|
|
|
, |
|
|
|
title: [], |
|
|
|
}, |
|
|
|
}, |
|
|
|
time: { |
|
|
|
status: false, |
|
|
|
isClick: false, |
|
|
|
form: { |
|
|
|
sortWord: "", |
|
|
|
sort: 1, |
|
|
|
title:[] |
|
|
|
} |
|
|
|
} |
|
|
|
, |
|
|
|
title: [], |
|
|
|
}, |
|
|
|
}, |
|
|
|
gantt: { |
|
|
|
status: false, |
|
|
|
isClick: false, |
|
|
|
@ -111,10 +126,9 @@ const stateList = reactive({ |
|
|
|
dayType: 2, |
|
|
|
sortWord: "", |
|
|
|
sort: 1, |
|
|
|
title:[] |
|
|
|
} |
|
|
|
} |
|
|
|
, |
|
|
|
title: [], |
|
|
|
}, |
|
|
|
}, |
|
|
|
map: { |
|
|
|
status: false, |
|
|
|
isClick: false, |
|
|
|
@ -122,8 +136,8 @@ const stateList = reactive({ |
|
|
|
mapWord: "", |
|
|
|
sortWord: "", |
|
|
|
sort: 1, |
|
|
|
title:[] |
|
|
|
} |
|
|
|
title: [], |
|
|
|
}, |
|
|
|
}, |
|
|
|
card: { |
|
|
|
status: false, |
|
|
|
@ -139,26 +153,24 @@ const stateList = reactive({ |
|
|
|
titleWork: "", |
|
|
|
describe: "", |
|
|
|
ranks: 3, |
|
|
|
title:[] |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
const appFormTitle = ref("") |
|
|
|
const versionTitle = ref<string>("") //表单名称 |
|
|
|
const versionId = ref<string>("") //表单版本号 |
|
|
|
const appFlowInfo = ref<appWorkFlow>("") //流程 |
|
|
|
const isFlow = ref(2) |
|
|
|
const mastesformjson = ref("") // |
|
|
|
title: [], |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}); |
|
|
|
const appFormTitle = ref(""); |
|
|
|
const versionTitle = ref<string>(""); //表单名称 |
|
|
|
const versionId = ref<string>(""); //表单版本号 |
|
|
|
const appFlowInfo = ref<appWorkFlow>(""); //流程 |
|
|
|
const isFlow = ref(2); |
|
|
|
const mastesformjson = ref(""); // |
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2024-06-03 09:54:30 |
|
|
|
@ 功能: 加载页面 |
|
|
|
*/ |
|
|
|
onMounted(() => { |
|
|
|
initLoadData() |
|
|
|
|
|
|
|
initLoadData(); |
|
|
|
}); |
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ -168,73 +180,81 @@ onMounted(() => { |
|
|
|
const initLoadData = () => { |
|
|
|
// console.log("initLoadData",props.pickAppMenu.type,props.pickAppMenu.type != 1) |
|
|
|
if (props.pickAppMenu.type != 1) { |
|
|
|
appFormTitle.value = props.pickAppMenu.label |
|
|
|
gainAppPageInfo({id:props.pickAppMenu.id}) |
|
|
|
.then((data)=>{ |
|
|
|
appFormTitle.value = props.pickAppMenu.label; |
|
|
|
gainAppPageInfo({ id: props.pickAppMenu.id }).then((data) => { |
|
|
|
// console.log("获取初始化表单数据bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",data) |
|
|
|
appInitData.value = data.data |
|
|
|
appInitData.value = data.data; |
|
|
|
// console.log("获取初始化表单数据---!",appInitData.value) |
|
|
|
mastesformjson.value = data.data.appForm.mastesformjson |
|
|
|
isFlow.value = data.data.appForm.flowIsOpen |
|
|
|
mastesformjson.value = data.data.appForm.mastesformjson; |
|
|
|
isFlow.value = data.data.appForm.flowIsOpen; |
|
|
|
if (data.data.page && data.data.pageList && data.data.appFlow) { |
|
|
|
activePage.value = 1 |
|
|
|
activePage.value = 1; |
|
|
|
} else if (data.data.page && !data.data.pageList && data.data.appFlow) { |
|
|
|
activePage.value = 2 |
|
|
|
activePage.value = 2; |
|
|
|
} else if (!data.data.page && !data.data.pageList && data.data.appFlow) { |
|
|
|
activePage.value = 3 |
|
|
|
activePage.value = 3; |
|
|
|
} else if (!data.data.page && data.data.pageList && data.data.appFlow) { |
|
|
|
activePage.value = 1 |
|
|
|
activePage.value = 1; |
|
|
|
} else if (data.data.page && !data.data.pageList && !data.data.appFlow) { |
|
|
|
activePage.value = 2 |
|
|
|
activePage.value = 2; |
|
|
|
} else { |
|
|
|
activePage.value = 1 |
|
|
|
activePage.value = 1; |
|
|
|
} |
|
|
|
versionId.value = data.data.appForm.id.toString() |
|
|
|
versionTitle.value = data.data.appForm.name |
|
|
|
versionId.value = data.data.appForm.id.toString(); |
|
|
|
versionTitle.value = data.data.appForm.name; |
|
|
|
if (data.data.pageList) { |
|
|
|
let stateData = string2json(data.data.appForm.listjson) |
|
|
|
let stateData = string2json(data.data.appForm.listjson); |
|
|
|
// console.log("接邂逅的数",stateData) |
|
|
|
let holeControlAndConfigStateData = string2json(data.data.appForm.mastesformjson) |
|
|
|
let holeControlAndConfigStateData = string2json(data.data.appForm.mastesformjson); |
|
|
|
if (stateData.tableData.columns && stateData.tableData.columns.length > 0) { |
|
|
|
for (let i = 0; i < stateData.tableData.columns.length; i++) { |
|
|
|
for (let u = 0; u < holeControlAndConfigStateData.list.length; u++) { |
|
|
|
if(stateData.tableData.columns[i].id==holeControlAndConfigStateData.list[u].name){ |
|
|
|
stateData.tableData.columns[i].control = holeControlAndConfigStateData.list[u].control |
|
|
|
stateData.tableData.columns[i].config = holeControlAndConfigStateData.list[u].config |
|
|
|
if ( |
|
|
|
stateData.tableData.columns[i].id == |
|
|
|
holeControlAndConfigStateData.list[u].name |
|
|
|
) { |
|
|
|
stateData.tableData.columns[i].control = |
|
|
|
holeControlAndConfigStateData.list[u].control; |
|
|
|
stateData.tableData.columns[i].config = |
|
|
|
holeControlAndConfigStateData.list[u].config; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(stateData.tableData.columns[i].config!=undefined && stateData.tableData.columns[i].control!=undefined){ |
|
|
|
if ( |
|
|
|
stateData.tableData.columns[i].config != undefined && |
|
|
|
stateData.tableData.columns[i].control != undefined |
|
|
|
) { |
|
|
|
// console.log(stateData.tableData.columns[i]) |
|
|
|
let paramx:string = ""+stateData.tableData.columns[i].control.optionsValue3Field |
|
|
|
let paramx: string = |
|
|
|
"" + stateData.tableData.columns[i].control.optionsValue3Field; |
|
|
|
/* |
|
|
|
在这里请求后台获取字段 |
|
|
|
*/ |
|
|
|
//console.log("runAppForm-----214",paramx) |
|
|
|
if (paramx && paramx != "" && paramx != null && paramx != "undefined") { |
|
|
|
getFieldRecord(paramx).then(({ data }) => { |
|
|
|
stateData.tableData.columns[i].options = data |
|
|
|
stateData.tableData.columns[i].options = data; |
|
|
|
if (stateData.searchData.length > 0) { |
|
|
|
for (let j = 0; j < stateData.searchData.length; j++) { |
|
|
|
// console.log(stateData.searchData[j]) |
|
|
|
if(stateData.searchData[j].id==stateData.tableData.columns[i].id){ |
|
|
|
stateData.searchData[j].options = data |
|
|
|
if ( |
|
|
|
stateData.searchData[j].id == stateData.tableData.columns[i].id |
|
|
|
) { |
|
|
|
stateData.searchData[j].options = data; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
}); |
|
|
|
} |
|
|
|
if (stateData.searchData && stateData.searchData.length > 0) { |
|
|
|
for (let j = 0; j < stateData.searchData.length; j++) { |
|
|
|
// console.log(stateData.searchData[j]) |
|
|
|
if (stateData.searchData[j].id == stateData.tableData.columns[i].id) { |
|
|
|
|
|
|
|
|
|
|
|
// console.log(stateData.tableData.columns[i]) |
|
|
|
stateData.searchData[j].control = stateData.tableData.columns[i].control |
|
|
|
stateData.searchData[j].config = stateData.tableData.columns[i].config |
|
|
|
stateData.searchData[j].control = |
|
|
|
stateData.tableData.columns[i].control; |
|
|
|
stateData.searchData[j].config = |
|
|
|
stateData.tableData.columns[i].config; |
|
|
|
// console.log(stateData.searchData[j]) |
|
|
|
} |
|
|
|
} |
|
|
|
@ -242,72 +262,74 @@ const initLoadData = () => { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
stateList.tableData = stateData.tableData |
|
|
|
stateList.searchData = stateData.searchData |
|
|
|
stateList.tableData = stateData.tableData; |
|
|
|
stateList.searchData = stateData.searchData; |
|
|
|
if (stateList.searchData == null) { |
|
|
|
stateList.searchData = new Array() |
|
|
|
} |
|
|
|
stateList.loading = stateData.loading |
|
|
|
stateList.attrObj = stateData.attrObj |
|
|
|
stateList.config = stateData.config |
|
|
|
stateList.tagList = stateData.tagList |
|
|
|
stateList.formList = stateData.formList |
|
|
|
stateList.name = stateData.name |
|
|
|
stateList.treeData = stateData.treeData |
|
|
|
stateList.previewVisible = stateData.previewVisible |
|
|
|
stateList.formFieldList = stateData.formFieldList |
|
|
|
stateList.formApi = stateData.formApi |
|
|
|
stateList.dict = stateData.dict |
|
|
|
stateList.refreshTable = stateData.refreshTable |
|
|
|
stateList.searchData = new Array(); |
|
|
|
} |
|
|
|
stateList.loading = stateData.loading; |
|
|
|
stateList.attrObj = stateData.attrObj; |
|
|
|
stateList.config = stateData.config; |
|
|
|
stateList.tagList = stateData.tagList; |
|
|
|
stateList.formList = stateData.formList; |
|
|
|
stateList.name = stateData.name; |
|
|
|
stateList.treeData = stateData.treeData; |
|
|
|
stateList.previewVisible = stateData.previewVisible; |
|
|
|
stateList.formFieldList = stateData.formFieldList; |
|
|
|
stateList.formApi = stateData.formApi; |
|
|
|
stateList.dict = stateData.dict; |
|
|
|
stateList.refreshTable = stateData.refreshTable; |
|
|
|
if (stateData.view) { |
|
|
|
stateList.view = stateData.view |
|
|
|
stateList.view = stateData.view; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
if (data.data.page) { |
|
|
|
// console.log("data.data.mastesform", data.data) |
|
|
|
stateForm.id=data.data.appForm.version.toString() |
|
|
|
stateForm.formId =data.data.appForm.cfid.toString() |
|
|
|
stateForm.versionId =data.data.appForm.id.toString() |
|
|
|
stateForm.formData = stringToObj(data.data.appForm.mastesform) |
|
|
|
stateForm.dict = string2json(data.data.appForm.dict) |
|
|
|
stateForm.formData.powerstr = string2json(data.data.appForm.powerstr) |
|
|
|
stateForm.id = data.data.appForm.version.toString(); |
|
|
|
stateForm.formId = data.data.appForm.cfid.toString(); |
|
|
|
stateForm.versionId = data.data.appForm.id.toString(); |
|
|
|
stateForm.formData = stringToObj(data.data.appForm.mastesform); |
|
|
|
stateForm.dict = string2json(data.data.appForm.dict); |
|
|
|
stateForm.formData.powerstr = string2json(data.data.appForm.powerstr); |
|
|
|
// console.log("data.data.mastesform", stateForm.formData) |
|
|
|
|
|
|
|
judgeSubmitCancel({"name":data.data.appForm.mastesformjson}) |
|
|
|
.then((datajud:any) =>{ |
|
|
|
judgeSubmitCancel({ name: data.data.appForm.mastesformjson }).then( |
|
|
|
(datajud: any) => { |
|
|
|
if (datajud.code == 0) { |
|
|
|
if (datajud.data == 3 || datajud.data == 4) { |
|
|
|
stateForm.formData.list.push(submitButton) |
|
|
|
stateForm.formData.list.push(submitButton); |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
if(data.data.appFlow){ |
|
|
|
appFlowInfo.value = data.data.workFlow |
|
|
|
); |
|
|
|
} |
|
|
|
}) |
|
|
|
if (data.data.appFlow) { |
|
|
|
appFlowInfo.value = data.data.workFlow; |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
} |
|
|
|
}; |
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2024-06-03 09:26:17 |
|
|
|
@ 功能: 监听菜单数据变化 |
|
|
|
*/ |
|
|
|
watch(() => props.pickAppMenu,(val:any) => { |
|
|
|
initLoadData() |
|
|
|
},{ |
|
|
|
deep: true |
|
|
|
}) |
|
|
|
watch( |
|
|
|
() => props.pickAppMenu, |
|
|
|
(val: any) => { |
|
|
|
initLoadData(); |
|
|
|
}, |
|
|
|
{ |
|
|
|
deep: true, |
|
|
|
} |
|
|
|
); |
|
|
|
|
|
|
|
function optionsValue3Get3(data: any, fieldName: string) { |
|
|
|
|
|
|
|
for (let i = 0; i < stateForm.formData.list.length; i++) { |
|
|
|
if (stateForm.formData.list[i].name == fieldName) { |
|
|
|
stateForm.formData.list[i].options = [] |
|
|
|
stateForm.formData.list[i].options = []; |
|
|
|
for (let j = 0; j < data.length; j++) { |
|
|
|
stateForm.formData.list[i].options.push(data[j]) |
|
|
|
stateForm.formData.list[i].options.push(data[j]); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -321,8 +343,8 @@ function optionsValue3Get3(data: any,fieldName: string){ |
|
|
|
<el-col :span="24"> |
|
|
|
<el-scrollbar class="scroBox"> |
|
|
|
<el-card class="tispMsg" shadow="always"> |
|
|
|
|
|
|
|
<AppPageList v-if="appInitData.pageList" |
|
|
|
<AppPageList |
|
|
|
v-if="appInitData.pageList" |
|
|
|
:data="stateList.tableData" |
|
|
|
:search-data="stateList.searchData" |
|
|
|
:config="stateList.config" |
|
|
|
@ -363,14 +385,12 @@ function optionsValue3Get3(data: any,fieldName: string){ |
|
|
|
add-url="addData" |
|
|
|
@optionsValue3Get3="optionsValue3Get3" |
|
|
|
/> |
|
|
|
|
|
|
|
</el-card> |
|
|
|
</el-scrollbar> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
</template> |
|
|
|
<style lang='scss' scoped> |
|
|
|
<style lang="scss" scoped> |
|
|
|
.pageBox { |
|
|
|
padding: 0 15px; |
|
|
|
.wordFont { |
|
|
|
@ -381,7 +401,7 @@ function optionsValue3Get3(data: any,fieldName: string){ |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: space-between; |
|
|
|
background-color: #FFFFFF; |
|
|
|
background-color: #ffffff; |
|
|
|
padding: 15px 15px 5px 15px; |
|
|
|
margin-bottom: 15px; |
|
|
|
} |
|
|
|
|