From ece2de514ed9f80d2fa833b55b2a5ad6a2d683f8 Mon Sep 17 00:00:00 2001 From: wjt <1797368093@qq.com> Date: 星期三, 19 六月 2024 14:46:04 +0800 Subject: [PATCH] 评价项修改 --- src/views/infomanger/banner/index.vue | 210 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 204 insertions(+), 6 deletions(-) diff --git a/src/views/infomanger/banner/index.vue b/src/views/infomanger/banner/index.vue index a8f2bbc..f44a038 100644 --- a/src/views/infomanger/banner/index.vue +++ b/src/views/infomanger/banner/index.vue @@ -1,9 +1,207 @@ <template> <div class="app-container"> - <el-row> - <el-col :span="24"> - <el-button></el-button> - </el-col> - </el-row> + <div class="form-content"> + <el-form inline :model="form.questionList" label-width="75px" :rules="rules"> + <div + class="border" + v-for="(item, index) in form.questionList" + :key="index" + > + <!-- <div class="title-project"> + 璇勪环椤箋{ index + 1 }} + </div> --> + <div class="close-icon" @click="removeList(index)"> + <el-icon><Close /></el-icon> + </div> + <el-row> + <el-col :span="12"> + <el-form-item :label="`璇勪环椤�${index + 1}`" style="width: 100%" :prop="item.questionName"> + <el-input + placeholder="璇疯緭鍏�" + v-model="item.questionName" + ></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="寰楀垎" :prop="item.questionScore"> + <el-input-number + placeholder="璇疯緭鍏�" + v-model="item.questionScore" + :min="1" + :max="10" + controls-position="right" + ></el-input-number> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="璇勪环绫诲瀷" :prop="item.questionType"> + <el-radio-group + placeholder="璇疯緭鍏�" + v-model="item.questionType" + > + <el-radio :value="2">鎵撳垎</el-radio> + <el-radio :value="1">閫夋嫨</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + </el-row> + <el-row v-if="item.questionType === 2"> + <el-form-item> + <el-rate disabled :max="item.questionScore" v-model="item.questionScore"></el-rate> + </el-form-item> + </el-row> + <el-row v-if="item.questionType === 1"> + <el-col :span="24"> + <el-form-item label="閫夐」" style="width: 100%;" :prop="item.answerList"> + <div + v-for="(ele, childIndex) in item.answerList" + :key="index" + style="width: 100%;" + class="set-flex" + > + <div style="font-size: 14px;margin-right: 10px">{{ childIndex + 1 }}</div> + <el-input + v-model="ele.answerName" + placeholder="璇疯緭鍏�" + style="width: 65%; margin-right: 10px" + ></el-input> + <el-checkbox v-model="ele.isScore" @change="changeValue($event, index, childIndex)" :true-value="1" :false-value="0" :label="'鏄惁璁″垎'"/> + <el-button type="danger" size="small" @click="removeArrlist(index, childIndex)" style="margin-left: 10px;">绉婚櫎</el-button> + </div> + + <!-- </el-radio-group> --> + + <div class="mt10"> + <el-button type="primary" plain @click="addOptions(index, item.questionName)">娣诲姞閫夐」</el-button> + </div> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + <div class="center mt20 fixed"> + <el-button type="primary" @click="addContent">娣诲姞璇勪环椤�</el-button> + <el-button @click="save" type="primary" >淇濆瓨鍐呭</el-button> + </div> + </div> </div> -</template> \ No newline at end of file +</template> + +<script lang="ts" setup> +import { listEvaluate, saveEvaluate } from '@/api/system/company/company' +import { ElMessage, ElMessageBox} from 'element-plus' +const tableData = ref([]) +const addNewRef = ref() +const form: any = ref({ + questionList: [] +}) +const rules = ref({ + questionName: [ + { + required: true, + message: '璇疯緭鍏ラ棶棰�', + trigger: 'blur' + } + ] +}) +function getListEvaluate() { + listEvaluate().then((val) => { + form.value.questionList = val.data.questionList + }) +} +function addContent() { + form.value.questionList.push({ + questionStatus: 0, + questionType: 2, + questionScore: 5, + answerList: [] + }) +} +function addOptions(index: number, name){ + if(!form.value.questionList[index].answerList) { + form.value.questionList[index].answerList = [] + } + form.value.questionList[index].answerList.push({ + questionName: name + }) +} +function save() { + saveEvaluate({questionList: form.value.questionList}).then(val => { + ElMessage.success('淇濆瓨鎴愬姛') + }) +} +function changeValue(event, index, childIndex) { + // form.value.questionList[index].isScore = event.target. + form.value.questionList[index].answerList.forEach((item: { isScore: number }) => { + item.isScore = 0 + }) + form.value.questionList[index].answerList[childIndex].isScore = 1 +} +function removeList(index) { + ElMessageBox.confirm('纭绉婚櫎璇ヨ瘎浠烽」锛�', '鎻愮ず', { + confirmButtonText: '纭', + cancelButtonText: '鍙栨秷', + type: 'danger', + }).then(val => { + form.value.questionList.splice(index, 1) + }) + +} +function removeArrlist(index: string | number, childIndex: any) { + form.value.questionList[index].answerList.splice(childIndex, 1) +} +getListEvaluate() +</script> + +<style scoped lang="scss"> +.form-content { + width: 80%; + padding-bottom: 150px; + margin: 0 auto; + // border: 1px solid #e2e2e2; +} + +.border { + // border: 1px solid #e2e2e2; + margin-bottom: 10px; + padding: 20px 30px 0; + position: relative; + :deep() { + .el-form-item__label{ + font-weight: 500 + } + } +} +.close-icon { + position: absolute; + right: 10px; + top: 10px; + cursor: pointer; +} + +.add-button { + text-align: center; + border: 1px dotted #979797; + line-height: 40px; + cursor: pointer; + border-radius: 5px; +} +.set-flex{ + display: flex; + justify-content: flex-start; + margin-top: 10px +} +.center{ + text-align: center; +} +.fixed{ + background-color: white; + position: sticky; + bottom: 0; +} +.title-project{ + font-weight: 700; + color: #606266; + margin-bottom: 10px +} +</style> -- Gitblit v1.9.1