Commit 5d00424c by cwy

0402

parent c349df84
...@@ -531,7 +531,7 @@ onBeforeMount(() => { ...@@ -531,7 +531,7 @@ onBeforeMount(() => {
// 监听布局配置开启 TagsView 共用,为了演示还原默认值 // 监听布局配置开启 TagsView 共用,为了演示还原默认值
mittBus.on('openShareTagsView', () => { mittBus.on('openShareTagsView', () => {
if (getThemeConfig.value.isShareTagsView) { if (getThemeConfig.value.isShareTagsView) {
router.push('/home'); router.push('/claimTasks');
state.tagsViewList = []; state.tagsViewList = [];
state.tagsViewRoutesList.map((v) => { state.tagsViewRoutesList.map((v) => {
if (v.meta?.isAffix && !v.meta.isHide) { if (v.meta?.isAffix && !v.meta.isHide) {
......
...@@ -103,7 +103,7 @@ router.beforeEach(async (to, from, next) => { ...@@ -103,7 +103,7 @@ router.beforeEach(async (to, from, next) => {
Session.clear(); Session.clear();
NProgress.done(); NProgress.done();
} else if (token && to.path === '/login') { } else if (token && to.path === '/login') {
next('/home'); next('/claimTasks');
NProgress.done(); NProgress.done();
} else { } else {
const storesRoutesList = useRoutesList(pinia); const storesRoutesList = useRoutesList(pinia);
......
<template>
<div class="system-menu-container">
<div class="breadcrumb-box">
<Breadcrumb />
</div>
<div class="header-search flex space-between">
<div>
<el-select v-model="state.apiListParam.task_id" placeholder="请选择任务" size="default" @change="searchChange" clearable filterable style="width:200px;margin-right: 20px;">
<el-option v-for="(item, index) in state.taskList" :key="index" :label="item.name"
:value="item.id"></el-option>
</el-select>
<el-select v-model="state.apiListParam.norm_id" placeholder="请选择指标" size="default" @change="searchChange" clearable filterable style="width:300px;margin-right: 20px;">
<el-option v-for="(item, index) in state.normList" :key="index" :label="item.name"
:value="item.id"></el-option>
</el-select>
<el-select v-model="state.apiListParam.statusSelect" placeholder="请选择状态" size="default" @change="searchChange" clearable filterable style="width:300px;margin-right: 20px;">
<el-option v-for="(item, index) in state.statusList" :key="index" :label="item.name"
:value="item.value"></el-option>
</el-select>
<el-input class="search-item" placeholder="输入指标名称" v-model="state.apiListParam.name" size="default"
style="width: 220px;" clearable @change="searchChange()">
</el-input>
<el-button size="default" type="primary" @click="searchChange()" >查询</el-button>
<el-button size="default" @click="reset()" >重置</el-button>
</div>
</div>
<div class="page-main" v-loading="state.tableData.loading" ref="pageMain">
<el-card shadow="hover" style="height:100%;">
<el-table :data="state.tableData.data" style="width: 100%" :height="state.tableHeight"
ref="multipleTableRef">
<el-table-column label="序号" type="index" width="80" show-overflow-tooltip align="center"></el-table-column>
<el-table-column prop="norm_list_info.name" label="指标名称" show-overflow-tooltip align="center">
</el-table-column>
<el-table-column prop="norm_list_info.sort" width="80" label="优先级" show-overflow-tooltip align="center">
<template #default="scope">
<span style="color: #909399;" v-if="scope.row.norm_list_info.sort=='1'"></span>
<span style="color: #409EFF;" v-if="scope.row.norm_list_info.sort=='2'"></span>
<span style="color: #F56C6C;" v-if="scope.row.norm_list_info.sort=='3'"></span>
</template>
</el-table-column>
<el-table-column prop="norm_list_info.level" width="100" label="难度等级" show-overflow-tooltip align="center"></el-table-column>
<el-table-column prop="norm_list_info.refer" label="信源" show-overflow-tooltip align="center">
<template #default="scope">
<el-link type="danger" v-if="checkUrl(scope.row.norm_list_info.refer)" :href="scope.row.norm_list_info.refer" target ="_blank">点击查看</el-link>
<span v-else>{{scope.row.norm_list_info.refer}}</span>
</template>
</el-table-column>
<el-table-column prop="norm_list_info.price" width="80" label="单价" show-overflow-tooltip align="center"></el-table-column>
<el-table-column prop="status" label="完成情况" show-overflow-tooltip align="center">
<template #default="scope">
<el-tag type='warning' v-if="scope.row.status==0" effect="plain" size="small">已领取未填写</el-tag>
<el-tag type='success' v-if="scope.row.status==1" effect="plain" size="small">已完成未审核</el-tag>
<el-tag type='danger' v-if="scope.row.status==2" effect="plain" size="small">审核未通过</el-tag>
<el-tag type='warning' v-if="scope.row.status==3" effect="plain" size="small">已通过未结算</el-tag>
<el-tag type='info' v-if="scope.row.status==4" effect="plain" size="small">已结算</el-tag>
</template>
</el-table-column>
<el-table-column prop="not_collectible" label="是否可采集" show-overflow-tooltip align="center">
<template #default="scope">
<span style="color: #F56C6C" v-if="scope.row.not_collectible==1" effect="plain" size="small">{{scope.row.not_collectible_remarks}}</span>
<span style="color: #909399" v-else effect="plain" size="small"></span>
</template>
</el-table-column>
<el-table-column prop="review_remarks" label="审核备注" show-overflow-tooltip align="center">
<template #default="scope">
<span style="color: #409EFF;" effect="plain" size="small">{{scope.row.review_remarks}}</span>
</template>
</el-table-column>
<el-table-column prop="review_time" width="180" label="审核时间" show-overflow-tooltip align="center">
<template #default="scope">
<span effect="plain" size="small">{{scope.row.review_time}}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="350" fixed="right" align="center">
<template #default="scope">
<div v-if="scope.row.status == 0 || scope.row.status == 1 || scope.row.status == 2">
<el-button size="small" @click="modify(scope.row)" type="primary">修改信息</el-button>
<el-button size="small" @click="details(scope.row)">查看信息</el-button>
<el-button size="small" @click="receive(scope.row.id)" type="danger">退回领取</el-button>
</div>
<div v-if="scope.row.status == 3 || scope.row.status == 4">
<el-button size="small" @click="details(scope.row)" >查看信息</el-button>
</div>
</template>
</el-table-column>
</el-table>
<div class="pagination-box">
<el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="mt15"
:pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="state.apiListParam.page" background
v-model:page-size="state.apiListParam.limit" layout="total, sizes, prev, pager, next, jumper"
:total="state.tableData.total">
</el-pagination>
</div>
</el-card>
</div>
<ModifyDialog ref="ModifyDialogRef" @refresh="getList()" />
<DetailDialog ref="DetailDialogRef" @refresh="getList()" />
</div>
</template>
<script setup name="taskPackage-list">
import { getCurrentInstance } from 'vue';
import { claimTasksApi } from '/@/api/claimTasks/index';
import { taskPackageApi } from '/@/api/taskPackage/index';
import { normApi } from '/@/api/norm/index';
import { ElMessageBox, ElMessage } from 'element-plus';
import { Session } from '/@/utils/storage';
// 引入组件
const Breadcrumb = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/breadcrumb.vue'));
const DetailDialog = defineAsyncComponent(() => import('/@/views/claimTasks/user/approved/details.vue'));
const ModifyDialog = defineAsyncComponent(() => import('/@/views/claimTasks/user/approved/modify.vue'));
// 定义变量内容
const DetailDialogRef = ref()
// 定义变量内容
const ModifyDialogRef = ref()
const state = reactive({
// 查询列表参数
apiListParam: {
page: 1,
limit: 10,
name: '',
status:'2,3',
task_id:'',
order:'asc',
norm_id:'',
statusSelect:'',
},
// 任务领取参数
apiReceiveParam: {
id: '',
},
tableData: {
data: [],
loading: false,
total: 0
},
tableHeight: '30vh',
normListExtend:[],
testIndex:0,
taskList:[],
normList:[],
statusList:[{name:'审核通过',value:'3'},{name:'审核不通过',value:'2'}]
});
// 获取任务列表
const getTaskList = () => {
taskPackageApi().taskPackageList({page:-1,limit:-1}).then(res => {
state.taskList = res.data
})
}
// 获取指标列表
const getNormList = () => {
normApi().normList({page:-1,limit:-1}).then(res => {
state.normList = res.data
})
}
// 页面加载时
onMounted(() => {
getTaskList()
getNormList()
getList()
state.tableHeight = getCurrentInstance().refs.pageMain.offsetHeight - 130 - 52 + "px";
});
//校验链接
const checkUrl = (vlaue) =>{
if (/^https?:\/\//.test(vlaue)) {
return true;
} else {
return false;
}
}
/**
* 搜索按钮
*/
const test = () => {
return state.testIndex+1;
}
/**
* 搜索按钮
*/
const searchChange = () => {
state.apiListParam.page = 1
getList()
}
/**
* 重置按钮
*/
const reset = () => {
state.apiListParam.page = 1
state.apiListParam.name = '';
state.apiListParam.statusSelect = ''
state.apiListParam.task_id = '';
state.apiListParam.norm_id = '';
getList()
}
// 分页改变
const onHandleSizeChange = (val) => {
state.apiListParam.limit = val;
getList();
};
const onHandleCurrentChange = (val) => {
state.apiListParam.page = val;
getList();
};
// 获取列表
const getList = () => {
state.tableData.loading = true
claimTasksApi().normReceivesList(state.apiListParam).then(res => {
state.tableData.loading = false
let data =res.data.data;
state.tableData.data = res.data.data
state.tableData.total = res.data.total
}).catch(() => {
state.tableData.loading = false
})
}
/**
* 点击退回任务
*/
const receive = (id) => {
state.apiReceiveParam.id = id
claimTasksApi().normReceivesRevoke(state.apiReceiveParam).then(res => {
ElMessage.success('任务退回成功!');
getList();
}).catch(() => {
state.tableData.loading = false
getList();
})
}
/**
* 修改任务
*/
const details = (data) => {
DetailDialogRef.value.openDialog(data);
}
/**
* 修改任务
*/
const modify = (data) => {
ModifyDialogRef.value.openDialog(data);
}
</script>
<style lang="scss" scoped>
.page-main {
height: calc(100vh - 50px - 106px);
}
</style>
...@@ -109,7 +109,7 @@ const state = reactive({ ...@@ -109,7 +109,7 @@ const state = reactive({
page: 1, page: 1,
limit: 10, limit: 10,
name: '', name: '',
status:'1,2,3', status:'1',
task_id:'', task_id:'',
order:'asc' order:'asc'
}, },
......
...@@ -114,6 +114,7 @@ const state = reactive({ ...@@ -114,6 +114,7 @@ const state = reactive({
// 结算任务 // 结算任务
claimTasksParam:[], claimTasksParam:[],
taskList:[], taskList:[],
normList:[],
}); });
// 获取任务列表 // 获取任务列表
const getTaskList = () => { const getTaskList = () => {
...@@ -189,6 +190,8 @@ const searchChange = () => { ...@@ -189,6 +190,8 @@ const searchChange = () => {
const reset = () => { const reset = () => {
state.apiListParam.page = 1 state.apiListParam.page = 1
state.apiListParam.name = ''; state.apiListParam.name = '';
state.apiListParam.task_id = '';
state.apiListParam.norm_id = '';
getList() getList()
} }
......
<template>
<div class="system-menu-container">
<div class="breadcrumb-box">
<Breadcrumb />
</div>
<div class="page-main" v-loading="state.tableData.loading" ref="pageMain">
<el-card shadow="hover" style="height:100%;">
<el-table :data="state.tableData.data" border style="width: 100%" :height="state.tableHeight"
ref="multipleTableRef">
<el-table-column label="序号" type="index" width="100" show-overflow-tooltip align="center"></el-table-column>
<el-table-column prop="userInfo.name" label="用户名称" show-overflow-tooltip align="center">
<template #default="scope">
<span style="color: #409EFF;">{{scope.row.userInfo.name}}</span>
</template>
</el-table-column>
<el-table-column prop="time" label="结算时间" show-overflow-tooltip align="center">
<template #default="scope">
<span>{{scope.row.time}}</span>
</template>
</el-table-column>
<el-table-column prop="num" label="数量" show-overflow-tooltip align="center"></el-table-column>
<el-table-column prop="amount" label="总金额" show-overflow-tooltip align="center">
</el-table-column>
<el-table-column prop="status" label="状态" show-overflow-tooltip align="center">
<template #default="scope">
<span style="color: #909399;" v-if="scope.row.status=='0'">未确认</span>
<span style="color: #409EFF;" v-if="scope.row.status=='1'">已确认</span>
<span style="color: #F56C6C;" v-if="scope.row.status=='2'">确认收款</span>
</template>
</el-table-column>
<!-- <el-table-column label="操作" width="300" fixed="right" align="center">
<template #default="scope">
<el-button size="small" @click="details(scope.row.id)">查看详情</el-button>
</template>
</el-table-column> -->
</el-table>
<div class="pagination-box">
<el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="mt15"
:pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="state.apiListParam.page" background
v-model:page-size="state.apiListParam.limit" layout="total, sizes, prev, pager, next, jumper"
:total="state.tableData.total">
</el-pagination>
</div>
</el-card>
</div>
</div>
</template>
<script setup name="taskPackage-list">
import { getCurrentInstance } from 'vue';
import { normOrdersApi } from '/@/api/normOrders/index';
import { ElMessageBox, ElMessage } from 'element-plus';
import { Session } from '/@/utils/storage';
// 引入组件
const Breadcrumb = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/breadcrumb.vue'));
const router = useRouter();
// 定义变量内容
const DetailDialogRef = ref()
const state = reactive({
// 查询列表参数
apiListParam: {
page: 1,
limit: 10,
name: '',
user_id:'',
},
tableData: {
data: [],
loading: false,
total: 0
},
tableHeight: '30vh',
normListExtend:[],
testIndex:0,
taskList:[],
});
// 页面加载时
onMounted(() => {
getList()
state.tableHeight = getCurrentInstance().refs.pageMain.offsetHeight - 130 - 52 + "px";
});
/**
* 搜索按钮
*/
const test = () => {
return state.testIndex+1;
}
/**
* 搜索按钮
*/
const searchChange = () => {
state.apiListParam.page = 1
getList()
}
/**
* 重置按钮
*/
const reset = () => {
state.apiListParam.page = 1
state.apiListParam.name = '';
getList()
}
// 分页改变
const onHandleSizeChange = (val) => {
state.apiListParam.limit = val;
getList();
};
const onHandleCurrentChange = (val) => {
state.apiListParam.page = val;
getList();
};
// 获取列表
const getList = () => {
state.tableData.loading = true
state.apiListParam.user_id= Session.get('userInfo').id
normOrdersApi().normOrdersList(state.apiListParam).then(res => {
state.tableData.loading = false
let data =res.data.data;
state.tableData.data = res.data.data
state.tableData.total = res.data.total
}).catch(() => {
state.tableData.loading = false
})
}
/**
* 点击查看
*/
const details = (id) => {
// this.$router.push('/target')
router.push({
path: '/balance/settlementList/details',query: {id:id}
});
}
</script>
<style lang="scss" scoped>
.page-main {
height: calc(100vh - 50px - 106px);
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment