Files
ks-app-employment-service/packageB/priority/components/taskDetail.vue
2026-02-11 17:16:17 +08:00

294 lines
6.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<AppLayout :title="title" :show-bg-image="false" >
<view class="main-list" :style="getBackgroundStyle('k.png')">
<view class="list-top">
<view class="list-title">
<text>帮扶任务详情</text>
<view class="title-line"></view>
</view>
</view>
<view class="form-container">
<view class="form-item">
<view class="item-label">
任务名称
</view>
<view class="item-value">
{{formData.taskName}}
</view>
</view>
<view class="form-item">
<view class="item-label">
任务类型
</view>
<view class="item-value">
<!-- {{getabelByValue(formData.value.taskType,props.taskTypeOptions)}} -->
{{formData.taskType}}
</view>
</view>
<view class="form-item">
<view class="item-label">
优先级
</view>
<view class="item-value">
{{formData.priority}}
</view>
</view>
<view class="form-item">
<view class="item-label">
目标人数
</view>
<view class="item-value">
{{formData.taskAllocation.goalPersonCount}}
</view>
</view>
<view class="form-item">
<view class="item-label">
分配区域
</view>
<view class="item-value">
{{formData.taskAllocation.executeDeptName}}
</view>
</view>
<view class="form-item">
<view class="item-label">
创建时间
</view>
<view class="item-value">
{{formData.createTime}}
</view>
</view>
<view class="form-item">
<view class="item-label">
截止时间
</view>
<view class="item-value">
{{formData.taskAllocation.deadline}}
</view>
</view>
<view class="form-item">
<view class="item-label">
分配状态
</view>
<view class="item-value">
{{formData.allocationStatus}}
</view>
</view>
<view class="form-item">
<view class="item-label">
分配说明
</view>
<view class="item-value">
{{formData.taskAllocation.allocationNote?formData.taskAllocation.allocationNote:'暂无'}}
</view>
</view>
<!-- 按钮组 -->
<view class="button-group">
<button class="btn submit-btn" @click="handleCancel">关闭</button>
</view>
</view>
</view>
</AppLayout>
</template>
<script setup>
import { inject, ref, reactive,onMounted } from 'vue';
import { onLoad } from '@dcloudio/uni-app';
const { $api, navTo, navBack } = inject('globalFunction');
import config from "@/config.js"
const props = defineProps({
taskTypeOptions: {
type: Array,
required: true,
default: () => []
},
priorityOptions:{
type: Array,
required: true,
default: () => []
},
executeDeptOptions:{
type: Array,
required: true,
default: () => []
},
allocationStatusOptions:{
type: Array,
required: true,
default: () => []
},
currentItem:{
type: String,
required: true,
default: ''
},
})
const title = ref('');
const formData = reactive({
taskName: '',
taskType: '',
priority: '',
createTime:'',
allocationStatus:'',
taskAllocation: {
goalPersonCount: null,
executeDeptId: '',
executeDeptName: '',
executeDeptAncestors: '',
allocationStatus: '1',
allocationNote: '',
deadline: null,
goalPersonList: []
}
})
// 表单引用
const formRef = ref(null)
const baseUrl = config.imgBaseUrl
const getBackgroundStyle = (imageName) => ({
backgroundImage: `url(${baseUrl}/dispatch/${imageName})`,
backgroundSize: 'cover', // 覆盖整个容器
backgroundPosition: 'center', // 居中
backgroundRepeat: 'no-repeat'
});
const emit = defineEmits(['update:showView'])
// 事件处理
function onDateChange(){}
function taskTypeChange(){}
function priorityChange(){}
function executeDeptChange(){}
const handleCancel = () => {
emit('update:showView', 'main')
}
function getDetail(){
let header={
'Authorization':uni.getStorageSync('Padmin-Token'),
'Content-Type': "application/x-www-form-urlencoded"
}
let params={
id:props.currentItem
}
$api.myRequest('/dispatch/assist/task/getTask',params,'get',9100,header).then((resData) => {
resData.data.taskType=getabelByValue(resData.data.taskType,props.taskTypeOptions)
resData.data.priority=getabelByValue(resData.data.priority,props.priorityOptions)
let allocationStatus=resData.data.taskAllocation.allocationStatus
resData.data.allocationStatus=getabelByValue(allocationStatus,props.allocationStatusOptions)
Object.assign(formData, resData.data)
});
}
function getabelByValue(value,arr) {
if (!Array.isArray(arr)) {
return ''
}
const item = arr.find(item => item.value === String(value))
return item ? item.text : '暂无'
}
onMounted(() => {
getDetail()
});
</script>
<style lang="stylus" scoped>
image
height: 100%
width: 100%
.main-list
background-color: #ffffff
padding: 20rpx 20rpx 28rpx 20rpx
margin: 30rpx 30rpx
box-shadow: 0px 3px 20px 0px rgba(0,105,234,0.1)
border-radius: 12px
.list-top
display: flex
align-items: center
justify-content: space-between
.list-title
font-weight: bold
font-size: 36rpx
color: #404040
position: relative
.title-line
position: absolute
bottom: -10rpx
left: 70rpx
width: 70rpx
height: 8rpx
background: linear-gradient(90deg, #FFAD58 0%, #FF7A5B 100%)
border-radius: 4rpx
.input,
.picker
flex: 1
.picker-value
color: #666
.form-container
margin-top: 30rpx
.form-item
display: flex
align-items: center
margin-bottom: 20rpx
.item-label
width:200rpx
text-align: left
font-size: 30rpx
color: #606266
height: 72rpx
padding: 0 24rpx 0 0
vertical-align: middle
flex-shrink: 0
box-sizing: border-box
.item-value
color: #333
font-size: 30rpx
height: 72rpx
padding: 0 24rpx 0 0
vertical-align: middle
flex-shrink: 0
box-sizing: border-box
:deep(.uni-forms-item__label)
width: 194rpx !important
font-size: 28rpx;
color: #404040;
.button-group {
display: flex;
justify-content: space-between;
padding: 40rpx 20rpx 20rpx;
}
.btn {
width: 45%;
height: 80rpx;
font-size: 30rpx;
border-radius: 8rpx;
}
.reset-btn {
background-color: #D8E9FF;
color: #1176FF;
}
.submit-btn {
background-color: #368BFF;
color: white;
}
.choice-btn{
width: 100%;
height: 70rpx;
font-size: 28rpx;
border-radius: 8rpx;
background-color: #368BFF;
color: white;
margin-left: 0;
}
:deep(.uni-easyinput__content)
background: rgba(0,0,0,0) !important
</style>