Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
6
608-pdm-web-5g
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pdm
608-pdm-web-5g
Commits
f1ab0033
Commit
f1ab0033
authored
Apr 15, 2024
by
xioln
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
详情修改
parent
65ec8112
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
236 additions
and
76 deletions
+236
-76
form.vue
src/components/form/form.vue
+45
-5
vanInput.vue
src/components/form/vanInput.vue
+0
-21
vanReadable.vue
src/components/form/vanReadable.vue
+111
-0
index.vue
src/components/pdf/index.vue
+24
-12
index.vue
src/views/InfoDetail/index.vue
+51
-27
index.vue
src/views/login/index.vue
+1
-1
todoListLazyCell.vue
src/views/todoList/components/todoListLazyCell.vue
+2
-4
index.vue
src/views/todoList/index.vue
+2
-6
No files found.
src/components/form/form.vue
View file @
f1ab0033
...
...
@@ -22,6 +22,23 @@
:name=
"formItem.title"
></slot>
</van-field>
<component
v-else-if=
"formItem.component.name === 'readable'"
v-show=
"
formItem.component.show ? !formItem.component.show : true
"
:value=
"formValue(form, formItem.key)"
:is=
"formItem.component.name"
:item=
"formItem"
:item-obj=
"formItem.component"
:form=
"form"
:type=
"formItem.component.type"
:name=
"formItem.key || ''"
:label=
"formItem.title || ''"
:rules=
"rules"
v-on=
"$listeners"
@
handleSubmit=
"handleSubmit"
/>
<component
v-else
v-model=
"form[formItem.key]"
...
...
@@ -68,6 +85,29 @@ export default {
data
()
{
return
{}
},
computed
:
{
formValue
()
{
return
function
(
form
,
key
)
{
// 判断form为空
if
(
!
form
||
Object
.
keys
(
form
).
length
===
0
)
{
return
}
if
(
key
&&
key
.
includes
(
'.'
))
{
const
keys
=
key
.
split
(
'.'
)
let
value
=
form
keys
.
forEach
((
k
)
=>
{
value
=
value
[
k
]
||
''
})
// 判断value不是对象
return
typeof
value
!==
'object'
?
value
:
''
}
else
{
return
form
[
key
]
||
''
}
}
}
},
created
()
{
},
mounted
()
{
},
...
...
@@ -93,14 +133,14 @@ export default {
})
formItemData
.
forEach
((
item
)
=>
{
if
(
item
?.
component
&&
item
?.
component
?.
name
)
{
if
(
item
?.
component
?.
name
===
'readable'
||
item
?.
component
?.
name
===
'el-input'
)
{
// console.log(item)
if
(
item
?.
component
?.
name
===
'el-input'
)
{
Vue
.
component
(
item
?.
component
?.
name
,
(
resolve
)
=>
{
require
([
'./vanInput.vue'
],
resolve
)
})
}
else
if
(
item
?.
component
?.
name
===
'readable'
)
{
Vue
.
component
(
item
?.
component
?.
name
,
(
resolve
)
=>
{
require
([
'./vanReadable.vue'
],
resolve
)
})
}
else
if
(
item
?.
component
?.
name
===
'el-radio'
)
{
Vue
.
component
(
item
?.
component
?.
name
,
(
resolve
)
=>
{
require
([
'./vanRadio.vue'
],
resolve
)
...
...
src/components/form/vanInput.vue
View file @
f1ab0033
...
...
@@ -17,7 +17,6 @@
</div>
</
template
>
<
script
>
import
{
getDictListByCode
}
from
'@/api/taskDetail'
export
default
{
props
:
{
...
...
@@ -62,10 +61,6 @@ export default {
inputValue
:
{
deep
:
true
,
handler
(
val
)
{
console
.
log
(
'this.item'
,
this
.
item
)
if
(
this
.
item
.
fildProp
&&
this
.
item
.
fildProp
.
rule
.
dictTypeCode
)
{
this
.
getCode
()
}
this
.
$emit
(
'input'
,
val
,
this
.
name
)
}
}
...
...
@@ -73,22 +68,6 @@ export default {
methods
:
{
getVerifyCode
()
{
this
.
$emit
(
'getVerifyCode'
)
},
getCode
()
{
getDictListByCode
(
this
.
item
.
fildProp
.
rules
.
dictTypeCode
).
then
(
res
=>
{
console
.
log
(
res
)
if
(
!
res
||
!
res
.
items
)
{
return
[]
}
const
list
=
res
.
items
.
content
.
map
(
row
=>
{
return
{
label
:
row
.
dictValue
,
value
:
row
.
dictKey
,
id
:
row
.
id
,
parentId
:
row
.
parentId
}
})
})
}
}
}
...
...
src/components/form/vanReadable.vue
0 → 100644
View file @
f1ab0033
<
template
>
<div
class=
"input"
>
<van-field
v-if=
"itemObj"
v-model=
"inputValue"
colon
v-bind=
"itemObj"
:readonly=
"itemObj.name === 'readable' ? true : false"
:name=
"name"
:label=
"label"
:type=
"itemObj.type"
:formatter=
"item.formatter"
>
<div
v-if=
"itemObj.verifyIcon"
slot=
"button"
>
<img
:src=
"itemObj.verifyIcon"
@
click=
"getVerifyCode"
/>
</div>
</van-field>
</div>
</
template
>
<
script
>
import
{
getDictListByCode
}
from
'@/api/taskDetail'
export
default
{
props
:
{
item
:
{
type
:
Object
,
default
:
()
=>
null
},
itemObj
:
{
type
:
Object
,
default
:
()
=>
null
},
value
:
{
type
:
String
,
default
:
()
=>
null
},
name
:
{
type
:
String
,
default
:
()
=>
null
},
label
:
{
type
:
String
,
default
:
()
=>
null
}
},
components
:
{
},
// 数据源 给组件分发数据用
data
()
{
return
{
inputValue
:
''
}
},
mounted
()
{
},
watch
:
{
value
:
{
deep
:
true
,
immediate
:
true
,
handler
(
val
)
{
if
(
val
)
{
this
.
getVal
(
val
)
}
}
},
inputValue
:
{
deep
:
true
,
handler
(
val
)
{
this
.
$emit
(
'input'
,
val
,
this
.
name
)
}
}
},
methods
:
{
getVerifyCode
()
{
this
.
$emit
(
'getVerifyCode'
)
},
getVal
(
val
)
{
if
(
this
.
itemObj
&&
this
.
itemObj
?.
dictTypeCode
)
{
getDictListByCode
(
this
.
itemObj
.
dictTypeCode
).
then
(
res
=>
{
if
(
!
res
||
!
res
.
items
)
{
return
[]
}
// 对象数组中朝找到对应的字典值
this
.
$set
(
this
,
'inputValue'
,
res
.
items
.
content
.
find
(
item
=>
item
.
dictKey
===
this
.
value
)?.
dictValue
)
}).
catch
(
err
=>
{
console
.
log
(
err
)
this
.
$set
(
this
,
'inputValue'
,
''
)
})
}
else
{
this
.
$set
(
this
,
'inputValue'
,
val
)
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.input
{
::v-deep
.van-field__label
{
width
:
auto
;
}
img
{
width
:
70px
;
height
:
30px
;
position
:
absolute
;
top
:
50%
;
right
:
0%
;
transform
:
translate
(
-0%
,
-50%
);
}
}
</
style
>
src/components/pdf/index.vue
View file @
f1ab0033
...
...
@@ -13,6 +13,7 @@ import Pdfh5 from 'pdfh5'
import
'pdfh5/css/pdfh5.css'
import
{
get
,
post
}
from
'@/utils/http'
import
moment
from
'moment'
import
{
getLayOut
}
from
'@/api/taskDetail'
export
default
{
name
:
'Pdf'
,
...
...
@@ -43,7 +44,8 @@ export default {
pdfh5
:
null
,
filesList
:
[],
activeFile
:
0
,
option
:
[]
option
:
[],
contentType
:
null
}
},
watch
:
{
...
...
@@ -59,16 +61,15 @@ export default {
}
},
computed
:
{
contentType
()
{
const
defaultContentType
=
'DOC_PDF_FILE,PROCESS_CONTENTROLE_PDF'
return
'DOC_PDF_FILE,PROCESS_CONTENTROLE_PDF,ATTACH_FILE,MASTER_FILE'
||
defaultContentType
},
//
contentType () {
//
const defaultContentType = 'DOC_PDF_FILE,PROCESS_CONTENTROLE_PDF'
//
return 'DOC_PDF_FILE,PROCESS_CONTENTROLE_PDF,ATTACH_FILE,MASTER_FILE' || defaultContentType
//
},
eid
()
{
return
'id_'
+
this
.
$utils
.
guid
().
replaceAll
(
'-'
,
''
)
}
},
created
()
{
console
.
log
(
this
.
url
)
// if (this.url) {
// this.pdfUrl = this.url.split('devgace.avicgeneral.com')[1]
// }
...
...
@@ -82,10 +83,25 @@ export default {
// // renderType: 'canvas'
// // lazy: true
// })
this
.
getFormInfo
()
},
methods
:
{
getFormInfo
()
{
getLayOut
({
modelDefName
:
this
.
$route
.
query
.
dxClassname
,
layoutType
:
'defaultInfo'
}).
then
((
res
)
=>
{
if
(
res
.
items
.
content
.
length
)
{
const
jsonparse
=
JSON
.
parse
(
res
.
items
.
content
[
0
].
configDetails
)
jsonparse
.
componentsData
.
forEach
(
item
=>
{
if
(
item
.
name
===
'浏览'
)
{
if
(
item
.
data
[
0
]?.
contentType
)
{
this
.
contentType
=
item
.
data
[
0
].
contentType
this
.
getFileId
()
this
.
getPdf
(
this
.
filesList
[
0
])
}
}
})
}
})
},
methods
:
{
getPdf
(
file
)
{
get
(
'/dfs/fileManager/preview'
,
{
objName
:
file
.
sourceIdType
,
objId
:
file
.
sourceId
,
linkId
:
file
.
id
}).
then
(
res
=>
{
if
(
res
.
items
.
fileBase64
)
{
...
...
@@ -98,16 +114,13 @@ export default {
getFileId
()
{
if
(
!
this
.
basicData
.
objFileLinks
)
return
const
objFileLinks
=
this
.
basicData
.
objFileLinks
console
.
log
(
'this.filterFilesByRuleType(objFileLinks)'
,
this
.
filterFilesByRuleType
(
objFileLinks
))
this
.
filesList
=
this
.
filterFilesByRuleType
(
objFileLinks
).
filter
(
item
=>
item
.
name
.
includes
(
'pdf'
))
console
.
log
(
'this.basicData.objFileLinks'
,
this
.
filesList
)
const
masterFile
=
this
.
filesList
.
find
(
file
=>
file
.
contentType
===
'MASTER_FILE'
&&
file
.
target
.
fileExtension
===
'pdf'
)
const
masterFileIdx
=
this
.
filesList
.
findIndex
(
file
=>
file
.
contentType
===
'MASTER_FILE'
&&
file
.
target
.
fileExtension
===
'pdf'
)
if
(
masterFile
)
{
this
.
filesList
.
splice
(
masterFileIdx
,
1
)
this
.
filesList
.
unshift
(
masterFile
)
console
.
log
(
'this.filesList'
,
this
.
filesList
)
}
else
{
const
signedFile
=
this
.
filesList
.
find
(
file
=>
file
.
contentType
===
'ATTACH_FILE'
)
const
idx
=
this
.
filesList
.
findIndex
(
file
=>
file
.
contentType
===
'ATTACH_FILE'
)
...
...
@@ -117,7 +130,6 @@ export default {
this
.
filesList
.
unshift
(
signedFile
)
}
}
console
.
log
(
'this.filesList'
,
this
.
filesList
)
this
.
option
=
this
.
filesList
.
map
(
file
=>
{
return
{
text
:
file
.
name
,
value
:
file
.
targetId
}
})
...
...
src/views/InfoDetail/index.vue
View file @
f1ab0033
...
...
@@ -41,31 +41,15 @@ export default {
url
:
''
,
form
:
{},
formData
:
[
// {
// title: '基本属性',
// split: 1,
// data: [
// {
// title: '名称',
// key: 'name',
// isBase: true,
// component: {
// name: 'readable',
// isStandard: true,
// disabled: true
// }
// }
// ]
// }
]
}
},
created
()
{
},
mounted
()
{
this
.
getFormData
()
this
.
getForm
()
async
mounted
()
{
await
this
.
getFormData
()
await
this
.
getForm
()
},
methods
:
{
async
getForm
()
{
...
...
@@ -78,9 +62,17 @@ export default {
pageSize
:
1
,
searchItems
:
{
items
:
[{
fieldName
:
'id'
,
operator
:
'EQ'
,
value
:
id
}]
},
sortItem
:
[{
fieldName
:
'modifyTime'
,
sortOrder
:
'asc'
}],
openProps
:
[{
name
:
'
objFileLinks'
,
pageFrom
:
1
,
pageSize
:
9999
,
openProps
:
[{
name
:
'target'
,
pageFrom
:
1
,
pageSize
:
9999
}]
}]
openProps
:
[{
name
:
'
dxContext'
},
{
name
:
'objFileLinks'
,
openProps
:
[{
name
:
'target'
,
pageFrom
:
1
,
pageSize
:
9999
}]
}]
}
await
this
.
$api
.
searchApi
(
this
.
$route
.
query
.
dxClassname
,
params
).
then
((
res
)
=>
{
// 将res.items.content[0]所有数据值转为string
res
.
items
.
content
.
forEach
((
item
)
=>
{
Object
.
keys
(
item
).
forEach
((
key
)
=>
{
if
(
typeof
item
[
key
]
!==
'object'
)
{
item
[
key
]
=
String
(
item
[
key
])
}
})
})
this
.
$set
(
this
,
'form'
,
res
.
items
.
content
[
0
])
})
},
...
...
@@ -88,13 +80,45 @@ export default {
getLayOut
({
modelDefName
:
this
.
$route
.
query
.
dxClassname
,
layoutType
:
'defaultView'
}).
then
((
res
)
=>
{
if
(
res
.
items
.
content
.
length
)
{
const
jsonparse
=
JSON
.
parse
(
res
.
items
.
content
[
0
].
configDetails
)
console
.
log
(
'jsonparse'
,
jsonparse
)
jsonparse
.
formData
.
forEach
(
item
=>
{
this
.
fiiterData
(
jsonparse
.
formData
)
}
})
},
fiiterData
(
formData
)
{
formData
.
forEach
(
item
=>
{
if
(
item
.
title
&&
item
.
title
!==
'关联文档'
)
{
this
.
formData
.
push
(
item
)
// eslint-disable-next-line no-unused-vars
const
that
=
this
const
fd
=
{
title
:
item
.
title
,
split
:
1
,
data
:
item
.
data
.
map
(
d
=>
{
let
show
=
false
if
(
d
.
component
?.
obscure
)
{
// eslint-disable-next-line no-eval
show
=
eval
(
d
.
component
?.
obscure
.
replace
(
/this/g
,
'that'
))
}
return
{
title
:
d
.
title
,
key
:
d
.
key
,
disabled
:
d
.
disabled
,
formatter
:
function
(
row
)
{
if
(
row
&&
[
'true'
,
'false'
].
includes
(
row
))
{
return
row
===
'true'
?
'是'
:
'否'
}
else
{
return
row
}
},
component
:
{
name
:
d
.
component
.
name
,
// options: d.component.options,
dictTypeCode
:
d
.
fildProp
.
type
===
'DictDataVO'
?
d
.
fildProp
.
rule
.
dictTypeCode
:
''
,
show
:
show
}
}
})
console
.
log
(
'jsonparse'
,
[...
this
.
formData
])
}
this
.
formData
.
push
(
fd
)
}
})
},
...
...
src/views/login/index.vue
View file @
f1ab0033
...
...
@@ -35,7 +35,7 @@
<
script
>
import
{
Notify
}
from
'vant'
import
RSA
from
'../../utils/rsa.js'
import
DeeForm
from
'
../..
/components/form/form'
import
DeeForm
from
'
@
/components/form/form'
import
ChangePassword
from
'@/views/tabbar/changePassword'
import
{
captchaLogin
,
extAccountCaptcha
}
from
'../../api/user'
export
default
{
...
...
src/views/todoList/components/todoListLazyCell.vue
View file @
f1ab0033
...
...
@@ -62,7 +62,6 @@ export default {
methods
:
{
// 跳转详情页面
goDetailsInfo
(
item
)
{
console
.
log
(
'item'
,
item
)
this
.
$router
.
push
({
path
:
`/taskDetails-
${
item
.
id
}
`
,
query
:
{
...
...
@@ -89,7 +88,6 @@ export default {
var
clientHeight
=
this
.
box
.
clientHeight
var
scrollTop
=
this
.
box
.
scrollTop
var
scrollHeight
=
this
.
box
.
scrollHeight
// console.log('scrollHeight', Math.abs(scrollHeight - (scrollTop + clientHeight)))
if
(
Math
.
abs
(
scrollHeight
-
(
scrollTop
+
clientHeight
))
<
20
)
{
this
.
curr
++
this
.
debounce
(
this
.
dealWithtaskData
())
...
...
@@ -115,8 +113,8 @@ export default {
<
style
lang=
'scss'
>
.todoList-lazyCell
{
overflow-y
:
auto
;
max-height
:
6
00px
;
max-height
:
4
00px
;
height
:
100%
;
.taskItem
{
font-size
:
16px
;
color
:
#000000
;
...
...
src/views/todoList/index.vue
View file @
f1ab0033
...
...
@@ -75,13 +75,10 @@ export default {
},
computed
:
{
title
()
{
return
this
.
$route
.
query
.
title
return
this
.
$route
.
query
.
title
||
''
}
},
watch
:
{
showLoading
(
newVal
,
oldVal
)
{
console
.
log
(
'newVal'
,
newVal
)
}
},
activated
()
{
if
(
sessionStorage
.
getItem
(
'finishWork'
))
{
...
...
@@ -265,7 +262,7 @@ export default {
<
style
lang=
"scss"
>
.todoList
{
overflow
:
hidden
;
overflow
:
auto
;
box-sizing
:
border-box
;
height
:
calc
(
100%
);
...
...
@@ -339,7 +336,6 @@ export default {
.lazy-list
{
height
:
calc
(
100vh
-
120px
);
.loading
{
margin-top
:
10px
!
important
;
}
...
...
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