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
9f220cec
Commit
9f220cec
authored
Jun 30, 2022
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Plain Diff
backup
parents
4602c8aa
bf21bf76
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
711 additions
and
421 deletions
+711
-421
offer.js
src/api/ecw/offer.js
+9
-0
region.js
src/api/ecw/region.js
+1
-1
user.js
src/api/member/user.js
+25
-0
dict.js
src/utils/dict.js
+2
-0
index.vue
src/views/ecw/oceanCustomer/index.vue
+154
-89
edit.vue
src/views/ecw/offer/edit.vue
+137
-72
result.vue
src/views/ecw/offer/result.vue
+99
-0
edit.vue
src/views/ecw/productPrice/edit.vue
+1
-1
index.vue
src/views/ecw/zhongPao/index.vue
+34
-13
index.vue
src/views/member/user/index.vue
+247
-243
index.vue
src/views/system/helpDoc/index.vue
+2
-2
No files found.
src/api/ecw/offer.js
View file @
9f220cec
...
@@ -52,3 +52,12 @@ export function exportOfferExcel(query) {
...
@@ -52,3 +52,12 @@ export function exportOfferExcel(query) {
responseType
:
'
blob
'
responseType
:
'
blob
'
})
})
}
}
// 更新报价单结果
export
function
updateOfferResult
(
data
)
{
return
request
({
url
:
'
/ecw/offer/update/result
'
,
method
:
'
put
'
,
data
:
data
})
}
\ No newline at end of file
src/api/ecw/region.js
View file @
9f220cec
...
@@ -93,7 +93,7 @@ export function getCityList(query) {
...
@@ -93,7 +93,7 @@ export function getCityList(query) {
// 获得进出口城市
// 获得进出口城市
export
function
getTradeCityList
(
query
)
{
export
function
getTradeCityList
(
query
)
{
return
request
({
return
request
({
url
:
'
/ecw/region/getCityList
'
,
url
:
'
/ecw/region/get
Trade
CityList
'
,
method
:
'
get
'
,
method
:
'
get
'
,
params
:
query
params
:
query
})
})
...
...
src/api/member/user.js
View file @
9f220cec
...
@@ -52,3 +52,28 @@ export function exportUserExcel(query) {
...
@@ -52,3 +52,28 @@ export function exportUserExcel(query) {
responseType
:
'
blob
'
responseType
:
'
blob
'
})
})
}
}
//操作日志
export
function
operationLogApi
(
query
){
return
request
({
url
:
'
/member/user/operation-log/page
'
,
method
:
'
get
'
,
params
:
query
,
})
}
//更新证书
export
function
seTupdateBackletter
(
data
){
return
request
({
url
:
'
/member/user/update-backletter
'
,
method
:
'
put
'
,
data
:
data
})
}
//获取指定用户的实名认证信息
export
function
memberGetAuthIdcardInfo
(
query
){
return
request
({
url
:
'
/member/user/get-auth-idcard-info
'
,
method
:
'
get
'
,
params
:
query
,
})
}
src/utils/dict.js
View file @
9f220cec
...
@@ -89,6 +89,8 @@ export const DICT_TYPE = {
...
@@ -89,6 +89,8 @@ export const DICT_TYPE = {
ECW_PACKAGE_TYPE
:
'
packageType
'
,
// 包装单位
ECW_PACKAGE_TYPE
:
'
packageType
'
,
// 包装单位
ECW_DOUBLE_CLEAR
:
'
double_clear
'
,
// 是否双清
ECW_DOUBLE_CLEAR
:
'
double_clear
'
,
// 是否双清
ECW_TRADE_TYPE
:
'
trade_type
'
,
// 交货放肆
ECW_TRADE_TYPE
:
'
trade_type
'
,
// 交货放肆
ECW_OFFER_RESULT
:
'
offer_result
'
,
// 报单结果 赢单 输单
ECW_WAREHOUSING_TYPE
:
'
warehousing_type
'
,
// 入仓类型
//--------ecw---------
//--------ecw---------
CUSTOMER_STATUS
:
'
customer_status
'
,
CUSTOMER_STATUS
:
'
customer_status
'
,
CUSTOMER_SOURCE
:
'
customer_source
'
,
CUSTOMER_SOURCE
:
'
customer_source
'
,
...
...
src/views/ecw/oceanCustomer/index.vue
View file @
9f220cec
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"客户编号"
prop=
"number"
>
<el-form-item
label=
"客户编号"
prop=
"number"
>
<el-input
v-model=
"queryParams.number"
placeholder=
"请输入客户编号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.number"
placeholder=
"请输入客户编号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
...
@@ -13,31 +13,16 @@
...
@@ -13,31 +13,16 @@
<el-form-item
label=
"客户等级"
prop=
"level"
>
<el-form-item
label=
"客户等级"
prop=
"level"
>
<el-select
v-model=
"queryParams.level"
placeholder=
"请选择客户等级"
clearable
size=
"small"
>
<el-select
v-model=
"queryParams.level"
placeholder=
"请选择客户等级"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"联系方式"
prop=
"name"
>
<el-form-item
label=
"客户来源"
prop=
"source"
>
<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-select
v-model=
"queryParams.source"
placeholder=
"请选择客户来源"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
: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"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
国家
"
prop=
"customerService"
>
<el-form-item
label=
"
跟进客服
"
prop=
"customerService"
>
<el-select
v-model=
"queryParams.customerService"
placeholder=
"请选择跟进客服"
clearable
size=
"small"
>
<el-select
v-model=
"queryParams.customerService"
placeholder=
"请选择跟进客服"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
...
@@ -46,22 +31,16 @@
...
@@ -46,22 +31,16 @@
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-form-item
label=
"客户状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择客户状态"
clearable
size=
"small"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择客户状态"
clearable
size=
"small"
>
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</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-input
v-model=
"queryParams.department"
placeholder=
"请输入部门"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
</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-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
...
@@ -90,39 +69,47 @@
...
@@ -90,39 +69,47 @@
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
</
template
>
</
template
>
</el-table-column>
</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.CUSTOMER_LEVEL"
:value=
"scope.row.country"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"客户状态"
align=
"center"
prop=
"customerService"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CO
MMON_STATUS"
:value=
"scope.row.customerService
"
/>
<dict-tag
:type=
"DICT_TYPE.CO
UNTRY"
:value=
"scope.row.country
"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"
主联系人"
align=
"center"
prop=
"defaultContactName
"
>
<el-table-column
label=
"
跟进客服"
align=
"center"
prop=
"customerService"
:formatter=
"customerServiceFn
"
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"主联系方式"
align=
"center"
prop=
"defaultContactPhone"
/>
<el-table-column
label=
"客户状态"
align=
"center"
prop=
"status"
>
<el-table-column
label=
"常用运输方式"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
>
<el-table-column
label=
"部门"
align=
"center"
prop=
"department"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
parseTime
(
scope
.
row
.
customerService
)
}}
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</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"
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<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-folder-add"
@
click=
"distribution(scope.row)"
>
移交
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-
discover"
@
click=
"handleDelete(scope.row)"
>
移交
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-
crop"
>
捞取
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<!-- 移交 -->
<el-dialog
center
title=
"客服"
:visible.sync=
"transferShow"
width=
"30%"
>
<div
style=
"width: 100%;min-height: 100px"
>
<el-radio-group
v-model=
"service"
>
<el-radio
style=
"margin: 5px;"
v-for=
"(item,index) in customerServiceList"
:key=
"index"
:label=
"item.id"
>
{{item.nickname}}
</el-radio>
</el-radio-group>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"transferShow = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"transferFn"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 分页组件 -->
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
@
pagination=
"getList"
/>
...
@@ -130,18 +117,14 @@
...
@@ -130,18 +117,14 @@
</template>
</template>
<
script
>
<
script
>
import
{
createCustomer
,
updateCustomer
,
getCustomer
,
import
{
createCustomer
,
updateCustomer
,
deleteCustomer
,
handOverCustomer
,
getPublicList
,
exportCustomerExcel
}
from
"
@/api/ecw/customer
"
;
getCustomerPage
,
exportCustomerExcel
,
getPublicList
,
handOverCustomer
}
from
"
@/api/ecw/customer
"
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
{
CommonStatusEnum
}
from
'
@/utils/constants
'
import
upload
from
'
@/components/ImageUpload
'
import
{
uploadFile
}
from
"
@/api/infra/file
"
;
import
{
listServiceUser
}
from
"
@/api/system/user
"
;
import
Template
from
"
@/views/cms/template
"
;
export
default
{
export
default
{
name
:
"
oceanCustomer
"
,
name
:
"
customerToBeAssigned
"
,
components
:
{
components
:
{
Template
upload
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -162,6 +145,7 @@ export default {
...
@@ -162,6 +145,7 @@ export default {
// 是否显示弹出层
// 是否显示弹出层
open
:
false
,
open
:
false
,
dateRangeCreateTime
:
[],
dateRangeCreateTime
:
[],
customerServiceList
:[],
// 查询参数
// 查询参数
queryParams
:
{
queryParams
:
{
pageNo
:
1
,
pageNo
:
1
,
...
@@ -179,12 +163,32 @@ export default {
...
@@ -179,12 +163,32 @@ export default {
// 表单校验
// 表单校验
rules
:
{
rules
:
{
name
:
[{
required
:
true
,
message
:
"
客户名称不能为空
"
,
trigger
:
"
blur
"
}],
name
:
[{
required
:
true
,
message
:
"
客户名称不能为空
"
,
trigger
:
"
blur
"
}],
weightUnit
:
[{
required
:
true
,
message
:
"
重货标准(CBM)不能为空
"
,
trigger
:
"
blur
"
}],
country
:
[{
required
:
true
,
message
:
"
国家不能为空
"
,
trigger
:
"
blur
"
}],
}
level
:
[{
required
:
true
,
message
:
"
客户等级不能为空
"
,
trigger
:
"
blur
"
}],
type
:
[{
required
:
true
,
message
:
"
客户类别不能为空
"
,
trigger
:
"
blur
"
}],
// createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }],
source
:
[{
required
:
true
,
message
:
"
客户来源不能为空
"
,
trigger
:
"
blur
"
}],
customerService
:
[{
required
:
true
,
message
:
"
跟进客服不能为空
"
,
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
"
客户状态不能为空
"
,
trigger
:
"
blur
"
}],
founder
:
[{
required
:
true
,
message
:
"
创建人不能为空
"
,
trigger
:
"
blur
"
}],
},
// 网点
nodeList
:
[],
showLine
:
false
,
service
:
undefined
,
//客服
transferData
:
undefined
,
//移交数据
transferShow
:
false
,
};
};
},
},
created
()
{
created
()
{
this
.
getList
();
this
.
getList
();
listServiceUser
().
then
(
r
=>
{
console
.
log
(
r
,
'
客服
'
);
this
.
customerServiceList
=
r
.
data
;
})
// getNodeList().then(r => {
// this.nodeList = r.data
// })
},
},
methods
:
{
methods
:
{
/** 查询列表 */
/** 查询列表 */
...
@@ -208,17 +212,41 @@ export default {
...
@@ -208,17 +212,41 @@ export default {
/** 表单重置 */
/** 表单重置 */
reset
()
{
reset
()
{
this
.
form
=
{
this
.
form
=
{
beginCreateTime
:
undefined
,
//开始创建时间
id
:
undefined
,
endCreateTime
:
undefined
,
// 结束创建时间
number
:
undefined
,
customerService
:
undefined
,
//跟进客服
name
:
undefined
,
defaultContactName
:
undefined
,
//主联系人
level
:
undefined
,
defaultContactPhone
:
undefined
,
// 主联系电话
country
:
undefined
,
department
:
undefined
,
//部门
type
:
undefined
,
level
:
undefined
,
//客户等级
agentId
:
undefined
,
name
:
undefined
,
// 客户名称
company
:
undefined
,
number
:
undefined
,
//客户编号
address
:
undefined
,
source
:
undefined
,
//客户来源
productType
:
undefined
,
status
:
undefined
,
//客户状态
productId
:
undefined
,
pickupPoint
:
undefined
,
memberId
:
undefined
,
birthday
:
undefined
,
balance
:
undefined
,
source
:
undefined
,
picture
:
undefined
,
customerService
:
undefined
,
customerContacts
:
[],
customerLines
:
[],
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
,
};
};
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
},
},
...
@@ -236,22 +264,30 @@ export default {
...
@@ -236,22 +264,30 @@ export default {
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
this
.
$router
.
push
(
'
/customer/edit/0
'
)
this
.
$router
.
push
(
'
/customer/edit/0
'
)
// this.reset();
// this.open = true;
// this.title = "添加客户";
},
/** 查看按钮操作 */
handleView
(
row
)
{
this
.
$router
.
push
(
'
/customer/query/
'
+
row
.
id
)
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
this
.
reset
();
this
.
$router
.
push
(
'
/customer/edit/
'
+
row
.
id
)
const
id
=
row
.
id
;
// this.reset();
getCustomer
(
id
).
then
(
response
=>
{
// const id = row.id;
this
.
form
=
response
.
data
;
// getCustomer(id).then(response => {
this
.
open
=
true
;
// this.form = { ...this.form, ...response.data };
this
.
title
=
"
修改客户
"
;
// this.open = true;
});
// this.title = "修改客户";
// });
},
},
/** 提交按钮 */
/** 提交按钮 */
submitForm
()
{
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
if
(
!
valid
)
{
return
;
//
return;
}
}
// 修改的提交
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
if
(
this
.
form
.
id
!=
null
)
{
...
@@ -270,15 +306,15 @@ export default {
...
@@ -270,15 +306,15 @@ export default {
});
});
});
});
},
},
/**
删除
按钮操作 */
/**
移交
按钮操作 */
handleDelete
(
row
)
{
handleDelete
(
row
)
{
const
id
=
row
.
id
;
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认
移交
客户编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
this
.
$modal
.
confirm
(
'
是否确认
删除
客户编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
handOver
Customer
(
id
);
return
delete
Customer
(
id
);
}).
then
(()
=>
{
}).
then
(()
=>
{
this
.
getList
();
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
}).
catch
(()
=>
{});
},
},
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
...
@@ -289,13 +325,42 @@ export default {
...
@@ -289,13 +325,42 @@ export default {
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有客户数据项?
'
).
then
(()
=>
{
this
.
$modal
.
confirm
(
'
是否确认导出所有客户数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
this
.
exportLoading
=
true
;
return
exportCustomerExcel
(
params
);
return
exportCustomerExcel
(
params
);
}).
then
(
response
=>
{
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
}).
catch
(()
=>
{});
}
},
//分配客服
distribution
(
row
){
this
.
transferData
=
row
;
this
.
transferShow
=
true
;
},
customerServiceFn
(
val
){
if
(
this
.
customerServiceList
.
length
>
0
){
let
index
=
this
.
customerServiceList
.
findIndex
(
item
=>
item
.
id
===
val
.
customerService
);
return
index
!==
-
1
?
this
.
customerServiceList
[
index
]?.
nickname
:
''
}
else
{
return
''
}
},
transferFn
(){
if
(
!
this
.
service
){
return
this
.
$message
.
warning
(
'
请选择跟进客服!
'
);
}
handOverCustomer
({
customerServiceId
:
this
.
service
,
customerId
:
this
.
transferData
.
id
}).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
transferShow
=
false
;
this
.
service
=
''
;
this
.
getList
();
this
.
$message
.
success
(
'
移交成功!
'
);
}
})
},
}
}
};
};
</
script
>
</
script
>
src/views/ecw/offer/edit.vue
View file @
9f220cec
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-card>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
新建报价单
</div>
<div
slot=
"header"
class=
"card-title"
>
新建报价单
</div>
<el-form-item
label=
"所属人"
prop=
"number"
>
<el-form-item
label=
"所属人"
>
<el-radio-group
v-model=
"form.relation"
>
<el-radio-group
v-model=
"form.relation"
>
<el-radio
label=
"1"
>
发件人
</el-radio>
<el-radio
label=
"1"
>
发件人
</el-radio>
<el-radio
label=
"2"
>
收件人
</el-radio>
<el-radio
label=
"2"
>
收件人
</el-radio>
...
@@ -76,7 +76,7 @@
...
@@ -76,7 +76,7 @@
<el-card
class=
"mt-10"
>
<el-card
class=
"mt-10"
>
<div
slot=
"header"
class=
"card-title"
>
<div
slot=
"header"
class=
"card-title"
>
<div
class=
"card-name"
>
商品信息
</div>
<div
class=
"card-name"
>
商品信息
</div>
<el-button
type=
"primary"
size=
"mini"
icon=
"el-icon-plus"
@
click=
"productList.push(
{prodAttr
Ids
:[]})">
</el-button>
<el-button
type=
"primary"
size=
"mini"
icon=
"el-icon-plus"
@
click=
"productList.push(
{prodAttr
Arr
:[]})">
</el-button>
</div>
</div>
<el-table
:data=
"productList"
border
>
<el-table
:data=
"productList"
border
>
<el-table-column
label=
"序号"
width=
"60px"
fixed
>
<el-table-column
label=
"序号"
width=
"60px"
fixed
>
...
@@ -86,12 +86,12 @@
...
@@ -86,12 +86,12 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"中文名"
width=
"160px"
>
<el-table-column
label=
"中文名"
width=
"160px"
>
<
template
slot-scope=
"{row}"
>
<
template
slot-scope=
"{row}"
>
<product-selector
v-model=
"row.prod
uc
tId"
@
change=
"row.goodsType = $event.typeId"
/>
<product-selector
v-model=
"row.prodtId"
@
change=
"row.goodsType = $event.typeId"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"英文名"
width=
"160px"
>
<el-table-column
label=
"英文名"
width=
"160px"
>
<
template
slot-scope=
"{row}"
>
<
template
slot-scope=
"{row}"
>
<product-selector
v-model=
"row.prod
uc
tId"
/>
<product-selector
v-model=
"row.prodtId"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"商品类型"
width=
"160px"
>
<el-table-column
label=
"商品类型"
width=
"160px"
>
...
@@ -143,21 +143,21 @@
...
@@ -143,21 +143,21 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"商品特性"
width=
"250px"
>
<el-table-column
label=
"商品特性"
width=
"250px"
>
<
template
slot-scope=
"{row}"
>
<
template
slot-scope=
"{row}"
>
<el-checkbox-group
v-model=
"row.prodAttr
Ids
"
>
<el-checkbox-group
v-model=
"row.prodAttr
Arr
"
>
<el-checkbox
v-for=
"item in productAttrList"
:label=
"item.id"
:key=
"item.id"
>
{{
item
.
attrName
}}
</el-checkbox>
<el-checkbox
v-for=
"item in productAttrList"
:label=
"item.id"
:key=
"item.id"
>
{{
item
.
attrName
}}
</el-checkbox>
</el-checkbox-group>
</el-checkbox-group>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"运输方式"
width=
"150px"
>
<el-table-column
label=
"运输方式"
width=
"150px"
>
<
template
slot-scope=
"{row}"
>
<
template
slot-scope=
"{row}"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"row.
offerT
ransportId"
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"row.
t
ransportId"
@
input=
"if(getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, $event).cssClass != 'channel') row.channelId = null"
/>
@
input=
"if(getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, $event).cssClass != 'channel') row.channelId = null"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"出货渠道"
width=
"150px"
>
<el-table-column
label=
"出货渠道"
width=
"150px"
>
<
template
slot-scope=
"{row}"
>
<
template
slot-scope=
"{row}"
>
<selector
<selector
:disabled=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, row.
offerT
ransportId).cssClass != 'channel'"
:disabled=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, row.
t
ransportId).cssClass != 'channel'"
v-model=
"row.channelId"
v-model=
"row.channelId"
:options=
"channelList"
:options=
"channelList"
value-field=
"channelId"
value-field=
"channelId"
...
@@ -182,10 +182,10 @@
...
@@ -182,10 +182,10 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<!--
</el-card>
</el-card>
<el-card
class=
"mt-10"
>
<el-card class="mt-10">
-->
<div
class=
"card-title"
s
lot=
"header
"
>
费用小计
</div>
<div
class=
"card-title"
s
tyle=
"padding:20px 0;
"
>
费用小计
</div>
<el-descriptions
:column=
"4"
border
>
<el-descriptions
:column=
"4"
border
>
<el-descriptions-item
label=
"总件数"
>
<el-descriptions-item
label=
"总件数"
>
...
@@ -213,52 +213,61 @@
...
@@ -213,52 +213,61 @@
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
</el-card>
</el-card>
<el-card
class=
"mt-10"
v-for=
"(item, index) in transportList"
:key=
"index"
>
<
template
v-for=
"(item, index) in enbedTransports"
>
<div
class=
"card-title"
slot=
"header"
>
空运路线
</div>
<el-card
class=
"mt-10"
:key=
"index"
v-if=
"!item._disabled"
>
<el-form-item
label=
"空运线路1"
>
<div
class=
"card-title"
slot=
"header"
>
{{
item
.
label
}}
</div>
<el-col
:span=
"12"
>
义务 > Alaba
</el-col>
<el-col
:span=
"12"
>
出货渠道1: 你猜
</el-col>
</el-form-item>
<el-form-item
label=
"空运线路1"
>
<el-col
:span=
"12"
>
义务 > Alaba
</el-col>
<el-col
:span=
"12"
>
出货渠道1: 你猜
</el-col>
</el-form-item>
<el-form-item
label=
"是否双清"
>
<dict-selector
v-model=
"item.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
/>
</el-form-item>
<el-form-item
label=
"航空公司"
>
<el-select
placeholder=
""
v-model=
"item.airlineCompany"
>
</el-select>
</el-form-item>
<el-form-item
label=
"清关证书"
>
<dict-selector
v-model=
"item.customsClearCert"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
</el-form-item>
<el-form-item
label=
"清关证书备注"
>
<el-input
v-model=
"item.remarks"
></el-input>
</el-form-item>
<el-form-item
label=
"是否拆包"
>
<dict-selector
v-model=
"item.isUnpack"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
</el-form-item>
<el-form-item
label=
"单票立刻转运"
>
<dict-selector
v-model=
"item.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<span
style=
"margin-left:10px"
>
注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”
</span>
</el-form-item>
<el-form-item
label=
"包装类型"
>
<dict-selector
v-model=
"item.packageType"
form-type=
"checkbox"
:type=
"DICT_TYPE.ECW_PACKAGE_TYPE"
muiltple
/>
</el-form-item>
<el-form-item
label=
"包装要求备注"
>
<el-input
v-model=
"item.remarks"
></el-input>
</el-form-item>
</el-card>
<el-form-item
v-for=
"(router, routerIndex) in item.routers"
:key=
"routerIndex"
:label=
"item.label.substr(0, 2) + '线路' + (routerIndex + 1)"
>
<el-col
:span=
"12"
>
{{
getRouterNameById
(
router
.
lineId
)
}}
</el-col>
<el-col
:span=
"12"
v-if=
"router.channelId"
>
出货渠道
{{
routerIndex
+
1
}}
:
{{
getChannelNameById
(
router
.
channelId
)
}}
</el-col>
</el-form-item>
<!--
<el-form-item
label=
"空运线路1"
>
<el-col
:span=
"12"
>
义务 > Alaba
</el-col>
<el-col
:span=
"12"
>
出货渠道1: 你猜
</el-col>
</el-form-item>
-->
<!--1海运拼柜 2海运整柜 3专线空运 4海空联运-->
<el-form-item
label=
"是否双清"
v-if=
"[2,3,4].indexOf(+item.transportId) > -1"
>
<dict-selector
v-model=
"item.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
/>
</el-form-item>
<el-form-item
label=
"航空公司"
v-if=
"[3,4].indexOf(+item.transportId) > -1"
>
<el-select
placeholder=
""
v-model=
"item.airlineCompany"
>
</el-select>
</el-form-item>
<el-form-item
label=
"船公司"
v-if=
"[2].indexOf(+item.transportId) > -1"
>
<el-select
placeholder=
""
v-model=
"item.airlineCompany"
>
</el-select>
</el-form-item>
<el-form-item
label=
"清关证书"
v-if=
"[2,3,4].indexOf(+item.transportId) > -1"
>
<dict-selector
v-model=
"item.customsClearCert"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
</el-form-item>
<el-form-item
label=
"清关证书备注"
v-if=
"[2,3,4].indexOf(+item.transportId) > -1"
>
<el-input
v-model=
"item.remarks"
></el-input>
</el-form-item>
<el-form-item
label=
"是否拆包"
v-if=
"[3,4].indexOf(+item.transportId) > -1"
>
<dict-selector
v-model=
"item.isUnpack"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
</el-form-item>
<el-form-item
label=
"单票立刻转运"
v-if=
"[3,4].indexOf(+item.transportId) > -1"
>
<dict-selector
v-model=
"item.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<span
style=
"margin-left:10px"
>
注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”
</span>
</el-form-item>
<el-form-item
label=
"包装类型"
v-if=
"[3,4].indexOf(+item.transportId) > -1"
>
<dict-selector
v-model=
"item.packageType"
form-type=
"checkbox"
:type=
"DICT_TYPE.ECW_PACKAGE_TYPE"
multiple
/>
</el-form-item>
<el-form-item
label=
"包装要求备注"
v-if=
"[3,4].indexOf(+item.transportId) > -1"
>
<el-input
v-model=
"item.packageRemarks"
></el-input>
</el-form-item>
</el-card>
</
template
>
<el-card
class=
"mt-10"
>
<el-card
class=
"mt-10"
>
<div
class=
"card-title"
slot=
"header"
>
通用
</div>
<div
class=
"card-title"
slot=
"header"
>
通用
</div>
...
@@ -270,7 +279,7 @@
...
@@ -270,7 +279,7 @@
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"form.customsType"
form-type=
"radio"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"form.customsType"
form-type=
"radio"
/>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"预计结束时间"
>
<el-descriptions-item
label=
"预计结束时间"
>
<el-date-picker
v-model=
"form.stopTime"
placeholder=
"
"
></el-date-picker>
<el-date-picker
v-model=
"form.stopTime"
value-format=
"yyyy-MM-dd HH:mm:ss
"
></el-date-picker>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"是否控货"
>
<el-descriptions-item
label=
"是否控货"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.control"
form-type=
"radio"
/>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.control"
form-type=
"radio"
/>
...
@@ -282,9 +291,9 @@
...
@@ -282,9 +291,9 @@
<el-rate
v-model=
"form.importance"
></el-rate>
<el-rate
v-model=
"form.importance"
></el-rate>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"价格有效时间"
>
<el-descriptions-item
label=
"价格有效时间"
>
<el-date-picker
v-model=
"form.startTime"
placeholder=
""
></el-date-picker>
<el-date-picker
v-model=
"form.startTime"
placeholder=
""
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
-
-
<el-date-picker
v-model=
"form.endTime"
placeholder=
""
></el-date-picker>
<el-date-picker
v-model=
"form.endTime"
placeholder=
""
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"交货方式"
>
<el-descriptions-item
label=
"交货方式"
>
<!--
<!--
...
@@ -306,6 +315,9 @@
...
@@ -306,6 +315,9 @@
<el-descriptions-item
label=
"佣金类型"
:span=
"2"
>
<el-descriptions-item
label=
"佣金类型"
:span=
"2"
>
<dict-selector
:type=
"DICT_TYPE.COMMISSION_TYPE"
form-type=
"radio"
fomtter=
"number"
v-model=
"form.commissionType"
defaultable
/>
<dict-selector
:type=
"DICT_TYPE.COMMISSION_TYPE"
form-type=
"radio"
fomtter=
"number"
v-model=
"form.commissionType"
defaultable
/>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"备注"
:span=
"2"
>
<el-input
v-model=
"form.remarks"
type=
"textarea"
placeholder=
""
></el-input>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
</el-card>
</el-card>
...
@@ -341,23 +353,25 @@ export default {
...
@@ -341,23 +353,25 @@ export default {
dateRangeStartTime: [],
dateRangeStartTime: [],
dateRangeEndTime: [],
dateRangeEndTime: [],
dateRangeCreateTime: [], */
dateRangeCreateTime: [], */
productList
:[{
prodAttr
Ids
:[]}],
// 商品信息
productList
:[{
prodAttr
Arr
:[]}],
// 商品信息
productAttrList
:[],
// 商品属性
productAttrList
:[],
// 商品属性
channelList
:
[],
// 出货取到
channelList
:
[],
// 出货取到
routerList
:
[],
routerList
:
[],
tradeCityList
:
[],
tradeCityList
:
[],
consignor
:
{},
// 发货人
consignor
:
{},
// 发货人
consignee
:{},
// 收货人
consignee
:{},
// 收货人
transportList
:
[
{}
],
transportList
:
[],
// 表单参数
// 表单参数
form
:
{},
form
:
{
sendstatus
:
0
},
// 表单校验
// 表单校验
rules
:
{
rules
:
{
number
:
[{
required
:
true
,
message
:
"
报价单号不能为空
"
,
trigger
:
"
blur
"
}],
/*
number: [{ required: true, message: "报价单号不能为空", trigger: "blur" }],
consignorId: [{ required: true, message: "客户id,发货人不能为空", trigger: "blur" }],
consignorId: [{ required: true, message: "客户id,发货人不能为空", trigger: "blur" }],
consigneeId: [{ required: true, message: "收货人id不能为空", trigger: "blur" }],
consigneeId: [{ required: true, message: "收货人id不能为空", trigger: "blur" }],
sendstatus
:
[{
required
:
true
,
message
:
"
站内信状态,0未发送,1已发送不能为空
"
,
trigger
:
"
blur
"
}],
sendstatus: [{ required: true, message: "站内信状态,0未发送,1已发送不能为空", trigger: "blur" }],
*/
}
}
};
};
},
},
...
@@ -371,7 +385,52 @@ export default {
...
@@ -371,7 +385,52 @@ export default {
getDictData
(){
getDictData
(){
return
(
type
,
value
)
=>
getDictData
(
type
,
value
)
||
{}
return
(
type
,
value
)
=>
getDictData
(
type
,
value
)
||
{}
},
},
// 被启用的货运方式
enbedTransports
(){
let
transports
=
[]
this
.
transportList
.
forEach
(
item
=>
{
let
disabled
=
true
let
lineIds
=
[]
let
channelIds
=
[]
let
routers
=
[]
this
.
productList
.
forEach
(
prod
=>
{
if
(
prod
.
offerTransportId
==
item
.
transportId
){
disabled
=
false
routers
.
push
({
lineId
:
prod
.
lineId
,
channelId
:
prod
.
channelId
})
if
(
prod
.
lineId
)
lineIds
.
push
(
prod
.
lineId
)
if
(
prod
.
channelId
)
channelIds
.
push
(
prod
.
channelId
)
}
})
if
(
!
disabled
){
item
.
_disabled
=
disabled
item
.
routers
=
routers
item
.
lineIds
=
lineIds
.
join
(
'
,
'
)
item
.
channelIds
=
channelIds
.
join
(
'
,
'
)
transports
.
push
(
item
)
}
})
return
transports
},
// 根据线路id显示线路名称
getRouterNameById
(){
return
routerId
=>
{
let
router
=
this
.
routerList
.
find
(
item
=>
item
.
id
==
routerId
)
console
.
log
({
router
})
if
(
router
){
return
router
.
startTitleZh
+
'
>
'
+
router
.
destTitleZh
}
return
'
-
'
}
},
// 根据渠道id显示渠道名
getChannelNameById
(){
return
channelId
=>
{
return
this
.
channelList
.
find
(
item
=>
item
.
channelId
==
channelId
)
?.
nameZh
}
}
},
},
watch
:{
watch
:{
// 始发地
// 始发地
...
@@ -384,6 +443,7 @@ export default {
...
@@ -384,6 +443,7 @@ export default {
},
},
// 产品有变动则需要更新运输方式
// 产品有变动则需要更新运输方式
productList
(
val
){
productList
(
val
){
console
.
log
(
'
productList
'
,
val
)
let
transports
=
{}
let
transports
=
{}
this
.
productList
.
forEach
(
item
=>
{
this
.
productList
.
forEach
(
item
=>
{
/* if(!transports[item.offerTransportId]){
/* if(!transports[item.offerTransportId]){
...
@@ -410,19 +470,17 @@ export default {
...
@@ -410,19 +470,17 @@ export default {
})
})
return
routes
return
routes
},
},
// 被启用的货运方式
enbedTransports
(){
}
},
},
created
()
{
created
()
{
getProductAttrList
().
then
(
res
=>
this
.
productAttrList
=
res
.
data
)
getProductAttrList
().
then
(
res
=>
this
.
productAttrList
=
res
.
data
)
getChannelList
().
then
(
res
=>
this
.
channelList
=
res
.
data
)
getChannelList
().
then
(
res
=>
this
.
channelList
=
res
.
data
)
getTradeCityList
().
then
(
res
=>
this
.
tradeCityList
=
res
.
data
)
getTradeCityList
().
then
(
res
=>
this
.
tradeCityList
=
res
.
data
)
this
.
getD
I
ctDatas
(
this
.
DICT_TYPE
.
ECW_TRANSPORT_TYPE
).
forEach
(
res
=>
{
this
.
getD
i
ctDatas
(
this
.
DICT_TYPE
.
ECW_TRANSPORT_TYPE
).
forEach
(
res
=>
{
this
.
transportList
.
push
({
this
.
transportList
.
push
({
transportId
:
res
.
value
,
transportId
:
res
.
value
,
label
:
res
.
label
,
_disabled
:
true
// 默认禁用
_disabled
:
true
// 默认禁用
})
})
})
})
...
@@ -502,9 +560,16 @@ export default {
...
@@ -502,9 +560,16 @@ export default {
if
(
!
valid
)
{
if
(
!
valid
)
{
return
;
return
;
}
}
let
data
=
Object
.
assign
({},
this
.
form
,
{
transportCreateReqVOList
:
this
.
enbedTransports
,
prodCreateReqVOList
:
this
.
productList
})
data
.
prodCreateReqVOList
.
map
(
item
=>
{
item
.
prodAttrIds
=
item
.
prodAttrArr
.
join
(
'
,
'
)
})
// 修改的提交
// 修改的提交
if
(
this
.
form
.
offerId
!=
null
)
{
if
(
data
.
offerId
!=
null
)
{
updateOffer
(
this
.
form
).
then
(
response
=>
{
updateOffer
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
open
=
false
;
this
.
getList
();
this
.
getList
();
...
@@ -512,7 +577,7 @@ export default {
...
@@ -512,7 +577,7 @@ export default {
return
;
return
;
}
}
// 添加的提交
// 添加的提交
createOffer
(
this
.
form
).
then
(
response
=>
{
createOffer
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
open
=
false
;
this
.
getList
();
this
.
getList
();
...
...
src/views/ecw/offer/result.vue
0 → 100644
View file @
9f220cec
<
template
>
<div
class=
"app-container"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form-item
label=
"报价单号"
prop=
"offerId"
>
<div>
{{
form
.
offerId
}}
</div>
</el-form-item>
<el-form-item
label=
"结果"
prop=
"result"
>
<dict-selector
form-type=
"radio"
:type=
"DICT_TYPE.ECW_OFFER_RESULT"
v-model=
"form.result"
/>
</el-form-item>
<template
v-if=
"form.result==1"
>
<el-form-item
label=
"入仓类型"
prop=
"warehousingType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_WAREHOUSING_TYPE"
v-model=
"form.warehousingType"
/>
</el-form-item>
<el-form-item
label=
"关联订单"
prop=
"orderIds"
>
<el-input
v-model=
"form.orderIds"
style=
"width: 206px;"
></el-input>
</el-form-item>
</
template
>
<
template
v-else
>
<el-form-item
label=
"原因"
prop=
"reason"
>
<el-input
style=
"width: 500px;"
type=
"textarea"
placeholder=
""
v-model=
"form.reason"
></el-input>
</el-form-item>
</
template
>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{form.result==1?"确定并新增草稿订单":"提交"}}
</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
{
updateOfferResult
}
from
'
@/api/ecw/offer
'
;
import
CustomersSelector
from
'
@/components/CustomersSelector
'
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
:
{
"
offerId
"
:
undefined
,
"
orderIds
"
:
undefined
,
"
reason
"
:
undefined
,
"
result
"
:
1
,
"
warehousingType
"
:
undefined
},
// 表单校验
rules
:
{}
};
},
computed
:
{
},
watch
:
{
},
created
()
{
this
.
reset
()
},
methods
:
{
/** 表单重置 */
reset
()
{
this
.
form
=
{
"
offerId
"
:
undefined
,
"
orderIds
"
:
undefined
,
"
reason
"
:
undefined
,
"
result
"
:
1
,
"
warehousingType
"
:
undefined
};
this
.
resetForm
(
"
form
"
);
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
return
;
}
let
data
=
Object
.
assign
({},
this
.
form
)
updateOfferResult
(
data
).
then
((
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
$router
.
back
();
});
});
},
},
};
</
script
>
\ No newline at end of file
src/views/ecw/productPrice/edit.vue
View file @
9f220cec
...
@@ -302,7 +302,7 @@ export default {
...
@@ -302,7 +302,7 @@ export default {
}
}
// 添加的提交
// 添加的提交
data
.
productId
=
this
.
product
.
id
;
data
.
productId
=
this
.
product
.
id
;
data
.
lineChannelList
=
this
.
lineChannelList
data
.
lineChannelList
=
this
.
selectedRoutes
createProductPrice
(
data
).
then
(
response
=>
{
createProductPrice
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
请求成功
"
);
this
.
$modal
.
msgSuccess
(
"
请求成功
"
);
this
.
$router
.
replace
(
'
/product/product-price
'
)
this
.
$router
.
replace
(
'
/product/product-price
'
)
...
...
src/views/ecw/zhongPao/index.vue
View file @
9f220cec
...
@@ -9,12 +9,12 @@
...
@@ -9,12 +9,12 @@
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"始发地ID"
prop=
"departureId"
>
<!--
<el-form-item
label=
"始发地ID"
prop=
"departureId"
>
--
>
<el-input
v-model=
"queryParams.departureId"
placeholder=
"请输入始发地ID"
clearable
@
keyup.enter.native=
"handleQuery"
/
>
<!--
<el-input
v-model=
"queryParams.departureId"
placeholder=
"请输入始发地ID"
clearable
@
keyup.enter.native=
"handleQuery"
/>
--
>
</el-form-item
>
<!--
</el-form-item>
--
>
<el-form-item
label=
"目的地ID列表"
prop=
"objectiveIds"
>
<!--
<el-form-item
label=
"目的地ID列表"
prop=
"objectiveIds"
>
--
>
<el-input
v-model=
"queryParams.objectiveIds"
placeholder=
"请输入目的地ID列表"
clearable
@
keyup.enter.native=
"handleQuery"
/
>
<!--
<el-input
v-model=
"queryParams.objectiveIds"
placeholder=
"请输入目的地ID列表"
clearable
@
keyup.enter.native=
"handleQuery"
/>
--
>
</el-form-item
>
<!--
</el-form-item>
--
>
<el-form-item
label=
"创建时间"
>
<el-form-item
label=
"创建时间"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
...
@@ -40,25 +40,31 @@
...
@@ -40,25 +40,31 @@
<!-- 列表 -->
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"序号"
type=
"index"
width=
"50px"
/>
<el-table-column
label=
"重泡货类型"
align=
"center"
prop=
"type"
>
<el-table-column
label=
"重泡货类型"
align=
"center"
prop=
"type"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ZHONG_PAO_TYPE"
:value=
"scope.row.type"
/>
<dict-tag
:type=
"DICT_TYPE.ZHONG_PAO_TYPE"
:value=
"scope.row.type"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"临介值"
align=
"center"
prop=
"edge"
/>
<el-table-column
label=
"传输方式"
align=
"center"
prop=
"transportTypes"
>
<el-table-column
label=
"公式"
align=
"center"
prop=
"formulas"
/>
<el-table-column
label=
"传输方式ids"
align=
"center"
prop=
"transportTypes"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
v-for=
"item in scope.row.transportTypes.split(',')"
><dict-tag
:type=
"DICT_TYPE.TRANSPORT_TYPE"
:value=
"item"
/>
,
</span>
<span
v-for=
"item in scope.row.transportTypes.split(',')"
><dict-tag
:type=
"DICT_TYPE.TRANSPORT_TYPE"
:value=
"item"
/>
,
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"始发地ID"
align=
"center"
prop=
"departureId"
:formatter=
"departureFormatter"
/>
<el-table-column
label=
"始发地"
align=
"center"
prop=
"departureId"
:formatter=
"departureFormatter"
/>
<el-table-column
label=
"目的地ID列表"
align=
"center"
prop=
"objectiveIds"
:formatter=
"objectiveFormatter"
/>
<el-table-column
label=
"目的地"
align=
"center"
prop=
"objectiveIds"
:formatter=
"objectiveFormatter"
/>
<el-table-column
label=
"临介值标准"
align=
"center"
prop=
"edge"
/>
<el-table-column
label=
"计算公式"
align=
"center"
prop=
"formulas"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"状态"
align=
"center"
prop=
"transportTypes"
>
<
template
v-slot=
"scope"
>
<el-switch
v-model=
"scope.row.status"
@
change=
"handleStatusChange(scope.row)"
:active-value=
"0"
:inactive-value=
"1"
></el-switch>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
...
@@ -84,13 +90,13 @@
...
@@ -84,13 +90,13 @@
<el-form-item
label=
"传输方式"
prop=
"transportTypes"
>
<el-form-item
label=
"传输方式"
prop=
"transportTypes"
>
<dict-selector
:type=
"DICT_TYPE.TRANSPORT_TYPE"
v-model=
"form.transportTypes"
multiple
form-type=
"checkbox"
:filter=
"transportTypesFilter"
></dict-selector>
<dict-selector
:type=
"DICT_TYPE.TRANSPORT_TYPE"
v-model=
"form.transportTypes"
multiple
form-type=
"checkbox"
:filter=
"transportTypesFilter"
></dict-selector>
</el-form-item>
</el-form-item>
<el-form-item
label=
"始发地
ID
"
prop=
"departureId"
>
<el-form-item
label=
"始发地"
prop=
"departureId"
>
<el-select
v-model=
"form.departureId"
placeholder=
"请选择始发地"
>
<el-select
v-model=
"form.departureId"
placeholder=
"请选择始发地"
>
<el-option
label=
"全部"
:value=
"0"
></el-option>
<el-option
label=
"全部"
:value=
"0"
></el-option>
<el-option
v-for=
"(item) in warehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
<el-option
v-for=
"(item) in warehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"目的地
ID列表
"
prop=
"objectiveIds"
>
<el-form-item
label=
"目的地"
prop=
"objectiveIds"
>
<!-- <el-input v-model="form.objectiveIds" placeholder="请输入目的地ID列表" />-->
<!-- <el-input v-model="form.objectiveIds" placeholder="请输入目的地ID列表" />-->
<el-select
v-model=
"form.objectiveIds"
placeholder=
"请选择目的地"
multiple
>
<el-select
v-model=
"form.objectiveIds"
placeholder=
"请选择目的地"
multiple
>
<el-option
label=
"全部"
value=
"0"
></el-option>
<el-option
label=
"全部"
value=
"0"
></el-option>
...
@@ -124,6 +130,7 @@ import {parseTime} from "@/utils/ruoyi"
...
@@ -124,6 +130,7 @@ import {parseTime} from "@/utils/ruoyi"
import
DictSelector
from
"
@/components/DictSelector
"
import
DictSelector
from
"
@/components/DictSelector
"
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
{
CommonStatusEnum
}
from
'
@/utils/constants
'
export
default
{
export
default
{
name
:
"
ZhongPao
"
,
name
:
"
ZhongPao
"
,
...
@@ -177,6 +184,20 @@ export default {
...
@@ -177,6 +184,20 @@ export default {
})
})
},
},
methods
:
{
methods
:
{
handleStatusChange
(
row
){
let
text
=
row
.
status
===
CommonStatusEnum
.
ENABLE
?
"
启用
"
:
"
停用
"
;
this
.
$modal
.
confirm
(
'
确认要
'
+
text
+
'
吗?
'
).
then
(
function
()
{
return
updateZhongPao
({
id
:
row
.
id
,
status
:
row
.
status
})
}).
then
(()
=>
{
this
.
$modal
.
msgSuccess
(
text
+
"
成功
"
);
}).
catch
(
function
()
{
row
.
status
=
row
.
status
===
CommonStatusEnum
.
ENABLE
?
CommonStatusEnum
.
DISABLE
:
CommonStatusEnum
.
ENABLE
;
});
},
departureFormatter
(
row
,
column
,
cellValue
)
{
departureFormatter
(
row
,
column
,
cellValue
)
{
if
(
cellValue
===
0
)
return
'
全部
'
if
(
cellValue
===
0
)
return
'
全部
'
return
this
.
warehouseList
.
find
(
e
=>
e
.
id
===
cellValue
)?.
titleZh
return
this
.
warehouseList
.
find
(
e
=>
e
.
id
===
cellValue
)?.
titleZh
...
...
src/views/member/user/index.vue
View file @
9f220cec
...
@@ -4,31 +4,20 @@
...
@@ -4,31 +4,20 @@
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"关键字"
prop=
"nickname"
>
<el-form-item
label=
"关键字"
prop=
"nickname"
>
<el-input
v-model=
"queryParams.nickname"
placeholder=
"
请输入用户昵称
"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.nickname"
placeholder=
"
搜索昵称、姓名、手机、Email
"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
性别"
prop=
"avatar
"
>
<el-form-item
label=
"
成交"
prop=
"mobile
"
>
<el-input
v-model=
"queryParams.
avatar"
placeholder=
"请输入头像
"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.
mobile"
placeholder=
"请输入手机号
"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"成交"
prop=
"status"
>
<el-form-item
label=
"认证"
prop=
"password"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择状态"
clearable
size=
"small"
>
<el-input
v-model=
"queryParams.password"
placeholder=
"请输入密码"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"认证"
prop=
"status"
>
<el-form-item
label=
"审核状态"
prop=
"registerIp"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择状态"
clearable
size=
"small"
>
<el-input
v-model=
"queryParams.registerIp"
placeholder=
"请输入注册 IP"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select>
</el-form-item>
<el-form-item
label=
"审核状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择状态"
clearable
size=
"small"
>
<el-option
label=
"请选择字典生成"
value=
""
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button>
搜索
</el-button>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button>
批量导出
</el-button>
<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-item>
</el-form>
</el-form>
...
@@ -36,217 +25,199 @@
...
@@ -36,217 +25,199 @@
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['member:user:create']"
>
新增
v-hasPermi=
"['member:user:create']"
>
新增
</el-button>
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
:loading=
"exportLoading"
v-hasPermi=
"['member:user:export']"
>
导出
</el-button>
v-hasPermi=
"['member:user:export']"
>
导出
</el-button>
</el-col>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
</el-row>
<!-- 列表 -->
<!-- 列表 -->
<el-table
:data=
"list"
>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
<el-table-column
label=
"公司名称"
align=
"center"
prop=
"enterpriseName"
/>
type=
"selection"
<el-table-column
label=
"用户昵称"
align=
"center"
prop=
"nickname"
/>
width=
"55"
>
<el-table-column
label=
"真实姓名"
align=
"center"
prop=
"identityName"
/>
<el-table-column
label=
"手机号"
show-overflow-tooltip
align=
"center"
prop=
"mobile"
>
</el-table-column>
<el-table-column
label=
"成交"
align=
"center"
prop=
""
show-overflow-tooltip
/>
<el-table-column
label=
"认证"
align=
"center"
prop=
""
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"status"
/>
<el-table-column
label=
"身份证审核状态"
align=
"center"
prop=
"createTime"
width=
"180"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.AUDIT_STATUS"
:value=
"scope.row.identityAuditStatus"
></dict-tag>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"公司名称"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"营业执照审核状态"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"用户名称"
align=
"center"
prop=
"nickname"
/>
<
template
slot-scope=
"scope"
>
<el-table-column
label=
"真实姓名"
align=
"center"
prop=
"avatar"
/>
<dict-tag
:type=
"DICT_TYPE.AUDIT_STATUS"
:value=
"scope.row.enterpriseAuditStatus"
></dict-tag>
<el-table-column
label=
"手机号"
align=
"center"
prop=
"status"
/>
</
template
>
<el-table-column
label=
"成交"
align=
"center"
prop=
"mobile"
/>
<el-table-column
label=
"认证"
align=
"center"
prop=
"password"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"registerIp"
/>
<el-table-column
label=
"身份证审核状态"
align=
"center"
prop=
"loginIp"
/>
<el-table-column
label=
"营业执照审核状态"
align=
"center"
prop=
"loginDate"
width=
"180"
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
v-hasPermi=
"['member:user:update']"
>
修改
</
template
>
</el-button>
</el-table-column>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
width=
"200px"
>
v-hasPermi=
"['member:user:delete']"
>
删除
<
template
slot-scope=
"scope"
>
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"guarantee(scope.row)"
>
保函/证书
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"operationLogFn(scope.row)"
>
操作日志
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"identityFn(scope.row , '1')"
>
身份证
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"identityFn(scope.row, '2')"
>
营业执照
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<!-- 分页组件 -->
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
@
pagination=
"getList"
/>
<!-- 操作日志 -->
<el-dialog
title=
"操作日志"
:visible.sync=
"operationShow"
width=
"70%"
>
<div>
<el-table>
<el-table-column
label=
"标题"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"操作内容"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"操作人"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"操作时间"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"操作ip"
align=
"center"
prop=
"id"
/>
</el-table>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"operationShow = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"operationShow = false"
>
确 定
</el-button>
</span>
</el-dialog>
<!--保函,证书 -->
<el-dialog
<el-dialog
title=
"保函/证书"
title=
"保函/证书"
:visible.sync=
"certificateShow"
:visible.sync=
"guaranteeShow"
:before-close=
"()=>{guaranteeUrl = ''; guaranteeShow = false;}"
width=
"50%"
>
width=
"50%"
>
<div>
<el-form>
<el-row
:gutter=
"10"
>
<el-form-item
label=
"保函/证书"
>
<el-col
:span=
"6"
>
<el-upload
<el-row
:gutter=
"20"
type=
"flex"
justify=
"center"
>
class=
"upload-demo"
<el-col
:span=
"12"
><el-input
v-model=
"guaranteeUrl"
></el-input></el-col>
action=
"https://jsonplaceholder.typicode.com/posts/"
<el-col
:span=
"4"
><div
style=
"height: 45px;overflow: hidden;"
>
multiple
<file-upload
v-model=
"guaranteeUrl"
:fileType=
"['png', 'jpg', 'jpeg','pdf']"
:limit=
"1"
:isShowTip=
"false"
></file-upload>
:limit=
"3"
>
</div></el-col>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
<el-col
:span=
"6"
>
<div
slot=
"tip"
class=
"el-upload__tip"
>
可上传图片,pdf文档
</div>
<div>
可上传图片,pdf文档
</div>
</el-upload></el-col>
</el-col>
<el-col
:span=
"6"
><el-button>
保存
</el-button></el-col>
</el-row>
</el-row>
</el-form-item>
</div>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<div
style=
"text-align: center;"
><el-button
@
click=
"setGuarantee"
>
保 存
</el-button></div>
<el-button
@
click=
"certificateShow = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"certificateShow = false"
>
确 定
</el-button>
</span>
</el-dialog>
</el-dialog>
<el-dialog
<el-dialog
title=
"
认证
"
title=
"
操作日志
"
:visible.sync=
"
attestation
Show"
:visible.sync=
"
operationLog
Show"
width=
"50%"
>
width=
"50%"
>
<div>
<el-table
:data=
"operationLogList"
>
<div>
<el-table-column
label=
"标题"
prop=
"title"
></el-table-column>
<el-menu
class=
"el-menu-demo"
mode=
"horizontal"
:default-active=
"identitySwitching"
@
select=
"handleSelect"
>
<el-table-column
label=
"操作内容"
prop=
"content"
></el-table-column>
<el-menu-item
index=
"1"
>
身份证
</el-menu-item>
<el-table-column
label=
"操作人"
prop=
"userId"
></el-table-column>
<el-menu-item
index=
"2"
>
营业执照
</el-menu-item>
<el-table-column
label=
"操作时间"
>
</el-menu>
<
template
v-slot:default =
"scope"
>
</div>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
<div
class=
"authenticationForm"
v-if=
"identitySwitching == 1"
>
</
template
>
<el-form
label-position=
"left"
label-width=
"100px"
>
</el-table-column>
<el-form-item
label=
"姓名"
>
<el-table-column
label=
"操作ip"
prop=
"ip"
></el-table-column>
<el-input
style=
"width: 200px"
></el-input>
</el-table>
</el-form-item>
<el-form-item
label=
"证件类型"
>
<dict-selector
:type=
"DICT_TYPE.CERTIFICATE_TYPE"
placeholder=
"请选择证件类型"
></dict-selector>
</el-form-item>
<el-form-item
label=
"证件号码"
>
<el-input
style=
"width: 200px;"
></el-input>
</el-form-item>
<el-form-item
label=
"证件正面照"
>
<el-row>
<el-col
:span=
"10"
>
<el-input
style=
"width: 200px;"
></el-input>
</el-col>
<el-col
:span=
"6"
>
<el-upload>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-col>
<el-col
:span=
"6"
>
<el-image></el-image>
</el-col>
</el-row>
</el-form-item>
<el-form-item
label=
"证件背面照"
>
<el-row>
<el-col
:span=
"10"
>
<el-input
style=
"width: 200px;"
></el-input>
</el-col>
<el-col
:span=
"6"
>
<el-upload>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-col>
<el-col
:span=
"6"
>
<el-image></el-image>
</el-col>
</el-row>
</el-form-item>
<el-form-item
label=
"审核状态"
></el-form-item>
<el-form-item
label=
"审核时间"
></el-form-item>
<el-form-item
label=
"审核备注"
></el-form-item>
</el-form>
</div>
<div
class=
"authenticationForm"
v-else
>
<el-form
label-position=
"left"
label-width=
"100px"
>
<el-form-item
label=
"企业名称"
>
<el-input
style=
"width: 200px"
></el-input>
</el-form-item>
<el-form-item
label=
"企业法人"
>
<el-input
style=
"width: 200px;"
></el-input>
</el-form-item>
<el-form-item
label=
"证件号码"
>
<el-input
style=
"width: 200px;"
></el-input>
</el-form-item>
<el-form-item
label=
"证件正面照"
>
<el-row>
<el-col
:span=
"10"
>
<el-input
style=
"width: 200px;"
></el-input>
</el-col>
<el-col
:span=
"6"
>
<el-upload>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-col>
<el-col
:span=
"6"
>
<el-image></el-image>
</el-col>
</el-row>
</el-form-item>
<el-form-item
label=
"证件背面照"
>
<el-row>
<el-col
:span=
"10"
>
<el-input
style=
"width: 200px;"
></el-input>
</el-col>
<el-col
:span=
"6"
>
<el-upload>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</el-col>
<el-col
:span=
"6"
>
<el-image></el-image>
</el-col>
</el-row>
</el-form-item>
<el-form-item
label=
"审核状态"
></el-form-item>
<el-form-item
label=
"审核时间"
></el-form-item>
<el-form-item
label=
"审核备注"
></el-form-item>
</el-form>
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"certificateShow = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"certificateShow = false"
>
确 定
</el-button>
</span>
</el-dialog>
</el-dialog>
<el-dialog
title=
"认证"
:visible.sync=
"attestationShow"
width=
"80%"
>
<div>
<el-tabs
v-model=
"activeName"
type=
"border-card"
>
<el-tab-pane
label=
"身份证"
name=
"1"
>
<div
style=
"width: 500px;padding:0 40px;box-sizing: border-box;"
>
<el-form
label-position=
"left"
label-width=
"100px"
>
<el-form-item
label=
"姓名"
>
<el-input></el-input>
</el-form-item>
<el-form-item
label=
"证件类型"
>
<el-input></el-input>
</el-form-item>
<el-form-item
label=
"证件号码"
>
<el-input></el-input>
</el-form-item>
<el-form-item
label=
"证件正面照"
>
<div>
<el-input
style=
"margin-bottom: 20px"
></el-input>
<ImageUpload
:isShowTip=
"false"
:limit=
"1"
></ImageUpload>
</div>
</el-form-item>
<el-form-item
label=
"证件背面照"
>
<div>
<el-input
style=
"margin-bottom: 20px"
></el-input>
<ImageUpload
:isShowTip=
"false"
:limit=
"1"
></ImageUpload>
</div>
</el-form-item>
<el-form-item
label=
"审核状态"
>
{{}}
</el-form-item>
<el-form-item
label=
"审核时间"
>
{{}}
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane
label=
"营业执照"
name=
"2"
>
<div
style=
"width: 500px;padding:0 40px;box-sizing: border-box;"
>
<el-form
label-position=
"left"
label-width=
"100px"
>
<el-form-item
label=
"企业名称"
>
<el-input></el-input>
</el-form-item>
<el-form-item
label=
"企业法人"
>
<el-input></el-input>
</el-form-item>
<el-form-item
label=
"证件号码"
>
<el-input></el-input>
</el-form-item>
<el-form-item
label=
"证件照"
>
<div>
<el-input
style=
"margin-bottom: 20px"
></el-input>
<ImageUpload
:isShowTip=
"false"
:limit=
"1"
></ImageUpload>
</div>
</el-form-item>
<el-form-item
label=
"附件"
>
<el-input></el-input>
</el-form-item>
<el-form-item
label=
"审核状态"
>
{{}}
</el-form-item>
<el-form-item
label=
"审核时间"
>
{{}}
</el-form-item>
</el-form>
</div>
</el-tab-pane>
</el-tabs>
<div
style=
"text-align: center;margin-top: 20px;"
>
<el-button
type=
"primary"
>
提交审核
</el-button>
<el-button>
取 消
</el-button>
</div>
</div>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
createUser
,
updateUser
,
deleteUser
,
getUser
,
getUserPage
,
exportUserExcel
}
from
"
@/api/member/user
"
;
import
{
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
;
createUser
,
updateUser
,
deleteUser
,
getUser
,
getUserPage
,
exportUserExcel
,
operationLogApi
,
seTupdateBackletter
,
memberGetAuthIdcardInfo
}
from
"
@/api/member/user
"
;
import
{
DICT_TYPE
,
getDictDatas
}
from
"
@/utils/dict
"
;
import
FileUpload
from
"
@/components/FileUpload
"
import
ImageUpload
from
"
@/components/ImageUpload
"
;
import
uploadImage
from
"
@/components/UploadImage
"
;
let
stateTitle
=
{
0
:
'
未审核
'
,
1
:
'
审核中
'
,
2
:
'
审核通过
'
,
3
:
'
审核不通过
'
}
export
default
{
export
default
{
name
:
"
User
"
,
name
:
"
User
"
,
components
:
{},
components
:
{
FileUpload
,
ImageUpload
,
uploadImage
},
data
()
{
data
()
{
return
{
return
{
identitySwitching
:
"
1
"
,
guaranteeUrl
:
undefined
,
DICT_TYPE
,
DICT_TYPE
,
operationShow
:
false
,
//操作日志
// audit_status
certificateShow
:
false
,
//保函证书,
activeName
:
"
1
"
,
attestationShow
:
false
,
//认证
// 遮罩层
loading
:
true
,
// 导出遮罩层
// 导出遮罩层
exportLoading
:
false
,
exportLoading
:
false
,
// 显示搜索条件
// 显示搜索条件
...
@@ -265,25 +236,33 @@ export default {
...
@@ -265,25 +236,33 @@ export default {
queryParams
:
{
queryParams
:
{
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
,
nickname
:
null
,
isDeal
:
undefined
,
// 是否成交
avatar
:
null
,
searchKey
:
undefined
,
//关键字
status
:
null
,
auditStatus
:
undefined
,
//审核状态
mobile
:
null
,
authType
:
undefined
,
//关键字
password
:
null
,
registerIp
:
null
,
loginIp
:
null
,
},
},
stateTitle
,
// 表单参数
// 表单参数
form
:
{},
form
:
{},
// 表单校验
// 表单校验
rules
:
{
rules
:
{
nickname
:
[{
required
:
true
,
message
:
"
用户昵称不能为空
"
,
trigger
:
"
blur
"
}],
nickname
:
[{
required
:
true
,
message
:
"
用户昵称不能为空
"
,
trigger
:
"
blur
"
}],
avatar
:
[{
required
:
true
,
message
:
"
头像不能为空
"
,
trigger
:
"
blur
"
}],
avatar
:
[{
required
:
true
,
message
:
"
头像不能为空
"
,
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
"
状态不能为空
"
,
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
"
状态不能为空
"
,
trigger
:
"
blur
"
}],
mobile
:
[{
required
:
true
,
message
:
"
手机号不能为空
"
,
trigger
:
"
blur
"
}],
mobile
:
[{
required
:
true
,
message
:
"
手机号不能为空
"
,
trigger
:
"
blur
"
}],
password
:
[{
required
:
true
,
message
:
"
密码不能为空
"
,
trigger
:
"
blur
"
}],
password
:
[{
required
:
true
,
message
:
"
密码不能为空
"
,
trigger
:
"
blur
"
}],
registerIp
:
[{
required
:
true
,
message
:
"
注册 IP不能为空
"
,
trigger
:
"
blur
"
}],
registerIp
:
[{
required
:
true
,
message
:
"
注册 IP不能为空
"
,
trigger
:
"
blur
"
}],
}
},
publicObj
:
undefined
,
operationLogShow
:
false
,
guaranteeShow
:
false
,
operationLogFrom
:{
page
:
1
,
row
:
10
,
userId
:
undefined
},
operationLogList
:[],
attestationShow
:
false
};
};
},
},
created
()
{
created
()
{
...
@@ -292,6 +271,7 @@ export default {
...
@@ -292,6 +271,7 @@ export default {
methods
:
{
methods
:
{
/** 查询列表 */
/** 查询列表 */
getList
()
{
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeLoginDate
,
'
loginDate
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeLoginDate
,
'
loginDate
'
);
...
@@ -300,6 +280,7 @@ export default {
...
@@ -300,6 +280,7 @@ export default {
getUserPage
(
params
).
then
(
response
=>
{
getUserPage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
});
},
},
/** 取消按钮 */
/** 取消按钮 */
...
@@ -340,15 +321,36 @@ export default {
...
@@ -340,15 +321,36 @@ export default {
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"
添加用户
"
;
this
.
title
=
"
添加用户
"
;
},
},
/** 修改按钮操作 */
// 保函证书
handleUpdate
(
row
)
{
guarantee
(
row
)
{
this
.
reset
();
this
.
publicObj
=
row
;
const
id
=
row
.
id
;
this
.
guaranteeShow
=
true
;
getUser
(
id
).
then
(
response
=>
{
},
this
.
form
=
response
.
data
;
// 操作日志
this
.
open
=
true
;
operationLogFn
(
row
){
this
.
title
=
"
修改用户
"
;
this
.
publicObj
=
row
;
});
this
.
operationLogFrom
.
page
=
1
;
this
.
operationLogFrom
.
userId
=
row
.
id
this
.
operationLogShow
=
true
;
this
.
operationLogList
=
[];
this
.
getOperationLogList
();
},
getOperationLogList
(){
operationLogApi
(
this
.
operationLogFrom
).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
operationLogList
=
r
.
data
.
list
}
})
},
setGuarantee
(){
seTupdateBackletter
({
userId
:
this
.
publicObj
.
id
,
backLetter
:
this
.
guaranteeUrl
}).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
guaranteeShow
=
false
;
this
.
guaranteeUrl
=
true
;
this
.
$message
.
success
(
'
保存成功
'
);
}
})
},
},
/** 提交按钮 */
/** 提交按钮 */
submitForm
()
{
submitForm
()
{
...
@@ -376,13 +378,12 @@ export default {
...
@@ -376,13 +378,12 @@ export default {
/** 删除按钮操作 */
/** 删除按钮操作 */
handleDelete
(
row
)
{
handleDelete
(
row
)
{
const
id
=
row
.
id
;
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除用户编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
this
.
$modal
.
confirm
(
'
是否确认删除用户编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteUser
(
id
);
return
deleteUser
(
id
);
}).
then
(()
=>
{
}).
then
(()
=>
{
this
.
getList
();
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{
}).
catch
(()
=>
{});
});
},
},
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
...
@@ -394,23 +395,26 @@ export default {
...
@@ -394,23 +395,26 @@ export default {
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有用户数据项?
'
).
then
(()
=>
{
this
.
$modal
.
confirm
(
'
是否确认导出所有用户数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
this
.
exportLoading
=
true
;
return
exportUserExcel
(
params
);
return
exportUserExcel
(
params
);
}).
then
(
response
=>
{
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{
}).
catch
(()
=>
{});
});
},
identityFn
(
row
,
val
){
this
.
attestationShow
=
true
;
this
.
activeName
=
val
;
this
.
publicObj
=
row
;
if
(
val
==
1
){
this
.
getIdentityDetails
();
}
},
},
handleSelect
(
val
){
getIdentityDetails
(){
console
.
log
(
val
)
memberGetAuthIdcardInfo
({
userId
:
this
.
publicObj
.
id
}).
then
(
r
=>
{
this
.
identitySwitching
=
val
console
.
log
(
r
);
})
}
}
}
}
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
.authenticationForm
{
padding-top
:
20px
;
}
</
style
>
src/views/system/helpDoc/index.vue
View file @
9f220cec
...
@@ -79,10 +79,10 @@
...
@@ -79,10 +79,10 @@
<el-input
v-model=
"form.titleEn"
placeholder=
"请输入标题英文"
/>
<el-input
v-model=
"form.titleEn"
placeholder=
"请输入标题英文"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"内容中文"
prop=
"contentZh"
>
<el-form-item
label=
"内容中文"
prop=
"contentZh"
>
<editor
v-model=
"form.contentZh"
:min-height=
"192"
/>
<editor
v-model=
"form.contentZh"
:min-height=
"192"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"内容英语"
prop=
"contentEn"
>
<el-form-item
label=
"内容英语"
prop=
"contentEn"
>
<editor
v-model=
"form.contentZh
"
:min-height=
"192"
/>
<editor
v-model=
"form.contentEn
"
:min-height=
"192"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio-group
v-model=
"form.status"
>
...
...
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