Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
enterprise-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
enterprise-platform
Commits
e6268553
Commit
e6268553
authored
Dec 12, 2024
by
姬鋆屾
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feated:反馈信息列表添加删除操作及参数添加部门字段,优化所提bug及系统功能
parent
9008190b
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
655 additions
and
526 deletions
+655
-526
enterprise-manager-ui/admin/src/assets/mixins/formdialog.js
enterprise-manager-ui/admin/src/assets/mixins/formdialog.js
+69
-59
enterprise-manager-ui/admin/src/components/ImageUpload.vue
enterprise-manager-ui/admin/src/components/ImageUpload.vue
+5
-0
enterprise-manager-ui/admin/src/views/company/list.vue
enterprise-manager-ui/admin/src/views/company/list.vue
+78
-64
enterprise-manager-ui/admin/src/views/favorites/product/list.vue
...ise-manager-ui/admin/src/views/favorites/product/list.vue
+62
-56
enterprise-manager-ui/admin/src/views/feedback/drawershow.vue
...rprise-manager-ui/admin/src/views/feedback/drawershow.vue
+6
-0
enterprise-manager-ui/admin/src/views/feedback/list.vue
enterprise-manager-ui/admin/src/views/feedback/list.vue
+32
-11
enterprise-manager-ui/admin/src/views/news/drawershow.vue
enterprise-manager-ui/admin/src/views/news/drawershow.vue
+7
-2
enterprise-manager-ui/admin/src/views/news/list.vue
enterprise-manager-ui/admin/src/views/news/list.vue
+1
-1
enterprise-manager-ui/admin/src/views/staff/drawershow.vue
enterprise-manager-ui/admin/src/views/staff/drawershow.vue
+219
-185
enterprise-manager-ui/admin/src/views/staff/list.vue
enterprise-manager-ui/admin/src/views/staff/list.vue
+176
-148
No files found.
enterprise-manager-ui/admin/src/assets/mixins/formdialog.js
View file @
e6268553
...
...
@@ -8,15 +8,15 @@ export default {
methods
:
{
// 渲染前置处理
beforeRender
(
data
)
{
return
data
},
// 渲染后置处理
afterRender
(
data
)
{
console
.
log
(
data
);
return
data
;
},
// 渲染后置处理
afterRender
(
data
)
{},
// 提交表单的前置处理
beforeSubmit
(
data
)
{
return
data
return
data
;
},
// 提交表单的后置处理, 会阻断默认的回退行为
afterSubmit
(
data
)
{
...
...
@@ -49,16 +49,16 @@ export default {
this
.
afterRender
(
res
);
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
throw
error
.
catch
(
(
error
)
=>
{
this
.
$message
.
error
(
error
.
message
)
;
throw
error
;
})
.
then
(
data
=>
{
.
then
(
(
data
)
=>
{
clearTimeout
(
this
.
loadingTimer
);
this
.
loadingTimer
=
setTimeout
(()
=>
{
this
.
loading
=
false
;
},
300
);
})
})
;
},
// 提交表单
submitForm
(
ref
)
{
...
...
@@ -67,70 +67,83 @@ export default {
el
.
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
this
.
loading
=
true
;
this
.
$post
(
this
.
urls
.
saveUrl
||
this
.
pageInfo
.
saveUrl
,
this
.
beforeSubmit
(
this
.
form
))
.
then
(
res
=>
{
this
.
$post
(
this
.
urls
.
saveUrl
||
this
.
pageInfo
.
saveUrl
,
this
.
beforeSubmit
(
this
.
form
)
)
.
then
((
res
)
=>
{
this
.
$message
.
success
(
res
.
msg
);
this
.
afterSubmit
(
res
);
})
.
catch
(
error
=>
{
.
catch
(
(
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
})
.
then
(
data
=>
{
.
then
(
(
data
)
=>
{
clearTimeout
(
this
.
loadingTimer
);
this
.
loadingTimer
=
setTimeout
(()
=>
{
this
.
loading
=
false
;
},
200
);
})
})
;
});
},
// 复制一个数组或对象
util_copy
(
data
)
{
return
JSON
.
parse
(
JSON
.
stringify
(
data
))
return
JSON
.
parse
(
JSON
.
stringify
(
data
))
;
},
// 工具方法,把数字转化为字符串
util_toString
(
data
,
array
)
{
//原始数据
const
dataCopy
=
Object
.
assign
({},
data
);
array
.
forEach
(
item
=>
{
array
.
forEach
(
(
item
)
=>
{
//如果相等做操作
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
''
:
dataCopy
[
item
]
+
''
;
})
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
""
:
dataCopy
[
item
]
+
""
;
});
return
dataCopy
;
},
// 工具方法,把字符串转化为数组
util_toArrays
(
data
,
array
)
{
const
dataCopy
=
Object
.
assign
({},
data
);
array
.
forEach
(
item
=>
{
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
[]
:
dataCopy
[
item
].
split
(
"
,
"
);
})
array
.
forEach
((
item
)
=>
{
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
||
dataCopy
[
item
]
===
""
?
[]
:
dataCopy
[
item
].
split
(
"
,
"
);
});
return
dataCopy
;
},
// 工具方法,把字符串转化为格式化日期
util_toDateStr
(
data
,
array
)
{
const
dataCopy
=
Object
.
assign
({},
data
);
array
.
forEach
(
item
=>
{
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
''
:
this
.
util_formatterDate
(
dataCopy
[
item
]);
})
array
.
forEach
((
item
)
=>
{
dataCopy
[
item
]
=
dataCopy
[
item
]
===
undefined
?
""
:
this
.
util_formatterDate
(
dataCopy
[
item
]);
});
return
dataCopy
;
},
util_formatterDate
(
time
)
{
let
date
=
new
Date
(
Number
(
time
));
let
Y
=
date
.
getFullYear
()
+
'
-
'
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
'
0
'
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
'
-
'
;
let
D
=
this
.
panLeft
(
date
.
getDate
())
+
'
'
;
let
h
=
this
.
panLeft
(
date
.
getHours
())
+
'
:
'
;
let
m
=
this
.
panLeft
(
date
.
getMinutes
())
+
'
:
'
;
let
Y
=
date
.
getFullYear
()
+
"
-
"
;
let
M
=
(
date
.
getMonth
()
+
1
<
10
?
"
0
"
+
(
date
.
getMonth
()
+
1
)
:
date
.
getMonth
()
+
1
)
+
"
-
"
;
let
D
=
this
.
panLeft
(
date
.
getDate
())
+
"
"
;
let
h
=
this
.
panLeft
(
date
.
getHours
())
+
"
:
"
;
let
m
=
this
.
panLeft
(
date
.
getMinutes
())
+
"
:
"
;
let
s
=
this
.
panLeft
(
date
.
getSeconds
());
return
Y
+
M
+
D
+
h
+
m
+
s
;
},
panLeft
(
num
)
{
return
num
<
10
?
'
0
'
+
num
:
num
;
return
num
<
10
?
"
0
"
+
num
:
num
;
},
// 从dict字段暴力取值,取不到则返回原值
util_formatter
(
key
,
val
)
{
try
{
return
this
.
dict
[
key
][
val
]
return
this
.
dict
[
key
][
val
]
;
}
catch
(
error
)
{
return
val
;
}
...
...
@@ -143,24 +156,24 @@ export default {
}
});
},
0
);
}
}
,
},
computed
:
{
pageInfo
()
{
let
currUrl
=
this
.
$route
.
path
;
let
urlArray
=
currUrl
.
split
(
'
/
'
);
let
urlArray
=
currUrl
.
split
(
"
/
"
);
let
type
=
urlArray
.
pop
();
urlArray
.
push
(
'
save
'
);
let
saveUrl
=
urlArray
.
join
(
'
/
'
);
urlArray
.
push
(
"
save
"
);
let
saveUrl
=
urlArray
.
join
(
"
/
"
);
urlArray
.
pop
();
urlArray
.
push
(
'
edit
'
);
let
editUrl
=
urlArray
.
join
(
'
/
'
);
urlArray
.
push
(
"
edit
"
);
let
editUrl
=
urlArray
.
join
(
"
/
"
);
urlArray
.
pop
();
urlArray
.
push
(
'
add
'
);
let
addUrl
=
urlArray
.
join
(
'
/
'
);
urlArray
.
push
(
"
add
"
);
let
addUrl
=
urlArray
.
join
(
"
/
"
);
urlArray
.
pop
();
urlArray
.
push
(
'
view
'
);
let
viewUrl
=
urlArray
.
join
(
'
/
'
);
urlArray
.
push
(
"
view
"
);
let
viewUrl
=
urlArray
.
join
(
"
/
"
);
return
{
type
,
currUrl
,
...
...
@@ -184,9 +197,6 @@ export default {
toString
:
[],
// 需要把number转化为string的表单字段name数组
toArrays
:
[],
// 需要把number转化为arrays的表单字段name数组
toDate
:
[],
// 需要把number转化为date的表单字段name数组
}
}
}
};
},
};
enterprise-manager-ui/admin/src/components/ImageUpload.vue
View file @
e6268553
...
...
@@ -49,6 +49,7 @@
:file-list=
"imgList"
accept=
".jpeg,.png,.jpg,.bmp,.gif"
:headers=
"headers"
:limit=
"limit"
v-else
>
<i
class=
"el-icon-plus"
></i>
...
...
@@ -98,6 +99,10 @@ export default {
type
:
Boolean
,
default
:
false
,
},
limit
:
{
type
:
Number
,
default
:
undefined
,
},
},
mounted
()
{
// 判断是否为多图上传
...
...
enterprise-manager-ui/admin/src/views/company/list.vue
View file @
e6268553
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
notDel
>
</LayoutTable>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
notDel
>
</LayoutTable>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
CompanyList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
drawerform
.
add
(
row
);
...
...
@@ -33,11 +30,9 @@
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
config
:
{
search
:
[
{
...
...
@@ -48,30 +43,49 @@
},
],
columns
:
[
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
公司名称
"
,
prop
:
"
companyName
"
},
{
label
:
"
公司名称
"
,
prop
:
"
companyName
"
},
{
label
:
"
联系电话
"
,
prop
:
"
contactPhone
"
},
{
label
:
"
联系电话
"
,
prop
:
"
contactPhone
"
},
{
label
:
"
经营地址
"
,
prop
:
"
businessAdress
"
,
formatter
:
this
.
formatters
},
{
label
:
"
经营地址
"
,
prop
:
"
businessAdress
"
,
formatter
:
this
.
formatters
,
},
{
label
:
"
描述
"
,
prop
:
"
companyIntroduction
"
,
formatter
:
this
.
formatters
},
{
label
:
"
描述
"
,
prop
:
"
companyIntroduction
"
,
formatter
:
this
.
formatters
,
},
{
label
:
"
更新时间
"
,
prop
:
"
createTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
更新时间
"
,
prop
:
"
updateTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
noView
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
table
-
buttons
noAdd
noView
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
}
}
]
}
};
}
},
},
],
},
};
},
};
</
script
>
enterprise-manager-ui/admin/src/views/favorites/product/list.vue
View file @
e6268553
...
...
@@ -3,23 +3,21 @@
<LayoutTable
:data=
"tableData"
notAdd
notDel
:config=
"tableConfig"
>
</LayoutTable>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
FavoritesProductList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 重写新增方法 */
toAdd
(
row
)
{
...
...
@@ -33,34 +31,42 @@
toView
(
row
)
{
this
.
$refs
.
drawerform
.
view
(
row
);
},
},
data
()
{
return
{
config
:
{
search
:
[
],
search
:
[],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
用户
"
,
prop
:
"
userId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
用户
"
,
prop
:
"
userId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
产品
"
,
prop
:
"
productId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
产品
"
,
prop
:
"
productId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
}
}
]
}
};
}
},
},
],
},
};
},
};
</
script
>
enterprise-manager-ui/admin/src/views/feedback/drawershow.vue
View file @
e6268553
...
...
@@ -64,6 +64,7 @@
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
:enum-data=
"dict.deptId"
/>
</el-row>
<!--
<el-row>
...
...
@@ -271,6 +272,11 @@ export default {
cancel
()
{
this
.
open
=
false
;
},
/**获取数据前弹框 */
beforeRender
(
data
)
{
data
.
entity
.
deptId
=
String
(
data
.
entity
.
deptId
);
return
data
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
...
...
enterprise-manager-ui/admin/src/views/feedback/list.vue
View file @
e6268553
...
...
@@ -169,17 +169,38 @@ export default {
width
:
240
,
formatter
:
(
row
)
=>
{
return
(
<
el
-
button
type
=
"
text
"
icon
=
"
el-icon-edit
"
size
=
"
mini
"
onClick
=
{()
=>
{
this
.
toEdit
(
row
);
}}
title
=
"
详情
"
>
详情
<
/el-button
>
<
table
-
buttons
noAdd
noView
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
//
<
div
>
//
<
el
-
button
// type="text"
// icon="el-icon-edit"
// size="mini"
// onClick={() => {
// this.toEdit(row);
// }}
// title="详情"
// >
// 详情
//
<
/el-button
>
//
<
el
-
button
// type="text"
// icon="el-icon-edit"
// size="mini"
// onClick={() => {
// this.toEdit(row);
// }}
// title="详情"
// >
// 删除
//
<
/el-button
>
//
<
/div
>
);
},
},
...
...
enterprise-manager-ui/admin/src/views/news/drawershow.vue
View file @
e6268553
...
...
@@ -5,7 +5,7 @@
:visible.sync=
"open"
:direction=
"direction"
:destroy-on-close=
"true"
size=
"
10
0%"
size=
"
7
0%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<div
class=
"form"
>
...
...
@@ -37,6 +37,7 @@
v-model=
"form.titleLogoPath"
prePath=
"/file/preview"
:isList=
"true"
:limit=
"9"
ref=
"imgList"
/>
</Field>
...
...
@@ -174,13 +175,17 @@ export default {
cancel
()
{
this
.
open
=
false
;
},
/**获取数据前弹框 */
beforeRender
(
data
)
{
data
.
entity
.
deptId
=
String
(
data
.
entity
.
deptId
);
return
data
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
// 提交前数据处理
beforeSubmit
(
data
)
{
console
.
log
(
data
,
"
123
"
);
let
arr
=
[];
arr
=
this
.
$refs
.
imgList
.
imgList
.
map
((
v
)
=>
{
return
v
.
response
?
v
.
response
.
url
:
v
.
url
.
substr
(
v
.
url
.
indexOf
(
"
f
"
));
...
...
enterprise-manager-ui/admin/src/views/news/list.vue
View file @
e6268553
...
...
@@ -138,7 +138,7 @@ export default {
{
label
:
"
创建时间
"
,
prop
:
"
create
Date
Time
"
,
prop
:
"
createTime
"
,
formatter
:
this
.
formatterDate
,
},
...
...
enterprise-manager-ui/admin/src/views/staff/drawershow.vue
View file @
e6268553
...
...
@@ -5,137 +5,172 @@
:visible.sync=
"open"
:direction=
"direction"
:destroy-on-close=
"true"
size=
"50%"
>
size=
"50%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
:span=
"20"
label=
"员工姓名"
prop=
"name"
v-model=
"form.name"
placeholder=
"请输入员工姓名"
/>
<Field
:span=
"20"
label=
"所属公司"
prop=
"companyIds"
v-model=
"form.companyIds"
:multiple=
"true"
type=
"select"
:enum-data=
"dict.companyIds"
placeholder=
"请输入所属公司"
/>
<Field
:span=
"20"
label=
"职位"
prop=
"positionId"
v-model=
"form.positionId"
type=
"select"
:enum-data=
"dict.positionId"
placeholder=
"请输入职位ID"
/>
<Field
:span=
"20"
label=
"联系电话"
prop=
"phoneNumber"
v-model=
"form.phoneNumber"
placeholder=
"请输入联系电话"
/>
<Field
:span=
"20"
label=
"员工姓名"
prop=
"name"
v-model=
"form.name"
placeholder=
"请输入员工姓名"
/>
<Field
:span=
"20"
label=
"所属公司"
prop=
"companyIds"
v-model=
"form.companyIds"
:multiple=
"true"
type=
"select"
:enum-data=
"dict.companyIds"
placeholder=
"请输入所属公司"
/>
<Field
:span=
"20"
label=
"职位"
prop=
"positionId"
v-model=
"form.positionId"
type=
"select"
:enum-data=
"dict.positionId"
placeholder=
"请输入职位ID"
/>
<Field
:span=
"20"
label=
"联系电话"
prop=
"phoneNumber"
v-model=
"form.phoneNumber"
placeholder=
"请输入联系电话"
/>
<!--
<Field
:span=
"20"
label=
"员工状态"
type=
"select"
prop=
"staffStatus"
v-model=
"form.staffStatus"
:enum-data=
"dict.staffStatus"
placeholder=
"请输入员工状态"
/>
-->
<Field
:span=
"20"
label=
"头像"
prop=
"photoPath"
placeholder=
"请输入照片"
><imageUpload
v-model=
"form.photoPath"
prePath=
"/file/preview"
/>
</Field>
<Field
:span=
"20"
label=
"邮件地址"
prop=
"email"
v-model=
"form.email"
placeholder=
"请输入邮件地址"
/>
<Field
:span=
"20"
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
<Field
:span=
"20"
label=
"头像"
prop=
"photoPath"
placeholder=
"请输入照片"
><imageUpload
v-model=
"form.photoPath"
prePath=
"/file/preview"
/>
</Field>
<Field
:span=
"20"
label=
"邮件地址"
prop=
"email"
v-model=
"form.email"
placeholder=
"请输入邮件地址"
/>
<Field
:span=
"20"
label=
"备注"
prop=
"remark"
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入备注"
/>
</el-row>
<form-buttons
@
submit=
'submitForm'
v-if=
"pageInfo.type!='view'"
noCancelBtn
/>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
noCancelBtn
/>
</el-form>
</el-drawer>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
import
form
from
"
@/assets/mixins/formdialog
"
;
export
default
{
name
:
"
StaffDetail
"
,
mixins
:
[
form
],
components
:
{
},
components
:
{},
created
()
{
this
.
changePath
(
"
staff
"
)
this
.
changePath
(
"
staff
"
);
},
data
()
{
var
checkEmail
=
(
rule
,
value
,
callback
)
=>
{
let
mailReg
=
/^
([
a-zA-Z0-9_-
])
+@
([
a-zA-Z0-9_-
])
+
(
.
[
a-zA-Z0-9_-
])
+/
;
if
(
!
value
)
{
//如果输入为空直接返回
if
(
!
value
)
{
//如果输入为空直接返回
callback
();
}
else
{
//如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
if
(
mailReg
.
test
(
value
))
{
//匹配成功返回
if
(
mailReg
.
test
(
value
))
{
//匹配成功返回
callback
();
}
else
{
//匹配不成功返回错误显示
callback
(
new
Error
(
"
邮箱格式:xx@xx.xx,只含数字、大小写字母、下划线、横杠
"
));
}
else
{
//匹配不成功返回错误显示
callback
(
new
Error
(
"
邮箱格式:xx@xx.xx,只含数字、大小写字母、下划线、横杠
"
)
);
}
}
};
var
checkPhone
=
(
rule
,
value
,
callback
)
=>
{
let
phoneReg
=
/^1
[
3|4|5|7|8
][
0-9
]{9}
$/
if
(
!
value
){
callback
()
}
else
{
if
(
phoneReg
.
test
(
value
)){
callback
()
}
else
{
callback
(
new
Error
(
"
电话格式:13、14、15、17、18开头+9位阿拉伯数字
"
))
}
var
checkPhone
=
(
rule
,
value
,
callback
)
=>
{
let
phoneReg
=
/^1
[
3|4|5|7|8
][
0-9
]{9}
$/
;
if
(
!
value
)
{
callback
();
}
else
{
if
(
phoneReg
.
test
(
value
))
{
callback
();
}
else
{
callback
(
new
Error
(
"
电话格式:13、14、15、17、18开头+9位阿拉伯数字
"
));
}
}
};
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
员工基本信息
"
,
// 是否显示弹出层
open
:
false
,
direction
:
"
rtl
"
,
toString
:[
"
gender
"
,
"
staffType
"
,
"
staffStatus
"
,
"
source
"
,
"
positionId
"
],
toArrays
:[
"
companyIds
"
],
direction
:
"
rtl
"
,
toString
:
[
"
gender
"
,
"
staffType
"
,
"
staffStatus
"
,
"
source
"
,
"
positionId
"
],
toArrays
:
[
"
companyIds
"
],
toDate
:[
"
birthday
"
,
"
entryDate
"
,
"
regularDate
"
,
"
leaveDate
"
,
],
toDate
:
[
"
birthday
"
,
"
entryDate
"
,
"
regularDate
"
,
"
leaveDate
"
],
// 表单校验
rules
:
{
name
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,
},
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
positionId
:
[
{
required
:
true
,
message
:
"
请选择职位
"
,
trigger
:
"
blur
"
}
{
required
:
true
,
message
:
"
请选择职位
"
,
trigger
:
"
blur
"
},
],
companyIds
:
[
{
required
:
true
,
message
:
"
请选择所属企业
"
,
trigger
:
"
blur
"
}
{
required
:
true
,
message
:
"
请选择所属企业
"
,
trigger
:
"
blur
"
},
],
phoneNumber
:
[
{
required
:
true
,
message
:
"
请输入联系电话
"
,
trigger
:
"
blur
"
},
{
validator
:
checkPhone
,
trigger
:
"
blur
"
},
{
max
:
11
,
message
:
"
最多只能录入11个字符
"
,
trigger
:
"
blur
"
,},
],
email
:
[
{
validator
:
checkEmail
,
trigger
:
"
blur
"
}
{
required
:
true
,
message
:
"
请输入联系电话
"
,
trigger
:
"
blur
"
},
{
validator
:
checkPhone
,
trigger
:
"
blur
"
},
{
max
:
11
,
message
:
"
最多只能录入11个字符
"
,
trigger
:
"
blur
"
},
],
}
email
:
[{
validator
:
checkEmail
,
trigger
:
"
blur
"
}],
},
};
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
()
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
staff/edit
"
;
this
.
urls
.
currUrl
=
"
staff/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
pageInfo
.
type
=
"
edit
"
;
this
.
title
=
"
修改员工基本信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
reset
();
this
.
urls
.
currUrl
=
"
staff/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
pageInfo
.
type
=
"
add
"
;
this
.
title
=
"
新增员工基本信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
staff/view
"
;
this
.
urls
.
currUrl
=
"
staff/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
pageInfo
.
type
=
"
view
"
;
this
.
title
=
"
员工基本信息详细
"
;
},
/**取消按钮 */
...
...
@@ -148,10 +183,9 @@
},
beforeSubmit
(
data
)
{
data
.
companyIds
=
data
.
companyIds
.
join
(
"
,
"
);
data
.
companyIds
=
data
.
companyIds
.
join
(
"
,
"
)
return
data
return
data
;
},
afterSubmit
(
data
)
{
...
...
@@ -162,28 +196,28 @@
// 表单重置
reset
()
{
this
.
form
=
{
name
:
""
,
gender
:
1
,
birthday
:
null
,
photoPath
:
""
,
Email
:
""
,
phoneNumber
:
""
,
idCard
:
""
,
workNum
:
""
,
companyName
:
""
,
positionId
:
null
,
positionName
:
""
,
staffType
:
1
,
staffStatus
:
1
,
source
:
1
,
registerPath
:
""
,
entryDate
:
null
,
regularDate
:
null
,
leaveDate
:
null
,
remark
:
""
,
sumViews
:
0
,
viewsByDay
:
0
,
sendBusinessCardTimes
:
0
,
name
:
""
,
gender
:
1
,
birthday
:
null
,
photoPath
:
""
,
Email
:
""
,
phoneNumber
:
""
,
idCard
:
""
,
workNum
:
""
,
companyName
:
""
,
positionId
:
null
,
positionName
:
""
,
staffType
:
1
,
staffStatus
:
1
,
source
:
1
,
registerPath
:
""
,
entryDate
:
null
,
regularDate
:
null
,
leaveDate
:
null
,
remark
:
""
,
sumViews
:
0
,
viewsByDay
:
0
,
sendBusinessCardTimes
:
0
,
};
this
.
resetForm
(
"
form
"
);
},
...
...
@@ -193,5 +227,5 @@
}
},
},
};
};
</
script
>
enterprise-manager-ui/admin/src/views/staff/list.vue
View file @
e6268553
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
notDel
:config=
"tableConfig"
>
</LayoutTable>
<LayoutTable
:data=
"tableData"
notDel
:config=
"tableConfig"
>
</LayoutTable>
<drawer-show
ref=
"drawerform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
/** 表单弹出框模式需引入 */
import
drawerShow
from
"
./drawershow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
StaffList
"
,
components
:
{
drawerShow
},
mixins
:
[
table
],
created
()
{
drawerShow
,
},
mixins
:
[
table
],
created
()
{},
methods
:
{
/** 重写新增方法 */
toAdd
(
row
)
{
...
...
@@ -34,28 +31,39 @@
this
.
$refs
.
drawerform
.
view
(
row
);
},
// 离职操作
toDimission
(
row
)
{
toDimission
(
row
)
{
console
.
log
(
row
);
// 先弹窗提问
this
.
$confirm
(
'
此操作将
'
+
row
.
name
+
'
作离职处理,离职后,该员工在之前发送的名片将不做展示,客户点击名片消息后跳转至之前绑定的企业详情(若该员工有多张企业名片,以第一个为准),是否继续?
'
,
'
系统提示
'
,
{
confirmButtonText
:
'
确定
'
,
cancelButtonText
:
'
取消
'
}).
then
(()
=>
{
this
.
$confirm
(
"
此操作将
"
+
row
.
name
+
"
作离职处理,离职后,该员工在之前发送的名片将不做展示,客户点击名片消息后跳转至之前绑定的企业详情(若该员工有多张企业名片,以第一个为准),是否继续?
"
,
"
系统提示
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
}
)
.
then
(()
=>
{
// 先修改状态在修改
let
query
=
JSON
.
parse
(
JSON
.
stringify
(
row
))
query
.
staffStatus
=
3
let
query
=
JSON
.
parse
(
JSON
.
stringify
(
row
));
query
.
staffStatus
=
3
;
console
.
log
(
this
.
$refs
.
drawerform
.
urls
.
saveUrl
);
this
.
$post
(
'
staff/leave
'
,{
id
:
query
.
id
})
.
then
(
res
=>
{
this
.
$post
(
"
staff/leave
"
,
{
id
:
query
.
id
}).
then
((
res
)
=>
{
this
.
$message
.
success
(
res
.
msg
);
this
.
getData
()
this
.
getData
();
});
})
})
.
catch
(()
=>
{});
.
catch
(()
=>
{});
},
// 重写getData
async
getData
()
{
this
.
query
=
Object
.
assign
({
staffStatus
:
1
},
this
.
query
,
this
.
$route
.
query
);
this
.
query
=
Object
.
assign
(
{
staffStatus
:
1
},
this
.
query
,
this
.
$route
.
query
);
try
{
await
this
.
beforeFecth
();
}
catch
(
error
)
{
...
...
@@ -63,7 +71,7 @@
}
this
.
tableData
.
loading
=
true
;
this
.
$post
(
this
.
pageInfo
.
list
,
this
.
query
,
{
cancelToken
:
this
.
source
.
token
cancelToken
:
this
.
source
.
token
,
})
.
then
(({
data
})
=>
{
this
.
tableData
=
this
.
beforeRender
(
...
...
@@ -71,47 +79,45 @@
);
this
.
afterRender
(
this
.
tableData
);
})
.
catch
(
error
=>
{
if
(
error
.
message
==
'
自动取消ajax操作
'
)
return
.
catch
((
error
)
=>
{
if
(
error
.
message
==
"
自动取消ajax操作
"
)
return
;
this
.
$message
.
error
(
error
.
message
);
})
.
then
(
data
=>
{
.
then
((
data
)
=>
{
clearTimeout
(
this
.
loadingTimer
);
this
.
loadingTimer
=
setTimeout
(()
=>
{
this
.
tableData
.
loading
=
false
;
},
300
);
})
});
},
},
data
()
{
return
{
config
:
{
search
:
[
{
name
:
"
companyId
"
,
type
:
"
select
"
,
placeholder
:
"
请选择所属企业
"
,
label
:
"
所属企业
"
placeholder
:
"
请选择所属企业
"
,
label
:
"
所属企业
"
,
},
{
name
:
"
name
"
,
type
:
"
text
"
,
placeholder
:
"
请输入员工姓名
"
,
label
:
"
员工姓名
"
placeholder
:
"
请输入员工姓名
"
,
label
:
"
员工姓名
"
,
},
],
columns
:
[
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
员工姓名
"
,
prop
:
"
name
"
},
{
label
:
"
员工姓名
"
,
prop
:
"
name
"
},
{
label
:
"
头像
"
,
prop
:
"
photoPath
"
,
formatter
:
(
row
)
=>
{
{
label
:
"
头像
"
,
prop
:
"
photoPath
"
,
formatter
:
(
row
)
=>
{
return
row
.
photoPath
!=
""
?
(
<
el
-
image
style
=
"
width: 70px; height: 70px
"
...
...
@@ -121,37 +127,59 @@
)
:
(
"
--
"
);
},},
{
label
:
"
联系电话
"
,
prop
:
"
phoneNumber
"
},
},
},
{
label
:
"
邮件地址
"
,
prop
:
"
email
"
,
formatter
:
this
.
formatters
},
{
label
:
"
联系电话
"
,
prop
:
"
phoneNumber
"
},
{
label
:
"
所属公司
"
,
prop
:
"
companyIds
"
,
formatter
:
this
.
formatters
},
{
label
:
"
邮件地址
"
,
prop
:
"
email
"
,
formatter
:
this
.
formatters
},
{
label
:
"
所属公司
"
,
prop
:
"
companyIds
"
,
formatter
:
this
.
formatters
},
{
label
:
"
职位
"
,
prop
:
"
positionId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
发送名片次数
"
,
prop
:
"
sendBusinessCardTimes
"
},
{
label
:
"
累计查看次数
"
,
prop
:
"
sumViews
"
},
{
label
:
"
职位
"
,
prop
:
"
positionId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
发送名片次数
"
,
prop
:
"
sendBusinessCardTimes
"
},
{
label
:
"
累计查看次数
"
,
prop
:
"
sumViews
"
},
{
label
:
"
最近更新时间
"
,
prop
:
"
updateTime
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
更新人员
"
,
prop
:
"
updateUserId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
最近更新时间
"
,
prop
:
"
updateTime
"
,
formatter
:
this
.
formatterDate
,
},
{
label
:
"
更新人员
"
,
prop
:
"
updateUserId
"
,
formatter
:
this
.
formatter
,
},
// {label: "员工状态", prop: "staffStatus",formatter: this.formatter},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
row
=>
{
formatter
:
(
row
)
=>
{
return
(
<
div
>
<
table
-
buttons
noAdd
noView
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
span
onClick
=
{
()
=>
{
this
.
toDimission
(
row
)}}
style
=
"
color:#409EFF;margin-left:20px
"
>
离职
<
/span
>
<
table
-
buttons
noAdd
noView
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
<
span
onClick
=
{()
=>
{
this
.
toDimission
(
row
);
}}
style
=
"
color:#409EFF;margin-left:20px
"
>
离职
<
/span
>
<
/div
>
);
}
}
]
}
};
}
},
},
],
},
};
},
};
</
script
>
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