申请详细-查看审核流程

main
panliang 2024-04-29 13:38:36 +08:00
parent 7e3da0df72
commit 74f0c91935
20 changed files with 226 additions and 306 deletions

View File

@ -16,7 +16,7 @@
<template v-if="images && images.length > 0">
<uv-scroll-list :indicator="false">
<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>
</view>
</view>

View File

@ -21,8 +21,9 @@ import BaseData from '../audits/base-data'
const modalRef = ref(null)
const actions = ref([
{ name: '修改', value: 'edit' },
{ name: '删除', value: 'delete' },
{ name: '修改', value: 'edit', disabled: false },
{ name: '删除', value: 'delete', disabled: false },
{ name: '审核流程', value: 'check-logs', disabled: false }
])
const detail = ref()
const pickerRef = ref(null)
@ -52,6 +53,10 @@ const confirmPicker = e => {
}
if (e.value == 'delete') {
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 () => {
@ -67,6 +72,7 @@ const onSubmit = async () => {
title: "删除成功",
icon: "none"
})
uni.$emit('refresh')
uni.navigateBack()
} catch (error) {
console.log(error)
@ -79,8 +85,11 @@ onLoad(options => {
http.get(`/hr/holidays/${options.id}`).then(res => {
detail.value = res
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
actions.value = []
let status = res.workflow_check.check_status
if ([2, 3].indexOf(status) != -1) {
actions.value[0].disabled = true
actions.value[1].disabled = true
// actions.value.splice(0, 2)
}
})
})

View File

@ -51,7 +51,7 @@
<ListItem
v-for="item in list" :key="item.id"
title="请假申请"
:status-text="item.check_status_text"
:status-text="statusFun( item.check_status,'statusExpense2','name')"
:status-color="statusFun( item.check_status,'statusExpense','color')"
:body="[
{ label:'申请人', value: item.check.subject.employee.name },

View File

@ -15,6 +15,7 @@
singleSize="190rpx"
:urls="item.value"
:rowCount="3"
:maxCount="50"
space="18rpx"
:showMore="false"
></uv-album>

View File

@ -1,11 +1,16 @@
import { timeFormat } from '@climblee/uv-ui/libs/function'
import statusFun from '@/utils/status'
export default {
//清洁任务
task_hygienes: {
data: [
{
title: '审核状态',
dataIndex: 'workflow_check.check_status_text',
dataIndex: 'check_status',
format: (value) => {
return statusFun(value, 'statusExpense2', 'name')
}
},
{
title: '未通过理由',
@ -49,6 +54,21 @@ export default {
include: 'check.subject.type,check.subject.employee,check.subject.store',
},
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: "申请人",
dataIndex: "check.subject.employee.name"
@ -83,14 +103,7 @@ export default {
dataIndex: 'check.subject.photos',
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',
},
data: [
{
title: '审核状态',
dataIndex: 'check_status_text',
},
{
title: '未通过理由',
dataIndex: 'remarks',
labelPosition: 'top',
isShow: (item) => {
return item?.check_status == 4
},
}, {
title: '晋升职位',
dataIndex: 'check.subject.job.name',
}, {
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',
}]
{ title: '审核状态', dataIndex: 'check_status', format: (value) => statusFun(value, 'statusExpense2', 'name')},
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4},
{ title: '晋升职位', dataIndex: 'check.subject.job.name'},
{ 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: {
params: {
include: 'check.subject.employee,check.subject.store',
},
data: [{
title: '审核状态',
dataIndex: 'check_status_text',
},
{
title: '未通过理由',
dataIndex: 'remarks',
labelPosition: 'top',
isShow: (item) => {
return item?.check_status == 4
},
}, {
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
}
}]
data: [
{ title: '审核状态', dataIndex: 'check_status', format: (value) => statusFun(value, 'statusExpense2', 'name')},
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4},
{ 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) => e == 1 ? '否' : '是'},
{ title: '外勤事由', dataIndex: 'check.subject.outside_remarks', labelPosition: 'top', isShow: (item) => item?.sign_type == 2}
]
},
//请假申请
holiday_applies: {
params: {
include: 'check.subject.employee,check.subject.type,check.subject.store'
},
data: [{
title: '审核状态',
dataIndex: 'check_status_text',
},
{
title: '未通过理由',
dataIndex: 'remarks',
labelPosition: 'top',
isShow: (item) => {
return item?.check_status == 4
},
}, {
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',
}]
data: [
{ title: '审核状态', dataIndex: 'check_status', format: (value) => statusFun(value, 'statusExpense2', 'name')},
{ title: '未通过理由', dataIndex: 'remarks', labelPosition: 'top', isShow: (item) => item?.check_status == 4},
{ 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: {
params: {
include: 'check.subject.employee,check.subject.store'
},
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: 'check.subject.employee.name' },
{ title: '所属门店', dataIndex: 'check.subject.store.title' },
@ -265,7 +183,7 @@ export default {
include: 'check.subject.employee,check.subject.store'
},
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: 'check.subject.employee.name' },
{ title: '所属门店', dataIndex: 'check.subject.store.title' },
@ -280,7 +198,7 @@ export default {
include: 'check.subject.employee'
},
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: 'check.subject.employee.name' },
{ title: '合同名称', dataIndex: 'check.subject.name' },

View File

@ -13,7 +13,7 @@
<view> {{ item.check_user ? item.check_user.name : item.check_name }}</view>
</view>
<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 class="text-26rpx text-red" v-if="item.check_status == 4">{{item.remarks}}</view>
</view>

View File

@ -22,8 +22,9 @@ import BaseData from '../audits/base-data'
const modalRef = ref(null)
const actions = ref([
{ name: '修改', value: 'edit' },
{ name: '删除', value: 'delete' },
{ name: '修改', value: 'edit', disabled: false },
{ name: '删除', value: 'delete', disabled: false },
{ name: '审核流程', value: 'check-logs', disabled: false }
])
const detail = ref({})
@ -54,6 +55,11 @@ const confirmPicker = e => {
if (e.value == 'delete') {
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 () => {
try {
@ -68,6 +74,7 @@ const onSubmit = async () => {
title: "删除成功",
icon: "none"
})
uni.$emit('refresh')
uni.navigateBack()
} catch (error) {
console.log(error)
@ -77,19 +84,14 @@ const onSubmit = async () => {
}
onLoad(options => {
id.value = options.id
http
.request({
url: `/hr/offical-bussiness/${options.id}`,
method: "GET",
header: {
Accept: "application/json"
}
})
.then(res => {
detail.value = res
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
actions.value = []
}
})
http.get(`/hr/offical-bussiness/${options.id}`).then(res => {
detail.value = res
let status = res.workflow_check.check_status
if ([2, 3].indexOf(status) != -1) {
actions.value[0].disabled = true
actions.value[1].disabled = true
// actions.value.splice(0, 2)
}
})
})
</script>

View File

@ -56,7 +56,7 @@
<ListItem
v-for="item in list" :key="item.id"
title="出差报备"
:status-text="item.check_status_text"
:status-text="statusFun(item.check_status, 'statusExpense2', 'name')"
:status-color="statusFun(item.check_status, 'statusExpense', 'color')"
:body="[
{label: '申请人: ', value: item.check.subject.employee.name},

View File

@ -1,56 +1,12 @@
<template>
<view class="px-base" v-if="detail">
<CuNavbar title="合同详情">
<template v-if="actions.length > 0" #right>
<template #right>
<uv-icon color="white" @click="open" name="more-dot-fill"></uv-icon>
</template>
</CuNavbar>
<view class="mt-30rpx card-shadow bg-white rounded-19rpx px-base text-[#333333] text-27rpx">
<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>
<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'
const modalRef = ref(null)
const actions = ref([
{ name: '修改', value: 'edit' },
{ name: '删除', value: 'delete' },
{ name: '修改', value: 'edit', disabled: false },
{ name: '删除', value: 'delete', disabled: false },
{ name: '审核流程', value: 'check-logs', disabled: false }
])
const detail = ref()
const pickerRef = ref(null)
@ -95,20 +52,20 @@ const confirmPicker = (e) => {
if (e.value == 'delete') {
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 () => {
try {
await http.request({
url: `/agreements/${id.value}`,
method: 'DELETE',
header: {
Accept: 'application/json',
},
})
await http.delete(`/agreements/${id.value}`)
uni.showToast({
title: '删除成功',
icon: 'none',
})
uni.$emit('refresh')
uni.navigateBack()
} catch (error) {
console.log(error)
@ -118,19 +75,14 @@ const onSubmit = async () => {
}
onLoad((options) => {
id.value = options.id
http
.request({
url: `/agreements/${options.id}`,
method: 'GET',
header: {
Accept: 'application/json',
},
})
.then((res) => {
detail.value = res
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
actions.value = []
}
})
http.get(`/agreements/${options.id}`).then((res) => {
detail.value = res
let status = res.workflow_check.check_status
if ([2, 3].indexOf(status) != -1) {
actions.value[0].disabled = true
actions.value[1].disabled = true
// actions.value.splice(0, 2)
}
})
})
</script>

View File

@ -2,12 +2,7 @@
<view>
<CuNavbar title="报销详情">
<template #right>
<uv-icon
v-if="data?.workflow_check?.check_status == 4"
color="white"
@click="open"
name="more-dot-fill"
></uv-icon>
<uv-icon color="white" @click="open" name="more-dot-fill"></uv-icon>
</template>
</CuNavbar>
<view class="px-base mt-30rpx">
@ -16,21 +11,9 @@
</view>
</view>
<uv-action-sheet
ref="actionSheet"
:actions="actionlist"
@select="select"
cancelText="取消"
>
</uv-action-sheet>
<uv-action-sheet ref="actionSheet" :actions="actions" @select="select" />
<uv-modal
ref="modalRef"
title="提示"
content="确定删除吗?"
@confirm="onDelete"
:showCancelButton="true"
></uv-modal>
<uv-modal ref="modalRef" title="提示" content="确定删除吗?" @confirm="onDelete" :showCancelButton="true"></uv-modal>
</view>
</template>
<script setup>
@ -40,9 +23,10 @@ import { ref } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { http } from '@/utils/request'
const modalRef = ref(null)
const actionlist = ref([
{ name: '修改', value: 'edit' },
{ name: '删除', value: 'delete' },
const actions = ref([
{ name: '修改', value: 'edit', disabled: false },
{ name: '删除', value: 'delete', disabled: false },
{ name: '审核流程', value: 'check-logs', disabled: false }
])
const colums = [
@ -108,17 +92,21 @@ const select = (e) => {
})
} else if (e.value == 'delete') {
modalRef.value.open()
} else if (e.value == 'check-logs') {
return uni.navigateTo({
url: `/pages/audits/log?id=${data.value.workflow_check.id}`
})
}
}
const onDelete = () => {
http.delete(`/reimbursements/${id.value}`).then(() => {
uni.$emit('refresh')
uni.navigateBack()
uni.showToast({
title: '删除成功',
icon: 'none',
})
uni.navigateBack()
})
}
@ -130,8 +118,11 @@ onLoad((option) => {
const getDetail = () => {
http.get(`/reimbursements/${id.value}`).then((res) => {
data.value = res
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
actionlist.value = []
let status = res.workflow_check.check_status
if ([2, 3].indexOf(status) != -1) {
actions.value[0].disabled = true
actions.value[1].disabled = true
// actions.value.splice(0, 2)
}
})
}

View File

@ -55,7 +55,7 @@
v-for="item in list"
:key="item.id"
: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')"
:body="[
{ label: '申请人: ', value: item.check.subject.employee.name },

View File

@ -22,8 +22,9 @@ import BaseData from '@/pages/audits/base-data.vue'
const modalRef = ref(null)
const actions = ref([
{ name: '修改', value: 'edit' },
{ name: '删除', value: 'delete' },
{ name: '修改', value: 'edit', disabled: false },
{ name: '删除', value: 'delete', disabled: false },
{ name: '审核流程', value: 'check-logs', disabled: false }
])
const detail = ref()
const pickerRef = ref(null)
@ -82,21 +83,20 @@ const confirmPicker = e => {
})
} else if (e.value == 'delete') {
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 () => {
try {
await http.request({
url: `/hr/sign-repairs/${id.value}`,
method: "DELETE",
header: {
Accept: "application/json"
}
})
await http.delete(`/hr/sign-repairs/${id.value}`)
uni.showToast({
title: "删除成功",
icon: "none"
})
uni.$emit('refresh')
uni.navigateBack()
} catch (error) {
console.log(error)
@ -108,9 +108,13 @@ onLoad(options => {
id.value = options.id
http.get(`/hr/sign-repairs/${options.id}`).then(res => {
detail.value = res
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
actions.value = []
let status = res.workflow_check.check_status
if ([2, 3].indexOf(status) != -1) {
actions.value[0].disabled = true
actions.value[1].disabled = true
// actions.value.splice(0, 2)
}
})
})
</script>

View File

@ -52,7 +52,7 @@
<ListItem
v-for="item in list" :key="item.id"
title="补卡申请"
:status-text="item.check_status_text"
:status-text="statusFun(item.check_status,'statusExpense2','name')"
:status-color="statusFun(item.check_status,'statusExpense','color')"
:body="[
{ label: '申请人: ', value: item.check.subject.employee.name },
@ -71,7 +71,7 @@
<script setup>
import CuNavbar from '@/components/cu-navbar/index'
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 MescrollItem from '@/components/mescroll-api/more.vue'
import statusFun from '@/utils/status'
@ -102,6 +102,7 @@ const { tabIndex, getMescroll, scrollToLastY } = useMescrollMore(
onLoad(() => {
uni.$on('refresh', () => {
console.log('refresh')
mescrollItem0?.value?.getMescroll()?.resetUpScroll()
mescrollItem1?.value?.getMescroll()?.resetUpScroll()
})

View File

@ -1,7 +1,7 @@
<template>
<view class="px-base" v-if="detail">
<CuNavbar title="加班申请">
<template v-if="actions.length > 0" #right>
<template #right>
<uv-icon color="white" @click="open" name="more-dot-fill"></uv-icon>
</template>
</CuNavbar>
@ -33,8 +33,9 @@ import BaseData from '../audits/base-data'
const modalRef = ref(null)
const actions = ref([
{ name: '修改', value: 'edit' },
{ name: '删除', value: 'delete' },
{ name: '修改', value: 'edit', disabled: false },
{ name: '删除', value: 'delete', disabled: false },
{ name: '审核流程', value: 'check-logs', disabled: false }
])
const detail = ref({})
const pickerRef = ref(null)
@ -70,20 +71,20 @@ const confirmPicker = (e) => {
if (e.value == 'delete') {
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 () => {
try {
await http.request({
url: `/hr/overtimes/${id.value}`,
method: 'DELETE',
header: {
Accept: 'application/json',
},
})
await http.delete(`/hr/overtimes/${id.value}`)
uni.showToast({
title: '删除成功',
icon: 'none',
})
uni.$emit('refresh')
uni.navigateBack()
} catch (error) {
console.log(error)
@ -93,19 +94,14 @@ const onSubmit = async () => {
}
onLoad((options) => {
id.value = options.id
http
.request({
url: `/hr/overtimes/${options.id}`,
method: 'GET',
header: {
Accept: 'application/json',
},
})
.then((res) => {
detail.value = res
if ([2, 3].indexOf(res.workflow_check.check_status) != -1) {
actions.value = []
}
})
http.get(`/hr/overtimes/${options.id}`).then((res) => {
detail.value = res
let status = res.workflow_check.check_status
if ([2, 3].indexOf(status) != -1) {
actions.value[0].disabled = true
actions.value[1].disabled = true
// actions.value.splice(0, 2)
}
})
})
</script>

View File

@ -53,7 +53,7 @@
<ListItem
v-for="item in list" :key="item.id"
title="加班报备"
:status-text="item.check_status_text"
:status-text="statusFun( item.check_status,'statusExpense2','name')"
:status-color="statusFun( item.check_status,'statusExpense','color')"
:body="[
{ label:'申请人: ', value: item.check.subject.employee.name },

View File

@ -1,6 +1,10 @@
<template>
<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">
<BaseData :data="data" :colums="baseColums" />
</view>
@ -60,6 +64,14 @@ const getDetail = async () => {
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) => {
return path.split('.').reduce((acc, key) => (acc ? acc[key] : undefined), obj)
}

View File

@ -51,7 +51,7 @@
v-for="item in list"
:key="item.id"
: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')"
:body="[
{label: '任务时间: ', value: item.check.subject.task.start_format + '-' + item.check.subject.task.end_format},

View File

@ -1,6 +1,10 @@
<template>
<view>
<CuNavbar title="升职申请"></CuNavbar>
<CuNavbar title="升职申请">
<template #right>
<view class="text-sm text-white" @click="checkLogs"></view>
</template>
</CuNavbar>
<uv-sticky bgColor="white">
<view class="px-base box-shadow text-28rpx">
<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>

View File

@ -72,7 +72,7 @@
v-for="item in list"
:key="item.id"
: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')"
:body="[
{ label: '申请人: ', value: item.check.subject.employee.name },

View File

@ -33,6 +33,27 @@ const data = {
name: '已取消',
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: [{
value: 1,