Browse Source

兼职显示

qin_14
hreenshan112 10 months ago
parent
commit
7f0f18c9d3
  1. 113
      src/views/hr/archives/basicinformation/orgnexus.vue
  2. 644
      src/views/sysworkflow/lowcodepage/appPage/index.vue

113
src/views/hr/archives/basicinformation/orgnexus.vue

@ -3,65 +3,72 @@
@ 时间: 2023-06-16 10:33:37 @ 时间: 2023-06-16 10:33:37
@ 备注: 行政组织关系 @ 备注: 行政组织关系
--> -->
<script lang='ts' setup> <script lang="ts" setup>
import { peopleAboutOrg } from '@/api/hr/people/type' import { peopleAboutOrg } from "@/api/hr/people/type";
import { getPeopleAboutOrg } from '@/api/hr/people/index' import { getPeopleAboutOrg } from "@/api/hr/people/index";
const props = defineProps({ const props = defineProps({
tabsid:{ tabsid: {
type:String, type: String,
default:"1" default: "1",
}, },
usercont:{ usercont: {
type:Object, type: Object,
default(){ default() {
return {} return {};
} },
} },
}); });
const tableLoading = ref(false) const tableLoading = ref(false);
const postList = ref<peopleAboutOrg[]>([]) const postList = ref<peopleAboutOrg[]>([]);
function getOrgList(){ function getOrgList() {
tableLoading.value = true; tableLoading.value = true;
getPeopleAboutOrg({id:props.usercont.keystr}) getPeopleAboutOrg({ id: props.usercont.keystr })
.then(( data )=>{ .then((data) => {
postList.value = data.data postList.value = data.data;
}) })
.finally(()=>{tableLoading.value = false;}) .finally(() => {
tableLoading.value = false;
});
} }
/** /**
* 监听数据 * 监听数据
*/ */
watch(() => props.tabsid,() => { watch(
if(props.tabsid == "3"){ () => props.tabsid,
getOrgList() () => {
} if (props.tabsid == "3") {
}) getOrgList();
onMounted(() => { }
if(props.tabsid == "3"){ }
getOrgList() );
} onMounted(() => {
}) if (props.tabsid == "3") {
getOrgList();
}
});
</script> </script>
<template> <template>
<el-table <el-table
v-loading="tableLoading" v-loading="tableLoading"
highlight-current-row highlight-current-row
:data="postList" :data="postList"
border border
:header-cell-style="{background:'#F5F7FA'}" :header-cell-style="{ background: '#F5F7FA' }"
> >
<el-table-column label="任职类型" width="100" align="center"> <el-table-column label="任职类型" width="100" align="center">
<template #default="scope"> <template #default="scope">
<el-text v-if="scope.row.assigntype==1" class="mx-1">主职</el-text> <el-text v-if="scope.row.assigntype == 1" class="mx-1">主职</el-text>
<el-text v-else class="mx-1">兼职</el-text> <el-text v-else class="mx-1">兼职</el-text>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="任职单位" prop="orgallname" /> <el-table-column label="任职单位" prop="orgallname" />
<el-table-column label="任职职务" prop="postname" width="100" align="center" /> <el-table-column label="任职职务" prop="postname" width="100" align="center" />
<el-table-column label="任职起始时间" prop="starttimeing" width="120" align="center" /> <el-table-column
<el-table-column label="任职结束时间" prop="endtimeing" width="120" align="center" /> label="任职起始时间"
</el-table> prop="starttimeing"
width="120"
align="center"
/>
</el-table>
</template> </template>
<style lang='scss' scoped> <style lang="scss" scoped></style>
</style>

644
src/views/sysworkflow/lowcodepage/appPage/index.vue

