first commit
This commit is contained in:
3173
src/views/mission/mission.vue
Normal file
3173
src/views/mission/mission.vue
Normal file
File diff suppressed because it is too large
Load Diff
256
src/views/mission/missionComplain.vue
Normal file
256
src/views/mission/missionComplain.vue
Normal file
@@ -0,0 +1,256 @@
|
||||
<template>
|
||||
<div>
|
||||
<div style="margin:2% 0;display: inline-block;">
|
||||
<span>投诉内容:</span>
|
||||
<el-input style="width: 150px;" @keydown.enter.native="select" clearable placeholder="请输入投诉内容"
|
||||
v-model="content"></el-input>
|
||||
</div>
|
||||
<div style="display: inline-block;">
|
||||
<el-button style='margin-left:15px;' size="mini" type="primary" icon="document" @click="select">查询
|
||||
</el-button>
|
||||
<el-button style='margin-left:15px;' size="mini" type="primary" icon="document" @click="cleans">重置
|
||||
</el-button>
|
||||
</div>
|
||||
<el-table v-loading="tableDataLoading" :data="tableData.list">
|
||||
<el-table-column fixed prop="id" label="id" width="80">
|
||||
</el-table-column>
|
||||
<el-table-column prop="nickName" label="用户昵称" width="150">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #4f9dec;cursor: pointer;"
|
||||
@click="updates(scope.row)">{{scope.row.nickName ? scope.row.nickName : '未绑定'}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="title" label="标题">
|
||||
</el-table-column>
|
||||
<el-table-column prop="picture" label="截图">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.picture == null || scope.row.picture == ''">
|
||||
暂无图片
|
||||
</div>
|
||||
<div v-else-if="scope.row.picture.includes(',')" style="display:flex;flex-wrap: wrap;">
|
||||
<div v-for="item in scope.row.picture.split(',')" style="margin: 2px;">
|
||||
<el-popover placement="top-start" title="" trigger="hover">
|
||||
<img style="width: 50px; height: 50px" :src="item" alt="" slot="reference">
|
||||
<img style="width: 200px; height: 200px" :src="item" alt="">
|
||||
</el-popover>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<el-popover placement="top-start" title="" trigger="hover">
|
||||
<img style="width: 50px; height: 50px" :src="scope.row.picture" alt="" slot="reference">
|
||||
<img style="width: 200px; height: 200px" :src="scope.row.picture" alt="">
|
||||
</el-popover>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="content" label="投诉内容">
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="创建时间" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column fixed='right' prop="state" label="状态" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #4f9dec;" v-if="scope.row.state === 1 ">待审核</span>
|
||||
<span v-if="scope.row.state === 2 ">已审核</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed='right' label="操作" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" @click="complainDetails(scope.row)">详情/处理
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center;margin-top: 10px;">
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||
:page-sizes="[10, 20, 30, 40]" :page-size="limit" :current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper" :total="tableData.totalCount">
|
||||
</el-pagination>
|
||||
</div>
|
||||
<!-- 任务投诉 -->
|
||||
<el-dialog title="任务投诉详情" :visible.sync="dialogFormVisible" center>
|
||||
<el-form :model="form">
|
||||
<el-form-item label="投诉内容:" :label-width="formLabelWidth">
|
||||
<span>{{form.content}}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="投诉截图:" :label-width="formLabelWidth">
|
||||
<div style="display: flex;flex-wrap: wrap;">
|
||||
<div v-for="(item,index) of imgs" style="margin-left: 10px;margin-top: 10px;">
|
||||
<img :src="item" class="avatar" style="width:148px;height: 148px;" />
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer" v-if="form.state == 1">
|
||||
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="amendNoticeTo()">处 理</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 处理任务 -->
|
||||
<el-dialog title="处理任务" :visible.sync="dialogFormVisible1" center>
|
||||
<div style="margin-bottom: 10px;">
|
||||
<span style="width: 200px;display: inline-block;text-align: right;">任务状态:</span>
|
||||
<el-radio-group v-model="state">
|
||||
<el-radio :label="2">下架</el-radio>
|
||||
<el-radio :label="3">不下架</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible1 = false">取 消</el-button>
|
||||
<el-button type="primary" @click="complainTo()">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
limit: 10,
|
||||
page: 1,
|
||||
userId: '',
|
||||
content: '',
|
||||
form: {
|
||||
id: '',
|
||||
content: '',
|
||||
picture: '',
|
||||
state: ''
|
||||
},
|
||||
state: '',
|
||||
imgs: [],
|
||||
formLabelWidth: '200px',
|
||||
activeName: 'first',
|
||||
tableDataLoading: false,
|
||||
dialogFormVisible: false,
|
||||
dialogFormVisible1: false,
|
||||
tableData: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleSizeChange(val) {
|
||||
this.limit = val;
|
||||
this.dataSelect()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.dataSelect()
|
||||
},
|
||||
// 用户详情跳转
|
||||
updates(row) {
|
||||
this.$router.push({
|
||||
path: '/userDetail',
|
||||
query: {
|
||||
userId: row.userId
|
||||
}
|
||||
})
|
||||
},
|
||||
//删除任务投诉
|
||||
deleteStair(row) {
|
||||
let delid = row.id
|
||||
this.$confirm(`确定删除此条信息?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`helpClassify/deleteClassifyById/?id=${delid}`),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.$message({
|
||||
message: '删除成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.name = '';
|
||||
this.classifySelect()
|
||||
}
|
||||
})
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
// 查询
|
||||
select() {
|
||||
this.dataSelect()
|
||||
},
|
||||
// 重置
|
||||
cleans() {
|
||||
this.content = ''
|
||||
this.dataSelect()
|
||||
},
|
||||
complainDetails(row) {
|
||||
this.form.id = row.id
|
||||
this.form.content = row.content
|
||||
this.form.picture = row.picture
|
||||
this.form.state = row.state
|
||||
let imgs = this.form.picture.split(',')
|
||||
this.imgs = imgs;
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
// 处理
|
||||
amendNoticeTo() {
|
||||
this.dialogFormVisible1 = true
|
||||
},
|
||||
// 处理投诉
|
||||
complainTo() {
|
||||
if (this.state == '') {
|
||||
this.$notify({
|
||||
title: '提示',
|
||||
duration: 1800,
|
||||
message: '请选择任务状态',
|
||||
type: 'warning'
|
||||
});
|
||||
return
|
||||
}
|
||||
this.$http({
|
||||
url: this.$http.adornUrl(`/helpComplaint/solveHelpComplaint/${this.form.id}/${this.state}`),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.code == 0) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.dialogFormVisible = false
|
||||
this.dialogFormVisible1 = false
|
||||
this.dataSelect()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取任务投诉列表
|
||||
dataSelect() {
|
||||
this.tableDataLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('helpComplaint/selectHelpComplaintList'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.page,
|
||||
'limit': this.limit,
|
||||
'userId': this.userId,
|
||||
'content': this.content
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
this.tableDataLoading = false
|
||||
let returnData = data.data;
|
||||
this.tableData = returnData
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.dataSelect()
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
280
src/views/mission/missionDetails.vue
Normal file
280
src/views/mission/missionDetails.vue
Normal file
@@ -0,0 +1,280 @@
|
||||
<template>
|
||||
<div class="detailtabel">
|
||||
<div style="display: inline-block;font-size:18px;margin-bottom: 15px;">
|
||||
<a href="#" @click="prev" style="text-decoration:none;font-size: 14px;">
|
||||
<icon-svg name="jiantou" style="width: 1.2em;height: 1.2em;position: relative;top: 0.3em;"></icon-svg>
|
||||
返回
|
||||
</a>
|
||||
<span style="display: inline-block;margin: 0 15px;color: #D9D9D9;">|</span>
|
||||
<span>派单详情</span>
|
||||
</div>
|
||||
<div class="table_main">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>用户名称</th>
|
||||
<td>{{tableData.nickName}}</td>
|
||||
<th>标题</th>
|
||||
<td>{{tableData.title}}</td>
|
||||
<th style="width: 180px;">任务要求</th>
|
||||
<td class="border-rt">{{tableData.content}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>验证信息</th>
|
||||
<td>{{tableData.verifyContent}}</td>
|
||||
<th>打开内容</th>
|
||||
<td style="width: 180px;">{{tableData.openContent}}</td>
|
||||
<th>编号</th>
|
||||
<td class="border-rt">{{tableData.id}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>数量</th>
|
||||
<td>{{tableData.taskNum}}</td>
|
||||
<th>接单数量</th>
|
||||
<td>{{tableData.endNum}}</td>
|
||||
<th>发布时间</th>
|
||||
<td class="border-rt">{{tableData.createTime}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<th>截至时间</th>
|
||||
<td>{{tableData.endTime}} </td>
|
||||
<th>审核时间(按分)</th>
|
||||
<td>{{tableData.auditTime}}</td>
|
||||
<th>任务限时(按分)</th>
|
||||
<td class="border-rt">{{tableData.restrictTime}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>状态</th>
|
||||
<td v-if="tableData.state == 0">待审核</td>
|
||||
<td v-if="tableData.state == 1">进行中</td>
|
||||
<td v-if="tableData.state == 2">已结束</td>
|
||||
<td v-if="tableData.state == 3">已拒绝</td>
|
||||
<td v-if="tableData.state == 4">已结算</td>
|
||||
<th>打开方式</th>
|
||||
<td>
|
||||
<span v-if="tableData.openType== 1">链接打开</span>
|
||||
<span v-if="tableData.openType== 2">口令打开</span>
|
||||
<span v-if="tableData.openType== 3">扫码打开</span>
|
||||
</td>
|
||||
<th>打开app分类</th>
|
||||
<td class="border-rt">{{tableData.openApp}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="border-bt">验证信息</th>
|
||||
<td class="border-bt">{{tableData.verifyContent}}</td>
|
||||
<th class="border-bt">价格(原价)</th>
|
||||
<td class="border-bt">{{tableData.taskOriginalPrice}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div style="margin-top:25px;">
|
||||
<el-table v-loading="tableDataLoading" :data="taskData.list">
|
||||
<el-table-column fixed prop="id" label="接单id">
|
||||
</el-table-column>
|
||||
<el-table-column prop="nickName" label="接单人名称" width="150">
|
||||
</el-table-column>
|
||||
<el-table-column prop="content" label="提交内容" width="150">
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.content}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="money" label="价格(接单时收取的价格)" width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="zhiMoney" label="直属收益">
|
||||
</el-table-column>
|
||||
<el-table-column prop="feiMoney" label="非直属收益" width="150">
|
||||
</el-table-column>
|
||||
<el-table-column prop="pingMoney" label="平台收益">
|
||||
</el-table-column>
|
||||
<el-table-column prop="auditContent" label="拒绝原因" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column prop="category" label="拒绝类型" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="创建时间" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column prop="auditTime" label="审核时间" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column fixed='right' prop="state" label="状态" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #4f9dec;" v-if="scope.row.state === 0 ">接单成功</span>
|
||||
<span style="color: #4f9dec;" v-if="scope.row.state === 1 ">提交待审核</span>
|
||||
<span style="color: #4f9dec;" v-if="scope.row.state === 2 ">审核成功</span>
|
||||
<span style="color: #4f9dec;" v-if="scope.row.state === 3 ">已拒绝</span>
|
||||
<span style="color: #4f9dec;" v-if="scope.row.state === 4 ">已维权</span>
|
||||
<span style="color: #4f9dec;" v-if="scope.row.state === 5 ">已放弃</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed='right' label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" @click="check(scope.$index, scope.row)">查看
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="text-align: center;margin-top: 10px;">
|
||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||
:page-sizes="[5, 10, 15, 20]" :page-size="limit" :current-page="page"
|
||||
layout="total,sizes, prev, pager, next,jumper" :total="taskData.totalCount">
|
||||
</el-pagination>
|
||||
</div>
|
||||
<!-- 任务查看弹框 -->
|
||||
<el-dialog title="查看" :visible.sync="dialogFormVisible" center>
|
||||
<div v-for="(item,index) in helpTaskData" :key="index" style="text-align: center;">
|
||||
<span>步骤 {{index+1}}</span>
|
||||
<!-- <p>接单id:{{item.helpSendOrderId}}</p> -->
|
||||
<p class="red">验证图</p>
|
||||
<img :src="item.picture" alt="" width="260" height="460">
|
||||
</div>
|
||||
<div v-if="helpTaskData == '' " style="text-align: center;">暂无内容</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="dialogFormVisible = false">确 定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
state: 0,
|
||||
limit: 5,
|
||||
page: 1,
|
||||
dialogFormVisible: false,
|
||||
tableDataLoading: true,
|
||||
tableData: {},
|
||||
taskData: [],
|
||||
helpTaskData: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 返回上一级
|
||||
prev() {
|
||||
this.$router.back()
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.limit = val;
|
||||
this.taskSelect()
|
||||
},
|
||||
handleCurrentChange(val) {
|
||||
this.page = val;
|
||||
this.taskSelect()
|
||||
},
|
||||
// 接单人查看
|
||||
check(index, rows) {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('helpTask/selectSendOrderDetailsById'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'id': rows.id
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.code === 0) {
|
||||
let returnData = data.data;
|
||||
this.dialogFormVisible = true
|
||||
this.helpTaskData = returnData
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
// 获取数据列表
|
||||
dataSelect() {
|
||||
let id = this.$route.query.id
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('helpTask/selectTakeOrderDetails'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'id': id
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.code === 0) {
|
||||
let returnData = data.data;
|
||||
this.tableData = returnData;
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取数据列表
|
||||
taskSelect() {
|
||||
this.tableDataLoading = true
|
||||
let page = this.page - 1
|
||||
let id = this.$route.query.id
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('helpTask/selectSendOrderByTaskList'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': page,
|
||||
'limit': this.limit,
|
||||
'id': id
|
||||
})
|
||||
}).then(({
|
||||
data
|
||||
}) => {
|
||||
if (data.code === 0) {
|
||||
this.tableDataLoading = false
|
||||
let returnData = data.data;
|
||||
this.taskData = returnData;
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.dataSelect()
|
||||
this.taskSelect()
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped="scoped">
|
||||
.detailtabel h2 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.detailtabel .table_main table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.detailtabel .table_main {
|
||||
border: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
.detailtabel table tr {
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
.detailtabel table tr th {
|
||||
background-color: #fafafa;
|
||||
padding: 16px 24px;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
.detailtabel table tr td {
|
||||
padding: 16px 24px;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
.detailtabel table th {
|
||||
color: rgba(0, 0, 0, .85);
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.border-rt {
|
||||
border-right: none !important;
|
||||
}
|
||||
|
||||
.border-bt {
|
||||
border-bottom: none !important;
|
||||
}
|
||||
</style>
|
||||
2412
src/views/mission/missionDy.vue
Normal file
2412
src/views/mission/missionDy.vue
Normal file
File diff suppressed because it is too large
Load Diff
2445
src/views/mission/missionWx.vue
Normal file
2445
src/views/mission/missionWx.vue
Normal file
File diff suppressed because it is too large
Load Diff
1386
src/views/mission/system.vue
Normal file
1386
src/views/mission/system.vue
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user