182 lines
5.7 KiB
Vue
Raw Normal View History

2025-02-07 16:12:06 +08:00
<template>
<lay-container style="padding: 20px">
<lay-card>
<div style="padding: 10px">
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">基础评分列表</span>
</div>
<lay-table size="lg" ref="tableRef6" children-column-name="children" :columns="columns6"
:data-source="dataSource6">
<template v-slot:scoring_type="{data}">
<span v-if="data.scoring_type==1">年度</span>
<span v-if="data.scoring_type==2">季度</span>
<span v-if="data.scoring_type==3">月度</span>
</template>
<template v-slot:operator="{data}">
<lay-space size="lg">
<span style="color: #00A394;cursor: pointer" @click="addShowMsd(data,data.pid)">平级新增</span>
<span style="color: #00A394;cursor: pointer" v-if="data.pid==0" @click="addShowMsd(data,data.id)">子级新增</span>
<span style="color: #00A394;cursor: pointer" @click="editShowMsd(data)">编辑</span>
<lay-popconfirm trigger="click" content="确定要删除吗?" @confirm="delShowMsd(data)">
<span style="color: #00A394;cursor: pointer">删除</span>
</lay-popconfirm>
</lay-space>
</template>
</lay-table>
</lay-card>
<lay-layer v-model="addShow" :title="addIsEdit==1?'新增考评项目':'编辑考评项目'" :type="4" :shade="true" :area="['950px','100%']" :btn="addButton">
<lay-container fluid="true" style="padding: 20px">
<lay-form :model="addData">
<lay-form-item required label="项目代码" prop="project_code">
<lay-input v-model="addData.project_code" placeholder="请输入项目代码"></lay-input>
</lay-form-item>
<lay-form-item required label="项目名称" prop="project_name">
<lay-textarea placeholder="请输入项目名称" v-model="addData.project_name"></lay-textarea>
</lay-form-item>
<lay-form-item required label="基础分值" prop="base_score">
<lay-input-number v-model="addData.base_score" position="right"></lay-input-number>
</lay-form-item>
<lay-form-item required label="评分类型" prop="scoring_type">
<lay-select v-model="addData.scoring_type" :disabled="true" placeholder="请选择">
<lay-select-option :value="1" label="年度"></lay-select-option>
<lay-select-option :value="2" label="季度"></lay-select-option>
<lay-select-option :value="3" label="月度"></lay-select-option>
</lay-select>
</lay-form-item>
</lay-form>
</lay-container>
</lay-layer>
</lay-container>
</template>
<script setup lang="ts">
import {
homeGetHierarchicalData,
homeGetHierarchicalDataCreate, homeGetHierarchicalDataDelete,
homeGetHierarchicalDataUpdate
} from '../../api/module/home'
import {ref, watch, onMounted, reactive} from 'vue'
import {layer} from '@layui/layer-vue'
import {verificationImg} from "@/api/module/commone";
//列表内容
const dataSource6 = ref([]);
const addShow = ref(false)
//1 add 2 edit
const addIsEdit = ref(1)
const addData = reactive({
project_code: '',
project_name: '',
base_score:0,
scoring_type: '',
pid:0,
})
onMounted(() => {
getHierarchicalData()
})
const getHierarchicalData = () => {
homeGetHierarchicalData({}).then((res) => {
console.log(res)
if (res.code == 1) {
dataSource6.value = res.data;
} else {
layer.msg(res.msg, {icon: 2})
}
})
}
const addShowMsd = (data,pid) => {
console.log(data);
addShow.value = true;
addData.scoring_type=data.scoring_type;
addData.pid=pid;
addIsEdit.value=1;
}
const editShowMsd = (data) => {
console.log(data);
addShow.value = true;
addData.id=data.id;
addData.project_name=data.project_name;
addData.project_code=data.project_code;
addData.base_score=data.base_score;
addData.scoring_type=data.scoring_type;
addIsEdit.value=2;
}
const delShowMsd = async (data) => {
var res = await homeGetHierarchicalDataDelete({id: data.id});
console.log(res)
if (res.code == 1) {
layer.msg('删除成功!', {icon: 1})
getHierarchicalData();
} else {
layer.msg(res.msg, {icon: 2})
}
}
const columns6 = [
{
title: "项目名称",
width: "100px",
key: "project_name"
},
{
title: "基础分值",
width: "200px",
key: "base_score"
},
{
title: "项目代码",
width: "100px",
key: "project_code"
},
{
title: "评分类型",
width: "100px",
customSlot: 'scoring_type',
key: "scoring_type"
},
{
title: '操作',
width: '180px',
customSlot: 'operator',
key: 'operator',
align: 'center',
fixed: 'right'
}
]
const addButton = ref([
{
text: "确认",
callback: async () => {
console.log(addData);
if (addData.project_name == '') {
layer.msg('项目名称不能为空!', {icon: 2})
}
if (addData.project_code == '') {
layer.msg('项目代码不能为空!', {icon: 2})
}
if (addData.base_score == '' || addData.base_score == 0) {
layer.msg('基础分值不能为空或为0', {icon: 2, time: 1000})
}
if(addIsEdit.value==1){
var res = await homeGetHierarchicalDataCreate(addData);
}else{
var res = await homeGetHierarchicalDataUpdate(addData);
}
console.log(res)
if (res.code == 1) {
layer.msg('提交成功!', {icon: 1})
addShow.value = false;
getHierarchicalData();
} else {
layer.msg(res.msg, {icon: 2})
}
}
},
{
text: "取消",
callback: () => {
addShow.value = false;
}
}
])
</script>
<style scoped>
</style>