申请详细-查看审核流程
parent
7e3da0df72
commit
74f0c91935
|
|
@ -16,7 +16,7 @@
|
||||||
<template v-if="images && images.length > 0">
|
<template v-if="images && images.length > 0">
|
||||||
<uv-scroll-list :indicator="false">
|
<uv-scroll-list :indicator="false">
|
||||||
<view class="space-x-15rpx flex">
|
<view class="space-x-15rpx flex">
|
||||||
<view v-for="(url, index) in images" :key="index">
|
<view v-for="(url, index) in images.slice(0, 4)" :key="index">
|
||||||
<image :src="url" mode="heightFix" style="height: 160rpx"></image>
|
<image :src="url" mode="heightFix" style="height: 160rpx"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,9 @@ import BaseData from '../audits/base-data'
|
||||||
|
|
||||||
const modalRef = ref(null)
|
const modalRef = ref(null)
|
||||||
const actions = ref([
|
const actions = ref([
|
||||||
{ name: '修改', value: 'edit' },
|
{ name: '修改', value: 'edit', disabled: false },
|
||||||
{ name: '删除', value: 'delete' },
|
{ name: '删除', value: 'delete', disabled: false },
|
||||||
|
{ name: '审核流程', value: 'check-logs', disabled: false }
|
||||||
])
|
])
|
||||||
const detail = ref()
|
const detail = ref()
|
||||||
const pickerRef = ref(null)
|
const pickerRef = ref(null)
|
||||||
|
|
@ -52,6 +53,10 @@ const confirmPicker = e => {
|
||||||
}
|
}
|
||||||
if (e.value == 'delete') {
|
if (e.value == 'delete') {
|
||||||
return modalRef.value.open()
|
return modalRef.value.open()
|
||||||
|
} else if (e.value == 'check-logs') {
|
||||||
|
return uni.navigateTo({
|
||||||
|
url: `/pages/audits/log?id=${detail.value.workflow_check.id}`
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const onSubmit = async () => {
|
const onSubmit = async () => {
|
||||||
|
|
@ -67,6 +72,7 @@ const onSubmit = async () => {
|
||||||
title: "删除成功",
|
title: "删除成功",
|
||||||
icon: "none"
|
icon: "none"
|
||||||
})
|
})
|
||||||
|
uni.$emit('refresh')
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
|
|
@ -79,8 +85,11 @@ onLoad(options => {
|
||||||
http.get(`/hr/holidays/${options.id}`).then(res => {
|
http.get(`/hr/holidays/${options.id}`).then(res => {
|
||||||
detail.value = res
|
detail.value = res
|
||||||
|
|
||||||
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
|
let status = res.workflow_check.check_status
|
||||||
actions.value = []
|
if ([2, 3].indexOf(status) != -1) {
|
||||||
|
actions.value[0].disabled = true
|
||||||
|
actions.value[1].disabled = true
|
||||||
|
// actions.value.splice(0, 2)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
<ListItem
|
<ListItem
|
||||||
v-for="item in list" :key="item.id"
|
v-for="item in list" :key="item.id"
|
||||||
title="请假申请"
|
title="请假申请"
|
||||||
:status-text="item.check_status_text"
|
:status-text="statusFun( item.check_status,'statusExpense2','name')"
|
||||||
:status-color="statusFun( item.check_status,'statusExpense','color')"
|
:status-color="statusFun( item.check_status,'statusExpense','color')"
|
||||||
:body="[
|
:body="[
|
||||||
{ label:'申请人', value: item.check.subject.employee.name },
|
{ label:'申请人', value: item.check.subject.employee.name },
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
singleSize="190rpx"
|
singleSize="190rpx"
|
||||||
:urls="item.value"
|
:urls="item.value"
|
||||||
:rowCount="3"
|
:rowCount="3"
|
||||||
|
:maxCount="50"
|
||||||
space="18rpx"
|
space="18rpx"
|
||||||
:showMore="false"
|
:showMore="false"
|
||||||
></uv-album>
|
></uv-album>
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,16 @@
|
||||||
import { timeFormat } from '@climblee/uv-ui/libs/function'
|
import { timeFormat } from '@climblee/uv-ui/libs/function'
|
||||||
|
import statusFun from '@/utils/status'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
//清洁任务
|
//清洁任务
|
||||||
task_hygienes: {
|
task_hygienes: {
|
||||||
data: [
|
data: [
|
||||||
{
|
{
|
||||||
title: '审核状态',
|
title: '审核状态',
|
||||||
dataIndex: 'workflow_check.check_status_text',
|
dataIndex: 'check_status',
|
||||||
|
format: (value) => {
|
||||||
|
return statusFun(value, 'statusExpense2', 'name')
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '未通过理由',
|
title: '未通过理由',
|
||||||
|
|
@ -49,6 +54,21 @@ export default {
|
||||||
include: 'check.subject.type,check.subject.employee,check.subject.store',
|
include: 'check.subject.type,check.subject.employee,check.subject.store',
|
||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
|
{
|
||||||
|
title: '审核状态',
|
||||||
|
dataIndex: 'check_status',
|
||||||
|
format: (value) => {
|
||||||
|
return statusFun(value, 'statusExpense2', 'name')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '未通过原因',
|
||||||
|
dataIndex: 'remarks',
|
||||||
|
labelPosition: 'top',
|
||||||
|
isShow: (item) => {
|
||||||
|
return item?.check_status == 4
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "申请人",
|
title: "申请人",
|
||||||
dataIndex: "check.subject.employee.name"
|
dataIndex: "check.subject.employee.name"
|
||||||
|
|
@ -83,14 +103,7 @@ export default {
|
||||||
dataIndex: 'check.subject.photos',
|
dataIndex: 'check.subject.photos',
|
||||||
type: 'album',
|
type: 'album',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: '未通过原因',
|
|
||||||
dataIndex: 'remarks',
|
|
||||||
labelPosition: 'top',
|
|
||||||
isShow: (item) => {
|
|
||||||
return item?.check_status == 4
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
//升职
|
//升职
|
||||||
|
|
@ -99,158 +112,63 @@ export default {
|
||||||
include: 'check.subject.store,check.subject.invitor,check.subject.employee,check.subject.job',
|
include: 'check.subject.store,check.subject.invitor,check.subject.employee,check.subject.job',
|
||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
{
|
{ title: '审核状态', dataIndex: 'check_status', format: (value) => statusFun(value, 'statusExpense2', 'name')},
|
||||||
title: '审核状态',
|
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4},
|
||||||
dataIndex: 'check_status_text',
|
{ title: '晋升职位', dataIndex: 'check.subject.job.name'},
|
||||||
},
|
{ title: '推荐人', dataIndex: 'check.subject.invitor.name'},
|
||||||
{
|
{ title: '申请人', dataIndex: 'check.subject.employee.name'},
|
||||||
title: '未通过理由',
|
{ title: '年龄', dataIndex: 'check.subject.employee_data.age'},
|
||||||
dataIndex: 'remarks',
|
{ title: '性别', dataIndex: 'check.subject.employee_data.sex'},
|
||||||
labelPosition: 'top',
|
{ title: '学历', dataIndex: 'check.subject.employee_data.education'},
|
||||||
isShow: (item) => {
|
{ title: '首次参加工作时间', dataIndex: 'check.subject.employee_data.first_work_time', labelWidth: "250rpx"},
|
||||||
return item?.check_status == 4
|
{ title: '工作年限', dataIndex: 'check.subject.employee_data.work_years'},
|
||||||
},
|
{ title: '本公司工作年限', dataIndex: 'check.subject.employee_data.work_years_in_company'},
|
||||||
}, {
|
{ title: '员工自评', dataIndex: 'check.subject.employee_data.comment_self', labelPosition: 'top'},
|
||||||
title: '晋升职位',
|
{ title: '未来计划', dataIndex: 'check.subject.employee_data.plans', labelPosition: 'top'},
|
||||||
dataIndex: 'check.subject.job.name',
|
{ title: '推荐理由', dataIndex: 'check.subject.employee_data.reason', labelPosition: 'top'}
|
||||||
}, {
|
]
|
||||||
title: '推荐人',
|
|
||||||
dataIndex: 'check.subject.invitor.name',
|
|
||||||
}, {
|
|
||||||
title: '申请人',
|
|
||||||
dataIndex: 'check.subject.employee.name',
|
|
||||||
}, {
|
|
||||||
title: '年龄',
|
|
||||||
dataIndex: 'check.subject.employee_data.age',
|
|
||||||
}, {
|
|
||||||
title: '性别',
|
|
||||||
dataIndex: 'check.subject.employee_data.sex',
|
|
||||||
}, {
|
|
||||||
title: '学历',
|
|
||||||
dataIndex: 'check.subject.employee_data.education',
|
|
||||||
}, {
|
|
||||||
title: '首次参加工作时间',
|
|
||||||
dataIndex: 'check.subject.employee_data.first_work_time',
|
|
||||||
labelWidth: "250rpx"
|
|
||||||
}, {
|
|
||||||
title: '工作年限',
|
|
||||||
dataIndex: 'check.subject.employee_data.work_years',
|
|
||||||
}, {
|
|
||||||
title: '本公司工作年限',
|
|
||||||
dataIndex: 'check.subject.employee_data.work_years_in_company',
|
|
||||||
}, {
|
|
||||||
title: '员工自评',
|
|
||||||
dataIndex: 'check.subject.employee_data.comment_self',
|
|
||||||
labelPosition: 'top',
|
|
||||||
}, {
|
|
||||||
title: '未来计划',
|
|
||||||
dataIndex: 'check.subject.employee_data.plans',
|
|
||||||
labelPosition: 'top',
|
|
||||||
}, {
|
|
||||||
title: '推荐理由',
|
|
||||||
dataIndex: 'check.subject.employee_data.reason',
|
|
||||||
labelPosition: 'top',
|
|
||||||
}]
|
|
||||||
},
|
},
|
||||||
//补卡申请
|
//补卡申请
|
||||||
employee_sign_repairs: {
|
employee_sign_repairs: {
|
||||||
params: {
|
params: {
|
||||||
include: 'check.subject.employee,check.subject.store',
|
include: 'check.subject.employee,check.subject.store',
|
||||||
},
|
},
|
||||||
data: [{
|
data: [
|
||||||
title: '审核状态',
|
{ title: '审核状态', dataIndex: 'check_status', format: (value) => statusFun(value, 'statusExpense2', 'name')},
|
||||||
dataIndex: 'check_status_text',
|
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4},
|
||||||
},
|
{ title: '申请人', dataIndex: 'check.subject.employee.name'},
|
||||||
{
|
{ title: '所属门店', dataIndex: 'check.subject.store.title'},
|
||||||
title: '未通过理由',
|
{ title: '电话号码', dataIndex: 'check.subject.employee.phone'},
|
||||||
dataIndex: 'remarks',
|
{ title: '申请时间', dataIndex: 'check.subject.created_format'},
|
||||||
labelPosition: 'top',
|
{ title: '补卡时间', dataIndex: 'check.subject.date_format'},
|
||||||
isShow: (item) => {
|
{ title: '补卡原因', dataIndex: 'check.subject.reason', labelPosition: 'top'},
|
||||||
return item?.check_status == 4
|
{ title: '是否外勤', dataIndex: 'check.subject.sign_type', format: (e) => e == 1 ? '否' : '是'},
|
||||||
},
|
{ title: '外勤事由', dataIndex: 'check.subject.outside_remarks', labelPosition: 'top', isShow: (item) => item?.sign_type == 2}
|
||||||
}, {
|
]
|
||||||
title: '申请人',
|
|
||||||
dataIndex: 'check.subject.employee.name',
|
|
||||||
}, {
|
|
||||||
title: '所属门店',
|
|
||||||
dataIndex: 'check.subject.store.title',
|
|
||||||
}, {
|
|
||||||
title: '电话号码',
|
|
||||||
dataIndex: 'check.subject.employee.phone'
|
|
||||||
}, {
|
|
||||||
title: '申请时间',
|
|
||||||
dataIndex: 'check.subject.created_format'
|
|
||||||
}, {
|
|
||||||
title: '补卡时间',
|
|
||||||
dataIndex: 'check.subject.date_format',
|
|
||||||
}, {
|
|
||||||
title: '补卡原因',
|
|
||||||
dataIndex: 'check.subject.reason',
|
|
||||||
labelPosition: 'top',
|
|
||||||
}, {
|
|
||||||
title: '是否外勤',
|
|
||||||
dataIndex: 'check.subject.sign_type',
|
|
||||||
format: (e) => {
|
|
||||||
return e == 1 ? '否' : '是'
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
title: '外勤事由',
|
|
||||||
dataIndex: 'check.subject.outside_remarks',
|
|
||||||
labelPosition: 'top',
|
|
||||||
isShow: (item) => {
|
|
||||||
return item?.sign_type == 2
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
},
|
},
|
||||||
//请假申请
|
//请假申请
|
||||||
holiday_applies: {
|
holiday_applies: {
|
||||||
params: {
|
params: {
|
||||||
include: 'check.subject.employee,check.subject.type,check.subject.store'
|
include: 'check.subject.employee,check.subject.type,check.subject.store'
|
||||||
},
|
},
|
||||||
data: [{
|
data: [
|
||||||
title: '审核状态',
|
{ title: '审核状态', dataIndex: 'check_status', format: (value) => statusFun(value, 'statusExpense2', 'name')},
|
||||||
dataIndex: 'check_status_text',
|
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4},
|
||||||
},
|
{ title: '申请人', dataIndex: 'check.subject.employee.name'},
|
||||||
{
|
{ title: '申请时间', dataIndex: 'check.subject.created_format'},
|
||||||
title: '未通过理由',
|
{ title: '所属门店', dataIndex: 'check.subject.store.title'},
|
||||||
dataIndex: 'remarks',
|
{ title: '电话号码', dataIndex: 'check.subject.employee.phone'},
|
||||||
labelPosition: 'top',
|
{ title: '请假类型', dataIndex: 'check.subject.type.name'},
|
||||||
isShow: (item) => {
|
{ title: '开始时间', dataIndex: 'check.subject.start_format'},
|
||||||
return item?.check_status == 4
|
{ title: '请假结束时间', dataIndex: 'check.subject.end_format'},
|
||||||
},
|
{ title: '请假原因', dataIndex: 'check.subject.reason', labelPosition: 'top'}]
|
||||||
}, {
|
|
||||||
title: '申请人',
|
|
||||||
dataIndex: 'check.subject.employee.name',
|
|
||||||
}, {
|
|
||||||
title: '申请时间',
|
|
||||||
dataIndex: 'check.subject.created_format',
|
|
||||||
}, {
|
|
||||||
title: '所属门店',
|
|
||||||
dataIndex: 'check.subject.store.title',
|
|
||||||
}, {
|
|
||||||
title: '电话号码',
|
|
||||||
dataIndex: 'check.subject.employee.phone'
|
|
||||||
}, {
|
|
||||||
title: '请假类型',
|
|
||||||
dataIndex: 'check.subject.type.name',
|
|
||||||
}, {
|
|
||||||
title: '请假开始时间',
|
|
||||||
dataIndex: 'check.subject.start_format',
|
|
||||||
}, {
|
|
||||||
title: '请假结束时间',
|
|
||||||
dataIndex: 'check.subject.end_format',
|
|
||||||
}, {
|
|
||||||
title: '请假原因',
|
|
||||||
dataIndex: 'check.subject.reason',
|
|
||||||
labelPosition: 'top',
|
|
||||||
}]
|
|
||||||
},
|
},
|
||||||
offical_business: {
|
offical_business: {
|
||||||
params: {
|
params: {
|
||||||
include: 'check.subject.employee,check.subject.store'
|
include: 'check.subject.employee,check.subject.store'
|
||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
{ title: '审核状态', dataIndex: 'check_status_text' },
|
{ title: '审核状态', dataIndex: 'check_status', format: (value) => statusFun(value, 'statusExpense2', 'name')},
|
||||||
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4 },
|
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4 },
|
||||||
{ title: '申请人', dataIndex: 'check.subject.employee.name' },
|
{ title: '申请人', dataIndex: 'check.subject.employee.name' },
|
||||||
{ title: '所属门店', dataIndex: 'check.subject.store.title' },
|
{ title: '所属门店', dataIndex: 'check.subject.store.title' },
|
||||||
|
|
@ -265,7 +183,7 @@ export default {
|
||||||
include: 'check.subject.employee,check.subject.store'
|
include: 'check.subject.employee,check.subject.store'
|
||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
{ title: '审核状态', dataIndex: 'check_status_text' },
|
{ title: '审核状态', dataIndex: 'check_status', format: (value) => statusFun(value, 'statusExpense2', 'name')},
|
||||||
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4 },
|
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4 },
|
||||||
{ title: '申请人', dataIndex: 'check.subject.employee.name' },
|
{ title: '申请人', dataIndex: 'check.subject.employee.name' },
|
||||||
{ title: '所属门店', dataIndex: 'check.subject.store.title' },
|
{ title: '所属门店', dataIndex: 'check.subject.store.title' },
|
||||||
|
|
@ -280,7 +198,7 @@ export default {
|
||||||
include: 'check.subject.employee'
|
include: 'check.subject.employee'
|
||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
{ title: '审核状态', dataIndex: 'check_status_text' },
|
{ title: '审核状态', dataIndex: 'check_status', format: (value) => statusFun(value, 'statusExpense2', 'name')},
|
||||||
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4 },
|
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4 },
|
||||||
{ title: '申请人', dataIndex: 'check.subject.employee.name' },
|
{ title: '申请人', dataIndex: 'check.subject.employee.name' },
|
||||||
{ title: '合同名称', dataIndex: 'check.subject.name' },
|
{ title: '合同名称', dataIndex: 'check.subject.name' },
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<view> {{ item.check_user ? item.check_user.name : item.check_name }}</view>
|
<view> {{ item.check_user ? item.check_user.name : item.check_name }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="item.check_status > 1" class="text-26rpx" :style="{ color: statusFun(item.check_status, 'statusExpense', 'color')}">
|
<view v-if="item.check_status > 1" class="text-26rpx" :style="{ color: statusFun(item.check_status, 'statusExpense', 'color')}">
|
||||||
{{ item.check_status == 2 ? '待审核' : item.check_status_text }}
|
{{ item.check_status_text }}
|
||||||
</view>
|
</view>
|
||||||
<view class="text-26rpx text-red" v-if="item.check_status == 4">{{item.remarks}}</view>
|
<view class="text-26rpx text-red" v-if="item.check_status == 4">{{item.remarks}}</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,9 @@ import BaseData from '../audits/base-data'
|
||||||
|
|
||||||
const modalRef = ref(null)
|
const modalRef = ref(null)
|
||||||
const actions = ref([
|
const actions = ref([
|
||||||
{ name: '修改', value: 'edit' },
|
{ name: '修改', value: 'edit', disabled: false },
|
||||||
{ name: '删除', value: 'delete' },
|
{ name: '删除', value: 'delete', disabled: false },
|
||||||
|
{ name: '审核流程', value: 'check-logs', disabled: false }
|
||||||
])
|
])
|
||||||
const detail = ref({})
|
const detail = ref({})
|
||||||
|
|
||||||
|
|
@ -54,6 +55,11 @@ const confirmPicker = e => {
|
||||||
if (e.value == 'delete') {
|
if (e.value == 'delete') {
|
||||||
return modalRef.value.open()
|
return modalRef.value.open()
|
||||||
}
|
}
|
||||||
|
if (e.value == 'check-logs') {
|
||||||
|
return uni.navigateTo({
|
||||||
|
url: `/pages/audits/log?id=${detail.value.workflow_check.id}`
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const onSubmit = async () => {
|
const onSubmit = async () => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -68,6 +74,7 @@ const onSubmit = async () => {
|
||||||
title: "删除成功",
|
title: "删除成功",
|
||||||
icon: "none"
|
icon: "none"
|
||||||
})
|
})
|
||||||
|
uni.$emit('refresh')
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
|
|
@ -77,19 +84,14 @@ const onSubmit = async () => {
|
||||||
}
|
}
|
||||||
onLoad(options => {
|
onLoad(options => {
|
||||||
id.value = options.id
|
id.value = options.id
|
||||||
http
|
http.get(`/hr/offical-bussiness/${options.id}`).then(res => {
|
||||||
.request({
|
detail.value = res
|
||||||
url: `/hr/offical-bussiness/${options.id}`,
|
let status = res.workflow_check.check_status
|
||||||
method: "GET",
|
if ([2, 3].indexOf(status) != -1) {
|
||||||
header: {
|
actions.value[0].disabled = true
|
||||||
Accept: "application/json"
|
actions.value[1].disabled = true
|
||||||
}
|
// actions.value.splice(0, 2)
|
||||||
})
|
}
|
||||||
.then(res => {
|
})
|
||||||
detail.value = res
|
|
||||||
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
|
|
||||||
actions.value = []
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
<ListItem
|
<ListItem
|
||||||
v-for="item in list" :key="item.id"
|
v-for="item in list" :key="item.id"
|
||||||
title="出差报备"
|
title="出差报备"
|
||||||
:status-text="item.check_status_text"
|
:status-text="statusFun(item.check_status, 'statusExpense2', 'name')"
|
||||||
:status-color="statusFun(item.check_status, 'statusExpense', 'color')"
|
:status-color="statusFun(item.check_status, 'statusExpense', 'color')"
|
||||||
:body="[
|
:body="[
|
||||||
{label: '申请人: ', value: item.check.subject.employee.name},
|
{label: '申请人: ', value: item.check.subject.employee.name},
|
||||||
|
|
|
||||||
|
|
@ -1,56 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="px-base" v-if="detail">
|
<view class="px-base" v-if="detail">
|
||||||
<CuNavbar title="合同详情">
|
<CuNavbar title="合同详情">
|
||||||
<template v-if="actions.length > 0" #right>
|
<template #right>
|
||||||
<uv-icon color="white" @click="open" name="more-dot-fill"></uv-icon>
|
<uv-icon color="white" @click="open" name="more-dot-fill"></uv-icon>
|
||||||
</template>
|
</template>
|
||||||
</CuNavbar>
|
</CuNavbar>
|
||||||
<view class="mt-30rpx card-shadow bg-white rounded-19rpx px-base text-[#333333] text-27rpx">
|
<view class="mt-30rpx card-shadow bg-white rounded-19rpx px-base text-[#333333] text-27rpx">
|
||||||
<BaseData :data="detail" :colums="columns" />
|
<BaseData :data="detail" :colums="columns" />
|
||||||
<!-- <view class="py-20rpx flex items-center justify-between">
|
|
||||||
<view>上传人</view>
|
|
||||||
<view class="text-hex-999999">{{ detail.employee.name }}</view>
|
|
||||||
</view>
|
|
||||||
<uv-line color="#f5f5f5"></uv-line>
|
|
||||||
<view class="py-20rpx flex items-center justify-between">
|
|
||||||
<view>电话号码</view>
|
|
||||||
<view class="text-hex-999999">{{ detail.employee.phone }}</view>
|
|
||||||
</view>
|
|
||||||
<uv-line color="#f5f5f5"></uv-line>
|
|
||||||
<view class="py-20rpx flex items-center justify-between">
|
|
||||||
<view>上传时间</view>
|
|
||||||
<view class="text-hex-999999">{{
|
|
||||||
timeFormat(detail.created_at, 'yyyy-mm-dd hh:MM')
|
|
||||||
}}</view>
|
|
||||||
</view>
|
|
||||||
<uv-line color="#f5f5f5"></uv-line>
|
|
||||||
<view class="py-20rpx flex items-center justify-between">
|
|
||||||
<view>合同名称</view>
|
|
||||||
<view class="text-hex-999999">{{ detail.name }}</view>
|
|
||||||
</view>
|
|
||||||
<view class="py-20rpx flex items-center justify-between">
|
|
||||||
<view>合同内容</view>
|
|
||||||
</view>
|
|
||||||
<uv-scroll-list :indicator="false">
|
|
||||||
<view class="space-x-15rpx flex">
|
|
||||||
<view v-for="(item, index) in detail.images" :key="index">
|
|
||||||
<image
|
|
||||||
:src="item"
|
|
||||||
mode="heightFix"
|
|
||||||
style="height: 160rpx"
|
|
||||||
></image>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</uv-scroll-list>
|
|
||||||
<uv-line></uv-line>
|
|
||||||
<view class="py-20rpx flex items-center justify-between">
|
|
||||||
<view>审核状态</view>
|
|
||||||
<view class="text-hex-999999 mt-20rpx">{{ detail.workflow_check.check_status_text }}</view>
|
|
||||||
</view>
|
|
||||||
<view v-if="detail.workflow_check.check_status == 4" class="py-20rpx">
|
|
||||||
<view>未通过原因</view>
|
|
||||||
<view class="text-hex-999999 mt-20rpx">{{ detail.workflow_check.check_remarks }}</view>
|
|
||||||
</view> -->
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<uv-action-sheet ref="pickerRef" :actions="actions" @select="confirmPicker" />
|
<uv-action-sheet ref="pickerRef" :actions="actions" @select="confirmPicker" />
|
||||||
|
|
@ -66,8 +22,9 @@ import { timeFormat } from '@climblee/uv-ui/libs/function/index'
|
||||||
import BaseData from '../audits/base-data'
|
import BaseData from '../audits/base-data'
|
||||||
const modalRef = ref(null)
|
const modalRef = ref(null)
|
||||||
const actions = ref([
|
const actions = ref([
|
||||||
{ name: '修改', value: 'edit' },
|
{ name: '修改', value: 'edit', disabled: false },
|
||||||
{ name: '删除', value: 'delete' },
|
{ name: '删除', value: 'delete', disabled: false },
|
||||||
|
{ name: '审核流程', value: 'check-logs', disabled: false }
|
||||||
])
|
])
|
||||||
const detail = ref()
|
const detail = ref()
|
||||||
const pickerRef = ref(null)
|
const pickerRef = ref(null)
|
||||||
|
|
@ -95,20 +52,20 @@ const confirmPicker = (e) => {
|
||||||
if (e.value == 'delete') {
|
if (e.value == 'delete') {
|
||||||
return modalRef.value.open()
|
return modalRef.value.open()
|
||||||
}
|
}
|
||||||
|
if (e.value == 'check-logs') {
|
||||||
|
return uni.navigateTo({
|
||||||
|
url: `/pages/audits/log?id=${detail.value.workflow_check.id}`
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const onSubmit = async () => {
|
const onSubmit = async () => {
|
||||||
try {
|
try {
|
||||||
await http.request({
|
await http.delete(`/agreements/${id.value}`)
|
||||||
url: `/agreements/${id.value}`,
|
|
||||||
method: 'DELETE',
|
|
||||||
header: {
|
|
||||||
Accept: 'application/json',
|
|
||||||
},
|
|
||||||
})
|
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '删除成功',
|
title: '删除成功',
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
})
|
})
|
||||||
|
uni.$emit('refresh')
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
|
|
@ -118,19 +75,14 @@ const onSubmit = async () => {
|
||||||
}
|
}
|
||||||
onLoad((options) => {
|
onLoad((options) => {
|
||||||
id.value = options.id
|
id.value = options.id
|
||||||
http
|
http.get(`/agreements/${options.id}`).then((res) => {
|
||||||
.request({
|
detail.value = res
|
||||||
url: `/agreements/${options.id}`,
|
let status = res.workflow_check.check_status
|
||||||
method: 'GET',
|
if ([2, 3].indexOf(status) != -1) {
|
||||||
header: {
|
actions.value[0].disabled = true
|
||||||
Accept: 'application/json',
|
actions.value[1].disabled = true
|
||||||
},
|
// actions.value.splice(0, 2)
|
||||||
})
|
}
|
||||||
.then((res) => {
|
})
|
||||||
detail.value = res
|
|
||||||
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
|
|
||||||
actions.value = []
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,7 @@
|
||||||
<view>
|
<view>
|
||||||
<CuNavbar title="报销详情">
|
<CuNavbar title="报销详情">
|
||||||
<template #right>
|
<template #right>
|
||||||
<uv-icon
|
<uv-icon color="white" @click="open" name="more-dot-fill"></uv-icon>
|
||||||
v-if="data?.workflow_check?.check_status == 4"
|
|
||||||
color="white"
|
|
||||||
@click="open"
|
|
||||||
name="more-dot-fill"
|
|
||||||
></uv-icon>
|
|
||||||
</template>
|
</template>
|
||||||
</CuNavbar>
|
</CuNavbar>
|
||||||
<view class="px-base mt-30rpx">
|
<view class="px-base mt-30rpx">
|
||||||
|
|
@ -16,21 +11,9 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<uv-action-sheet
|
<uv-action-sheet ref="actionSheet" :actions="actions" @select="select" />
|
||||||
ref="actionSheet"
|
|
||||||
:actions="actionlist"
|
|
||||||
@select="select"
|
|
||||||
cancelText="取消"
|
|
||||||
>
|
|
||||||
</uv-action-sheet>
|
|
||||||
|
|
||||||
<uv-modal
|
<uv-modal ref="modalRef" title="提示" content="确定删除吗?" @confirm="onDelete" :showCancelButton="true"></uv-modal>
|
||||||
ref="modalRef"
|
|
||||||
title="提示"
|
|
||||||
content="确定删除吗?"
|
|
||||||
@confirm="onDelete"
|
|
||||||
:showCancelButton="true"
|
|
||||||
></uv-modal>
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|
@ -40,9 +23,10 @@ import { ref } from 'vue'
|
||||||
import { onLoad } from '@dcloudio/uni-app'
|
import { onLoad } from '@dcloudio/uni-app'
|
||||||
import { http } from '@/utils/request'
|
import { http } from '@/utils/request'
|
||||||
const modalRef = ref(null)
|
const modalRef = ref(null)
|
||||||
const actionlist = ref([
|
const actions = ref([
|
||||||
{ name: '修改', value: 'edit' },
|
{ name: '修改', value: 'edit', disabled: false },
|
||||||
{ name: '删除', value: 'delete' },
|
{ name: '删除', value: 'delete', disabled: false },
|
||||||
|
{ name: '审核流程', value: 'check-logs', disabled: false }
|
||||||
])
|
])
|
||||||
|
|
||||||
const colums = [
|
const colums = [
|
||||||
|
|
@ -108,17 +92,21 @@ const select = (e) => {
|
||||||
})
|
})
|
||||||
} else if (e.value == 'delete') {
|
} else if (e.value == 'delete') {
|
||||||
modalRef.value.open()
|
modalRef.value.open()
|
||||||
|
} else if (e.value == 'check-logs') {
|
||||||
|
return uni.navigateTo({
|
||||||
|
url: `/pages/audits/log?id=${data.value.workflow_check.id}`
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const onDelete = () => {
|
const onDelete = () => {
|
||||||
http.delete(`/reimbursements/${id.value}`).then(() => {
|
http.delete(`/reimbursements/${id.value}`).then(() => {
|
||||||
uni.$emit('refresh')
|
uni.$emit('refresh')
|
||||||
uni.navigateBack()
|
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '删除成功',
|
title: '删除成功',
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
})
|
})
|
||||||
|
uni.navigateBack()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -130,8 +118,11 @@ onLoad((option) => {
|
||||||
const getDetail = () => {
|
const getDetail = () => {
|
||||||
http.get(`/reimbursements/${id.value}`).then((res) => {
|
http.get(`/reimbursements/${id.value}`).then((res) => {
|
||||||
data.value = res
|
data.value = res
|
||||||
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
|
let status = res.workflow_check.check_status
|
||||||
actionlist.value = []
|
if ([2, 3].indexOf(status) != -1) {
|
||||||
|
actions.value[0].disabled = true
|
||||||
|
actions.value[1].disabled = true
|
||||||
|
// actions.value.splice(0, 2)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
v-for="item in list"
|
v-for="item in list"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:title="item.check.subject.type?.name"
|
:title="item.check.subject.type?.name"
|
||||||
:status-text="item.check_status == 2 ? '待审核' : item.check_status_text"
|
:status-text="statusFun(item.check_status,'statusExpense2','name')"
|
||||||
:status-color="statusFun(item.check_status,'statusExpense','color')"
|
:status-color="statusFun(item.check_status,'statusExpense','color')"
|
||||||
:body="[
|
:body="[
|
||||||
{ label: '申请人: ', value: item.check.subject.employee.name },
|
{ label: '申请人: ', value: item.check.subject.employee.name },
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,9 @@ import BaseData from '@/pages/audits/base-data.vue'
|
||||||
|
|
||||||
const modalRef = ref(null)
|
const modalRef = ref(null)
|
||||||
const actions = ref([
|
const actions = ref([
|
||||||
{ name: '修改', value: 'edit' },
|
{ name: '修改', value: 'edit', disabled: false },
|
||||||
{ name: '删除', value: 'delete' },
|
{ name: '删除', value: 'delete', disabled: false },
|
||||||
|
{ name: '审核流程', value: 'check-logs', disabled: false }
|
||||||
])
|
])
|
||||||
const detail = ref()
|
const detail = ref()
|
||||||
const pickerRef = ref(null)
|
const pickerRef = ref(null)
|
||||||
|
|
@ -82,21 +83,20 @@ const confirmPicker = e => {
|
||||||
})
|
})
|
||||||
} else if (e.value == 'delete') {
|
} else if (e.value == 'delete') {
|
||||||
modalRef.value.open()
|
modalRef.value.open()
|
||||||
|
} else if (e.value == 'check-logs') {
|
||||||
|
return uni.navigateTo({
|
||||||
|
url: `/pages/audits/log?id=${detail.value.workflow_check.id}`
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const onSubmit = async () => {
|
const onSubmit = async () => {
|
||||||
try {
|
try {
|
||||||
await http.request({
|
await http.delete(`/hr/sign-repairs/${id.value}`)
|
||||||
url: `/hr/sign-repairs/${id.value}`,
|
|
||||||
method: "DELETE",
|
|
||||||
header: {
|
|
||||||
Accept: "application/json"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "删除成功",
|
title: "删除成功",
|
||||||
icon: "none"
|
icon: "none"
|
||||||
})
|
})
|
||||||
|
uni.$emit('refresh')
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
|
|
@ -108,9 +108,13 @@ onLoad(options => {
|
||||||
id.value = options.id
|
id.value = options.id
|
||||||
http.get(`/hr/sign-repairs/${options.id}`).then(res => {
|
http.get(`/hr/sign-repairs/${options.id}`).then(res => {
|
||||||
detail.value = res
|
detail.value = res
|
||||||
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
|
let status = res.workflow_check.check_status
|
||||||
actions.value = []
|
if ([2, 3].indexOf(status) != -1) {
|
||||||
|
actions.value[0].disabled = true
|
||||||
|
actions.value[1].disabled = true
|
||||||
|
// actions.value.splice(0, 2)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
<ListItem
|
<ListItem
|
||||||
v-for="item in list" :key="item.id"
|
v-for="item in list" :key="item.id"
|
||||||
title="补卡申请"
|
title="补卡申请"
|
||||||
:status-text="item.check_status_text"
|
:status-text="statusFun(item.check_status,'statusExpense2','name')"
|
||||||
:status-color="statusFun(item.check_status,'statusExpense','color')"
|
:status-color="statusFun(item.check_status,'statusExpense','color')"
|
||||||
:body="[
|
:body="[
|
||||||
{ label: '申请人: ', value: item.check.subject.employee.name },
|
{ label: '申请人: ', value: item.check.subject.employee.name },
|
||||||
|
|
@ -71,7 +71,7 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import CuNavbar from '@/components/cu-navbar/index'
|
import CuNavbar from '@/components/cu-navbar/index'
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { onPageScroll, onReachBottom, onShow, onLoad } from '@dcloudio/uni-app'
|
import { onPageScroll, onReachBottom, onLoad } from '@dcloudio/uni-app'
|
||||||
import useMescrollMore from '@/uni_modules/mescroll-uni/hooks/useMescrollMore.js'
|
import useMescrollMore from '@/uni_modules/mescroll-uni/hooks/useMescrollMore.js'
|
||||||
import MescrollItem from '@/components/mescroll-api/more.vue'
|
import MescrollItem from '@/components/mescroll-api/more.vue'
|
||||||
import statusFun from '@/utils/status'
|
import statusFun from '@/utils/status'
|
||||||
|
|
@ -102,6 +102,7 @@ const { tabIndex, getMescroll, scrollToLastY } = useMescrollMore(
|
||||||
|
|
||||||
onLoad(() => {
|
onLoad(() => {
|
||||||
uni.$on('refresh', () => {
|
uni.$on('refresh', () => {
|
||||||
|
console.log('refresh')
|
||||||
mescrollItem0?.value?.getMescroll()?.resetUpScroll()
|
mescrollItem0?.value?.getMescroll()?.resetUpScroll()
|
||||||
mescrollItem1?.value?.getMescroll()?.resetUpScroll()
|
mescrollItem1?.value?.getMescroll()?.resetUpScroll()
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="px-base" v-if="detail">
|
<view class="px-base" v-if="detail">
|
||||||
<CuNavbar title="加班申请">
|
<CuNavbar title="加班申请">
|
||||||
<template v-if="actions.length > 0" #right>
|
<template #right>
|
||||||
<uv-icon color="white" @click="open" name="more-dot-fill"></uv-icon>
|
<uv-icon color="white" @click="open" name="more-dot-fill"></uv-icon>
|
||||||
</template>
|
</template>
|
||||||
</CuNavbar>
|
</CuNavbar>
|
||||||
|
|
@ -33,8 +33,9 @@ import BaseData from '../audits/base-data'
|
||||||
|
|
||||||
const modalRef = ref(null)
|
const modalRef = ref(null)
|
||||||
const actions = ref([
|
const actions = ref([
|
||||||
{ name: '修改', value: 'edit' },
|
{ name: '修改', value: 'edit', disabled: false },
|
||||||
{ name: '删除', value: 'delete' },
|
{ name: '删除', value: 'delete', disabled: false },
|
||||||
|
{ name: '审核流程', value: 'check-logs', disabled: false }
|
||||||
])
|
])
|
||||||
const detail = ref({})
|
const detail = ref({})
|
||||||
const pickerRef = ref(null)
|
const pickerRef = ref(null)
|
||||||
|
|
@ -70,20 +71,20 @@ const confirmPicker = (e) => {
|
||||||
if (e.value == 'delete') {
|
if (e.value == 'delete') {
|
||||||
return modalRef.value.open()
|
return modalRef.value.open()
|
||||||
}
|
}
|
||||||
|
if (e.value == 'check-logs') {
|
||||||
|
return uni.navigateTo({
|
||||||
|
url: `/pages/audits/log?id=${detail.value.workflow_check.id}`
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const onSubmit = async () => {
|
const onSubmit = async () => {
|
||||||
try {
|
try {
|
||||||
await http.request({
|
await http.delete(`/hr/overtimes/${id.value}`)
|
||||||
url: `/hr/overtimes/${id.value}`,
|
|
||||||
method: 'DELETE',
|
|
||||||
header: {
|
|
||||||
Accept: 'application/json',
|
|
||||||
},
|
|
||||||
})
|
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '删除成功',
|
title: '删除成功',
|
||||||
icon: 'none',
|
icon: 'none',
|
||||||
})
|
})
|
||||||
|
uni.$emit('refresh')
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
|
|
@ -93,19 +94,14 @@ const onSubmit = async () => {
|
||||||
}
|
}
|
||||||
onLoad((options) => {
|
onLoad((options) => {
|
||||||
id.value = options.id
|
id.value = options.id
|
||||||
http
|
http.get(`/hr/overtimes/${options.id}`).then((res) => {
|
||||||
.request({
|
detail.value = res
|
||||||
url: `/hr/overtimes/${options.id}`,
|
let status = res.workflow_check.check_status
|
||||||
method: 'GET',
|
if ([2, 3].indexOf(status) != -1) {
|
||||||
header: {
|
actions.value[0].disabled = true
|
||||||
Accept: 'application/json',
|
actions.value[1].disabled = true
|
||||||
},
|
// actions.value.splice(0, 2)
|
||||||
})
|
}
|
||||||
.then((res) => {
|
})
|
||||||
detail.value = res
|
|
||||||
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
|
|
||||||
actions.value = []
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@
|
||||||
<ListItem
|
<ListItem
|
||||||
v-for="item in list" :key="item.id"
|
v-for="item in list" :key="item.id"
|
||||||
title="加班报备"
|
title="加班报备"
|
||||||
:status-text="item.check_status_text"
|
:status-text="statusFun( item.check_status,'statusExpense2','name')"
|
||||||
:status-color="statusFun( item.check_status,'statusExpense','color')"
|
:status-color="statusFun( item.check_status,'statusExpense','color')"
|
||||||
:body="[
|
:body="[
|
||||||
{ label:'申请人: ', value: item.check.subject.employee.name },
|
{ label:'申请人: ', value: item.check.subject.employee.name },
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="px-base">
|
<view class="px-base">
|
||||||
<CuNavbar title="任务详情"></CuNavbar>
|
<CuNavbar title="任务详情">
|
||||||
|
<template #right>
|
||||||
|
<view class="text-sm text-white" @click="checkLogs">审核流程</view>
|
||||||
|
</template>
|
||||||
|
</CuNavbar>
|
||||||
<view class="mt-30rpx card-shadow bg-white rounded-19rpx px-base text-[#333333] text-27rpx">
|
<view class="mt-30rpx card-shadow bg-white rounded-19rpx px-base text-[#333333] text-27rpx">
|
||||||
<BaseData :data="data" :colums="baseColums" />
|
<BaseData :data="data" :colums="baseColums" />
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -60,6 +64,14 @@ const getDetail = async () => {
|
||||||
data.value = resdata
|
data.value = resdata
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const checkLogs = () => {
|
||||||
|
if (data.value.taskable.workflow_check.id) {
|
||||||
|
return uni.navigateTo({
|
||||||
|
url: `/pages/audits/log?id=${data.value.taskable.workflow_check.id}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const getValue = (obj, path) => {
|
const getValue = (obj, path) => {
|
||||||
return path.split('.').reduce((acc, key) => (acc ? acc[key] : undefined), obj)
|
return path.split('.').reduce((acc, key) => (acc ? acc[key] : undefined), obj)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
v-for="item in list"
|
v-for="item in list"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:title="item.check.subject.task.name"
|
:title="item.check.subject.task.name"
|
||||||
:status-text="item.check_status_text"
|
:status-text="statusFun(item.check_status, 'statusExpense2' ,'name')"
|
||||||
:status-color="statusFun(item.check_status, 'statusExpense' ,'color')"
|
:status-color="statusFun(item.check_status, 'statusExpense' ,'color')"
|
||||||
:body="[
|
:body="[
|
||||||
{label: '任务时间: ', value: item.check.subject.task.start_format + '-' + item.check.subject.task.end_format},
|
{label: '任务时间: ', value: item.check.subject.task.start_format + '-' + item.check.subject.task.end_format},
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<CuNavbar title="升职申请"></CuNavbar>
|
<CuNavbar title="升职申请">
|
||||||
|
<template #right>
|
||||||
|
<view class="text-sm text-white" @click="checkLogs">审核流程</view>
|
||||||
|
</template>
|
||||||
|
</CuNavbar>
|
||||||
<uv-sticky bgColor="white">
|
<uv-sticky bgColor="white">
|
||||||
<view class="px-base box-shadow text-28rpx">
|
<view class="px-base box-shadow text-28rpx">
|
||||||
<view class="px-base">
|
<view class="px-base">
|
||||||
|
|
@ -50,4 +54,13 @@ onLoad((options) => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const checkLogs = () => {
|
||||||
|
if (data.value.workflow_check.id) {
|
||||||
|
return uni.navigateTo({
|
||||||
|
url: `/pages/audits/log?id=${data.value.workflow_check.id}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
v-for="item in list"
|
v-for="item in list"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:title="item.check.subject.job.name"
|
:title="item.check.subject.job.name"
|
||||||
:status-text="item.check_status_text"
|
:status-text="statusFun(item.check_status, 'statusExpense2', 'name')"
|
||||||
:status-color="statusFun(item.check_status, 'statusExpense', 'color')"
|
:status-color="statusFun(item.check_status, 'statusExpense', 'color')"
|
||||||
:body="[
|
:body="[
|
||||||
{ label: '申请人: ', value: item.check.subject.employee.name },
|
{ label: '申请人: ', value: item.check.subject.employee.name },
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,27 @@ const data = {
|
||||||
name: '已取消',
|
name: '已取消',
|
||||||
color: '#999999'
|
color: '#999999'
|
||||||
}],
|
}],
|
||||||
|
statusExpense2: [{
|
||||||
|
value: 1,
|
||||||
|
name: '待提审',
|
||||||
|
color: '#f56c6c'
|
||||||
|
}, {
|
||||||
|
value: 2,
|
||||||
|
name: '待审核',
|
||||||
|
color: '#f56c6c'
|
||||||
|
}, {
|
||||||
|
value: 3,
|
||||||
|
name: '审核通过',
|
||||||
|
color: '#3c9cff'
|
||||||
|
}, {
|
||||||
|
value: 4,
|
||||||
|
name: '未通过',
|
||||||
|
color: '#999999'
|
||||||
|
}, {
|
||||||
|
value: 5,
|
||||||
|
name: '已取消',
|
||||||
|
color: '#999999'
|
||||||
|
}],
|
||||||
//清洁任务
|
//清洁任务
|
||||||
task_hygienes: [{
|
task_hygienes: [{
|
||||||
value: 1,
|
value: 1,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue