Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
薪
薪瑞通-前端
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
许珑标
薪瑞通-前端
Commits
62c4d02b
Commit
62c4d02b
authored
Jun 06, 2025
by
wanghf
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch '云效/feat/test-seal-rayin' into test
parents
849e1af9
51d2103f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
142 additions
and
34 deletions
+142
-34
src/views/business/onlineTaskInfo/index.vue
src/views/business/onlineTaskInfo/index.vue
+142
-34
No files found.
src/views/business/onlineTaskInfo/index.vue
View file @
62c4d02b
...
...
@@ -59,7 +59,7 @@
<el-table
:data=
"onlineTaskInfoList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"任务编号"
align=
"center"
prop=
"taskNo"
/>
<el-table-column
label=
"任务编号"
align=
"center"
prop=
"taskNo"
/>
<el-table-column
label=
"任务名称"
align=
"center"
prop=
"taskName"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"status"
>
<template
slot-scope=
"scope"
>
...
...
@@ -69,20 +69,30 @@
<el-table-column
label=
"所属行业"
align=
"center"
prop=
"industry"
/>
<el-table-column
label=
"发起企业名称"
align=
"center"
prop=
"companyName"
/>
<el-table-column
label=
"代发企业名称"
align=
"center"
prop=
"taxCompanyName"
/>
<el-table-column
label=
"任务金额"
align=
"center"
prop=
"amount"
/>
<el-table-column
label=
"税率"
align=
"center"
prop=
"taxRate"
/>
<el-table-column
label=
"税费"
align=
"center"
prop=
"taxAmount"
/>
<!-- <el-table-column label="结算金额" align="center" prop="amount"/>-->
<el-table-column
label=
"所在区域"
align=
"center"
prop=
"area"
/>
<!-- <el-table-column label="详细地址" align="center" prop="address" />-->
<el-table-column
label=
"服务时间"
align=
"center"
prop=
"serviceTime"
/>
<el-table-column
label=
"零工人数"
align=
"center"
prop=
"needNum"
/>
<!-- <el-table-column label="计费说明" align="center" prop="billDesc" />-->
<!-- <el-table-column label="计费
详情" align="center" prop="billDetail" />-->
<!-- <el-table-column label="计费说明" align="center" prop="billDesc" />-->
<!-- <el-table-column label="任务
详情" align="center" prop="billDetail" />-->
<el-table-column
label=
"发布时间"
align=
"center"
prop=
"releaseTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
releas
eTime
)
}}
</span>
<span>
{{
parseTime
(
scope
.
row
.
creat
eTime
)
}}
</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-view"
@
click=
"prviewPdfUrl(scope.row)"
>
查看合同
</el-button>
<el-button
v-if=
"scope.row.status == 0 && checkPermi(['business:onlineTaskInfo:recived'])"
size=
"mini"
type=
"text"
icon=
"el-icon-s-order"
@
click=
"setTaxRate(scope.row)"
>
设置税率
</el-button>
<el-button
v-if=
"scope.row.status == 1 && checkPermi(['business:onlineTaskInfo:add'])"
size=
"mini"
type=
"text"
icon=
"el-icon-s-check"
@
click=
"sealContract(scope.row)"
>
确认任务
</el-button>
<el-button
v-if=
"scope.row.status == 10 || scope.row.status == 11 || scope.row.status == 21"
size=
"mini"
type=
"text"
icon=
"el-icon-view"
@
click=
"prviewPdfUrl(scope.row)"
>
查看合同
</el-button>
<el-button
v-if=
"scope.row.status == 10 && checkPermi(['business:onlineTaskInfo:release'])"
size=
"mini"
type=
"text"
icon=
"el-icon-s-promotion"
@
click=
"handleRelease(scope.row)"
>
发布任务
</el-button>
<el-button
v-if=
"scope.row.status == 11 && checkPermi(['business:onlineTaskInfo:recived'])"
size=
"mini"
...
...
@@ -125,8 +135,7 @@
</el-form-item>
<el-form-item
label=
"发起企业"
prop=
"companyId"
>
<el-select
v-model=
"form.companyId"
placeholder=
"请选择发起企业"
@
change=
"applyCompanyChange"
>
<el-option
v-for=
"item in applyCompanyList"
:key=
"item.id"
:label=
"item.companyName"
:value=
"item.id"
></el-option>
<el-option
v-for=
"item in applyCompanyList"
:key=
"item.id"
:label=
"item.companyName"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"任务名称"
prop=
"taskName"
>
...
...
@@ -137,35 +146,28 @@
</el-form-item>
<el-form-item
label=
"代发企业"
prop=
"taxCompanyId"
>
<el-select
v-model=
"form.taxCompanyId"
placeholder=
"请选择代发企业"
clearable
@
change=
"taxCompanyChange"
>
<el-option
v-for=
"item in taxCompanyList"
:key=
"item.id"
:label=
"item.taxUnitName"
:value=
"item.id"
></el-option>
<el-option
v-for=
"item in taxCompanyList"
:key=
"item.id"
:label=
"item.taxUnitName"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="地区code" prop="araeCode">-->
<!-- <el-input v-model="form.araeCode" placeholder="请输入地区code" />-->
<!-- </el-form-item>-->
<el-form-item
label=
"所在区域"
prop=
"area"
>
<el-cascader
style=
"width: 100%;"
size=
"small"
:options=
"options"
v-model=
"form.selectedOptions"
@
change=
"handleChange"
/>
</el-form-item>
<!-- <el-form-item label="所在区域" prop="area">
<el-input v-model="form.area" placeholder="请输入所在区域" />
<el-form-item
label=
"任务金额"
prop=
"amount"
>
<el-input-number
v-model=
"form.amount"
:precision=
"2"
:step=
"1"
:min=
"1"
:max=
"999999999999.99"
placeholder=
"请输入任务金额"
style=
"width: 30%;"
/>
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-model="form.address" placeholder="请输入详细地址" />
</el-form-item>-->
<el-form-item
label=
"服务时间"
prop=
"serviceTime"
>
<el-date-picker
clearable
placeholder=
"请选择服务时间"
v-model=
"form.serviceTimeArr"
@
change=
"changeServiceTime"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"所在区域"
prop=
"area"
>
<el-cascader
style=
"width: 100%;"
size=
"small"
:options=
"options"
v-model=
"form.selectedOptions"
@
change=
"handleChange"
/>
</el-form-item>
<el-form-item
label=
"零工人数"
prop=
"needNum"
>
<el-input
v-model=
"form.needNum"
type=
"number"
placeholder=
"请输入零工人数"
/>
</el-form-item>
<el-form-item
label=
"计费说明"
prop=
"billDesc"
>
<el-input
v-model=
"form.billDesc"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
<el-form-item
label=
"
计费
详情"
prop=
"billDetail"
>
<el-form-item
label=
"
任务
详情"
prop=
"billDetail"
>
<el-input
v-model=
"form.billDetail"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
<el-form-item
label=
"任务备注"
prop=
"remark"
>
...
...
@@ -173,7 +175,8 @@
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center;"
>
<el-button
type=
"primary"
@
click=
"handleNext(10)"
>
下一步
</el-button>
<el-button
type=
"primary"
@
click=
"handleNext(0)"
>
保存
</el-button>
<!-- <el-button type="primary" @click="handleNext(10)">下一步</el-button>-->
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</div>
...
...
@@ -182,7 +185,7 @@
<iframe
:src=
this.contractUrl
style=
"width:100%;height:600px;"
frameborder=
"0"
></iframe>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center;"
>
<el-button
type=
"primary"
@
click=
"handlePrev"
>
上一步
</el-button
>
<!-- <el-button type="primary" @click="handlePrev">上一步</el-button>--
>
<el-button
type=
"primary"
@
click.native=
"confirmSealContractFile"
>
确认签订合同
</el-button>
</div>
</div>
...
...
@@ -224,6 +227,37 @@
<el-button
type=
"primary"
@
click.native=
"handleRecived"
>
接收任务并签订合同
</el-button>
</div>
</el-dialog>
<!-- 设置费率 -->
<el-dialog
title=
"设置税率"
:visible.sync=
"taxRateVisible"
width=
"600px"
append-to-body
center
>
<el-form
ref=
"formTaxRate"
:model=
"formTaxRate"
:rules=
"rulesTaxRate"
label-width=
"120px"
>
<el-form-item
label=
"任务编号"
prop=
"taskNo"
>
<el-input
v-model=
"formTaxRate.taskNo"
placeholder=
"请输入任务编号"
disabled
/>
</el-form-item>
<el-form-item
label=
"任务名称"
prop=
"taskName"
>
<el-input
v-model=
"formTaxRate.taskName"
placeholder=
"请输入任务名称"
disabled
/>
</el-form-item>
<el-form-item
label=
"发起企业"
prop=
"companyName"
>
<el-input
v-model=
"formTaxRate.companyName"
placeholder=
"请输入发起企业"
disabled
/>
</el-form-item>
<el-form-item
label=
"代发企业"
prop=
"taxCompanyName"
>
<el-input
v-model=
"formTaxRate.taxCompanyName"
placeholder=
"请输入代发企业"
disabled
/>
</el-form-item>
<el-form-item
label=
"任务金额"
prop=
"amount"
>
<el-input-number
v-model=
"formTaxRate.amount"
placeholder=
"请输入任务金额"
style=
"width: 100%;"
/>
</el-form-item>
<el-form-item
label=
"税率"
prop=
"taxRate"
>
<el-input-number
v-model=
"formTaxRate.taxRate"
placeholder=
"请输入税率"
style=
"width: 100%;"
:precision=
"6"
:step=
"0.001"
:min=
"0"
:max=
"1"
@
change=
"calcTaxAmount"
/>
</el-form-item>
<el-form-item
label=
"税费"
prop=
"taxAmount"
>
<el-input-number
v-model=
"formTaxRate.taxAmount"
placeholder=
"请输入税费"
disabled
style=
"width: 100%;"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center;"
>
<el-button
type=
"primary"
@
click.native=
"saveTaxRate(1)"
>
保存税率
</el-button>
</div>
</el-dialog>
</div>
</template>
...
...
@@ -290,6 +324,7 @@ export default {
title
:
""
,
// 是否显示弹出层
open
:
false
,
taxRateVisible
:
false
,
// 发布时间时间范围
daterangeReleaseTime
:
[],
// 查询参数
...
...
@@ -311,6 +346,17 @@ export default {
form
:
{
taxCompanyId
:
null
,
},
formTaxRate
:
{
},
rulesTaxRate
:
{
taxRate
:
[
{
required
:
true
,
message
:
"
税率不能为空
"
,
trigger
:
[
"
blur
"
,
"
change
"
]
}
],
taxAmount
:
[
{
required
:
true
,
message
:
"
税额不能为空
"
,
trigger
:
[
"
blur
"
,
"
change
"
]
}
]
},
// 表单校验
rules
:
{
id
:
[
...
...
@@ -381,7 +427,7 @@ export default {
{
required
:
true
,
message
:
"
计费说明不能为空
"
,
trigger
:
[
"
blur
"
,
"
change
"
]
}
],
billDetail
:
[
{
required
:
true
,
message
:
"
计费
详情不能为空
"
,
trigger
:
[
"
blur
"
,
"
change
"
]
}
{
required
:
true
,
message
:
"
任务
详情不能为空
"
,
trigger
:
[
"
blur
"
,
"
change
"
]
}
],
reason
:
[
{
required
:
true
,
message
:
"
拒绝原因不能为空
"
,
trigger
:
[
"
blur
"
,
"
change
"
]
}
...
...
@@ -401,6 +447,9 @@ export default {
releaseTime
:
[
{
required
:
true
,
message
:
"
发布时间不能为空
"
,
trigger
:
[
"
blur
"
,
"
change
"
]
}
],
amount
:
[
{
required
:
true
,
message
:
"
任务金额不能为空
"
,
trigger
:
[
"
blur
"
,
"
change
"
]
}
]
}
};
},
...
...
@@ -535,6 +584,22 @@ export default {
this
.
open
=
true
;
this
.
title
=
"
添加线上任务信息
"
;
},
/** 确认任务合同 */
sealContract
(
row
)
{
getOnlineTaskInfo
(
row
.
id
).
then
(
async
(
response
)
=>
{
if
(
response
.
code
==
200
)
{
this
.
onlineTaskId
=
row
.
id
;
this
.
form
=
response
.
data
;
this
.
contractUrl
=
response
.
data
.
contractUrl
;
this
.
active
=
2
;
this
.
open
=
true
;
this
.
title
=
"
确认任务合同
"
;
this
.
$forceUpdate
();
}
else
{
this
.
$modal
.
msgError
(
response
.
message
);
}
});
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
...
...
@@ -645,10 +710,12 @@ export default {
this
.
form
.
status
=
status
;
addOnlineTaskInfoFirst
(
this
.
form
).
then
(
response
=>
{
if
(
response
.
code
==
200
)
{
this
.
contractUrl
=
response
.
data
.
contractUrl
;
this
.
form
=
response
.
data
;
this
.
onlineTaskId
=
response
.
data
.
id
;
this
.
active
=
2
;
// this.contractUrl = response.data.contractUrl;
// this.form = response.data;
// this.onlineTaskId = response.data.id;
// this.active = 2;
this
.
open
=
false
;
this
.
getList
();
}
});
}
...
...
@@ -748,10 +815,10 @@ export default {
const
year
=
now
.
getFullYear
();
const
month
=
String
(
now
.
getMonth
()
+
1
).
padStart
(
2
,
'
0
'
);
// 补零
const
date
=
String
(
now
.
getDate
()).
padStart
(
2
,
'
0
'
);
//
const hours = String(now.getHours()).padStart(2, '0');
//
const minutes = String(now.getMinutes()).padStart(2, '0');
//
const seconds = String(now.getSeconds()).padStart(2, '0');
return
`
${
year
}${
month
}${
date
}
`
;
const
hours
=
String
(
now
.
getHours
()).
padStart
(
2
,
'
0
'
);
const
minutes
=
String
(
now
.
getMinutes
()).
padStart
(
2
,
'
0
'
);
const
seconds
=
String
(
now
.
getSeconds
()).
padStart
(
2
,
'
0
'
);
return
`
${
year
}${
month
}${
date
}
${
hours
}${
minutes
}${
seconds
}
`
;
},
confirmSealContractFile
()
{
// TODO 确认框
...
...
@@ -779,6 +846,47 @@ export default {
// // 用户取消操作
// this.$modal.msgError("已取消签订合同");
// });
},
//设置费率
setTaxRate
(
row
)
{
this
.
$modal
.
loading
(
"
正在获取任务信息,请稍候...
"
);
getOnlineTaskInfo
(
row
.
id
).
then
((
response
)
=>
{
if
(
response
.
code
==
200
)
{
this
.
formTaxRate
=
response
.
data
;
this
.
title
=
"
确认任务合同
"
;
this
.
taxRateVisible
=
true
;
this
.
$forceUpdate
();
}
else
{
this
.
$modal
.
msgError
(
"
获取任务信息失败:
"
+
(
response
.
msg
||
"
未知错误
"
));
}
}).
finally
(()
=>
{
this
.
$modal
.
closeLoading
()
});
},
//保存费率
saveTaxRate
(
status
)
{
console
.
log
(
this
.
formTaxRate
)
this
.
$refs
[
"
formTaxRate
"
].
validate
(
valid
=>
{
if
(
valid
)
{
this
.
formTaxRate
.
status
=
status
;
addOnlineTaskInfoFirst
(
this
.
formTaxRate
).
then
(
response
=>
{
if
(
response
.
code
==
200
)
{
this
.
taxRateVisible
=
false
;
this
.
getList
();
}
});
}
});
},
//计算税额 保留两位小数
calcTaxAmount
()
{
const
taxRate
=
parseFloat
(
this
.
formTaxRate
.
taxRate
);
const
amount
=
parseFloat
(
this
.
formTaxRate
.
amount
);
console
.
log
(
taxRate
,
amount
)
if
(
!
isNaN
(
taxRate
)
&&
!
isNaN
(
amount
))
{
const
taxAmount
=
(
taxRate
*
amount
).
toFixed
(
2
);
this
.
formTaxRate
.
taxAmount
=
taxAmount
;
}
}
}
};
...
...
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