类型调整、员工表去除多余按键、测算页面红绿对换
This commit is contained in:
@@ -139,13 +139,13 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="statusReasonLabel" :prop="statusReasonProp">
|
||||
<el-input
|
||||
v-if="formData.projectStatus === '暂停'"
|
||||
v-if="formData.projectStatus === PROJECT_STATUS.paused"
|
||||
v-model="formData.pauseReason"
|
||||
maxlength="255"
|
||||
placeholder="请输入暂停原因"
|
||||
/>
|
||||
<el-input
|
||||
v-else-if="formData.projectStatus === '中止'"
|
||||
v-else-if="formData.projectStatus === PROJECT_STATUS.terminated"
|
||||
v-model="formData.terminateReason"
|
||||
maxlength="255"
|
||||
placeholder="请输入中止原因"
|
||||
@@ -276,37 +276,19 @@
|
||||
import type { FormRules } from 'element-plus'
|
||||
import * as EmployeeApi from '@/api/tjt/employee'
|
||||
import * as ProjectApi from '@/api/tjt/project'
|
||||
import {
|
||||
DEFAULT_INNOVATION_OUTPUT_RATE,
|
||||
OUTPUT_SPLIT_ROLE,
|
||||
PROJECT_CATEGORY_OPTIONS,
|
||||
PROJECT_STATUS,
|
||||
PROJECT_STATUS_OPTIONS,
|
||||
PROJECT_TYPE_OPTIONS
|
||||
} from '@/views/tjt/shared/planning'
|
||||
|
||||
defineOptions({ name: 'TjtProjectForm' })
|
||||
|
||||
const ROLE_PROJECT_MANAGER = 'project_manager'
|
||||
const ROLE_ENGINEERING_PRINCIPAL = 'engineering_principal'
|
||||
|
||||
const PROJECT_TYPE_OPTIONS = [
|
||||
{ label: '建筑工程', value: '建筑工程' },
|
||||
{ label: '精装工程', value: '精装工程' },
|
||||
{ label: '综合工程', value: '综合工程' },
|
||||
{ label: '专项设计', value: '专项设计' },
|
||||
{ label: 'BIM设计', value: 'BIM设计' },
|
||||
{ label: '其他', value: '其他' }
|
||||
]
|
||||
|
||||
const PROJECT_CATEGORY_OPTIONS = [
|
||||
{ label: '住宅', value: '住宅' },
|
||||
{ label: '公建', value: '公建' },
|
||||
{ label: '工业', value: '工业' },
|
||||
{ label: '园林景观', value: '园林景观' },
|
||||
{ label: '其他', value: '其他' }
|
||||
]
|
||||
|
||||
const PROJECT_STATUS_OPTIONS = [
|
||||
{ label: '进行中', value: '进行中' },
|
||||
{ label: '完成', value: '完成' },
|
||||
{ label: '暂停', value: '暂停' },
|
||||
{ label: '中止', value: '中止' }
|
||||
]
|
||||
|
||||
const DEFAULT_INNOVATION_OUTPUT_RATE = 0.01
|
||||
const ROLE_PROJECT_MANAGER = OUTPUT_SPLIT_ROLE.projectManager
|
||||
const ROLE_ENGINEERING_PRINCIPAL = OUTPUT_SPLIT_ROLE.engineeringPrincipal
|
||||
|
||||
const { t } = useI18n()
|
||||
const message = useMessage()
|
||||
@@ -340,7 +322,7 @@ const createFormData = (): ProjectApi.ProjectVO => ({
|
||||
projectType: '',
|
||||
projectCategory: '',
|
||||
projectStartYear: new Date().getFullYear(),
|
||||
projectStatus: '进行中',
|
||||
projectStatus: PROJECT_STATUS.inProgress,
|
||||
pauseReason: '',
|
||||
terminateReason: '',
|
||||
innovationOutputRate: DEFAULT_INNOVATION_OUTPUT_RATE,
|
||||
@@ -358,7 +340,7 @@ const normalizeFormData = (data: ProjectApi.ProjectVO): ProjectApi.ProjectVO =>
|
||||
...data,
|
||||
projectType: normalizeValue(data.projectType, PROJECT_TYPE_OPTIONS),
|
||||
projectCategory: normalizeValue(data.projectCategory, PROJECT_CATEGORY_OPTIONS),
|
||||
projectStatus: normalizeValue(data.projectStatus, PROJECT_STATUS_OPTIONS, '进行中'),
|
||||
projectStatus: normalizeValue(data.projectStatus, PROJECT_STATUS_OPTIONS, PROJECT_STATUS.inProgress),
|
||||
innovationOutputRate: data.innovationOutputRate ?? DEFAULT_INNOVATION_OUTPUT_RATE,
|
||||
otherCost: data.otherCost ?? 0,
|
||||
pauseReason: data.pauseReason || '',
|
||||
@@ -438,20 +420,20 @@ const projectStartYearValue = computed({
|
||||
})
|
||||
|
||||
const statusReasonLabel = computed(() =>
|
||||
formData.value.projectStatus === '中止' ? '中止原因' : '暂停原因'
|
||||
formData.value.projectStatus === PROJECT_STATUS.terminated ? '中止原因' : '暂停原因'
|
||||
)
|
||||
|
||||
const statusReasonProp = computed(() =>
|
||||
formData.value.projectStatus === '中止' ? 'terminateReason' : 'pauseReason'
|
||||
formData.value.projectStatus === PROJECT_STATUS.terminated ? 'terminateReason' : 'pauseReason'
|
||||
)
|
||||
|
||||
watch(
|
||||
() => formData.value.projectStatus,
|
||||
(status) => {
|
||||
if (status !== '暂停') {
|
||||
if (status !== PROJECT_STATUS.paused) {
|
||||
formData.value.pauseReason = ''
|
||||
}
|
||||
if (status !== '中止') {
|
||||
if (status !== PROJECT_STATUS.terminated) {
|
||||
formData.value.terminateReason = ''
|
||||
}
|
||||
}
|
||||
@@ -466,7 +448,7 @@ const formRules = reactive<FormRules>({
|
||||
pauseReason: [
|
||||
{
|
||||
validator: (_rule, value, callback) => {
|
||||
if (formData.value.projectStatus === '暂停' && !String(value || '').trim()) {
|
||||
if (formData.value.projectStatus === PROJECT_STATUS.paused && !String(value || '').trim()) {
|
||||
callback(new Error('暂停状态必须填写暂停原因'))
|
||||
return
|
||||
}
|
||||
@@ -478,7 +460,7 @@ const formRules = reactive<FormRules>({
|
||||
terminateReason: [
|
||||
{
|
||||
validator: (_rule, value, callback) => {
|
||||
if (formData.value.projectStatus === '中止' && !String(value || '').trim()) {
|
||||
if (formData.value.projectStatus === PROJECT_STATUS.terminated && !String(value || '').trim()) {
|
||||
callback(new Error('中止状态必须填写中止原因'))
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user