shj
2022-07-29 bfabab59b6d2fc9d28cd870fff5a366e5d290079
对接
已修改6个文件
1317 ■■■■■ 文件已修改
src/api/goalManagement/index.ts 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/DailogSearchUser/index.vue 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/performanceAppraisal/component/DailogAq.vue 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/performanceAppraisal/component/DailogKh.vue 187 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/performanceAppraisal/index.vue 681 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/goalManagement/index.ts
@@ -250,5 +250,21 @@
                data: params
            })
        },
        // 部门树
        getTreedepartment: () => {
            return request({
                    url:"/department/list",
                    method: "post"
                })
        },
        // 人员
        getManName:(params:any)=>{
            return request({
                url:`/account/dep/list?depId=${params}`,
                method:"get"
            })
        }
    }
}
src/components/DailogSearchUser/index.vue
@@ -4,9 +4,9 @@
        <el-row>
            <el-col :span="6">
                <div class="userTree">
                    <el-input v-model="names" placeholder="请输入组织机构过滤"></el-input>
                    <el-input v-model="filterText" placeholder="请输入组织机构过滤"></el-input>
                    <div class="tree">
                        <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick" />
                        <el-tree ref="treeRef" :data="data" :props="propse" @node-click="handleNodeClick" :filter-node-method="filterNode" />
                    </div>
                </div>
            </el-col>
@@ -20,8 +20,8 @@
                        </el-col>
                        <el-col :span="8" :offset="1">
                            <el-form-item>
                                <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">查询</el-button>
                                <el-button size="default" @click="resetForm(ruleFormRef)">重置</el-button>
                                <el-button size="default" type="primary" >查询</el-button>
                                <el-button size="default">重置</el-button>
                            </el-form-item>
                        </el-col>
                    </el-row>
@@ -30,24 +30,21 @@
                    <el-table-column align="center">
                        <template #default="scope">
                            <el-radio-group v-model="radio1">
                                <el-radio :label="scope.row.id" size="large">{{ null }}</el-radio>
                                <el-radio :label="scope.row.value" size="large">{{ null }}</el-radio>
                            </el-radio-group>
                        </template>
                    </el-table-column>
                    <el-table-column align="center" prop="date" label="登录名" />
                    <el-table-column align="center" prop="name" label="用户名" />
                    <el-table-column align="center" prop="realName" label="登录名" />
                    <el-table-column align="center" prop="username" label="用户名" />
                    <el-table-column align="center" prop="address" label="所属机构" />
                    <el-table-column align="center" prop="address" label="所属部门" />
                    <el-table-column align="center" prop="address" label="状态" />
                    <el-table-column align="center" prop="type" label="状态" />
                </el-table>
                <el-pagination
                    style="padding: 20px 0; border-bottom: 1px solid #dedede"
                    v-model:currentPage="currentPage4"
                    v-model:page-size="pageSize4"
                    :page-sizes="[100, 200, 300, 400]"
                    :small="small"
                    :disabled="disabled"
                    :background="background"
                    layout="total, sizes, prev, pager, next, jumper"
                    :total="400"
                    @size-change="handleSizeChange"
@@ -64,7 +61,7 @@
                    :disable-transitions="false"
                    @close="handleClose(tag)"
                >
                    {{ tag.name }}
                    {{ tag.realName }}
                </el-tag>
            </el-col>
        </el-row>
@@ -77,77 +74,62 @@
    </el-dialog>
