Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gavel-erp-vue
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
李苏
gavel-erp-vue
Commits
51acd15e
Commit
51acd15e
authored
Jul 27, 2023
by
李苏
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
二级菜单调整,物料相关页面(未完)
parent
f9907d23
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
966 additions
and
10 deletions
+966
-10
attribute.js
src/api/baseData/material/attribute.js
+44
-0
classification.js
src/api/baseData/material/classification.js
+44
-0
info.js
src/api/baseData/material/info.js
+51
-0
SidebarItem.vue
src/layout/components/Sidebar/SidebarItem.vue
+3
-5
index.js
src/router/index.js
+56
-0
edit.vue
src/views/baseData/material/attribute/edit.vue
+63
-0
index.vue
src/views/baseData/material/attribute/index.vue
+150
-0
edit.vue
src/views/baseData/material/classification/edit.vue
+85
-0
index.vue
src/views/baseData/material/classification/index.vue
+129
-0
index.vue
src/views/baseData/material/index.vue
+55
-0
edit.vue
src/views/baseData/material/info/edit.vue
+85
-0
index.vue
src/views/baseData/material/info/index.vue
+199
-0
index.vue
src/views/baseData/store/index.vue
+2
-5
No files found.
src/api/baseData/material/attribute.js
0 → 100644
View file @
51acd15e
import
request
from
'common/src/utils/request'
/* query */
export
function
doQuery
(
query
)
{
return
request
({
url
:
'/jcsj/wlsx/query'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
doAdd
(
query
)
{
return
request
({
url
:
'/jcsj/wlsx/add'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
doUpdate
(
query
)
{
return
request
({
url
:
'/jcsj/wlsx/update'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
doDelete
(
query
)
{
return
request
({
url
:
'/jcsj/wlsx/delete'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
qt
(
query
)
{
return
request
({
url
:
'/jcsj/wlsx/startOrStop'
,
method
:
'post'
,
data
:
query
||
{}
})
}
src/api/baseData/material/classification.js
0 → 100644
View file @
51acd15e
import
request
from
'common/src/utils/request'
/* query */
export
function
doQuery
(
query
)
{
return
request
({
url
:
'/jcsj/wlfl/query'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
doAdd
(
query
)
{
return
request
({
url
:
'/jcsj/wlfl/add'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
doUpdate
(
query
)
{
return
request
({
url
:
'/jcsj/wlfl/update'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
doDelete
(
query
)
{
return
request
({
url
:
'/jcsj/wlfl/delete'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
qt
(
query
)
{
return
request
({
url
:
'/jcsj/wlfl/record/qt'
,
method
:
'post'
,
data
:
query
||
{}
})
}
src/api/baseData/material/info.js
0 → 100644
View file @
51acd15e
import
request
from
'common/src/utils/request'
/* query */
export
function
doQuery
(
query
)
{
return
request
({
url
:
'/jcsj/wlxx/query'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
doAdd
(
query
)
{
return
request
({
url
:
'/jcsj/wlxx/add'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
doUpdate
(
query
)
{
return
request
({
url
:
'/jcsj/wlxx/update'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
doDelete
(
query
)
{
return
request
({
url
:
'/jcsj/wlxx/delete'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
qt
(
query
)
{
return
request
({
url
:
'/jcsj/wlxx/record/qt'
,
method
:
'post'
,
data
:
query
||
{}
})
}
export
function
apiTreeQuery
(
query
)
{
return
request
({
url
:
'/jcsj/wlfl/query'
,
method
:
'post'
,
data
:
query
||
{}
})
}
src/layout/components/Sidebar/SidebarItem.vue
View file @
51acd15e
...
...
@@ -2,7 +2,7 @@
<div
v-if=
"!item.hidden"
>
<template
v-if=
"hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow"
>
<app-link
v-if=
"onlyOneChild.meta"
:to=
"resolvePath(onlyOneChild.path, onlyOneChild.query)"
>
<el-menu-item
:style=
"sidebar.opened?'
padding-left: 25px;
':'padding-left: 0px;'"
:index=
"resolvePath(onlyOneChild.path)"
:class=
"
{'submenu-title-noDropdown':!isNest}">
<el-menu-item
:style=
"sidebar.opened?'':'padding-left: 0px;'"
:index=
"resolvePath(onlyOneChild.path)"
:class=
"
{'submenu-title-noDropdown':!isNest}">
<!--
<item
:icon=
"onlyOneChild.meta.icon||(item.meta&&item.meta.icon)"
:title=
"onlyOneChild.meta.title"
/>
-->
<div
style=
"display: inline-block;text-align: center;"
:class=
"
{'open':!sidebar.opened,'close':sidebar.opened}">
...
...
@@ -23,8 +23,6 @@
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"(item&&item.meta&&item.meta.title)?item.meta.title:item.title"
placement=
"right"
>
<span>
{{
(
item
&&
item
.
meta
&&
item
.
meta
.
title
)?
item
.
meta
.
title
:
item
.
title
}}
</span>
</el-tooltip>
</
template
>
<sidebar-item
v-for=
"child in item.children"
...
...
src/router/index.js
View file @
51acd15e
...
...
@@ -90,6 +90,62 @@ export const powerRoutes=[
path
:
"storeActionType"
,
}
]
},
/* 物料*/
{
component
:
'baseData/material/index'
,
hidden
:
false
,
meta
:{
"title"
:
"物料"
,
"icon"
:
""
,
"noCache"
:
false
,
"link"
:
null
,
"mkid"
:
215020000
,
},
redirect
:
'materialClassification'
,
name
:
'material'
,
path
:
"material"
,
children
:[{
component
:
'baseData/material/classification/index'
,
hidden
:
false
,
meta
:{
"title"
:
"物料分类"
,
"icon"
:
""
,
"noCache"
:
false
,
"link"
:
null
,
"mkid"
:
215020100
,
},
name
:
'materialClassification'
,
path
:
"materialClassification"
,
},
{
component
:
'baseData/material/info/index'
,
hidden
:
false
,
meta
:{
"title"
:
"物料信息"
,
"icon"
:
""
,
"noCache"
:
false
,
"link"
:
null
,
"mkid"
:
215020200
,
},
name
:
'materialInfo'
,
path
:
"materialInfo"
,
},
{
component
:
'baseData/material/attribute/index'
,
hidden
:
false
,
meta
:{
"title"
:
"物料属性"
,
"icon"
:
""
,
"noCache"
:
false
,
"link"
:
null
,
"mkid"
:
215022000
,
},
name
:
'materialAttribute'
,
path
:
"materialAttribute"
,
}
]
},
]
...
...
src/views/baseData/material/attribute/edit.vue
0 → 100644
View file @
51acd15e
<
template
>
<RelDialog
:type=
'type'
:editApp=
'editApp'
:app=
'app'
:buttonApp=
'buttonApp'
>
<!-- 填写表单内容,slot=form必写-->
<el-form
slot=
"form"
ref=
"form"
:model=
"form"
label-width=
"100px"
:rules=
"rules"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"名称"
ref=
"name"
prop=
"name"
>
<el-input
:readonly=
"readonly"
v-model=
"form.name"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"类型"
ref=
"type"
prop=
"type"
>
<RelSelect
:readonly=
"readonly"
filterable
style=
"width: 100%;"
src=
'jcsj/wlsx//init/type'
:match=
"
{value:'id',label:'name'}" v-model='form.type' >
</RelSelect>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"宽度"
ref=
"width"
prop=
"width"
>
<el-input
type=
"number"
:readonly=
"readonly"
v-model=
"form.width"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"备注"
ref=
"bz"
prop=
"bz"
>
<el-input
:readonly=
"readonly"
v-model=
"form.bz"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</RelDialog>
</
template
>
<
script
>
import
{
editMixin
}
from
'common'
export
default
{
mixins
:
[
editMixin
],
/* 存放index页面传递的额外参数*/
mounted
()
{
},
/* 组件名称*/
/* 传递props模式一样必填,用于index,button,REdialog之间的组件通信*/
data
()
{
return
{
/* 当前表单初始值,默认由RelDialog查询indexQuery赋值,copy时不赋值id,初始化时所有query的值都会赋值给form*/
form
:
{
name
:
''
,
type
:
''
,
bz
:
''
,
width
:
''
}
}
},
methods
:
{
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/baseData/material/attribute/index.vue
0 → 100644
View file @
51acd15e
<
template
>
<div
class=
"min_full"
>
<!-- 查询条件-->
<!--
<div
class=
"search"
v-condition
>
<SearchButton
:app=
'app'
></SearchButton>
<el-row
:gutter=
"20"
class=
"search-row-1"
>
<el-col
:span=
"6"
class=
"search-col"
>
<div
class=
"search-item"
>
<span
class=
"search-span"
>
物料分类:
</span>
<el-input
v-model=
"queryParams.search"
></el-input>
</div>
</el-col>
</el-row>
</div>
-->
<!-- 按钮操作-->
<el-row
class=
"tool-bar"
>
<ToolButton
:app=
'app'
></ToolButton>
<ViewButton
ref=
"view"
:app=
'app'
></ViewButton>
<AddButton
ref=
"add"
:app=
'app'
></AddButton>
<CopyButton
ref=
"copy"
:app=
'app'
></CopyButton>
<EditButton
ref=
"edit"
:app=
'app'
></EditButton>
<!--
<AttachFileButton
:app=
'app'
></AttachFileButton>
-->
<!-- 额外按钮-->
<!-- 表头设置 -->
<!-- 权限-->
</el-row>
<!-- 表格-->
<div
class=
"tablePagers"
>
<TablePager
@
getData=
'getData'
:ref=
"'TablePager'"
:app=
'app'
:query=
'query'
@
selectItem=
'selectItem'
@
getRow=
'getRow'
>
<template
slot=
"tabCustom"
>
<el-table-column
label=
"启用/停用"
width=
"90"
header-align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<el-switch
@
click
.
native=
"setEnable(scope.row.id)"
:value=
'tybz(scope)'
style=
"width: 80px;justify-content: center;"
active-color=
"#13ce66"
inactive-color=
"#eee"
>
</el-switch>
</
template
>
</el-table-column>
</template>
</TablePager>
</div>
</div>
</template>
<
script
>
import
{
doQuery
,
doAdd
,
doUpdate
,
doDelete
,
qt
}
from
'@/api/baseData/material/attribute.js'
;
/* edit页面*/
import
Edit
from
'./edit'
import
{
tableMixin
}
from
'common'
export
default
{
mixins
:
[
tableMixin
],
name
:
'materialAttribute'
,
/* 初始额外赋值*/
async
mounted
()
{
this
.
$refs
[
'TablePager'
].
pageQuery
()
},
data
()
{
return
{
/*需要的额外参数 */
showDialog
:
false
,
DialogName
:
''
,
type
:
''
,
DialogTitle
:
''
,
/* 基础url*/
baseUrl
:
'jcsj/wlsx'
,
/* 查询参数*/
queryParams
:
{
search
:
''
},
/* 表格标题对应参数*/
tableTitle
:
[
{
title
:
"名称"
,
field
:
"name"
,
fieldType
:
"ftString"
,
width
:
220
},
{
title
:
"显示"
,
field
:
"show"
,
formatter
(
a
,
b
,
v
){
let
map
=
{
Y
:
'显示'
,
N
:
'隐藏'
}
return
map
[
v
]
},
width
:
60
},
{
title
:
"类型"
,
field
:
"type"
,
fieldType
:
"ftString"
,
width
:
60
,
transform
:{
url
:
'jcsj/wlsx/init/type'
,
label
:
'name'
,
value
:
'id'
}
},
{
title
:
"宽度"
,
field
:
"width"
,
fieldType
:
"int"
},
{
title
:
"备注"
,
field
:
"bz"
,
fieldType
:
"ftString"
,
width
:
300
},
{
title
:
"维护人"
,
field
:
"whr"
,
fieldType
:
"ftString"
},
{
title
:
"维护时间"
,
field
:
"whsj"
,
fieldType
:
"ftDateTime"
}
]
}
},
methods
:
{
setEnable
(
id
)
{
this
.
$confirm
(
'是否启用/停用该属性, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
let
params
=
{
id
:
id
}
qt
(
params
).
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
$success
(
'操作成功'
)
this
.
app
.
$refs
[
'TablePager'
].
reLoad
()
}
else
{
this
.
$error
(
res
.
message
||
'操作失败'
)
}
})
})
},
tybz
(
a
)
{
let
nTy
=
false
nTy
=
(
a
.
row
.
show
==
'Y'
?
true
:
false
)
return
nTy
},
selectedTree
(
e
)
{
this
.
queryParams
.
pid
=
e
.
id
||
'root'
this
.
$refs
[
'TablePager'
].
pageQuery
()
},
// /* 基础查询*/
query
:
doQuery
,
/* 基础增*/
apiAdd
:
doAdd
,
/* 基础更新*/
apiUpdate
:
doUpdate
,
/* 删除操作*/
apiDelete
:
doDelete
,
/* 初始化赋值操作*/
init
()
{
}
},
components
:
{
Edit
,
}
}
</
script
>
<
style
scoped
>
</
style
>
src/views/baseData/material/classification/edit.vue
0 → 100644
View file @
51acd15e
<
template
>
<RelDialog
:type=
'type'
:editApp=
'editApp'
:app=
'app'
:buttonApp=
'buttonApp'
>
<!-- 填写表单内容,slot=form必写-->
<el-form
slot=
"form"
ref=
"form"
:model=
"form"
label-width=
"100px"
:rules=
"rules"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
v-rule=
"
{
required:true,
rules:rules,
}" label="上级分类" ref="pid" prop="pid">
<RelSelect
:readonly=
"readonly"
filterable
style=
"width: 100%;"
src=
'/jcsj/wlfl/init/sjfl'
:match=
"
{value:'id',label:'name'}" v-model='form.pid' >
</RelSelect>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-rule=
"
{
required:true,
rules:rules,
}" label="分类编码" ref="code" prop="code">
<el-input
:readonly=
"readonly"
v-model=
"form.code"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-rule=
"
{
required:true,
rules:rules,
}" label="分类名称" ref="name" prop="name">
<el-input
:readonly=
"readonly"
v-model=
"form.name"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"增值税率(%)"
ref=
"zzsl"
prop=
"zzsl"
>
<el-input
:readonly=
"readonly"
v-model=
"form.zzsl"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-rule=
"
{
required:true,
rules:rules,
}" label="流水号长度" ref="snlen" prop="snlen">
<el-input
:readonly=
"readonly"
v-model=
"form.snlen"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"备注"
ref=
"bz"
prop=
"bz"
>
<el-input
:readonly=
"readonly"
v-model=
"form.bz"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</RelDialog>
</
template
>
<
script
>
import
{
editMixin
}
from
'common'
export
default
{
mixins
:
[
editMixin
],
/* 存放index页面传递的额外参数*/
mounted
()
{
},
/* 组件名称*/
/* 传递props模式一样必填,用于index,button,REdialog之间的组件通信*/
data
()
{
return
{
/* 当前表单初始值,默认由RelDialog查询indexQuery赋值,copy时不赋值id,初始化时所有query的值都会赋值给form*/
form
:
{
pid
:
''
,
code
:
''
,
name
:
''
,
zzsl
:
''
,
snlen
:
''
,
bz
:
''
}
}
},
methods
:
{
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/baseData/material/classification/index.vue
0 → 100644
View file @
51acd15e
<
template
>
<div
style=
"display: flex;"
>
<div
class=
"min_full"
style=
"width: 200px;border-right: 0px;"
>
<TreeBase
:dgtype=
'5'
:app=
'app'
@
selected=
'selectedTree'
></TreeBase>
</div>
<div
class=
"min_full"
style=
"width: calc(100% - 200px)"
>
<!-- 查询条件-->
<div
class=
"search"
v-condition
>
<SearchButton
:app=
'app'
></SearchButton>
<el-row
:gutter=
"20"
class=
"search-row-1"
>
<el-col
:span=
"6"
class=
"search-col"
>
<div
class=
"search-item"
>
<span
class=
"search-span"
>
物料分类:
</span>
<el-input
v-model=
"queryParams.search"
></el-input>
</div>
</el-col>
</el-row>
</div>
<!-- 按钮操作-->
<el-row
class=
"tool-bar"
>
<ToolButton
:app=
'app'
></ToolButton>
<ViewButton
ref=
"view"
:app=
'app'
></ViewButton>
<AddButton
ref=
"add"
:app=
'app'
></AddButton>
<CopyButton
ref=
"copy"
:app=
'app'
></CopyButton>
<EditButton
ref=
"edit"
:app=
'app'
></EditButton>
<!-- 额外按钮-->
<!-- 表头设置 -->
<!-- 权限-->
</el-row>
<!-- 表格-->
<div
class=
"tablePagers"
>
<TablePager
@
getData=
'getData'
:ref=
"'TablePager'"
:app=
'app'
:query=
'query'
@
selectItem=
'selectItem'
@
getRow=
'getRow'
>
</TablePager>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
doQuery
,
doAdd
,
doUpdate
,
doDelete
}
from
'@/api/baseData/material/classification.js'
;
/* edit页面*/
import
Edit
from
'./edit'
import
{
tableMixin
}
from
'common'
export
default
{
mixins
:
[
tableMixin
],
name
:
'materialClassification'
,
/* 初始额外赋值*/
async
mounted
()
{
this
.
$refs
[
'TablePager'
].
pageQuery
()
},
data
()
{
return
{
/* 树的标题 */
treeTitle
:
'物料分类'
,
treeDefaultProps
:
{
/* 构建递归的children */
children
:
'children'
,
/* 展示的参数 */
label
:
'name'
,
/* 父id */
fatherId
:
'pid'
,
/* 子id */
sonId
:
'id'
,
/* 无父节点构建root 的属性 type=5生效 */
rootName
:
"全部"
,
rootId
:
'root'
},
treeQueryParams
:
{
},
/*需要的额外参数 */
showDialog
:
false
,
DialogName
:
''
,
type
:
''
,
DialogTitle
:
''
,
/* 基础url*/
baseUrl
:
'jcsj/wlfl'
,
/* 查询参数*/
queryParams
:
{
search
:
''
},
/* 表格标题对应参数*/
tableTitle
:
[
{
title
:
"分类编码"
,
field
:
"code"
,
fieldType
:
"upper"
,
width
:
140
},
{
title
:
"分类名称"
,
field
:
"name"
,
width
:
160
},
{
title
:
"增值税率(%)"
,
field
:
"zzsl"
,
fieldType
:
"zzsl"
,
width
:
100
},
{
title
:
"流水号长度"
,
field
:
"snlen"
,
fieldType
:
"int"
,
width
:
100
},
{
title
:
"备注"
,
field
:
"bz"
,
width
:
240
},
{
title
:
"维护人"
,
field
:
"whr"
,
fieldType
:
"whr"
},
{
title
:
"维护时间"
,
field
:
"whsj"
,
fieldType
:
"ftDateTime"
}
]
}
},
methods
:
{
selectedTree
(
e
)
{
this
.
queryParams
.
pid
=
e
.
id
||
'root'
this
.
$refs
[
'TablePager'
].
pageQuery
()
},
// /* 基础查询*/
query
:
doQuery
,
/* 基础增*/
apiAdd
:
doAdd
,
/* 基础更新*/
apiUpdate
:
doUpdate
,
/* 删除操作*/
apiDelete
:
doDelete
,
apiTreeQuery
:
doQuery
,
/* 初始化赋值操作*/
init
()
{
}
},
components
:
{
Edit
,
}
}
</
script
>
<
style
scoped
>
</
style
>
src/views/baseData/material/index.vue
0 → 100644
View file @
51acd15e
<
template
>
<section
class=
"app-main"
>
<transition
name=
"fade-transform"
mode=
"out-in"
>
<router-view
/>
</transition>
</section>
</
template
>
<
script
>
export
default
{
name
:
'dictionary'
,
computed
:
{
cachedViews
()
{
return
this
.
$store
.
state
.
tagsView
.
cachedViews
},
key
()
{
return
this
.
$route
.
path
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.app-main
{
/* 50= navbar 50 */
min-height
:
calc
(
100vh
-
50px
);
width
:
100%
;
position
:
relative
;
overflow
:
hidden
;
}
.fixed-header
+
.app-main
{
padding-top
:
50px
;
}
.hasTagsView
{
.app-main
{
/* 84 = navbar + tags-view = 50 + 34 */
min-height
:
calc
(
100vh
-
84px
);
}
.fixed-header
+
.app-main
{
padding-top
:
84px
;
}
}
</
style
>
<
style
lang=
"scss"
>
// fix css style bug in open el-dialog
.el-popup-parent--hidden
{
.fixed-header
{
padding-right
:
17px
;
}
}
</
style
>
src/views/baseData/material/info/edit.vue
0 → 100644
View file @
51acd15e
<
template
>
<RelDialog
:type=
'type'
:editApp=
'editApp'
:app=
'app'
:buttonApp=
'buttonApp'
>
<!-- 填写表单内容,slot=form必写-->
<el-form
slot=
"form"
ref=
"form"
:model=
"form"
label-width=
"100px"
:rules=
"rules"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
v-rule=
"
{
required:true,
rules:rules,
}" label="上级分类" ref="pid" prop="pid">
<RelSelect
:readonly=
"readonly"
filterable
style=
"width: 100%;"
src=
'/jcsj/wlfl/init/sjfl'
:match=
"
{value:'id',label:'name'}" v-model='form.pid' >
</RelSelect>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-rule=
"
{
required:true,
rules:rules,
}" label="分类编码" ref="code" prop="code">
<el-input
:readonly=
"readonly"
v-model=
"form.code"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-rule=
"
{
required:true,
rules:rules,
}" label="分类名称" ref="name" prop="name">
<el-input
:readonly=
"readonly"
v-model=
"form.name"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"增值税率(%)"
ref=
"zzsl"
prop=
"zzsl"
>
<el-input
:readonly=
"readonly"
v-model=
"form.zzsl"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
v-rule=
"
{
required:true,
rules:rules,
}" label="流水号长度" ref="snlen" prop="snlen">
<el-input
:readonly=
"readonly"
v-model=
"form.snlen"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"备注"
ref=
"bz"
prop=
"bz"
>
<el-input
:readonly=
"readonly"
v-model=
"form.bz"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</RelDialog>
</
template
>
<
script
>
import
{
editMixin
}
from
'common'
export
default
{
mixins
:
[
editMixin
],
/* 存放index页面传递的额外参数*/
mounted
()
{
},
/* 组件名称*/
/* 传递props模式一样必填,用于index,button,REdialog之间的组件通信*/
data
()
{
return
{
/* 当前表单初始值,默认由RelDialog查询indexQuery赋值,copy时不赋值id,初始化时所有query的值都会赋值给form*/
form
:
{
pid
:
''
,
code
:
''
,
name
:
''
,
zzsl
:
''
,
snlen
:
''
,
bz
:
''
}
}
},
methods
:
{
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/baseData/material/info/index.vue
0 → 100644
View file @
51acd15e
<
template
>
<div
style=
"display: flex;"
>
<div
class=
"min_full"
style=
"width: 200px;border-right: 0px;"
>
<TreeBase
:dgtype=
'5'
:app=
'app'
@
selected=
'selectedTree'
></TreeBase>
</div>
<div
class=
"min_full"
style=
"width: calc(100% - 200px)"
>
<!-- 查询条件-->
<div
class=
"search"
v-condition
>
<SearchButton
:app=
'app'
></SearchButton>
<el-row
:gutter=
"20"
class=
"search-row-1"
>
<el-col
:span=
"6"
class=
"search-col"
>
<div
class=
"search-item"
>
<span
class=
"search-span"
>
物料分类:
</span>
<el-input
v-model=
"queryParams.search"
></el-input>
</div>
</el-col>
</el-row>
</div>
<!-- 按钮操作-->
<el-row
class=
"tool-bar"
>
<ToolButton
:app=
'app'
></ToolButton>
<ViewButton
ref=
"view"
:app=
'app'
></ViewButton>
<AddButton
ref=
"add"
:app=
'app'
></AddButton>
<CopyButton
ref=
"copy"
:app=
'app'
></CopyButton>
<EditButton
ref=
"edit"
:app=
'app'
></EditButton>
<AttachFileButton
:app=
'app'
></AttachFileButton>
<ExportTempButton
:url=
"'jcsj/wlxx/excel/export'"
:exportName=
"'物料信息导入模板.xlsx'"
></ExportTempButton>
<ImportTempButton
@
success=
"()=>
{
$refs['TablePager'].pageQuery()
}" :url="'jcsj/wlxx/import'">
</ImportTempButton>
<!-- 额外按钮-->
<!-- 表头设置 -->
<!-- 权限-->
</el-row>
<!-- 表格-->
<div
class=
"tablePagers"
>
<TablePager
@
getData=
'getData'
:ref=
"'TablePager'"
:app=
'app'
:query=
'query'
@
selectItem=
'selectItem'
@
getRow=
'getRow'
>
<template
slot=
"tabCustom"
>
<el-table-column
label=
"启用/停用"
width=
"90"
header-align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<el-switch
@
click
.
native=
"setEnable(scope.row.id)"
:value=
'tybz(scope)'
style=
"width: 80px;justify-content: center;"
active-color=
"#13ce66"
inactive-color=
"#eee"
>
</el-switch>
</
template
>
</el-table-column>
</template>
</TablePager>
</div>
</div>
</div>
</template>
<
script
>
import
{
doQuery
,
doAdd
,
doUpdate
,
doDelete
,
apiTreeQuery
,
qt
}
from
'@/api/baseData/material/info.js'
;
/* edit页面*/
import
Edit
from
'./edit'
import
{
tableMixin
}
from
'common'
export
default
{
mixins
:
[
tableMixin
],
name
:
'materialInfo'
,
/* 初始额外赋值*/
async
mounted
()
{
this
.
$refs
[
'TablePager'
].
pageQuery
()
},
data
()
{
return
{
/* 树的标题 */
treeTitle
:
'物料分类'
,
treeDefaultProps
:
{
/* 构建递归的children */
children
:
'children'
,
/* 展示的参数 */
label
:
'name'
,
/* 父id */
fatherId
:
'pid'
,
/* 子id */
sonId
:
'id'
,
/* 无父节点构建root 的属性 type=5生效 */
rootName
:
"全部"
,
rootId
:
'root'
},
treeQueryParams
:
{
},
/*需要的额外参数 */
showDialog
:
false
,
DialogName
:
''
,
type
:
''
,
DialogTitle
:
''
,
/* 基础url*/
baseUrl
:
'jcsj/wlxx'
,
/* 查询参数*/
queryParams
:
{
search
:
''
},
/* 表格标题对应参数*/
tableTitle
:
[
{
title
:
"物料编码"
,
field
:
"code"
,
width
:
120
},
{
title
:
"物料名称"
,
field
:
"name"
,
width
:
160
},
{
title
:
"规格"
,
field
:
"gg"
,
width
:
120
},
{
title
:
"计量单位"
,
field
:
"jldwname"
,
width
:
80
},
{
title
:
"辅计量单位"
,
field
:
"fjldwname"
,
width
:
80
,
align
:
"center"
},
// {title:"采购计量单位",field:"cgjldwname",width:80,align:"center"},
{
title
:
"增值税率(%)"
,
field
:
"zzsl"
,
fieldType
:
"zzsl"
,
width
:
100
},
{
title
:
"批号管理"
,
field
:
"phgl"
,
width
:
80
,
formatter
(
a
,
b
,
v
){
let
map
=
{
Y
:
'停用'
,
N
:
'正常'
}
return
map
[
v
]
}},
{
title
:
"单件管理"
,
field
:
"djgl"
,
width
:
80
,
formatter
(
a
,
b
,
v
){
let
map
=
{
Y
:
'停用'
,
N
:
'正常'
}
return
map
[
v
]
}},
{
title
:
"产品条码规则"
,
field
:
"coderulename"
,
width
:
160
},
{
title
:
"缺省仓库"
,
field
:
"ckname"
,
width
:
120
},
{
title
:
"计划部门"
,
field
:
"jhbmmc"
,
width
:
120
},
{
title
:
"产品结构号"
,
field
:
"bomcode"
,
width
:
120
},
{
title
:
"工艺路线号"
,
field
:
"gylxcode"
,
width
:
120
},
{
title
:
"状态"
,
field
:
"tybz"
,
width
:
80
,
formatter
(
a
,
b
,
v
){
let
map
=
{
Y
:
'停用'
,
N
:
'正常'
}
return
map
[
v
]
}},
{
title
:
"停用日期"
,
field
:
"tyrq"
,
fieldType
:
'ftDate'
},
{
title
:
"备注"
,
field
:
"bz"
,
width
:
200
},
{
title
:
"维护人"
,
field
:
"whr"
},
{
title
:
"维护时间"
,
field
:
"whsj"
,
fieldType
:
'ftDateTime'
}
]
}
},
methods
:
{
setEnable
(
id
)
{
this
.
$confirm
(
'是否启用/停用, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
let
params
=
{
id
:
id
}
qt
(
params
).
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
$success
(
'操作成功'
)
this
.
app
.
$refs
[
'TablePager'
].
reLoad
()
}
else
{
this
.
$error
(
res
.
message
||
'操作失败'
)
}
})
})
},
tybz
(
a
)
{
let
nTy
=
false
nTy
=
(
a
.
row
.
tybz
==
'N'
?
true
:
false
)
return
nTy
},
selectedTree
(
e
)
{
this
.
queryParams
.
pid
=
e
.
id
||
'root'
this
.
$refs
[
'TablePager'
].
pageQuery
()
},
// /* 基础查询*/
query
:
doQuery
,
/* 基础增*/
apiAdd
:
doAdd
,
/* 基础更新*/
apiUpdate
:
doUpdate
,
/* 删除操作*/
apiDelete
:
doDelete
,
apiTreeQuery
:
apiTreeQuery
,
/* 初始化赋值操作*/
init
()
{
}
},
components
:
{
Edit
,
}
}
</
script
>
<
style
scoped
>
</
style
>
src/views/baseData/store/index.vue
View file @
51acd15e
<
template
>
<section
class=
"app-main"
>
<transition
name=
"fade-transform"
mode=
"out-in"
>
<!--
<keep-alive
:include=
"cachedViews"
>
<router-view
:key=
"key"
/>
</keep-alive>
-->
<router-view
:key=
"key"
/>
<router-view
/>
</transition>
</section>
</
template
>
...
...
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