change use
This commit is contained in:
parent
8c89c2d752
commit
f352e3489b
@ -20,10 +20,15 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { Edit, Plus } from '@element-plus/icons-vue'
|
import { Edit, Plus } from '@element-plus/icons-vue'
|
||||||
import { IAssessment, IAssessmentMethod } from '@renderer/types'
|
import { IAssessment, IAssessmentMethod } from '@renderer/types'
|
||||||
|
import { computed, ref } from 'vue'
|
||||||
|
import { Operation } from '@renderer/types/share'
|
||||||
|
import { useGlobalStore } from '@renderer/store'
|
||||||
|
|
||||||
type Parent = 'n' | 'p' | 'f'
|
type Parent = 'n' | 'p' | 'f'
|
||||||
|
|
||||||
defineProps<{
|
type MethodStatus = 'ok' | 'weight-fail'
|
||||||
|
|
||||||
|
const props = defineProps<{
|
||||||
assessment: IAssessment
|
assessment: IAssessment
|
||||||
parent: Parent
|
parent: Parent
|
||||||
title: string
|
title: string
|
||||||
@ -35,6 +40,37 @@ const emits = defineEmits<{
|
|||||||
(e: 'modify', item: IAssessmentMethod, parent: Parent): void
|
(e: 'modify', item: IAssessmentMethod, parent: Parent): void
|
||||||
(e: 'delete', item: IAssessmentMethod, parent: Parent): void
|
(e: 'delete', item: IAssessmentMethod, parent: Parent): void
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
|
const store = useGlobalStore()
|
||||||
|
const tempAssessmentMethod = ref<IAssessmentMethod>({ method: '', weight: 0 })
|
||||||
|
const showEditDialog = ref(false)
|
||||||
|
|
||||||
|
const status = computed((): MethodStatus => {
|
||||||
|
let total = 0
|
||||||
|
props.assessment.method.forEach((v) => (total += v.weight))
|
||||||
|
|
||||||
|
console.log(total)
|
||||||
|
if (total !== 100) {
|
||||||
|
return 'weight-fail'
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'ok'
|
||||||
|
})
|
||||||
|
|
||||||
|
const addAssessmentMethodSubmit = computed(
|
||||||
|
() => !Object.values(tempAssessmentMethod.value).every((v) => v)
|
||||||
|
)
|
||||||
|
|
||||||
|
const handleAddAssessmentMethod = (action: Operation, idx?: number) => {
|
||||||
|
if (action === 'save') {
|
||||||
|
if (idx === undefined) store.addMethodToStage(tempAssessmentMethod.value, props.parent)
|
||||||
|
else {
|
||||||
|
store.modifyMethod(tempAssessmentMethod.value, idx, props.parent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tempAssessmentMethod.value = { method: '', weight: 0 }
|
||||||
|
showEditDialog.value = false
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -62,7 +98,39 @@ const emits = defineEmits<{
|
|||||||
<el-descriptions-item v-if="assessment.method.length === 0" label="无数据">
|
<el-descriptions-item v-if="assessment.method.length === 0" label="无数据">
|
||||||
N/A
|
N/A
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item v-else label="备注">
|
||||||
|
<span v-if="status === 'ok'" class="text-green-500">准备就绪</span>
|
||||||
|
<span v-else-if="status === 'weight-fail'" class="text-red-500">
|
||||||
|
需要注意:所有占比不足 <strong>100%</strong>
|
||||||
|
</span>
|
||||||
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
<el-dialog
|
||||||
|
v-model="showEditDialog"
|
||||||
|
title="添加考核方式"
|
||||||
|
:show-close="false"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:close-on-press-escape="false"
|
||||||
|
>
|
||||||
|
<el-form v-model="tempAssessmentMethod" label-width="auto">
|
||||||
|
<el-form-item label="考核方式">
|
||||||
|
<el-autocomplete v-model="tempAssessmentMethod.method" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="权重">
|
||||||
|
<el-input v-model="tempAssessmentMethod.weight" type="number" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button
|
||||||
|
:disabled="addAssessmentMethodSubmit"
|
||||||
|
type="primary"
|
||||||
|
@click="handleAddAssessmentMethod('save')"
|
||||||
|
>
|
||||||
|
添加
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="handleAddAssessmentMethod('cancel')">取消</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
@ -61,9 +61,6 @@ const assessmentStageList = ref<{ title: string; parent: Parent; assessment: Ref
|
|||||||
let assessmentParent: Parent | null = null
|
let assessmentParent: Parent | null = null
|
||||||
|
|
||||||
const addGoalSubmit = computed(() => !Object.values(tempGoal.value).every((v) => v))
|
const addGoalSubmit = computed(() => !Object.values(tempGoal.value).every((v) => v))
|
||||||
const addAssessmentMethodSubmit = computed(
|
|
||||||
() => !Object.values(tempAssessmentMethod.value).every((v) => v)
|
|
||||||
)
|
|
||||||
const checkAllStageWeightSum = computed(() => {
|
const checkAllStageWeightSum = computed(() => {
|
||||||
return normalStage.value.weight + processStage.value.weight + finalStage.value.weight === 100
|
return normalStage.value.weight + processStage.value.weight + finalStage.value.weight === 100
|
||||||
})
|
})
|
||||||
@ -107,18 +104,6 @@ const handleShowAddAssessmentMethodDialog = (parent: Parent) => {
|
|||||||
showAddAssessmentMethod.value = true
|
showAddAssessmentMethod.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleAddAssessmentMethod = (action: Action, idx?: number) => {
|
|
||||||
if (action === 'save') {
|
|
||||||
if (idx === undefined)
|
|
||||||
store.addMethodToStage(tempAssessmentMethod.value, assessmentParent ?? 'n')
|
|
||||||
else {
|
|
||||||
store.modifyMethod(tempAssessmentMethod.value, idx, assessmentParent ?? 'n')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tempAssessmentMethod.value = { method: '', weight: 0 }
|
|
||||||
showAddAssessmentMethod.value = false
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleEditAssessmentMethod = (item: IAssessmentMethod, parent: Parent) => {
|
const handleEditAssessmentMethod = (item: IAssessmentMethod, parent: Parent) => {
|
||||||
tempAssessmentMethod.value = item
|
tempAssessmentMethod.value = item
|
||||||
assessmentParent = parent
|
assessmentParent = parent
|
||||||
@ -249,32 +234,6 @@ const handleEditAssessmentSubmit = (action: 'save' | 'cancel', stage: 'n' | 'p'
|
|||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog
|
|
||||||
v-model="showAddAssessmentMethod"
|
|
||||||
title="添加考核方式"
|
|
||||||
:show-close="false"
|
|
||||||
:close-on-click-modal="false"
|
|
||||||
:close-on-press-escape="false"
|
|
||||||
>
|
|
||||||
<el-form v-model="tempAssessmentMethod" label-width="auto">
|
|
||||||
<el-form-item label="考核方式">
|
|
||||||
<el-autocomplete v-model="tempAssessmentMethod.method" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="权重">
|
|
||||||
<el-input v-model="tempAssessmentMethod.weight" type="number" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<template #footer>
|
|
||||||
<el-button
|
|
||||||
:disabled="addAssessmentMethodSubmit"
|
|
||||||
type="primary"
|
|
||||||
@click="handleAddAssessmentMethod('save')"
|
|
||||||
>
|
|
||||||
添加
|
|
||||||
</el-button>
|
|
||||||
<el-button @click="handleAddAssessmentMethod('cancel')">取消</el-button>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
|
||||||
|
|
||||||
<div class="pb-4">
|
<div class="pb-4">
|
||||||
<el-alert v-show="!checkAllStageWeightSum" type="warning" show-icon :closable="false"
|
<el-alert v-show="!checkAllStageWeightSum" type="warning" show-icon :closable="false"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user