沈丘营商办后台前端项目
wjt
2024-06-20 f5e5052489b3ebbbd53b2dcb9fff8d107d28a793
src/views/infomanger/banner/index.vue
@@ -1,7 +1,7 @@
<template>
  <div class="app-container">
    <div class="form-content">
      <el-form inline :model="form.questionList" label-width="75px" :rules="rules">
      <el-form inline :model="form.questionList" ref="formRef" label-width="75px" :rules="rules">
        <div
          class="border"
          v-for="(item, index) in form.questionList"
@@ -11,11 +11,18 @@
            评价项{{ index + 1 }}
          </div> -->
          <div class="close-icon" @click="removeList(index)">
            <el-icon><Close /></el-icon>
            <el-tooltip content="移除评价项">
              <el-icon><Close color="red"/></el-icon>
            </el-tooltip>
          </div>
          <el-row>
            <el-col :span="12">
              <el-form-item :label="`评价项${index + 1}`" style="width: 100%" :prop="item.questionName">
              <el-form-item :label="`评价项${index + 1}`" :prop="`${index}`" style="width: 100%"  :rules="[
                {
                  validator: validateSubField,
                  trigger: 'blur'
                }
              ]">
                <el-input
                  placeholder="请输入"
                  v-model="item.questionName"
@@ -52,7 +59,11 @@
          </el-row>
          <el-row v-if="item.questionType === 1">
            <el-col :span="24">
              <el-form-item label="选项" style="width: 100%;"  :prop="item.answerList">
              <el-form-item label="选项" style="width: 100%;"  :prop="`${index}`" :rules="[
                {
                  validator: answerListField,
                }
              ]">
                  <div
                    v-for="(ele, childIndex) in item.answerList"
                    :key="index"
@@ -81,7 +92,7 @@
      </el-form>
      <div class="center mt20 fixed">
        <el-button type="primary" @click="addContent">添加评价项</el-button>
        <el-button @click="save" type="primary" >保存内容</el-button>
        <el-button @click="save()" type="primary" >保存内容</el-button>
      </div>
    </div>
  </div>
@@ -92,18 +103,21 @@
import { ElMessage, ElMessageBox} from 'element-plus'
const tableData = ref([])
const addNewRef = ref()
const formRef = ref()
const form: any = ref({
  questionList: []
})
const rules = ref({
  questionName: [
    {
      required: true,
      message: '请输入问题',
      trigger: 'blur'
        required: true,
        message: '请输入问题',
        trigger: 'blur'
    }
  ]
})
const instance = getCurrentInstance()
function getListEvaluate() {
  listEvaluate().then((val) => {
    form.value.questionList = val.data.questionList
@@ -114,10 +128,11 @@
    questionStatus: 0,
    questionType: 2,
    questionScore: 5,
    questionName: '',
    answerList: []
  })
}
function addOptions(index: number, name){
function addOptions(index: number, name: any){
  if(!form.value.questionList[index].answerList) {
    form.value.questionList[index].answerList = []
  }
@@ -125,10 +140,39 @@
    questionName: name
  })
}
function save() {
  saveEvaluate({questionList: form.value.questionList}).then(val => {
    ElMessage.success('保存成功')
function save(item?: string) {
  formRef.value.validate((valid) => {
    console.log(valid)
    if(valid) {
      saveEvaluate({questionList: form.value.questionList}).then(val => {
        ElMessage.success(item||'保存成功')
      })
    }
  })
}
function validateSubField(rule: any, value: any, callback: any) {
  // console.log(rule, value)
//   console.log(proxy['form'])
  if(!form.value.questionList[rule.field].questionName) {
    callback(new Error('请入评价项'))
  } else {
    callback()
  }
}
function answerListField(rule: { field: string | number }, value: any, callback: any) {
  if(form.value.questionList[rule.field].answerList.length < 2) {
    callback(new Error('请至少添加两项'))
  } else if(form.value.questionList[rule.field].answerList) {
    const value = form.value.questionList[rule.field].answerList.every(item => item.answerName)
    if(!value) {
      callback(new Error('请完善选项内容'))
    } else {
      callback()
    }
  } else {
    callback()
  }
}
function changeValue(event, index, childIndex) {
  // form.value.questionList[index].isScore = event.target.
@@ -144,7 +188,7 @@
      type: 'danger',
    }).then(val => {
      form.value.questionList.splice(index, 1)
      save()
      save('删除成功')
    })
 
}