Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
weiqiao-vue
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
金民
weiqiao-vue
Commits
f6b76856
Commit
f6b76856
authored
Dec 30, 2025
by
宋春膨
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/weiqiao-vue3' into weiqiao-vue3
parents
33196f48
713a778a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
515 additions
and
97 deletions
+515
-97
xjrsoft-vue3/src/api/jcsj/ckwz/index.ts
+15
-3
xjrsoft-vue3/src/api/jcsj/gxgl/model/GxglModel.ts
+228
-5
xjrsoft-vue3/src/views/jcsj/ckwz/components/config.ts
+2
-2
xjrsoft-vue3/src/views/jcsj/ckwz/index.vue
+64
-27
xjrsoft-vue3/src/views/jcsj/gxgl/components/config.ts
+0
-0
xjrsoft-vue3/src/views/jcsj/gxgl/components/workflowPermission.ts
+205
-59
xjrsoft-vue3/src/views/jcsj/gxgl/index.vue
+1
-1
xjrsoft-vue3/src/views/scgl/scjh/components/Form.vue
+0
-0
No files found.
xjrsoft-vue3/src/api/jcsj/ckwz/index.ts
View file @
f6b76856
...
...
@@ -8,9 +8,7 @@ enum Api {
List
=
'/jcsj/ckwz/list'
,
Info
=
'/jcsj/ckwz/info'
,
RokeStockLocation
=
'/jcsj/ckwz'
,
Tree
=
'/jcsj/ckwz/tree'
,
}
/**
...
...
@@ -88,6 +86,20 @@ export async function deleteRokeStockLocation(ids: string[], mode: ErrorMessageM
);
}
/**
* @description: 获取位置树数据
*/
export
async
function
getRokeStockLocationTree
(
mode
:
ErrorMessageMode
=
'modal'
)
{
return
defHttp
.
get
<
any
>
(
{
url
:
Api
.
Tree
,
},
{
errorMessageMode
:
mode
,
},
);
}
xjrsoft-vue3/src/api/jcsj/gxgl/model/GxglModel.ts
View file @
f6b76856
...
...
@@ -4,15 +4,13 @@ import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';
* @description: RokeProcess分页参数 模型
*/
export
interface
RokeProcessPageParams
extends
BasicPageParams
{
nam
e
:
string
;
cod
e
:
string
;
defaultReporter
:
string
;
name
:
string
;
categoryId
:
string
;
collectionSchemeId
:
string
;
note
:
string
;
}
/**
...
...
@@ -21,18 +19,243 @@ export interface RokeProcessPageParams extends BasicPageParams {
export
interface
RokeProcessPageModel
{
id
:
string
;
code
:
string
;
name
:
string
;
categoryId
:
string
;
collectionSchemeId
:
string
;
}
/**
* @description: RokeProcess表类型
*/
export
interface
RokeProcessModel
{
id
:
string
;
deleteMark
:
string
;
messageMainAttachmentId
:
string
;
name
:
string
;
code
:
string
;
categoryId
:
string
;
processType
:
string
;
internalCode
:
string
;
active
:
string
;
withoutWoProduce
:
string
;
note
:
string
;
ratedWorkingHours
:
string
;
companyId
:
string
;
isPress
:
string
;
prepareWorkHours
:
string
;
collectionSchemeId
:
string
;
qualityMode
:
string
;
qcSchemeId
:
string
;
isQuality
:
string
;
salaryType
:
string
;
baseQty
:
string
;
salaryUnit
:
string
;
salary
:
string
;
salaryCode
:
string
;
qcSalaryBasis
:
string
;
qcSalaryType
:
string
;
qcBaseQty
:
string
;
qcSalaryUnit
:
string
;
qcSalary
:
string
;
qcSalaryCode
:
string
;
defaultReporter
:
string
;
collectionItem
:
string
;
inspectionCollectionItem
:
string
;
inspectionScheme
:
string
;
inspectionDepartment
:
string
;
inspectionStaff
:
string
;
defectProcessing
:
string
;
createDate
:
string
;
createUserId
:
string
;
modifyDate
:
string
;
modifyUserId
:
string
;
zyzdFile
:
string
;
zyzdtpFile
:
string
;
mesProcessItemList
?:
MesProcessItemModel
;
mesProcessProductList
?:
MesProcessProductModel
;
}
/**
* @description: MesProcessItem表类型
*/
export
interface
MesProcessItemModel
{
id
:
string
;
processId
:
string
;
code
:
string
;
name
:
string
;
required
:
string
;
categoryId
:
string
;
contentType
:
string
;
dataType
:
string
;
dictId
:
string
;
relatedModelId
:
string
;
relatedModelName
:
string
;
relatedModelDomain
:
string
;
standardValue
:
string
;
upperValue
:
string
;
lowerValue
:
string
;
note
:
string
;
companyId
:
string
;
qualityCategoryId
:
string
;
analysisMethod
:
string
;
qualityMethodId
:
string
;
destructive
:
string
;
keyItem
:
string
;
deleteMark
:
string
;
createDate
:
string
;
createUserId
:
string
;
modifyDate
:
string
;
modifyUserId
:
string
;
}
0
;
/**
* @description: MesProcessProduct表类型
*/
export
interface
MesProcessProductModel
{
id
:
string
;
deleteMark
:
string
;
cpbh
:
string
;
cpmc
:
string
;
nbdm
:
string
;
hjzt
:
string
;
cptp
:
string
;
kxs
:
string
;
kcg
:
string
;
wllx
:
string
;
cplx
:
string
;
gg
:
string
;
xh
:
string
;
fpl
:
string
;
bzzl
:
string
;
erpid
:
string
;
zygf
:
string
;
bz
:
string
;
p1
:
string
;
p2
:
string
;
p3
:
string
;
p4
:
string
;
p5
:
string
;
p6
:
string
;
p7
:
string
;
p8
:
string
;
p9
:
string
;
p10
:
string
;
createDate
:
string
;
createUserId
:
string
;
modifyDate
:
string
;
modifyUserId
:
string
;
processId
:
string
;
isFeeding
:
string
;
number
:
string
;
}
/**
* @description: RokeProcess分页返回值结构
...
...
xjrsoft-vue3/src/views/jcsj/ckwz/components/config.ts
View file @
f6b76856
...
...
@@ -8,7 +8,7 @@ export const searchFormSchema: FormSchema[] = [
defaultValue
:
undefined
,
component
:
'Input'
,
},
{
/*
{
field: 'parentId',
label: '上级位置',
defaultValue: undefined,
...
...
@@ -33,7 +33,7 @@ export const searchFormSchema: FormSchema[] = [
showSearch: true,
getPopupContainer: () => document.body,
},
},
},
*/
{
field
:
'locationType'
,
label
:
'位置类型'
,
...
...
xjrsoft-vue3/src/views/jcsj/ckwz/index.vue
View file @
f6b76856
<
template
>
<ResizePageWrapper
:hasLeft=
"false"
>
<template
#
resizeRight
>
<BasicTable
@
register=
"registerTable"
isMenuTable
ref=
"tableRef"
>
<PageWrapper
dense
fixedHeight
contentFullHeight
contentClass=
"flex"
>
<div
class=
"w-1/5 xl:w-1/5 mr-2"
>
<BasicTree
title=
"上级位置"
toolbar
search
:defaultExpandAll=
"true"
:clickRowToExpand=
"true"
:treeData=
"treeData"
:fieldNames=
"
{ key: 'id', title: 'name' }"
@select="handleSelect"
>
<template
#
title=
"item"
>
{{
item
.
name
}}
</
template
>
</BasicTree>
</div>
<div
class=
"w-4/5 xl:w-4/5"
>
<BasicTable
@
register=
"registerTable"
isMenuTable
ref=
"tableRef"
>
<
template
#
toolbar
>
<template
v-for=
"button in tableButtonConfig"
:key=
"button.code"
>
...
...
@@ -45,29 +53,22 @@
</BasicTable>
</template>
<CkwzModal
@
register=
"registerModal"
@
success=
"handleFormSuccess"
@
cancel=
"handleFormCancel"
/>
</ResizePageWrapper>
</div>
<CkwzModal
@
register=
"registerModal"
@
success=
"handleFormSuccess"
@
cancel=
"handleFormCancel"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
provide
,
Ref
,
createVNode
,
import
{
ref
,
computed
,
provide
,
Ref
,
createVNode
,
onMounted
}
from
'vue'
;
import
{
Modal
}
from
'ant-design-vue'
;
import
{
ExclamationCircleOutlined
}
from
'@ant-design/icons-vue'
;
import
{
BasicTable
,
useTable
,
TableAction
,
ActionItem
}
from
'/@/components/Table'
;
import
{
getRokeStockLocationPage
,
deleteRokeStockLocation
}
from
'/@/api/jcsj/ckwz'
;
import
{
ResizePageWrapper
}
from
'/@/components/Page'
;
import
{
getRokeStockLocationPage
,
deleteRokeStockLocation
,
getRokeStockLocationTree
}
from
'/@/api/jcsj/ckwz'
;
import
{
PageWrapper
}
from
'/@/components/Page'
;
import
{
BasicTree
,
TreeItem
}
from
'/@/components/Tree'
;
import
{
useMessage
}
from
'/@/hooks/web/useMessage'
;
import
{
useI18n
}
from
'/@/hooks/web/useI18n'
;
import
{
usePermission
}
from
'/@/hooks/web/usePermission'
;
...
...
@@ -117,6 +118,10 @@
const
{
enableLockeData
,
handleOpenFormEnableLockeData
,
handleCloseFormEnableLocke
,
handleHasEnableLocke
}
=
useConcurrentLock
();
// 树相关
const
treeData
=
ref
<
TreeItem
[]
>
([]);
const
selectedParentId
=
ref
<
string
>
(
''
);
const
{
notification
}
=
useMessage
();
const
{
t
}
=
useI18n
();
defineEmits
([
'register'
]);
...
...
@@ -181,7 +186,12 @@
},
bordered
:
false
,
beforeFetch
:
(
params
)
=>
{
pageParamsInfo
.
value
=
{...
params
,
FormId
:
formIdComputedRef
.
value
,
PK
:
'id'
}
pageParamsInfo
.
value
=
{
...
params
,
FormId
:
formIdComputedRef
.
value
,
PK
:
'id'
,
parentId
:
selectedParentId
.
value
||
undefined
,
};
return
pageParamsInfo
.
value
;
},
afterFetch
:
(
res
)
=>
{
...
...
@@ -298,11 +308,38 @@
}
function
handleSuccess
()
{
reload
();
}
// 树选择处理
function
handleSelect
(
selectIds
:
string
[])
{
selectedParentId
.
value
=
selectIds
[
0
]
||
''
;
reload
();
}
// 加载树数据
async
function
loadTreeData
()
{
try
{
const
result
=
await
getRokeStockLocationTree
();
// 处理接口返回的数据格式:{code: 0, data: [...], success: true}
// defHttp 可能会自动提取 data,但也可能需要手动处理
let
data
=
result
;
if
(
result
&&
typeof
result
===
'object'
&&
'data'
in
result
&&
Array
.
isArray
(
result
.
data
))
{
data
=
result
.
data
;
}
else
if
(
result
&&
typeof
result
===
'object'
&&
'success'
in
result
&&
result
.
data
)
{
data
=
result
.
data
;
}
if
(
Array
.
isArray
(
data
))
{
treeData
.
value
=
data
as
TreeItem
[];
}
}
catch
(
error
)
{
console
.
error
(
'加载位置树失败:'
,
error
);
}
}
onMounted
(()
=>
{
loadTreeData
();
});
function
handleFormSuccess
()
{
...
...
xjrsoft-vue3/src/views/jcsj/gxgl/components/config.ts
View file @
f6b76856
This diff is collapsed.
Click to expand it.
xjrsoft-vue3/src/views/jcsj/gxgl/components/workflowPermission.ts
View file @
f6b76856
export
const
permissionList
=
[
{
required
:
false
,
view
:
true
,
edit
:
false
,
disabled
:
true
,
isSaveTable
:
false
,
tableName
:
''
,
fieldName
:
'编码'
,
fieldId
:
'code'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'auto-code'
,
key
:
'e0f5ab09b1e541d3bff26b82ad0ccf53'
,
children
:
[],
options
:
{},
},
{
required
:
true
,
view
:
true
,
edit
:
true
,
...
...
@@ -23,17 +39,18 @@ export const permissionList = [
disabled
:
false
,
isSaveTable
:
false
,
tableName
:
''
,
fieldName
:
'
默认报工人员
'
,
fieldId
:
'
defaultReporter
'
,
fieldName
:
'
作业指导
'
,
fieldId
:
'
zyzdFile
'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'
select
'
,
key
:
'
aa72d19636d540078e40a0dae8b90e3c
'
,
type
:
'
upload
'
,
key
:
'
f7c26bba94034dcdbc816e49607d64e9
'
,
children
:
[],
options
:
{},
defaultValue
:
''
,
},
{
required
:
fals
e
,
required
:
tru
e
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
...
...
@@ -55,12 +72,12 @@ export const permissionList = [
disabled
:
false
,
isSaveTable
:
false
,
tableName
:
''
,
fieldName
:
'
是否委外
'
,
fieldId
:
'
prepareWork
Hours'
,
fieldName
:
'
额定工时
'
,
fieldId
:
'
ratedWorking
Hours'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'
switch
'
,
key
:
'
aabb539eede446daa35c754416cc50ae
'
,
type
:
'
number
'
,
key
:
'
ca8257a46070472e9639110b11f7f3bd
'
,
children
:
[],
options
:
{},
defaultValue
:
0
,
...
...
@@ -76,11 +93,11 @@ export const permissionList = [
fieldId
:
'collectionSchemeId'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'select'
,
key
:
'
55d03e0607bc4ea281a248fdcfc571bb
'
,
type
:
'
associate-
select'
,
key
:
'
6a8f658eb0e046e48c3dac472c0e51ae
'
,
children
:
[],
options
:
{},
defaultValue
:
'
无
'
,
defaultValue
:
'
2005534898818441218
'
,
},
{
required
:
false
,
...
...
@@ -89,29 +106,12 @@ export const permissionList = [
disabled
:
false
,
isSaveTable
:
false
,
tableName
:
''
,
fieldName
:
'额定工时'
,
fieldId
:
'ratedWorkingHours'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'number'
,
key
:
'ca8257a46070472e9639110b11f7f3bd'
,
children
:
[],
options
:
{},
defaultValue
:
0
,
},
{
required
:
false
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSaveTable
:
false
,
tableName
:
''
,
fieldName
:
'有效的'
,
fieldName
:
'有效'
,
fieldId
:
'active'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'switch'
,
key
:
'
e2c431530e954e53852f9a6026987e0d
'
,
key
:
'
c0730ef93c40445195dac1ed93677144
'
,
children
:
[],
options
:
{},
defaultValue
:
1
,
...
...
@@ -123,48 +123,194 @@ export const permissionList = [
disabled
:
false
,
isSaveTable
:
false
,
tableName
:
''
,
fieldName
:
'
作业指导
'
,
fieldId
:
'
zyzdFil
e'
,
fieldName
:
'
备注
'
,
fieldId
:
'
not
e'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'
upload
'
,
key
:
'
f7c26bba94034dcdbc816e49607d64e9
'
,
type
:
'
textarea
'
,
key
:
'
037bf18717bf496f8a1fc0e8605a8a7d
'
,
children
:
[],
options
:
{},
defaultValue
:
''
,
},
{
required
:
fals
e
,
required
:
tru
e
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSaveTable
:
false
,
tableName
:
''
,
fieldName
:
'作业指导'
,
fieldId
:
'zyzdtpFile'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'upload'
,
key
:
'f40c42bc3b174f7589179a6b8976eb65'
,
children
:
[],
options
:
{},
defaultValue
:
''
,
isSubTable
:
true
,
showChildren
:
false
,
tableName
:
'mesProcessProductList'
,
fieldName
:
''
,
fieldId
:
'mesProcessProductList'
,
type
:
'form'
,
key
:
'7cb7c6cdf3ec417280dc49e19dd39ffa'
,
children
:
[
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessProductList'
,
fieldName
:
'编号'
,
fieldId
:
'cpbh'
,
type
:
'Input'
,
key
:
'00c0e93b675841f48265b896515a5241'
,
children
:
[],
},
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessProductList'
,
fieldName
:
'名称'
,
fieldId
:
'cpmc'
,
type
:
'Input'
,
key
:
'91863c5a0ec24d76ade8735cd401059b'
,
children
:
[],
},
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessProductList'
,
fieldName
:
'数量'
,
fieldId
:
'number'
,
type
:
'InputNumber'
,
key
:
'6c749d8f7bde474da082c659146f473c'
,
children
:
[],
},
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessProductList'
,
fieldName
:
'是否投料'
,
fieldId
:
'isFeeding'
,
type
:
'Switch'
,
key
:
'cb38672445b24eedb2b10addf520de2e'
,
children
:
[],
},
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessProductList'
,
fieldName
:
'备注'
,
fieldId
:
'bz'
,
type
:
'InputTextArea'
,
key
:
'1084a7c39baf47ba9a0251cb4e2f8c14'
,
children
:
[],
},
],
},
{
required
:
fals
e
,
required
:
tru
e
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSaveTable
:
false
,
tableName
:
''
,
fieldName
:
'备注'
,
fieldId
:
'note'
,
isSubTable
:
false
,
showChildren
:
true
,
type
:
'textarea'
,
key
:
'04ae7a540acd4c46949c6fd53e652a45'
,
children
:
[],
options
:
{},
defaultValue
:
''
,
isSubTable
:
true
,
showChildren
:
false
,
tableName
:
'mesProcessItemList'
,
fieldName
:
''
,
fieldId
:
'mesProcessItemList'
,
type
:
'form'
,
key
:
'3fd474ce5f8c4bf78bd86dc701cbdc4f'
,
children
:
[
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessItemList'
,
fieldName
:
'编码'
,
fieldId
:
'code'
,
type
:
'Input'
,
key
:
'3999831fde0a4e879f64f33eb2a1edd1'
,
children
:
[],
},
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessItemList'
,
fieldName
:
'名称'
,
fieldId
:
'name'
,
type
:
'Input'
,
key
:
'ab6576e960ee44b4af09975e64088f05'
,
children
:
[],
},
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessItemList'
,
fieldName
:
'数据类型'
,
fieldId
:
'dataType'
,
type
:
'XjrSelect'
,
key
:
'745cb3bb014d4dd9ba38139d17b2f305'
,
children
:
[],
},
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessItemList'
,
fieldName
:
'是否必填'
,
fieldId
:
'required'
,
type
:
'Switch'
,
key
:
'36a40652260d491e8a088ff843aab982'
,
children
:
[],
},
{
required
:
true
,
view
:
true
,
edit
:
true
,
disabled
:
false
,
isSubTable
:
false
,
isSaveTable
:
false
,
showChildren
:
false
,
tableName
:
'mesProcessItemList'
,
fieldName
:
'备注'
,
fieldId
:
'note'
,
type
:
'InputTextArea'
,
key
:
'f3ba1f809888475d925665668e2a1851'
,
children
:
[],
},
],
},
];
xjrsoft-vue3/src/views/jcsj/gxgl/index.vue
View file @
f6b76856
...
...
@@ -154,7 +154,7 @@
//展示在列表内的按钮
const
actionButtons
=
ref
<
string
[]
>
([
"view"
,
"edit"
,
"delete"
]);
const
buttonConfigs
=
computed
(()
=>
{
const
list
=
[{
"
isUse"
:
true
,
"name"
:
"查看"
,
"code"
:
"view"
,
"icon"
:
"ant-design:eye-outlined"
,
"isDefault"
:
true
},{
"isUse"
:
true
,
"name"
:
"新增"
,
"code"
:
"add"
,
"icon"
:
"ant-design:plus-outlined"
,
"isDefault"
:
true
},{
"isUse"
:
true
,
"name"
:
"编辑"
,
"code"
:
"edit"
,
"icon"
:
"ant-design:form-outlined"
,
"isDefault"
:
true
,
"isEnableLock"
:
true
},{
"isUse"
:
true
,
"name"
:
"删除"
,
"code"
:
"delete"
,
"icon"
:
"ant-design:delete-outlined"
,
"isDefault
"
:
true
}]
const
list
=
[{
"
buttonId"
:
"2005548723533832192"
,
"name"
:
"查看"
,
"code"
:
"view"
,
"icon"
:
"ant-design:eye-outlined"
,
"isDefault"
:
true
,
"isUse"
:
true
},{
"buttonId"
:
"2005548723533832193"
,
"name"
:
"新增"
,
"code"
:
"add"
,
"icon"
:
"ant-design:plus-outlined"
,
"isDefault"
:
true
,
"isUse"
:
true
},{
"buttonId"
:
"2005548723533832194"
,
"name"
:
"编辑"
,
"code"
:
"edit"
,
"icon"
:
"ant-design:form-outlined"
,
"isDefault"
:
true
,
"isUse"
:
true
,
"isEnableLock"
:
true
},{
"buttonId"
:
"2005548723533832195"
,
"name"
:
"删除"
,
"code"
:
"delete"
,
"icon"
:
"ant-design:delete-outlined"
,
"isDefault"
:
true
,
"isUse
"
:
true
}]
return
filterButtonAuth
(
list
);
})
...
...
xjrsoft-vue3/src/views/scgl/scjh/components/Form.vue
View file @
f6b76856
This diff is collapsed.
Click to expand it.
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