Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-app-operator-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
lanbaoming
jiedao-app-operator-master
Commits
9e69707b
Commit
9e69707b
authored
May 23, 2022
by
wanglianghe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
产品类型统计产品数量,产品列表
parent
48d2dcdc
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
434 additions
and
2 deletions
+434
-2
product.js
src/api/ecw/product.js
+54
-0
productAttr.js
src/api/ecw/productAttr.js
+9
-0
productType.js
src/api/ecw/productType.js
+9
-0
constants.js
src/utils/constants.js
+5
-0
dict.js
src/utils/dict.js
+1
-0
index.vue
src/views/ecw/product/index.vue
+350
-0
index.vue
src/views/ecw/productAttr/index.vue
+1
-1
index.vue
src/views/ecw/productType/index.vue
+5
-0
index.vue
src/views/ecw/warehouse/index.vue
+0
-1
No files found.
src/api/ecw/product.js
0 → 100644
View file @
9e69707b
import
request
from
'
@/utils/request
'
// 创建产品
export
function
createProduct
(
data
)
{
return
request
({
url
:
'
/ecw/product/create
'
,
method
:
'
post
'
,
data
:
data
})
}
// 更新产品
export
function
updateProduct
(
data
)
{
return
request
({
url
:
'
/ecw/product/update
'
,
method
:
'
put
'
,
data
:
data
})
}
// 删除产品
export
function
deleteProduct
(
id
)
{
return
request
({
url
:
'
/ecw/product/delete?id=
'
+
id
,
method
:
'
delete
'
})
}
// 获得产品
export
function
getProduct
(
id
)
{
return
request
({
url
:
'
/ecw/product/get?id=
'
+
id
,
method
:
'
get
'
})
}
// 获得产品分页
export
function
getProductPage
(
query
)
{
return
request
({
url
:
'
/ecw/product/page
'
,
method
:
'
get
'
,
params
:
query
})
}
// 导出产品 Excel
export
function
exportProductExcel
(
query
)
{
return
request
({
url
:
'
/ecw/product/export-excel
'
,
method
:
'
get
'
,
params
:
query
,
responseType
:
'
blob
'
})
}
src/api/ecw/productAttr.js
View file @
9e69707b
...
...
@@ -34,6 +34,15 @@ export function getProductAttr(id) {
})
}
// 获得所有产品属性
export
function
getProductAttrList
(
query
)
{
return
request
({
url
:
'
/ecw/product-attr/list
'
,
method
:
'
get
'
,
params
:
query
})
}
// 获得产品属性分页
export
function
getProductAttrPage
(
query
)
{
return
request
({
...
...
src/api/ecw/productType.js
View file @
9e69707b
...
...
@@ -34,6 +34,15 @@ export function getProductType(id) {
})
}
// 获得产品类型
export
function
getProductTypeList
(
query
)
{
return
request
({
url
:
'
/ecw/product-type/list
'
,
method
:
'
get
'
,
params
:
query
})
}
// 获得产品类型分页
export
function
getProductTypePage
(
query
)
{
return
request
({
...
...
src/utils/constants.js
View file @
9e69707b
...
...
@@ -12,6 +12,11 @@ export const CommonStatusEnum = {
DISABLE
:
1
// 禁用
}
export
const
AuditStatusEnum
=
{
PASS
:
0
,
NOT_PASS
:
1
}
/**
* 菜单的类型枚举
*/
...
...
src/utils/dict.js
View file @
9e69707b
...
...
@@ -8,6 +8,7 @@ import store from '@/store'
export
const
DICT_TYPE
=
{
USER_TYPE
:
'
user_type
'
,
COMMON_STATUS
:
'
common_status
'
,
AUDIT_STATUS
:
'
audit_status
'
,
// ========== SYSTEM 模块 ==========
SYSTEM_USER_SEX
:
'
system_user_sex
'
,
...
...
src/views/ecw/product/index.vue
0 → 100644
View file @
9e69707b
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"产品类型"
prop=
"typeId"
>
<el-select
v-model=
"queryParams.typeId"
placeholder=
"选择产品类型"
clearable
>
<el-option
v-for=
"type in typeList"
:key=
"type.id"
:label=
"type.titleZh"
:value=
"type.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"产品属性"
prop=
"attrId"
>
<el-select
v-model=
"queryParams.attrId"
placeholder=
"选择产品属性"
clearable
>
<el-option
v-for=
"attr in attrList"
:key=
"attr.id"
:label=
"attr.attrName"
:value=
"attr.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"产品名称"
prop=
"titleZh"
>
<el-input
v-model=
"queryParams.titleZh"
placeholder=
"请输入产品名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"审核状态"
prop=
"auditStatus"
>
<el-select
v-model=
"queryParams.auditStatus"
placeholder=
"选择审核状态"
clearable
>
<el-option
v-for=
"auditStatusItem in auditStatusDictDatas"
:key=
"auditStatusItem.id"
:label=
"auditStatusItem.label"
:value=
"auditStatusItem.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"上架状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"选择上架状态"
clearable
>
<el-option
v-for=
"statusItem in statusDictDatas"
:key=
"statusItem.id"
:label=
"statusItem.value == CommonStatusEnum.ENABLE ? '已上架' : '已下架'"
:value=
"statusItem.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:product:create']"
>
新增
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"产品编号"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"产品类型"
align=
"center"
prop=
"typeId"
>
<template
slot-scope=
"scope"
>
<span>
{{
getTypeName
(
scope
.
row
.
typeId
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"中文标题"
align=
"center"
prop=
"titleZh"
/>
<el-table-column
label=
"英文标题"
align=
"center"
prop=
"titleEn"
/>
<el-table-column
label=
"产品属性"
align=
"center"
prop=
"attrId"
>
<
template
slot-scope=
"scope"
>
<span>
{{
getAttrName
(
scope
.
row
.
attrId
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"auditStatus"
align=
"center"
label=
"是否审核"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<el-select
v-model=
"scope.row.auditStatus"
@
change=
"handleStatusChange(scope.row, 'auditStatus')"
>
<el-option
v-for=
"auditStatusItem in auditStatusDictDatas"
:key=
"auditStatusItem.id"
:label=
"auditStatusItem.label"
:value=
"parseInt(auditStatusItem.value)"
/>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"status"
align=
"center"
label=
"状态"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<el-select
v-model=
"scope.row.status"
@
change=
"handleStatusChange(scope.row, 'status')"
>
<el-option
v-for=
"statusItem in statusDictDatas"
:key=
"statusItem.id"
:label=
"statusItem.value == CommonStatusEnum.ENABLE + '' ? '已上架' : '已下架'"
:value=
"parseInt(statusItem.value)"
/>
</el-select>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:product:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:product:delete']"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"产品类型"
prop=
"typeId"
>
<el-select
v-model=
"form.typeId"
placeholder=
"选择产品类型"
clearable
>
<el-option
v-for=
"type in typeList"
:key=
"type.id"
:label=
"type.titleZh"
:value=
"type.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"中文标题"
prop=
"titleZh"
>
<el-input
v-model=
"form.titleZh"
placeholder=
"请输入中文标题"
/>
</el-form-item>
<el-form-item
label=
"英文标题"
prop=
"titleEn"
>
<el-input
v-model=
"form.titleEn"
placeholder=
"请输入英文标题"
/>
</el-form-item>
<el-form-item
label=
"产品属性"
prop=
"attrId"
>
<el-select
v-model=
"form.attrId"
placeholder=
"选择产品属性"
clearable
>
<el-option
v-for=
"attr in attrList"
:key=
"attr.id"
:label=
"attr.attrName"
:value=
"attr.id"
/>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
createProduct
,
updateProduct
,
deleteProduct
,
getProduct
,
getProductPage
,
exportProductExcel
}
from
"
@/api/ecw/product
"
;
import
{
getProductAttrList
}
from
"
@/api/ecw/productAttr
"
;
import
{
getProductTypeList
}
from
"
@/api/ecw/productType
"
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
{
CommonStatusEnum
,
AuditStatusEnum
}
from
'
@/utils/constants
'
export
default
{
name
:
"
Product
"
,
components
:
{
},
data
()
{
return
{
attrList
:[],
typeList
:[],
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 产品列表
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
typeId
:
null
,
attrId
:
null
,
titleZh
:
null
,
titleEn
:
null
,
auditStatus
:
null
,
status
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
typeId
:
[{
required
:
true
,
message
:
"
产品类型不能为空
"
,
trigger
:
"
change
"
}],
attrId
:
[{
required
:
true
,
message
:
"
产品属性不能为空
"
,
trigger
:
"
change
"
}],
titleZh
:
[{
required
:
true
,
message
:
"
中文标题不能为空
"
,
trigger
:
"
blur
"
}],
titleEn
:
[{
required
:
true
,
message
:
"
英文标题不能为空
"
,
trigger
:
"
blur
"
}],
},
CommonStatusEnum
:
CommonStatusEnum
,
AuditStatusEnum
:
AuditStatusEnum
,
statusDictDatas
:
getDictDatas
(
DICT_TYPE
.
COMMON_STATUS
),
auditStatusDictDatas
:
getDictDatas
(
DICT_TYPE
.
AUDIT_STATUS
)
};
},
computed
:
{
getTypeName
()
{
return
typeId
=>
{
for
(
let
index
in
this
.
typeList
)
{
let
typeItem
=
this
.
typeList
[
index
];
if
(
typeItem
.
id
==
typeId
)
{
return
typeItem
.
titleZh
;
}
}
}
},
getAttrName
()
{
return
attrId
=>
{
for
(
let
index
in
this
.
attrList
)
{
let
attrItem
=
this
.
attrList
[
index
];
if
(
attrItem
.
id
==
attrId
)
{
return
attrItem
.
attrName
;
}
}
}
},
},
created
()
{
this
.
getAttrList
();
this
.
getTypeList
();
this
.
getList
();
},
methods
:
{
/** 获取产品属性列表 */
getAttrList
()
{
getProductAttrList
().
then
(
response
=>
{
this
.
attrList
=
response
.
data
;
})
},
/** 获取产品类型列表 */
getTypeList
()
{
getProductTypeList
().
then
(
response
=>
{
this
.
typeList
=
response
.
data
;
})
},
handleStatusChange
(
row
,
statusType
)
{
updateProduct
(
row
).
then
(()
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
}).
catch
(
function
()
{
if
(
statusType
==
'
status
'
)
{
row
.
status
=
row
.
status
===
CommonStatusEnum
.
ENABLE
?
CommonStatusEnum
.
DISABLE
:
CommonStatusEnum
.
ENABLE
;
}
else
{
row
.
auditStatus
=
row
.
auditStatus
===
AuditStatusEnum
.
PASS
?
AuditStatusEnum
.
NOT_PASS
:
AuditStatusEnum
.
PASS
;
}
});
},
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
getProductPage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
/** 表单重置 */
reset
()
{
this
.
form
=
{
id
:
undefined
,
typeId
:
undefined
,
attrId
:
undefined
,
titleZh
:
undefined
,
titleEn
:
undefined
,
auditStatus
:
undefined
,
status
:
undefined
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加产品
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getProduct
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改产品
"
;
});
},
/** 提交按钮 */
submitForm
()
{
console
.
log
(
this
.
form
);
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateProduct
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
return
;
}
// 添加的提交
createProduct
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除产品编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteProduct
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有产品数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportProductExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
}
}
};
</
script
>
src/views/ecw/productAttr/index.vue
View file @
9e69707b
...
...
@@ -85,7 +85,7 @@ import { getDictDatas, DICT_TYPE } from '@/utils/dict'
export
default
{
name
:
"
ProductAttr
"
,
components
:
{
Editor
,
},
data
()
{
return
{
...
...
src/views/ecw/productType/index.vue
View file @
9e69707b
...
...
@@ -28,6 +28,11 @@
<el-table-column
label=
"排序"
align=
"center"
prop=
"sort"
/>
<el-table-column
label=
"中文标题"
align=
"center"
prop=
"titleZh"
/>
<el-table-column
label=
"英文标题"
align=
"center"
prop=
"titleEn"
/>
<el-table-column
label=
"产品统计"
align=
"center"
prop=
"productNum"
width=
"100"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
productNum
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"发布时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
...
...
src/views/ecw/warehouse/index.vue
View file @
9e69707b
...
...
@@ -362,7 +362,6 @@ export default {
}
}
}
},
},
...
...
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