zhouwenxuan
2023-12-01 3451f5695d6fb65eeac2f4eedd9bf8cdd16a6d79
src/views/safetyReview/baseSet/evaluateType/components/typeDialog.vue
@@ -6,9 +6,9 @@
            width="500px"
            :before-close="handleClose"
        >
            <el-form :model="state.form" size="default" ref="typeRef" :rules="state.formRules" label-width="110px" >
                <el-form-item label="评价类型:" prop="type">
                    <el-input v-model.trim="state.form.type"></el-input>
            <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="110px" >
                <el-form-item label="评价类型:" prop="label">
                    <el-input v-model.trim="state.form.label"></el-input>
                </el-form-item>
            </el-form>
            <template #footer>
@@ -24,62 +24,105 @@
import {reactive, ref, toRefs} from 'vue'
import Editor from "@/components/Editor/index.vue";
import {ElMessage} from "element-plus";
import {addNotice} from "@/api/backManage/notice";
import {addDict, editDict, getDictDetail} from "@/api/backManage/evaluate";
const dialogVisible = ref(false);
const title = ref("");
const typeRef = ref();
const isReview = ref(false);
const busRef = ref();
const length = ref()
const emit = defineEmits(["getList"]);
const state = reactive({
    form: {
        type: ''
        id: '',
        label: '',
        value: '',
        dictType: "sys_assess_type",
    },
    formRules:{
        type: [{ required: true, message: '请输入评价类型', trigger: 'blur' }],
        label: [{ required: true, message: '请输入评价类型', trigger: 'blur' }],
    },
})
const openDialog = (type, value) => {
    isReview.value = false;
const openDialog = async (type, value) => {
    length.value = value.listLength
    title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
    if(type === 'edit') {
        state.form = value;
        const param = {
            dictId: value.id
        }
        const res = await getDictDetail(param);
        if(res.code === 200){
            state.form = res.data
        }else{
            ElMessage.warning(res.message)
        }
    }
    dialogVisible.value = true;
}
const onSubmit = async () => {
    const valid = await typeRef.value.validate();
    const valid = await busRef.value.validate();
    if(valid){
        typeRef.value.clearValidate();
        if(title.value === '新增'){
            const param = {
                dictType: "sys_assess_type",
                label: state.form.label,
                value: length.value.toString()
            }
            const res = await addDict(param)
            if(res.code === 200){
                ElMessage({
                    type: 'success',
                    message: '新增成功'
                });
            }else{
                ElMessage.warning(res.message)
            }
            emit("getList")
            busRef.value.clearValidate();
        reset();
        dialogVisible.value = false;
        }else if(title.value === '编辑'){
            const param = {
                id: state.form.id,
                dictType: state.form.dictType,
                label: state.form.label,
                value: state.form.value
            }
            const res = await editDict(param)
            if(res.code === 200){
                ElMessage({
                    type: 'success',
                    message: '新增成功'
                });
            }else{
                ElMessage.warning(res.message)
            }
            emit("getList")
            busRef.value.clearValidate();
            reset();
            dialogVisible.value = false;
        }
    }
}
const handleClose = () => {
    typeRef.value.clearValidate();
    busRef.value.clearValidate();
    reset();
    dialogVisible.value = false;
}
const reset = () => {
    state.form = {
        type: ""
        id: '',
        label: '',
        value: '',
        dictType: "sys_assess_type",
    }
}
const handleRemove = (file, fileList) => {
    console.log(file, fileList);
}
const handlePreview = (uploadFile) => {
    console.log(uploadFile)
}
const beforeRemove = (file, fileList) => {
    return this.$confirm(`确定移除 ${ file.name }?`);
}
defineExpose({
    openDialog
});