| <template> | 
|     <GlobalWindow | 
|             :title="title" | 
|             :visible.sync="visible" | 
|             :confirm-working="isWorking" | 
|             @confirm="confirm" | 
|     > | 
|         <el-form :model="form" ref="form" :rules="rules"> | 
|             <el-form-item label="题目" prop="title"> | 
|                 <el-input v-model="form.title" placeholder="请输入题目" v-trim/> | 
|             </el-form-item> | 
|             <el-form-item label="题目类型" prop="type"> | 
|                 <el-select v-model="form.type" placeholder="请选择"> | 
|                     <el-option label="判断" value="0"></el-option> | 
|                     <el-option label="单选" value="1"></el-option> | 
|                     <el-option label="多选" value="2"></el-option> | 
|                 </el-select> | 
|             </el-form-item> | 
|             <el-form-item label="适用用户" prop="useType"> | 
|                 <el-radio-group v-model="form.useType"> | 
|                     <el-radio :label="0">劳务人员</el-radio> | 
|                     <el-radio :label="1">普通访客</el-radio> | 
|                 </el-radio-group> | 
|             </el-form-item> | 
|             <el-form-item label="题目顺序(升序)" prop="sortnu"> | 
|                 <el-input v-model="form.sortnu" placeholder="请输入" v-trim/> | 
|             </el-form-item> | 
|             <el-form-item label="选项集合" prop="options" v-if="form.type === '1' || form.type === '2'"> | 
|                 <el-button type="primary" style="width: 120px; margin-bottom: 15px;" @click="add" icon="el-icon-plus">添加选项</el-button> | 
|                 <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab"> | 
|                     <el-tab-pane | 
|                         v-for="item in problems" | 
|                         :key="item.name" | 
|                         :label="item.name" | 
|                         :name="item.id" | 
|                     > | 
|                         <el-input v-model="item.val" placeholder="请输入" v-trim/> | 
|                     </el-tab-pane> | 
|                 </el-tabs> | 
|             </el-form-item> | 
|             <el-form-item label="正确答案" prop="answer"> | 
|                 <el-select v-model="form.answer" multiple placeholder="请选择正确答案"> | 
|                     <el-option | 
|                         v-for="item in problems" | 
|                         :key="item.id" | 
|                         :label="item.name" | 
|                         :value="item.id"> | 
|                     </el-option> | 
|                 </el-select> | 
|             </el-form-item> | 
|         </el-form> | 
|     </GlobalWindow> | 
| </template> | 
|   | 
| <script> | 
| import BaseOpera from '@/components/base/BaseOpera' | 
| import GlobalWindow from '@/components/common/GlobalWindow' | 
| export default { | 
|   name: 'OperaProblemsWindow', | 
|   extends: BaseOpera, | 
|   components: { GlobalWindow }, | 
|   data () { | 
|     return { | 
|       // 表单数据 | 
|       form: { | 
|         id: null, | 
|         title: '', | 
|         options: '', | 
|         answer: '', | 
|         sortnu: '', | 
|         type: '', | 
|         useType: '' | 
|       }, | 
|       // 验证规则 | 
|       rules: { | 
|       }, | 
|       editableTabsValue: '0', | 
|       problems: [ | 
|         { name: '选择A', val: '', id: '0' } | 
|       ], | 
|       arr: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] | 
|     } | 
|   }, | 
|   created () { | 
|     this.config({ | 
|       api: '/business/problems', | 
|       'field.id': 'id' | 
|     }) | 
|   }, | 
|   methods: { | 
|     removeTab (e) { | 
|       this.problems.splice(e, 1) | 
|       if (e === this.editableTabsValue) { | 
|         this.editableTabsValue = '0' | 
|       } | 
|       this.problems.forEach((item, index) => { | 
|         item.name = '选项' + this.arr[index] | 
|         item.id = index.toString() | 
|       }) | 
|     }, | 
|     add () { | 
|       const name = '选项' + this.arr[this.problems.length] | 
|       this.problems.push({ name, val: '', id: this.problems.length.toString() }) | 
|     } | 
|   } | 
| } | 
| </script> |