@ -3,361 +3,413 @@
@ 时间: 2024-04-18 14:08:56 @ 时间: 2024-04-18 14:08:56
@ 备注: 设置自建应用 @ 备注: 设置自建应用
--> -->
<script lang='ts' setup> <script lang="ts" setup>
import { appMenuTreeInfo,appSetInfo } from "@/api/date/type" import { appMenuTreeInfo, appSetInfo } from "@/api/date/type";
import { gainAppEditPsge } from '@/api/DesignForm/requestapi' import { gainAppEditPsge } from "@/api/DesignForm/requestapi";
import { Search } from '@element-plus/icons-vue' import { Search } from "@element-plus/icons-vue";
import SvgIcon from "@/components/SvgIcon/index.vue"; import SvgIcon from "@/components/SvgIcon/index.vue";
import AppMenus from "@/views/sysworkflow/lowcodepage/appPage/appMenus.vue" import AppMenus from "@/views/sysworkflow/lowcodepage/appPage/appMenus.vue";
import AppMenuGroup from "@/views/sysworkflow/lowcodepage/appPage/appMenuGroup.vue" import AppMenuGroup from "@/views/sysworkflow/lowcodepage/appPage/appMenuGroup.vue";
import CreateAppFormPage from "@/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue" import CreateAppFormPage from "@/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue";
import OpenAppFormPage from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/openAppFormPage.vue" import OpenAppFormPage from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/openAppFormPage.vue";
import AppSetUp from "@/views/sysworkflow/lowcodepage/appPage/appSetUp/index.vue" import AppSetUp from "@/views/sysworkflow/lowcodepage/appPage/appSetUp/index.vue";
import ReleaseApp from '@/views/sysworkflow/lowcodepage/appPage/releaseApp/index.vue' import ReleaseApp from "@/views/sysworkflow/lowcodepage/appPage/releaseApp/index.vue";
const props = defineProps({ const props = defineProps({
drawerWith:{ drawerWith: {
type:Number, type: Number,
default:0 default: 0,
}, },
formKey:{ formKey: {
type:String, type: String,
default:"" default: "",
}, },
isShow:{ isShow: {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
groupKey:{ groupKey: {
type:String, type: String,
default:"" default: "",
}, },
pickAppInfo:{ pickAppInfo: {
type:Object, type: Object,
default(){ default() {
return {} return {};
} },
} },
}); });
const emits = defineEmits(["update:isShow","update:svgName","refreshPage","accessapp"]); const emits = defineEmits([
const squareUrl = 'https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png' "update:isShow",
const drawerOpenOrClose = ref(false) "update:svgName",
const tabsActive = ref(1) "refreshPage",
const menusTree = ref<appMenuTreeInfo[]>([]) "accessapp",
]);
const squareUrl = "https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png";
const drawerOpenOrClose = ref(false);
const tabsActive = ref(1);
const menusTree = ref<appMenuTreeInfo[]>([]);
const appCont = reactive<appSetInfo>({ const appCont = reactive<appSetInfo>({
appKey:"1", appKey: "1",
appName:"未知应用", appName: "未知应用",
appSvg:"", appSvg: "",
state:1, state: 1,
uuid:"1", uuid: "1",
describe:"" describe: "",
}) });
const menuParentKey = ref<string>("") const menuParentKey = ref<string>("");
const menuGroupShow = ref(false) // const menuGroupShow = ref(false); //
const appPageKey = ref<string>("") //AppId const appPageKey = ref<string>(""); //AppId
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-04-19 15:47:12 @ 时间: 2024-04-19 15:47:12
@ 功能: 选择选项 @ 功能: 选择选项
*/ */
const handleClick = () =>{} const handleClick = () => {};
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-04-23 09:56:19 @ 时间: 2024-04-23 09:56:19
@ 功能: 关闭 @ 功能: 关闭
*/ */
const closeAppDraw = () =>{ const closeAppDraw = () => {
emits("update:isShow",false) emits("update:isShow", false);
emits("refreshPage") emits("refreshPage");
tabsActive.value = 1 tabsActive.value = 1;
checkedMenu.value = "" checkedMenu.value = "";
appPageKey.value = "" appPageKey.value = "";
props.formKey="" props.formKey = "";
isNew.value = false isNew.value = false;
} };
onMounted(() =>{ onMounted(() => {
// gainAppContent() // gainAppContent()
}) });
watch(()=>props.isShow,(val:boolean)=>{ watch(
if(val){ () => props.isShow,
gainAppContent() (val: boolean) => {
} if (val) {
}) gainAppContent();
}
}
);
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-04-23 15:23:31 @ 时间: 2024-04-23 15:23:31
@ 功能: 获取app信息 @ 功能: 获取app信息
*/ */
const gainAppContent = () =>{ const gainAppContent = () => {
let sendInfo = { let sendInfo = {
id:props.formKey.toString() id: props.formKey.toString(),
} };
gainAppEditPsge(sendInfo) gainAppEditPsge(sendInfo).then((data) => {
.then((data)=>{ // console.log("app---",data)
// console.log("app---",data) menusTree.value = data.data.menuTree;
menusTree.value = data.data.menuTree appCont.appKey = data.data.appKey;
appCont.appKey = data.data.appKey; appCont.appName = data.data.appName;
appCont.appName = data.data.appName; appCont.appSvg = data.data.appSvg;
appCont.appSvg = data.data.appSvg; appCont.state = data.data.state;
appCont.state = data.data.state; appCont.uuid = data.data.uuid;
appCont.uuid = data.data.uuid; });
}) };
}
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-04-23 16:57:39 @ 时间: 2024-04-23 16:57:39
@ 功能: 添加菜单分组 @ 功能: 添加菜单分组
*/ */
const addMenu = (key?:string) => { const addMenu = (key?: string) => {
if(key){ if (key) {
menuParentKey.value = key; menuParentKey.value = key;
}else{ } else {
menuParentKey.value = ""; menuParentKey.value = "";
} }
menuGroupShow.value = true; menuGroupShow.value = true;
} };
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-05-06 11:09:44 @ 时间: 2024-05-06 11:09:44
@ 功能: 创建页面 @ 功能: 创建页面
*/ */
const saveAppFormIsShow = ref(false) const saveAppFormIsShow = ref(false);
const isNew = ref(false) const isNew = ref(false);
const addAppPageForm = (key?:string) => { const addAppPageForm = (key?: string) => {
saveAppFormIsShow.value = true saveAppFormIsShow.value = true;
isNew.value = true isNew.value = true;
// console.log("-->") // console.log("-->")
} };
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-05-18 09:00:00 @ 时间: 2024-05-18 09:00:00
@ 功能: 操作表单页面 @ 功能: 操作表单页面
*/ */
const checkedMenu = ref<appMenuTreeInfo>("") const checkedMenu = ref<appMenuTreeInfo>("");
const openAppPageForm = (val:appMenuTreeInfo) => { const openAppPageForm = (val: appMenuTreeInfo) => {
checkedMenu.value = val checkedMenu.value = val;
} };
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-05-20 13:27:37 @ 时间: 2024-05-20 13:27:37
@ 功能: 编辑app页面 @ 功能: 编辑app页面
*/ */
const editAppInfo = (id:string) => { const editAppInfo = (id: string) => {
appPageKey.value = id appPageKey.value = id;
saveAppFormIsShow.value = true saveAppFormIsShow.value = true;
isNew.value = false isNew.value = false;
} };
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-05-20 16:20:08 @ 时间: 2024-05-20 16:20:08
@ 功能: 重新初始化app @ 功能: 重新初始化app
*/ */
const openAppPageInit = ref(null) const openAppPageInit = ref(null);
const updataPageInit = () => { const updataPageInit = () => {
openAppPageInit.value.gainAppFormPageInit();
openAppPageInit.value.gainAppFormPageInit() };
} watch(
watch(()=>tabsActive.value,(val:number)=>{ () => tabsActive.value,
if(val==1){ (val: number) => {
openAppPageInit.value.gainAppFormPageInit() if (val == 1) {
} openAppPageInit.value.gainAppFormPageInit();
}) }
}
);
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-06-28 08:46:12 @ 时间: 2024-06-28 08:46:12
@ 功能: 访问前端页面 @ 功能: 访问前端页面
*/ */
const accessRunApp = () =>{ const accessRunApp = () => {
closeAppDraw() closeAppDraw();
emits("accessapp",props.pickAppInfo) emits("accessapp", props.pickAppInfo);
} };
</script> </script>
<template> <template>
<div class="drawerClass"> <div class="drawerClass">
<el-drawer
<el-drawer v-model="props.isShow" title="设置/编辑自定义表单" :with-header="false" :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true" :size="props.drawerWith"> v-model="props.isShow"
<div class="common-layout"> title="设置/编辑自定义表单"
<el-container> :with-header="false"
<el-header class="headerBox"> :close-on-click-modal="false"
<div> :close-on-press-escape="false"
<el-space wrap> :destroy-on-close="true"
<el-avatar shape="square" :size="25" :src="appCont.appSvg" /> :size="props.drawerWith"
<el-text>{{ appCont.appName }}</el-text> >
<el-tag v-if="appCont.state==1" type="success">已启用</el-tag> <div class="common-layout">
<el-tag v-else type="danger">已禁用</el-tag> <el-container>
</el-space> <el-header class="headerBox">
</div> <div>
<div> <el-space wrap>
<el-tabs v-model="tabsActive" @tab-click="handleClick" :stretch="true" class="tabsMain"> <el-avatar shape="square" :size="25" :src="appCont.appSvg" />
<el-tab-pane label="① 页面管理" :name="1"> <el-text>{{ appCont.appName }}</el-text>
</el-tab-pane> <el-tag v-if="appCont.state == 1" type="success">已启用</el-tag>
<el-tab-pane label="② 集成&自动化" :name="2"> <el-tag v-else type="danger">已禁用</el-tag>
</el-tab-pane> </el-space>
<el-tab-pane label="③ 应用设置" :name="3"> </div>
</el-tab-pane> <div>
<el-tab-pane label="④ 应用发布" :name="4"> <el-tabs
</el-tab-pane> v-model="tabsActive"
</el-tabs> @tab-click="handleClick"
</div> :stretch="true"
<div> class="tabsMain"
<el-button plain size="small" @click="accessRunApp">访问</el-button> >
<el-button type="danger" size="small" @click="closeAppDraw">关闭</el-button> <el-tab-pane label="① 页面管理" :name="1"> </el-tab-pane>
</div> <el-tab-pane label="② 集成&自动化" :name="2"> </el-tab-pane>
</el-header> <el-tab-pane label="③ 应用设置" :name="3"> </el-tab-pane>
<el-container v-show="tabsActive==1"> <el-tab-pane label="④ 应用发布" :name="4"> </el-tab-pane>
<el-aside class="asideBox"> </el-tabs>
<el-row> </div>
<el-col :span="24" class="asideBoxSearch"> <div>
<el-input <el-button plain size="small" @click="accessRunApp">访问</el-button>
v-model="input2" <el-button type="danger" size="small" @click="closeAppDraw">关闭</el-button>
style="width: 180px" </div>
placeholder="搜索" </el-header>
:suffix-icon="Search" <el-container v-show="tabsActive == 1">
/> <el-aside class="asideBox">
<el-dropdown> <el-row>
<el-button type="primary" class="fa fa-plus" /> <el-col :span="24" class="asideBoxSearch">
<template #dropdown> <el-input
<el-dropdown-menu> v-model="input2"
style="width: 180px"
<el-dropdown-item @click="addAppPageForm"> placeholder="搜索"
<el-row> :suffix-icon="Search"
<el-col :span="24"> />
<el-space wrap> <el-dropdown>
<svg-icon style="color: #eebe77;" prefix="icon" icon-class="liuChengBiaoDan" /> <el-button type="primary" class="fa fa-plus" />
新建页面 <template #dropdown>
</el-space> <el-dropdown-menu>
</el-col> <el-dropdown-item @click="addAppPageForm">
<el-col :span="24" style="padding-left:20px; font-size:12px;"> <el-row>
数据收集事件记录<br>任务协同业务审批 <el-col :span="24">
</el-col> <el-space wrap>
</el-row> <svg-icon
</el-dropdown-item> style="color: #eebe77"
<el-dropdown-item divided @click="addMenu"> prefix="icon"
<el-row> icon-class="liuChengBiaoDan"
<el-col :span="24"> />
<el-space wrap> 新建页面
<svg-icon style="color: #337ecc;" prefix="icon" icon-class="fenZhu" /> </el-space>
新建分组 </el-col>
</el-space> <el-col
</el-col> :span="24"
<el-col :span="24" style="padding-left:20px; font-size:12px;"> style="padding-left: 20px; font-size: 12px"
应用项目管理 >
</el-col> 数据收集事件记录<br />任务协同业务审批
</el-row> </el-col>
</el-dropdown-item> </el-row>
</el-dropdown-menu> </el-dropdown-item>
</template> <el-dropdown-item divided @click="addMenu">
</el-dropdown> <el-row>
</el-col> <el-col :span="24">
</el-row> <el-space wrap>
<el-scrollbar class="scroBox"> <svg-icon
style="color: #337ecc"
<AppMenus :form-Key="props.formKey" v-model:menus-tree="menusTree" v-model:app-page-key="appPageKey" :group-key="props.groupKey" :app-cont="appCont" :drawer-with="props.drawerWith" @openAppPageForm="openAppPageForm" /> prefix="icon"
icon-class="fenZhu"
<CreateAppFormPage v-if="saveAppFormIsShow" v-model:is-show="saveAppFormIsShow" :is-new="isNew" :drawer-with="props.drawerWith" :form-Key="props.formKey" :app-cont="appCont" :group-key="props.groupKey" :menu-id="props.formKey" v-model:app-page-key="appPageKey" @gainSunAppContent="gainAppContent" @updateInit="updataPageInit" /> />
新建分组
</el-scrollbar> </el-space>
</el-aside> </el-col>
<el-main class="mainBox"> <el-col
<el-scrollbar class="scroBox"> :span="24"
<OpenAppFormPage ref="openAppPageInit" :form-Key="props.formKey" :group-key="props.groupKey" :app-cont="appCont" :drawer-with="props.drawerWith" :menus-info="checkedMenu" @editAppInfo="editAppInfo" /> style="padding-left: 20px; font-size: 12px"
>
应用项目管理
</el-col>
</el-row>
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</el-col>
</el-row>
<el-scrollbar class="scroBox">
<AppMenus
:form-Key="props.formKey"
v-model:menus-tree="menusTree"
v-model:app-page-key="appPageKey"
:group-key="props.groupKey"
:app-cont="appCont"
:drawer-with="props.drawerWith"
@openAppPageForm="openAppPageForm"
/>
</el-scrollbar> <CreateAppFormPage
</el-main> v-if="saveAppFormIsShow"
</el-container> v-model:is-show="saveAppFormIsShow"
:is-new="isNew"
:drawer-with="props.drawerWith"
:form-Key="props.formKey"
:app-cont="appCont"
:group-key="props.groupKey"
:menu-id="props.formKey"
v-model:app-page-key="appPageKey"
@gainSunAppContent="gainAppContent"
@updateInit="updataPageInit"
/>
</el-scrollbar>
</el-aside>
<el-main class="mainBox">
<el-scrollbar class="scroBox">
<OpenAppFormPage
ref="openAppPageInit"
:form-Key="props.formKey"
:group-key="props.groupKey"
:app-cont="appCont"
:drawer-with="props.drawerWith"
:menus-info="checkedMenu"
@editAppInfo="editAppInfo"
/>
</el-scrollbar>
</el-main>
</el-container>
<el-container v-if="tabsActive == 2"> 集成与自动化 </el-container>
<el-container v-if="tabsActive == 3">
<AppSetUp :app-cont="appCont" :group-key="props.groupKey" />
<el-container v-if="tabsActive==2"> </el-container>
集成与自动化 <el-container v-if="tabsActive == 4">
</el-container> <ReleaseApp :app-cont="appCont" :group-key="props.groupKey" />
<el-container v-if="tabsActive==3"> </el-container>
<AppSetUp :app-cont="appCont" :group-key="props.groupKey" /> </el-container>
</el-container> </div>
<el-container v-if="tabsActive==4"> <AppMenuGroup
<ReleaseApp :app-cont="appCont" :group-key="props.groupKey" /> v-model:is-show="menuGroupShow"
</el-container> :menu-parent-key="menuParentKey"
</el-container> :app-cont="appCont"
</div> @updateMenu="gainAppContent"
<AppMenuGroup v-model:is-show="menuGroupShow" :menu-parent-key="menuParentKey" :app-cont="appCont" @updateMenu="gainAppContent" /> />
</el-drawer > </el-drawer>
</div> </div>
</template> </template>
<style lang='scss' scoped> <style lang="scss" scoped>
.common-layout{ .common-layout {
.el-header{ .el-header {
padding-left:10px; padding-left: 10px;
padding-right:10px; padding-right: 10px;
} }
.headerBox{ .headerBox {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid #F1F2F3; border-bottom: 1px solid #f1f2f3;
:deep(.el-tabs__nav-wrap::after) { :deep(.el-tabs__nav-wrap::after) {
position: static !important; position: static !important;
} }
:deep(.el-tabs__header){ :deep(.el-tabs__header) {
margin:0 0 1px 0; margin: 0 0 1px 0;
} }
} }
.asideBox{ .asideBox {
width:250px; width: 250px;
border-right: 1px solid #F1F2F3; border-right: 1px solid #f1f2f3;
height: calc(100vh - 40px); height: calc(100vh - 40px);
.asideBoxSearch{ .asideBoxSearch {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
padding: 10px 10px; padding: 10px 10px;
}
} .scroBox {
.scroBox{ height: calc(100vh - 95px);
height: calc(100vh - 95px); .el-menu {
.el-menu{ border-right: 0px;
border-right: 0px; }
} li {
li{ padding-left: 10px;
padding-left:10px; padding-right: 10px;
padding-right:10px; }
} .menuBox {
.menuBox{ display: flex;
display: flex; align-items: center;
align-items: center; justify-content: space-between;
justify-content: space-between; .textCenter {
.textCenter{ display: flex;
display: flex; align-items: center;
align-items: center; }
} }
} .el-menu-item {
.el-menu-item{ height: 40px;
height:40px; }
} .el-menu-item.is-active {
.el-menu-item.is-active { color: var(--el-menu-active-color);
color: var(--el-menu-active-color); background-color: #e4e4e4e4;
background-color: #e4e4e4e4; }
} .el-menu-item:hover {
.el-menu-item:hover{ background-color: #f1f1f1f1 !important;
background-color: #f1f1f1f1!important; }
} }
} }
} .el-main {
.el-main { padding: 10px;
padding: 10px; }
} .mainBox {
.mainBox{ background-color: #f1f2f3;
background-color: #F1F2F3; padding: 0px;
padding:0px; .scroBox {
.scroBox{ height: calc(100vh - 40px);
height: calc(100vh - 40px); }
} }
}
} }
</style> </style>

Loading…
Cancel
Save