</template>
<script lang="ts">
import { defineComponent, ref, reactive } from 'vue';
import { defineComponent, ref, onMounted, reactive, watch } from 'vue';
import { FullScreen } from '@element-plus/icons-vue';
import { ElMessageBox, ElTree, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus';
import { goalManagementApi } from '/@/api/goalManagement';
interface Tree {
    label: string;
    children?: Tree[];
}
export default defineComponent({
    setup(props,{emit}) {
        //左边树形部分
    setup(props, { emit }) {
        //部门树
        const department = () => {
            goalManagementApi()
                .getTreedepartment()
                .then((res) => {
                    if (res.data.code == 200) {
                        data.value = res.data.data;
                    } else {
                        ElMessage.error(res.data.msg);
                    }
                });
        };
        const propse = {
            label: 'depName',
            children: 'children',
            value: 'depId',
        };
        //部门树查询
        const filterText = ref('');
        const treeRef = ref<InstanceType<typeof ElTree>>();
        watch(filterText, (val) => {
            treeRef.value!.filter(val);
        });
        const filterNode = (depName: string, data: Tree) => {
            if (!depName) return true;
            return data.depName.includes(depName);
        };
        onMounted(() => {
            department();
        });
        //左边树形部分点击获取回调
        const names = ref<any>();
        const handleNodeClick = (data: Tree) => {
            console.log(data);
            goalManagementApi()
                .getManName(data.depId)
                .then((res) => {
                    if (res.data.code == 200) {
                        tableData.value=res.data.data
                    }else{
                        ElMessage.error(res.data.msg);
                    }
                });
        };
        const data: Tree[] = [
            {
                label: 'Level one 1',
                children: [
                    {
                        label: 'Level two 1-1',
                        children: [
                            {
                                label: 'Level three 1-1-1',
                            },
                        ],
                    },
                ],
            },
            {
                label: 'Level one 2',
                children: [
                    {
                        label: 'Level two 2-1',
                        children: [
                            {
                                label: 'Level three 2-1-1',
                            },
                        ],
                    },
                    {
                        label: 'Level two 2-2',
                        children: [
                            {
                                label: 'Level three 2-2-1',
                            },
                        ],
                    },
                ],
            },
            {
                label: 'Level one 3',
                children: [
                    {
                        label: 'Level two 3-1',
                        children: [
                            {
                                label: 'Level three 3-1-1',
                            },
                        ],
                    },
                    {
                        label: 'Level two 3-2',
                        children: [
                            {
                                label: 'Level three 3-2-1',
                            },
                        ],
                    },
                ],
            },
        ];
        const data = ref();
        //中间表格
        // 搜索条件
        const ruleForm = reactive({
@@ -155,37 +137,16 @@
            checkPass: '',
        });
        // 表格
        const tableData = [
            {   id:1,
                date: '2016-05-03',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                id:2,
                date: '2016-05-02',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {    id:3,
                date: '2016-05-04',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {    id:4,
                date: '2016-05-01',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
        ];
        const pageSize4 = ref(100);
        const tableData = ref();
        const currentPage4 = ref();
        const pageSize4 = ref();
        const handleSizeChange = (val: number) => {
            console.log(`${val} items per page`);
        };
        const handleCurrentChange = (val: number) => {
            console.log(`current page: ${val}`);
        };
    // 右方点击添加后显示标签
        // 右方点击添加后显示标签
        const dynamicTags = ref(['']);
        const handleClose = (tag: string) => {
            dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1);
@@ -209,12 +170,16 @@
                full.value = false;
            }
        };
        const submitForm=()=>{
            let obj=JSON.parse(JSON.stringify(dynamicTags.value))
            emit("SearchUser",obj[0])
            dialogVisible.value = false
        }
        const submitForm = () => {
            let obj = JSON.parse(JSON.stringify(dynamicTags.value));
            emit('SearchUser', obj[0]);
            dialogVisible.value = false;
        };
        return {
            filterText,
            treeRef,
            filterNode,
            propse,
            dialogVisible,
            names,
            data,
@@ -222,6 +187,7 @@
            openDailog,
            ruleForm,
            tableData,
            currentPage4,
            pageSize4,
            handleSizeChange,
            handleCurrentChange,
@@ -232,7 +198,7 @@
            full,
            toggleFullscreen,
            radio,
            submitForm
            submitForm,
        };
    },
});
src/views/goalManagement/performanceAppraisal/component/DailogAq.vue
@@ -1,16 +1,16 @@
<template>
    <el-dialog v-model="dialogVisible" :fullscreen="full" title="新建安全考核管理" width="50%" draggable>
    <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" draggable>
        <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
        <el-form :model="form" label-width="120px">
            <el-row>
                <el-col :span="11">
                    <el-form-item label="考核标题" size="default">
                        <el-input v-model="form.name"></el-input>
                        <el-input v-model="form.title"></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="11" :offset="2">
                    <el-form-item label="考核日期" size="default">
                        <el-input v-model="form.name" />
                        <el-input v-model="form.examineDate" />
                    </el-form-item>
                </el-col>
            </el-row>
@@ -22,14 +22,14 @@
                </el-col>
                <el-col :span="11" :offset="2">
                    <el-form-item label="总分" size="default">
                        <el-input v-model="form.name" />
                        <el-input v-model="form.examineTotalNumber" />
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <el-col :span="11">
                    <el-form-item label="考核部门" size="default">
                        <el-select v-model="form.region" style="width: 100%" placeholder="请选择">
                        <el-select v-model="form.examineDepartmentId" style="width: 100%" placeholder="请选择">
                            <el-option label="Zone one" value="shanghai" />
                            <el-option label="Zone two" value="beijing" />
                        </el-select>
@@ -37,7 +37,7 @@
                </el-col>
                <el-col :span="11" :offset="2">
                    <el-form-item label="考核人" size="default">
                        <el-input v-model="form.name">
                        <el-input v-model="form.examinePersonId">
                            <template #append> <el-button :icon="Search" @click="daiInpt" /></template>
                        </el-input>
                    </el-form-item>
@@ -46,7 +46,7 @@
            <el-row>
                <el-col :span="11">
                    <el-form-item label="被考核部门" size="default">
                        <el-select v-model="form.region" style="width: 100%" placeholder="请选择">
                        <el-select v-model="form.beExaminedDepartmentId" style="width: 100%" placeholder="请选择">
                            <el-option label="Zone one" value="shanghai" />
                            <el-option label="Zone two" value="beijing" />
                        </el-select>
@@ -54,7 +54,7 @@
                </el-col>
                <el-col :span="11" :offset="2">
                    <el-form-item label="被考核人" size="default">
                        <el-input v-model="form.name">
                        <el-input v-model="form.beExaminedPersonId">
                            <template #append> <el-button :icon="Search" @click="daiInpt" /></template>
                        </el-input>
                    </el-form-item>
@@ -85,19 +85,19 @@
            <el-row>
                <el-col :span="11">
                    <el-form-item label="考核模板" size="default">
                        <el-input v-model="form.name">
                        <el-input v-model="form.examineTemplateId">
                            <template #append> <el-button :icon="Search" @click="daiAdd" /></template>
                        </el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="11" :offset="2">
                    <el-form-item label="备注信息">
                        <el-input v-model="form.name" type="textarea"> </el-input>
                        <el-input v-model="form.memo" type="textarea"> </el-input>
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
        <el-tabs v-model="activeName" class="demo-tabs">
            <el-tab-pane label="考核项目" name="1">
                <!-- <el-button type="primary" size="default" @click="daiAdd">新增</el-button> -->
            </el-tab-pane>
@@ -116,8 +116,8 @@
        </el-table>
        <template #footer>
            <span class="dialog-footer">
                <el-button @click="dialogVisible = false" size="default">关闭</el-button>
                <el-button type="primary" @click="dialogVisible = false" size="default">确定</el-button>
                <el-button @click="resetForm" size="default">关闭</el-button>
                <el-button type="primary" @click="submitForm" size="default">确定</el-button>
            </span>
        </template>
    </el-dialog>
@@ -130,50 +130,94 @@
import DailogSearch from './DailogSearch.vue';
import DailogSearchUser from '/@/components/DailogSearchUser/index.vue';
import { ElMessage, ElMessageBox } from 'element-plus';
import { goalManagementApi } from '/@/api/goalManagement';
import type { UploadProps, UploadUserFile } from 'element-plus';
export default defineComponent({
    components: { DailogSearchUser, DailogSearch },
    setup() {
    setup(props, { emit }) {
        const dialogVisible = ref<boolean>(false);
        const form = reactive({
            name: '',
            region: '',
            date1: '',
            date2: '',
            delivery: false,
            type: [],
            resource: '',
            desc: '',
        const form = ref({
            beExaminedDepartmentId: 8, ////被考核部门ID/外键
            beExaminedPersonId: '6', ////被考核人ID/外键(可能有多个,用逗号隔开)
            examineDate: 1658387422569, ////考核日期
            examineDepartmentId: 7, ////考核部门ID/外键
            examinePersonId: '5', ////考核人ID/外键
            examineTemplateId: 0, ////绩效考核模板ID/外键
            examineTotalNumber: '3', ////总分
            extraFile: '9', //责任书附件
            itemDetail: '2', ////考核项目
            memo: '4', ////备注信息
            numberDetailJson: '[{"id":"123","number":"123"}]', ////各个考核项目的具体得分,json格式。形式为:[{“id”:"123","number":"123"}]
            title: '1', ////考核标题
        });
        const openDailog = (type: string, value: any, projectList: any, projectId: string) => {
        const titles = ref();
        const disabled = ref(false);
        // 打开弹窗
        const openDailog = (title: string, value: any, id: number) => {
            dialogVisible.value = true;
            titles.value = `${title}安全考核管理`;
            disabled.value = title == '查看' ? true : false;
            if (title == '查看' || title == '修改')
                goalManagementApi()
                    .getexamineMngDetail(id)
                    .then((res) => {
                        if (res.data.code == 200) {
                            form.value = res.data.data;
                        } else {
                            ElMessage.error(res.data.msg);
                        }
                    });
        };
        // 导航
        const activeName = ref('1');
        // 表格
        const tableData = [
            {
                date: '2016-05-03',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-02',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-04',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-01',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
        ];
        // 提交
        const submitForm = () => {
            dialogVisible.value = false;
            goalManagementApi()
                .getexamineMngAddOrUpdate(form.value)
                .then((res) => {
                    if (res.data.code == 200) {
                        ElMessage({
                            message: res.data.msg,
                            type: 'success',
                        });
                        emit('navAddorUpdata');
                    } else {
                        ElMessage.error(res.data.msg);
                    }
                });
            form.value = {
                beExaminedDepartmentId: 8, ////被考核部门ID/外键
                beExaminedPersonId: '6', ////被考核人ID/外键(可能有多个,用逗号隔开)
                examineDate: 1658387422569, ////考核日期
                examineDepartmentId: 7, ////考核部门ID/外键
                examinePersonId: '5', ////考核人ID/外键
                examineTemplateId: 0, ////绩效考核模板ID/外键
                examineTotalNumber: '3', ////总分
                extraFile: '9', //责任书附件
                itemDetail: '2', ////考核项目
                memo: '4', ////备注信息
                numberDetailJson: '[{"id":"123","number":"123"}]', ////各个考核项目的具体得分,json格式。形式为:[{“id”:"123","number":"123"}]
                title: '1', ////考核标题
            };
        };
        //   取消
        const resetForm = () => {
            dialogVisible.value = false;
            form.value = {
                beExaminedDepartmentId: 8, ////被考核部门ID/外键
                beExaminedPersonId: '6', ////被考核人ID/外键(可能有多个,用逗号隔开)
                examineDate: 1658387422569, ////考核日期
                examineDepartmentId: 7, ////考核部门ID/外键
                examinePersonId: '5', ////考核人ID/外键
                examineTemplateId: 0, ////绩效考核模板ID/外键
                examineTotalNumber: '3', ////总分
                extraFile: '9', //责任书附件
                itemDetail: '2', ////考核项目
                memo: '4', ////备注信息
                numberDetailJson: '[{"id":"123","number":"123"}]', ////各个考核项目的具体得分,json格式。形式为:[{“id”:"123","number":"123"}]
                title: '1', ////考核标题)
            };
        };
        const activeName=ref("1")
        // 新增弹窗
        const Show = ref();
        const daiAdd = () => {
@@ -224,11 +268,14 @@
            }
        };
        return {
            form,
            dialogVisible,
            openDailog,
            activeName,
            tableData,
            dialogVisible,
            form,
            titles,
            disabled,
            openDailog,
            submitForm,
            resetForm,
            Show,
            daiAdd,
            Shows,
src/views/goalManagement/performanceAppraisal/component/DailogKh.vue
@@ -5,12 +5,12 @@
            <el-row>
                <el-col :span="11">
                    <el-form-item label="标准标题" size="default">
                        <el-input v-model="form.name"> </el-input>
                        <el-input v-model="form.title"> </el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="11" :offset="2">
                    <el-form-item label="适用范围" size="default">
                        <el-select v-model="form.region" style="width: 100%" placeholder="请选择">
                        <el-select v-model="form.applyRange" style="width: 100%" placeholder="请选择">
                            <el-option label="Zone one" value="shanghai" />
                            <el-option label="Zone two" value="beijing" />
                        </el-select>
@@ -21,14 +21,14 @@
                <el-row>
                    <el-col :span="11">
                        <el-form-item label="设定人" size="default">
                            <el-input v-model="form.name">
                            <el-input v-model="form.setPersonId" disabled>
                                <template #append> <el-button :icon="Search" @click="daiInpt" /></template>
                            </el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="11" :offset="2">
                        <el-form-item label="设定人部门" size="default">
                            <el-select v-model="form.region" style="width: 100%" placeholder="请选择">
                            <el-select v-model="form.setPersonDepartmentId" disabled style="width: 100%" placeholder="请选择">
                                <el-option label="Zone one" value="shanghai" />
                                <el-option label="Zone two" value="beijing" />
                            </el-select>
@@ -39,39 +39,39 @@
            <el-row>
                <el-col :span="11">
                    <el-form-item label="模板分类编码" size="default">
                        <el-input v-model="form.name" />
                        <el-input v-model="form.templateCode" />
                    </el-form-item>
                </el-col>
                <el-col :span="11" :offset="2">
                    <el-form-item label="合格分数" size="default">
                        <el-input v-model="form.name" />
                        <el-input v-model="form.acceptanceNumber" />
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <el-col :span="11">
                    <el-form-item label="备注信息">
                        <el-input v-model="form.name" type="textarea" />
                        <el-input v-model="form.memo" type="textarea" />
                    </el-form-item>
                </el-col>
                <el-col :span="11" :offset="2" v-if="clickType">
                    <el-form-item label="设定日期" size="default">
                        <el-date-picker v-model="form.date1" type="date" placeholder="Pick a date" style="width: 100%" />
                        <el-date-picker v-model="form.setTimem" type="date" placeholder="Pick a date" style="width: 100%" />
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
        <el-tabs v-model="activeName" class="demo-tabs">
            <el-tab-pane label="目标指标分解" name="1">
                <el-button type="primary" size="default" @click="daiAdd">新增</el-button>
            </el-tab-pane>
        </el-tabs>
        <el-table :data="tableData" style="width: 100%">
            <el-table-column align="center" prop="date" label="类型" width="180" />
            <el-table-column align="center" prop="name" label="考核项目" width="180" />
            <el-table-column align="center" prop="address" label="考核内容" />
            <el-table-column align="center" prop="address" label="评定标准" />
            <el-table-column align="center" prop="address" label="考核说明" />
        <el-table :data="form.examineItemList" style="width: 100%">
            <el-table-column align="center" prop="itemType" label="类型" width="180" />
            <el-table-column align="center" prop="itemDetail" label="考核项目" width="180" />
            <el-table-column align="center" prop="content" label="考核内容" />
            <el-table-column align="center" prop="judgeStandard" label="评定标准" />
            <el-table-column align="center" prop="memo" label="考核说明" />
            <el-table-column align="center" label="操作">
                <template #default>
                    <el-button link type="primary">查看</el-button>
@@ -81,7 +81,7 @@
        <template #footer>
            <span class="dialog-footer">
                <el-button @click="dialogVisible = false" size="default">关闭</el-button>
                <el-button type="primary" @click="dialogVisible = false" size="default">确定</el-button>
                <el-button type="primary" @click="submitForm" size="default">确定</el-button>
            </span>
        </template>
    </el-dialog>
@@ -91,50 +91,122 @@
import { defineComponent, ref, reactive } from 'vue';
import { Search, FullScreen } from '@element-plus/icons-vue';
import DailogKhS from './DailogKhS.vue';
import { ElMessage, ElMessageBox } from 'element-plus';
import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
    components: { DailogKhS },
    setup() {
        const dialogVisible = ref<boolean>(false);
        const form = reactive({
            name: '',
            region: '',
            date1: '',
            date2: '',
            delivery: false,
            type: [],
            resource: '',
            desc: '',
    setup(props, { emit }) {
        const dialogVisible = ref<boolean>(true);
        const form = ref({
            examineItemList: [
                {
                    itemType: '111', ////类型
                    memo: '5556', //备注
                    itemDetail: '2', ////考核项目
                    content: '3', ////考核内容
                    judgeStandard: '4', ////评定标准
                    id: 4,
                },
            ], //考核项目列表
            setTimem: 1658386392466,
            memo: '5623', ////备注信息
            templateCode: '666', ////模板分类编码
            title: '12', ////标准标题
            setPersonId: 1, //设定人
            acceptanceNumber: '4124', ////合格分数
            setPersonDepartmentId: 2, //设定人部门
            applyRange: '321', ////适用范围
            id: 2, //当更新时必填
        });
        const clickType = ref();
        const openDailog = (type: boolean) => {
        const titles = ref();
        const disabled = ref(false);
        const clickType=ref(false)
        // 打开弹窗
        const openDailog = (title: string, value: any, id: number) => {
            dialogVisible.value = true;
            clickType.value = type;
            titles.value = `${title}安全考核管理`;
            disabled.value = title == '查看' ? true : false;
            if (title == '查看' || title == '修改'){
                goalManagementApi()
                    .getexamineTemplateDetail(id)
                    .then((res) => {
                        if (res.data.code == 200) {
                            form.value = res.data.data;
                        } else {
                            ElMessage.error(res.data.msg);
                        }
                    });
            }else{
                clickType.value=true
            }
        };
        // 导航
        // 提交
        const submitForm = () => {
            dialogVisible.value = false;
            goalManagementApi()
                .getexamineTemplateAddOrUpdate(form.value)
                .then((res) => {
                    if (res.data.code == 200) {
                        ElMessage({
                            message: res.data.msg,
                            type: 'success',
                        });
                        emit('navAddorUpdata');
                    } else {
                        ElMessage.error(res.data.msg);
                    }
                });
            form.value = {
                examineItemList: [
                    {
                        itemType: '111', ////类型
                        memo: '5556', //备注
                        itemDetail: '2', ////考核项目
                        content: '3', ////考核内容
                        judgeStandard: '4', ////评定标准
                        id: 4,
                    },
                ], //考核项目列表
                setTimem: 1658386392466,
                memo: '5623', ////备注信息
                templateCode: '666', ////模板分类编码
                title: '12', ////标准标题
                setPersonId: 1, //设定人
                acceptanceNumber: '4124', ////合格分数
                setPersonDepartmentId: 2, //设定人部门
                applyRange: '321', ////适用范围
                id: 2, //当更新时必填
            };
        };
        //   取消
        const resetForm = () => {
            dialogVisible.value = false;
            form.value = {
                examineItemList: [
                    {
                        itemType: '111', ////类型
                        memo: '5556', //备注
                        itemDetail: '2', ////考核项目
                        content: '3', ////考核内容
                        judgeStandard: '4', ////评定标准
                        id: 4,
                    },
                ], //考核项目列表
                setTimem: 1658386392466,
                memo: '5623', ////备注信息
                templateCode: '666', ////模板分类编码
                title: '12', ////标准标题
                setPersonId: 1, //设定人
                acceptanceNumber: '4124', ////合格分数
                setPersonDepartmentId: 2, //设定人部门
                applyRange: '321', ////适用范围
                id: 2, //当更新时必填
            };
        };
        const activeName = ref('1');
        // 表格
        const tableData = [
            {
                date: '2016-05-03',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-02',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-04',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-01',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
        ];
        // 新增弹窗
        const Show = ref();
        const daiAdd = () => {
@@ -159,14 +231,17 @@
            dialogVisible,
            openDailog,
            activeName,
            tableData,
            titles,
            disabled,
            submitForm,
            resetForm,
            Show,
            daiAdd,
            Shows,
            clickType,
            daiInpt,
            Search,
            full,
            clickType,
            toggleFullscreen,
            FullScreen,
        };
src/views/goalManagement/performanceAppraisal/index.vue
@@ -1,270 +1,465 @@
<template>
   <div>
    <div class="minCenter">
        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
            <el-tab-pane label="安全考核管理" name="1">
                <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle">
                    <el-row>
                        <el-col :span="4">
                            <el-form-item size="default">
                                <el-select v-model="ruleForm.region" style="width: 100%" placeholder="请选择考核部门">
                                    <el-option label="Zone one" value="shanghai" />
                                    <el-option label="Zone two" value="beijing" />
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="4">
                            <el-form-item>
                                <el-button size="default" type="primary">查询</el-button>
                                <el-button size="default">重置</el-button>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-form>
                <div class="btns">
                    <div>
                        <el-button size="default" type="primary" :icon="Plus" @click="openDai">新建</el-button>
                        <el-button size="default" type="warning" plain :icon="EditPen">修改</el-button>
                        <el-button size="default" type="danger" plain :icon="Delete">删除</el-button>
    <div>
        <div class="minCenter">
            <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
                <el-tab-pane label="安全考核管理" name="1">
                    <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle">
                        <el-row>
                            <el-col :span="4">
                                <el-form-item size="default">
                                    <el-select v-model="ruleForm.searchParams.examineDepartmentId" style="width: 100%" placeholder="请选择考核部门">
                                        <el-option label="Zone one" value="shanghai" />
                                        <el-option label="Zone two" value="beijing" />
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="4">
                                <el-form-item>
                                    <el-button size="default" type="primary" @click="listApi">查询</el-button>
                                    <el-button size="default" @click="resetForm">重置</el-button>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </el-form>
                    <div class="btns">
                        <div>
                            <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button>
                            <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button>
                            <el-button size="default" :disabled="danger" type="danger" plain :icon="Delete" @click="onDeleteAll">删除</el-button>
                        </div>
                    </div>
                </div>
                <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
                    <el-table-column type="selection" align="center" width="55" />
                    <el-table-column type="expand">
                        <template #default>
                            <div class="tableC">
                                <el-tabs v-model="activeNames">
                                    <el-tab-pane label="考核项目" name="1">
                                         <el-table :data="tableData" style="width: 100%">
                                            <el-table-column align="center" prop="date" label="类型"/>
                                            <el-table-column align="center" prop="name" label="考核项目"/>
                                            <el-table-column align="center" prop="address" label="考核内容"/>
                                            <el-table-column align="center" prop="address" label="评定标准" />
                                            <el-table-column align="center" prop="address" label="考核说明" />
                                        </el-table>
                                    </el-tab-pane>
                                </el-tabs>
                            </div>
                        </template>
                    </el-table-column>
                    <el-table-column label="考核日期" align="center" sortable>
                        <template #default="scope">{{ scope.row.date }}</template>
                    </el-table-column>
                    <el-table-column property="name" align="center" label="考核部门" sortable />
                    <el-table-column property="address" label="考核人" align="center" sortable show-overflow-tooltip />
                    <el-table-column property="address" label="被考核部门" align="center" sortable show-overflow-tooltip />
                    <el-table-column property="address" label="总分" align="center" sortable show-overflow-tooltip />
                    <el-table-column property="address" label="考核结果" align="center" sortable show-overflow-tooltip />
                    <el-table-column property="address" label="附件" align="center" sortable show-overflow-tooltip />
                    <el-table-column label="操作" align="center" width="250px">
                        <template #default>
                            <el-button link type="primary" size="default" :icon="View" @click="handleClick">查看</el-button>
                            <el-button link type="primary" size="default" :icon="EditPen" @click="handleClick">修改</el-button>
                            <el-button link type="primary" size="default" :icon="Delete">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
                <div class="pages">
                    <el-pagination
                        v-model:currentPage="currentPage4"
                        v-model:page-size="pageSize4"
                        :page-sizes="[100, 200, 300, 400]"
                        :small="small"
                        :disabled="disabled"
                        :background="background"
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="400"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                    />
                </div>
            </el-tab-pane>
            <el-tab-pane label="考核标准设定" name="2">
                <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle">
                    <el-row>
                        <el-col :span="4">
                            <el-form-item size="default">
                                <el-input v-model="ruleForm.pass" placeholder="标准标题" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="4">
                            <el-form-item>
                                <el-button size="default" type="primary">查询</el-button>
                                <el-button size="default">重置</el-button>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-form>
                <div class="btns">
                    <div>
                        <el-button size="default" type="primary" :icon="Plus" @click="openDaiK('新建')">新建</el-button>
                        <el-button size="default" type="warning" plain :icon="EditPen">修改</el-button>
                        <el-button size="default" type="danger" plain :icon="Delete">删除</el-button>
                    <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange">
                        <el-table-column type="selection" align="center" width="55" />
                        <el-table-column type="expand">
                            <template #default>
                                <div class="tableC">
                                    <el-table :data="tableData.currentExamineDtoList" style="width: 100%">
                                        <el-table-column align="center" prop="itemDetail" label="考核项目" />
                                        <el-table-column align="center" prop="content" label="考核内容" />
                                        <el-table-column align="center" prop="number" label="考核分数" />
                                    </el-table>
                                </div>
                            </template>
                        </el-table-column>
                        <el-table-column property="examineDate" align="center" label="考核日期" sortable />
                        <el-table-column property="beExaminedDepartmentId" align="center" label="考核部门" sortable />
                        <el-table-column property="examinePersonId" label="考核人" align="center" sortable show-overflow-tooltip />
                        <el-table-column property="beExaminedDepartmentId" label="被考核部门" align="center" sortable show-overflow-tooltip />
                        <el-table-column property="examineTotalNumber" label="总分" align="center" sortable show-overflow-tooltip />
                        <el-table-column property="numberDetailJson.number" label="考核结果" align="center" sortable show-overflow-tooltip />
                        <el-table-column property="extraFile" label="附件" align="center" sortable show-overflow-tooltip />
                        <el-table-column label="操作" align="center" width="250px">
                            <template #default="scope">
                                <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button>
                                <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button>
                                <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                    <div class="pages">
                        <el-pagination
                            v-model:currentPage="currentPage4"
                            v-model:page-size="pageSize4"
                            :page-sizes="[10, 20, 30, 40]"
                            layout="total, sizes, prev, pager, next, jumper"
                            :total="total"
                            @size-change="handleSizeChange"
                            @current-change="handleCurrentChange"
                        />
                    </div>
                </div>
                <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
                    <el-table-column type="selection" align="center" width="55" />
                    <el-table-column type="expand">
                        <template #default>
                            <div class="tableC">
                                <el-tabs v-model="activeNames">
                                    <el-tab-pane label="考核项目" name="1">
                                         <el-table :data="tableData" style="width: 100%">
                                            <el-table-column align="center" prop="date" label="类型"/>
                                            <el-table-column align="center" prop="name" label="考核项目"/>
                                            <el-table-column align="center" prop="address" label="考核内容"/>
                                            <el-table-column align="center" prop="address" label="评定标准" />
                                            <el-table-column align="center" prop="address" label="考核说明" />
                                        </el-table>
                                    </el-tab-pane>
                                </el-tabs>
                            </div>
                        </template>
                    </el-table-column>
                    <el-table-column label="标准标题" align="center" sortable>
                        <template #default="scope">{{ scope.row.date }}</template>
                    </el-table-column>
                    <el-table-column property="name" align="center" label="适用范围" sortable />
                    <el-table-column property="address" label="设定人" align="center" sortable show-overflow-tooltip />
                    <el-table-column property="address" label="设定人部门" align="center" sortable show-overflow-tooltip />
                    <el-table-column property="address" label="设定日期" align="center" sortable show-overflow-tooltip />
                    <el-table-column property="address" label="模板分类编码" align="center" sortable show-overflow-tooltip />
                    <el-table-column property="address" label="合格分数" align="center" sortable show-overflow-tooltip />
                    <el-table-column label="操作" align="center" width="250px">
                        <template #default>
                            <el-button link type="primary" size="default" :icon="View" @click="openDaiK('查看')">查看</el-button>
                            <el-button link type="primary" size="default" :icon="EditPen" @click="openDaiK('修改')">修改</el-button>
                            <el-button link type="primary" size="default" :icon="Delete">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
                <div class="pages">
                    <el-pagination
                        v-model:currentPage="currentPage4"
                        v-model:page-size="pageSize4"
                        :page-sizes="[100, 200, 300, 400]"
                        :small="small"
                        :disabled="disabled"
                        :background="background"
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="400"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                    />
                </div>
            </el-tab-pane>
        </el-tabs>
    </div>
    <DailogAq ref="ShowAq"></DailogAq>
    <DailogKh ref="ShowKh"></DailogKh>
                </el-tab-pane>
                <el-tab-pane label="考核标准设定" name="2">
                    <el-form :model="ruleForms" status-icon label-width="20px" class="topTitle">
                        <el-row>
                            <el-col :span="4">
                                <el-form-item size="default">
                                    <el-input v-model="ruleForms.searchParams.title" placeholder="标准标题" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="4">
                                <el-form-item>
                                    <el-button size="default" type="primary" @click="listApis">查询</el-button>
                                    <el-button size="default" @click="resetForms">重置</el-button>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </el-form>
                    <div class="btns">
                        <div>
                            <el-button size="default" type="primary" :icon="Plus" @click="openDs('新建')">新建</el-button>
                            <el-button size="default" :disabled="warnings" type="warning" plain :icon="EditPen">修改</el-button>
                            <el-button size="default" :disabled="dangers" type="danger" plain :icon="Delete"  @click="onDeleteAlls">删除</el-button>
                        </div>
                    </div>
                    <el-table ref="multipleTableRef" :data="tableDatas" style="width: 100%" @selection-change="handleSelectionChanges">
                        <el-table-column type="selection" align="center" width="55" />
                        <el-table-column type="expand">
                            <template #default>
                                <div class="tableC">
                                    <el-table :data="tableDatas.examineItemList" style="width: 100%">
                                        <el-table-column align="center" prop="itemType" label="类型" />
                                        <el-table-column align="center" prop="itemDetail" label="考核项目" />
                                        <el-table-column align="center" prop="content" label="考核内容" />
                                        <el-table-column align="center" prop="judgeStandard" label="评定标准" />
                                        <el-table-column align="center" prop="memo" label="考核说明" />
                                    </el-table>
                                </div>
                            </template>
                        </el-table-column>
                        <el-table-column label="标准标题" property="title" align="center" sortable />
                        <el-table-column property="applyRange" align="center" label="适用范围" sortable />
                        <el-table-column property="setPersonId" label="设定人" align="center" sortable show-overflow-tooltip />
                        <el-table-column property="setPersonDepartmentId" label="设定人部门" align="center" sortable show-overflow-tooltip />
                        <el-table-column property="createTime" label="设定日期" align="center" sortable show-overflow-tooltip />
                        <el-table-column property="templateCode" label="模板分类编码" align="center" sortable show-overflow-tooltip />
                        <el-table-column property="acceptanceNumber" label="合格分数" align="center" sortable show-overflow-tooltip />
                        <el-table-column label="操作" align="center" width="250px">
                            <template #default="scope">
                                <el-button link type="primary" size="default" :icon="View" @click="openDs('查看', scope.row.id)">查看</el-button>
                                <el-button link type="primary" size="default" :icon="EditPen" @click="openDs('修改', scope.row.id)">修改</el-button>
                                <el-button link type="primary" size="default" :icon="Delete" @click="onDeletes(scope.row.id)">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                    <div class="pages">
                        <el-pagination
                            v-model:currentPage="currentPage4s"
                            v-model:page-size="pageSize4s"
                            :page-sizes="[10, 20, 30, 40]"
                            layout="total, sizes, prev, pager, next, jumper"
                            :total="totals"
                            @size-change="handleSizeChanges"
                            @current-change="handleCurrentChanges"
                        />
                    </div>
                </el-tab-pane>
            </el-tabs>
        </div>
        <DailogAq ref="ShowAdd" @navAddorUpdata="onAddorUpdata"></DailogAq>
        <DailogKh ref="ShowAdds" @navAddorUpdata="onAddorUpdatas"></DailogKh>
    </div>
</template>
<script lang="ts">
import DailogAq from './component/DailogAq.vue'
import DailogKh from './component/DailogKh.vue'
import DailogAq from './component/DailogAq.vue';
import DailogKh from './component/DailogKh.vue';
import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue';
import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus';
import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue';
interface User {
    date: string;
    name: string;
    address: string;
}
import type { TableColumnCtx } from 'element-plus/es/components/table/src/table-column/defaults';
import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
    components: { ElButton, ElInput,DailogAq,DailogKh},
    components: { ElButton, ElInput, DailogAq, DailogKh },
    setup() {
        const ruleForm = reactive({});
        // 下方导航与表格
        const activeName = ref('1');
        const activeNames = ref('1');
        const handleClick = (tab: TabsPaneContext, event: Event) => {
            console.log(tab, event);
        // 搜索条件 安全考核管理
        const ruleForm = reactive({
            pageSize: 2,
            pageIndex: 1,
            searchParams: {
                examineDepartmentId: '',
            },
        });
        // 重置
        const resetForm = () => {
            ruleForm.searchParams.examineDepartmentId = '';
        };
        const formatter = (row: User, column: TableColumnCtx<User>) => {
            return row.address;
        const listApi = () => {
            goalManagementApi()
                .getexamineMngList(ruleForm)
                .then((res) => {
                    if (res.data.code == 200) {
                        tableData.value = res.data.data;
                        currentPage4.value = res.data.pageIndex;
                        pageSize4.value = res.data.pageSize;
                        total.value = res.data.total;
                    } else {
                        ElMessage.error(res.data.msg);
                    }
                });
        };
        const tableData: User[] = [
            {
                date: '2016-05-03',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-02',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-04',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-01',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-08',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-06',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
            {
                date: '2016-05-07',
                name: 'Tom',
                address: 'No. 189, Grove St, Los Angeles',
            },
        ];
        const currentPage4 = ref(4);
        const pageSize4 = ref(100);
        const small = ref(false);
        const disabled = ref(false);
        const background = ref(false);
        onMounted(() => {
            listApi();
        });
        const onAddorUpdata = () => {
            listApi();
        };
        // 表格
        const tableData = ref();
        const currentPage4 = ref();
        const pageSize4 = ref();
        const total = ref();
        const handleSizeChange = (val: number) => {
            console.log(`${val} items per page`);
            // console.log(`${val} items per page`);
            ruleForm.pageSize = val;
            listApi();
        };
        const handleCurrentChange = (val: number) => {
            console.log(`current page: ${val}`);
            // console.log(`current page: ${val}`);
            ruleForm.pageIndex = val;
            listApi();
        };
        const ShowAq=ref()
        const openDai=()=>{
            ShowAq.value.openDailog()
        }
        const ShowKh=ref()
         const openDaiK=(name:string)=>{
             if(name=='新建'){
                 ShowKh.value.openDailog(false)
             }else{
                 ShowKh.value.openDailog(true)
             }
        }
        // 弹窗
        const openAdd = ref();
        const openD= (title: String, id: number) => {
            openAdd.value.openDailog(title, ruleForm.searchParams.examineDepartmentId, id);
        };
        // 删除
        const onDelete = (id: number) => {
            ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning',
            })
                .then(() => {
                    goalManagementApi()
                        .getexamineMngDelete(id)
                        .then((res) => {
                            if (res.data.code == 200) {
                                ElMessage({
                                    message: res.data.msg,
                                    type: 'success',
                                });
                                listApi();
                            } else {
                                ElMessage.error(res.data.msg);
                            }
                        });
                })
                .catch(() => {
                    ElMessage({
                        type: 'info',
                        message: 'Delete canceled',
                    });
                });
        };
        // 批量删除
        const warning = ref(true);
        const danger = ref(true);
        const deletAll = ref();
        const handleSelectionChange = (val: any) => {
            let valId = JSON.parse(JSON.stringify(val));
            let arr = [];
            for (let i = 0; i < valId.length; i++) {
                arr.push(valId[i].id);
            }
            deletAll.value = arr.toString();
            if (val.length == 1) {
                warning.value = false;
                danger.value = false;
            } else if (val.length == 0) {
                warning.value = true;
                danger.value = true;
            } else {
                warning.value = true;
                danger.value = false;
            }
        };
        const onDeleteAll = () => {
            ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning',
            })
                .then(() => {
                    goalManagementApi()
                        .getexamineMngDelete(deletAll.value)
                        .then((res) => {
                            if (res.data.code == 200) {
                                ElMessage({
                                    message: res.data.msg,
                                    type: 'success',
                                });
                                listApi();
                            } else {
                                ElMessage.error(res.data.msg);
                            }
                        });
                })
                .catch(() => {
                    // ElMessage({
                    //     type: 'info',
                    //     message: 'Delete canceled',
                    // });
                });
        };
        // 切换
        const activeName = ref('1');
        const handleClick = (val: any) => {
            if (val == '1') {
                listApi();
            }else{
                listApis();
            }
        };
        // 搜索条件 考核标准设定
        const ruleForms = reactive({
            pageSize: 10,
            pageIndex: 1,
            searchParams: {
                title: '', //标准标题
            },
        });
        // 重置
        const resetForms = () => {
            ruleForm.searchParams.examineDepartmentId = '';
        };
        const listApis = () => {
            goalManagementApi()
                .getexamineTemplateList(ruleForm)
                .then((res) => {
                    if (res.data.code == 200) {
                        tableDatas.value = res.data.data;
                        currentPage4s.value = res.data.pageIndex;
                        pageSize4s.value = res.data.pageSize;
                        totals.value = res.data.total;
                    } else {
                        ElMessage.error(res.data.msg);
                    }
                });
        };
        onMounted(() => {
            listApis();
        });
        const onAddorUpdatas = () => {
            listApis();
        };
        // 表格
        const tableDatas = ref();
        const currentPage4s = ref();
        const pageSize4s = ref();
        const totals = ref();
        const handleSizeChanges = (val: number) => {
            // console.log(`${val} items per page`);
            ruleForms.pageSize = val;
            listApis();
        };
        const handleCurrentChanges = (val: number) => {
            // console.log(`current page: ${val}`);
            ruleForms.pageIndex = val;
            listApis();
        };
        // 弹窗
        const openAdds = ref();
        const openDs = (title: String, id: number) => {
            openAdds.value.openDailog(title, ruleForm.searchParams.examineDepartmentId, id);
        };
        // 删除
        const onDeletes = (id: number) => {
            ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning',
            })
                .then(() => {
                    goalManagementApi()
                        .getexamineTemplateDelete(id)
                        .then((res) => {
                            if (res.data.code == 200) {
                                ElMessage({
                                    message: res.data.msg,
                                    type: 'success',
                                });
                                listApi();
                            } else {
                                ElMessage.error(res.data.msg);
                            }
                        });
                })
                .catch(() => {
                    ElMessage({
                        type: 'info',
                        message: 'Delete canceled',
                    });
                });
        };
        // 批量删除
        const warnings = ref(true);
        const dangers = ref(true);
        const deletAlls = ref();
        const handleSelectionChanges = (val: any) => {
            let valId = JSON.parse(JSON.stringify(val));
            let arr = [];
            for (let i = 0; i < valId.length; i++) {
                arr.push(valId[i].id);
            }
            deletAlls.value = arr.toString();
            if (val.length == 1) {
                warnings.value = false;
                dangers.value = false;
            } else if (val.length == 0) {
                warnings.value = true;
                dangers.value = true;
            } else {
                warnings.value = true;
                dangers.value = false;
            }
        };
        const onDeleteAlls = () => {
            ElMessageBox.confirm('确定删除所选项吗?', 'Warning', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning',
            })
                .then(() => {
                    goalManagementApi()
                        .getexamineTemplateDelete(deletAll.value)
                        .then((res) => {
                            if (res.data.code == 200) {
                                ElMessage({
                                    message: res.data.msg,
                                    type: 'success',
                                });
                                listApi();
                            } else {
                                ElMessage.error(res.data.msg);
                            }
                        });
                })
                .catch(() => {
                    // ElMessage({
                    //     type: 'info',
                    //     message: 'Delete canceled',
                    // });
                });
        };
        return {
            activeName,
            activeNames,
            ruleForm,
            resetForm,
            listApi,
            handleClick,
            onAddorUpdata,
            tableData,
            formatter,
            currentPage4,
            pageSize4,
            total,
            handleSizeChange,
            handleCurrentChange,
            small,
            disabled,
            background,
            ruleForm,
            ShowAq,
            openDai,
            ShowKh,
            openDaiK,
            openAdd,
            openD,
            onDelete,
            warning,
            danger,
            deletAll,
            handleSelectionChange,
            onDeleteAll,
            ruleForms,
            resetForms,
            listApis,
            onAddorUpdatas,
            tableDatas,
            currentPage4s,
            pageSize4s,
            totals,
            handleSizeChanges,
            handleCurrentChanges,
            openAdds,
            openDs,
            onDeletes,
            warnings,
            dangers,
            deletAlls,
            handleSelectionChanges,
            onDeleteAlls,
            Plus,
            Delete,
            Upload,
@@ -295,7 +490,7 @@
    display: flex;
    justify-content: right;
}
.tableC{
    margin:0 10%;
.tableC {
    margin: 0 10%;
}
</style>
src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue
@@ -5,19 +5,19 @@
            <el-row>
                <el-col :span="11">
                    <el-form-item label="责任部门" prop="dutyDepartmentId" size="default">
                        <el-tree-select v-model="form.dutyDepartmentId" :data="data" class="w100" placeholder="请选择" />
                        <el-tree-select v-model="form.dutyDepartmentId" :data="data" class="w100" :props="propse" placeholder="请选择" />
                    </el-form-item>
                </el-col>
                <el-col :span="11" :offset="2">
                    <el-form-item label="考核指标"  prop="value" size="default">
                    <el-form-item label="考核指标" prop="value" size="default">
                        <el-input v-model="form.value" />
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <el-col :span="11">
                    <el-form-item label="制定人部门"  prop="makerDepartmentId" size="default">
                        <el-tree-select v-model="form.makerDepartmentId" :data="data" class="w100" placeholder="请选择" />
                    <el-form-item label="制定人部门" prop="makerDepartmentId" size="default">
                        <el-tree-select v-model="form.makerDepartmentId" :data="data" class="w100" :props="propse" placeholder="请选择" />
                    </el-form-item>
                </el-col>
                <el-col :span="11" :offset="2">
@@ -29,7 +29,7 @@
            <el-row>
                <el-col :span="11">
                    <el-form-item label="上报人" prop="commitPersonId" size="default">
                        <el-input v-model="form.commitPersonId">
                        <el-input v-model="nameC">
                            <template #append> <el-button :icon="Search" @click="openUser" /> </template
                        ></el-input>
                    </el-form-item>
@@ -48,19 +48,21 @@
    <DailogSearchUser ref="Show" @SearchUser="onUser"></DailogSearchUser>
</template>
<script lang="ts">
import { defineComponent, ref, reactive } from 'vue';
import { defineComponent, ref, reactive, onMounted } from 'vue';
import { Search, FullScreen } from '@element-plus/icons-vue';
import type { FormInstance, FormRules } from 'element-plus';
import DailogSearchUser from '../../../../components/DailogSearchUser/index.vue';
import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus';
import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
    components: { DailogSearchUser },
    setup(props,{emit}) {
    setup(props, { emit }) {
        const form = ref({
            dutyDepartmentId: "", ////责任部门/外键
            makerDepartmentId: "", ////制定人部门/外键
            commitPersonId: "", ////上报人/外键
            dutyDepartmentId: '', ////责任部门/外键
            makerDepartmentId: '', ////制定人部门/外键
            commitPersonId: '', ////上报人/外键
            value: '', ////考核指标值
            makeDate: "", ////制定日期
            makeDate: '', ////制定日期
        });
        const ruleFormRef = ref<FormInstance>();
        const rules = reactive<FormRules>({
@@ -105,12 +107,12 @@
            await formEl.validate((valid, fields) => {
                if (valid) {
                    dialogVisible.value = false;
                    emit("onAdd",form.value)
                    emit('onAdd', form.value);
                } else {
                    console.log('error submit!', fields);
                }
            });
        formEl.resetFields();
            formEl.resetFields();
        };
        const resetForm = (formEl: FormInstance | undefined) => {
@@ -118,6 +120,22 @@
            formEl.resetFields();
            dialogVisible.value = false;
        };
        //部门
        const department = () => {
            goalManagementApi()
                .getTreedepartment()
                .then((res) => {
                    if (res.data.code == 200) {
                        console.log(res.data.data);
                        data.value = res.data.data;
                    } else {
                        ElMessage.error(res.data.msg);
                    }
                });
        };
        onMounted(() => {
            department();
        });
        // 开启弹窗
        const dialogVisible = ref(false);
        const openDailog = () => {
@@ -137,56 +155,22 @@
                full.value = false;
            }
        };
            const data = [
            {
                value: '1',
                label: '广汇能源综合物流发展有限责任公司',
                children: [
                    {
                        value: '11',
                        label: '经营班子',
                        children: [],
                    },
                ],
            },
            {
                value: '2',
                label: '生产运行部',
                children: [
                    {
                        value: '21',
                        label: '灌装一班',
                        children: [],
                    },
                    {
                        value: '22',
                        label: '工艺四班',
                        children: [],
                    },
                ],
            },
            {
                value: '3',
                label: '设备部',
                children: [
                    {
                        value: '31',
                        label: '仪表班',
                        children: [],
                    },
                    {
                        value: '32',
                        label: '机修班',
                        children: [],
                    },
                ],
            },
        ];
        const onUser = (e:any) => {
            form.value.commitPersonId=e.id
        const propse = {
            label: 'depName',
            children: 'children',
            value:"depId"
        };
        const data = ref();
        const nameC=ref()
        const onUser = (e: any) => {
            form.value.commitPersonId = e.uid;
            nameC.value=e.realName
        };
        return {
            nameC,
            form,
            propse,
            department,
            dialogVisible,
            openDailog,
            Show,
@@ -200,7 +184,7 @@
            ruleFormRef,
            rules,
            submitForm,
            resetForm
            resetForm,
        };
    },
});