Browse Source

赋权编辑完成

qin_26
herenshan112 3 weeks ago
parent
commit
cae783aeb8
  1. 3
      src/api/DesignForm/type.ts
  2. 10
      src/api/workflowapi/index.ts
  3. 14
      src/api/workflowapi/types.ts
  4. 1276
      src/components/workflow/drwer/approverDrawer copy.vue
  5. 331
      src/components/workflow/drwer/approverDrawer.vue
  6. 377
      src/components/workflow/drwer/promoterDrawer.vue

3
src/api/DesignForm/type.ts

@ -207,7 +207,8 @@ export interface formTableField{
export interface tableButtonEs { export interface tableButtonEs {
id?: string; id?: string;
name?: string; name?: string;
field?: string; field?: any;
label?: string;
types?: string; types?: string;
attribute:string; attribute:string;
pattern?: string; pattern?: string;

10
src/api/workflowapi/index.ts

@ -1,5 +1,6 @@
import request from '@/utils/request'; import request from '@/utils/request';
import { AxiosPromise } from 'axios'; import { AxiosPromise } from 'axios';
import { powerNoke } from './types';
import { import {
formTableName, formTableName,
@ -128,3 +129,12 @@ export function setFlowFormKeyPower(data: any) {
data: data data: data
}); });
} }
//获取所有组件状态
export function analyFormJsonMap(data: any): AxiosPromise<powerNoke> {
return request({
url: '/systemapi/task_flow/analyFormJsonMap',
method: 'post',
data: data
});
}

14
src/api/workflowapi/types.ts

@ -24,3 +24,17 @@ export interface optionsInfo{
label:string; label:string;
value:string; value:string;
} }
export interface powerNoke{
nodeKey:string;
recUnitAry?:powerNokeInfo[]
}
export interface powerNokeInfo{
id: string;
name: string;
status: number;
isLook: boolean;
isEdit: boolean;
sort?: number;
list?:powerNoke[];
}

1276
src/components/workflow/drwer/approverDrawer copy.vue

File diff suppressed because it is too large

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

