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
4cebc320
Commit
4cebc320
authored
Jun 27, 2022
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://gitlab.jdshangmen.com/jiedao-app/jiedao-app-operator
into dev
parents
d7d431cc
5532557c
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
840 additions
and
285 deletions
+840
-285
customer.js
src/api/ecw/customer.js
+5
-6
product.js
src/api/ecw/product.js
+9
-0
internalMessage.js
src/api/system/internalMessage.js
+63
-0
index.vue
src/components/FileUpload/index.vue
+3
-2
Navbar.vue
src/layout/components/Navbar.vue
+13
-3
dict.js
src/utils/dict.js
+3
-1
ruoyi.js
src/utils/ruoyi.js
+6
-1
index.vue
src/views/ecw/bankAccount/index.vue
+19
-19
index.vue
src/views/ecw/oceanCustomer/index.vue
+56
-241
edit.vue
src/views/ecw/productAttr/edit.vue
+146
-0
index.vue
src/views/ecw/productBrank/Empower/index.vue
+87
-12
data.vue
src/views/system/dict/data.vue
+1
-0
index.vue
src/views/system/internalMessage/index.vue
+267
-0
index.vue
src/views/system/myInternalMessage/index.vue
+162
-0
No files found.
src/api/ecw/customer.js
View file @
4cebc320
...
...
@@ -98,7 +98,7 @@ export function getWaitForDistributionList(query) {
})
}
//
确认
//
移交
export
function
handOverCustomer
(
data
)
{
return
request
({
url
:
'
/ecw/customer/handOver
'
,
...
...
@@ -116,11 +116,10 @@ export function getPublicList(query) {
})
}
//
公海池客户
export
function
getMineList
(
query
)
{
//
捞取
export
function
setFishing
(
query
)
{
return
request
({
url
:
'
/ecw/customer/get-mine
'
,
method
:
'
get
'
,
params
:
query
url
:
''
,
})
}
src/api/ecw/product.js
View file @
4cebc320
...
...
@@ -60,3 +60,12 @@ export function exportProductExcel(query) {
responseType
:
'
blob
'
})
}
// 批量更新产品
export
function
batchUpdateProduct
(
data
)
{
return
request
({
url
:
'
/ecw/product/batchUpdate
'
,
method
:
'
put
'
,
data
:
data
})
}
src/api/system/internalMessage.js
0 → 100644
View file @
4cebc320
import
request
from
'
@/utils/request
'
// 创建站内信
export
function
createInternalMessage
(
data
)
{
return
request
({
url
:
'
/ecw/internal-message/create
'
,
method
:
'
post
'
,
data
:
data
})
}
// 更新站内信
export
function
updateInternalMessage
(
data
)
{
return
request
({
url
:
'
/ecw/internal-message/update
'
,
method
:
'
put
'
,
data
:
data
})
}
// 删除站内信
export
function
deleteInternalMessage
(
id
)
{
return
request
({
url
:
'
/ecw/internal-message/delete?id=
'
+
id
,
method
:
'
delete
'
})
}
// 获得站内信
export
function
getInternalMessage
(
id
)
{
return
request
({
url
:
'
/ecw/internal-message/get?id=
'
+
id
,
method
:
'
get
'
})
}
// 获得站内信分页
export
function
getInternalMessagePage
(
query
)
{
return
request
({
url
:
'
/ecw/internal-message/page
'
,
method
:
'
get
'
,
params
:
query
})
}
// 导出站内信 Excel
export
function
exportInternalMessageExcel
(
query
)
{
return
request
({
url
:
'
/ecw/internal-message/export-excel
'
,
method
:
'
get
'
,
params
:
query
,
responseType
:
'
blob
'
})
}
// 获得我的站内信
export
function
getMyInternalMessagePage
(
query
)
{
return
request
({
url
:
'
/ecw/internal-message/getMyInternalMessagePage
'
,
method
:
'
get
'
,
params
:
query
})
}
src/components/FileUpload/index.vue
View file @
4cebc320
...
...
@@ -73,7 +73,7 @@ export default {
number
:
0
,
uploadList
:
[],
baseUrl
:
process
.
env
.
VUE_APP_BASE_API
,
uploadFileUrl
:
process
.
env
.
VUE_APP_BASE_API
+
"
/
common/upload
"
,
// 上传的图片
服务器地址
uploadFileUrl
:
process
.
env
.
VUE_APP_BASE_API
+
"
/
app-api/file/upload
"
,
// 上传的文件
服务器地址
headers
:
{
Authorization
:
"
Bearer
"
+
getToken
(),
},
...
...
@@ -152,7 +152,8 @@ export default {
},
// 上传成功回调
handleUploadSuccess
(
res
)
{
this
.
uploadList
.
push
({
name
:
res
.
fileName
,
url
:
res
.
fileName
});
// todo 接口返回值没有文件名
this
.
uploadList
.
push
({
name
:
res
.
data
,
url
:
res
.
data
});
if
(
this
.
uploadList
.
length
===
this
.
number
)
{
this
.
fileList
=
this
.
fileList
.
concat
(
this
.
uploadList
);
this
.
uploadList
=
[];
...
...
src/layout/components/Navbar.vue
View file @
4cebc320
...
...
@@ -7,11 +7,16 @@
<div
class=
"right-menu"
>
<template
v-if=
"device!=='mobile'"
>
<el-badge
:value=
"notReadTotal"
class=
"right-menu-item"
>
<el-button
size=
"small"
@
click=
"notRead"
>
未读消息
</el-button>
</el-badge>
<search
id=
"header-search"
class=
"right-menu-item"
/>
<!--
<el-tooltip
content=
"源码地址"
effect=
"dark"
placement=
"bottom"
>
-->
<!--
<ruo-yi-git
id=
"ruoyi-git"
class=
"right-menu-item hover-effect"
/>
-->
<!--
</el-tooltip>
-->
<!--
<el-tooltip
content=
"文档地址"
effect=
"dark"
placement=
"bottom"
>
-->
<!--
<ruo-yi-doc
id=
"ruoyi-doc"
class=
"right-menu-item hover-effect"
/>
-->
...
...
@@ -69,6 +74,7 @@ export default {
locale
:
getLocale
(),
// 枚举
langDatas
:
LangEnum
.
LANG
,
notReadTotal
:
0
,
//要去取VUEX里面的未读数据总数,我不会,登录之后要调得到当前人未读记录总数接口放到VUEX中
}
},
components
:
{
...
...
@@ -118,6 +124,9 @@ export default {
location
.
href
=
'
/
'
;
})
}).
catch
(()
=>
{});
},
notRead
(){
this
.
$router
.
push
({
path
:
'
/system/internalMessage/my-internal-message
'
,
query
:{
'
status
'
:
0
}});
}
}
}
...
...
@@ -131,6 +140,7 @@ export default {
background
:
#fff
;
box-shadow
:
0
1px
4px
rgba
(
0
,
21
,
41
,.
08
);
.hamburger-container
{
line-height
:
46px
;
height
:
100%
;
...
...
src/utils/dict.js
View file @
4cebc320
...
...
@@ -26,6 +26,8 @@ export const DICT_TYPE = {
SYSTEM_SMS_RECEIVE_STATUS
:
'
system_sms_receive_status
'
,
SYSTEM_MAIL_SEND_STATUS
:
'
mail_send_status
'
,
SYSTEM_ERROR_CODE_TYPE
:
'
system_error_code_type
'
,
INTERNAL_MESSAGE_TYPE
:
'
internal_message_type
'
,
INTERNAL_MESSAGE_READ_STATUS
:
'
internal_message_read_status
'
,
// ========== INFRA 模块 ==========
INFRA_BOOLEAN_STRING
:
'
infra_boolean_string
'
,
...
...
@@ -59,7 +61,7 @@ export const DICT_TYPE = {
PAY_REFUND_ORDER_STATUS
:
'
pay_refund_order_status
'
,
// 退款订单状态
PAY_REFUND_ORDER_TYPE
:
'
pay_refund_order_type
'
,
// 退款订单类别
ECW_BANK_TYPE
:
'
bank_type
'
,
// 银行账号类型
ECW_DATA_SOURCE
:
'
data_source
'
,
// 数据来源
//
ECW_DATA_SOURCE: 'data_source', // 数据来源
ECW_REGION_TYPE
:
'
region_trade_type
'
,
// 区域类型
ECW_TRANSPORT_TYPE
:
'
transport_type
'
,
//货运方式
ECW_CHARGE_TYPE
:
'
warehouse_charge_type
'
,
//仓储收费方式
...
...
src/utils/ruoyi.js
View file @
4cebc320
...
...
@@ -5,7 +5,12 @@
const
baseURL
=
process
.
env
.
VUE_APP_BASE_API
// 日期格式化
/**
* 日期格式化
* @param time {String|Number|Date} 时间
* @param pattern {String} '{y}-{m}-{d} {h}:{i}:{s}'
* @returns {string|null}
*/
export
function
parseTime
(
time
,
pattern
)
{
if
(
arguments
.
length
===
0
||
!
time
)
{
return
null
...
...
src/views/ecw/bankAccount/index.vue
View file @
4cebc320
...
...
@@ -26,12 +26,12 @@
<el-option
v-for=
"dict in bankTypeDatas"
:key=
"parseInt(dict.value)"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"数据来源"
prop=
"source"
>
<!--
<el-input
v-model=
"queryParams.source"
placeholder=
"请输入数据来源字典(pc端,mobile端)"
clearable
@
keyup.enter.native=
"handleQuery"
/>
-->
<el-select
v-model=
"queryParams.source"
placeholder=
"请选择数据来源"
clearable
style=
"width: 240px"
>
<el-option
v-for=
"dict in sourceDatas"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/
>
</el-select
>
</el-form-item
>
<!--
<el-form-item
label=
"数据来源"
prop=
"source"
>
--
>
<!--
<!–
<el-input
v-model=
"queryParams.source"
placeholder=
"请输入数据来源字典(pc端,mobile端)"
clearable
@
keyup.enter.native=
"handleQuery"
/>
–>
-->
<!--
<el-select
v-model=
"queryParams.source"
placeholder=
"请选择数据来源"
clearable
style=
"width: 240px"
>
--
>
<!--
<el-option
v-for=
"dict in sourceDatas"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
--
>
<!--
</el-select>
--
>
<!--
</el-form-item>
--
>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"用户状态"
clearable
style=
"width: 240px"
>
<el-option
v-for=
"dict in statusDictDatas"
:key=
"parseInt(dict.value)"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
...
...
@@ -73,11 +73,11 @@
<dict-tag
:type=
"DICT_TYPE.ECW_BANK_TYPE"
:value=
"scope.row.baType"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"数据来源"
align=
"center"
prop=
"source"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_DATA_SOURCE"
:value=
"scope.row.source"
/
>
</
template
>
</el-table-column
>
<!-- <el-table-column label="数据来源" align="center" prop="source" >--
>
<!-- <template slot-scope="scope">--
>
<!-- <dict-tag :type="DICT_TYPE.ECW_DATA_SOURCE" :value="scope.row.source"/>--
>
<!-- </template>--
>
<!-- </el-table-column>--
>
<!-- <el-table-column label="状态" align="center" prop="status" />-->
<el-table-column
label=
"状态"
key=
"status"
align=
"center"
>
...
...
@@ -130,14 +130,14 @@
</el-select>
</el-form-item>
<el-form-item
label=
"数据字典"
prop=
"source"
>
<!-- <el-select v-model="form.baType" placeholder="请选择类型">
-->
<!-- <el-option label="请选择字典生成" value="" />
-->
<!-- </el-select>
-->
<el-select
v-model=
"form.source"
placeholder=
"请选择数据来源"
clearable
style=
"width: 240px"
>
<el-option
v-for=
"dict in sourceDatas"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/
>
</el-select
>
</el-form-item
>
<!-- <el-form-item label="数据字典" prop="source">--
>
<!-- <!– <el-select v-model="form.baType" placeholder="请选择类型">–>
-->
<!-- <!– <el-option label="请选择字典生成" value="" />–>
-->
<!-- <!– </el-select>–>
-->
<!-- <el-select v-model="form.source" placeholder="请选择数据来源" clearable style="width: 240px">--
>
<!-- <el-option v-for="dict in sourceDatas" :key="dict.value" :label="dict.label" :value="dict.value"/>--
>
<!-- </el-select>--
>
<!-- </el-form-item>--
>
<!-- <el-form-item label="状态" prop="status">-->
<!-- <el-radio-group v-model="form.status">-->
<!--<!– <el-radio label="1">请选择字典生成</el-radio>–>-->
...
...
src/views/ecw/oceanCustomer/index.vue
View file @
4cebc320
...
...
@@ -16,7 +16,10 @@
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"客户来源"
prop=
"source"
>
<el-form-item
label=
"联系方式"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
placeholder=
"请输入客户名称"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"客户类别"
prop=
"source"
>
<el-select
v-model=
"queryParams.source"
placeholder=
"请选择客户来源"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
...
...
@@ -28,19 +31,37 @@
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"客服来源"
prop=
"customerService"
>
<el-select
v-model=
"queryParams.customerService"
placeholder=
"请选择跟进客服"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"国家"
prop=
"customerService"
>
<el-select
v-model=
"queryParams.customerService"
placeholder=
"请选择跟进客服"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择客户状态"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"
部门
"
prop=
"department"
>
<el-form-item
label=
"
订单角色
"
prop=
"department"
>
<el-input
v-model=
"queryParams.department"
placeholder=
"请输入部门"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item
label=
"是否出货"
prop=
"department"
>
<el-input
v-model=
"queryParams.department"
placeholder=
"请输入部门"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"信用等级"
prop=
"department"
>
<el-input
v-model=
"queryParams.department"
placeholder=
"请输入部门"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</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>
...
...
@@ -69,240 +90,58 @@
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"
国家
"
align=
"center"
prop=
"country"
>
<el-table-column
label=
"
信用等级
"
align=
"center"
prop=
"country"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.C
OMMON_STATUS
"
:value=
"scope.row.country"
/>
<dict-tag
:type=
"DICT_TYPE.C
USTOMER_LEVEL
"
:value=
"scope.row.country"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"
跟进客服
"
align=
"center"
prop=
"customerService"
>
<el-table-column
label=
"
客户状态
"
align=
"center"
prop=
"customerService"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.customerService"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"客户状态"
align=
"center"
prop=
"status"
>
<el-table-column
label=
"主联系人"
align=
"center"
prop=
"defaultContactName"
>
</el-table-column>
<el-table-column
label=
"主联系方式"
align=
"center"
prop=
"defaultContactPhone"
/>
<el-table-column
label=
"常用运输方式"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"部门"
align=
"center"
prop=
"department"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
{{
parseTime
(
scope
.
row
.
customerService
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"最后跟进客服"
align=
"center"
prop=
"customerService"
>
</el-table-column>
<el-table-column
label=
"国家"
align=
"center"
prop=
"country"
>
</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:customer:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:customer:delete']"
>
删除
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
>
捞取
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-discover"
@
click=
"handleDelete(scope.row)"
>
移交
</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=
"900px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"150px"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户名称"
prop=
"name"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入客户名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"国家"
prop=
"country"
>
<el-select
v-model=
"form.country"
placeholder=
"请选择国家"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户等级"
prop=
"level"
>
<el-select
v-model=
"form.level"
placeholder=
"请选择客户等级"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"所属代理"
prop=
"agentId"
>
<el-select
v-model=
"form.agentId"
placeholder=
"请选择所属代理"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"联系地址"
prop=
"address"
>
<el-input
v-model=
"form.address"
placeholder=
"请输入联系地址"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户类别"
prop=
"type"
>
<el-select
v-model=
"form.type"
placeholder=
"请选择客户类别"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"常用提货网点"
prop=
"pickupPoint"
>
<el-select
v-model=
"form.pickupPoint"
placeholder=
"请输入常用提货网点"
>
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"公司名称"
prop=
"company"
>
<el-input
v-model=
"form.company"
placeholder=
"请输入公司名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户生日"
prop=
"birthday"
>
<el-input
v-model=
"form.birthday"
placeholder=
"请输入客户生日"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"产品类型"
prop=
"productType"
>
<el-select
v-model=
"form.productType"
placeholder=
"请选择产品类型"
>
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select>
</el-form-item>
<el-form-item
label=
"产品id"
prop=
"productId"
>
<el-input
v-model=
"form.productId"
placeholder=
"请输入产品id"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户来源"
prop=
"source"
>
<el-select
v-model=
"form.source"
placeholder=
"请选择客户来源"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"结算方式"
prop=
"balance"
>
<el-select
v-model=
"form.balance"
placeholder=
"请选择结算方式"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_BALANCE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"跟进客服"
prop=
"customerService"
>
<el-select
v-model=
"form.customerService"
placeholder=
"请选择跟进客服"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"图片"
prop=
"picture"
>
<el-input
v-model=
"form.picture"
placeholder=
"请输入图片"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-select
v-model=
"form.status"
placeholder=
"请选择客户状态"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"推介人"
prop=
"promoter"
>
<el-input
v-model=
"form.promoter"
placeholder=
"请输入推介人"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"创建人"
prop=
"founder"
>
<el-input
v-model=
"form.founder"
placeholder=
"请输入创建人"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"创建时间"
prop=
"founder"
>
<el-input
v-model=
"form.founder"
placeholder=
"请输入创建人"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"备注"
prop=
"remarks"
>
<el-input
v-model=
"form.remarks"
placeholder=
"请输入备注"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"到仓确认"
prop=
"arrivalConfirm"
>
<el-switch
v-model=
"form.arrivalConfirm"
:active-value=
"0"
:inactive-value=
"1"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"重货标准(CBM)"
prop=
"weightUnit"
>
<el-input
v-model=
"form.weightUnit"
placeholder=
"请输入重货标准(CBM)"
/>
</el-form-item>
</el-col>
</el-row>
<el-form-item
label=
"关联会员账号"
prop=
"memberId"
>
<el-input
v-model=
"form.memberId"
placeholder=
"请输入关联会员账号"
/>
</el-form-item>
<el-form-item
label=
"部门"
prop=
"department"
>
<el-input
v-model=
"form.department"
placeholder=
"请输入部门"
/>
</el-form-item>
<el-form-item
label=
"发票抬头"
prop=
"invoiceTitle"
>
<el-input
v-model=
"form.invoiceTitle"
placeholder=
"请输入发票抬头"
/>
</el-form-item>
<el-form-item
label=
"纳税人识别号"
prop=
"licenseNumber"
>
<el-input
v-model=
"form.licenseNumber"
placeholder=
"请输入纳税人识别号"
/>
</el-form-item>
<el-form-item
label=
"开户行"
prop=
"bank"
>
<el-input
v-model=
"form.bank"
placeholder=
"请输入开户行"
/>
</el-form-item>
<el-form-item
label=
"账户"
prop=
"bankNumber"
>
<el-input
v-model=
"form.bankNumber"
placeholder=
"请输入账户"
/>
</el-form-item>
<el-form-item
label=
"项目"
prop=
"project"
>
<el-input
v-model=
"form.project"
placeholder=
"请输入项目"
/>
</el-form-item>
<el-form-item
label=
"开票地址"
prop=
"billingAddress"
>
<el-input
v-model=
"form.billingAddress"
placeholder=
"请输入开票地址"
/>
</el-form-item>
<el-form-item
label=
"开票电话"
prop=
"billingTell"
>
<el-input
v-model=
"form.billingTell"
placeholder=
"请输入开票电话"
/>
</el-form-item>
<el-form-item
label=
"税率"
prop=
"taxRate"
>
<el-input
v-model=
"form.taxRate"
placeholder=
"请输入税率"
/>
</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
{
createCustomer
,
updateCustomer
,
deleteCustomer
,
getCustomer
,
getCustomerPage
,
exportCustomerExcel
,
getPublicList
}
from
"
@/api/ecw/customer
"
;
import
{
createCustomer
,
updateCustomer
,
getCustomer
,
getCustomerPage
,
exportCustomerExcel
,
getPublicList
,
handOverCustomer
}
from
"
@/api/ecw/customer
"
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
{
CommonStatusEnum
}
from
'
@/utils/constants
'
import
{
uploadFile
}
from
"
@/api/infra/file
"
;
import
Template
from
"
@/views/cms/template
"
;
export
default
{
name
:
"
oceanCustomer
"
,
components
:
{
Template
},
data
()
{
return
{
...
...
@@ -369,39 +208,17 @@ export default {
/** 表单重置 */
reset
()
{
this
.
form
=
{
id
:
undefined
,
number
:
undefined
,
name
:
undefined
,
level
:
undefined
,
country
:
undefined
,
type
:
undefined
,
agentId
:
undefined
,
company
:
undefined
,
address
:
undefined
,
productType
:
undefined
,
productId
:
undefined
,
pickupPoint
:
undefined
,
memberId
:
undefined
,
birthday
:
undefined
,
balance
:
undefined
,
source
:
undefined
,
picture
:
undefined
,
customerService
:
undefined
,
promoter
:
undefined
,
status
:
undefined
,
founder
:
undefined
,
department
:
undefined
,
invoiceTitle
:
undefined
,
licenseNumber
:
undefined
,
bank
:
undefined
,
bankNumber
:
undefined
,
project
:
undefined
,
billingAddress
:
undefined
,
billingTell
:
undefined
,
taxRate
:
undefined
,
remarks
:
undefined
,
arrivalConfirm
:
undefined
,
weightUnit
:
undefined
,
beginCreateTime
:
undefined
,
//开始创建时间
endCreateTime
:
undefined
,
// 结束创建时间
customerService
:
undefined
,
//跟进客服
defaultContactName
:
undefined
,
//主联系人
defaultContactPhone
:
undefined
,
// 主联系电话
department
:
undefined
,
//部门
level
:
undefined
,
//客户等级
name
:
undefined
,
// 客户名称
number
:
undefined
,
//客户编号
source
:
undefined
,
//客户来源
status
:
undefined
,
//客户状态
};
this
.
resetForm
(
"
form
"
);
},
...
...
@@ -418,9 +235,7 @@ export default {
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加客户
"
;
this
.
$router
.
push
(
'
/customer/edit/0
'
)
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
...
...
@@ -458,8 +273,8 @@ export default {
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认
删除
客户编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
delete
Customer
(
id
);
this
.
$modal
.
confirm
(
'
是否确认
移交
客户编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
handOver
Customer
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
...
...
src/views/ecw/productAttr/edit.vue
0 → 100644
View file @
4cebc320
<
template
>
<div
class=
"app-container"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form-item
label=
"适用商品"
prop=
"idList"
v-if=
"form.type != 1"
>
<products-selector
v-model=
"form.idList"
/>
</el-form-item>
<el-form-item
label=
"货柜位置"
prop=
"containerLocation"
>
<el-checkbox
style=
"width: 100px"
v-model=
"checked[0]"
>
需要修改
</el-checkbox>
<dict-selector
v-if=
"checked[0]"
:type=
"DICT_TYPE.ECW_CONTAINER_LOCATION"
v-model=
"form.containerLocation"
/>
</el-form-item>
<el-form-item
label=
"出运要求"
prop=
"requirements"
>
<el-checkbox
style=
"width: 100px;margin-right: 0;"
v-model=
"checked[1]"
>
需要修改
</el-checkbox>
<el-checkbox
v-if=
"checked[1]"
true-label=
"1"
v-model=
"form.requirements"
>
证书要求(支持多证书)
</el-checkbox>
</el-form-item>
<el-form-item
label=
"方数要求"
prop=
"square"
>
<el-checkbox
style=
"width: 100px"
v-model=
"checked[2]"
>
需要修改
</el-checkbox>
<el-input
v-if=
"checked[2]"
v-model=
"form.square"
placeholder=
""
style=
"width: 200px"
></el-input>
</el-form-item>
<el-form-item
label=
"包装要求"
prop=
"packaging"
>
<el-checkbox
style=
"width: 100px"
v-model=
"checked[3]"
>
需要修改
</el-checkbox>
<dict-selector
v-if=
"checked[3]"
:type=
"DICT_TYPE.ECW_PACKAGING_TYPE"
v-model=
"form.packaging"
/>
</el-form-item>
<el-form-item
label=
"需要预约入仓"
prop=
"needBook"
>
<el-checkbox
style=
"width: 100px"
v-model=
"checked[4]"
>
需要修改
</el-checkbox>
<dict-selector
v-if=
"checked[4]"
formatter=
"bool"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_YESNO"
v-model=
"form.needBook"
:formater=
"Boolean"
/>
</el-form-item>
<el-form-item
label=
"每日入仓上限"
prop=
"dayLimit"
>
<el-checkbox
style=
"width: 100px"
v-model=
"checked[5]"
>
需要修改
</el-checkbox>
<el-input
v-if=
"checked[5]"
placeholder=
""
v-model=
"form.dayLimit"
style=
"width: 200px"
>
<template
slot=
"suffix"
>
立方米
</
template
>
</el-input>
</el-form-item>
<el-form-item
label=
"商品特性"
prop=
"attrId"
>
<el-checkbox
style=
"width: 100px"
v-model=
"checked[6]"
>
需要修改
</el-checkbox>
<dict-selector
v-if=
"checked[6]"
form-type=
"checkbox"
:type=
"DICT_TYPE.ECW_ORDER_ATTR"
v-model=
"form.attrId"
multiple
/>
</el-form-item>
<!-- <el-form-item label="商品材质" prop="">
<el-checkbox style="width: 100px" v-model="checked[7]">需要修改</el-checkbox>
<dict-selector v-if="checked[7]" form-type="checkbox" :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" v-model="form.status" multiple />
</el-form-item> -->
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"$router.back()"
>
返 回
</el-button>
<el-button
type=
"default"
@
click=
"reset"
>
重 置
</el-button>
</el-form-item>
</el-form>
</div>
</template>
<
script
>
import
{
batchUpdateProduct
}
from
'
@/api/ecw/product
'
;
import
CustomersSelector
from
'
@/components/CustomersSelector
'
import
{
getDictData
}
from
'
@/utils/dict
'
import
RoutersSelector
from
'
@/components/RoutersSelector
'
import
ProductsSelector
from
'
@/components/ProductsSelector
'
import
Editor
from
'
@/components/Editor
'
import
Selector
from
'
@/components/Selector/index
'
export
default
{
name
:
"
AttrEdit
"
,
components
:
{
CustomersSelector
,
RoutersSelector
,
ProductsSelector
,
Editor
,
Selector
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 表单参数
form
:
{
"
attrId
"
:
undefined
,
"
containerLocation
"
:
undefined
,
"
dayLimit
"
:
undefined
,
"
idList
"
:
[],
"
isAllProduct
"
:
undefined
,
"
needBook
"
:
undefined
,
"
packaging
"
:
undefined
,
"
requirements
"
:
undefined
,
"
square
"
:
undefined
},
// 表单校验
rules
:
{},
checked
:
[
false
,
false
,
false
,
false
,
false
,
false
,
false
]
};
},
computed
:
{
},
watch
:
{
'
form.idList
'
(
val
)
{
if
(
val
.
length
>
0
)
{
this
.
form
.
isAllProduct
=
undefined
}
else
{
this
.
form
.
isAllProduct
=
1
}
}
},
created
()
{
this
.
reset
()
},
methods
:
{
/** 表单重置 */
reset
()
{
this
.
form
=
{
"
attrId
"
:
undefined
,
"
containerLocation
"
:
undefined
,
"
dayLimit
"
:
undefined
,
"
idList
"
:
[],
"
isAllProduct
"
:
undefined
,
"
needBook
"
:
undefined
,
"
packaging
"
:
undefined
,
"
requirements
"
:
undefined
,
"
square
"
:
undefined
};
this
.
resetForm
(
"
form
"
);
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
return
;
}
let
data
=
Object
.
assign
({},
this
.
form
)
batchUpdateProduct
(
data
).
then
((
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
$router
.
back
();
});
});
},
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.fee-item
{
padding
:
5px
0
;
>
div
{
margin-right
:
5px
;
}
}
.coupon-list
{
max-height
:
200px
;
border
:
1px
solid
#ccc
;
padding
:
10px
;
overflow-y
:
auto
;
}
</
style
>
\ No newline at end of file
src/views/ecw/productBrank/Empower/index.vue
View file @
4cebc320
...
...
@@ -10,7 +10,7 @@
<el-tab-pane
label=
"未授权客户"
name=
"first"
>
<el-form
:inline=
"true"
class=
"demo-form-inline"
>
<el-form-item
label=
"关键字"
>
<el-input
v-model=
"
customerKey"
placeholder=
"审批人
"
></el-input>
<el-input
v-model=
"
list1QueryParams.customerKey"
placeholder=
"请填入关键字
"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"filterCustomer"
>
查询
</el-button>
...
...
@@ -36,6 +36,9 @@
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total1 > 0"
:total=
"total1"
:page.sync=
"list1QueryParams.pageNo"
:limit.sync=
"list1QueryParams.pageSize"
@
pagination=
"getList1"
style=
"height: 40px"
/>
</el-tab-pane>
<el-tab-pane
label=
"已授权客户"
name=
"second"
>
<el-table
...
...
@@ -49,18 +52,48 @@
prop=
"phone"
label=
"客户号码"
>
</el-table-column>
<el-table-column
prop=
"fileUrl"
label=
"授权证明"
>
<
template
v-slot=
"{row}"
>
<div
v-if=
"!!row.fileUrl && row.fileUrl.length > 0"
>
<span
v-for=
"(item, index) in row.fileUrl.split(',')"
>
<a
:href=
"item"
target=
"_blank"
>
附件
{{
index
+
1
}}
</a>
,
</span>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"startTime"
width=
"200px"
:formatter=
"(row) => parseTime(row.startTime, '{y}-{m}-{d}') + ' - ' + parseTime(row.endTime, '{y}-{m}-{d}')"
label=
"授权时间"
>
</el-table-column>
<el-table-column
prop=
"feeScale"
:formatter=
"(row) => getDictDataLabel(DICT_TYPE.BRAND_CUSTOMER_CHARGING_MODEL, row.feeScale)"
label=
"收费标准"
>
</el-table-column>
<el-table-column
prop=
"createUsername"
label=
"添加人"
>
</el-table-column>
<el-table-column
width=
"100px"
label=
"操作"
>
<
template
v-slot=
"{row}"
>
<el-button
type=
"
primary
"
size=
"mini"
@
click=
"handleDelete(row.id)"
>
删除
</el-button>
<el-button
type=
"
danger
"
size=
"mini"
@
click=
"handleDelete(row.id)"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total2 > 0"
:total=
"total2"
:page.sync=
"list2QueryParams.pageNo"
:limit.sync=
"list2QueryParams.pageSize"
@
pagination=
"getList2"
style=
"height: 40px"
/>
</el-tab-pane>
</el-tabs>
</el-dialog>
<!-- 添加弹窗 -->
<el-dialog
title=
"添加"
:visible.sync=
"addDialog.dialogVisible"
...
...
@@ -81,7 +114,9 @@
<el-form-item
label=
"收费模式"
>
<dict-selector
v-model=
"addDialog.form.feeScale"
:type=
"DICT_TYPE.BRAND_CUSTOMER_CHARGING_MODEL"
></dict-selector>
</el-form-item>
<el-form-item
label=
"授权证明"
></el-form-item>
<el-form-item
label=
"授权证明"
>
<file-upload
v-model=
"addDialog.form.fileUrl"
></file-upload>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"addDialog.dialogVisible = false"
>
取 消
</el-button>
...
...
@@ -99,12 +134,15 @@ import {
getProductBrandEmpowerPageUnauth
}
from
"
@/api/ecw/productBrandEmpower
"
import
DictSelector
from
"
@/components/DictSelector
"
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
import
{
DICT_TYPE
,
getDictDataLabel
}
from
'
@/utils/dict
'
import
FileUpload
from
'
@/components/FileUpload
'
import
{
parseTime
}
from
'
@/utils/ruoyi
'
export
default
{
name
:
"
Empower
"
,
components
:
{
DictSelector
DictSelector
,
FileUpload
},
props
:
{
id
:
{
...
...
@@ -120,11 +158,23 @@ export default {
data
()
{
return
{
DICT_TYPE
,
getDictDataLabel
,
parseTime
,
dialogVisible
:
false
,
activeName
:
'
first
'
,
customerKey
:
''
,
total1
:
0
,
total2
:
0
,
list1
:
[],
list2
:
[],
list1QueryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
customerKey
:
undefined
},
list2QueryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
},
addDialog
:
{
dialogVisible
:
false
,
...
...
@@ -153,30 +203,52 @@ export default {
this
.
addDialog
.
dialogVisible
=
false
this
.
getList1
()
this
.
getList2
()
this
.
resetForm
(
"
form
"
);
})
},
handleDatePick
(
e
){
console
.
log
(
e
)
},
handleClose
()
{},
filterCustomer
()
{},
filterCustomer
()
{
this
.
list1QueryParams
.
pageNo
=
1
this
.
getList1
()
},
handleAdd
(
row
)
{
this
.
addDialog
.
form
.
customerId
=
row
.
customerId
this
.
addDialog
.
form
.
customerName
=
row
.
customerName
this
.
addDialog
.
dialogVisible
=
true
},
handleDelete
(
id
)
{
deleteProductBrandEmpower
(
id
).
then
(
r
=>
{
this
.
getList2
()
})
this
.
$confirm
(
'
确认删除该用户的授权?
'
,
'
提示
'
,
{
confirmButtonText
:
'
确定
'
,
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
}).
then
(()
=>
{
deleteProductBrandEmpower
(
id
).
then
(
r
=>
{
this
.
getList1
()
this
.
getList2
()
this
.
$message
({
type
:
'
success
'
,
message
:
'
撤销授权成功!
'
});
})
}).
catch
(()
=>
{
this
.
$message
({
type
:
'
info
'
,
message
:
'
已取消删除
'
});
});
},
getList1
(){
getProductBrandEmpowerPageUnauth
({
productBrandId
:
this
.
id
}).
then
(
r
=>
{
getProductBrandEmpowerPageUnauth
({
...
this
.
list1QueryParams
,
productBrandId
:
this
.
id
}).
then
(
r
=>
{
this
.
list1
=
r
.
data
.
list
this
.
total1
=
r
.
data
.
total
})
},
getList2
()
{
getProductBrandEmpowerPageAuth
({
productBrandId
:
this
.
id
}).
then
(
r
=>
{
getProductBrandEmpowerPageAuth
({
...
this
.
list2QueryParams
,
productBrandId
:
this
.
id
}).
then
(
r
=>
{
this
.
list2
=
r
.
data
.
list
})
}
...
...
@@ -184,6 +256,9 @@ export default {
watch
:
{
visible
(
v
){
if
(
v
){
this
.
list1QueryParams
.
pageNo
=
1
this
.
list2QueryParams
.
pageNo
=
1
this
.
list1QueryParams
.
customerKey
=
''
this
.
getList1
()
this
.
getList2
()
}
...
...
src/views/system/dict/data.vue
View file @
4cebc320
...
...
@@ -49,6 +49,7 @@
<el-table-column
label=
"颜色类型"
align=
"center"
prop=
"colorType"
/>
<el-table-column
label=
"CSS Class"
align=
"center"
prop=
"cssClass"
/>
<el-table-column
label=
"备注"
align=
"center"
prop=
"remark"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"创建人"
align=
"creatorName"
prop=
"creatorName"
width=
"100"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
...
...
src/views/system/internalMessage/index.vue
0 → 100644
View file @
4cebc320
<
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=
"fromId"
>
<el-input
v-model=
"queryParams.fromId"
placeholder=
"请输入站内信来源"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"发送时间"
>
<el-date-picker
v-model=
"dateRangeSendTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item
label=
"标题"
prop=
"title"
>
<el-input
v-model=
"queryParams.title"
placeholder=
"请输入标题"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"消息类型"
prop=
"type"
>
<el-select
v-model=
"queryParams.type"
placeholder=
"请选择"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.INTERNAL_MESSAGE_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</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:internal-message:create']"
>
新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['ecw:internal-message:export']"
>
导出
</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=
"fromId"
/>
<el-table-column
label=
"发送时间"
align=
"center"
prop=
"sendTime"
width=
"180"
>
<template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
sendTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"标题"
align=
"center"
prop=
"title"
/>
<!-- <el-table-column label="内容" align="center" prop="content" />-->
<el-table-column
label=
"消息类型"
align=
"center"
prop=
"type"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.INTERNAL_MESSAGE_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
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:internal-message:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:internal-message: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=
"站内信来源ID"
prop=
"fromId"
>
<el-input
v-model=
"form.fromId"
placeholder=
"请输入站内信来源"
/>
</el-form-item>
<el-form-item
label=
"发送时间"
prop=
"sendTime"
>
<el-date-picker
clearable
v-model=
"form.sendTime"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"选择发送时间"
/>
</el-form-item>
<el-form-item
label=
"标题"
prop=
"title"
>
<el-input
v-model=
"form.title"
placeholder=
"请输入标题"
/>
</el-form-item>
<el-form-item
label=
"内容"
>
<editor
v-model=
"form.content"
:min-height=
"192"
/>
</el-form-item>
<el-form-item
label=
"消息类型"
prop=
"type"
>
<el-select
v-model=
"form.type"
placeholder=
"请选择"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.INTERNAL_MESSAGE_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</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
{
createInternalMessage
,
updateInternalMessage
,
deleteInternalMessage
,
getInternalMessage
,
getInternalMessagePage
,
exportInternalMessageExcel
}
from
"
@/api/system/internalMessage
"
;
import
Editor
from
'
@/components/Editor
'
;
export
default
{
name
:
"
InternalMessage
"
,
components
:
{
Editor
,
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 站内信列表
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeSendTime
:
[],
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
fromId
:
null
,
title
:
null
,
content
:
null
,
type
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
}
};
},
created
()
{
this
.
getList
();
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeSendTime
,
'
sendTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
getInternalMessagePage
(
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
,
fromId
:
undefined
,
sendTime
:
undefined
,
title
:
undefined
,
content
:
undefined
,
type
:
undefined
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeSendTime
=
[];
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加站内信
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getInternalMessage
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改站内信
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateInternalMessage
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
return
;
}
// 添加的提交
createInternalMessage
(
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
deleteInternalMessage
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeSendTime
,
'
sendTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有站内信数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportInternalMessageExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
}
}
};
</
script
>
src/views/system/myInternalMessage/index.vue
0 → 100644
View file @
4cebc320
<
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=
"fromId"
>
<el-input
v-model=
"queryParams.fromId"
placeholder=
"请输入站内信来源"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"发送时间"
>
<el-date-picker
v-model=
"dateRangeSendTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item
label=
"标题"
prop=
"title"
>
<el-input
v-model=
"queryParams.title"
placeholder=
"请输入标题"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"消息类型"
prop=
"type"
>
<el-select
v-model=
"queryParams.type"
placeholder=
"请选择"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.INTERNAL_MESSAGE_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.INTERNAL_MESSAGE_READ_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</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-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
""
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"站内信来源"
align=
"center"
prop=
"fromId"
/>
<el-table-column
label=
"发送时间"
align=
"center"
prop=
"sendTime"
width=
"180"
>
<template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
sendTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"标题"
align=
"center"
prop=
"title"
/>
<!-- <el-table-column label="内容" align="center" prop="content" />-->
<el-table-column
label=
"消息类型"
align=
"center"
prop=
"type"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.INTERNAL_MESSAGE_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
align=
"center"
prop=
"status"
width=
"50"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.INTERNAL_MESSAGE_READ_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
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=
"viewMessage(scope.row)"
>
查看
</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"
/>
</div>
</template>
<
script
>
import
{
getMyInternalMessagePage
}
from
"
@/api/system/internalMessage
"
;
export
default
{
name
:
"
MyInternalMessage
"
,
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 站内信列表
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeSendTime
:
[],
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
fromId
:
null
,
title
:
null
,
content
:
null
,
type
:
null
,
status
:
this
.
$route
.
query
.
status
?
this
.
$route
.
query
.
status
:
null
,
},
// 表单参数
form
:
{},
};
},
created
()
{
this
.
getList
();
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeSendTime
,
'
sendTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
getMyInternalMessagePage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
},
/** 表单重置 */
reset
()
{
this
.
form
=
{
id
:
undefined
,
fromId
:
undefined
,
sendTime
:
undefined
,
title
:
undefined
,
content
:
undefined
,
type
:
undefined
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeSendTime
=
[];
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
viewMessage
(
e
){
}
}
};
</
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