9 changed files with 1241 additions and 0 deletions
@ -0,0 +1,17 @@ |
|||||
|
//字段类型
|
||||
|
export const matrixType = [ |
||||
|
{ |
||||
|
id:2, |
||||
|
name:"行政组织" |
||||
|
}, |
||||
|
{ |
||||
|
id:3, |
||||
|
name:"分部" |
||||
|
} |
||||
|
]; |
||||
|
export const matrixTypes = [ |
||||
|
{ |
||||
|
id:1, |
||||
|
name:"人力资源" |
||||
|
} |
||||
|
]; |
||||
@ -0,0 +1,74 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { searchMatrix,matrixCont,editMatrixCont,editMatrixInfo,editStatus,chineseInitialFirstWord,sendMatrixField,getMatrixWord } from './type'; |
||||
|
|
||||
|
/** |
||||
|
* 获取矩阵权限分页列表 |
||||
|
*/ |
||||
|
export function getMatrixList(queryParams: searchMatrix): AxiosPromise<PageResult<matrixCont[]>> { |
||||
|
return request({ |
||||
|
url: '/systemapi/matrix/matrixlist', |
||||
|
method: 'post', |
||||
|
data: queryParams |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 添加矩阵 |
||||
|
*/ |
||||
|
export function addMatrixCont(queryParams: editMatrixCont){ |
||||
|
return request({ |
||||
|
url: '/systemapi/matrix/addmatrixcont', |
||||
|
method: 'post', |
||||
|
data: queryParams |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 编辑矩阵 |
||||
|
*/ |
||||
|
export function editMatrixCont(queryParams: editMatrixInfo){ |
||||
|
return request({ |
||||
|
url: '/systemapi/matrix/editmatrixcont', |
||||
|
method: 'post', |
||||
|
data: queryParams |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 编辑矩阵状态 |
||||
|
*/ |
||||
|
export function editMatrixStatus(queryParams: editStatus){ |
||||
|
return request({ |
||||
|
url: '/systemapi/matrix/editstatuscont', |
||||
|
method: 'post', |
||||
|
data: queryParams |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 获取汉字首字母 |
||||
|
*/ |
||||
|
export function getChineseInitial(queryParams: chineseInitialFirstWord){ |
||||
|
return request({ |
||||
|
url: '/systemapi/public/chinese_initial', |
||||
|
method: 'post', |
||||
|
data: queryParams |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 提交矩阵字段 |
||||
|
*/ |
||||
|
export function sendMatrixField(queryParams: sendMatrixField){ |
||||
|
return request({ |
||||
|
url: '/systemapi/matrix/setup_matrix_field', |
||||
|
method: 'post', |
||||
|
data: queryParams |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 获取矩阵字段 |
||||
|
*/ |
||||
|
export function getMatrixField(queryParams: getMatrixWord): AxiosPromise<sendMatrixField>{ |
||||
|
return request({ |
||||
|
url: '/systemapi/matrix/get_matrix_field', |
||||
|
method: 'post', |
||||
|
data: queryParams |
||||
|
}); |
||||
|
} |
||||
@ -0,0 +1,90 @@ |
|||||
|
export interface searchMatrix extends PageQuery{ |
||||
|
keywords?:string; //关键字
|
||||
|
adminorg?:number; //行政组织
|
||||
|
} |
||||
|
/** |
||||
|
* 矩阵类别内容 |
||||
|
*/ |
||||
|
export interface matrixCont{ |
||||
|
id:number; |
||||
|
name:string; |
||||
|
center:string; |
||||
|
org:number; |
||||
|
orgname:string; |
||||
|
status:number; |
||||
|
time:number; |
||||
|
} |
||||
|
/** |
||||
|
* 编辑矩阵内容 |
||||
|
*/ |
||||
|
export interface editMatrixCont{ |
||||
|
name:string; |
||||
|
center:string; |
||||
|
org:number|string; |
||||
|
} |
||||
|
/** |
||||
|
* 修改矩阵内容 |
||||
|
*/ |
||||
|
export interface editMatrixInfo extends editMatrixCont{ |
||||
|
id:number; |
||||
|
} |
||||
|
/** |
||||
|
* 编辑状态 |
||||
|
*/ |
||||
|
export interface editStatus{ |
||||
|
id:string[]; |
||||
|
status:number; |
||||
|
istrue:boolean; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 矩阵字段 |
||||
|
*/ |
||||
|
export interface martixFieldStruct{ |
||||
|
id:number; |
||||
|
name:string; //骨架名称
|
||||
|
types:number; //骨架类型(1:人力资源;2:行政组织;2:分部;)
|
||||
|
condition:number; //骨架取值类型(1:作为条件使用;2:作为取值使用)
|
||||
|
pinyin:string; //拼音(标识使用)
|
||||
|
isedit:boolean; //是否可更改
|
||||
|
pyedit:boolean; //拼音是否可更改
|
||||
|
} |
||||
|
/** |
||||
|
* 矩阵字段列表 |
||||
|
*/ |
||||
|
export interface martixFieldList{ |
||||
|
factor:martixFieldStruct[]; |
||||
|
outcome:martixFieldStruct[]; |
||||
|
} |
||||
|
/** |
||||
|
* 名称 |
||||
|
*/ |
||||
|
export interface chineseInitialFirstWord{ |
||||
|
name:string; |
||||
|
} |
||||
|
/** |
||||
|
* 提交矩阵字段 |
||||
|
*/ |
||||
|
export interface sendMatrixField extends martixFieldList{ |
||||
|
id:number; |
||||
|
} |
||||
|
/** |
||||
|
* 获取矩阵字段 |
||||
|
*/ |
||||
|
export interface getMatrixWord{ |
||||
|
id:number; |
||||
|
} |
||||
|
/** |
||||
|
* 数据表格矩阵字段 |
||||
|
*/ |
||||
|
export interface matrixTable{ |
||||
|
id:number; |
||||
|
label:string; |
||||
|
prop:string |
||||
|
} |
||||
|
/** |
||||
|
* 自定义对象结构体 |
||||
|
*/ |
||||
|
export interface objectStruct{ |
||||
|
[idx: string]: any |
||||
|
} |
||||
|
After Width: | Height: | Size: 977 B |
@ -0,0 +1,297 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2023-07-04 09:30:56 |
||||
|
@ 备注: 权限矩阵 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { orgInfo } from '@/api/hr/org/type' |
||||
|
import { getOrgTreeList } from '@/api/hr/org/index' |
||||
|
import { searchMatrix,matrixCont } from '@/api/matrixapi/type' |
||||
|
import { getMatrixList,editMatrixStatus } from '@/api/matrixapi/index' |
||||
|
|
||||
|
/** |
||||
|
* 引入页面 |
||||
|
*/ |
||||
|
import MatrixContAdd from '@/views/matrix/matrixcont/matrixcontadd.vue' |
||||
|
import MatrixContEdit from '@/views/matrix/matrixcont/matrixcontedit.vue' |
||||
|
import SetupMatrixField from '@/views/matrix/matrixcont/setupmatrixfield.vue' |
||||
|
import SetupMatrixUser from '@/views/matrix/matrixcont/setupmatrixuser.vue' |
||||
|
|
||||
|
const ids = ref<number[]>([]); //批量删除的ID |
||||
|
const queryFormRef = ref(ElForm); //查询表单 |
||||
|
const orgTreeLoading = ref(false); //加载行政组织树 |
||||
|
const orgTreeRef = ref(ElTree); //行政组织树 |
||||
|
const orgTreeList = ref<orgInfo[]>(); //行政组织树数据 |
||||
|
const orgTreeProps ={ |
||||
|
children: 'child', |
||||
|
label: 'name', |
||||
|
} //行政组织树对照值 |
||||
|
const searchArchiveQuery = reactive<searchMatrix>({ |
||||
|
page:1, |
||||
|
pagesize:10 |
||||
|
}) |
||||
|
|
||||
|
const loading = ref(false); |
||||
|
const matrixContList = ref<matrixCont[]>(); // |
||||
|
const editCont = ref<matrixCont>() |
||||
|
const total = ref(0); //总记录数 |
||||
|
|
||||
|
const matrixAddBox = ref(false); //添加矩阵弹窗 |
||||
|
const matrixEditBox = ref(false); //编辑矩阵弹窗 |
||||
|
const matrixSetFieldBox = ref(false); //设置矩阵字段 |
||||
|
const matrixSetUserBox = ref(false); //设置矩阵取值 |
||||
|
|
||||
|
/**用工关系(1:临时工 , 2:编外人员 ;3:实习&实习生;4:试用员工;5:待分配;6:待岗;7:临时调入;8:正式员工;9:长期病假;10:停薪留职;11:退休;12:辞职;13:辞退;14:离职)', |
||||
|
`company` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '入职公司', |
||||
|
* 获取行政组织数据 |
||||
|
*/ |
||||
|
function haveOrgTreeInfo(){ |
||||
|
orgTreeLoading.value = true; |
||||
|
getOrgTreeList({}) |
||||
|
.then(({ data })=>{ |
||||
|
orgTreeList.value = data |
||||
|
}).finally(()=>{orgTreeLoading.value = false;}) |
||||
|
} |
||||
|
/** |
||||
|
* 选中行政组织树节点 |
||||
|
*/ |
||||
|
const handleOrgTreeNodeClick = (data: orgInfo) => { |
||||
|
// console.log(data) |
||||
|
searchArchiveQuery.adminorg = data.id |
||||
|
searchMatrixList(); |
||||
|
} |
||||
|
/** |
||||
|
* 重置选中行政组织 |
||||
|
*/ |
||||
|
function resetChecked() { |
||||
|
orgTreeRef.value!.setCheckedKeys([], false) |
||||
|
searchArchiveQuery.adminorg = 0 |
||||
|
searchMatrixList() |
||||
|
} |
||||
|
/** |
||||
|
* 查询重置 |
||||
|
*/ |
||||
|
function resetQuery() { |
||||
|
queryFormRef.value.resetFields(); |
||||
|
searchMatrixList() |
||||
|
} |
||||
|
/** |
||||
|
* 获取矩阵列表 |
||||
|
*/ |
||||
|
function searchMatrixList(){ |
||||
|
loading.value = true |
||||
|
getMatrixList(searchArchiveQuery) |
||||
|
.then(({ data })=>{ |
||||
|
console.log("获取矩阵列表->",data) |
||||
|
matrixContList.value = data.list |
||||
|
total.value = data.total |
||||
|
}).finally(()=>{loading.value = false}) |
||||
|
} |
||||
|
/** |
||||
|
* 打开角色新增页面 |
||||
|
*/ |
||||
|
function openAddRoleDialog(){ |
||||
|
matrixAddBox.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 删除 |
||||
|
*/ |
||||
|
function handleDelete(delId?:number){ |
||||
|
const delRoleIds = [delId || ids.value].join(","); |
||||
|
if (!delRoleIds) { |
||||
|
ElMessage.warning("请勾选删除项"); |
||||
|
return; |
||||
|
} |
||||
|
let dictTypeIdAry = delRoleIds.split(",") |
||||
|
ElMessageBox.confirm("确认删除已选中的数据项?", "警告", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning", |
||||
|
}) |
||||
|
.then(() => { |
||||
|
editMatrixStatus({id:dictTypeIdAry,status:3,istrue:false}).then(() => { |
||||
|
ElMessage.success("删除成功"); |
||||
|
searchMatrixList(); |
||||
|
}); |
||||
|
}) |
||||
|
.catch(() => ElMessage.info("已取消删除")); |
||||
|
} |
||||
|
/** |
||||
|
* 行checkbox change事件 |
||||
|
*/ |
||||
|
function handleSelectionChange(selection: any) { |
||||
|
ids.value = selection.map((item: any) => item.id); |
||||
|
} |
||||
|
/** |
||||
|
* 设置矩阵字段 |
||||
|
*/ |
||||
|
function openSetupFrameDialog(cont:matrixCont){ |
||||
|
editCont.value = cont |
||||
|
matrixSetFieldBox.value = true; |
||||
|
|
||||
|
} |
||||
|
/** |
||||
|
* 设置矩阵关系 |
||||
|
*/ |
||||
|
function openSetupUsersDialog(cont:matrixCont){ |
||||
|
editCont.value = cont |
||||
|
matrixSetUserBox.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 编辑矩阵 |
||||
|
*/ |
||||
|
function openEditMatriexDialog(cont:matrixCont){ |
||||
|
editCont.value = cont |
||||
|
matrixEditBox.value = true; |
||||
|
} |
||||
|
//加载数据 |
||||
|
onMounted(() => { |
||||
|
haveOrgTreeInfo(); |
||||
|
searchMatrixList(); |
||||
|
}); |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-container> |
||||
|
<el-aside width="340px" style="padding: 10px 10px;"> |
||||
|
<el-card :body-style="{ height: '100%',padding:'0px 5px' }"> |
||||
|
<el-button type="primary" style="width: 100%; margin: 10px 0;" @click="resetChecked">查看全部</el-button> |
||||
|
<el-tree |
||||
|
ref="orgTreeRef" |
||||
|
v-loading="orgTreeLoading" |
||||
|
node-key="id" |
||||
|
class="orgTree" |
||||
|
:data="orgTreeList" |
||||
|
:props="orgTreeProps" |
||||
|
:expand-on-click-node="false" |
||||
|
:check-on-click-node="true" |
||||
|
:check-strictly="true" |
||||
|
:default-expand-all="false" |
||||
|
@node-click="handleOrgTreeNodeClick" |
||||
|
/> |
||||
|
</el-card> |
||||
|
</el-aside> |
||||
|
<el-main style="padding: 10px 10px 10px 0px;"> |
||||
|
<div class="app-container" style="margin:0"> |
||||
|
<div class="search"> |
||||
|
<el-form ref="queryFormRef" :model="searchArchiveQuery" :inline="true"> |
||||
|
<el-form-item label="关键字" prop="keywords"> |
||||
|
<el-input |
||||
|
v-model="searchArchiveQuery.keywords" |
||||
|
placeholder="角色名称" |
||||
|
clearable |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button type="primary" @click="searchMatrixList" |
||||
|
><template #icon><i-ep-search /></template>搜索</el-button |
||||
|
> |
||||
|
<el-button @click="resetQuery"> |
||||
|
<template #icon><i-ep-refresh /></template> |
||||
|
重置</el-button |
||||
|
> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
</div> |
||||
|
<el-card shadow="never"> |
||||
|
<template #header> |
||||
|
<el-button type="success" @click="openAddRoleDialog()" ><i-ep-plus />新增</el-button> |
||||
|
<el-button |
||||
|
type="danger" |
||||
|
:disabled="ids.length === 0" |
||||
|
@click="handleDelete()" |
||||
|
> |
||||
|
<i-ep-delete />删除</el-button> |
||||
|
</template> |
||||
|
<el-table |
||||
|
v-loading="loading" |
||||
|
highlight-current-row |
||||
|
:data="matrixContList" |
||||
|
border |
||||
|
@selection-change="handleSelectionChange" |
||||
|
> |
||||
|
<el-table-column type="selection" width="55" align="center" /> |
||||
|
<el-table-column label="矩阵名称" prop="name" width="150" /> |
||||
|
<el-table-column label="描述" prop="center" /> |
||||
|
<el-table-column label="归属行政组织" width="300" prop="orgname" /> |
||||
|
<el-table-column fixed="right" label="操作" align="center" width="350" > |
||||
|
<template #default="scope"> |
||||
|
<el-button |
||||
|
v-hasPerm="['124067026950959104']" |
||||
|
type="warning" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="openSetupFrameDialog(scope.row)" |
||||
|
> |
||||
|
<i-ep-Setting />配置字段 |
||||
|
</el-button> |
||||
|
<el-button |
||||
|
v-hasPerm="['124067108593086464']" |
||||
|
type="success" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="openSetupUsersDialog(scope.row)" |
||||
|
> |
||||
|
<i-ep-User />配置矩阵关系 |
||||
|
</el-button> |
||||
|
<el-button |
||||
|
v-hasPerm="['124066883237326848']" |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="openEditMatriexDialog(scope.row)" |
||||
|
> |
||||
|
<i-ep-edit />编辑 |
||||
|
</el-button> |
||||
|
<el-button |
||||
|
v-hasPerm="['124066956029472768']" |
||||
|
type="danger" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="handleDelete(scope.row.id)" |
||||
|
> |
||||
|
<i-ep-delete />删除 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<pagination |
||||
|
v-if="total > 0" |
||||
|
v-model:total="total" |
||||
|
v-model:page="searchArchiveQuery.page" |
||||
|
v-model:limit="searchArchiveQuery.pagesize" |
||||
|
@pagination="searchMatrixList" |
||||
|
/> |
||||
|
</el-card> |
||||
|
|
||||
|
<!--添加矩阵--> |
||||
|
<MatrixContAdd v-model:addShow="matrixAddBox" :orgid="searchArchiveQuery.adminorg" :orgtree="orgTreeList" @restlist="searchMatrixList" /> |
||||
|
<!--编辑矩阵--> |
||||
|
<MatrixContEdit v-model:editShow="matrixEditBox" :matrixcont="editCont" :orgtree="orgTreeList" @restlist="searchMatrixList" /> |
||||
|
<!--设置矩阵字段--> |
||||
|
<SetupMatrixField v-model:fieldShow="matrixSetFieldBox" :matrixcont="editCont" /> |
||||
|
<!--设置字段使用人--> |
||||
|
<SetupMatrixUser v-model:userShow="matrixSetUserBox" :matrixcont="editCont" /> |
||||
|
</el-main> |
||||
|
</el-container> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
.common-layout{ |
||||
|
height: calc(100% - 60px); |
||||
|
background-color: aqua; |
||||
|
|
||||
|
} |
||||
|
.el-container { |
||||
|
height: calc(100vh - 84px); |
||||
|
.el-card.is-always-shadow{ |
||||
|
height: 100%; |
||||
|
overflow: auto; |
||||
|
} |
||||
|
} |
||||
|
.cardBody{ |
||||
|
height: 100%; |
||||
|
} |
||||
|
.orgTree{ |
||||
|
padding:5px 0; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,150 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2023-07-04 14:51:04 |
||||
|
@ 备注: 添加矩阵 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { orgInfo } from '@/api/hr/org/type' |
||||
|
import { editMatrixCont } from '@/api/matrixapi/type' |
||||
|
import { addMatrixCont } from '@/api/matrixapi/index' |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
addShow:{ |
||||
|
type:Boolean, |
||||
|
default:false |
||||
|
}, |
||||
|
orgid:{ |
||||
|
type:Number, |
||||
|
default:0 |
||||
|
}, |
||||
|
orgtree:{ |
||||
|
type:Object, |
||||
|
default(){ |
||||
|
return {} |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
const emits = defineEmits(["update:addShow","restlist"]); //父级元素 |
||||
|
const addMatrixRef = ref(ElForm); //添加矩阵 |
||||
|
const addCont = reactive<editMatrixCont>({ |
||||
|
name:"", |
||||
|
center:"", |
||||
|
org:"" |
||||
|
}) |
||||
|
const orgTreeProps ={ |
||||
|
children: 'child', |
||||
|
label: 'name', |
||||
|
} //行政组织树对照值 |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const add_is_Show = computed({ |
||||
|
get: () => props.addShow, |
||||
|
set: (val) => { |
||||
|
emits("update:addShow", val); |
||||
|
}, |
||||
|
}); |
||||
|
const addLoading = ref(false) |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addFormRules = reactive({ |
||||
|
org: [{ required: true, message: "请选择归属行政组织", trigger: "blur" }], |
||||
|
name: [{ required: true, message: "请输入矩阵名称", trigger: "blur" }] |
||||
|
}); |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
function initData(){ |
||||
|
addCont.name = ""; |
||||
|
addCont.center = ""; |
||||
|
addCont.org = ""; |
||||
|
addLoading.value = false; |
||||
|
} |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
function handleCloseAdd(){ |
||||
|
emits("update:addShow", false); |
||||
|
initData() |
||||
|
} |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
function submitAddMatrix(){ |
||||
|
addLoading.value = true; |
||||
|
addMatrixRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
addMatrixCont(addCont) |
||||
|
.then(() => { |
||||
|
ElMessage.success("新增成功"); |
||||
|
handleCloseAdd(); |
||||
|
emits('restlist'); |
||||
|
}) |
||||
|
.finally(() => (addLoading.value = false)); |
||||
|
}else{ |
||||
|
addLoading.value = false; |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch(() => props.addShow,() => { |
||||
|
if(!props.addShow){ |
||||
|
initData(); |
||||
|
}else{ |
||||
|
if(props.orgid != 0){ |
||||
|
addCont.org = props.orgid; |
||||
|
}else{ |
||||
|
addCont.org = "" |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="add_is_Show" custom-class="dialog_box" title="编辑矩阵" :before-close="handleCloseAdd" width="400"> |
||||
|
<el-form |
||||
|
ref="addMatrixRef" |
||||
|
:model="addCont" |
||||
|
:rules="addFormRules" |
||||
|
label-width="140px" |
||||
|
> |
||||
|
<el-form-item label="矩阵名称" prop="name"> |
||||
|
<el-input v-model="addCont.name" placeholder="请输入矩阵名称" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="简介" prop="center"> |
||||
|
<el-input |
||||
|
v-model="addCont.center" |
||||
|
:autosize="{ minRows: 2, maxRows: 4 }" |
||||
|
type="textarea" |
||||
|
placeholder="请输入矩阵简介" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="归属行政组织" prop="org"> |
||||
|
<el-tree-select |
||||
|
ref="orgTreePostRef" |
||||
|
v-model="addCont.org" |
||||
|
placeholder="选择归属行政组织" |
||||
|
:data="props.orgtree" |
||||
|
node-key="id" |
||||
|
check-strictly |
||||
|
:props="orgTreeProps" |
||||
|
:render-after-expand="false" |
||||
|
class="orgTree" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="addLoading" @click="submitAddMatrix" >确 定</el-button> |
||||
|
<el-button @click="handleCloseAdd">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,150 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2023-07-04 14:51:04 |
||||
|
@ 备注: 编辑矩阵 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { editMatrixInfo } from '@/api/matrixapi/type' |
||||
|
import { editMatrixCont } from '@/api/matrixapi/index' |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
editShow:{ |
||||
|
type:Boolean, |
||||
|
default:false |
||||
|
}, |
||||
|
matrixcont:{ |
||||
|
type:Object, |
||||
|
default(){ |
||||
|
return {} |
||||
|
} |
||||
|
}, |
||||
|
orgtree:{ |
||||
|
type:Object, |
||||
|
default(){ |
||||
|
return {} |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
const emits = defineEmits(["update:editShow","restlist"]); //父级元素 |
||||
|
const editMatrixRef = ref(ElForm); //添加矩阵 |
||||
|
const editCont = reactive<editMatrixInfo>({ |
||||
|
id:0, |
||||
|
name:"", |
||||
|
center:"", |
||||
|
org:"" |
||||
|
}) |
||||
|
const orgTreeProps ={ |
||||
|
children: 'child', |
||||
|
label: 'name', |
||||
|
} //行政组织树对照值 |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const edit_is_Show = computed({ |
||||
|
get: () => props.editShow, |
||||
|
set: (val) => { |
||||
|
emits("update:editShow", val); |
||||
|
}, |
||||
|
}); |
||||
|
const editLoading = ref(false) |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const editFormRules = reactive({ |
||||
|
org: [{ required: true, message: "请选择归属行政组织", trigger: "blur" }], |
||||
|
name: [{ required: true, message: "请输入矩阵名称", trigger: "blur" }] |
||||
|
}); |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
function initData(){ |
||||
|
editCont.name = ""; |
||||
|
editCont.center = ""; |
||||
|
editCont.org = ""; |
||||
|
editLoading.value = false; |
||||
|
} |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
function handleCloseAdd(){ |
||||
|
emits("update:editShow", false); |
||||
|
initData() |
||||
|
} |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
function submitEditMatrix(){ |
||||
|
editLoading.value = true; |
||||
|
editMatrixRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
editMatrixCont(editCont) |
||||
|
.then(() => { |
||||
|
ElMessage.success("编辑成功"); |
||||
|
handleCloseAdd(); |
||||
|
emits('restlist'); |
||||
|
}) |
||||
|
.finally(() => (editLoading.value = false)); |
||||
|
}else{ |
||||
|
editLoading.value = false; |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch(() => props.editShow,() => { |
||||
|
if(!props.editShow){ |
||||
|
initData(); |
||||
|
}else{ |
||||
|
editCont.id = props.matrixcont.id; |
||||
|
editCont.name = props.matrixcont.name; |
||||
|
editCont.center = props.matrixcont.center; |
||||
|
editCont.org = props.matrixcont.org; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="edit_is_Show" custom-class="dialog_box" title="编辑矩阵" :before-close="handleCloseAdd" width="400"> |
||||
|
<el-form |
||||
|
ref="editMatrixRef" |
||||
|
:model="editCont" |
||||
|
:rules="editFormRules" |
||||
|
label-width="140px" |
||||
|
> |
||||
|
<el-form-item label="矩阵名称" prop="name"> |
||||
|
<el-input v-model="editCont.name" placeholder="请输入矩阵名称" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="简介" prop="center"> |
||||
|
<el-input |
||||
|
v-model="editCont.center" |
||||
|
:autosize="{ minRows: 2, maxRows: 4 }" |
||||
|
type="textarea" |
||||
|
placeholder="请输入矩阵简介" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="归属行政组织" prop="org"> |
||||
|
<el-tree-select |
||||
|
ref="orgTreePostRef" |
||||
|
v-model="editCont.org" |
||||
|
placeholder="选择归属行政组织" |
||||
|
:data="props.orgtree" |
||||
|
node-key="id" |
||||
|
check-strictly |
||||
|
:props="orgTreeProps" |
||||
|
:render-after-expand="false" |
||||
|
class="orgTree" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="editLoading" @click="submitEditMatrix" >确 定</el-button> |
||||
|
<el-button @click="handleCloseAdd">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,349 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2023-07-05 15:02:50 |
||||
|
@ 备注: 设置矩阵字段 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { getChineseInitial,sendMatrixField,getMatrixField } from '@/api/matrixapi'; |
||||
|
import { matrixType,matrixTypes } from '@/api/matrixapi/datacont' |
||||
|
import { martixFieldStruct,martixFieldList } from '@/api/matrixapi/type' |
||||
|
import JiaHaoYuan from '@/assets/icons/jiahaoyuan.svg' |
||||
|
const props = defineProps({ |
||||
|
fieldShow:{ |
||||
|
type:Boolean, |
||||
|
default:false |
||||
|
}, |
||||
|
matrixcont:{ |
||||
|
type:Object, |
||||
|
default(){ |
||||
|
return {} |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
const emits = defineEmits(["update:fieldShow"]); //父级元素 |
||||
|
//条件与值 |
||||
|
const tjAndZhi = reactive<martixFieldList>( |
||||
|
{ |
||||
|
factor:[{ |
||||
|
id:0, |
||||
|
name:"", //骨架名称 |
||||
|
types:2, //骨架类型(1:人力资源;2:行政组织;2:分部;) |
||||
|
condition:1, //骨架取值类型(1:作为条件使用;2:作为取值使用) |
||||
|
pinyin:"", //拼音(标识使用) |
||||
|
isedit:false, |
||||
|
pyedit:false, |
||||
|
}], |
||||
|
outcome:[{ |
||||
|
id:0, |
||||
|
name:"", //骨架名称 |
||||
|
types:1, //骨架类型(1:人力资源;2:行政组织;2:分部;) |
||||
|
condition:2, //骨架取值类型(1:作为条件使用;2:作为取值使用) |
||||
|
pinyin:"", //拼音(标识使用) |
||||
|
isedit:false, |
||||
|
pyedit:false, |
||||
|
}] |
||||
|
} |
||||
|
) |
||||
|
const addFieldLoading = ref(false) |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const field_is_Show = computed({ |
||||
|
get: () => props.fieldShow, |
||||
|
set: (val) => { |
||||
|
emits("update:fieldShow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
function handleCloseBox(){ |
||||
|
emits("update:fieldShow", false); |
||||
|
initData() |
||||
|
} |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
function initData(){ |
||||
|
tjAndZhi.factor.splice(0,tjAndZhi.factor.length); |
||||
|
tjAndZhi.outcome.splice(0,tjAndZhi.outcome.length); |
||||
|
addMatrixField(1); |
||||
|
addMatrixField(2); |
||||
|
} |
||||
|
/** |
||||
|
* 添加字段 |
||||
|
*/ |
||||
|
function addMatrixField(type:number){ |
||||
|
if(type == 1){ |
||||
|
tjAndZhi.factor.push({ |
||||
|
id:0, |
||||
|
name:"", //骨架名称 |
||||
|
types:2, //骨架类型(1:人力资源;2:行政组织;2:分部;) |
||||
|
condition:1, //骨架取值类型(1:作为条件使用;2:作为取值使用) |
||||
|
pinyin:"", //拼音(标识使用) |
||||
|
isedit:true, |
||||
|
pyedit:false, |
||||
|
}) |
||||
|
}else{ |
||||
|
tjAndZhi.outcome.push({ |
||||
|
id:0, |
||||
|
name:"", //骨架名称 |
||||
|
types:1, //骨架类型(1:人力资源;2:行政组织;2:分部;) |
||||
|
condition:2, //骨架取值类型(1:作为条件使用;2:作为取值使用) |
||||
|
pinyin:"", //拼音(标识使用) |
||||
|
isedit:true, |
||||
|
pyedit:false, |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
//获取拼音 |
||||
|
function getpinyin(cont:martixFieldStruct){ |
||||
|
// console.log("获取拼音",cont) |
||||
|
getChineseInitial({name:cont.name}) |
||||
|
.then((data)=>{ |
||||
|
if(data.data!=""){ |
||||
|
cont.pinyin =data.data |
||||
|
}else{ |
||||
|
cont.pinyin =cont.name |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch(() => props.fieldShow,() => { |
||||
|
if(props.fieldShow){ |
||||
|
getMatrixField({id:props.matrixcont.id}) |
||||
|
.then(({data})=>{ |
||||
|
console.log("监听数据---->",data) |
||||
|
tjAndZhi.factor.splice(0,tjAndZhi.factor.length); |
||||
|
tjAndZhi.outcome.splice(0,tjAndZhi.outcome.length); |
||||
|
tjAndZhi.factor = data.factor |
||||
|
tjAndZhi.outcome = data.outcome |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
/** |
||||
|
* 添加矩阵字段 |
||||
|
*/ |
||||
|
function submitAddMatrixField(){ |
||||
|
if(tjAndZhi.factor.length < 1){ |
||||
|
ElMessage({ |
||||
|
showClose: true, |
||||
|
message: '矩阵条件字段不能为空!', |
||||
|
type: 'error', |
||||
|
}) |
||||
|
return false |
||||
|
} |
||||
|
if(tjAndZhi.outcome.length < 1){ |
||||
|
ElMessage({ |
||||
|
showClose: true, |
||||
|
message: '矩阵取值字段不能为空!', |
||||
|
type: 'error', |
||||
|
}) |
||||
|
return false |
||||
|
} |
||||
|
let factorPinyin = new Array |
||||
|
let outcomePinyin = new Array |
||||
|
let factorNull = false; |
||||
|
tjAndZhi.factor.forEach(item=>{ |
||||
|
factorPinyin.push(item.pinyin) |
||||
|
outcomePinyin.push(item.name) |
||||
|
if(item.pinyin == "" || item.name == "") factorNull = true; |
||||
|
}) |
||||
|
if(factorNull){ |
||||
|
ElMessage({ |
||||
|
showClose: true, |
||||
|
message: '矩阵条件字段有未填写的项目!', |
||||
|
type: 'error', |
||||
|
}) |
||||
|
return false |
||||
|
} |
||||
|
|
||||
|
//判断取值 |
||||
|
|
||||
|
let outcomeNull = false; |
||||
|
tjAndZhi.outcome.forEach(item=>{ |
||||
|
factorPinyin.push(item.pinyin) |
||||
|
outcomePinyin.push(item.name) |
||||
|
if(item.pinyin == "" || item.name == "") outcomeNull = true; |
||||
|
}) |
||||
|
if(outcomeNull){ |
||||
|
ElMessage({ |
||||
|
showClose: true, |
||||
|
message: '矩阵取值字段有未填写的项目!', |
||||
|
type: 'error', |
||||
|
}) |
||||
|
return false |
||||
|
} |
||||
|
let newFactorPinyin = Array.from(new Set(factorPinyin)) |
||||
|
let newOutcomePinyin = Array.from(new Set(outcomePinyin)) |
||||
|
if(newOutcomePinyin.length != outcomePinyin.length){ |
||||
|
ElMessage({ |
||||
|
showClose: true, |
||||
|
message: '矩阵字段有重复的名称!', |
||||
|
type: 'error', |
||||
|
}) |
||||
|
return false |
||||
|
} |
||||
|
if(newFactorPinyin.length != factorPinyin.length){ |
||||
|
ElMessage({ |
||||
|
showClose: true, |
||||
|
message: '矩阵字段有重复的拼音!', |
||||
|
type: 'error', |
||||
|
}) |
||||
|
return false |
||||
|
} |
||||
|
console.log("添加矩阵字段-->",factorPinyin,factorNull,outcomePinyin,outcomeNull,newFactorPinyin,newOutcomePinyin,tjAndZhi) |
||||
|
sendMatrixField({id:props.matrixcont.id,factor:tjAndZhi.factor,outcome:tjAndZhi.outcome}) |
||||
|
.then((data)=>{ |
||||
|
ElMessage.success("编辑成功"); |
||||
|
handleCloseBox(); |
||||
|
}) |
||||
|
} |
||||
|
/** |
||||
|
* 删除字段 |
||||
|
*/ |
||||
|
function delMatrixField(index:number,type:number){ |
||||
|
if(type == 1){ |
||||
|
tjAndZhi.factor.splice(index,1); |
||||
|
}else{ |
||||
|
tjAndZhi.outcome.splice(index,1); |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="field_is_Show" custom-class="dialog_box" title="设置矩阵字段" :before-close="handleCloseBox" width="50%"> |
||||
|
|
||||
|
<el-scrollbar> |
||||
|
<div class="scrollbar-flex-content"> |
||||
|
<div v-for="(item,index) in tjAndZhi.factor" :key="index" class="scrollbar-demo-item"> |
||||
|
<div class="form_box"> |
||||
|
<el-select |
||||
|
v-model="item.types" |
||||
|
clearable |
||||
|
placeholder="用工关系" |
||||
|
:disabled="item.pyedit" |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="items in matrixType" |
||||
|
:key="items.id" |
||||
|
:label="items.name" |
||||
|
:value="items.id" |
||||
|
/> |
||||
|
</el-select> |
||||
|
|
||||
|
<el-input v-if="item.pyedit" v-model="item.name" clearable placeholder="请输入字段名称" /> |
||||
|
<el-input v-else v-model="item.name" clearable placeholder="请输入字段名称" @input="getpinyin(item)" /> |
||||
|
<el-input v-model="item.pinyin" clearable placeholder="请输入字段拼音" :disabled="item.pyedit" /> |
||||
|
</div> |
||||
|
<div v-if="item.isedit" class="form_del" @click="delMatrixField(index,1)"> |
||||
|
<i-ep-Minus></i-ep-Minus> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="scrollbar-demo-item wordecnters"> |
||||
|
<el-image style="width: 100px; height: 100px; margin-top: 70px; cursor: pointer;" :src="JiaHaoYuan" fit="fill" @click="addMatrixField(1)" /> |
||||
|
<div class="word_box">此区域用于添加条件字段</div> |
||||
|
</div> |
||||
|
<div v-for="(item,index) in tjAndZhi.outcome" :key="index" class="scrollbar-demo-items"> |
||||
|
<div class="form_box"> |
||||
|
<el-select |
||||
|
v-model="item.types" |
||||
|
clearable |
||||
|
placeholder="用工关系" |
||||
|
:disabled="item.pyedit" |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="items in matrixTypes" |
||||
|
:key="items.id" |
||||
|
:label="items.name" |
||||
|
:value="items.id" |
||||
|
/> |
||||
|
</el-select> |
||||
|
|
||||
|
<el-input v-if="item.pyedit" v-model="item.name" clearable placeholder="请输入字段名称" /> |
||||
|
<el-input v-else v-model="item.name" clearable placeholder="请输入字段名称" @input="getpinyin(item)" /> |
||||
|
<el-input v-model="item.pinyin" clearable placeholder="请输入字段拼音" :disabled="item.pyedit" /> |
||||
|
</div> |
||||
|
<div v-if="item.isedit" class="form_del" @click="delMatrixField(index,2)"> |
||||
|
<i-ep-Minus></i-ep-Minus> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="scrollbar-demo-items wordecnters"> |
||||
|
<el-image style="width: 100px; height: 100px; margin-top: 70px; cursor: pointer;" :src="JiaHaoYuan" fit="fill" @click="addMatrixField(2)" /> |
||||
|
<div class="word_box">此区域用于添加取值字段</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-scrollbar> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="addFieldLoading" @click="submitAddMatrixField" >确 定</el-button> |
||||
|
<el-button @click="handleCloseBox">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
.el-dialog__body{ |
||||
|
padding: 10px; |
||||
|
} |
||||
|
.field_box{ |
||||
|
display: flex; |
||||
|
width: 100%; |
||||
|
height: 300px; |
||||
|
overflow: hidden; |
||||
|
overflow-x: auto; |
||||
|
text-align: left; |
||||
|
.condition{ |
||||
|
width: 150px; |
||||
|
height: 300px; |
||||
|
border: 1px solid #CCCCCC; |
||||
|
background-color: #FEFEE1; |
||||
|
} |
||||
|
} |
||||
|
.scrollbar-flex-content { |
||||
|
display: flex; |
||||
|
} |
||||
|
.scrollbar-demo-item { |
||||
|
flex-shrink: 0; |
||||
|
display: relative; |
||||
|
width: 150px; |
||||
|
height: 300px; |
||||
|
|
||||
|
background-color: #FEFEE1; |
||||
|
border: 1px solid #CCCCCC; |
||||
|
} |
||||
|
.form_box{ |
||||
|
height: 263px; |
||||
|
padding: 5px 2px; |
||||
|
} |
||||
|
.scrollbar-demo-items { |
||||
|
flex-shrink: 0; |
||||
|
display: relative; |
||||
|
width: 150px; |
||||
|
height: 300px; |
||||
|
background-color: #F2F9FC; |
||||
|
border: 1px solid #CCCCCC; |
||||
|
} |
||||
|
.wordecnters{ |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
text-align: center; |
||||
|
} |
||||
|
.word_box{ |
||||
|
display: block; |
||||
|
width: 60%; |
||||
|
margin: 10px auto 0 auto; |
||||
|
} |
||||
|
.form_del{ |
||||
|
width: 100%; |
||||
|
height: 35px; |
||||
|
background-color: #FEF0F0; |
||||
|
border-top: 1px solid #CCCCCC; |
||||
|
color: #FF1E1E; |
||||
|
text-align: center; |
||||
|
font-size: 27px; |
||||
|
font-weight: bold; |
||||
|
cursor: pointer; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,113 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2023-07-05 15:03:42 |
||||
|
@ 备注: 设置字段值 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { matrixTable,objectStruct } from '@/api/matrixapi/type' |
||||
|
import { getMatrixField } from '@/api/matrixapi'; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
userShow:{ |
||||
|
type:Boolean, |
||||
|
default:false |
||||
|
}, |
||||
|
matrixcont:{ |
||||
|
type:Object, |
||||
|
default(){ |
||||
|
return {} |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
const emits = defineEmits(["update:userShow"]); //父级元素 |
||||
|
const addFieldLoading = ref(false) |
||||
|
const tabelColumn = reactive<matrixTable[]>([]) |
||||
|
const tableList = reactive<any[]>([]) |
||||
|
const loading = ref(false) |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const field_is_Show = computed({ |
||||
|
get: () => props.userShow, |
||||
|
set: (val) => { |
||||
|
emits("update:userShow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
function handleCloseBox(){ |
||||
|
emits("update:userShow", false); |
||||
|
initData() |
||||
|
} |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
function initData(){ |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch(() => props.userShow,() => { |
||||
|
if(props.userShow){ |
||||
|
getMatrixField({id:props.matrixcont.id}) |
||||
|
.then(({data})=>{ |
||||
|
console.log("监听数据---->",data) |
||||
|
data.factor.forEach(item=>{ |
||||
|
tabelColumn.push({ |
||||
|
id:item.id, |
||||
|
label:item.name, |
||||
|
prop:item.pinyin |
||||
|
}) |
||||
|
}) |
||||
|
data.outcome.forEach(item=>{ |
||||
|
tabelColumn.push({ |
||||
|
id:item.id, |
||||
|
label:item.name, |
||||
|
prop:item.pinyin |
||||
|
}) |
||||
|
}) |
||||
|
}) |
||||
|
.finally(()=>{ |
||||
|
var jks:objectStruct = {} |
||||
|
tabelColumn.forEach(item=>{ |
||||
|
jks[item.prop]=1 |
||||
|
}) |
||||
|
console.log("监听数据-->",jks) |
||||
|
}) |
||||
|
} |
||||
|
}); |
||||
|
/** |
||||
|
* 提交使用人 |
||||
|
*/ |
||||
|
function submitAddMatrixUser(){ |
||||
|
|
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="field_is_Show" custom-class="dialog_box" title="矩阵数据维护" :before-close="handleCloseBox" width="80%"> |
||||
|
<el-table |
||||
|
v-loading="loading" |
||||
|
highlight-current-row |
||||
|
:data="tableList" |
||||
|
border |
||||
|
> |
||||
|
<el-table-column type="selection" width="55" align="center" /> |
||||
|
<el-table-column v-for="(item,index) in tabelColumn" :key="index" align="center"> |
||||
|
<!-- 自定义表头 --> |
||||
|
<template #header> |
||||
|
{{item.label}} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="addFieldLoading" @click="submitAddMatrixUser" >确 定</el-button> |
||||
|
<el-button @click="handleCloseBox">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
|
||||
|
</style> |
||||
Loading…
Reference in new issue