马宇豪
2024-11-21 cc3e08bda13360c88b7189e8f8d043b60783c7fb
src/views/safetyReview/baseSet/evaluateType/components/typeDialog.vue
@@ -6,15 +6,24 @@
            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-item>
            <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="110px" >
              <el-form-item label="类型:" prop="label">
                <el-radio-group v-model="state.form.scoreType">
                  <el-radio label="1" size="large" border>加分项</el-radio>
                  <el-radio label="2" size="large" border>扣分项</el-radio>
                </el-radio-group>
              </el-form-item>
              <el-form-item label="标准分值:" prop="score">
                  <el-input v-model.trim="state.form.score"></el-input>
              </el-form-item>
              <el-form-item label="内容:" prop="content">
                <el-input v-model.trim="state.form.content" type="textarea" :autosize="{minRows: 2}"></el-input>
              </el-form-item>
            </el-form>
            <template #footer>
                    <span class="dialog-footer">
                        <el-button @click="handleClose" size="default">取 消</el-button>
                        <el-button type="primary"  @click="onSubmit" size="default">确认</el-button>
                        <el-button type="primary"  @click="onSubmit" size="default" v-preReClick>确认</el-button>
                    </span>
            </template>
        </el-dialog>
@@ -24,62 +33,95 @@
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, addReview, editDict, editReview, 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: '',
      score: '',
      content: '',
      scoreType: null
    },
    formRules:{
        type: [{ required: true, message: '请输入评价类型', trigger: 'blur' }],
      scoreType: [{ required: true, message: '请选择类型', trigger: 'blur' }],
      score: [{ required: true, message: '请输入标准分值', trigger: 'blur' }],
      content: [{ required: true, message: '请输入内容', trigger: 'blur' }]
    },
})
const openDialog = (type, value) => {
    isReview.value = false;
    title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
const openDialog = async (type, value) => {
    title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看';
    if(type === 'edit') {
        state.form = value;
        state.form = value
    }
    dialogVisible.value = true;
    dialogVisible.value = true
}
const onSubmit = async () => {
    const valid = await typeRef.value.validate();
    const valid = await busRef.value.validate();
    if(valid){
        typeRef.value.clearValidate();
        reset();
        dialogVisible.value = false;
        if(title.value === '新增'){
            const param = {
              score: state.form.score,
              content: state.form.content,
              scoreType: state.form.scoreType
            }
            const res = await addReview(param)
            if(res.code === 200){
                ElMessage({
                    type: 'success',
                    message: '新增成功'
                });
            }else{
                ElMessage.warning(res.message)
            }
            emit("getList")
            busRef.value.clearValidate();
            dialogVisible.value = false;
        }else if(title.value === '编辑'){
            const param = {
              id: state.form.id,
              score: state.form.score,
              content: state.form.content,
              scoreType: state.form.scoreType
            }
            const res = await editReview(param)
            if(res.code === 200){
                ElMessage({
                    type: 'success',
                    message: '修改成功'
                });
            }else{
                ElMessage.warning(res.message)
            }
            emit("getList")
            busRef.value.clearValidate();
            dialogVisible.value = false;
        }
    }
}
const handleClose = () => {
    typeRef.value.clearValidate();
    busRef.value.clearValidate();
    reset();
    dialogVisible.value = false;
}
const reset = () => {
    state.form = {
        type: ""
      id: '',
      score: '',
      content: '',
      scoreType: null
    }
}
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
});