Browse Source

抄送改版

qin_22
herenshan112 6 months ago
parent
commit
ad828a633f
  1. 1
      src/components/workflow/drwer/approverDrawer.vue
  2. 332
      src/components/workflow/drwer/copyerDrawer.vue
  3. 371
      src/components/workflow/drwer/copyerSend.vue
  4. 686
      src/views/hr/archives/archivescont.vue
  5. 525
      src/views/hr/archives/basicinformation/editorg.vue
  6. 4
      src/views/hr/archives/index.vue
  7. 7
      src/views/sysworkflow/flow/flowDrawingBoard.vue
  8. 123
      src/views/sysworkflow/flow/index.vue
  9. 2
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageFlow.vue
  10. 424
      src/views/sysworkflow/lowcodepage/lowCodeFormPage.vue
  11. 9
      src/views/sysworkflow/lowcodepage/workFlow.vue

1
src/components/workflow/drwer/approverDrawer.vue

@ -601,6 +601,7 @@ const libraryList = ref([
<div class="demo-drawer__content">
<!--审批人设置主体-->
<div class="drawer_content">
{{ approverConfig }}
<el-tabs v-model="nodeSetUp" class="demo-tabs">
<el-tab-pane name="first">
<template #label>

332
src/components/workflow/drwer/copyerDrawer.vue

@ -3,104 +3,128 @@
@ 时间: 2023-10-11 11:02:24
@ 备注: 抄送配置
-->
<script lang='ts' setup>
import employeesDialog from '@/components/workflow/dialog/employeesDialog.vue'
import $func from '@/utils/workflow/index'
import { useStore } from '@/store/workflow/index'
let copyerConfig = ref({})
let ccSelfSelectFlag = ref([])
let copyerVisible = ref(false)
let checkedList = ref([])
let store = useStore()
let { setCopyerConfig, setCopyer } = store
let copyerDrawer = computed(()=> store.copyerDrawer)
let copyerConfig1 = computed(()=> store.copyerConfig1)
<script lang="ts" setup>
import employeesDialog from "@/components/workflow/dialog/employeesDialog.vue";
import $func from "@/utils/workflow/index";
import { useStore, setTypes, selectModes, selectRanges } from "@/store/workflow/index";
let copyerConfig = ref({});
let ccSelfSelectFlag = ref([]);
let copyerVisible = ref(false);
let checkedList = ref([]);
let store = useStore();
let { setCopyerConfig, setCopyer } = store;
let copyerDrawer = computed(() => store.copyerDrawer);
let copyerConfig1 = computed(() => store.copyerConfig1);
let visible = computed({
get() {
return copyerDrawer.value
},
set() {
closeDrawer()
}
})
get() {
return copyerDrawer.value;
},
set() {
closeDrawer();
},
});
watch(copyerConfig1, (val) => {
copyerConfig.value = val.value;
ccSelfSelectFlag.value = copyerConfig.value.ccSelfSelectFlag == 0 ? [] : [copyerConfig.value.ccSelfSelectFlag]
})
copyerConfig.value = val.value;
ccSelfSelectFlag.value =
copyerConfig.value.ccSelfSelectFlag == 0 ? [] : [copyerConfig.value.ccSelfSelectFlag];
});
const addCopyer = () => {
copyerVisible.value = true;
checkedList.value = copyerConfig.value.nodeUserList
}
const sureCopyer = (data:any) => {
// console.log("",data)
copyerConfig.value.nodeUserList = data;
copyerVisible.value = false;
}
copyerVisible.value = true;
checkedList.value = copyerConfig.value.nodeUserList;
};
const sureCopyer = (data: any) => {
// console.log("",data)
copyerConfig.value.nodeUserList = data;
copyerVisible.value = false;
};
const saveCopyer = () => {
copyerConfig.value.ccSelfSelectFlag = ccSelfSelectFlag.value.length == 0 ? 0 : 1;
copyerConfig.value.error = !$func.copyerStr(copyerConfig.value);
setCopyerConfig({
value: copyerConfig.value,
flag: true,
id: copyerConfig1.value.id
})
closeDrawer();
}
copyerConfig.value.ccSelfSelectFlag = ccSelfSelectFlag.value.length == 0 ? 0 : 1;
copyerConfig.value.error = !$func.copyerStr(copyerConfig.value);
setCopyerConfig({
value: copyerConfig.value,
flag: true,
id: copyerConfig1.value.id,
});
closeDrawer();
};
const closeDrawer = () => {
setCopyer(false)
}
setCopyer(false);
};
</script>
<template>
<el-drawer v-model="visible" :append-to-body="true" title="抄送人设置" class="set_copyer" :show-close="false" :size="550" :before-close="saveCopyer">
<div class="demo-drawer__content">
<div class="copyer_content drawer_content">
<el-button type="primary" @click="addCopyer">添加成员</el-button>
<!-- <p class="selected_list">
<el-drawer
v-model="visible"
:append-to-body="true"
title="抄送人设置"
class="set_copyer"
:show-close="false"
:size="550"
:before-close="saveCopyer"
>
<div class="demo-drawer__content">
<div class="copyer_content drawer_content">
<el-button type="primary" @click="addCopyer">添加成员</el-button>
<!-- <p class="selected_list">
<span v-for="(item,index) in copyerConfig.nodeUserList" :key="index">{{item.name}}
<img src="@/assets/images/add-close1.png" @click="$func.removeEle(copyerConfig.nodeUserList,item,'targetId')">
</span>
<a v-if="copyerConfig.nodeUserList&&copyerConfig.nodeUserList.length!=0" @click="copyerConfig.nodeUserList=[]">清除</a>
</p> -->
<p class="selected_list">
<el-tag v-for="(item,index) in copyerConfig.nodeUserList" :key="index" closable type="info" effect="plain" class="tag_us" @close="$func.removeEle(copyerConfig.nodeUserList,item,'targetId')">{{item.name}}</el-tag>
<el-tag v-if="copyerConfig.nodeUserList&&copyerConfig.nodeUserList.length!=0" type="danger" effect="dark" @click="copyerConfig.nodeUserList=[]">清除</el-tag>
</p>
<p class="selected_list">
<el-tag
v-for="(item, index) in copyerConfig.nodeUserList"
:key="index"
closable
type="info"
effect="plain"
class="tag_us"
@close="$func.removeEle(copyerConfig.nodeUserList, item, 'targetId')"
>{{ item.name }}</el-tag
>
<el-tag
v-if="copyerConfig.nodeUserList && copyerConfig.nodeUserList.length != 0"
type="danger"
effect="dark"
@click="copyerConfig.nodeUserList = []"
>清除</el-tag
>
</p>
<el-checkbox-group v-model="ccSelfSelectFlag" class="clear">
<el-checkbox :label="1">允许发起人自选抄送人</el-checkbox>
</el-checkbox-group>
<div class="info_box">
<QuillEditor v-model="copyerConfig.helpTips" height="400px" />
</div>
</div>
<div class="demo-drawer__footer clear">
<el-button type="primary" @click="saveCopyer"> </el-button>
<el-button @click="closeDrawer"> </el-button>
</div>
<employees-role-dialog
v-model:visible="copyerVisible"
:data="checkedList"
@change="sureCopyer"
/>
</div>
</el-drawer>
<el-checkbox-group v-model="ccSelfSelectFlag" class="clear">
<el-checkbox :label="1">允许发起人自选抄送人</el-checkbox>
</el-checkbox-group>
<div class="info_box">
<QuillEditor v-model="copyerConfig.helpTips" height="400px" />
</div>
</div>
<div class="demo-drawer__footer clear">
<el-button type="primary" @click="saveCopyer"> </el-button>
<el-button @click="closeDrawer"> </el-button>
</div>
<employees-role-dialog
v-model:visible="copyerVisible"
:data="checkedList"
@change="sureCopyer"
/>
</div>
</el-drawer>
</template>
<style lang='scss' scoped>
<style lang="scss" scoped>
.set_copyer {
.copyer_content {
padding: 20px 20px 0;
.copyer_content {
padding: 20px 20px 0;
.el-button {
margin-bottom: 20px;
}
.el-button {
margin-bottom: 20px;
}
.el-checkbox {
margin-bottom: 20px;
}
.el-checkbox {
margin-bottom: 20px;
}
}
}
.approver_some .el-radio-group {
@ -110,85 +134,87 @@ const closeDrawer = () => {
.approver_some .el-radio {
display: block;
}
.set_promoter{
.approver_content {
padding-bottom: 10px;
border-bottom: 0px solid #f2f2f2;
.el-radio{
width:auto;
}
.set_promoter {
.approver_content {
padding-bottom: 10px;
border-bottom: 0px solid #f2f2f2;
.el-radio {
width: auto;
}
.approver_manager,.approver_self_select,.approver_some,.approver_self{
border-top: 1px solid #f2f2f2;
}
.approver_self_select,
.approver_content{
.el-button{
margin-bottom: 20px;
}
}
.approver_manager,
.approver_self_select,
.approver_some,
.approver_self {
border-top: 1px solid #f2f2f2;
}
.approver_self_select,
.approver_content {
.el-button {
margin-bottom: 20px;
}
.approver_content,
.approver_some,
.approver_self_select{
.el-radio-group{
display: unset;
}
.el-radio{
width: 27%;
margin-bottom: 20px;
height: 16px;
}
}
.approver_content,
.approver_some,
.approver_self_select {
.el-radio-group {
display: unset;
}
.approver_manager p {
line-height: 32px;
}
.approver_manager select {
width: 420px;
height: 32px;
background: rgba(255, 255, 255, 1);
border-radius: 4px;
border: 1px solid rgba(217, 217, 217, 1);
}
.approver_manager p.tip {
margin: 10px 0 22px 0;
font-size: 12px;
line-height: 16px;
color: #f8642d;
}
.approver_self {
padding: 28px 20px;
}
.approver_self_select,
.approver_manager,
.approver_content,
.approver_some {
padding: 20px 20px 20px 20px;
}
.approver_manager p:first-of-type,
.approver_some p {
line-height: 19px;
font-size: 14px;
margin-bottom: 14px;
}
.approver_self_select h3 {
margin: 5px 0 20px;
font-size: 14px;
font-weight: bold;
line-height: 19px;
.el-radio {
width: 27%;
margin-bottom: 20px;
height: 16px;
}
}
.approver_manager p {
line-height: 32px;
}
.approver_manager select {
width: 420px;
height: 32px;
background: rgba(255, 255, 255, 1);
border-radius: 4px;
border: 1px solid rgba(217, 217, 217, 1);
}
.approver_manager p.tip {
margin: 10px 0 22px 0;
font-size: 12px;
line-height: 16px;
color: #f8642d;
}
.approver_self {
padding: 28px 20px;
}
.approver_self_select,
.approver_manager,
.approver_content,
.approver_some {
padding: 20px 20px 20px 20px;
}
.approver_manager p:first-of-type,
.approver_some p {
line-height: 19px;
font-size: 14px;
margin-bottom: 14px;
}
.approver_self_select h3 {
margin: 5px 0 20px;
font-size: 14px;
font-weight: bold;
line-height: 19px;
}
}
.selected_list{
margin: 0;
line-height: 0;
.tag_us{
margin-right: 10px;
}
span{
margin-top: 10px;
}
a{
margin-top: 15px;
}
.selected_list {
margin: 0;
line-height: 0;
.tag_us {
margin-right: 10px;
}
span {
margin-top: 10px;
}
a {
margin-top: 15px;
}
}
</style>

371
src/components/workflow/drwer/copyerSend.vue

@ -0,0 +1,371 @@
<!--
@ 作者: 秦东
@ 时间: 2025-05-26 14:59:22
@ 备注: 新版抄送节点
-->
<script lang="ts" setup>
import $func from "@/utils/workflow/index";
import { setTypes, selectModes, selectRanges } from "@/utils/workflow/const";
import { useStore } from "@/store/workflow/index";
import { matrixInfo } from "@/api/matrixapi/type";
let props = defineProps({
isFormFlow: {
type: Boolean,
default: true,
},
directormaxlevel: {
type: Number,
default: 4,
},
});
const isExecutor = ref(false);
let ccSelfSelectFlag = ref([]);
let copyerConfig = ref({});
let store = useStore();
let { setCopyerConfig, setCopyer } = store;
let copyerDrawer = computed(() => store.copyerDrawer);
let copyerConfig1 = computed(() => store.copyerConfig1);
let checkedList = ref<any[]>([]); //
let visible = computed({
get() {
return copyerDrawer.value;
},
set() {
closeDrawer();
},
});
const matrixFieldList = ref<matrixInfo>();
const nodeSendSetUp = ref("first");
watch(copyerConfig1, (val) => {
if (val.settype == 0) {
copyerConfig.value.settype = 1;
}
copyerConfig.value = val.value;
ccSelfSelectFlag.value =
copyerConfig.value.ccSelfSelectFlag == 0 ? [] : [copyerConfig.value.ccSelfSelectFlag];
});
onMounted(() => {
console.log("预加载数据建军节--------》", copyerConfig1.value);
if (copyerConfig1.settype == 0) {
copyerConfig.value.settype = 1;
}
});
//
watch(
() => copyerConfig.value.settype,
(val: any) => {
console.log("监听审批人设置选项", copyerConfig.value);
switch (val) {
case 10:
let sendOrg = {
id: 313,
idstr: "313",
level: 4,
all: 1,
};
govthree(sendOrg).then(({ data }) => {
// console.log("",data)
orgList.value = data;
nextTick(() => {
setOrgTree(copyerConfig.value.orgList);
});
});
break;
case 0:
copyerConfig.value.settype = 1;
break;
default:
break;
}
},
{
deep: true,
}
);
/**
@ 作者: 秦东
@ 时间: 2025-05-26 15:23:01
@ 功能: 写入数据
*/
const saveCopyer = () => {};
//
const closeDrawer = () => {
setCopyer(false);
};
/**
@ 作者: 秦东
@ 时间: 2025-05-26 16:23:35
@ 功能: 属性选择
*/
const changeType = (val: any) => {
copyerConfig.value.nodeUserList = [];
copyerConfig.value.examineMode = 1;
copyerConfig.value.noHanderAction = 2;
console.log("属性选择--->", val);
switch (val) {
case 2:
copyerConfig.value.directorLevel = 1; //
break;
case 7:
copyerConfig.value.examineEndDirectorLevel = 1; // n
break;
case 9:
matrixFieldList.value = copyerConfig.value.matrix; //
break;
default:
}
};
//
const isShowRatify = (id: number) => {
if (id == 8) {
return props.isFormFlow;
} else if (id == 4) {
return false;
} else {
return true;
}
};
/**
@ 作者: 秦东
@ 时间: 2025-05-27 14:19:31
@ 功能: 添加指定成员
*/
let approverVisible = ref(false);
const addApprover = () => {
approverVisible.value = true;
checkedList.value = copyerConfig.value.nodeUserList;
};
/**
@ 作者: 秦东
@ 时间: 2025-05-27 15:25:07
@ 功能: 更新指定成员数据
*/
const sureApprover = (data: any) => {
copyerConfig.value.nodeUserList = data;
approverVisible.value = false;
};
</script>
<template>
<el-drawer
v-model="visible"
:append-to-body="true"
title="抄送人设置"
class="set_promoter"
:show-close="false"
:size="550"
:before-close="saveCopyer"
>{{ props }}
<div class="demo-drawer__content">
<div class="drawer_content drawer_content">
{{ copyerConfig }}
<el-tabs v-model="nodeSendSetUp" class="demo-tabs">
<el-tab-pane name="first">
<template #label>
<span class="wordKeyCss">属性设置</span>
</template>
<div class="info_box">
<div class="approver_content">
<el-radio-group
v-model="copyerConfig.settype"
class="clear"
@change="changeType"
>
<template v-for="{ value, label } in setTypes" :key="value">
<el-radio
v-if="isShowRatify(value)"
:label="value"
style="width: auto"
>{{ label }}</el-radio
>
</template>
</el-radio-group>
</div>
<!--指定成员-->
<el-divider v-if="copyerConfig.settype == 1" content-position="left"
>指定成员</el-divider
>
<div v-if="copyerConfig.settype == 1" class="approver_manager">
<el-button type="primary" @click="addApprover">添加/修改成员</el-button>
<p class="selected_list">
<el-tag
v-for="(item, index) in copyerConfig.nodeUserList"
:key="index"
closable
type="info"
effect="plain"
class="tag_us"
@close="$func.removeEle(copyerConfig.nodeUserList, item, 'targetId')"
>{{ item.name }}</el-tag
>
<el-tag
v-if="copyerConfig.nodeUserList.length != 0"
type="danger"
effect="dark"
@click="copyerConfig.nodeUserList = []"
>清除</el-tag
>
</p>
</div>
<!--主管-->
<el-divider v-if="copyerConfig.settype == 2" content-position="left"
>主管</el-divider
>
<div v-if="copyerConfig.settype == 2" class="approver_manager">
<p>
<el-row :gutter="10">
<el-col v-if="isExecutor" :span="6">
<select v-model="copyerConfig.attribute" style="width: 100%">
<option value="1">发起人</option>
<option value="2">执行人</option>
</select>
</el-col>
<el-col :span="18">
<select v-model="copyerConfig.directorLevel">
<option
v-for="item in props.directormaxlevel"
:key="item"
:value="item"
>
{{ item == 1 ? "直接" : "第" + item + "级" }}主管
</option>
</select>
</el-col>
</el-row>
</p>
<p class="tip">找不到主管时由上级主管代审批</p>
</div>
<el-checkbox-group v-model="ccSelfSelectFlag" class="clear">
<el-checkbox :label="1">允许发起人自选抄送人</el-checkbox>
</el-checkbox-group>
</div>
</el-tab-pane>
<el-tab-pane name="helpInstructions">
<template #label>
<span class="wordKeyCss">帮助说明</span>
</template>
<div class="info_box">
<QuillEditor v-model="copyerConfig.helpTips" height="400px" />
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="demo-drawer__footer clear">
<el-button type="primary" @click="saveCopyer"> </el-button>
<el-button @click="closeDrawer"> </el-button>
</div>
</div>
<!--选择成员-->
<employees-dialog
v-model:visible="approverVisible"
:data="checkedList"
@change="sureApprover"
/>
</el-drawer>
</template>
<style lang="scss" scoped>
.approver_some .el-radio-group {
display: block;
}
.approver_manager .el-radio-group {
display: block;
}
.approver_some .el-radio {
display: block;
}
.set_promoter {
.approver_content {
padding-bottom: 10px;
border-bottom: 0px solid #f2f2f2;
.el-radio {
width: auto;
}
}
.approver_manager,
.approver_self_select,
.approver_some,
.approver_self {
border-top: 0px solid #f2f2f2;
}
.approver_self_select,
.approver_content {
.el-button {
margin-bottom: 20px;
}
}
.approver_content,
.approver_some,
.approver_self_select {
.el-radio-group {
display: unset;
}
.el-radio {
width: 27%;
margin-bottom: 20px;
height: 16px;
}
}
.approver_manager p {
line-height: 32px;
}
.approver_manager select {
width: 420px;
height: 32px;
background: rgba(255, 255, 255, 1);
border-radius: 4px;
border: 1px solid rgba(217, 217, 217, 1);
}
.approver_manager p.tip {
margin: 10px 0 22px 0;
font-size: 12px;
line-height: 16px;
color: #f8642d;
}
.approver_self {
padding: 28px 20px;
}
.approver_self_select,
.approver_manager,
.approver_content,
.approver_some {
padding: 20px 20px 20px 20px;
}
.approver_manager p:first-of-type,
.approver_some p {
line-height: 19px;
font-size: 14px;
margin-bottom: 14px;
}
.approver_self_select h3 {
margin: 5px 0 20px;
font-size: 14px;
font-weight: bold;
line-height: 19px;
}
}
.selected_list {
margin: 0;
line-height: 0;
.tag_us {
margin-right: 10px;
}
span {
margin-top: 10px;
}
a {
margin-top: 15px;
}
}
.info_box {
padding: 0 20px;
}
.wordKeyCss {
padding: 0 20px;
}
</style>

686
src/views/hr/archives/archivescont.vue

@ -3,120 +3,125 @@
@ 时间: 2024-08-31 14:15:47
@ 备注: 员工档案
-->
<script lang='ts' setup>
<script lang="ts" setup>
import { getMyInfoing, editMyInfoIcon } from "@/api/hr/people/index";
import UserRole from "@/assets/icons/user.svg"; //
import UserRole from "@/assets/icons/user.svg"; //
//
import UserContent from "@/views/hr/archives/basicinformation/content.vue"; //
import UserContent from "@/views/hr/archives/basicinformation/content.vue"; //
import EditUserContent from "@/views/hr/archives/basicinformation/editcontent.vue"; //
import EditOrg from "@/views/hr/archives/basicinformation/editorg.vue"; //
import OrgNexus from "@/views/hr/archives/basicinformation/orgnexus.vue"; //
import EmergencyContactPage from "@/views/hr/archives/basicinformation/emergencycontact.vue"; //
import WorkingCouplePage from "@/views/hr/archives/basicinformation/workingcouple.vue"; //
import FamilyMembers from "@/views/hr/archives/basicinformation/familymembers.vue"; //
import EducationalExperience from "@/views/hr/archives/basicinformation/educationalexperience.vue"; //
import InnerWork from "@/views/hr/archives/basicinformation/innerwork.vue"; //
import OutsideWork from "@/views/hr/archives/basicinformation/outsideWork.vue"; //
import Editpwd from "@/views/hr/archives/basicinformation/editpwd.vue"; //
import Rewardsandpunishments from "@/views/hr/archives/basicinformation/rewardsandpunishments.vue"; //
import Appraisalrecord from "@/views/hr/archives/basicinformation/appraisalrecord.vue"; //
import Talentinventory from "@/views/hr/archives/basicinformation/talentinventory.vue"; //
import Employmentrelations from "@/views/hr/archives/basicinformation/employmentrelations.vue"; //
import Jobtitle from "@/views/hr/archives/basicinformation/jobtitle.vue"; //
import Certificates from "@/views/hr/archives/basicinformation/certificates.vue"; //
import PersonalityTest from "@/views/hr/archives/basicinformation/personalityTest.vue"; //
import EditOrg from "@/views/hr/archives/basicinformation/editorg.vue"; //
import OrgNexus from "@/views/hr/archives/basicinformation/orgnexus.vue"; //
import EmergencyContactPage from "@/views/hr/archives/basicinformation/emergencycontact.vue"; //
import WorkingCouplePage from "@/views/hr/archives/basicinformation/workingcouple.vue"; //
import FamilyMembers from "@/views/hr/archives/basicinformation/familymembers.vue"; //
import EducationalExperience from "@/views/hr/archives/basicinformation/educationalexperience.vue"; //
import InnerWork from "@/views/hr/archives/basicinformation/innerwork.vue"; //
import OutsideWork from "@/views/hr/archives/basicinformation/outsideWork.vue"; //
import Editpwd from "@/views/hr/archives/basicinformation/editpwd.vue"; //
import Rewardsandpunishments from "@/views/hr/archives/basicinformation/rewardsandpunishments.vue"; //
import Appraisalrecord from "@/views/hr/archives/basicinformation/appraisalrecord.vue"; //
import Talentinventory from "@/views/hr/archives/basicinformation/talentinventory.vue"; //
import Employmentrelations from "@/views/hr/archives/basicinformation/employmentrelations.vue"; //
import Jobtitle from "@/views/hr/archives/basicinformation/jobtitle.vue"; //
import Certificates from "@/views/hr/archives/basicinformation/certificates.vue"; //
import PersonalityTest from "@/views/hr/archives/basicinformation/personalityTest.vue"; //
const props = defineProps({
isShow: {
type: Boolean,
default: false,
},
archivesdata: {
type: Object,
default() {
return {};
},
},
isShow: {
type: Boolean,
default: false,
},
archivesdata: {
type: Object,
default() {
return {};
},
},
});
const emits = defineEmits([
"update:isShow",
"updatemyconting",
"getarchivespageclick",
]); //
const emits = defineEmits(["update:isShow", "updatemyconting", "getarchivespageclick"]); //
/**
* 弹窗显示控制
*/
const boxShow = computed({
get: () => props.isShow,
set: (val) => {
emits("update:isShow", val);
},
get: () => props.isShow,
set: (val) => {
emits("update:isShow", val);
},
});
const activeName = ref("1"); //
const fileUploadIng = ref(false)
const fileUploadIng = ref(false);
const userIcon = ref<string>(); //
const boxTitle = ref<string>(); //
const userConting = ref<any>(""); //
const userConting = ref<any>(""); //
const rowLoading = ref(false);
const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API + "/api/upordown"; //
const imgUploadApiUrl = import.meta.env.VITE_APP_BASE_API + "/api/upordown"; //
const editMyOrgCont = ref(false); //
const editMyCont = ref(false); //
const editMyCont = ref(false); //
/**
* 获取人员数据
*/
const getjtcyList = () => {
rowLoading.value = true;
getMyInfoing({ id: props.archivesdata.id, idstr: props.archivesdata.idstr })
.then((data) => {
console.log("获取人员信息",data.data);
userConting.value = data.data
})
.finally(() => {
rowLoading.value = false;
});
}
const getjtcyList = () => {
rowLoading.value = true;
getMyInfoing({ id: props.archivesdata.id, idstr: props.archivesdata.idstr })
.then((data) => {
console.log("获取人员信息", data.data);
userConting.value = data.data;
})
.finally(() => {
rowLoading.value = false;
});
};
/**
* 关闭弹窗
*/
function closeArchivesBox() {
emits("update:isShow", false);
activeName.value = "1";
editMyCont.value = false;
emits("update:isShow", false);
activeName.value = "1";
editMyCont.value = false;
}
/**
@ 作者: 秦东
@ 时间: 2024-08-31 14:23:41
@ 功能: 监听弹窗打开
*/
watch(() => props.isShow,(val:Boolean) => {
if(val){
getjtcyList();
boxTitle.value = "查看 " + props.archivesdata.name + "(工号:" + props.archivesdata.number + ")" + " 详情";
if (props.archivesdata.icon != "") {
userIcon.value = props.archivesdata.icon;
}else if (props.archivesdata.iconphoto != "") {
userIcon.value = props.archivesdata.iconphoto;
}else{
userIcon.value = UserRole;
}
}
},{deep:true})
watch(
() => props.isShow,
(val: Boolean) => {
if (val) {
getjtcyList();
boxTitle.value =
"查看 " +
props.archivesdata.name +
"(工号:" +
props.archivesdata.number +
")" +
" 详情";
if (props.archivesdata.icon != "") {
userIcon.value = props.archivesdata.icon;
} else if (props.archivesdata.iconphoto != "") {
userIcon.value = props.archivesdata.iconphoto;
} else {
userIcon.value = UserRole;
}
}
},
{ deep: true }
);
/**
@ 作者: 秦东
@ 时间: 2024-08-31 14:35:18
@ 功能: 上传前判断类型
*/
const beforeAvatarUpload: UploadProps["beforeUpload"] = (rawFile) => {
fileUploadIng.value = true
if (!/\.(png|jpg|gif|jpeg|svg|bmp)$/.test(rawFile.name)) {
ElMessage.warning("您上传的图片不符合要求!");
fileUploadIng.value = false;
return false;
}
fileUploadIng.value = true;
if (!/\.(png|jpg|gif|jpeg|svg|bmp)$/.test(rawFile.name)) {
ElMessage.warning("您上传的图片不符合要求!");
fileUploadIng.value = false;
return false;
}
};
/**
@ 作者: 秦东
@ -124,274 +129,305 @@ const beforeAvatarUpload: UploadProps["beforeUpload"] = (rawFile) => {
@ 功能: 上传成功
*/
const handleAvatarSuccess: UploadProps["onSuccess"] = (
response,
uploadFile,
uploadFiles
response,
uploadFile,
uploadFiles
) => {
userIcon.value = URL.createObjectURL(uploadFile.raw!);
//
editMyInfoIcon({
id: props.archivesdata.id,
iconpath: response.data.url,
}).then((data) => {
ElMessage.success("编辑成功");
emits("getarchivespageclick");
});
}
userIcon.value = URL.createObjectURL(uploadFile.raw!);
//
editMyInfoIcon({
id: props.archivesdata.id,
iconpath: response.data.url,
}).then((data) => {
ElMessage.success("编辑成功");
emits("getarchivespageclick");
});
};
/**
@ 作者: 秦东
@ 时间: 2024-08-31 14:46:59
@ 功能: 打开编辑行政组织
*/
const editmvorg = () => {
editMyOrgCont.value = true;
}
editMyOrgCont.value = true;
};
/**
* 选项卡翻页
*/
const handleClickUser = (tab: any, event: Event) => {
//console.log(tab, event)
//console.log(tab, event)
};
</script>
<template>
<el-dialog
v-model="boxShow"
custom-class="dialog_box"
:title="boxTitle"
top="50px"
:before-close="closeArchivesBox"
width="80%"
>
<el-row v-loading="rowLoading" :gutter="20">
<!--左侧区域-->
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-card shadow="always" class="box-card-left">
<el-row>
<el-col v-loading="fileUploadIng" :span="24">
<el-upload
class="avatar-uploader"
:action="imgUploadApiUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
>
<el-avatar :size="180" :src="userIcon" class="bianKuang" />
</el-upload>
</el-col>
<el-col :span="24">
<el-text class="mx-1 username">{{ userConting.name }}</el-text>
</el-col>
<el-col :span="24">
<el-text class="mx-1 username">NO.{{ userConting.number }}</el-text>
</el-col>
<el-col :span="24">
<el-row class="user_cont">
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="gender" class="svg_box"></svg-icon>
<span v-if="userConting.gender == 1"></span>
<span v-else></span>
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon
icon-class="marriageregistration"
class="svg_box"
></svg-icon>
<span v-if="userConting.maritalstatus == 2">已婚</span>
<span v-else-if="userConting.maritalstatus == 3">丧偶</span>
<span v-else-if="userConting.maritalstatus == 4">离异</span>
<span v-else>未婚</span>
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="qxsp" class="svg_box"></svg-icon>
{{ userConting.myfolk }}
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon
icon-class="healthcondition"
class="svg_box"
></svg-icon>
<span v-if="userConting.health == 2">良好</span>
<span v-else-if="userConting.health == 3">较弱</span>
<span v-else-if="userConting.health == 4">有生理缺陷</span>
<span v-else-if="userConting.health == 5">残废</span>
<span v-else>一般</span>
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="phone" class="svg_box"></svg-icon>
{{ userConting.mobilephone }}
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="address" class="svg_box"></svg-icon>
{{ userConting.currentresidence }}
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="zhiye" class="svg_box"></svg-icon>
{{ userConting.companyname }} / {{ userConting.maindeparmentname }}
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon
icon-class="iconfont-mingpian"
class="svg_box"
></svg-icon>
{{ userConting.positionname }}
</el-text>
</el-col>
</el-row>
</el-col>
<el-col :span="24">
<el-button
type="primary"
style="margin-top: 15px"
@click="editmvorg"
>
编辑主行政组织
</el-button>
</el-col>
</el-row>
</el-card>
</el-col>
<!--右侧区域-->
<el-col :xs="24" :sm="24" :md="12" :lg="16" :xl="16">
<el-card shadow="always" class="box-card">
<el-tabs
v-model="activeName"
class="demo-tabs"
@tab-click="handleClickUser"
>
<el-tab-pane label="基本信息" name="1" >
<UserContent
v-if="!editMyCont && activeName == '1'"
v-model:editShow="editMyCont"
:usercont="userConting"
:tabsid="activeName"
/>
<EditUserContent
v-if="editMyCont && activeName == '1'"
v-model:editShow="editMyCont"
:usercont="userConting"
:tabsid="activeName"
@refreshcontdata="refreshContPage"
/>
</el-tab-pane>
<el-tab-pane label="性格特性" name="2" >
<PersonalityTest v-if="activeName == '2'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="行政组织关系" name="3" >
<OrgNexus v-if="activeName == '3'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="紧急联系人" name="4" >
<EmergencyContactPage
v-if="activeName == '4'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="双职工" name="5" >
<WorkingCouplePage v-if="activeName == '5'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="家庭成员" name="6" >
<FamilyMembers v-if="activeName == '6'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="教育经历" name="7" >
<EducationalExperience
v-if="activeName == '7'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="集团内部工作履历" name="8" >
<InnerWork v-if="activeName == '8'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="集团外部工作履历" name="9" >
<OutsideWork v-if="activeName == '9'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="奖惩记录" name="10" >
<Rewardsandpunishments
v-if="activeName == '10'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="考评记录" name="11" >
<Appraisalrecord v-if="activeName == '11'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="人才盘点" name="12" >
<Talentinventory v-if="activeName == '12'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="员工用工关系" name="13" >
<Employmentrelations v-if="activeName == '13'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="职称信息" name="14" >
<Jobtitle v-if="activeName == '14'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="证书信息" name="15" >
<Certificates v-if="activeName == '15'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
<el-tab-pane label="修改登陆密码" name="16" >
<Editpwd v-if="activeName == '16'" :usercont="userConting" :tabsid="activeName" />
</el-tab-pane>
</el-tabs>
<el-dialog
v-model="boxShow"
custom-class="dialog_box"
:title="boxTitle"
top="50px"
:before-close="closeArchivesBox"
width="80%"
>
<el-row v-loading="rowLoading" :gutter="20">
<!--左侧区域-->
<el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
<el-card shadow="always" class="box-card-left">
<el-row>
<el-col v-loading="fileUploadIng" :span="24">
<el-upload
class="avatar-uploader"
:action="imgUploadApiUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
>
<el-avatar :size="180" :src="userIcon" class="bianKuang" />
</el-upload>
</el-col>
<el-col :span="24">
<el-text class="mx-1 username">{{ userConting.name }}</el-text>
</el-col>
<el-col :span="24">
<el-text class="mx-1 username">NO.{{ userConting.number }}</el-text>
</el-col>
<el-col :span="24">
<el-row class="user_cont">
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="gender" class="svg_box"></svg-icon>
<span v-if="userConting.gender == 1"></span>
<span v-else></span>
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon
icon-class="marriageregistration"
class="svg_box"
></svg-icon>
<span v-if="userConting.maritalstatus == 2">已婚</span>
<span v-else-if="userConting.maritalstatus == 3">丧偶</span>
<span v-else-if="userConting.maritalstatus == 4">离异</span>
<span v-else>未婚</span>
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="qxsp" class="svg_box"></svg-icon>
{{ userConting.myfolk }}
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="healthcondition" class="svg_box"></svg-icon>
<span v-if="userConting.health == 2">良好</span>
<span v-else-if="userConting.health == 3">较弱</span>
<span v-else-if="userConting.health == 4">有生理缺陷</span>
<span v-else-if="userConting.health == 5">残废</span>
<span v-else>一般</span>
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="phone" class="svg_box"></svg-icon>
{{ userConting.mobilephone }}
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="address" class="svg_box"></svg-icon>
{{ userConting.currentresidence }}
</el-text>
</el-col>
</el-card>
</el-col>
</el-row>
</el-dialog>
<EditOrg
v-model:editShow="editMyOrgCont"
:usercont="userConting"
:tabsid="activeName"
@refreshcontdata="refreshContPage"
/>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="zhiye" class="svg_box"></svg-icon>
{{ userConting.companyname }} / {{ userConting.maindeparmentname }}
</el-text>
</el-col>
<el-col :span="24" class="col_box">
<el-text class="cont_size">
<svg-icon icon-class="iconfont-mingpian" class="svg_box"></svg-icon>
{{ userConting.positionname }}
</el-text>
</el-col>
</el-row>
</el-col>
<el-col :span="24">
<el-button type="primary" style="margin-top: 15px" @click="editmvorg">
编辑主行政组织
</el-button>
</el-col>
</el-row>
</el-card>
</el-col>
<!--右侧区域-->
<el-col :xs="24" :sm="24" :md="12" :lg="16" :xl="16">
<el-card shadow="always" class="box-card">
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClickUser">
<el-tab-pane label="基本信息" name="1">
<UserContent
v-if="!editMyCont && activeName == '1'"
v-model:editShow="editMyCont"
:usercont="userConting"
:tabsid="activeName"
/>
<EditUserContent
v-if="editMyCont && activeName == '1'"
v-model:editShow="editMyCont"
:usercont="userConting"
:tabsid="activeName"
@refreshcontdata="refreshContPage"
/>
</el-tab-pane>
<el-tab-pane label="性格特性" name="2">
<PersonalityTest
v-if="activeName == '2'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="行政组织关系" name="3">
<OrgNexus
v-if="activeName == '3'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="紧急联系人" name="4">
<EmergencyContactPage
v-if="activeName == '4'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="双职工" name="5">
<WorkingCouplePage
v-if="activeName == '5'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="家庭成员" name="6">
<FamilyMembers
v-if="activeName == '6'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="教育经历" name="7">
<EducationalExperience
v-if="activeName == '7'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="集团内部工作履历" name="8">
<InnerWork
v-if="activeName == '8'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="集团外部工作履历" name="9">
<OutsideWork
v-if="activeName == '9'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="奖惩记录" name="10">
<Rewardsandpunishments
v-if="activeName == '10'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="考评记录" name="11">
<Appraisalrecord
v-if="activeName == '11'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="人才盘点" name="12">
<Talentinventory
v-if="activeName == '12'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="员工用工关系" name="13">
<Employmentrelations
v-if="activeName == '13'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="职称信息" name="14">
<Jobtitle
v-if="activeName == '14'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="证书信息" name="15">
<Certificates
v-if="activeName == '15'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
<el-tab-pane label="修改登陆密码" name="16">
<Editpwd
v-if="activeName == '16'"
:usercont="userConting"
:tabsid="activeName"
/>
</el-tab-pane>
</el-tabs>
</el-card>
</el-col>
</el-row>
</el-dialog>
<EditOrg
v-model:editShow="editMyOrgCont"
:usercont="userConting"
:tabsid="activeName"
@refreshcontdata="getjtcyList"
/>
</template>
<style lang='scss' scoped>
<style lang="scss" scoped>
.bjg {
background-color: aqua;
height: 50px;
background-color: aqua;
height: 50px;
}
.box-card-left {
text-align: center;
.username {
margin-top: 20px;
font-size: 35px;
}
.usernumber {
margin-top: 10px;
font-size: 25px;
}
.user_cont {
width: 90%;
margin: auto;
text-align: left;
.col_box {
margin-top: 10px;
.cont_size {
font-size: 16px;
.svg_box {
margin-right: 10px;
}
}
}
}
text-align: center;
.username {
margin-top: 20px;
font-size: 35px;
}
.usernumber {
margin-top: 10px;
font-size: 25px;
}
.user_cont {
width: 90%;
margin: auto;
text-align: left;
.col_box {
margin-top: 10px;
.cont_size {
font-size: 16px;
.svg_box {
margin-right: 10px;
}
}
}
}
}
.bianKuang{
border: 1px solid #ccc;
.bianKuang {
border: 1px solid #ccc;
}
</style>

525
src/views/hr/archives/basicinformation/editorg.vue

@ -3,315 +3,330 @@
@ 时间: 2023-06-20 08:15:45
@ 备注: 编辑行政组织
-->
<script lang='ts' setup>
import { editUserAboutOrg,teamClassCont } from '@/api/hr/people/type'
import { editMyOrgUndertake,haveTeamTimeList } from '@/api/hr/people/index'
import { positiongrade } from '@/api/hr/people/datacont'
<script lang="ts" setup>
import { editUserAboutOrg, teamClassCont } from "@/api/hr/people/type";
import { editMyOrgUndertake, haveTeamTimeList } from "@/api/hr/people/index";
import { positiongrade } from "@/api/hr/people/datacont";
/**
* 行政组织
*/
import { orgInfo,teamInfo } from '@/api/hr/org/type'
import { getOrgTreeList,getTeamListCont } from '@/api/hr/org/index'
import { postinfo } from '@/api/hr/post/type'
import { getPostContNotSunPage } from '@/api/hr/post/index'
import { dutiesCont } from '@/api/hr/duties/type'
import { getDuitesList } from '@/api/hr/duties/index'
import { orgInfo, teamInfo } from "@/api/hr/org/type";
import { getOrgTreeList, getTeamListCont } from "@/api/hr/org/index";
import { postinfo } from "@/api/hr/post/type";
import { getPostContNotSunPage } from "@/api/hr/post/index";
import { dutiesCont } from "@/api/hr/duties/type";
import { getDuitesList } from "@/api/hr/duties/index";
const props = defineProps({
editShow:{
type:Boolean,
default:false
},
tabsid:{
type:String,
default:"1"
},
usercont:{
type:Object,
default(){
return {}
}
}
editShow: {
type: Boolean,
default: false,
},
tabsid: {
type: String,
default: "1",
},
usercont: {
type: Object,
default() {
return {};
},
},
});
const emits = defineEmits(["update:editShow","refreshcontdata"]);
const editUsAboutOrg = reactive<editUserAboutOrg>({id:"",personInCharge:"2"});
const editUsOrgFormRef = ref(ElForm); //
const addLoading = ref(false)
const fuZefanWei = ref(false)
const emits = defineEmits(["update:editShow", "refreshcontdata"]);
const editUsAboutOrg = reactive<editUserAboutOrg>({ id: "", personInCharge: "2" });
const editUsOrgFormRef = ref(ElForm); //
const addLoading = ref(false);
const fuZefanWei = ref(false);
/**
* 行政组织
*/
const orgTreePostRef = ref(ElTree);
const orgOptionsList = ref<any>(); //
const fatherPost = ref<postinfo[]>([]) //
const teamContAry = ref<teamInfo[]>([]) //
const dutiesInfo = ref<dutiesCont[]>([]) //
const teamList = ref<teamClassCont[]>([])
const orgOptionsList = ref<any>(); //
const fatherPost = ref<postinfo[]>([]); //
const teamContAry = ref<teamInfo[]>([]); //
const dutiesInfo = ref<dutiesCont[]>([]); //
const teamList = ref<teamClassCont[]>([]);
/**
* 表单验证规则
*/
const editPwdRules = reactive({
orgid: [{ required: true, message: "请选择归属行政组织", trigger: "blur" }],
position: [{ required: true, message: "请选择岗位", trigger: "blur" }],
jobid:[{ required: true, message: "请选择职务", trigger: "blur" }],
jobleve:[{ required: true, message: "请选择职务等级", trigger: "blur" }],
teamid:[{ required: true, message: "请选择班组", trigger: "blur" }],
ruleid:[{ required: true, message: "请选择排班类型", trigger: "blur" }],
personInCharge:[{ required: true, message: "请选择是否为负责人", trigger: "blur" }]
const editPwdRules = reactive({
orgid: [{ required: true, message: "请选择归属行政组织", trigger: "blur" }],
position: [{ required: true, message: "请选择岗位", trigger: "blur" }],
jobid: [{ required: true, message: "请选择职务", trigger: "blur" }],
jobleve: [{ required: true, message: "请选择职务等级", trigger: "blur" }],
teamid: [{ required: true, message: "请选择班组", trigger: "blur" }],
ruleid: [{ required: true, message: "请选择排班类型", trigger: "blur" }],
personInCharge: [{ required: true, message: "请选择是否为负责人", trigger: "blur" }],
});
/**
* 弹窗显示控制
*/
const addshow = computed({
get: () => props.editShow,
set: (val) => {
emits("update:editShow", val);
},
const addshow = computed({
get: () => props.editShow,
set: (val) => {
emits("update:editShow", val);
},
});
const systemMenuTreeProps = {
children: "child",
label: "name",
value:"id"
}
const propsdepartfuze ={
value: "id",
label: "name",
children: "child",
multiple: true,
checkStrictly: true
}
children: "child",
label: "name",
value: "id",
};
const propsdepartfuze = {
value: "id",
label: "name",
children: "child",
multiple: true,
checkStrictly: true,
};
/**
* 选中节点
*/
const addOrgTreeNodeClick = (postData: orgInfo) => {
// console.log("",postData)
getPostContNotSunPage({page:1,pagesize:10000,organization:postData.id?.toString()})
.then(({ data }) =>{
fatherPost.value = data.list
})
}
const addOrgTreeNodeClick = (postData: orgInfo) => {
// console.log("",postData)
getPostContNotSunPage({
page: 1,
pagesize: 10000,
organization: postData.id?.toString(),
}).then(({ data }) => {
fatherPost.value = data.list;
});
};
/**
* 关闭弹窗
*/
function clostAddBoxJtnbgzjl(){
emits("update:editShow", false);
initJtwbgzjlData()
function clostAddBoxJtnbgzjl() {
emits("update:editShow", false);
initJtwbgzjlData();
}
/**
* 初始化数据
*/
function initJtwbgzjlData(){
editUsOrgFormRef.value.resetFields();
addLoading.value = false;
editUsAboutOrg.id = ""
orgOptionsList.value?.splice(orgOptionsList.value.length);
function initJtwbgzjlData() {
editUsOrgFormRef.value.resetFields();
addLoading.value = false;
editUsAboutOrg.id = "";
orgOptionsList.value?.splice(orgOptionsList.value.length);
}
/**
* 获取行政组织数据
*/
function haveOrgTreeInfo(){
getOrgTreeList({})
.then(({ data })=>{
orgOptionsList.value = data
})
function haveOrgTreeInfo() {
getOrgTreeList({}).then(({ data }) => {
orgOptionsList.value = data;
});
}
/**
* 获取班组数据
*/
function haveTeamInfo(){
getTeamListCont({page:1,pagesize:10000})
.then(({ data })=>{
teamContAry.value = data.list
})
function haveTeamInfo() {
getTeamListCont({ page: 1, pagesize: 10000 }).then(({ data }) => {
teamContAry.value = data.list;
});
}
/**
* 获取职务列表
*/
function getDutiesList(){
getDuitesList({page:1,pagesize:100000})
.then(( {data} )=>{
dutiesInfo.value = data.list;
})
function getDutiesList() {
getDuitesList({ page: 1, pagesize: 100000 }).then(({ data }) => {
dutiesInfo.value = data.list;
});
}
/**
* 获取排班类型
*/
function getTeamClassList(){
haveTeamTimeList({})
.then(( data )=>{
teamList.value = data.data;
})
function getTeamClassList() {
haveTeamTimeList({}).then((data) => {
teamList.value = data.data;
});
}
/**
* 初始化岗位
*/
function chushihuaPost(id: number){
// editUsAboutOrg.position= 0
getPostContNotSunPage({page:1,pagesize:10000,organization:id?.toString()})
.then(({ data }) =>{
fatherPost.value = data.list
})
function chushihuaPost(id: number) {
// editUsAboutOrg.position= 0
getPostContNotSunPage({ page: 1, pagesize: 10000, organization: id?.toString() }).then(
({ data }) => {
fatherPost.value = data.list;
}
);
}
/**
* 监听数据
*/
watch(() => props.editShow,() => {
if(props.editShow){
editUsAboutOrg.id = props.usercont.id.toString()
// editUsAboutOrg.personInCharge = props.usercont.personincharge.toString()
haveOrgTreeInfo();
haveTeamInfo();
getDutiesList();
getTeamClassList();
chushihuaPost(props.usercont.adminorg);
// console.log("--2323232323->",editUsAboutOrg,props.usercont)
editUsAboutOrg.orgid = props.usercont.adminorg //number;
editUsAboutOrg.position = props.usercont.position //number;
editUsAboutOrg.teamid = props.usercont.teamid //number;
editUsAboutOrg.jobid = props.usercont.jobid //number;
editUsAboutOrg.jobleve = props.usercont.jobleve //number;
editUsAboutOrg.ruleid = props.usercont.ruleid //string;
editUsAboutOrg.personInCharge = props.usercont.personincharge.toString() //number|string;
editUsAboutOrg.orgreslist = props.usercont.orgreslist //any;
editUsAboutOrg.resallorg = props.usercont.resallorg //any;
setPersonInCharge()
watch(
() => props.editShow,
() => {
if (props.editShow) {
editUsAboutOrg.id = props.usercont.id.toString();
// editUsAboutOrg.personInCharge = props.usercont.personincharge.toString()
haveOrgTreeInfo();
haveTeamInfo();
getDutiesList();
getTeamClassList();
chushihuaPost(props.usercont.adminorg);
console.log("监听数据--2323232323->", editUsAboutOrg, props.usercont);
}
})
function setPersonInCharge(){
if(editUsAboutOrg.personInCharge == 1 || editUsAboutOrg.personInCharge == "1"){
fuZefanWei.value = true
}else{
fuZefanWei.value = false
}
}
/**
* 添加数据
*/
function submitAddJtnbgzjl(){
addLoading.value = true;
editUsOrgFormRef.value.validate((isValid: boolean) => {
if (isValid) {
editUsAboutOrg.personInCharge = parseInt(editUsAboutOrg.personInCharge)
editMyOrgUndertake(editUsAboutOrg)
.then(() =>{
ElMessage.success("编辑成功");
clostAddBoxJtnbgzjl();
emits('refreshcontdata',props.usercont);
})
.finally(() =>{addLoading.value = false;})
}else{
addLoading.value = false;
}
});
}
editUsAboutOrg.orgid = props.usercont.adminorg; //number;
editUsAboutOrg.position = props.usercont.position; //number;
editUsAboutOrg.teamid = props.usercont.teamid; //number;
editUsAboutOrg.jobid = props.usercont.jobid; //number;
editUsAboutOrg.jobleve = props.usercont.jobleve; //number;
editUsAboutOrg.ruleid = props.usercont.ruleid; //string;
editUsAboutOrg.personInCharge = props.usercont.personincharge.toString(); //number|string;
editUsAboutOrg.orgreslist = props.usercont.orgreslist; //any;
editUsAboutOrg.resallorg = props.usercont.resallorg; //any;
setPersonInCharge();
}
}
);
function setPersonInCharge() {
if (editUsAboutOrg.personInCharge == 1 || editUsAboutOrg.personInCharge == "1") {
fuZefanWei.value = true;
} else {
fuZefanWei.value = false;
}
}
/**
* 添加数据
*/
function submitAddJtnbgzjl() {
addLoading.value = true;
editUsOrgFormRef.value.validate((isValid: boolean) => {
if (isValid) {
editUsAboutOrg.personInCharge = parseInt(editUsAboutOrg.personInCharge);
editMyOrgUndertake(editUsAboutOrg)
.then(() => {
ElMessage.success("编辑成功");
clostAddBoxJtnbgzjl();
emits("refreshcontdata", props.usercont);
})
.finally(() => {
addLoading.value = false;
});
} else {
addLoading.value = false;
}
});
}
</script>
<template>
<el-dialog
v-model="addshow"
width="600"
title="编辑行政组织"
append-to-body
:before-close="clostAddBoxJtnbgzjl"
> <el-form
ref="editUsOrgFormRef"
:model="editUsAboutOrg"
:rules="editPwdRules"
label-width="140px"
>
<el-form-item label="归属行政组织" prop="orgid">
<el-tree-select
ref="orgTreePostRef"
v-model="editUsAboutOrg.orgid"
placeholder="选择归属行政组织"
:data="orgOptionsList"
node-key="id"
check-strictly
:props="systemMenuTreeProps"
:render-after-expand="false"
class="orgTree"
@node-click="addOrgTreeNodeClick"
/>
</el-form-item>
<el-form-item label="岗位" prop="position">
<el-select v-model="editUsAboutOrg.position" clearable placeholder="请选择岗位" >
<el-option
v-for="item in fatherPost"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="!item.status"
/>
</el-select>
</el-form-item>
<el-form-item label="职务" prop="jobid">
<el-select v-model="editUsAboutOrg.jobid" clearable filterable placeholder="请选择职务" >
<el-option
v-for="item in dutiesInfo"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="!item.status"
/>
</el-select>
</el-form-item>
<el-form-item label="职务等级" prop="jobleve">
<el-select v-model="editUsAboutOrg.jobleve" placeholder="请选择职务等级" >
<el-option
v-for="item in positiongrade"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="班组" prop="teamid">
<el-select v-model="editUsAboutOrg.teamid" placeholder="请选择班组" >
<el-option
v-for="item in teamContAry"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="排班类型" prop="ruleid">
<el-select v-model="editUsAboutOrg.ruleid" placeholder="请选择排班类型" >
<el-option
v-for="item in teamList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="部门负责人" prop="personInCharge">
<el-switch
v-model="editUsAboutOrg.personInCharge"
inline-prompt
active-text="是"
inactive-text="否"
active-value="1"
inactive-value="2"
size="large"
@change="setPersonInCharge"
/>
</el-form-item>
<el-form-item v-if="fuZefanWei" label="负责行政组织" prop="orgOptionsList" >
<el-cascader v-model="editUsAboutOrg.orgreslist" :options="orgOptionsList" :props="propsdepartfuze" clearable style="width:100%"></el-cascader>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="addLoading" @click="submitAddJtnbgzjl" > </el-button>
<el-button @click="clostAddBoxJtnbgzjl"> </el-button>
</div>
</template>
</el-dialog>
<el-dialog
v-model="addshow"
width="600"
title="编辑行政组织"
append-to-body
:before-close="clostAddBoxJtnbgzjl"
>
<el-form
ref="editUsOrgFormRef"
:model="editUsAboutOrg"
:rules="editPwdRules"
label-width="140px"
>
<el-form-item label="归属行政组织" prop="orgid">
<el-tree-select
ref="orgTreePostRef"
v-model="editUsAboutOrg.orgid"
placeholder="选择归属行政组织"
:data="orgOptionsList"
node-key="id"
check-strictly
:props="systemMenuTreeProps"
:render-after-expand="false"
class="orgTree"
@node-click="addOrgTreeNodeClick"
/>
</el-form-item>
<el-form-item label="岗位" prop="position">
<el-select v-model="editUsAboutOrg.position" clearable placeholder="请选择岗位">
<el-option
v-for="item in fatherPost"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="!item.status"
/>
</el-select>
</el-form-item>
<el-form-item label="职务" prop="jobid">
<el-select
v-model="editUsAboutOrg.jobid"
clearable
filterable
placeholder="请选择职务"
>
<el-option
v-for="item in dutiesInfo"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="!item.status"
/>
</el-select>
</el-form-item>
<el-form-item label="职务等级" prop="jobleve">
<el-select v-model="editUsAboutOrg.jobleve" placeholder="请选择职务等级">
<el-option
v-for="item in positiongrade"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="班组" prop="teamid">
<el-select v-model="editUsAboutOrg.teamid" placeholder="请选择班组">
<el-option
v-for="item in teamContAry"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="排班类型" prop="ruleid">
<el-select v-model="editUsAboutOrg.ruleid" placeholder="请选择排班类型">
<el-option
v-for="item in teamList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="部门负责人" prop="personInCharge">
<el-switch
v-model="editUsAboutOrg.personInCharge"
inline-prompt
active-text="是"
inactive-text="否"
active-value="1"
inactive-value="2"
size="large"
@change="setPersonInCharge"
/>
</el-form-item>
<el-form-item v-if="fuZefanWei" label="负责行政组织" prop="orgOptionsList">
<el-cascader
v-model="editUsAboutOrg.orgreslist"
:options="orgOptionsList"
:props="propsdepartfuze"
clearable
style="width: 100%"
></el-cascader>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="addLoading" @click="submitAddJtnbgzjl"
> </el-button
>
<el-button @click="clostAddBoxJtnbgzjl"> </el-button>
</div>
</template>
</el-dialog>
</template>
<style lang='scss' scoped>
</style>
<style lang="scss" scoped></style>

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

@ -31,7 +31,7 @@ import { uploadUrl } from "@/api/DesignForm";
/**
* 引入页面
*/
import ArchivesCont from "@/views/hr/archives/archivescont.vue";
import ArchivesContPage from "@/views/hr/archives/archivescont.vue";
import XingGeFengXi from "@/views/hr/archives/downpage/xingGeFengXi.vue";
import { ElScrollbar as ElScrollbarType } from "element-plus";
@ -927,7 +927,7 @@ const gainTimeList = () => {
@pagination="getArchivesPage"
/>
</el-card>
<ArchivesCont
<ArchivesContPage
v-model:isShow="archivesBox"
:archivesdata="peoplecont"
@updatemyconting="updateMyCont"

7
src/views/sysworkflow/flow/flowDrawingBoard.vue

@ -493,7 +493,12 @@ const clickOpenOrClose = () => {
:is-form-flow="props.isFormFlow"
:customer-form-key="props.customerFormKey"
/>
<copyerDrawer />
<copyerDrawer
:directormaxlevel="directorMaxLeveling"
:node-config="nodeConfig"
:is-form-flow="props.isFormFlow"
:customer-form-key="props.customerFormKey"
/>
<conditionDrawer
:is-form-flow="props.isFormFlow"
:customer-form-key="props.customerFormKey"

123
src/views/sysworkflow/flow/index.vue

@ -3,72 +3,75 @@
@ 时间: 2023-05-26 09:19:46
@ 备注:
-->
<script lang='ts' setup>
import FlowDrawingBoard from '@/views/sysworkflow/flow/flowDrawingBoard.vue'
<script lang="ts" setup>
import FlowDrawingBoard from "@/views/sysworkflow/flow/flowDrawingBoard.vue";
//
const flowcont = ref()
const drawer = ref(false)
const drawerWidht = ref()
const openfloaw = ()=>{
drawerWidht.value = flowcont.value?.clientWidth
// console.log("clientHeight--->",drawerWidht.value)
drawer.value = true
}
const isFormFlow = ref(false)
const customerFormKey = ref<string>()
const scrollContainer = ref<any>(null)
const fixedElement = ref<any>(null)
const scrollToFixed = () =>{
// console.log("scrollToFixed",scrollContainer.value?.offsetTop)
// console.log("scrollToFixed",fixedElement.value?.offsetTop)
scrollContainer.value.scrollIntoView({
behavior: "smooth"
})
scrollContainer.value.scrollTop = fixedElement.value?.offsetTop - scrollContainer.value?.offsetTop
}
const flowcont = ref();
const drawer = ref(false);
const drawerWidht = ref();
const openfloaw = () => {
drawerWidht.value = flowcont.value?.clientWidth;
// console.log("clientHeight--->",drawerWidht.value)
drawer.value = true;
};
const isFormFlow = ref(false);
const customerFormKey = ref<string>();
const scrollContainer = ref<any>(null);
const fixedElement = ref<any>(null);
const scrollToFixed = () => {
// console.log("scrollToFixed",scrollContainer.value?.offsetTop)
// console.log("scrollToFixed",fixedElement.value?.offsetTop)
scrollContainer.value.scrollIntoView({
behavior: "smooth",
});
scrollContainer.value.scrollTop =
fixedElement.value?.offsetTop - scrollContainer.value?.offsetTop;
};
</script>
<template>
<div ref="flowcont">
<el-button type="primary" @click="openfloaw">添加</el-button>
<div ref="flowcont">
<el-button type="primary" @click="openfloaw">添加</el-button>
<FlowDrawingBoard v-model:open-drawer="drawer" :drawer-widht = "drawerWidht" :is-form-flow="isFormFlow" :customer-form-key="customerFormKey" />
<FlowDrawingBoard
v-model:open-drawer="drawer"
:drawer-widht="drawerWidht"
:is-form-flow="isFormFlow"
:customer-form-key="customerFormKey"
/>
<div ref="scrollContainer" style="height: 200px; overflow: auto;">
<!-- 这里是滚动内容 -->
<div ref="fixedElement">指定位置元素</div>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</div>
<button @click="scrollToFixed">滚动到指定位置</button>
</div>
<div ref="scrollContainer" style="height: 200px; overflow: auto">
<!-- 这里是滚动内容 -->
<div ref="fixedElement">指定位置元素</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
<button @click="scrollToFixed">滚动到指定位置</button>
</div>
</template>
<style lang='scss' scoped>
.canvas_body{
height: 100%;
width: inherit;
<style lang="scss" scoped>
.canvas_body {
height: 100%;
width: inherit;
}
</style>

2
src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageFlow.vue

@ -649,7 +649,7 @@ const simulateFlow = () => {
v-model:form-data="state.formData"
:form-version="formVersion"
/>
<copyerDrawer />
<copyerSend :is-form-flow="isFormFlow" />
<conditionDrawer :is-form-flow="isFormFlow" :customer-form-key="appPageKey" />
</div>
</div>

424
src/views/sysworkflow/lowcodepage/lowCodeFormPage.vue

@ -3,37 +3,36 @@
@ 时间: 2024-03-09 08:58:23
@ 备注: 编辑表单页面
-->
<script lang='ts' setup>
import { useRoute, useRouter } from 'vue-router'
import { formStruct } from '@/api/DesignForm/types'
<script lang="ts" setup>
import { useRoute, useRouter } from "vue-router";
import { formStruct } from "@/api/DesignForm/types";
import { customerFormConfig } from "@/api/DesignForm/type";
import { getProductionMarkForm } from '@/api/DesignForm/requestapi'
import { getProductionMarkForm } from "@/api/DesignForm/requestapi";
// import PageDesign from "@/views/sysworkflow/lowcodepage/pageDesign.vue"
import PageDesignEs from "@/views/sysworkflow/lowcodepage/pageDesignes.vue"
import WorkFlow from "@/views/sysworkflow/lowcodepage/workFlow.vue"
import PageList from "@/views/sysworkflow/lowcodepage/pageList.vue"
import SetUpPage from "@/views/sysworkflow/lowcodepage/setUpPage.vue"
import PageDesignEs from "@/views/sysworkflow/lowcodepage/pageDesignes.vue";
import WorkFlow from "@/views/sysworkflow/lowcodepage/workFlow.vue";
import PageList from "@/views/sysworkflow/lowcodepage/pageList.vue";
import SetUpPage from "@/views/sysworkflow/lowcodepage/setUpPage.vue";
const props = defineProps({
drawerWith:{
type:Number,
default:true
},
formKey:{
type:String,
default:""
},
formGroupKey:{
type:String,
default:""
}
drawerWith: {
type: Number,
default: true,
},
formKey: {
type: String,
default: "",
},
formGroupKey: {
type: String,
default: "",
},
});
const formConfigCont = reactive<customerFormConfig>({
formName:"",
formlogo:""
})
const loading = ref(false)
formName: "",
formlogo: "",
});
const loading = ref(false);
const pageDesignIsWrite = ref(true);
const flowIsWrite = ref(true);
const emits = defineEmits(["refreshPage"]);
@ -41,200 +40,233 @@ const drawerOpenOrClose = ref(true);
const tabsActive = ref(1);
const creetTabsActive = ref(1);
const route: any = useRoute().query || {}
const route: any = useRoute().query || {};
const state = reactive<formStruct>({
formData: {
list: [],
form: {
size: 'default',
name:'',
formName: formConfigCont.formName
},
config: {
groupKey:props.formGroupKey
},
styles:{
divStyle:{},
labelStyle:{},
inputStyle:{}
},
purview:[]
formData: {
list: [],
form: {
size: "default",
name: "",
formName: formConfigCont.formName,
},
config: {
groupKey: props.formGroupKey,
},
styles: {
divStyle: {},
labelStyle: {},
inputStyle: {},
},
editor: {},
loading: false,
formDataPreview: {},
previewVisible: false, //
designType: route.type, // search
formDict: {},
formOtherData: {
source: route.source || '',
formName: formConfigCont.formName
}
})
purview: [],
},
editor: {},
loading: false,
formDataPreview: {},
previewVisible: false, //
designType: route.type, // search
formDict: {},
formOtherData: {
source: route.source || "",
formName: formConfigCont.formName,
},
});
//ID
const formKeyStr = computed({
get() {
return props.formKey
},
set(val: formStruct) {
emits('update:formKey', val)
}
const formKeyStr = computed({
get() {
return props.formKey;
},
set(val: formStruct) {
emits("update:formKey", val);
},
});
//ID
const formVersion = ref<string>("")
const formVersion = ref<string>("");
const judgeFormIsEdit = (val:boolean,wval:boolean) => {
pageDesignIsWrite.value = val;
flowIsWrite.value = wval
}
const judgeFormIsEdit = (val: boolean, wval: boolean) => {
pageDesignIsWrite.value = val;
flowIsWrite.value = wval;
};
const handleClick = (tab: TabsPaneContext, event: Event) =>{
// console.log("--->",creetTabsActive.value,tab.paneName, event)
switch (tab.paneName) {
case 2:
if (creetTabsActive.value != 2){
if(PreOperation()){
creetTabsActive.value = tab.paneName
}
}
break;
case 3:
if (creetTabsActive.value != 3){
if(PreOperation()){
creetTabsActive.value = tab.paneName
}
}
break;
case 4:
if (creetTabsActive.value != 4){
if(PreOperation()){
creetTabsActive.value = tab.paneName
}
}
break;
default:
tabsActive.value = 1
creetTabsActive.value = 1
break;
}
}
const handleClick = (tab: TabsPaneContext, event: Event) => {
// console.log("--->",creetTabsActive.value,tab.paneName, event)
switch (tab.paneName) {
case 2:
if (creetTabsActive.value != 2) {
if (PreOperation()) {
creetTabsActive.value = tab.paneName;
}
}
break;
case 3:
if (creetTabsActive.value != 3) {
if (PreOperation()) {
creetTabsActive.value = tab.paneName;
}
}
break;
case 4:
if (creetTabsActive.value != 4) {
if (PreOperation()) {
creetTabsActive.value = tab.paneName;
}
}
break;
default:
tabsActive.value = 1;
creetTabsActive.value = 1;
break;
}
};
/**
@ 作者: 秦东
@ 时间: 2024-03-09 13:42:24
@ 功能: 判断tabs要执行得前置操作
*/
const PreOperation = () =>{
switch (creetTabsActive.value) {
case 2:
if(flowIsWrite.value){
ElMessageBox.alert('你设置的流程还未保存!', '温馨提示!', {
confirmButtonText: 'OK',
callback: (action: Action) => {
tabsActive.value = 2
creetTabsActive.value = 2
}
});
flowIsWrite.value = true
}else{
creetTabsActive.value = tabsActive.value
// console.log("-1-->",tabsActive.value,creetTabsActive.value)
}
return true;
break;
case 3:
return true;
break;
case 4:
return true;
break;
default:
if(pageDesignIsWrite.value){
ElMessageBox.alert('你设置的表单还未保存!', '温馨提示!', {
confirmButtonText: 'OK',
callback: (action: Action) => {
tabsActive.value = 1
creetTabsActive.value = 1
}
});
pageDesignIsWrite.value = true
}else{
creetTabsActive.value = tabsActive.value
tabsActive.value = 1
}
return true;
break;
}
}
const judgeFlowIsEdit = (val:boolean) => {
flowIsWrite.value = val;
// creetTabsActive.value = 2
}
const PreOperation = () => {
switch (creetTabsActive.value) {
case 2:
if (flowIsWrite.value) {
ElMessageBox.alert("你设置的流程还未保存!", "温馨提示!", {
confirmButtonText: "OK",
callback: (action: Action) => {
tabsActive.value = 2;
creetTabsActive.value = 2;
},
});
flowIsWrite.value = true;
} else {
creetTabsActive.value = tabsActive.value;
// console.log("-1-->",tabsActive.value,creetTabsActive.value)
}
return true;
break;
case 3:
return true;
break;
case 4:
return true;
break;
default:
if (pageDesignIsWrite.value) {
ElMessageBox.alert("你设置的表单还未保存!", "温馨提示!", {
confirmButtonText: "OK",
callback: (action: Action) => {
tabsActive.value = 1;
creetTabsActive.value = 1;
},
});
pageDesignIsWrite.value = true;
} else {
creetTabsActive.value = tabsActive.value;
tabsActive.value = 1;
}
return true;
break;
}
};
const judgeFlowIsEdit = (val: boolean) => {
flowIsWrite.value = val;
// creetTabsActive.value = 2
};
const closeFormPage = () => {
emits("refreshPage","formPage");
}
emits("refreshPage", "formPage");
};
onBeforeMount(() => {
getProductionMarkForm()
.then(({data})=>{
formConfigCont.formlogo = data.formlogo
formConfigCont.formName = data.formname
state.formData.form.name = data.formlogo
state.formData.form.formName = data.formname
state.formOtherData.formName = data.formname
})
.finally(()=>{
})
})
getProductionMarkForm()
.then(({ data }) => {
formConfigCont.formlogo = data.formlogo;
formConfigCont.formName = data.formname;
state.formData.form.name = data.formlogo;
state.formData.form.formName = data.formname;
state.formOtherData.formName = data.formname;
})
.finally(() => {});
});
/**
@ 作者: 秦东
@ 时间: 2024-03-11 08:44:43
@ 功能: 执行下一个窗口
*/
const runNextWindows = (val:number) => {
creetTabsActive.value = val
tabsActive.value = val
}
onMounted(()=>{
// formKeyStr.value = "13"
})
const runNextWindows = (val: number) => {
creetTabsActive.value = val;
tabsActive.value = val;
};
onMounted(() => {
// formKeyStr.value = "13"
});
</script>
<template>
<div class="drawerClass">
<el-drawer v-model="drawerOpenOrClose" title="设置/编辑自定义表单" :with-header="false" :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true" :size="props.drawerWith">
<el-tabs v-model="tabsActive" @tab-click="handleClick" :stretch="true" class="tabsMain">
<el-tab-pane label="① 页面设计" :name="1">
</el-tab-pane>
<el-tab-pane label="② 流程设计" :name="2">
</el-tab-pane>
<el-tab-pane label="③ 列表设计" :name="3">
</el-tab-pane>
<el-tab-pane label="④ 页面设置" :name="4">
</el-tab-pane>
</el-tabs>
<PageDesignEs v-if="tabsActive==1" v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" :formconfigcont="formConfigCont" @judgeFormIsEdit="judgeFormIsEdit" @runNextWindows="runNextWindows" @closeFormPage="closeFormPage" />
<WorkFlow v-if="tabsActive==2" v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" @judgeFlowIsEdit="judgeFlowIsEdit" @runNextWindows="runNextWindows" @closeFormPage="closeFormPage" />
<PageList v-if="tabsActive==3" v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" :tabs-active="tabsActive" @closeFormPage="closeFormPage" />
<SetUpPage v-if="tabsActive==4" v-model:state="state" v-model:form-key="formKeyStr" v-model:form-version="formVersion" @closeFormPage="closeFormPage" />
</el-drawer>
</div>
<div class="drawerClass">
<el-drawer
v-model="drawerOpenOrClose"
title="设置/编辑自定义表单"
:with-header="false"
:close-on-click-modal="false"
:close-on-press-escape="false"
:destroy-on-close="true"
:size="props.drawerWith"
>
<el-tabs
v-model="tabsActive"
@tab-click="handleClick"
:stretch="true"
class="tabsMain"
>
<el-tab-pane label="① 页面设计" :name="1"> </el-tab-pane>
<el-tab-pane label="② 流程设计" :name="2"> </el-tab-pane>
<el-tab-pane label="③ 列表设计" :name="3"> </el-tab-pane>
<el-tab-pane label="④ 页面设置" :name="4"> </el-tab-pane>
</el-tabs>
<PageDesignEs
v-if="tabsActive == 1"
v-model:state="state"
v-model:form-key="formKeyStr"
v-model:form-version="formVersion"
:formconfigcont="formConfigCont"
@judgeFormIsEdit="judgeFormIsEdit"
@runNextWindows="runNextWindows"
@closeFormPage="closeFormPage"
/>
<WorkFlow
v-if="tabsActive == 2"
v-model:state="state"
v-model:form-key="formKeyStr"
v-model:form-version="formVersion"
@judgeFlowIsEdit="judgeFlowIsEdit"
@runNextWindows="runNextWindows"
@closeFormPage="closeFormPage"
/>
<PageList
v-if="tabsActive == 3"
v-model:state="state"
v-model:form-key="formKeyStr"
v-model:form-version="formVersion"
:tabs-active="tabsActive"
@closeFormPage="closeFormPage"
/>
<SetUpPage
v-if="tabsActive == 4"
v-model:state="state"
v-model:form-key="formKeyStr"
v-model:form-version="formVersion"
@closeFormPage="closeFormPage"
/>
</el-drawer>
</div>
</template>
<style lang='scss' scoped>
.tabsMain{
::v-deep .el-tabs__header{
margin: 0px;
}
::v-deep .el-tabs__nav-scroll{
width: 50%!important;
margin: 0 auto!important;
}
<style lang="scss" scoped>
.tabsMain {
::v-deep .el-tabs__header {
margin: 0px;
}
::v-deep .el-tabs__nav-scroll {
width: 50% !important;
margin: 0 auto !important;
}
::v-deep .el-drawer__body{
padding: 0;
}
::v-deep .el-drawer__body {
padding: 0;
}
}
</style>

9
src/views/sysworkflow/lowcodepage/workFlow.vue

@ -569,7 +569,14 @@ onMounted(() => {
v-model:form-data="state.formData"
:form-version="formVersion"
/>
<copyerDrawer />
<copyerDrawer
:directormaxlevel="directorMaxLeveling"
:node-config="nodeConfig"
:is-form-flow="isFormFlow"
:customer-form-key="formKeyVal"
v-model:form-data="state.formData"
:form-version="formVersion"
/>
<conditionDrawer :is-form-flow="isFormFlow" :customer-form-key="formKeyVal" />
</el-col>
</el-row>

Loading…
Cancel
Save