From 92635153603d2ce139d2d9d53b4754bcd4457716 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 14 十月 2025 09:55:20 +0800
Subject: [PATCH] 最新版本541200007
---
admin/src/components/business/OperaProblemsWindow.vue | 182 +++++++++++++++++++++++++++++++++++++--------
1 files changed, 150 insertions(+), 32 deletions(-)
diff --git a/admin/src/components/business/OperaProblemsWindow.vue b/admin/src/components/business/OperaProblemsWindow.vue
index 5fb5b7c..3ea89b9 100644
--- a/admin/src/components/business/OperaProblemsWindow.vue
+++ b/admin/src/components/business/OperaProblemsWindow.vue
@@ -1,50 +1,66 @@
<template>
<GlobalWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
+ :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 v-model="form.type" @change="changeType" 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 :label="0">璁垮鍜屽姵鍔�</el-radio> -->
+ <el-radio :label="1">浠呰瀹�</el-radio>
+ <!-- <el-radio :label="2">浠呭姵鍔�</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 label="鍒嗗��" prop="score">
+ <el-input v-model="form.score" type="number" placeholder="璇疯緭鍏�" v-trim/>
</el-form-item>
- <el-form-item label="閫夐」闆嗗悎" prop="options" v-if="form.type === '1' || form.type === '2'">
+ <el-form-item label="棰樼洰椤哄簭(鍗囧簭)" prop="sortnu">
+ <el-input v-model="form.sortnu" type="number" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="閫夐」闆嗗悎" prop="objectList" 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"
+ v-for="item in form.objectList"
+ :key="item.code"
+ :label="item.sort"
:name="item.id"
>
- <el-input v-model="item.val" placeholder="璇疯緭鍏�" v-trim/>
+ <el-input v-model="item.value" placeholder="璇疯緭鍏�" v-trim/>
</el-tab-pane>
</el-tabs>
</el-form-item>
<el-form-item label="姝g‘绛旀" prop="answer">
- <el-select v-model="form.answer" multiple placeholder="璇烽�夋嫨姝g‘绛旀">
+ <el-select v-model="form.answer" v-if="form.type === 0" placeholder="璇烽�夋嫨姝g‘绛旀">
+ <el-option label="姝g‘" value="姝g‘"></el-option>
+ <el-option label="閿欒" value="閿欒"></el-option>
+ </el-select>
+ <el-select v-model="form.answer" v-if="form.type === 1" placeholder="璇烽�夋嫨姝g‘绛旀">
<el-option
- v-for="item in problems"
+ v-for="item in form.objectList"
:key="item.id"
- :label="item.name"
- :value="item.id">
+ :label="item.sort"
+ :value="item.code">
+ </el-option>
+ </el-select>
+ <el-select v-model="form.answer" v-if="form.type === 2" multiple placeholder="璇烽�夋嫨姝g‘绛旀">
+ <el-option
+ v-for="item in form.objectList"
+ :key="item.id"
+ :label="item.sort"
+ :value="item.code">
</el-option>
</el-select>
</el-form-item>
@@ -65,19 +81,32 @@
form: {
id: null,
title: '',
- options: '',
+ objectList: [
+ { code: 'A', value: '', sort: '閫夐」A', id: '0' }
+ ],
answer: '',
sortnu: '',
- type: '',
- useType: ''
+ score: '',
+ type: 0,
+ scroe:null,
+ useType: 1
},
// 楠岃瘉瑙勫垯
rules: {
+ title: [
+ { required: true, message: '璇疯緭鍏ラ鐩悕绉�' }
+ ],
+ type: [
+ { required: true, message: '璇烽�夋嫨棰樼洰绫诲瀷' }
+ ],
+ useType: [
+ { required: true, message: '璇烽�夋嫨閫傜敤鐢ㄦ埛' }
+ ],
+ answer: [
+ { required: true, message: '璇烽�夋嫨姝g‘绛旀' }
+ ]
},
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']
}
},
@@ -88,19 +117,108 @@
})
},
methods: {
+ open (title, target) {
+ this.title = title
+ this.editableTabsValue = '0'
+ this.visible = true
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ })
+ },
+ confirm () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ if (this.form.id == null || this.form.id === '') {
+ this.api.create({
+ // eslint-disable-next-line valid-typeof
+ answer: typeof this.form.answer === 'object' ? this.form.answer.join(',') : this.form.answer,
+ title: this.form.title,
+ sortnu: this.form.sortnu,
+ type: this.form.type,
+ useType: this.form.useType,
+ score: this.form.score,
+ objectList: this.form.objectList
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鏂板缓鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ // this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ } else {
+ this.api.updateById({
+ id: this.form.id,
+ // eslint-disable-next-line valid-typeof
+ answer: typeof this.form.answer === 'object' ? this.form.answer.join(',') : this.form.answer,
+ title: this.form.title,
+ sortnu: this.form.sortnu,
+ type: this.form.type,
+ useType: this.form.useType,
+ score: this.form.score,
+ objectList: this.form.objectList
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('淇敼鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ // this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ }
+ })
+ },
+ changeType (e) {
+ this.editableTabsValue = '0'
+ this.form.objectList = [
+ { code: 'A', value: '', sort: '閫夐」A', id: '0' }
+ ]
+ this.$nextTick(() => {
+ if (e === '0' || e === '1') {
+ this.form.answer = ''
+ } else {
+ this.form.answer = []
+ }
+ })
+ this.$forceUpdate()
+ },
removeTab (e) {
- this.problems.splice(e, 1)
+ this.form.objectList.splice(e, 1)
if (e === this.editableTabsValue) {
this.editableTabsValue = '0'
}
- this.problems.forEach((item, index) => {
- item.name = '閫夐」' + this.arr[index]
+ this.form.objectList.forEach((item, index) => {
+ item.code = this.arr[index]
+ item.sort = '閫夐」' + 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() })
+ const sort = '閫夐」' + this.arr[this.form.objectList.length]
+ this.form.objectList.push({ sort, value: '', code: this.arr[this.form.objectList.length], id: this.form.objectList.length.toString() })
}
}
}
--
Gitblit v1.9.3