Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mes-ui
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
周远喜
mes-ui
Commits
50285386
Commit
50285386
authored
Apr 02, 2020
by
仇晓婷
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://git.mes123.com/zhouyx/mes-ui
into qin
parents
172f73a4
6ceaea37
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
779 additions
and
338 deletions
+779
-338
account.js
api/account.js
+1
-1
dataGrid.vue
components/page/dataGrid.vue
+4
-0
zh-CN.js
i18n/locale/zh-CN.js
+6
-50
product.vue
layouts/basic-layout/product.vue
+374
-0
default.vue
layouts/default.vue
+1
-24
product.vue
layouts/product.vue
+19
-0
index.vue
pages/account/login/index.vue
+53
-56
api.js
pages/aps/aps/api.js
+1
-1
excute.vue
pages/aps/aps/components/excute.vue
+24
-25
index.vue
pages/aps/aps/index.vue
+93
-17
dispatch.less
pages/aps/dispatch/dispatch.less
+1
-0
index.vue
pages/aps/plan/index.vue
+1
-0
api.js
pages/aps/results/api.js
+5
-5
detail.vue
pages/basicData/systemlog/components/detail.vue
+2
-2
index.vue
pages/basicData/user/index.vue
+4
-3
table.less
pages/implement/table.less
+1
-0
trialOrder.vue
...rocessDesign/ChangeSingle/unqualifiedorder/trialOrder.vue
+2
-2
index.vue
pages/system/host/index.vue
+1
-1
index.vue
pages/system/tanant/index.vue
+1
-1
iview.js
plugins/iview.js
+1
-1
index.js
plugins/request/index.js
+22
-14
account.js
store/admin/account.js
+160
-133
index.js
store/index.js
+2
-2
No files found.
api/account.js
View file @
50285386
...
...
@@ -2,7 +2,7 @@ import request from '@/plugins/request';
export
function
AccountLogin
(
data
)
{
return
request
({
url
:
'/api/login'
,
url
:
`
${
authUrl
}
/api/services/app/auth/login`
,
method
:
'post'
,
data
});
...
...
components/page/dataGrid.vue
View file @
50285386
...
...
@@ -500,6 +500,10 @@ export default {
watch
:{
"data.length"
(){
this
.
list
=
this
.
data
;
},
"height"
()
{
this
.
tableHeight
=
this
.
height
;
}
}
}
...
...
i18n/locale/zh-CN.js
View file @
50285386
...
...
@@ -1019,13 +1019,9 @@ export default {
},
mes_op_task_plan_simulate
:
{
//参数设置的表
id
:
''
,
// partTaskPk: 订单ID,
// opTaskPk: 工单ID,
flog
:
0
,
//参数应用
planMethod
:
"转序规则"
,
// 平行 重叠
op_task_pk
:
'工单编号'
,
part_task_pk
:
'计划编号'
,
task
S
eq
:
'工序号'
,
task
_s
eq
:
'工序号'
,
task_name
:
'工序名称'
,
put_into_qty
:
'投产数量'
,
plan_start
:
'计划排产开始'
,
...
...
@@ -1034,23 +1030,21 @@ export default {
run_time
:
'单件工时'
,
transport_time
:
'转运时间'
,
check_time
:
'检验时间'
,
efficiency
V
alue
:
'效率系数'
,
efficiency
_v
alue
:
'效率系数'
,
singleout
:
'单件产出'
,
first_equip
:
'设备编号'
,
equip_type
:
'设备类型'
,
cal
I
d
:
'连班策略'
,
cal
_i
d
:
'连班策略'
,
machine_rule
:
'设备优先规则'
,
plan_method
:
'重叠转序'
,
over
T
ime
:
'六日加班'
,
is
D
iscrete
:
'是否离散'
,
discrete
:
'离散值'
,
over
_t
ime
:
'六日加班'
,
is
d
iscrete
:
'是否离散'
,
discrete
_value
:
'离散值'
,
multi_machine
:
'多台分配'
,
notes
:
'备注'
,
insert_flag
:
'插单'
,
outside_time
:
'外协时间'
,
discrete_percent
:
'离散百分比%'
,
multipleEquip
:
"是否多台安排设备"
,
// 否 是
multipleEquipIds
:
"设备id"
,
//用英文逗号分隔
taskseq_des
:
''
,
workshopcode
:
''
,
routing_detail_id
:
''
,
...
...
@@ -1058,44 +1052,6 @@ export default {
comb_param
:
''
,
rule_qty
:
''
,
},
routing_header
:
{
id
:
''
,
creationTime
:
''
,
creatorUserId
:
''
,
lastModificationTime
:
''
,
lastModifierUserId
:
''
,
deleterUserId
:
''
,
deletionTime
:
''
,
classId
:
'类id'
,
unicode
:
'unicode'
,
name
:
'工艺名称'
,
code
:
'工艺编号'
,
productId
:
'产品id'
,
productName
:
'产品名称'
,
productCode
:
'产品图号'
,
version
:
'工艺文件版本'
,
author
:
'编制人'
,
departmentId
:
''
,
isMain
:
''
,
upId
:
''
,
upDetailId
:
''
,
routingType
:
'工艺类型'
,
status
:
''
,
approvalStatus
:
'状态'
,
remark
:
'工艺说明'
,
roufile
:
'多媒体附件'
,
approvalStatusRemark
:
''
,
auditUserId1
:
'审核人'
,
auditUserId2
:
'审批人'
,
isDeleted
:
''
,
platesnum
:
''
,
isEffect
:
''
,
developmentMode
:
'研制方式'
,
changeOrderCode
:
'更改单编号'
,
changeOrderDate
:
'更改单日期'
,
changeMethod
:
'更改办法'
,
taskType
:
'任务类型'
,
},
routing_detail
:
{
id
:
''
,
creationTime
:
'创建时间'
,
...
...
layouts/basic-layout/product.vue
0 → 100644
View file @
50285386
This diff is collapsed.
Click to expand it.
layouts/default.vue
View file @
50285386
...
...
@@ -33,7 +33,6 @@ export default {
},
mounted
()
{
this
.
getMenu
();
this
.
initUserInfo
();
},
watch
:
{
// 监听路由 控制侧边栏显示 标记当前顶栏菜单(如需要)
...
...
@@ -66,29 +65,7 @@ export default {
}
},
methods
:
{
//获取用户基本信息
initUserInfo
()
{
let
userInfo
=
this
.
$store
.
state
.
admin
.
user
.
info
;
let
parma
=
{
Id
:
userInfo
.
userId
};
this
.
$http
.
sysUser
.
getuserinfo
(
parma
).
then
(
res
=>
{
if
(
res
.
result
)
{
if
(
res
.
result
.
avatarUrl
&&
res
.
result
.
avatarUrl
!=
""
&&
res
.
result
.
avatarUrl
!=
null
)
{
res
.
result
.
avatarUrl
=
fileUrlDown
+
res
.
result
.
avatarUrl
;
}
this
.
$store
.
commit
(
"admin/user/setUserAvatar"
,
res
.
result
);
}
else
{
this
.
$Message
.
error
(
"用户信息查询失败!"
);
}
});
},
//用户中心结束
//menu
getMenu
()
{
this
.
$http
.
sysUser
.
getusermenu
().
then
(
res
=>
{
if
(
res
.
result
)
{
...
...
layouts/product.vue
0 → 100644
View file @
50285386
<
template
>
<Layout
class=
"i-layout"
>
<Header>
<i-header-breadcrumb
v-if=
"showBreadcrumb && !headerMenu && !isMobile"
ref=
"breadcrumb"
/>
<div
class=
"i-layout-header-right"
>
<i-header-search
v-if=
"(showSearch && isMobile) || (showSearch && (headerMenu || showBreadcrumb))"
/>
<i-header-log
v-if=
"isDesktop && showLog"
/>
<i-header-bug
/>
<i-header-fullscreen
v-if=
"isDesktop && showFullscreen"
/>
<i-header-notice
v-if=
"showNotice"
/>
<i-header-user
/>
<i-header-i18n
v-if=
"showI18n"
/>
<i-header-setting
v-if=
"enableSetting && !isMobile"
/>
</div>
</Header>
<Content>
<nuxt
v-if=
"loadRouter"
/></Content>
</Layout>
</
template
>
\ No newline at end of file
pages/account/login/index.vue
View file @
50285386
<
template
>
<div
class=
"account"
>
<Carousel
v-model=
"value1"
autoplay
autoplay-speed=
"5000"
loop
class=
"zmd"
>
<Carousel
v-model=
"value1"
autoplay
:
autoplay-speed=
"5000"
loop
class=
"zmd"
>
<CarouselItem>
<div
class=
"bg bg0"
>
1
</div>
</CarouselItem>
...
...
@@ -29,17 +29,16 @@
<!--
<div
class=
"page-account-top-desc tc"
>
SaaS MES 制造执行系统
</div>
-->
</div>
<h3
class=
"mb20"
>
用户登陆
</h3>
<Login
@
on-submit=
"
oidc
"
>
<UserName
name=
"username"
value=
"
admin
"
/>
<Password
name=
"password"
value=
"
admin
"
enter-to-submit
/>
<Login
@
on-submit=
"
handleSubmit
"
>
<UserName
name=
"username"
value=
"
13211111111
"
/>
<Password
name=
"password"
value=
"
1
"
enter-to-submit
/>
<div
class=
"page-account-auto-login mb20"
>
<Checkbox
v-model=
"autoLogin"
>
{{
$t
(
'page.login.remember'
)
}}
</Checkbox>
<Checkbox
v-model=
"autoLogin"
>
{{
$t
(
'page.login.remember'
)
}}
</Checkbox>
<a
href
>
{{
$t
(
'page.login.forgot'
)
}}
</a>
</div>
<div
class=
"mt20"
>
<Submit
class=
"shadown"
>
{{
$t
(
'page.login.submit'
)
}}
</Submit>
</div>
</Login>
</div>
</div>
...
...
@@ -58,6 +57,7 @@ export default {
components
:
{
iCopyright
},
data
()
{
return
{
value1
:
0
,
autoLogin
:
true
};
},
...
...
@@ -66,34 +66,6 @@ export default {
},
methods
:
{
...
mapActions
(
"admin/account"
,
[
"login"
]),
oidc
()
{
let
that
=
this
;
mgr
.
getUser
().
then
(
function
(
user
)
{
if
(
user
)
{
console
.
info
(
"user"
,
user
)
that
.
msg
=
"该用户已经登录"
;
const
userInfos
=
{
token
:
user
.
access_token
,
login_id
:
user
.
profile
.
name
,
userId
:
user
.
profile
[
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"
],
accountId
:
user
.
profile
.
sub
,
tanantCode
:
user
.
profile
.
TanantCode
,
name
:
"Aresn"
,
avatar
:
"https://dev-file.iviewui.com/userinfoPDvn9gKWYihR24SpgC319vXY8qniCqj4/avatar"
,
access
:
[
"admin"
]
};
// that.$store.commit('setUserInfo',userInfos);
that
.
oidcLogin
(
userInfos
);
window
.
location
=
"/"
;
}
else
{
mgr
.
signinRedirect
();
}
});
},
/**
* @description 登录
* 表单校验已有 iView Pro 自动完成,如有需要修改,请阅读 iView Pro 文档
...
...
@@ -104,26 +76,50 @@ export default {
this
.
login
({
username
,
password
}).
then
(()
=>
{
// 重定向对象不存在则返回顶层路径
this
.
$router
.
replace
(
this
.
$route
.
query
.
redirect
||
"/"
);
}).
then
(
r
=>
{
if
(
r
>
0
)
{
this
.
$Message
.
success
(
"登陆成功!"
);
this
.
initUserInfo
(
r
);
}
else
{
this
.
$Message
.
error
(
"登陆失败!"
);
}
});
}
},
oidcLogin
(
user
)
{
util
.
cookies
.
set
(
"uuid"
,
user
.
userId
);
util
.
cookies
.
set
(
"token"
,
user
.
token
);
// 设置 vuex 用户信息
this
.
$store
.
dispatch
(
"admin/user/set"
,
user
,
{
root
:
true
});
// 用户登录后从持久化数据加载一系列的设置
this
.
$store
.
dispatch
(
"load"
);
this
.
$store
.
commit
(
"setUserInfo"
,
user
);
initUserInfo
(
id
)
{
let
parma
=
{
Id
:
id
};
this
.
$http
.
sysUser
.
getuserinfo
(
parma
).
then
(
res
=>
{
if
(
res
.
result
)
{
if
(
res
.
result
.
avatarUrl
&&
res
.
result
.
avatarUrl
!=
""
&&
res
.
result
.
avatarUrl
!=
null
)
{
res
.
result
.
avatarUrl
=
fileUrlDown
+
res
.
result
.
avatarUrl
;
}
let
info
=
res
.
result
;
info
.
auth
=
[
"admin"
];
info
.
avatar
=
info
.
avatarUrl
;
info
.
userId
=
info
.
id
;
info
.
name
=
info
.
userName
;
this
.
$store
.
dispatch
(
"admin/user/set"
,
info
,
{
root
:
true
});
// setUserInfo
this
.
$store
.
commit
(
"setUserInfo"
,
info
)
this
.
$router
.
replace
(
this
.
$route
.
query
.
redirect
||
"/"
);
}
else
{
this
.
$Message
.
error
(
"用户信息22查询失败!"
);
}
});
}
}
};
</
script
>
<
style
lang=
"less"
>
@jianju:40px;
@jianju:
40px;
.account {
position: fixed;
width: 100%;
...
...
@@ -160,12 +156,14 @@ export default {
left: @jianju;
right: @jianju;
bottom: @jianju;
background: rgba(38,
128,
235, 0.3);
background: rgba(38,
128,
235, 0.3);
display: flex;
.ad{
.ad
{
flex: 1;
text-align: center;
img{margin-top: 400px;}
img {
margin-top: 400px;
}
}
.login {
background-color: white;
...
...
@@ -176,14 +174,13 @@ export default {
// background-position-y: 525px;
.ivu-input-wrapper {
margin-bottom: 5px;
}
.mt20{
.mt20
{
margin-top: 50px;
.shadown{
box-shadow: 1px 5px 15px #2680
EB
;
.shadown
{
box-shadow: 1px 5px 15px #2680
eb
;
}
.ivu-btn-large
{
.ivu-btn-large
{
height: 50px !important;
}
}
...
...
pages/aps/aps/api.js
View file @
50285386
...
...
@@ -53,7 +53,7 @@ export default {
return
Api
.
post
(
`
${
apsUrl
}
/apspoolappservices/processschemedispatch`
,
params
);
},
//APS排产前数据合法性校验
recoveryoptasksimluate
(
params
)
{
apsdatachecked
(
params
)
{
return
Api
.
post
(
`
${
apsUrl
}
/apspoolappservices/apsdatachecked`
,
params
);
},
//获取连班策略
...
...
pages/aps/aps/components/excute.vue
View file @
50285386
...
...
@@ -10,14 +10,12 @@
:border=
"false"
:data=
"data1"
:page=
"false"
:height=
"gridHeight"
></DataGrid>
<Modal
v-model=
"editModal"
title=
"编辑"
footer-hide
width=
"800"
>
<Edit
:eid=
"curId"
@
on-close=
"cancel"
/>
</Modal>
<Modal
v-model=
"deletelModal"
title=
"删除"
@
on-ok=
"removeOk"
@
on-cancel=
"cancel"
>
<p>
确定删除?
</p>
</Modal>
<Modal
v-model=
"insertlModal"
title=
"插单"
@
on-ok=
"insertOk"
@
on-cancel=
"cancel"
>
<p>
确定进行
{{
insertTItle
}}
操作?
</p>
</Modal>
...
...
@@ -51,10 +49,10 @@ export default {
setParsModal
:
false
,
editModal
:
false
,
detailModal
:
false
,
deletelModal
:
false
,
insertlModal
:
false
,
rowIndex
:
null
,
curId
:
0
,
gridHeight
:
50
,
columns
:
[
{
key
:
"id"
,
title
:
this
.
l
(
"id"
),
hide
:
true
,
align
:
"left"
},
{
title
:
" "
,
width
:
130
},
...
...
@@ -301,6 +299,7 @@ export default {
attrs
:
{
icon
:
"md-options"
,
type
:
"icon"
,
oprate
:
"detail"
,
title
:
"工序参数设置"
},
on
:
{
click
:
()
=>
this
.
openParms
(
params
.
row
.
id
)
}
...
...
@@ -323,14 +322,15 @@ export default {
oprate
:
"delete"
,
msg
:
"确认要刪除工序吗?"
},
on
:
{
click
:
()
=>
this
.
remove
(
params
.
row
.
id
,
params
.
index
)
}
on
:
{
click
:
()
=>
this
.
remove
(
params
.
row
,
params
.
index
)
}
})
]);
}
}
],
data1
:
[],
insertTItle
:
"插单"
insertTItle
:
"插单"
,
selectRoutingDetail
:
{}
//需那种工序
};
},
mounted
()
{
...
...
@@ -344,9 +344,11 @@ export default {
loadData
(
expendId
)
{
let
params
=
{
id
:
expendId
}
Api
.
getbyorderid
(
params
).
then
(
(
res
)
=>
{
}
;
Api
.
getbyorderid
(
params
).
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
gridHeight
=
50
;
this
.
gridHeight
=
(
res
.
result
.
length
+
1
)
*
48
;
this
.
data1
=
res
.
result
;
}
});
...
...
@@ -392,25 +394,22 @@ export default {
//编辑工序end----
//删除工序事件start-----
remove
(
id
,
index
)
{
this
.
deletelModal
=
true
;
this
.
curId
=
Number
(
id
);
remove
(
row
,
index
)
{
//this.curId = Number(id);
this
.
rowIndex
=
index
;
},
removeOk
()
{
alert
(
this
.
rowIndex
);
this
.
selectRoutingDetail
=
row
;
let
params
=
{
partPk
:
this
.
selectRoutingDetail
.
part_task_pk
,
detailIdstr
:
this
.
selectRoutingDetail
.
routing_detail_id
};
Api
.
removeoptasksimluate
(
params
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"删除成功"
);
this
.
data1
.
splice
(
this
.
rowIndex
,
1
);
// Api.delete({ id: this.curId }).then((r) => {
// if (r.success) {
// this.$refs.grid.load()
// this.deletelModal = false
// this.$Message.success('删除成功')
// }
// })
},
removeCancel
()
{
this
.
deletelModal
=
false
;
}
});
},
//删除工序时间end-----
cancel
()
{
this
.
curId
=
0
;
...
...
pages/aps/aps/index.vue
View file @
50285386
...
...
@@ -8,7 +8,7 @@
:high=
"false"
@
on-drag-drop=
"onDragDrop"
:page=
"false"
@
on-select=
"onSelect"
@
on-select
ion-change
=
"onSelect"
:batch=
"true"
:border=
"false"
:easy=
"false"
...
...
@@ -28,13 +28,13 @@
<Button
type=
"primary"
@
click=
"apsModal=true"
>
APS排产
</Button>
</
template
>
<
template
slot=
"batch"
>
<Button
type=
"primary"
class=
"mr10 ml10"
>
移出排产
</Button>
<Button
type=
"primary"
class=
"mr10 ml10"
@
click=
"removeOk"
>
移出排产
</Button>
</
template
>
</DataGrid>
<Modal
v-model=
"addModal"
title=
"工序参数设置"
footer-hide
width=
"1000"
>
<Add
@
on-close=
"cancel"
@
on-ok=
"addOk"
/>
</Modal>
<Modal
v-model=
"apsModal"
title=
"确定APS排产"
@
on-ok=
"
remove
Ok"
@
on-cancel=
"cancel"
>
<Modal
v-model=
"apsModal"
title=
"确定APS排产"
@
on-ok=
"
aps
Ok"
@
on-cancel=
"cancel"
>
<p>
确定进行APS排产?
</p>
</Modal>
</div>
...
...
@@ -123,7 +123,10 @@ export default {
key
:
"priority"
,
title
:
this
.
l
(
"priority"
),
align
:
"left"
,
high
:
true
high
:
true
,
render
:
(
h
,
params
)
=>
{
return
h
(
"span"
,
{},
params
.
index
+
1
);
}
},
{
key
:
"plan_qty"
,
...
...
@@ -209,7 +212,7 @@ export default {
oprate
:
"delete"
,
msg
:
"确认要移出排产吗?"
},
on
:
{
click
:
()
=>
this
.
remove
(
params
.
row
.
id
)
}
on
:
{
click
:
()
=>
this
.
remove
(
params
.
row
.
part_task_pk
)
}
}),
h
(
"op"
,
{
attrs
:
{
...
...
@@ -219,12 +222,13 @@ export default {
oprate
:
"delete"
,
msg
:
"确认要恢复工序吗?"
},
on
:
{
click
:
()
=>
this
.
re
move
(
params
.
row
.
id
)
}
on
:
{
click
:
()
=>
this
.
re
fresh
(
params
.
row
.
part_task_pk
)
}
})
]);
}
}
]
],
arrPartPkId
:
[]
};
},
mounted
()
{
...
...
@@ -257,21 +261,49 @@ export default {
this
.
editModal
=
true
;
this
.
curId
=
id
;
},
remove
(
id
)
{
this
.
deletelModal
=
true
;
this
.
curId
=
id
;
refresh
(
partPkId
)
{
//恢复工序
let
params
=
{
id
:
partPkId
};
Api
.
recoveryoptasksimluate
(
params
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"恢复成功"
);
this
.
list
=
[];
this
.
loadList
()
}
});
},
onSelect
(
a
,
b
)
{},
removeOk
()
{
Api
.
delete
({
id
:
this
.
curId
}).
then
(
r
=>
{
remove
(
partPkId
)
{
//移出排产池
let
paramsArry
=
[];
if
(
partPkId
.
constructor
==
Array
)
{
paramsArry
=
partPkId
;
}
else
{
paramsArry
.
push
(
partPkId
);
}
let
params
=
{
partPks
:
paramsArry
};
Api
.
shiftoutapspool
(
params
).
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$refs
.
grid
.
load
();
this
.
deletelModal
=
false
;
this
.
$Message
.
success
(
"删除成功"
);
this
.
$Message
.
success
(
"移出排产池操作成功"
);
this
.
loadList
();
}
});
},
onSelect
(
a
,
b
)
{
//批量选择
let
selectRows
=
a
;
this
.
arrPartPkId
=
[];
selectRows
.
forEach
(
e
=>
{
this
.
arrPartPkId
.
push
(
e
.
part_task_pk
);
});
},
removeOk
()
{
//批量选择移出排产池
this
.
remove
(
this
.
arrPartPkId
);
},
removeCancel
()
{
this
.
deletelModal
=
false
;
},
...
...
@@ -292,6 +324,50 @@ export default {
l
(
key
)
{
let
vkey
=
"mes_part_task_plan_simulate"
+
"."
+
key
;
return
this
.
$t
(
vkey
)
||
key
;
},
//a确定aps排产
apsOk
()
{
//APS排产前订单优先级功能
let
parmsOrderpriority
=
{
alls
:
[]
};
let
arryIds
=
[];
this
.
list
.
forEach
((
e
,
index
)
=>
{
let
objIds
=
{};
objIds
.
orderId
=
e
.
part_task_pk
;
objIds
.
priority
=
index
+
1
;
arryIds
.
push
(
objIds
);
});
parmsOrderpriority
.
alls
=
arryIds
;
// alert(JSON.stringify(parmsOrderpriority));
Api
.
orderpriority
(
parmsOrderpriority
).
then
(
res
=>
{
if
(
res
.
success
)
{
if
(
res
.
result
)
{
this
.
$Message
.
success
(
"排序成功"
);
//apsp排产前检查
Api
.
apsdatachecked
().
then
(
res1
=>
{
if
(
res1
.
success
)
{
if
(
res1
.
result
)
{
this
.
$Message
.
success
(
"数据校验成功"
);
}
else
{
this
.
$Message
.
success
(
"数据校验失败"
);
}
}
else
{
this
.
$Message
.
error
(
"操作失败:数据校验"
);
}
})
}
else
{
this
.
$Message
.
error
(
"排序失败,请重新APS排产操作"
);
}
}
else
{
this
.
$Message
.
error
(
"操作失败:排序"
);
}
});
//APS排产前数据合法性校验
}
}
};
...
...
pages/aps/dispatch/dispatch.less
View file @
50285386
...
...
@@ -16,6 +16,7 @@
}
.dispatch_part{
border: 1px solid #ccc;
height: 100%;
.dispatch_part_top{
height: 50px;
line-height: 50px;
...
...
pages/aps/plan/index.vue
View file @
50285386
...
...
@@ -433,6 +433,7 @@ export default {
.
then
(
r
=>
{
if
(
r
.
success
)
{
this
.
$Message
.
success
(
"移入排产成功"
);
this
.
$refs
.
grid
.
reload
(
this
.
easySearch
);
}
else
{
this
.
$Message
.
error
(
"移入排产失败"
);
}
...
...
pages/aps/results/api.js
View file @
50285386
import
Api
from
'@/plugins/request'
export
default
{
// index: `${aps
Result
}/scheduletotal/getall`,
// index: `${aps
Url
}/scheduletotal/getall`,
paged
(
params
)
{
return
Api
.
get
(
`
${
aps
Result
}
/scheduletotal/getall`
,
params
);
return
Api
.
get
(
`
${
aps
Url
}
/scheduletotal/getall`
,
params
);
},
getall
(
params
)
{
return
Api
.
get
(
`
${
aps
Result
}
/schema/getall`
,
params
);
return
Api
.
get
(
`
${
aps
Url
}
/schema/getall`
,
params
);
},
clearall
(
params
)
{
return
Api
.
post
(
`
${
aps
Result
}
/schema/clearall`
,
params
);
return
Api
.
post
(
`
${
aps
Url
}
/schema/clearall`
,
params
);
},
getdetail
(
params
)
{
return
Api
.
get
(
`
${
aps
Result
}
/scheduletotal/getdetail`
,
params
);
return
Api
.
get
(
`
${
aps
Url
}
/scheduletotal/getdetail`
,
params
);
},
}
pages/basicData/systemlog/components/detail.vue
View file @
50285386
...
...
@@ -61,7 +61,7 @@
<Input
v-model=
"formValidate.parameters"
type=
"textarea"
rows=
"3"
:
rows=
"3"
style=
"width:634px;"
></Input>
</FormItem>
...
...
@@ -71,7 +71,7 @@
<Input
v-model=
"formValidate.exception"
type=
"textarea"
rows=
"3"
:
rows=
"3"
style=
"width:634px;"
></Input>
</FormItem>
...
...
pages/basicData/user/index.vue
View file @
50285386
...
...
@@ -21,7 +21,7 @@
ref=
"grid"
:action=
"action"
:conditions=
"easySearch"
placeholder=
"请输入姓名
或者员工编号进行搜索
"
placeholder=
"请输入姓名
/员工编号
"
:high=
"true"
:height=
"tdHeight"
>
...
...
@@ -126,6 +126,7 @@ import Edit from "./edit";
import
Detail
from
"./detail"
;
import
Search
from
"./search"
;
import
service
from
"@/plugins/request"
;
import
util
from
'@/libs/util'
;
export
default
{
name
:
"list"
,
components
:
{
...
...
@@ -451,7 +452,7 @@ export default {
let
parms
=
{
userId
:
this
.
curId
,
accountId
:
this
.
selectRow
.
accountId
,
tanantCode
:
this
.
$store
.
state
.
userInfo
.
tanantCode
,
tanantCode
:
util
.
cookies
.
get
(
'tanantCode'
)
,
isDeleted
:
true
};
Api
.
authAccount
(
parms
).
then
(
res
=>
{
...
...
@@ -604,7 +605,7 @@ export default {
userId
:
this
.
selectRow
.
id
,
loginName
:
this
.
selectRow
.
phone
,
status
:
this
.
selectRow
.
status
,
tanantCode
:
this
.
$store
.
state
.
userInfo
.
tanantCode
tanantCode
:
util
.
cookies
.
get
(
'tanantCode'
),
};
if
(
this
.
selectRow
.
phone
&&
this
.
selectRow
.
phone
!=
""
)
{
Api
.
authAccount
(
parms
).
then
(
res
=>
{
...
...
pages/implement/table.less
View file @
50285386
...
...
@@ -44,6 +44,7 @@
padding : 8px 15px;
border-bottom: 1px solid #e4e6ed;
position : relative;
height: 46px;
}
.state {
...
...
pages/processDesign/ChangeSingle/unqualifiedorder/trialOrder.vue
View file @
50285386
...
...
@@ -169,8 +169,8 @@ export default {
},
formcontextdata
:
{
measures
:
''
,
triaLevel
:
''
,
conclusion
:
''
,
triaLevel
:
[]
,
conclusion
:
[]
,
causeAnalysis
:
''
,
},
formcontextclosedata
:
...
...
pages/system/host/index.vue
View file @
50285386
<
template
>
<div>
<DataGrid
:columns=
"columns"
ref=
"grid"
:action=
"action"
><template
slot=
"easySearch"
><Form
ref=
"formInline"
:model=
"easySearch"
inline
><FormItem
prop=
"keys"
><Input
placeholder=
"请输入
关键字数据源名称/服务器地址/用户名
"
v-model=
"easySearch.keys.value"
/>
</FormItem>
<DataGrid
:columns=
"columns"
ref=
"grid"
:action=
"action"
><template
slot=
"easySearch"
><Form
ref=
"formInline"
:model=
"easySearch"
inline
><FormItem
prop=
"keys"
><Input
placeholder=
"请输入
数据源/服务器/用户"
class=
"w200
"
v-model=
"easySearch.keys.value"
/>
</FormItem>
<FormItem><Button
type=
"primary"
@
click=
"search"
>
查询
</Button></FormItem>
</Form></
template
>
<
template
slot=
"searchForm"
>
...
...
pages/system/tanant/index.vue
View file @
50285386
...
...
@@ -4,7 +4,7 @@
<template
slot=
"easySearch"
>
<Form
ref=
"formInline"
:model=
"easySearch"
inline
>
<FormItem
prop=
"keys"
>
<Input
placeholder=
"请输入
关键字公司名称/公司编码"
v-model=
"easySearch.keys.value"
/>
<Input
placeholder=
"请输入
公司名称/公司编码"
v-model=
"easySearch.keys.value"
class=
"w200"
/>
</FormItem>
<FormItem>
<Button
type=
"primary"
@
click=
"search"
>
查询
</Button>
...
...
plugins/iview.js
View file @
50285386
...
...
@@ -94,7 +94,7 @@ Vue.component("DTSpan", DTSpan)
Vue
.
component
(
"DTSearch"
,
DTSearch
)
//注入mock
require
(
"../mock"
)
//
require("../mock")
Vue
.
prototype
.
$api
=
request
;
Vue
.
prototype
.
$http
=
Api
;
Vue
.
prototype
.
$u
=
Henq
;
...
...
plugins/request/index.js
View file @
50285386
...
...
@@ -13,6 +13,14 @@ function errorCreate (msg) {
// 记录和显示错误
function
errorLog
(
err
)
{
if
(
err
&&
err
.
response
&&
err
.
response
.
status
==
500
){
console
.
log
(
err
.
response
)
Message
.
error
({
content
:
err
.
response
.
data
.
error
.
message
,
duration
:
5
})
return
;
}
// 添加到日志
$nuxt
.
$store
.
dispatch
(
'admin/log/push'
,
{
message
:
'数据请求异常'
,
...
...
@@ -28,18 +36,18 @@ function errorLog (err) {
console
.
log
(
err
);
}
// 显示提示,可配置使用 iView 的 $Message 还是 $Notice 组件来显示
if
(
Setting
.
errorModalType
===
'Message'
)
{
Message
.
error
({
content
:
err
.
message
,
duration
:
Setting
.
modalDuration
});
}
else
if
(
Setting
.
errorModalType
===
'Notice'
)
{
Notice
.
error
({
title
:
'提示'
,
desc
:
err
.
message
,
duration
:
Setting
.
modalDuration
});
}
//
if (Setting.errorModalType === 'Message') {
//
Message.error({
//
content: err.message,
//
duration: Setting.modalDuration
//
});
//
} else if (Setting.errorModalType === 'Notice') {
//
Notice.error({
//
title: '提示',
//
desc: err.message,
//
duration: Setting.modalDuration
//
});
//
}
}
// 创建一个 axios 实例
...
...
@@ -83,7 +91,7 @@ service.interceptors.request.use(
},
error
=>
{
// 发送失败
console
.
log
(
error
);
//
console.log(error);
Promise
.
reject
(
error
);
}
);
...
...
store/admin/account.js
View file @
50285386
...
...
@@ -3,10 +3,14 @@
* */
import
util
from
'@/libs/util'
;
// import router from '@/router';
import
{
AccountLogin
,
AccountRegister
}
from
'@/api/account'
;
import
Oidc
from
'oidc-client'
import
{
Modal
}
from
'view-design'
;
export
const
actions
=
{
import
{
AccountLogin
,
AccountRegister
}
from
'@/api/account'
;
import
{
Modal
}
from
'view-design'
;
export
const
actions
=
{
/**
* @description 登录
* @param {Object} param context
...
...
@@ -14,7 +18,9 @@ export const actions={
* @param {Object} param password {String} 密码
* @param {Object} param route {Object} 登录成功后定向的路由对象 任何 vue-router 支持的格式
*/
login
({
dispatch
},
{
login
({
dispatch
},
{
username
=
''
,
password
=
''
}
=
{})
{
...
...
@@ -32,14 +38,24 @@ export const actions={
// 如有必要 token 需要定时更新,默认保存一天,可在 setting.js 中修改
// 如果你的 token 不是通过 cookie 携带,而是普通字段,也可视情况存储在 localStorage
console
.
warn
(
res
);
util
.
cookies
.
set
(
'uuid'
,
res
.
uuid
);
util
.
cookies
.
set
(
'token'
,
res
.
token
);
// 设置 vuex 用户信息
await
dispatch
(
'admin/user/set'
,
res
.
info
,
{
root
:
true
});
// 用户登录后从持久化数据加载一系列的设置
await
dispatch
(
'load'
);
if
(
res
.
result
)
{
util
.
cookies
.
set
(
'uuid'
,
res
.
result
.
userId
);
util
.
cookies
.
set
(
'tanantCode'
,
res
.
result
.
tanantCode
);
util
.
cookies
.
set
(
'token'
,
res
.
result
.
accessToken
);
sessionStorage
.
setItem
(
'token'
,
res
.
result
.
accessToken
)
// // 设置 vuex 用户信息
// await dispatch('admin/user/set', res.info, {
// root: true
// });
// // 用户登录后从持久化数据加载一系列的设置
// await dispatch('load');
// 结束
resolve
(
res
.
result
.
userId
);
}
else
{
resolve
();
}
})
.
catch
(
err
=>
{
// console.log('err: ', err);
...
...
@@ -50,23 +66,23 @@ export const actions={
/**
* @description 退出登录
* */
logout
({
commit
,
dispatch
},
{
confirm
=
false
,
vm
}
=
{})
{
var
mgr
=
new
Oidc
.
UserManager
(
window
.
authConfig
)
async
function
logout
()
{
logout
({
commit
,
dispatch
},
{
confirm
=
false
,
vm
}
=
{})
{
async
function
logout
()
{
// 删除cookie
util
.
cookies
.
remove
(
'token'
);
util
.
cookies
.
remove
(
'uuid'
);
// 清空 vuex 用户信息
await
dispatch
(
'admin/user/set'
,
{},
{
root
:
true
});
// 跳转路由
// alert(123)
window
.
frames
[
0
].
sessionStorage
.
clear
()
sessionStorage
.
clear
()
mgr
.
events
.
addUserSignedOut
(
function
()
{
log
(
'User signed out of OP'
)
mgr
.
removeUser
()
})
await
dispatch
(
'admin/user/set'
,
{},
{
root
:
true
});
sessionStorage
.
clear
();
localStorage
.
clear
();
$nuxt
.
$router
.
push
(
"/account/login"
);
}
...
...
@@ -74,7 +90,7 @@ export const actions={
Modal
.
confirm
({
title
:
vm
.
$t
(
'basicLayout.logout.confirmTitle'
),
content
:
vm
.
$t
(
'basicLayout.logout.confirmContent'
),
onOk
()
{
onOk
()
{
logout
();
}
});
...
...
@@ -90,7 +106,9 @@ export const actions={
* @param {Object} param mobile {String} 手机号码
* @param {Object} param captcha {String} 验证码
*/
register
({
dispatch
},
{
register
({
dispatch
},
{
mail
=
''
,
password
=
''
,
mobile
=
''
,
...
...
@@ -110,7 +128,9 @@ export const actions={
util
.
cookies
.
set
(
'uuid'
,
res
.
uuid
);
util
.
cookies
.
set
(
'token'
,
res
.
token
);
// 设置 vuex 用户信息
await
dispatch
(
'admin/user/set'
,
res
.
info
,
{
root
:
true
});
await
dispatch
(
'admin/user/set'
,
res
.
info
,
{
root
:
true
});
// 用户登录后从持久化数据加载一系列的设置
await
dispatch
(
'load'
);
// 结束
...
...
@@ -127,12 +147,19 @@ export const actions={
* @param {Object} state vuex state
* @param {Object} dispatch vuex dispatch
*/
load
({
state
,
dispatch
})
{
load
({
state
,
dispatch
})
{
return
new
Promise
(
async
resolve
=>
{
// 加载用户登录信息
await
dispatch
(
'admin/user/load'
,
null
,
{
root
:
true
});
await
dispatch
(
'admin/user/load'
,
null
,
{
root
:
true
});
// 持久化数据加载上次退出时的多页列表
await
dispatch
(
'admin/page/openedLoad'
,
null
,
{
root
:
true
});
await
dispatch
(
'admin/page/openedLoad'
,
null
,
{
root
:
true
});
// end
resolve
();
})
...
...
store/index.js
View file @
50285386
...
...
@@ -41,8 +41,8 @@ export const mutations={
},
setUserInfo
(
state
,
userInfo
)
{
state
.
userInfo
=
userInfo
;
sessionStorage
.
setItem
(
"userInfo"
,
JSON
.
stringify
(
userInfo
));
sessionStorage
.
setItem
(
"token"
,
userInfo
.
token
);
//
sessionStorage.setItem("userInfo", JSON.stringify(userInfo));
//
sessionStorage.setItem("token", userInfo.token);
},
addUser
(
state
,
user
){
state
.
userMap
.
push
(
user
);
...
...
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