From 08881d6b6412822d5035f63a0775ca1f213c8668 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 20 十月 2025 10:17:22 +0800
Subject: [PATCH] 测试完成
---
src/components/Regular/index.vue | 453 ++++++++++++++++++++++++++++++++++---------------------
1 files changed, 279 insertions(+), 174 deletions(-)
diff --git a/src/components/Regular/index.vue b/src/components/Regular/index.vue
index 6368c34..30d359f 100644
--- a/src/components/Regular/index.vue
+++ b/src/components/Regular/index.vue
@@ -1,190 +1,252 @@
<template>
<div>
- <div class="topicxq" v-for="item in TargetoptionList">
- <el-row :gutter="10">
- <el-col :span="12"
- ><el-form-item label="閫夐」鍚�">
- <el-input
- type="text"
- placeholder="璇疯緭鍏�"
- v-model="item.targetvalue"
- show-word-limit
- >
- </el-input> </el-form-item
- ></el-col>
- <el-col :span="12" v-if="intent"
- ><el-form-item label="閫夐」鑺傜偣">
- <el-input
- type="text"
- placeholder="璇疯緭鍏ヨ妭鐐�"
- v-model="item.targetid"
- show-word-limit
- >
- </el-input> </el-form-item
- ></el-col>
- </el-row>
- <el-row :gutter="10" v-if="intent">
- <el-col :span="12"
- ><el-form-item label="澶勭悊">
- <el-input
- type="text"
- placeholder="(榛樿)鏃犲0"
- v-model="item.text"
- maxlength="10"
- show-word-limit
- >
- </el-input> </el-form-item
- ></el-col>
- <el-col :span="12"
- ><el-form-item label="閫変腑璺宠浆">
- <el-input
- type="text"
- placeholder="璇疯緭鍏ラ鐩妭鐐�"
- v-model="item.nextQuestion"
- show-word-limit
- >
- </el-input> </el-form-item
- ></el-col>
- </el-row>
- <el-form-item label="鍏抽敭瀛�(鍚�)" prop="desc">
- <div class="xinz-inf">
- <el-tag
- :key="crux"
- type="success"
- v-for="crux in item.dynamiccruxs"
- closable
- effect="dark"
- :disable-transitions="false"
- @close="handleClosecrux(crux, item, 1)"
+ <div
+ class="topicxq"
+ v-for="item in TargetoptionList"
+ v-if="item.isoperation != 3"
+ >
+ <el-form :inline="true" :rules="rules" :model="item" label-width="80px">
+ <el-row :gutter="10">
+ <el-col :span="12"
+ ><el-form-item prop="targetvalue" label="閫夐」鍚嶇О">
+ <el-input
+ type="text"
+ placeholder="璇疯緭鍏ワ紙蹇呭~椤癸級"
+ v-model="item.targetvalue"
+ show-word-limit
+ >
+ </el-input> </el-form-item
+ ></el-col>
+ <el-col :span="12"
+ ><el-form-item label="寮傚父鎻愰啋">
+ <el-radio-group v-model="item.isabnormal">
+ <el-radio :label="1">鏄�</el-radio>
+ <el-radio :label="0">鍚�</el-radio>
+ </el-radio-group>
+ </el-form-item></el-col
>
- {{ crux }}
- </el-tag>
- <el-select
- v-model="inputValue"
- v-if="item.inputVisible"
- @change="handleInputConfirm(item)"
- filterable
- remote
- allow-create
- reserve-keyword
- default-first-option
- :loading="loading"
- placeholder="璇烽�夋嫨"
- >
- <el-option
- v-for="items in regular"
- :key="items.label"
- :label="items.label"
- :value="items.label"
- >
- </el-option>
- </el-select>
- <el-button
- v-else
- class="button-new-tag"
- size="small"
- @click="showInput(item)"
- >+ 鏂板</el-button
- >
- </div>
- </el-form-item>
- <el-form-item label="鍏抽敭瀛�(闈�)" prop="desc">
- <div class="xinz-inf">
- <el-tag
- :key="crux"
- type="warning"
- v-for="crux in item.nodynamiccruxs"
- closable
- effect="dark"
- :disable-transitions="false"
- @close="handleClosecrux(crux, item, 2)"
- >
- {{ crux }}
- </el-tag>
- <el-select
- v-model="inputValue"
- v-if="item.noinputVisible"
- @change="handleInputConfirm(item)"
- filterable
- remote
- allow-create
- reserve-keyword
- default-first-option
- :loading="loading"
- placeholder="璇烽�夋嫨"
- >
- <el-option
- v-for="items in noregular"
- :key="items.value"
- :label="items.label"
- :value="items.label"
- >
- </el-option>
- </el-select>
- <el-button
- v-else
- class="button-new-tag"
- size="small"
- @click="showInputno(item)"
- >+ 鏂板</el-button
- >
- </div>
- </el-form-item>
+ <!-- <el-col :span="12" v-if="intent"
+ ><el-form-item label="閫夐」鑺傜偣">
+ <el-input
+ type="text"
+ placeholder="璇疯緭鍏ヨ妭鐐�"
+ v-model="item.targetid"
+ show-word-limit
+ >
+ </el-input> </el-form-item
+ ></el-col> -->
+ </el-row>
+ <el-row :gutter="10" v-if="!intent">
+ <el-col :span="20"
+ ><el-form-item label="閫夐」璇存槑">
+ <el-input
+ style="width: 500px"
+ type="textarea"
+ :rows="2"
+ placeholder="璇疯緭鍏�"
+ v-model="item.optiondesc"
+ show-word-limit
+ >
+ </el-input> </el-form-item
+ ></el-col>
+ </el-row>
+ <el-form-item label="缁撴潫瀵硅瘽">
+ <el-radio-group v-model="item.isEnd">
+ <el-radio :label="1">鏄�</el-radio>
+ <el-radio :label="0">鍚�</el-radio>
+ </el-radio-group>
+ </el-form-item>
- <el-row :gutter="10">
- <el-col :span="16">
- <el-form-item label="璇煶鏂囦欢">
+ <el-row :gutter="10" v-if="intent">
+ <el-col :span="12"
+ ><el-form-item label="澶勭悊">
+ <el-input
+ type="text"
+ placeholder="(榛樿)鏃犲0"
+ v-model="item.text"
+ maxlength="10"
+ show-word-limit
+ >
+ </el-input> </el-form-item
+ ></el-col>
+ <el-col :span="12" v-show="branchFlag"
+ ><el-form-item label="閫変腑璺宠浆">
+ <el-input
+ type="text"
+ @blur="$emit('branchFlagfn', item.nextQuestion)"
+ placeholder="璇疯緭鍏ラ鐩妭鐐�"
+ v-model="item.nextQuestion"
+ show-word-limit
+ >
+ </el-input> </el-form-item
+ ></el-col>
+ </el-row>
+ <el-row :gutter="10" v-if="scriptType == 1">
+ <el-form-item label="閫変腑鎻愮ず">
+ <el-input
+ style="width: 24vw"
+ type="textarea"
+ autosize
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ v-model="item.prompt"
+ >
+ </el-input
+ ></el-form-item>
+ </el-row>
+ <el-row>
+ <el-form-item label="鍏抽敭瀛�(鍚�)" prop="desc" v-if="hasValue">
+ <div class="xinz-inf">
+ <el-tag
+ :key="crux"
+ type="success"
+ v-for="crux in item.dynamiccruxs"
+ closable
+ effect="dark"
+ :disable-transitions="false"
+ @close="handleClosecrux(crux, item, 1)"
+ >
+ {{ crux }}
+ </el-tag>
+ <el-select
+ v-model="inputValue"
+ v-if="item.inputVisible"
+ @change="handleInputConfirm(item)"
+ filterable
+ remote
+ allow-create
+ reserve-keyword
+ default-first-option
+ :loading="loading"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="items in regular"
+ :key="items.label"
+ :label="items.label"
+ :value="items.label"
+ >
+ </el-option>
+ </el-select>
+ <el-button
+ v-else
+ class="button-new-tag"
+ size="small"
+ @click="showInput(item)"
+ >+ 鏂板</el-button
+ >
+ </div>
+ </el-form-item>
+ </el-row>
+ <el-row>
+ <el-form-item label="鍏抽敭瀛�(闈�)" prop="adesc" v-if="hasValue">
+ <div class="xinz-inf">
+ <el-tag
+ :key="crux"
+ type="warning"
+ v-for="crux in item.nodynamiccruxs"
+ closable
+ effect="dark"
+ :disable-transitions="false"
+ @close="handleClosecrux(crux, item, 2)"
+ >
+ {{ crux }}
+ </el-tag>
+ <el-select
+ v-model="inputValue"
+ v-if="item.noinputVisible"
+ @change="handleInputConfirm(item)"
+ filterable
+ remote
+ allow-create
+ reserve-keyword
+ default-first-option
+ :loading="loading"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="items in noregular"
+ :key="items.value"
+ :label="items.label"
+ :value="items.label"
+ >
+ </el-option>
+ </el-select>
+ <el-button
+ v-else
+ class="button-new-tag"
+ size="small"
+ @click="showInputno(item)"
+ >+ 鏂板</el-button
+ >
+ </div>
+ </el-form-item>
+ </el-row>
+
+ <el-form-item label="閫夐」鏂囦欢" prop="sickness" v-if="Verbalproblem">
+ <div style="width: 40vw">
<el-upload
class="upload-demo"
- style="display: flex"
- action="https://jsonplaceholder.typicode.com/posts/"
- :on-change="handleChange"
- :file-list="fileList"
- :limit="1"
- :on-exceed="handleExceed"
+ :action="uploadImgUrl"
+ :headers="headers"
+ accept=".jpg,.png,image/*"
+ :on-success="handleChange.bind(this, item)"
>
<el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
</el-upload>
- </el-form-item></el-col
- >
- <el-col :span="8">
- <div style="text-align: right; padding-right: 10px">
- <el-button
- v-if="controlsc"
- @click="$emit('addoption', item)"
- type="success"
- icon="el-icon-circle-plus-outline"
- circle
- ></el-button>
- <el-button
- type="danger"
- icon="el-icon-delete"
- circle
- @click="$emit('deloption', item)"
- ></el-button>
- <el-button
- v-if="controlsc"
- @click="$emit('syioption', item)"
- type="primary"
- icon="el-icon-top"
- circle
- ></el-button>
- <el-button
- v-if="controlsc"
- @click="$emit('xiayioption', item)"
- type="primary"
- icon="el-icon-bottom"
- circle
- ></el-button>
+ <div style="margin: 20px">
+ <el-image
+ style="width: 100px; height: 100px"
+ :src="item.picturePath"
+ :preview-src-list="
+ item.picturePath ? [item.picturePath] : []
+ "
+ >
+ </el-image>
+ </div>
</div>
- </el-col>
- </el-row>
+ </el-form-item>
+
+ <el-row :gutter="10">
+ <el-col>
+ <div style="text-align: right; padding-right: 10px">
+ <el-button
+ v-if="controlsc || addoption"
+ @click="$emit('addoption', item)"
+ type="success"
+ icon="el-icon-circle-plus-outline"
+ circle
+ ></el-button>
+ <el-button
+ type="danger"
+ icon="el-icon-delete"
+ circle
+ @click="$emit('deloption', item)"
+ ></el-button>
+ <el-button
+ v-if="controlsc"
+ @click="$emit('syioption', item)"
+ type="primary"
+ icon="el-icon-top"
+ circle
+ ></el-button>
+ <el-button
+ v-if="controlsc"
+ @click="$emit('xiayioption', item)"
+ type="primary"
+ icon="el-icon-bottom"
+ circle
+ ></el-button>
+ </div>
+ </el-col>
+ </el-row>
+ </el-form>
</div>
</div>
</template>
<script>
import store from "@/store";
+import { getToken } from "@/utils/auth";
export default {
data() {
@@ -197,6 +259,10 @@
url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
},
],
+ headers: {
+ Authorization: "Bearer " + getToken(),
+ },
+ uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
whether: 1, //1涓哄叧閿瘝锛�2涓哄惁瀹氬叧閿瘝
inputValue: "",
inputVisible: false,
@@ -206,6 +272,14 @@
noregular: [],
nodynamiccruxs: ["鍒�", "涓�"],
dynamiccruxs: ["濂�"],
+ rules: {
+ targetvalue: [
+ { required: true, message: "璇疯緭鍏ラ�夐」鍚嶇О", trigger: "blur" },
+ ],
+ isabnormal: [
+ { required: true, message: "璇疯緭鍏ラ�夐」鍚嶇О", trigger: "blur" },
+ ],
+ },
};
},
props: {
@@ -218,9 +292,29 @@
type: Boolean,
default: true,
},
+ scriptType: {
+ type: String,
+ default: "1",
+ },
+ addoption: {
+ type: Boolean,
+ default: false,
+ },
intent: {
type: Boolean,
default: true,
+ },
+ hasValue: {
+ type: Boolean,
+ default: true,
+ },
+ Verbalproblem: {
+ type: Boolean,
+ default: true,
+ },
+ branchFlag: {
+ type: Boolean,
+ default: false,
},
},
@@ -268,9 +362,9 @@
this.handleSelectionChange();
},
// 鎺у埗鏂囦欢
- handleChange(file, fileList) {
- this.fileList = fileList.slice(-3);
- },
+ // handleChange(file, fileList) {
+ // this.fileList = fileList.slice(-3);
+ // },
// 鏂囦欢瓒呭嚭涓暟闄愬埗鏃剁殑閽╁瓙
handleExceed(files, fileList) {
this.$message.warning(
@@ -344,6 +438,17 @@
console.log(this.TargetoptionList);
this.$emit("handleSelectionChange", selection);
},
+ // 閫夐」鏂囦欢涓婁紶
+ handleChange(item, response, file, fileList) {
+ console.log(response, "response");
+ console.log(item, "item");
+ console.log(this.TargetoptionList, "this.TargetoptionList");
+ let index = this.TargetoptionList.findIndex(
+ (obj) => obj.guid == item.guid
+ );
+ console.log(index);
+ this.TargetoptionList[index].picturePath = response.url;
+ },
},
};
</script>
--
Gitblit v1.9.3