Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
bigDataSystem
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张伯涛
bigDataSystem
Commits
bbe6a4b2
Commit
bbe6a4b2
authored
Dec 17, 2024
by
LiXuyang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
6f77c7df
a6d0b660
Changes
16
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
4165 additions
and
14 deletions
+4165
-14
index.ts
src/router/routes/index.ts
+3
-0
AccountModal.vue
...ataSharingAndExchange/carouselManagement/AccountModal.vue
+129
-0
AddUserModal.vue
...ataSharingAndExchange/carouselManagement/AddUserModal.vue
+102
-0
DeptTree.vue
...ws/dataSharingAndExchange/carouselManagement/DeptTree.vue
+183
-0
MoveTreeModal.vue
...taSharingAndExchange/carouselManagement/MoveTreeModal.vue
+97
-0
UpdateTreeModal.vue
...SharingAndExchange/carouselManagement/UpdateTreeModal.vue
+115
-0
AccountModal.vue
...ingAndExchange/carouselManagement/detail/AccountModal.vue
+129
-0
account.data.ts
...ringAndExchange/carouselManagement/detail/account.data.ts
+302
-0
dataQualityMainBodyData.ts
...ange/carouselManagement/detail/dataQualityMainBodyData.ts
+601
-0
index.vue
...ataSharingAndExchange/carouselManagement/detail/index.vue
+1071
-0
index.vue
...views/dataSharingAndExchange/carouselManagement/index.vue
+323
-0
institution.data.ts
...SharingAndExchange/carouselManagement/institution.data.ts
+508
-0
institutionData.ts
...aSharingAndExchange/carouselManagement/institutionData.ts
+469
-0
moveUser.vue
...ws/dataSharingAndExchange/carouselManagement/moveUser.vue
+112
-0
index.vue
...ataSharingAndExchange/resourceManagement/detail/index.vue
+10
-4
index.vue
...views/dataSharingAndExchange/resourceManagement/index.vue
+11
-10
No files found.
src/router/routes/index.ts
View file @
bbe6a4b2
...
...
@@ -1346,6 +1346,9 @@ export const ServicePlatformRoute: AppRouteRecordRaw = {
title
:
'企业认证'
,
icon
:
''
,
},
path
:
'carouselManagement/detail'
,
name
:
'detail2'
,
component
:
()
=>
import
(
'@/views/dataSharingAndExchange/carouselManagement/detail/index.vue'
),
},
],
};
...
...
src/views/dataSharingAndExchange/carouselManagement/AccountModal.vue
0 → 100644
View file @
bbe6a4b2
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
accountFormSchema
}
from
'./institution.data'
;
import
{
getDeptList
}
from
'@/api/system/dept/dept'
;
import
{
addUserApi
,
UserDetailApi
,
UserUpdataApi
}
from
'@/api/system/user/user'
import
{
encryptTwo
}
from
'../../../../src/utils/jsencrypt.js'
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
TreeData
}
from
"@/views/dataSharingAndExchange/catalogingManagement/institutionData"
;
defineOptions
({
name
:
'AccountModal'
});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
const
isMove
=
ref
(
false
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
accountFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
resetFields
();
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
isMove
.
value
=
!!
data
?.
isMove
;
if
(
unref
(
isUpdate
))
{
// 获取行数据的id
rowId
.
value
=
data
.
record
.
businessId
;
// 塞值
setFieldsValue
({
...
data
.
record
,
});
}
const
treeList
=
handleTree
(
TreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
)
updateSchema
([
{
field
:
'institutionId'
,
componentProps
:
{
treeData
:
treeList
},
},
]);
});
const
getTitle
=
computed
(()
=>
(
!
unref
(
isUpdate
)
?
'新增账号'
:
'编辑账号'
));
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'id'
parentId
=
parentId
||
'parentId'
children
=
children
||
'children'
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
(
item
=>
{
return
item
[
parentId
]
}))
||
0
// 对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
// 循环所有项
const
treeData
=
cloneData
.
filter
(
father
=>
{
const
branchArr
=
cloneData
.
filter
(
child
=>
{
// 返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
]
})
branchArr
.
length
>
0
?
father
.
children
=
branchArr
:
''
// 返回第一层
return
father
[
parentId
]
===
rootId
})
return
treeData
!==
''
?
treeData
:
data
}
/**确定按钮*/
async
function
handleSubmit
()
{
try
{
//拿到表单内容
const
values
=
await
validate
();
//通过表单获取的institutionId去查找相同TreeData中的institutionId的institutionName
const
institutionName
=
TreeData
.
find
(
item
=>
item
.
businessId
===
values
.
institutionId
).
institutionName
values
.
institutionName
=
institutionName
setModalProps
({
confirmLoading
:
true
});
// 编辑
if
(
unref
(
isUpdate
))
{
values
.
businessId
=
rowId
.
value
//修改列表值
emit
(
'success'
,
{
isUpdate
:
unref
(
isUpdate
),
values
:
{
...
values
,
id
:
rowId
.
value
}
});
createMessage
.
success
(
'编辑成功'
);
closeModal
();
}
else
{
//根据institutionId去查找相同TreeData中的institutionId的institutionName
const
institutionName
=
TreeData
.
find
(
item
=>
item
.
businessId
===
values
.
institutionId
).
institutionName
const
paramsAdd
=
{
username
:
values
.
username
,
name
:
values
.
name
,
institutionId
:
values
.
institutionId
,
institutionName
:
institutionName
,
createDate
:
formatDate
(
new
Date
())
}
emit
(
'success'
,
{
isUpdate
:
unref
(
isUpdate
),
values
:
{
...
paramsAdd
}
});
createMessage
.
success
(
'新增成功'
);
closeModal
();
}
}
finally
{
setModalProps
({
confirmLoading
:
false
});
}
}
// 格式化日期
function
formatDate
(
date
)
{
const
year
=
date
.
getFullYear
();
const
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
);
// 月份从0开始,需要加1
const
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
'0'
);
const
hours
=
String
(
date
.
getHours
()).
padStart
(
2
,
'0'
);
const
minutes
=
String
(
date
.
getMinutes
()).
padStart
(
2
,
'0'
);
const
seconds
=
String
(
date
.
getSeconds
()).
padStart
(
2
,
'0'
);
return
`
${
year
}
-
${
month
}
-
${
day
}
${
hours
}
:
${
minutes
}
:
${
seconds
}
`
;
}
</
script
>
src/views/dataSharingAndExchange/carouselManagement/AddUserModal.vue
0 → 100644
View file @
bbe6a4b2
<
template
>
<BasicModal
width=
"50%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicTable
@
register=
"registerTable"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
BasicModal
,
useModalInner
,
useModal
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
reactive
,
unref
,
onDeactivated
,
onMounted
,
ref
,
computed
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
addUserData
,
columns
,
searchFormSchema
,
TreeData
}
from
'./institutionData'
;
import
{
useGo
}
from
'@/hooks/web/usePage'
;
import
{
downloadByData
}
from
'@/utils/file/download'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
useUserStore
}
from
'@/store/modules/user'
;
import
{
userData
}
from
'@/views/dataSharingAndExchange/catalogingManagement/institutionData'
;
defineOptions
({
name
:
'AccountManagement'
});
const
{
createMessage
}
=
useMessage
();
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
go
=
useGo
();
const
[
registerMoveUser
,
{
openModal
:
openMoveUserModal
}]
=
useModal
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
tableData
=
ref
([]);
const
isAdd
=
ref
(
true
);
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},
]
=
useTable
({
title
:
'添加编目'
,
api
:
async
(
params
)
=>
{
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
tableData
.
value
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
var
data
=
[];
data
=
tableData
.
value
;
if
(
params
.
name
!=
undefined
&&
params
.
name
!=
''
&&
params
.
name
!=
null
)
{
//过滤出名字包含params.name的数据
data
=
data
.
filter
((
item
)
=>
item
.
name
.
includes
(
params
.
name
));
}
if
(
params
.
username
!=
undefined
&&
params
.
username
!=
''
&&
params
.
username
!=
null
)
{
data
=
data
.
filter
((
item
)
=>
item
.
username
.
includes
(
params
.
username
));
}
return
{
...
response
,
data
:
data
};
},
rowKey
:
'businessId'
,
columns
,
rowSelection
:
true
,
formConfig
:
{
labelWidth
:
100
,
schemas
:
searchFormSchema
,
autoSubmitOnEnter
:
true
,
},
useSearchForm
:
true
,
showTableSetting
:
false
,
bordered
:
true
,
handleSearchInfoFn
(
info
)
{
return
info
;
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
});
isAdd
.
value
=
!!
data
?.
isAdd
;
});
const
getTitle
=
computed
(()
=>
{
return
isAdd
.
value
?
'添加轮播图'
:
'编辑轮播图'
;
});
/** 新增成功*/
function
handleSubmit
()
{
const
rowSelection
=
getRowSelection
().
selectedRowKeys
;
if
(
rowSelection
.
length
>
0
)
{
//已选中
//根据选中的查询用户 然后进行添加
let
data
=
[];
data
=
tableData
.
value
.
filter
((
item
)
=>
rowSelection
.
includes
(
item
.
businessId
));
emit
(
'success'
,
{
isAdd
:
unref
(
isAdd
),
values
:
{
...
data
},
length
:
rowSelection
.
length
});
closeModal
();
}
}
onMounted
(()
=>
{
tableData
.
value
=
addUserData
;
});
</
script
>
src/views/dataSharingAndExchange/carouselManagement/DeptTree.vue
0 → 100644
View file @
bbe6a4b2
<
template
>
<div
class=
"m-4 mr-0 overflow-hidden bg-white"
>
<BasicTree
title=
"部门列表"
ref=
"treeRef"
toolbar
search
treeWrapperClassName=
"h-[calc(100%-35px)] overflow-auto"
:clickRowToExpand=
"false"
:defaultExpandAll=
"true"
:treeData=
"treeData"
:fieldNames=
"
{ key: 'businessId', title: 'institutionName' }"
@select="handleSelect"
:actionList="actionList"
/>
</div>
<MoveTreeModal
@
register=
"registerMoveTreeModel"
@
success=
"handleSuccess"
/>
<UpdateTreeModal
@
register=
"registerModal"
@
success=
"handleSuccess"
/>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
h
,
nextTick
,
onMounted
,
ref
,
unref
}
from
'vue'
;
import
{
BasicTree
,
TreeActionItem
,
TreeActionType
,
TreeItem
}
from
'@/components/Tree'
;
import
{
getDeptList
}
from
'@/api/system/dept/dept'
;
import
{
Nullable
}
from
"@vben/types"
;
import
{
TreeData
}
from
"@/views/dataSharingAndExchange/catalogingManagement/institutionData"
;
import
{
DeleteOutlined
,
PlusOutlined
,
EditOutlined
,
FolderOutlined
}
from
"@ant-design/icons-vue"
;
import
{
Modal
}
from
"ant-design-vue"
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
MoveTreeModal
from
'./MoveTreeModal.vue'
;
import
UpdateTreeModal
from
'./UpdateTreeModal.vue'
;
import
{
useModal
}
from
"@/components/Modal"
;
defineOptions
({
name
:
'DeptTree'
});
const
emit
=
defineEmits
([
'select'
]);
const
{
createMessage
}
=
useMessage
();
const
treeData
=
ref
<
TreeItem
[]
>
([]);
const
treeRef
=
ref
<
Nullable
<
TreeActionType
>>
(
null
);
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
[
registerMoveTreeModel
,
{
openModal
:
openMoveTreeModel
}]
=
useModal
();
function
getTree
()
{
const
tree
=
unref
(
treeRef
);
if
(
!
tree
)
{
throw
new
Error
(
'tree is null!'
);
}
return
tree
;
}
async
function
fetch
()
{
const
data
=
TreeData
treeData
.
value
=
handleTree
(
data
,
'businessId'
,
undefined
,
undefined
,
undefined
)
await
nextTick
(()
=>
{
getTree
().
expandAll
(
true
)
})
}
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'id'
parentId
=
parentId
||
'parentId'
children
=
children
||
'children'
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
(
item
=>
{
return
item
[
parentId
]
}))
||
0
// 对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
// 循环所有项
const
treeData
=
cloneData
.
filter
(
father
=>
{
const
branchArr
=
cloneData
.
filter
(
child
=>
{
// 返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
]
})
branchArr
.
length
>
0
?
father
.
children
=
branchArr
:
''
// 返回第一层
return
father
[
parentId
]
===
rootId
})
return
treeData
!==
''
?
treeData
:
data
}
function
handleSelect
(
keys
)
{
emit
(
'select'
,
keys
[
0
]);
}
onMounted
(()
=>
{
fetch
();
});
/** 成功回调函数*/
function
handleSuccess
()
{
}
// 树的操作列表
const
actionList
=
[
{
//新增
render
:
(
node
)
=>
{
return
h
(
PlusOutlined
,
{
class
:
'ml-2'
,
onClick
:
()
=>
{
handleAdd
(
node
);
},
});
},
},
{
//修改
render
:
(
node
)
=>
{
return
h
(
EditOutlined
,
{
class
:
'ml-2'
,
onClick
:
()
=>
{
handleUpdate
(
node
);
},
});
},
},
{
//删除
render
:
(
node
)
=>
{
return
h
(
DeleteOutlined
,
{
class
:
'ml-2'
,
onClick
:
()
=>
{
handleDelete
(
node
);
},
});
},
},
{
//移动
render
:
(
node
)
=>
{
return
h
(
FolderOutlined
,
{
class
:
'ml-2'
,
onClick
:
()
=>
{
handleMove
(
node
);
},
});
},
},
];
// 新增节点
const
handleAdd
=
(
node
)
=>
{
openModal
(
true
,
{
isAdd
:
true
,
record
:
node
,
});
};
// 修改节点
const
handleUpdate
=
(
node
)
=>
{
openModal
(
true
,
{
isUpdate
:
true
,
record
:
node
,
});
};
// 移动节点
const
handleMove
=
(
node
)
=>
{
openMoveTreeModel
(
true
,
{
isMove
:
true
,
record
:
node
,
});
};
// 删除节点
const
handleDelete
=
(
node
)
=>
{
Modal
.
confirm
({
title
:
'确认删除'
,
content
:
'确定要删除此节点吗?'
,
okText
:
'确认'
,
cancelText
:
'取消'
,
onOk
()
{
// 执行删除逻辑
createMessage
.
success
(
'删除成功!'
)
},
onCancel
()
{
console
.
log
(
'取消删除'
);
createMessage
.
info
(
'取消删除'
)
},
});
};
</
script
>
src/views/dataSharingAndExchange/carouselManagement/MoveTreeModal.vue
0 → 100644
View file @
bbe6a4b2
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
AddTreeSchema
,
MoveFormSchema
}
from
'./institution.data'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
TreeData
}
from
"@/views/dataSharingAndExchange/catalogingManagement/institutionData"
;
defineOptions
({
name
:
'AccountModal'
});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
const
isMove
=
ref
(
false
);
const
rowId
=
ref
(
''
)
const
form
=
ref
([])
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
MoveFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
resetFields
();
setModalProps
({
confirmLoading
:
false
});
form
.
value
=
data
.
record
const
formData
=
{
institutionId
:
data
.
record
.
parentId
,
}
// 塞值
setFieldsValue
({
...
formData
,
});
const
treeList
=
handleTree
(
TreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
)
updateSchema
([
{
field
:
'institutionId'
,
componentProps
:
{
treeData
:
treeList
},
},
]);
});
const
getTitle
=
computed
(()
=>
(
'移动'
));
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'id'
parentId
=
parentId
||
'parentId'
children
=
children
||
'children'
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
(
item
=>
{
return
item
[
parentId
]
}))
||
0
// 对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
// 循环所有项
const
treeData
=
cloneData
.
filter
(
father
=>
{
const
branchArr
=
cloneData
.
filter
(
child
=>
{
// 返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
]
})
branchArr
.
length
>
0
?
father
.
children
=
branchArr
:
''
// 返回第一层
return
father
[
parentId
]
===
rootId
})
return
treeData
!==
''
?
treeData
:
data
}
/**确定按钮*/
async
function
handleSubmit
()
{
const
values
=
await
validate
();
createMessage
.
success
(
'移动成功'
)
closeModal
()
}
// 格式化日期
function
formatDate
(
date
)
{
const
year
=
date
.
getFullYear
();
const
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
);
// 月份从0开始,需要加1
const
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
'0'
);
const
hours
=
String
(
date
.
getHours
()).
padStart
(
2
,
'0'
);
const
minutes
=
String
(
date
.
getMinutes
()).
padStart
(
2
,
'0'
);
const
seconds
=
String
(
date
.
getSeconds
()).
padStart
(
2
,
'0'
);
return
`
${
year
}
-
${
month
}
-
${
day
}
${
hours
}
:
${
minutes
}
:
${
seconds
}
`
;
}
</
script
>
src/views/dataSharingAndExchange/carouselManagement/UpdateTreeModal.vue
0 → 100644
View file @
bbe6a4b2
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
AddTreeSchema
}
from
'./institution.data'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
TreeData
}
from
"@/views/dataSharingAndExchange/catalogingManagement/institutionData"
;
defineOptions
({
name
:
'AccountModal'
});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
const
isMove
=
ref
(
false
);
const
isAdd
=
ref
(
false
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
AddTreeSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
resetFields
();
setModalProps
({
confirmLoading
:
false
});
//修改
isAdd
.
value
=
!!
data
?.
isAdd
;
//修改
isUpdate
.
value
=
!!
data
?.
isUpdate
;
if
(
unref
(
isUpdate
))
{
//修改
// 获取行数据的id
rowId
.
value
=
data
.
record
.
businessId
;
const
formData
=
{
institutionId
:
data
.
record
.
parentId
,
institutionName
:
data
.
record
.
anotherName
,
code
:
data
.
record
.
code
}
// 塞值
setFieldsValue
({
...
formData
,
});
}
else
if
(
unref
(
isAdd
)){
//新增
}
const
treeList
=
handleTree
(
TreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
)
updateSchema
([
{
field
:
'institutionId'
,
componentProps
:
{
treeData
:
treeList
},
},
]);
});
const
getTitle
=
computed
(()
=>
(
!
unref
(
isUpdate
)
?
'新增编目'
:
'编辑编目'
));
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'id'
parentId
=
parentId
||
'parentId'
children
=
children
||
'children'
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
(
item
=>
{
return
item
[
parentId
]
}))
||
0
// 对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
// 循环所有项
const
treeData
=
cloneData
.
filter
(
father
=>
{
const
branchArr
=
cloneData
.
filter
(
child
=>
{
// 返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
]
})
branchArr
.
length
>
0
?
father
.
children
=
branchArr
:
''
// 返回第一层
return
father
[
parentId
]
===
rootId
})
return
treeData
!==
''
?
treeData
:
data
}
/**确定按钮*/
async
function
handleSubmit
()
{
const
values
=
await
validate
();
if
(
unref
(
isUpdate
)){
createMessage
.
success
(
'修改成功'
)
closeModal
()
}
else
if
(
!
unref
(
isUpdate
)){
createMessage
.
success
(
'新增成功'
)
closeModal
()
}
}
// 格式化日期
function
formatDate
(
date
)
{
const
year
=
date
.
getFullYear
();
const
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
);
// 月份从0开始,需要加1
const
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
'0'
);
const
hours
=
String
(
date
.
getHours
()).
padStart
(
2
,
'0'
);
const
minutes
=
String
(
date
.
getMinutes
()).
padStart
(
2
,
'0'
);
const
seconds
=
String
(
date
.
getSeconds
()).
padStart
(
2
,
'0'
);
return
`
${
year
}
-
${
month
}
-
${
day
}
${
hours
}
:
${
minutes
}
:
${
seconds
}
`
;
}
</
script
>
src/views/dataSharingAndExchange/carouselManagement/detail/AccountModal.vue
0 → 100644
View file @
bbe6a4b2
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
title=
"编辑"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
accountFormSchema
,
EditFormSchema
}
from
'../institution.data'
;
import
{
getDeptList
}
from
'@/api/system/dept/dept'
;
import
{
addUserApi
,
UserDetailApi
,
UserUpdataApi
}
from
'@/api/system/user/user'
import
{
encryptTwo
}
from
'../../../../src/utils/jsencrypt.js'
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
TreeData
}
from
"@/views/dataSharingAndExchange/catalogingManagement/institutionData"
;
defineOptions
({
name
:
'AccountModal'
});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
const
isMove
=
ref
(
false
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
EditFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
resetFields
();
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
isMove
.
value
=
!!
data
?.
isMove
;
if
(
unref
(
isUpdate
))
{
// 获取行数据的id
rowId
.
value
=
data
.
record
.
businessId
;
// 塞值
setFieldsValue
({
...
data
.
record
,
});
}
const
treeList
=
handleTree
(
TreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
)
updateSchema
([
{
field
:
'institutionId'
,
componentProps
:
{
treeData
:
treeList
},
},
]);
});
const
getTitle
=
computed
(()
=>
(
!
unref
(
isUpdate
)
?
'编辑'
:
'编辑'
));
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'id'
parentId
=
parentId
||
'parentId'
children
=
children
||
'children'
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
(
item
=>
{
return
item
[
parentId
]
}))
||
0
// 对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
// 循环所有项
const
treeData
=
cloneData
.
filter
(
father
=>
{
const
branchArr
=
cloneData
.
filter
(
child
=>
{
// 返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
]
})
branchArr
.
length
>
0
?
father
.
children
=
branchArr
:
''
// 返回第一层
return
father
[
parentId
]
===
rootId
})
return
treeData
!==
''
?
treeData
:
data
}
/**确定按钮*/
async
function
handleSubmit
()
{
try
{
//拿到表单内容
const
values
=
await
validate
();
//通过表单获取的institutionId去查找相同TreeData中的institutionId的institutionName
const
institutionName
=
TreeData
.
find
(
item
=>
item
.
businessId
===
values
.
institutionId
).
institutionName
values
.
institutionName
=
institutionName
setModalProps
({
confirmLoading
:
true
});
// 编辑
if
(
unref
(
isUpdate
))
{
values
.
businessId
=
rowId
.
value
//修改列表值
emit
(
'success'
,
{
isUpdate
:
unref
(
isUpdate
),
values
:
{
...
values
,
id
:
rowId
.
value
}
});
createMessage
.
success
(
'编辑成功'
);
closeModal
();
}
else
{
//根据institutionId去查找相同TreeData中的institutionId的institutionName
const
institutionName
=
TreeData
.
find
(
item
=>
item
.
businessId
===
values
.
institutionId
).
institutionName
const
paramsAdd
=
{
username
:
values
.
username
,
name
:
values
.
name
,
institutionId
:
values
.
institutionId
,
institutionName
:
institutionName
,
createDate
:
formatDate
(
new
Date
())
}
emit
(
'success'
,
{
isUpdate
:
unref
(
isUpdate
),
values
:
{
...
paramsAdd
}
});
createMessage
.
success
(
'新增成功'
);
closeModal
();
}
}
finally
{
setModalProps
({
confirmLoading
:
false
});
}
}
// 格式化日期
function
formatDate
(
date
)
{
const
year
=
date
.
getFullYear
();
const
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
);
// 月份从0开始,需要加1
const
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
'0'
);
const
hours
=
String
(
date
.
getHours
()).
padStart
(
2
,
'0'
);
const
minutes
=
String
(
date
.
getMinutes
()).
padStart
(
2
,
'0'
);
const
seconds
=
String
(
date
.
getSeconds
()).
padStart
(
2
,
'0'
);
return
`
${
year
}
-
${
month
}
-
${
day
}
${
hours
}
:
${
minutes
}
:
${
seconds
}
`
;
}
</
script
>
src/views/dataSharingAndExchange/carouselManagement/detail/account.data.ts
0 → 100644
View file @
bbe6a4b2
import
{
getAllRoleList
}
from
'@/api/system/role/role'
;
import
{
BasicColumn
,
FormSchema
}
from
'@/components/Table'
;
import
{
h
}
from
'vue'
;
import
{
Tag
}
from
'ant-design-vue'
;
import
{
Switch
}
from
'ant-design-vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
changeFlagApi
}
from
'@/api/system/user/user'
;
// 引入开关组件
type
CheckedType
=
boolean
|
string
|
number
;
export
const
columns
:
BasicColumn
[]
=
[
{
title
:
'质量主体名称'
,
dataIndex
:
'fileName'
,
width
:
150
,
slots
:
{
customRender
:
'fileName'
},
},
{
title
:
'描述'
,
dataIndex
:
'descripe'
,
width
:
150
,
},
{
title
:
'创建者'
,
dataIndex
:
'holder'
,
width
:
150
,
},
{
title
:
'创建时间'
,
dataIndex
:
'createDate'
,
width
:
150
,
},
{
title
:
'更新时间'
,
dataIndex
:
'updateDate'
,
width
:
150
,
},
{
title
:
'原始主体'
,
dataIndex
:
'originalPrincipal'
,
slots
:
{
customRender
:
'originalPrincipal'
},
width
:
150
,
},
];
export
const
searchFormSchema
:
FormSchema
[]
=
[
{
field
:
'name'
,
label
:
'名称'
,
component
:
'Input'
,
componentProps
:
{
placeholder
:
'请输入名称'
,
},
colProps
:
{
span
:
7
},
},
];
export
const
accountFormSchema
:
any
[]
=
[
{
field
:
'fileName'
,
label
:
'文件名称'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
disabled
:
true
,
},
},
{
field
:
'location'
,
label
:
'保存位置'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
disabled
:
true
,
},
},
{
field
:
'createDate'
,
label
:
'创建时间'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
disabled
:
true
,
},
},
{
field
:
'updateDate'
,
label
:
'最近修改'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
disabled
:
true
,
},
},
];
/**移动*/
export
const
MoveFormSchema
:
any
[]
=
[
{
field
:
'taskId'
,
label
:
'路径'
,
component
:
'TreeSelect'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
fieldNames
:
{
label
:
'fileName'
,
value
:
'businessId'
,
},
getPopupContainer
:
()
=>
document
.
body
,
},
required
:
true
,
},
];
/**存储管理*/
export
const
StorageSchema
:
FormSchema
[]
=
[
{
field
:
'isStorage'
,
label
:
'存储主体问题数据明细'
,
component
:
'Checkbox'
,
colProps
:
{
lg
:
12
,
md
:
24
},
componentProps
:
({
formModel
,
formActionType
})
=>
({
onChange
:
()
=>
{
formActionType
.
updateSchema
([{
field
:
'isStorageInHDFS'
,
ifShow
:
formModel
.
isStorage
}]);
formActionType
.
updateSchema
([{
field
:
'handle'
,
ifShow
:
formModel
.
isStorage
}]);
formActionType
.
updateSchema
([{
field
:
'isAutoClear'
,
ifShow
:
formModel
.
isStorage
}]);
formActionType
.
updateSchema
([{
field
:
'clear'
,
ifShow
:
formModel
.
isStorage
}]);
formActionType
.
updateSchema
([{
field
:
'divider'
,
ifShow
:
formModel
.
isStorage
}]);
},
}),
},
{
field
:
'isStorageInHDFS'
,
label
:
'存储到HDFS'
,
labelWidth
:
85
,
component
:
'Checkbox'
,
colProps
:
{
lg
:
12
,
md
:
24
},
ifShow
:
false
,
},
{
field
:
'handle'
,
label
:
'手动清理'
,
component
:
'BasicTitle'
,
ifShow
:
false
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'clear'
,
label
:
'清理'
,
component
:
'Input'
,
labelWidth
:
30
,
colProps
:
{
lg
:
24
,
md
:
24
},
ifShow
:
false
,
slot
:
'clear'
,
},
{
field
:
'divider'
,
component
:
'Divider'
,
ifShow
:
false
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'isAutoClear'
,
label
:
'自动清理'
,
labelWidth
:
70
,
component
:
'Checkbox'
,
colProps
:
{
lg
:
12
,
md
:
24
},
ifShow
:
false
,
componentProps
:
({
formModel
,
formActionType
})
=>
({
onChange
:
()
=>
{
formActionType
.
updateSchema
([{
field
:
'maxRetentionTime'
,
ifShow
:
formModel
.
isAutoClear
}]);
formActionType
.
updateSchema
([{
field
:
'inspectionCycle'
,
ifShow
:
formModel
.
isAutoClear
}]);
formActionType
.
updateSchema
([{
field
:
'inspectionTime'
,
ifShow
:
formModel
.
isAutoClear
}]);
},
}),
},
{
field
:
'maxRetentionTime'
,
label
:
'最长保留时间'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
addonAfter
:
'天'
,
},
ifShow
:
false
,
},
{
field
:
'inspectionCycle'
,
label
:
'检查周期'
,
component
:
'Select'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
options
:
[
{
label
:
'每天'
,
value
:
'每天'
},
{
label
:
'每周'
,
value
:
'每周'
},
{
label
:
'每月'
,
value
:
'每月'
},
{
label
:
'每年'
,
value
:
'每年'
},
],
},
ifShow
:
false
,
},
{
field
:
'inspectionTime'
,
label
:
'检查时间'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
ifShow
:
false
,
slot
:
'isStorageInHDFS'
,
},
];
export
const
resetNameFormSchema
:
FormSchema
[]
=
[
{
field
:
'fileName'
,
label
:
'文件名称'
,
component
:
'Input'
,
rules
:
[
{
required
:
true
,
message
:
'请输入文件名称'
,
},
],
componentProps
:
{
placeholder
:
'请输入文件名称'
,
},
colProps
:
{
span
:
8
},
},
];
export
const
createFileFormSchema
:
FormSchema
[]
=
[
{
field
:
'taskId'
,
label
:
'路径'
,
component
:
'TreeSelect'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
fieldNames
:
{
label
:
'fileName'
,
value
:
'businessId'
,
},
getPopupContainer
:
()
=>
document
.
body
,
},
required
:
true
,
},
{
field
:
'fileName'
,
label
:
'文件名称'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
rules
:
[
{
required
:
true
,
message
:
'请输入文件名称'
,
},
],
componentProps
:
{
placeholder
:
'请输入文件名称'
,
},
},
];
export
const
createTaskFormSchema
:
FormSchema
[]
=
[
{
field
:
'taskId'
,
label
:
'路径'
,
component
:
'TreeSelect'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
fieldNames
:
{
label
:
'fileName'
,
value
:
'businessId'
,
},
getPopupContainer
:
()
=>
document
.
body
,
},
required
:
true
,
},
{
field
:
'name'
,
label
:
'质量主体名称'
,
component
:
'Input'
,
rules
:
[
{
required
:
true
,
message
:
'请输入质量主体名称'
,
},
],
componentProps
:
{
placeholder
:
'请输入质量主体名称'
,
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'fileType'
,
label
:
'文件类型'
,
component
:
'Input'
,
defaultValue
:
'质量主体'
,
componentProps
:
{
readonly
:
true
,
style
:
{
border
:
'none'
,
backgroundColor
:
'transparent'
,
},
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
src/views/dataSharingAndExchange/carouselManagement/detail/dataQualityMainBodyData.ts
0 → 100644
View file @
bbe6a4b2
This diff is collapsed.
Click to expand it.
src/views/dataSharingAndExchange/carouselManagement/detail/index.vue
0 → 100644
View file @
bbe6a4b2
This diff is collapsed.
Click to expand it.
src/views/dataSharingAndExchange/carouselManagement/index.vue
0 → 100644
View file @
bbe6a4b2
<
template
>
<PageWrapper
dense
contentClass=
"flex"
>
<template
#
headerContent
>
<div
style=
"display: flex; justify-content: space-between"
>
<div
class=
"title"
>
<div
class=
"title_left"
>
<div>
<Icon
icon=
"dashicons:images-alt2"
:size=
"32"
:color=
"'#7360E2'"
/>
</div>
<div
style=
"padding-left: 10px"
>
<div
class=
"name"
>
轮播图管理
</div>
<div
style=
"color: darkgray"
>
数据要素/商城管理
</div>
</div>
</div>
</div>
</div>
<div
class=
"headerForm"
>
<BasicForm
@
register=
"registerForm"
>
<template
#
toolbar
>
<a-button
type=
"primary"
>
导入
</a-button>
</
template
>
</BasicForm>
</div>
</template>
<BasicTable
@
register=
"registerTable"
:searchInfo=
"searchInfo"
>
<
template
#
toolbar
>
<a-button
type=
"primary"
>
新增轮播图
</a-button>
<a-button
type=
"primary"
>
批量删除
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"[
// 详情按钮
{
icon: 'dashicons:media-document',
tooltip: '详情',
onClick: handleDetails.bind(null, record),
},
// 编辑按钮
{
icon: 'dashicons:edit-large',
tooltip: '编辑',
// onClick: handleDetails.bind(null, record),
},
]"
/>
</
template
>
</template>
</BasicTable>
<AccountModal
@
register=
"registerModal"
@
success=
"handleSuccess"
/>
<MoveUser
@
register=
"registerMoveUser"
@
success=
"handleMoveSuccess"
/>
<AddUserModal
@
register=
"registerAddUserModal"
@
success=
"handleAddSuccess"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
unref
,
onDeactivated
,
onMounted
,
ref
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
Row
,
Col
}
from
'ant-design-vue'
;
import
{
getAccountList
,
deleteUser
,
exportUserList
}
from
'@/api/system/user/user'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
BasicForm
from
'@/components/Form/src/BasicForm.vue'
;
import
user
from
'../../../../mock/sys/user'
;
import
*
as
echarts
from
'echarts'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
{
useForm
}
from
'@/components/Form'
;
import
{
useGo
}
from
'@/hooks/web/usePage'
;
import
{
downloadByData
}
from
'@/utils/file/download'
;
import
{
useRoute
,
onBeforeRouteLeave
,
useRouter
}
from
'vue-router'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
tableDataForIndex
}
from
'@/views/dataSharingAndExchange/carouselManagement/institutionData'
;
import
AccountModal
from
'./AccountModal.vue'
;
import
importModal
from
'./importModal.vue'
;
import
MoveUser
from
'./moveUser.vue'
;
import
AddUserModal
from
'./AddUserModal.vue'
;
import
{
columns
,
searchFormSchema
}
from
'./institution.data'
;
defineOptions
({
name
:
'AccountManagement'
});
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
go
=
useGo
();
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
[
registerAddUserModal
,
{
openModal
:
addUserModal
}]
=
useModal
();
const
[
registerMoveUser
,
{
openModal
:
openMoveUserModal
}]
=
useModal
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
tableData
=
ref
([]);
const
{
push
}
=
useRouter
();
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},
]
=
useTable
({
title
:
'轮播图管理列表'
,
api
:
async
(
params
)
=>
{
console
.
log
(
params
);
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
tableData
.
value
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
//过滤data中的数据,取出等于params.deptId的数据
var
data
=
[];
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
if
(
params
.
institutionId
!=
undefined
&&
params
.
institutionId
!=
''
)
{
data
=
tableData
.
value
.
filter
((
item
)
=>
item
.
institutionId
===
params
.
institutionId
);
}
else
{
data
=
tableData
.
value
;
}
if
(
params
.
name
!=
undefined
&&
params
.
name
!=
''
&&
params
.
name
!=
null
)
{
//过滤出名字包含params.name的数据
data
=
data
.
filter
((
item
)
=>
item
.
name
.
includes
(
params
.
name
));
}
if
(
params
.
username
!=
undefined
&&
params
.
username
!=
''
&&
params
.
username
!=
null
)
{
data
=
data
.
filter
((
item
)
=>
item
.
username
.
includes
(
params
.
username
));
}
return
{
...
response
,
data
:
data
};
},
rowKey
:
'businessId'
,
columns
,
rowSelection
:
true
,
formConfig
:
{
labelWidth
:
10
,
schemas
:
searchFormSchema
,
autoSubmitOnEnter
:
true
,
resetFunc
:
()
=>
{
searchInfo
.
institutionId
=
''
;
},
},
useSearchForm
:
false
,
showTableSetting
:
false
,
showIndexColumn
:
false
,
bordered
:
true
,
handleSearchInfoFn
(
info
)
{
return
info
;
},
actionColumn
:
{
width
:
100
,
title
:
'操作'
,
dataIndex
:
'action'
,
},
});
//初始化表单
const
[
registerForm
,
{
getFieldsValue
,
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
10
,
schemas
:
searchFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
/** 新增按钮*/
function
handleCreate
()
{
addUserModal
(
true
,
{
isAdd
:
true
,
});
}
function
updateData
()
{
console
.
log
();
}
/**批量移动*/
function
handleMoveBatch
()
{
const
rowSelection
=
getRowSelection
().
selectedRowKeys
;
openMoveUserModal
(
true
,
{
idList
:
rowSelection
,
isMove
:
true
,
});
}
/** 移动按钮*/
function
handleMove
(
record
:
Recordable
)
{
openMoveUserModal
(
true
,
{
record
,
isMove
:
true
,
});
}
/** 新增按钮*/
function
handleAdd
(
record
:
Recordable
)
{
openModal
(
true
,
{
record
,
isAdd
:
true
,
});
}
/** 编辑按钮*/
function
handleEdit
(
record
:
Recordable
)
{
openModal
(
true
,
{
record
,
isUpdate
:
true
,
});
}
/** 详情按钮*/
function
handleDetails
(
record
:
Recordable
)
{
push
({
path
:
'/dataSharingAndExchange/carouselManagement/detail'
,
// path: '/dataSharingAndExchange/resourceManagement/detail/index',
// path: '/dataWarehousePlanning/physicalModel/detail',
query
:
record
,
});
console
.
log
(
'path'
,
record
);
}
/** 删除按钮*/
function
handleDelete
(
record
:
Recordable
)
{
tableData
.
value
.
splice
(
tableData
.
value
.
findIndex
((
item
)
=>
item
.
businessId
===
record
.
businessId
),
1
,
);
createMessage
.
success
(
'删除成功!'
);
reload
();
}
/** 导入成功*/
function
handleImportSuccess
()
{
reload
();
}
/** 新增/编辑成功*/
function
handleSuccess
({
isUpdate
,
values
})
{
if
(
isUpdate
)
{
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
//修改表单的值
const
result
=
updateTableDataRecord
(
values
.
businessId
,
values
);
reload
();
}
else
{
tableData
.
value
.
push
(
values
);
reload
();
}
}
/** 移动*/
function
handleMoveSuccess
({
isMove
,
values
})
{
const
rowSelection
=
getRowSelection
().
selectedRowKeys
;
if
(
rowSelection
.
length
>
0
)
{
//批量移动
for
(
let
i
=
0
;
i
<
rowSelection
.
length
;
i
++
)
{
const
result
=
updateTableDataRecord
(
values
[
i
].
institutionId
,
values
[
i
]);
}
}
else
{
//单个移动
const
result
=
updateTableDataRecord
(
values
.
businessId
,
values
);
}
reload
();
}
/** 添加用户*/
function
handleAddSuccess
({
isAdd
,
values
,
length
})
{
if
(
length
>
0
)
{
//批量添加
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
tableData
.
value
.
push
(
values
[
i
]);
}
}
reload
();
}
/** 部门树的select*/
function
handleSelect
(
institutionId
=
''
)
{
searchInfo
.
institutionId
=
institutionId
;
reload
();
}
function
handleView
(
record
:
Recordable
)
{
go
(
'/system/account_detail/'
+
record
.
id
);
}
onMounted
(()
=>
{
tableData
.
value
=
tableDataForIndex
;
const
path
=
route
.
path
;
if
(
filterStore
.
getSearchParams
[
path
])
{
if
(
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]
!==
{}))
{
const
params
=
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]);
getForm
().
setFieldsValue
({
page
:
params
.
page
,
pageSize
:
params
.
pageSize
,
username
:
params
.
username
,
flag
:
params
.
flag
,
});
searchInfo
.
institutionId
=
params
.
institutionId
;
}
}
});
onBeforeRouteLeave
((
to
,
from
,
next
)
=>
{
const
params
=
Object
.
assign
({},
getSearchInfo
(),
getForm
().
getFieldsValue
());
filterStore
.
setSearchParams
({
path
:
from
.
path
,
param
:
{
...
params
,
},
});
next
();
// 允许导航
});
</
script
>
<
style
scoped
lang=
"scss"
>
.title
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
.title_left
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
.name
{
padding-bottom
:
5px
;
font-size
:
17px
;
font-weight
:
600
;
}
}
}
.headerForm
{
margin-top
:
30px
;
}
</
style
>
src/views/dataSharingAndExchange/carouselManagement/institution.data.ts
0 → 100644
View file @
bbe6a4b2
This diff is collapsed.
Click to expand it.
src/views/dataSharingAndExchange/carouselManagement/institutionData.ts
0 → 100644
View file @
bbe6a4b2
This diff is collapsed.
Click to expand it.
src/views/dataSharingAndExchange/carouselManagement/moveUser.vue
0 → 100644
View file @
bbe6a4b2
<
template
>
<BasicModal
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
minHeight=
"50"
>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
accountFormSchema
,
MoveFormSchema
,
resetPasswordFormSchema
}
from
'./institution.data'
;
import
{
getDeptList
}
from
'@/api/system/dept/dept'
;
import
{
resetUserPwd
}
from
'@/api/system/user/user'
import
{
encryptTwo
}
from
'@/utils/jsencrypt'
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
TreeData
,
userData
}
from
"@/views/dataSharingAndExchange/catalogingManagement/institutionData"
;
defineOptions
({
name
:
'AccountModal'
});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
const
rowId
=
ref
(
''
);
const
idList
=
ref
([])
const
rowData
=
ref
([])
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
span
:
24
},
schemas
:
MoveFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
//每次点击弹窗 需要清空存储的数据
rowData
.
value
=
[]
//重置表单数据
resetFields
();
setModalProps
({
confirmLoading
:
false
});
if
(
data
.
idList
!=
null
&&
data
.
idList
!=
undefined
&&
data
.
idList
.
length
>
0
){
//批量移动
//根据id查用户信息
idList
.
value
=
data
.
idList
;
//过滤出userData中businessId与idList相等的数据
const
result
=
userData
.
filter
(
item
=>
data
.
idList
.
includes
(
item
.
businessId
));
result
.
forEach
(
item
=>
{
rowData
.
value
.
push
(
item
)
})
}
else
{
rowData
.
value
.
push
(
data
.
record
)
//单个移动
rowId
.
value
=
data
.
record
.
businessId
;
setFieldsValue
({
...
data
.
record
,
});
}
const
treeList
=
handleTree
(
TreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
)
updateSchema
([
{
field
:
'institutionId'
,
componentProps
:
{
treeData
:
treeList
},
},
]);
});
const
getTitle
=
computed
(()
=>
(
'移动用户'
));
/**确定按钮*/
async
function
handleSubmit
()
{
try
{
//校验并得到表单数据
const
values
=
await
validate
();
setModalProps
({
confirmLoading
:
true
});
//拿到表单里修改后的值 进行修改赋值 传给父组件
console
.
log
(
'rowData.value:'
,
rowData
.
value
)
rowData
.
value
.
forEach
(
item
=>
{
item
.
institutionId
=
values
.
institutionId
})
emit
(
'success'
,
{
values
:
{
...
rowData
.
value
}})
createMessage
.
success
(
'移动成功'
);
closeModal
();
}
finally
{
setModalProps
({
confirmLoading
:
false
});
}
}
/**数组对象转成树*/
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'id'
parentId
=
parentId
||
'parentId'
children
=
children
||
'children'
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
(
item
=>
{
return
item
[
parentId
]
}))
||
0
// 对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
// 循环所有项
const
treeData
=
cloneData
.
filter
(
father
=>
{
const
branchArr
=
cloneData
.
filter
(
child
=>
{
// 返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
]
})
branchArr
.
length
>
0
?
father
.
children
=
branchArr
:
''
// 返回第一层
return
father
[
parentId
]
===
rootId
})
return
treeData
!==
''
?
treeData
:
data
}
</
script
>
src/views/dataSharingAndExchange/resourceManagement/detail/index.vue
View file @
bbe6a4b2
...
...
@@ -248,10 +248,16 @@
const
{
createMessage
}
=
useMessage
();
const
page
=
ref
(
'1'
);
const
tableData
=
ref
(
infoData
);
const
samplingTableData
=
ref
(
samplingInfoData
);
const
associationData
=
ref
(
associationRulesData
);
const
associationInfoData
=
ref
(
associationRulesInfoData
);
const
tableData
=
ref
([]);
const
samplingTableData
=
ref
([]);
const
associationData
=
ref
([]);
const
associationInfoData
=
ref
([]);
// 初始化数据
tableData
.
value
=
infoData
;
samplingTableData
.
value
=
samplingInfoData
;
associationData
.
value
=
associationRulesData
;
associationInfoData
.
value
=
associationRulesInfoData
;
const
title
=
ref
(
''
);
const
sql
=
ref
(
''
);
let
changeAble
=
ref
(
false
);
...
...
src/views/dataSharingAndExchange/resourceManagement/index.vue
View file @
bbe6a4b2
...
...
@@ -14,17 +14,14 @@
</div>
</div>
</div>
</
template
>
</PageWrapper>
<PageWrapper
dense
contentFullHeight
fixedHeight
contentClass=
"flex"
>
<
template
#
headerContent
<div
class=
"headerForm"
><BasicForm
@
register=
"registerForm"
>
<template
#
toolbar
>
<a-button
type=
"primary"
>
导入
</a-button>
</
template
>
</BasicForm></template
</BasicForm></div
>
</template>
<BasicTable
@
register=
"registerTable"
:searchInfo=
"searchInfo"
>
<
template
#
toolbar
>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
...
...
@@ -313,4 +310,8 @@
}
}
}
.headerForm
{
margin-top
:
30px
;
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment