|
|
@ -4,26 +4,533 @@ |
|
|
@ 备注: 自定义App基础设置及权限设置 |
|
|
@ 备注: 自定义App基础设置及权限设置 |
|
|
--> |
|
|
--> |
|
|
<script lang='ts' setup> |
|
|
<script lang='ts' setup> |
|
|
|
|
|
import { uploadUrlNew } from "@/api/DesignForm"; |
|
|
|
|
|
import { customerFormGroupList, setAppInfoPower } from "@/api/DesignForm/requestapi"; |
|
|
|
|
|
import { appSetUpContent } from "@/api/DesignForm/types"; |
|
|
|
|
|
import SvgIcon from "@/components/SvgIcon/index.vue"; |
|
|
|
|
|
import LookSee from '@/views/sysworkflow/lowcodepage/appPage/appSetUp/looksee.vue' |
|
|
|
|
|
import AppManager from '@/views/sysworkflow/lowcodepage/appPage/appSetUp/appManager.vue' |
|
|
|
|
|
|
|
|
|
|
|
import PersonnelSelector from '@/views/hr/userBox.vue' |
|
|
|
|
|
import { ComponentSize, FormInstance, FormRules, UploadProps } from "element-plus"; |
|
|
|
|
|
import { userOrgRole } from "@/api/hr/search/types"; |
|
|
|
|
|
import { gainLookViews, setAppManagerInfo, setLookViews } from "@/api/hr/people"; |
|
|
|
|
|
import Setuprolepower from "@/views/powermanage/rolepower/setuprole/setuprolepower.vue"; |
|
|
|
|
|
import { useUserStore } from "@/store/modules/user"; |
|
|
|
|
|
const props = defineProps({ |
|
|
|
|
|
appCont: { |
|
|
|
|
|
type: Object, |
|
|
|
|
|
default() { |
|
|
|
|
|
return {}; |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
|
|
|
groupKey: { |
|
|
|
|
|
type: String, |
|
|
|
|
|
default: "", |
|
|
|
|
|
}, |
|
|
|
|
|
}); |
|
|
|
|
|
const userStore = useUserStore(); |
|
|
|
|
|
const appContVal = computed(() => props.appCont) |
|
|
const pickStep = ref(1); |
|
|
const pickStep = ref(1); |
|
|
|
|
|
const ruleFormRef = ref(ElForm); |
|
|
|
|
|
const appLoading = ref(false); |
|
|
|
|
|
const isOpenBox = ref(false); |
|
|
|
|
|
const appIsOpenBox = ref(false); |
|
|
|
|
|
const formSize = ref<ComponentSize>("default"); |
|
|
|
|
|
const rules = reactive<FormRules<appSetUpContent>>({ |
|
|
|
|
|
groupKey: [{ required: true, message: "请选择分组", trigger: "blur" }], |
|
|
|
|
|
title: [{ required: true, message: "请输入App名称", trigger: "blur" }], |
|
|
|
|
|
}); |
|
|
|
|
|
const appSetupCont = reactive<appSetUpContent>({ |
|
|
|
|
|
id: appContVal.value.uuid, |
|
|
|
|
|
title: appContVal.value.appName, |
|
|
|
|
|
appSvg: appContVal.value.appSvg, |
|
|
|
|
|
groupKey: props.groupKey, |
|
|
|
|
|
appdescribe: appContVal.value.describe, |
|
|
|
|
|
}); |
|
|
|
|
|
const formGroup = ref<any[]>([]); //App分组 |
|
|
|
|
|
|
|
|
|
|
|
const lookSeeView = ref<userOrgRole[]>([]) |
|
|
|
|
|
const appMang = ref<userOrgRole[]>([]) |
|
|
|
|
|
//获取App分组列表 |
|
|
|
|
|
const gainFormGroupList = () => { |
|
|
|
|
|
let sendInfo = { |
|
|
|
|
|
page: 1, |
|
|
|
|
|
pagesize: 10000, |
|
|
|
|
|
state: 1, |
|
|
|
|
|
}; |
|
|
|
|
|
customerFormGroupList(sendInfo).then((data) => { |
|
|
|
|
|
formGroup.value = data.data.list; |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2024-05-23 09:20:29 |
|
|
|
|
|
@ 功能: 上传成功后回调 |
|
|
|
|
|
*/ |
|
|
|
|
|
const handleAvatarSuccess: UploadProps["onSuccess"] = (response, uploadFile) => { |
|
|
|
|
|
// imageUrl.value = URL.createObjectURL(uploadFile.raw!) |
|
|
|
|
|
appSetupCont.appSvg = response.data.url; |
|
|
|
|
|
// appSetupUpImg.clearFiles() |
|
|
|
|
|
}; |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2024-05-10 11:28:40 |
|
|
|
|
|
@ 功能: 上传前验证 |
|
|
|
|
|
*/ |
|
|
|
|
|
const beforeAvatarUpload: UploadProps["beforeUpload"] = (rawFile) => { |
|
|
|
|
|
if ( |
|
|
|
|
|
rawFile.type !== "image/jpeg" && |
|
|
|
|
|
rawFile.type !== "image/jpg" && |
|
|
|
|
|
rawFile.type !== "image/png" && |
|
|
|
|
|
rawFile.type !== "image/gif" && |
|
|
|
|
|
rawFile.type !== "image/icon" |
|
|
|
|
|
) { |
|
|
|
|
|
ElMessage.error("请上传以下格式的图片(jpg、jpeg、png、gif、icon)!" + rawFile.type); |
|
|
|
|
|
return false; |
|
|
|
|
|
} else if (rawFile.size / 1024 / 1024 > 800) { |
|
|
|
|
|
ElMessage.error("图片大小不要大于 800MB!"); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
return true; |
|
|
|
|
|
}; |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2026-03-25 14:36:55 |
|
|
|
|
|
@ 功能: 下一步 |
|
|
|
|
|
*/ |
|
|
|
|
|
const nextPickStep = () => { |
|
|
|
|
|
appLoading.value = true; |
|
|
|
|
|
ruleFormRef.value.validate((isValid: boolean) => { |
|
|
|
|
|
if (isValid) { |
|
|
|
|
|
pickStep.value = 2; |
|
|
|
|
|
appLoading.value = false; |
|
|
|
|
|
} else { |
|
|
|
|
|
appLoading.value = false; |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2024-05-22 16:10:27 |
|
|
|
|
|
@ 功能: 重置表单 |
|
|
|
|
|
*/ |
|
|
|
|
|
const resetForm = () => { |
|
|
|
|
|
ruleFormRef.value.resetFields(); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2024-05-29 08:15:45 |
|
|
|
|
|
@ 功能: 获取已选择的内容 |
|
|
|
|
|
*/ |
|
|
|
|
|
const oldPickList = () =>{ |
|
|
|
|
|
gainLookViews({id:appContVal.value.uuid}) |
|
|
|
|
|
.then((data:any)=>{ |
|
|
|
|
|
console.log("data--获取已选择的内容-->",data) |
|
|
|
|
|
lookSeeView.value = data.data.appLookView |
|
|
|
|
|
appMang.value = data.data.appManager |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2024-05-27 16:42:51 |
|
|
|
|
|
@ 功能: 要删除的数据 |
|
|
|
|
|
*/ |
|
|
|
|
|
const delData = (val:userOrgRole,type:number) => { |
|
|
|
|
|
if(type == 1){ |
|
|
|
|
|
if(lookSeeView.value.length > 0){ |
|
|
|
|
|
lookSeeView.value.forEach((item:userOrgRole,index:number)=>{ |
|
|
|
|
|
if(item.id == val.id){ |
|
|
|
|
|
// console.log("isOpenBox----->item:",item) |
|
|
|
|
|
// console.log("isOpenBox----->index:",index) |
|
|
|
|
|
lookSeeView.value.splice(index,1) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
let sendInfo = { |
|
|
|
|
|
id:props.appCont.uuid, |
|
|
|
|
|
orgRoleUs:lookSeeView.value |
|
|
|
|
|
} |
|
|
|
|
|
// setLookViews(sendInfo) |
|
|
|
|
|
// .then((data:any) =>{ |
|
|
|
|
|
// // console.log("sendInfo---->",data) |
|
|
|
|
|
// ElMessage({ |
|
|
|
|
|
// showClose: true, |
|
|
|
|
|
// message: data.msg, |
|
|
|
|
|
// type: 'success', |
|
|
|
|
|
// }) |
|
|
|
|
|
// }) |
|
|
|
|
|
} |
|
|
|
|
|
}else{ |
|
|
|
|
|
if(appMang.value.length > 0){ |
|
|
|
|
|
appMang.value.forEach((item:userOrgRole,index:number)=>{ |
|
|
|
|
|
if(item.id == val.id){ |
|
|
|
|
|
// console.log("isOpenBox----->item:",item) |
|
|
|
|
|
// console.log("isOpenBox----->index:",index) |
|
|
|
|
|
appMang.value.splice(index,1) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
// let sendInfo = { |
|
|
|
|
|
// id:props.appCont.uuid, |
|
|
|
|
|
// orgRoleUs:appMang.value |
|
|
|
|
|
// } |
|
|
|
|
|
// setAppManagerInfo(sendInfo) |
|
|
|
|
|
// .then((data:any) =>{ |
|
|
|
|
|
// // console.log("sendInfo---->",data) |
|
|
|
|
|
// ElMessage({ |
|
|
|
|
|
// showClose: true, |
|
|
|
|
|
// message: data.msg, |
|
|
|
|
|
// type: 'success', |
|
|
|
|
|
// }) |
|
|
|
|
|
// }) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
userStore.getInfo().then((data:any) => { |
|
|
|
|
|
console.log("data---->",data) |
|
|
|
|
|
}) |
|
|
|
|
|
// console.log("isOpenBox----->appMang:",appMang) |
|
|
|
|
|
} |
|
|
|
|
|
// watch(()=>pickStep.value,() => { |
|
|
|
|
|
// oldPickList() |
|
|
|
|
|
// },{ |
|
|
|
|
|
// immediate: true |
|
|
|
|
|
// }) |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2026-03-25 14:53:29 |
|
|
|
|
|
@ 功能: 提交数据 |
|
|
|
|
|
*/ |
|
|
|
|
|
const submitData = () => { |
|
|
|
|
|
console.log("appInfoAndPower---->",Array.isArray(appMang.value)) |
|
|
|
|
|
appLoading.value = true; |
|
|
|
|
|
if(!appSetupCont.groupKey || appSetupCont.groupKey == "" || appSetupCont.groupKey == "0" || appSetupCont.groupKey == null){ |
|
|
|
|
|
ElMessage.error("请选择分组!"); |
|
|
|
|
|
appLoading.value = false; |
|
|
|
|
|
pickStep.value = 1; |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
if(!appSetupCont.title || appSetupCont.title == "" || appSetupCont.title == "0" || appSetupCont.title == null){`` |
|
|
|
|
|
ElMessage.error("请输入App名称!"); |
|
|
|
|
|
appLoading.value = false; |
|
|
|
|
|
pickStep.value = 1; |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
if(!lookSeeView.value || !Array.isArray(lookSeeView.value) ){ |
|
|
|
|
|
ElMessage.error("请选择App查看权限!"); |
|
|
|
|
|
appLoading.value = false; |
|
|
|
|
|
pickStep.value = 2; |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
if(!appMang.value || !Array.isArray(appMang.value) ){ |
|
|
|
|
|
ElMessage.error("请选择App管理员!"); |
|
|
|
|
|
appLoading.value = false; |
|
|
|
|
|
pickStep.value = 2; |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
console.log("appInfoAndPower---->",Array.isArray(appMang.value)) |
|
|
|
|
|
let appContAndPower = { |
|
|
|
|
|
id:appContVal.value.uuid, |
|
|
|
|
|
appInfo:appSetupCont, |
|
|
|
|
|
seePower:lookSeeView.value, |
|
|
|
|
|
appPower:appMang.value |
|
|
|
|
|
} |
|
|
|
|
|
console.log("appInfoAndPower---->",appContAndPower) |
|
|
|
|
|
setAppInfoPower(appContAndPower) |
|
|
|
|
|
.then((data:any) =>{ |
|
|
|
|
|
console.log("data---->",data) |
|
|
|
|
|
userStore.getInfo().then((data:any) => { |
|
|
|
|
|
console.log("data---->",data) |
|
|
|
|
|
}) |
|
|
|
|
|
ElMessage({ |
|
|
|
|
|
showClose: true, |
|
|
|
|
|
message: data.msg, |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
.catch((error:any) =>{ |
|
|
|
|
|
console.log("error---->",error) |
|
|
|
|
|
ElMessage({ |
|
|
|
|
|
showClose: true, |
|
|
|
|
|
message: error.msg, |
|
|
|
|
|
type: 'error', |
|
|
|
|
|
}) |
|
|
|
|
|
}) |
|
|
|
|
|
.finally(() => { |
|
|
|
|
|
appLoading.value = false; |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2026-03-25 15:32:53 |
|
|
|
|
|
@ 功能: 打开设置可见范围成员选择 |
|
|
|
|
|
*/ |
|
|
|
|
|
const setupLookUser = () => { |
|
|
|
|
|
isOpenBox.value = true; |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2026-03-25 15:32:10 |
|
|
|
|
|
@ 功能: 设置可见范围 |
|
|
|
|
|
*/ |
|
|
|
|
|
const pickInfoSee = (val:any) => { |
|
|
|
|
|
isOpenBox.value = false; |
|
|
|
|
|
lookSeeView.value = val.value |
|
|
|
|
|
let sendInfo = { |
|
|
|
|
|
id:appContVal.value.uuid, |
|
|
|
|
|
orgRoleUs:val.value |
|
|
|
|
|
} |
|
|
|
|
|
setLookViews(sendInfo) |
|
|
|
|
|
.then((data:any) =>{ |
|
|
|
|
|
ElMessage({ |
|
|
|
|
|
showClose: true, |
|
|
|
|
|
message: data.msg, |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
}) |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2026-03-25 15:41:04 |
|
|
|
|
|
@ 功能: 打开设置App管理员成员选择 |
|
|
|
|
|
*/ |
|
|
|
|
|
const setupAppUser = () => { |
|
|
|
|
|
appIsOpenBox.value = true; |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
|
|
|
@ 作者: 秦东 |
|
|
|
|
|
@ 时间: 2026-03-25 15:40:24 |
|
|
|
|
|
@ 功能: 设置App管理员 |
|
|
|
|
|
*/ |
|
|
|
|
|
const pickInfoApp = (val:any) => { |
|
|
|
|
|
appIsOpenBox.value = false; |
|
|
|
|
|
appMang.value = val.value |
|
|
|
|
|
let sendInfo = { |
|
|
|
|
|
id:appContVal.value.uuid, |
|
|
|
|
|
orgRoleUs:val.value |
|
|
|
|
|
} |
|
|
|
|
|
setAppManagerInfo(sendInfo) |
|
|
|
|
|
.then((data:any) =>{ |
|
|
|
|
|
ElMessage({ |
|
|
|
|
|
showClose: true, |
|
|
|
|
|
message: data.msg, |
|
|
|
|
|
type: 'success', |
|
|
|
|
|
}) |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
onMounted(() => { |
|
|
|
|
|
gainFormGroupList(); |
|
|
|
|
|
oldPickList(); |
|
|
|
|
|
}); |
|
|
</script> |
|
|
</script> |
|
|
<template> |
|
|
<template> |
|
|
<div class="app-content"> |
|
|
<el-card shadow="always"> |
|
|
<el-steps style="max-width: 600px" :active="1"> |
|
|
<el-steps class="strp-box" :active="pickStep" align-center> |
|
|
<el-step title="Step 1" > |
|
|
<el-step > |
|
|
<template #icon> |
|
|
<template #icon> |
|
|
<i class="fa fa-cog"></i> |
|
|
<SvgIcon icon-class="ziJianApp" size="50" /> |
|
|
|
|
|
</template> |
|
|
|
|
|
<template #title> |
|
|
|
|
|
App基础设置 |
|
|
</template> |
|
|
</template> |
|
|
</el-step> |
|
|
</el-step> |
|
|
<el-step title="Step 2" > |
|
|
<el-step > |
|
|
<template #icon> |
|
|
<template #icon> |
|
|
<i class="fa fa-search"></i> |
|
|
<SvgIcon icon-class="hzhbmygl" size="50" /> |
|
|
|
|
|
</template> |
|
|
|
|
|
<template #title> |
|
|
|
|
|
应用相关权限配置 |
|
|
</template> |
|
|
</template> |
|
|
</el-step> |
|
|
</el-step> |
|
|
|
|
|
|
|
|
</el-steps> |
|
|
</el-steps> |
|
|
|
|
|
<div class="step-content"> |
|
|
|
|
|
<el-form |
|
|
|
|
|
v-if="pickStep==1" |
|
|
|
|
|
ref="ruleFormRef" |
|
|
|
|
|
v-loading="appLoading" |
|
|
|
|
|
:model="appSetupCont" |
|
|
|
|
|
:rules="rules" |
|
|
|
|
|
label-width="auto" |
|
|
|
|
|
class="demo-ruleForm" |
|
|
|
|
|
:size="formSize" |
|
|
|
|
|
status-icon |
|
|
|
|
|
> |
|
|
|
|
|
<el-form-item label="归属分组" prop="groupKey"> |
|
|
|
|
|
<el-select v-model="appSetupCont.groupKey" placeholder="请选择分组"> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in formGroup" |
|
|
|
|
|
:key="item.idStr" |
|
|
|
|
|
:label="item.title" |
|
|
|
|
|
:value="item.idStr" |
|
|
|
|
|
/> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="App名称" prop="title"> |
|
|
|
|
|
<el-input |
|
|
|
|
|
v-model="appSetupCont.title" |
|
|
|
|
|
placeholder="请输入App名称" |
|
|
|
|
|
clearable |
|
|
|
|
|
style="width: 300px" |
|
|
|
|
|
/> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="App图标" prop="icont"> |
|
|
|
|
|
<el-upload |
|
|
|
|
|
ref="appSetupUpImg" |
|
|
|
|
|
class="upload-demo" |
|
|
|
|
|
:drag="true" |
|
|
|
|
|
:action="uploadUrlNew" |
|
|
|
|
|
:show-file-list="false" |
|
|
|
|
|
:on-success="handleAvatarSuccess" |
|
|
|
|
|
:before-upload="beforeAvatarUpload" |
|
|
|
|
|
> |
|
|
|
|
|
<el-image |
|
|
|
|
|
v-if="appSetupCont.appSvg && appSetupCont.appSvg != ''" |
|
|
|
|
|
:src="appSetupCont.appSvg" |
|
|
|
|
|
fit="cover" |
|
|
|
|
|
class="avatar" |
|
|
|
|
|
/> |
|
|
|
|
|
<div v-else> |
|
|
|
|
|
<el-icon class="el-icon--upload"><upload-filled /></el-icon> |
|
|
|
|
|
<div class="el-upload__text">将文件拖到此处或 <em>单击上传</em></div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-upload> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="应用描述"> |
|
|
|
|
|
<el-input |
|
|
|
|
|
v-model="appSetupCont.appdescribe" |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
show-word-limit |
|
|
|
|
|
maxlength="300" |
|
|
|
|
|
:rows="6" |
|
|
|
|
|
style="width: 60%" |
|
|
|
|
|
/> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
|
|
|
<div v-else> |
|
|
|
|
|
<el-row> |
|
|
|
|
|
<el-col :span="24" class="appTitle">应用适用范围设置</el-col> |
|
|
|
|
|
<el-col :span="24" class="appContent">为该应用配置可见范围。只有被允许行政组织、角色、具体人员才可使用本应用的相关功能。</el-col> |
|
|
|
|
|
<el-col :span="24" class="appManList"> |
|
|
|
|
|
<table> |
|
|
|
|
|
<tr> |
|
|
|
|
|
<td width="80px"> |
|
|
|
|
|
<el-text >可见范围</el-text> |
|
|
|
|
|
</td> |
|
|
|
|
|
<td width="80px"> |
|
|
|
|
|
<el-button link type="primary" size="large" @click="setupLookUser()">设置成员</el-button> |
|
|
|
|
|
<PersonnelSelector v-model:is-open="isOpenBox" :pick-list="lookSeeView" :types="2" :org-true="1" @pick-info="pickInfoSee" /> |
|
|
|
|
|
</td> |
|
|
|
|
|
<td> |
|
|
|
|
|
<el-space wrap :size="15"> |
|
|
|
|
|
<el-tag |
|
|
|
|
|
v-for="(item,index) in lookSeeView" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
closable |
|
|
|
|
|
type="info" |
|
|
|
|
|
:disable-transitions="true" |
|
|
|
|
|
@close="delData(item,1)"> |
|
|
|
|
|
{{item.title}} |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
|
|
|
|
|
|
</el-space> |
|
|
|
|
|
</td> |
|
|
|
|
|
</tr> |
|
|
|
|
|
</table> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-divider /> |
|
|
|
|
|
<el-row> |
|
|
|
|
|
<el-col :span="24" class="appTitle">应用主管理员</el-col> |
|
|
|
|
|
<el-col :span="24" class="appContent">应用主管理员拥有应用管理后台的全部权限,可进行应用搭建、编辑、设置以及数据管理。</el-col> |
|
|
|
|
|
<el-col :span="24" class="appManList"> |
|
|
|
|
|
<table> |
|
|
|
|
|
<tr> |
|
|
|
|
|
<td width="80px"> |
|
|
|
|
|
<el-text >权限成员</el-text> |
|
|
|
|
|
</td> |
|
|
|
|
|
<td width="80px"> |
|
|
|
|
|
<el-button link type="primary" size="large" @click="setupAppUser()">设置成员</el-button> |
|
|
|
|
|
<PersonnelSelector v-model:is-open="appIsOpenBox" :pick-list="appMang" :types="2" :org-true="1" @pick-info="pickInfoApp" /> |
|
|
|
|
|
|
|
|
|
|
|
</td> |
|
|
|
|
|
<td> |
|
|
|
|
|
<el-space wrap :size="15"> |
|
|
|
|
|
|
|
|
|
|
|
<el-tag |
|
|
|
|
|
v-for="(item,index) in appMang" |
|
|
|
|
|
:key="index" |
|
|
|
|
|
closable |
|
|
|
|
|
type="info" |
|
|
|
|
|
:disable-transitions="true" |
|
|
|
|
|
@close="delData(item,2)"> |
|
|
|
|
|
{{item.title}} |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
|
|
|
|
|
|
</el-space> |
|
|
|
|
|
</td> |
|
|
|
|
|
</tr> |
|
|
|
|
|
</table> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="step-footer"> |
|
|
|
|
|
<!-- <el-button v-if="pickStep==1" type="primary" @click="resetForm">重置</el-button> --> |
|
|
|
|
|
<el-button v-if="pickStep==1" type="primary" :loading="appLoading" @click="nextPickStep" >下一步</el-button> |
|
|
|
|
|
<el-button v-if="pickStep==2" type="primary" :loading="appLoading" @click="pickStep = 1">上一步</el-button> |
|
|
|
|
|
<el-button v-if="pickStep==2" type="success" :loading="appLoading" @click="submitData">保存设置</el-button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
</el-card> |
|
|
</template> |
|
|
</template> |
|
|
<style lang='scss' scoped> |
|
|
<style lang='scss' scoped> |
|
|
.app-content { |
|
|
.boxk { |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
background: var(--el-fill-color-light); |
|
|
|
|
|
} |
|
|
|
|
|
.avatar { |
|
|
|
|
|
width: 150px; |
|
|
|
|
|
height: 150px; |
|
|
|
|
|
} |
|
|
|
|
|
.butClass { |
|
|
|
|
|
text-align: center; |
|
|
|
|
|
} |
|
|
|
|
|
.strp-box { |
|
|
|
|
|
max-width: 95%; |
|
|
|
|
|
margin-top: 30px; |
|
|
|
|
|
margin-bottom: 30px; |
|
|
|
|
|
} |
|
|
|
|
|
.step-content { |
|
|
|
|
|
|
|
|
|
|
|
width: 100%; |
|
|
|
|
|
} |
|
|
|
|
|
.step-footer { |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
justify-content: flex-end; |
|
|
|
|
|
margin-top: 30px; |
|
|
|
|
|
} |
|
|
|
|
|
.appTitle{ |
|
|
|
|
|
font-size:22px; |
|
|
|
|
|
} |
|
|
|
|
|
.appDesicer{ |
|
|
|
|
|
padding: 15px 0 0 0; |
|
|
|
|
|
color: #606266; |
|
|
|
|
|
} |
|
|
|
|
|
.boxTop{ |
|
|
|
|
|
margin: 15px 0 0 0; |
|
|
|
|
|
} |
|
|
|
|
|
.appContent{ |
|
|
|
|
|
padding: 10px 0 15px 0; |
|
|
|
|
|
color: #606266; |
|
|
|
|
|
border-bottom: 1px solid #F0F2F5; |
|
|
|
|
|
} |
|
|
|
|
|
.appManList{ |
|
|
|
|
|
padding: 30px 0 10px 0; |
|
|
|
|
|
} |
|
|
|
|
|
.powerBox{ |
|
|
|
|
|
height: calc(100vh - 70px); |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |