Browse Source

编辑页面

qin_s3
herenshan112 1 month ago
parent
commit
b40a198616
  1. 2
      assets/aa-fae24f75.js
  2. 281
      src/components/DesignForm/app/index.vue
  3. 191
      src/components/DesignForm/tableListPage/index.vue
  4. 28
      src/views/hr/archives/index.vue

2
assets/aa-fae24f75.js

File diff suppressed because one or more lines are too long

281
src/components/DesignForm/app/index.vue

@ -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"
/>

191
src/components/DesignForm/tableListPage/index.vue

@ -55,6 +55,11 @@ import SeeContChart from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/ec
import {getPrintTemplate} from '@/api/DesignForm/requestapi'
import { display } from "html2canvas/dist/types/css/property-descriptors/display";
import NewFormPageCont from "@/components/DesignForm/tableListPage/newFormPageCont.vue";
import NewTableFlow from "@/views/sysworkflow/lowcodepage/pageFlow/newTableFlow.vue";
const props = withDefaults(
defineProps<{
data: FormPageList;
@ -83,6 +88,7 @@ const props = withDefaults(
fieldsDetailList?: any;
orgAndManTree?: any;
echatsViews: echatsViews;
pickAppMenu?: any;
}>(),
{
showPage: true,
@ -1344,7 +1350,12 @@ const lookPageInfoIsShow = ref(false);
const asflookPageInfoIsShow = ref(false);
const pageInfoCont = ref<any>();
const lookPageInfo = (val: any) => {
tablePageClass.value = 4;
if(val.mastersKeyStr && val.mastersKeyStr != ""){
val.masters_key = val.mastersKeyStr
}
tablePageClass.value = 3;
pageInfoCont.value = val;
drawerWith.value = container.value?.clientWidth;
lookPageInfoIsShow.value = true;
@ -1358,6 +1369,11 @@ const lookPageInfo = (val: any) => {
const editInfo = (val: any) => {
// console.log('!',val)
if(val.mastersKeyStr && val.mastersKeyStr != ""){
val.masters_key = val.mastersKeyStr
}
operState.value = 5;
tablePageClass.value = 2;
pageInfoCont.value = val;
@ -1370,6 +1386,11 @@ const editInfo = (val: any) => {
@ 功能: 提交审批
*/
const submitApproval = (val: any) => {
if(val.mastersKeyStr && val.mastersKeyStr != ""){
val.masters_key = val.mastersKeyStr
}
operState.value = 4;
tablePageClass.value = 2;
pageInfoCont.value = val;
@ -1419,6 +1440,11 @@ const recallSendMsg = (val: any) => {
@ 功能: 重新提交申请
*/
const afreshSendFlow = (val: any) => {
if(val.mastersKeyStr && val.mastersKeyStr != ""){
val.masters_key = val.mastersKeyStr
}
operState.value = 2;
tablePageClass.value = 2;
pageInfoCont.value = val;
@ -1431,6 +1457,11 @@ const afreshSendFlow = (val: any) => {
@ 功能: 申请修改数据
*/
const editFormSendFlow = (val: any) => {
if(val.mastersKeyStr && val.mastersKeyStr != ""){
val.masters_key = val.mastersKeyStr
}
operState.value = 3;
tablePageClass.value = 2;
pageInfoCont.value = val;
@ -1714,6 +1745,133 @@ jieguo = jieguo+"<div style='width: 100%;height: 1px;border-bottom: 1px solid #E
const isObject = (obj: any) => {
return typeof obj === "object";
}
const rangedDatePickerInTables1: any = []
async function doGainFormPageListCont(sendData: any) {
const data = await gainFormPageListCont(sendData);
console.log("获取列表详细信息----------------->",data)
//console.log(dataList)
rangedDatePickerInTables.forEach(element => {
let x = element.split('^^^*^^^')
//console.log(x)
rangedDatePickerInTables1.push(x)
data.data.list.forEach((item: any) => {
/* console.log(item)
console.log(item[x[0]]) */
let tableValues = item[x[0]]
tableValues.forEach((element1: any) => {
let start = dateStringToTimestampLocal(element1[x[1]])
let end = element1[x[1]+"_end"]
let arr = [start,end]
//console.log(arr)
element1[x[1]] = arr
});
/* let y = dateStringToTimestampLocal(item[x[0]][x[1]])
console.log(y) */
});
});
asfDetails = props.data.columns.filter((item: any) => {
return item.fieldClass == "associatedForms";
});
transferDetails = props.data.columns.filter((item: any) => {
return item.fieldClass == "lowcodeTransfer";
});
if (asfDetails.length > 0 && data.data.list != null) {
//console.log(data.data.list)
//,asf
asfQueryParams = [];
for (let j = 0; j < asfDetails.length; j++) {
let asfQueryParamsItem: any = {};
//console.log(asfDetails[j])
asfQueryParamsItem.formId = asfDetails[j].control.formid;
asfQueryParamsItem.field = asfDetails[j].field;
let asfToSelectIds = [];
// console.log(data.data.list)
for (let i = 0; i < data.data.list.length; i++) {
let asfMasterAndAsfId: any = {};
asfMasterAndAsfId.asfId = data.data.list[i][asfDetails[j].field];
asfMasterAndAsfId.asfMasterId = data.data.list[i].id;
asfToSelectIds.push(asfMasterAndAsfId);
}
asfQueryParamsItem.asfToSelectIds = asfToSelectIds;
asfQueryParams.push(asfQueryParamsItem);
}
let queryCount = 0;
for (let i = 0; i < asfQueryParams[0].asfToSelectIds.length; i++) {
if (asfQueryParams[0].asfToSelectIds[i].asfId != "") {
queryCount++;
}
}
//console.log(asfQueryParams)
if (queryCount > 0) {
//liwenxuan start
let dataList = data;
//-------------------return ----------------------
return await getAsfDataTitlesByIds(asfQueryParams).then(({ data }) => {
//console.log(data)
for (let i = 0; i < dataList.data.list.length; i++) {
//console.log(dataList.data.list[i])
for (let j = 0; j < data.length; j++) {
//console.log(data[j])
for (let n = 0; n < data[j].list.length; n++) {
if (dataList.data.list[i].id == data[j].list[n].asfMasterId) {
dataList.data.list[i][data[j].field] = data[j].list[n].label;
}
//console.log(data[j].list[n])
}
}
}
return dataList.data;
});
}
return data.data;
}
//console.log(data.data.list)
transferDetails.forEach((element:any) => {
//console.log(element)
data.data.list.forEach((obj: any) => {
//console.log(obj)
for (const key in obj) {
//
if (Object.prototype.hasOwnProperty.call(obj, key)) {
const value = obj[key];
// /使JSON
const formattedValue =
Array.isArray(value) || (typeof value === "object" && value !== null)
? JSON.stringify(value, null, 2)
: value;
//console.log(`${key}: ${formattedValue}`);
if (key == element.field) {
//console.log(key)
/* console.log(element.control.fixedOptions)
console.log(obj[key]) */
obj[key] = mapIdsToLabels(element.control.fixedOptions, obj[key]);
}
}
}
});
});
//console.log(data.data)
return data.data;
//tableDataList.value = data.data.list
//liwenxuan end
}
</script>
<template>
<div ref="container" v-loading="state.loading" class="table-list-comm">
@ -1943,6 +2101,7 @@ const isObject = (obj: any) => {
</div>
</el-col>
<el-col v-if="viewType == 1" :span="24" class="tableTdClass">
<el-table
v-bind="data.tableProps"
ref="table"
@ -1951,6 +2110,7 @@ const isObject = (obj: any) => {
border
@selection-change="selectionChange"
>
<template v-for="item in columnsFilter" :key="item.id || item.label">
<el-table-column
v-if="['-'].includes(item.fieldClass)"
@ -2358,15 +2518,27 @@ const isObject = (obj: any) => {
</el-button-group>
</el-col>
</el-row>
<FormPageCont
<NewFormPageCont
v-model:is-show="lookPageInfoIsShow"
:drawer-with="drawerWith"
:page-info="pageInfoCont"
:table-page-class="tablePageClass"
:oper-state="operState"
:dprt="rangedDatePickerInTables1"
:versiontitle="props.versiontitle"
@get-page-data="getPageData"
@options-value4-get4="optionsValue4Get4"
/>
<!-- <FormPageCont
v-model:is-show="lookPageInfoIsShow"
:drawer-with="drawerWith"
:page-info="pageInfoCont"
:table-page-class="tablePageClass"
:oper-state="operState"
@get-page-data="getPageData"
@options-value4-get4="optionsValue4Get4"
/> -->
<FormPageCont
v-model:is-show="asflookPageInfoIsShow"
:drawer-with="drawerWith"
@ -2377,14 +2549,23 @@ const isObject = (obj: any) => {
@options-value4-get4="optionsValue4Get4"
/>
<TableFlow
<NewTableFlow
v-model:show="openTaskDrawer"
:versionid="props.versionid"
:versiontitle="props.versiontitle"
:drawerwith="drawerWith"
:pick-app-menu="pickAppMenu"
@searchquery="getListData"
/>
<!-- <TableFlow
v-model:isopen="openTaskDrawer"
:versionid="props.versionid"
:versiontitle="props.versiontitle"
:drawerwith="drawerWith"
:cfid="props.formId"
@searchquery="getListData"
/>
/> -->
<!-- 2025 liwenxuan 二维码打印 -->
<el-dialog
v-model="qrCodesPrintDialogFlag"

28
src/views/hr/archives/index.vue

@ -610,16 +610,25 @@ onMounted(() => {
/>
<el-table-column
label="归属行政组织"
prop="orgAllName"
width="320"
align="center"
/>
<el-table-column
prop="employmentHistory"
width="500"
align="left"
>
<template #default="{row}">
<div v-for="(itemes,index) in row.employmentHistory" :key="index" class="orgAllNamecont" >
<el-text v-if="itemes.attribute == 1" type="primary">[主职]</el-text><el-text v-else type="info">[副职]</el-text><el-text>{{ itemes.orgAllName }}</el-text><el-text>{{ itemes.positionname }}</el-text><el-text>{{ itemes.teamname }}</el-text>
</div>
</template>
</el-table-column>
<!-- <el-table-column
label="岗位"
prop="positionname"
width="120"
align="center"
/>
/> -->
<el-table-column label="联系方式" prop="mobilephone" width="120" />
<el-table-column label="网盘管理">
<template #default="scope">
@ -917,4 +926,11 @@ onMounted(() => {
align-items: center;
justify-content: space-between;
}
.orgAllNamecont{
width: 100%;
display: grid;
align-items: center;
grid-template-columns: 40px 9fr 2fr 1.5fr;
gap: 10px;
}
</style>

Loading…
Cancel
Save