@ -8,15 +8,22 @@ import { toRaw } from "vue";
import $func from "@/utils/workflow/index"; import $func from "@/utils/workflow/index";
import { setTypes, selectModes, selectRanges } from "@/utils/workflow/const"; import { setTypes, selectModes, selectRanges } from "@/utils/workflow/const";
import { useStore } from "@/store/workflow/index"; import { useStore } from "@/store/workflow/index";
import type { powerNoke,powerNokeInfo } from '@/api/workflowapi/types'
import { import {
getAllParentNode, getAllParentNode,
judgeOptionalNode, judgeOptionalNode,
analysisForm, analysisForm,
setFlowFormKeyPower, setFlowFormKeyPower,
analyFormJsonMap
} from "@/api/workflowapi/index"; } from "@/api/workflowapi/index";
import { govthree } from "@/api/opk/opk/api"; import { govthree } from "@/api/opk/opk/api";
import PositionDialog from "@/components/workflow/dialog/positionDialog.vue"; import PositionDialog from "@/components/workflow/dialog/positionDialog.vue";
import FormWord from "@/components/workflow/dialog/formWord.vue"; import FormWord from "@/components/workflow/dialog/formWord.vue";
import MatrixPage from "@/components/workflow/dialog/matrix.vue"; import MatrixPage from "@/components/workflow/dialog/matrix.vue";
@ -25,6 +32,7 @@ import MatrixPageIng from "@/components/workflow/dialog/matrixIng.vue";
import { formTableField } from "@/api/DesignForm/type"; import { formTableField } from "@/api/DesignForm/type";
import { gainFormTableField } from "@/api/DesignForm/requestapi"; import { gainFormTableField } from "@/api/DesignForm/requestapi";
import { matrixInfo } from "@/api/matrixapi/type"; import { matrixInfo } from "@/api/matrixapi/type";
import { formStruct } from "@/api/DesignForm/types";
let props = defineProps({ let props = defineProps({
nodeConfig: { nodeConfig: {
@ -65,7 +73,9 @@ const orgProps = {
label: "name", label: "name",
children: "child", children: "child",
}; };
//
const powerNewUnitAry = ref<powerNoke>();
const activePickUnitGroupName = ref("")
const isLookAll = ref(false); const isLookAll = ref(false);
const isEditAll = ref(false); const isEditAll = ref(false);
@ -235,7 +245,7 @@ const saveApprover = () => {
flag: true, flag: true,
id: approverConfig1.value.id, id: approverConfig1.value.id,
}); });
let powerAry = []; let powerAry: any[] = [];
if ( if (
powerUnitAry.value.recUnitAry.masterUnitList && powerUnitAry.value.recUnitAry.masterUnitList &&
powerUnitAry.value.recUnitAry.masterUnitList.length > 0 powerUnitAry.value.recUnitAry.masterUnitList.length > 0
@ -303,6 +313,87 @@ const saveApprover = () => {
setFlowFormKeyPower(sendInfo); setFlowFormKeyPower(sendInfo);
closeDrawer(); closeDrawer();
}; };
//
const saveNewApprover = () => {
// console.log("--props-->", props);
setApproverConfig({
value: approverConfig.value,
flag: true,
id: approverConfig1.value.id,
});
let untiPwoerAry: { id: string; name: string; status: number; isLook: boolean; isEdit: boolean; }[] = []
//
if(powerNewUnitAry.value?.recUnitAry && Array.isArray(powerNewUnitAry.value?.recUnitAry) && powerNewUnitAry.value?.recUnitAry.length > 0){
powerNewUnitAry.value?.recUnitAry.forEach((item: any) => {
untiPwoerAry.push({
id: item.id,
name: item.name,
status: item.status,
isLook: item.isLook,
isEdit: item.isEdit
});
if(item.list && Array.isArray(item.list) && item.list.length > 0){
item.list.forEach((listItem: any) => {
untiPwoerAry.push({
id: listItem.id,
name: listItem.name,
status: listItem.status,
isLook: listItem.isLook,
isEdit: listItem.isEdit
});
})
}
});
}
// console.log("---->", untiPwoerAry);
// console.log("", formData.value.purview);
if(formData.value.purview && Array.isArray(formData.value.purview) && formData.value.purview.length > 0){
let isNew = true;
formData.value.purview.forEach((item: any) => {
if (item.nodeKey == approverConfig1.value.value.nodeNumber) { //
// console.log("---1->",item.nodeKey,item.nodeKey == approverConfig1.value.value.nodeNumber, untiPwoerAry);
item.powerAry = untiPwoerAry;
isNew = false;
}
})
if (isNew) { //
// console.log("--2-->",approverConfig1.value.value.nodeNumber, untiPwoerAry);
formData.value.purview.push({
nodeKey: approverConfig1.value.value.nodeNumber,
powerAry: untiPwoerAry,
});
}
}else{ //
// console.log("--3-->",approverConfig1.value.value.nodeNumber, untiPwoerAry);
formData.value.purview = [
{
nodeKey: approverConfig1.value.value.nodeNumber,
powerAry: untiPwoerAry,
},
];
}
// console.log("formData.value.purview", formData.value.purview);
let sendInfo: any = {
formKey: props.customerFormKey.toString(),
formVersion: props.formVersion.toString(),
formData: JSON.stringify(formData.value),
formPower: JSON.stringify(formData.value.purview),
};
// console.log("sendInfo", sendInfo);
setFlowFormKeyPower(sendInfo);
closeDrawer();
}
const closeDrawer = () => { const closeDrawer = () => {
setApprover(false); setApprover(false);
isExecutor.value = false; isExecutor.value = false;
@ -332,7 +423,9 @@ const updateMatrix = (val: any) => {
// console.log("-222--->", approverConfig.value); // console.log("-222--->", approverConfig.value);
}; };
const formTableFielding = reactive<formTableField>({}); const formTableFielding = reactive<formTableField>({
masterTable: []
});
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-03-13 08:24:54 @ 时间: 2024-03-13 08:24:54
@ -343,7 +436,7 @@ const jieForm = () => {
analysisForm({ analysisForm({
nodeKey: approverConfig1.value.value.nodeNumber, nodeKey: approverConfig1.value.value.nodeNumber,
nodeJson: JSON.stringify(formData.value), nodeJson: JSON.stringify(formData.value),
}).then((data) => { }).then((data:any) => {
if (data.code == 0) { if (data.code == 0) {
// console.log("--->", data.data); // console.log("--->", data.data);
powerUnitAry.value = data.data; powerUnitAry.value = data.data;
@ -353,6 +446,33 @@ const jieForm = () => {
} }
}); });
//
analyFormJsonMap({
nodeKey: approverConfig1.value.value.nodeNumber,
nodeJson: JSON.stringify(formData.value),
}).then((data:any) => {
// console.log("",data)
if(data.code == 0){
powerNewUnitAry.value = data.data
// powerNewUnitAry.value?.nodeKey = data.data.nodeKey
// powerNewUnitAry.value?.recUnitAry = data.data.recUnitAry
if(data.data.recUnitAry && Array.isArray(data.data.recUnitAry) && data.data.recUnitAry.length > 0){
data.data.recUnitAry.forEach((item:powerNokeInfo,i:number)=>{
// if(item.id != "masterid"){
// return activePickUnitGroupName.value = item.id;
// }
if(i == 1){
activePickUnitGroupName.value = item.id;
}
})
}
}
// console.log("sadsadasdasd",powerNewUnitAry.value )
// powerNewUnitAry.value?.nodeKey = data
})
if (props.customerFormKey != "") { if (props.customerFormKey != "") {
gainFormTableField({ id: props.customerFormKey.toString() }).then((data) => { gainFormTableField({ id: props.customerFormKey.toString() }).then((data) => {
// console.log('--->',data) // console.log('--->',data)
@ -532,7 +652,7 @@ const handleNodeClickOrg = (data: any, threePickAry: any) => {
) { ) {
if (data.level <= 3) { if (data.level <= 3) {
threePickAry.checkedKeys = threePickAry.checkedKeys.filter( threePickAry.checkedKeys = threePickAry.checkedKeys.filter(
(item) => item !== data.id (item: any) => item !== data.id
); );
} }
approverConfig.value.orgList = threePickAry.checkedKeys; approverConfig.value.orgList = threePickAry.checkedKeys;
@ -623,6 +743,88 @@ const libraryList = ref([
value: 3, value: 3,
}, },
]); ]);
//
const editPowerLook = (val:powerNokeInfo) => {
// console.log("",val)
if(val.list && Array.isArray(val.list) && val.list.length > 0){
val.list.forEach((item:any)=>{
if(val.isLook){
item.isLook = val.isLook
}else{
val.isEdit = val.isLook
item.isLook = val.isLook
item.isEdit = val.isLook
}
})
}
}
//
const editPowerWorkLook = (master:powerNokeInfo,word:powerNokeInfo) => {
// console.log("master",master)
// console.log("word",word)
if(!word.isLook){
word.isEdit = word.isLook
}
isAllPick(master)
}
//
const editPowerSave = (val:powerNokeInfo) => {
if(val.list && Array.isArray(val.list) && val.list.length > 0){
val.list.forEach((item:any)=>{
if(val.isEdit){
val.isLook = val.isEdit
item.isEdit = val.isEdit
item.isLook = val.isEdit
}else{
val.isEdit = val.isEdit
item.isEdit = val.isEdit
}
})
}
}
//
const editPowerWorkSave = (master:powerNokeInfo,word:powerNokeInfo) => {
if(word.isEdit){
word.isLook = word.isEdit
}
isAllPick(master)
}
//
const isAllPick = (val:powerNokeInfo) => {
if(val.list && Array.isArray(val.list) && val.list.length > 0){
let lookNum = 0;
let editNum = 0;
val.list.forEach((item:any)=>{
if(item.isLook){
lookNum++;
}
if(item.isEdit){
editNum++;
}
})
if(lookNum > 0){
val.isLook = true
}else{
val.isLook = false
}
if(editNum > 0){
val.isEdit = true
}else{
val.isEdit = false
}
// console.log("master",val)
// console.log("lookNum",lookNum)
// console.log("editNum",editNum)
}
}
</script> </script>
<template> <template>
<el-drawer <el-drawer
@ -1019,7 +1221,121 @@ const libraryList = ref([
</template> </template>
<!-- <el-divider content-position="left">操作权限</el-divider> --> <!-- <el-divider content-position="left">操作权限</el-divider> -->
<div class="info_box"> <div class="info_box">
<template v-for="item in powerNewUnitAry?.recUnitAry">
<template v-if="item.id=='masterid'">
<div class="table_name">
<el-text class="mx-1" type="primary">主表</el-text>
</div>
<el-table border :data="item.list">
<el-table-column prop="name" label="字段" />
<el-table-column align="center" width="80">
<template #header>
<el-checkbox
v-model="item.isLook"
label=""
@change="editPowerLook(item)"
/>
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isLook"
label=""
@change="editPowerWorkLook(item,scope.row)"
/>
</template>
</el-table-column>
<el-table-column align="center" width="120">
<template #header>
<el-checkbox
v-model="item.isEdit"
label=""
@change="editPowerSave(item)"
/>
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isEdit"
label=""
@change="editPowerWorkSave(item,scope.row)"
/>
</template>
</el-table-column>
</el-table>
</template>
</template>
<div class="table_name"> <div class="table_name">
<el-text class="mx-1" type="primary">其他</el-text>
</div>
<el-tabs v-model="activePickUnitGroupName" class="demo-tabs" type="border-card">
<template v-for="item in powerNewUnitAry?.recUnitAry">
<template v-if="item.id!='masterid'">
<el-tab-pane :label="item.name" :name="item.id" >
<!-- <template #label>
<div class="checkBoxClass">
<span>{{item.name}}</span>
<div>
<el-checkbox
v-model="item.isLook"
label=""
/>
<el-checkbox
v-model="item.isEdit"
label=""
@change="editOpenOrClose"
/>
</div>
</div>
</template> -->
<el-table border :data="item.list">
<el-table-column prop="name" label="字段" />
<el-table-column align="center" width="80">
<template #header>
<el-checkbox
v-model="item.isLook"
label=""
@change="editPowerLook(item)"
/>
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isLook"
label=""
@change="editPowerWorkLook(item,scope.row)"
/>
</template>
</el-table-column>
<el-table-column align="center" width="120">
<template #header>
<el-checkbox
v-model="item.isEdit"
label=""
@change="editPowerSave(item)"
/>
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isEdit"
label=""
@change="editPowerWorkSave(item,scope.row)"
/>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</template>
</template>
</el-tabs>
<!-- <div class="table_name">
<el-text class="mx-1" type="primary">主表</el-text> <el-text class="mx-1" type="primary">主表</el-text>
</div> </div>
<el-table <el-table
@ -1094,7 +1410,7 @@ const libraryList = ref([
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-col> </el-col>
</el-row> </el-row> -->
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="helpInstructions"> <el-tab-pane name="helpInstructions">
@ -1141,7 +1457,8 @@ const libraryList = ref([
</el-tabs> </el-tabs>
</div> </div>
<div class="demo-drawer__footer clear"> <div class="demo-drawer__footer clear">
<el-button type="primary" @click="saveApprover"> </el-button> <!-- <el-button type="primary" @click="saveApprover"> </el-button> -->
<el-button type="primary" @click="saveNewApprover"> </el-button>
<el-button @click="closeDrawer"> </el-button> <el-button @click="closeDrawer"> </el-button>
</div> </div>
<!--选择成员--> <!--选择成员-->

377
src/components/workflow/drwer/promoterDrawer.vue

@ -8,9 +8,10 @@ import employeesDialog from "@/components/workflow/dialog/employeesDialog.vue";
import { AnalysisForm } from "@/components/workflow/drwer/analysisForm"; import { AnalysisForm } from "@/components/workflow/drwer/analysisForm";
import $func from "@/utils/workflow/index"; import $func from "@/utils/workflow/index";
import { useStore } from "@/store/workflow/index"; import { useStore } from "@/store/workflow/index";
import type { powerNoke,powerNokeInfo } from '@/api/workflowapi/types'
import { analysisForm, setFlowFormKeyPower } from "@/api/workflowapi/index"; import { analysisForm, setFlowFormKeyPower,analyFormJsonMap } from "@/api/workflowapi/index";
import AssociatedFormsTinyace from "@/widget/associatedforms/associatedFormsTinyace.vue"; import AssociatedFormsTinyace from "@/widget/associatedforms/associatedFormsTinyace.vue";
import { formStruct } from "@/api/DesignForm/types";
const props = defineProps({ const props = defineProps({
formData: { formData: {
@ -58,7 +59,7 @@ let store = useStore();
let { setPromoter, setFlowPermission } = store; let { setPromoter, setFlowPermission } = store;
let approverConfig1 = computed((): any => store.approverConfig1); let approverConfig1 = computed((): any => store.approverConfig1);
let promoterDrawer = computed(() => store.promoterDrawer); let promoterDrawer = computed(() => store.promoterDrawer);
let flowPermission1 = computed(() => store.flowPermission1); let flowPermission1 = computed((): any => store.flowPermission1);
let visible = computed({ let visible = computed({
get() { get() {
return promoterDrawer.value; return promoterDrawer.value;
@ -67,7 +68,7 @@ let visible = computed({
closeDrawer(); closeDrawer();
}, },
}); });
watch(flowPermission1, (val) => { watch(flowPermission1, (val:any) => {
flowPermission.value = val.value; flowPermission.value = val.value;
}); });
@ -86,7 +87,7 @@ const savePromoter = () => {
id: flowPermission1.value.id, id: flowPermission1.value.id,
}); });
// console.log(1); // console.log(1);
let powerAry = []; let powerAry:any = [];
if ( if (
powerUnitAry.value.recUnitAry.masterUnitList && powerUnitAry.value.recUnitAry.masterUnitList &&
powerUnitAry.value.recUnitAry.masterUnitList.length > 0 powerUnitAry.value.recUnitAry.masterUnitList.length > 0
@ -145,7 +146,7 @@ const savePromoter = () => {
// console.log("formKey--->",props.formKey.toString()); // console.log("formKey--->",props.formKey.toString());
// console.log("formVersion--->",props.formVersion.toString()); // console.log("formVersion--->",props.formVersion.toString());
// console.log("value--->",formData.value); // console.log("value--->",formData.value);
console.log("purview--->", formData.value.purview); // console.log("purview--->", formData.value.purview);
let sendInfo: any = { let sendInfo: any = {
formKey: props.formKey.toString(), formKey: props.formKey.toString(),
@ -153,7 +154,7 @@ const savePromoter = () => {
formData: JSON.stringify(formData.value), formData: JSON.stringify(formData.value),
formPower: JSON.stringify(formData.value.purview), formPower: JSON.stringify(formData.value.purview),
}; };
console.log("sendInfo", sendInfo); // console.log("sendInfo", sendInfo);
setFlowFormKeyPower(sendInfo); setFlowFormKeyPower(sendInfo);
// console.log("formDataAll",formData) // console.log("formDataAll",formData)
// console.log("formData",formData.value.purview) // console.log("formData",formData.value.purview)
@ -162,6 +163,79 @@ const savePromoter = () => {
const closeDrawer = () => { const closeDrawer = () => {
setPromoter(false); setPromoter(false);
}; };
//
const powerNewUnitAry = ref<powerNoke>();
const activePickUnitGroupName = ref("")
//
const saveNoderPower = () => {
//
setFlowPermission({
value: flowPermission.value,
flag: true,
id: flowPermission1.value.id,
});
let untiPwoerAry: { id: string; name: string; status: number; isLook: boolean; isEdit: boolean; }[] = []
//
if(powerNewUnitAry.value?.recUnitAry && Array.isArray(powerNewUnitAry.value?.recUnitAry) && powerNewUnitAry.value?.recUnitAry.length > 0){
powerNewUnitAry.value?.recUnitAry.forEach((item: any) => {
untiPwoerAry.push({
id: item.id,
name: item.name,
status: item.status,
isLook: item.isLook,
isEdit: item.isEdit
});
if(item.list && Array.isArray(item.list) && item.list.length > 0){
item.list.forEach((listItem: any) => {
untiPwoerAry.push({
id: listItem.id,
name: listItem.name,
status: listItem.status,
isLook: listItem.isLook,
isEdit: listItem.isEdit
});
})
}
});
}
// console.log("", formData.value.purview);
if(formData.value.purview && Array.isArray(formData.value.purview) && formData.value.purview.length > 0){
let isNew = true;
formData.value.purview.forEach((item: any) => {
if (item.nodeKey == props.nodeConfig.nodeNumber) { //
item.powerAry = untiPwoerAry;
isNew = false;
}
})
if (isNew) { //
formData.value.purview.push({
nodeKey: props.nodeConfig.nodeNumber,
powerAry: untiPwoerAry,
});
}
}else{ //
formData.value.purview = [
{
nodeKey: props.nodeConfig.nodeNumber,
powerAry: untiPwoerAry,
},
];
}
let sendInfo: any = {
formKey: props.formKey.toString(),
formVersion: props.formVersion.toString(),
formData: JSON.stringify(formData.value),
formPower: JSON.stringify(formData.value.purview),
};
// console.log("", sendInfo);
setFlowFormKeyPower(sendInfo);
closeDrawer();
}
const powerUnitAry = ref<any>({ const powerUnitAry = ref<any>({
nodeKey: "", nodeKey: "",
@ -172,6 +246,7 @@ const powerUnitAry = ref<any>({
unitAllState: [], unitAllState: [],
}, },
}); });
/** /**
@ 作者: 秦东 @ 作者: 秦东
@ 时间: 2024-03-13 08:24:54 @ 时间: 2024-03-13 08:24:54
@ -179,37 +254,65 @@ const powerUnitAry = ref<any>({
*/ */
const jieForm = () => { const jieForm = () => {
// console.log("nodeConfig",props.nodeConfig) // console.log("nodeConfig",props.nodeConfig)
analysisForm({ // analysisForm({
// nodeKey: props.nodeConfig.nodeNumber,
// nodeJson: JSON.stringify(formData.value),
// }).then((data:any) => {
// if (data.code == 0) {
// powerUnitAry.value = data.data;
// if (
// powerUnitAry.value.recUnitAry.masterUnitList &&
// powerUnitAry.value.recUnitAry.masterUnitList.length > 0
// ) {
// let allToal = powerUnitAry.value.recUnitAry.masterUnitList.length;
// let isAll = 0;
// let editAll = 0;
// powerUnitAry.value.recUnitAry.masterUnitList.forEach((item: any) => {
// if (item.isLook) {
// isAll++;
// }
// if (item.isEdit) {
// editAll++;
// }
// });
// if (isAll == allToal) {
// isLookAll.value = true;
// }
// if (editAll == allToal) {
// isEditAll.value = true;
// }
// }
// }
// });
//
analyFormJsonMap({
nodeKey: props.nodeConfig.nodeNumber, nodeKey: props.nodeConfig.nodeNumber,
nodeJson: JSON.stringify(formData.value), nodeJson: JSON.stringify(formData.value),
}).then((data) => { }).then((data:any) => {
if (data.code == 0) { // console.log("",data)
powerUnitAry.value = data.data; if(data.code == 0){
powerNewUnitAry.value = data.data
if ( // powerNewUnitAry.value?.nodeKey = data.data.nodeKey
powerUnitAry.value.recUnitAry.masterUnitList && // powerNewUnitAry.value?.recUnitAry = data.data.recUnitAry
powerUnitAry.value.recUnitAry.masterUnitList.length > 0 if(data.data.recUnitAry && Array.isArray(data.data.recUnitAry) && data.data.recUnitAry.length > 0){
) { data.data.recUnitAry.forEach((item:powerNokeInfo,i:number)=>{
let allToal = powerUnitAry.value.recUnitAry.masterUnitList.length; // if(item.id != "masterid"){
let isAll = 0; // return activePickUnitGroupName.value = item.id;
let editAll = 0;
powerUnitAry.value.recUnitAry.masterUnitList.forEach((item: any) => { // }
if (item.isLook) { if(i == 1){
isAll++; activePickUnitGroupName.value = item.id;
}
if (item.isEdit) {
editAll++;
} }
}); })
if (isAll == allToal) {
isLookAll.value = true;
}
if (editAll == allToal) {
isEditAll.value = true;
}
} }
} }
}); // console.log("sadsadasdasd",powerNewUnitAry.value )
// powerNewUnitAry.value?.nodeKey = data
})
}; };
watch( watch(
@ -290,6 +393,86 @@ const oneEditSet = (val: any) => {
} }
} }
}; };
//
const editPowerLook = (val:powerNokeInfo) => {
// console.log("",val)
if(val.list && Array.isArray(val.list) && val.list.length > 0){
val.list.forEach((item:any)=>{
if(val.isLook){
item.isLook = val.isLook
}else{
val.isEdit = val.isLook
item.isLook = val.isLook
item.isEdit = val.isLook
}
})
}
}
//
const editPowerWorkLook = (master:powerNokeInfo,word:powerNokeInfo) => {
// console.log("master",master)
// console.log("word",word)
if(!word.isLook){
word.isEdit = word.isLook
}
isAllPick(master)
}
//
const editPowerSave = (val:powerNokeInfo) => {
if(val.list && Array.isArray(val.list) && val.list.length > 0){
val.list.forEach((item:any)=>{
if(val.isEdit){
val.isLook = val.isEdit
item.isEdit = val.isEdit
item.isLook = val.isEdit
}else{
val.isEdit = val.isEdit
item.isEdit = val.isEdit
}
})
}
}
//
const editPowerWorkSave = (master:powerNokeInfo,word:powerNokeInfo) => {
if(word.isEdit){
word.isLook = word.isEdit
}
isAllPick(master)
}
//
const isAllPick = (val:powerNokeInfo) => {
if(val.list && Array.isArray(val.list) && val.list.length > 0){
let lookNum = 0;
let editNum = 0;
val.list.forEach((item:any)=>{
if(item.isLook){
lookNum++;
}
if(item.isEdit){
editNum++;
}
})
if(lookNum > 0){
val.isLook = true
}else{
val.isLook = false
}
if(editNum > 0){
val.isEdit = true
}else{
val.isEdit = false
}
// console.log("master",val)
// console.log("lookNum",lookNum)
// console.log("editNum",editNum)
}
}
</script> </script>
<template> <template>
<el-drawer <el-drawer
@ -322,7 +505,118 @@ const oneEditSet = (val: any) => {
</template> </template>
<!-- <el-divider content-position="left">操作权限</el-divider> --> <!-- <el-divider content-position="left">操作权限</el-divider> -->
<div class="info_box"> <div class="info_box">
<template v-for="item in powerNewUnitAry?.recUnitAry">
<template v-if="item.id=='masterid'">
<div class="table_name">
<el-text class="mx-1" type="primary">主表</el-text>
</div>
<el-table border :data="item.list">
<el-table-column prop="name" label="字段" />
<el-table-column align="center" width="80">
<template #header>
<el-checkbox
v-model="item.isLook"
label=""
@change="editPowerLook(item)"
/>
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isLook"
label=""
@change="editPowerWorkLook(item,scope.row)"
/>
</template>
</el-table-column>
<el-table-column align="center" width="120">
<template #header>
<el-checkbox
v-model="item.isEdit"
label=""
@change="editPowerSave(item)"
/>
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isEdit"
label=""
@change="editPowerWorkSave(item,scope.row)"
/>
</template>
</el-table-column>
</el-table>
</template>
</template>
<div class="table_name"> <div class="table_name">
<el-text class="mx-1" type="primary">其他</el-text>
</div>
<el-tabs v-model="activePickUnitGroupName" class="demo-tabs" type="border-card">
<template v-for="item in powerNewUnitAry?.recUnitAry">
<template v-if="item.id!='masterid'">
<el-tab-pane :label="item.name" :name="item.id" >
<!-- <template #label>
<div class="checkBoxClass">
<span>{{item.name}}</span>
<div>
<el-checkbox
v-model="item.isLook"
label=""
/>
<el-checkbox
v-model="item.isEdit"
label=""
@change="editOpenOrClose"
/>
</div>
</div>
</template> -->
<el-table border :data="item.list">
<el-table-column prop="name" label="字段" />
<el-table-column align="center" width="80">
<template #header>
<el-checkbox
v-model="item.isLook"
label=""
@change="editPowerLook(item)"
/>
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isLook"
label=""
@change="editPowerWorkLook(item,scope.row)"
/>
</template>
</el-table-column>
<el-table-column align="center" width="120">
<template #header>
<el-checkbox
v-model="item.isEdit"
label=""
@change="editPowerSave(item)"
/>
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isEdit"
label=""
@change="editPowerWorkSave(item,scope.row)"
/>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</template>
</template>
</el-tabs>
<!-- <div class="table_name">
<el-text class="mx-1" type="primary">主表</el-text> <el-text class="mx-1" type="primary">主表</el-text>
</div> </div>
<el-table <el-table
@ -397,7 +691,7 @@ const oneEditSet = (val: any) => {
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-col> </el-col>
</el-row> </el-row> -->
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="helpInstructions"> <el-tab-pane name="helpInstructions">
@ -412,7 +706,8 @@ const oneEditSet = (val: any) => {
</div> </div>
<div class="demo-drawer__footer clear"> <div class="demo-drawer__footer clear">
<el-button type="primary" @click="savePromoter"> </el-button> <!-- <el-button type="primary" @click="savePromoter"> </el-button> -->
<el-button type="primary" @click="saveNoderPower"> </el-button>
<el-button @click="closeDrawer"> </el-button> <el-button @click="closeDrawer"> </el-button>
</div> </div>
<employees-dialog <employees-dialog
@ -445,4 +740,16 @@ const oneEditSet = (val: any) => {
.table_name { .table_name {
padding: 10px 0; padding: 10px 0;
} }
.checkBoxClass{
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 10px 0 0;
span{
padding: 0 10px;
}
:deep .el-checkbox{
margin: 0px 0px 0px 10px;
}
}
</style> </style>

Loading…
Cancel
Save