From 7611c86d2b45b64112dd4a21cfc283543a46f29d Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期五, 01 十一月 2024 17:02:41 +0800
Subject: [PATCH] 测试完成

---
 src/components/Regular/index.vue |  465 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 272 insertions(+), 193 deletions(-)

diff --git a/src/components/Regular/index.vue b/src/components/Regular/index.vue
index e71b7be..04dc972 100644
--- a/src/components/Regular/index.vue
+++ b/src/components/Regular/index.vue
@@ -1,210 +1,246 @@
 <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"
-          ><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
-        >
-        <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
-              type="text"
-              placeholder="璇疯緭鍏�"
-              v-model="item.optiondesc"
-              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)"
+      <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" v-if="intent">
-          <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="intent ? 8 : 22">
-          <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]"
+              >
+              </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() {
@@ -217,6 +253,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,
@@ -226,6 +266,14 @@
       noregular: [],
       nodynamiccruxs: ["鍒�", "涓�"],
       dynamiccruxs: ["濂�"],
+      rules: {
+        targetvalue: [
+          { required: true, message: "璇疯緭鍏ラ�夐」鍚嶇О", trigger: "blur" },
+        ],
+        isabnormal: [
+          { required: true, message: "璇疯緭鍏ラ�夐」鍚嶇О", trigger: "blur" },
+        ],
+      },
     };
   },
   props: {
@@ -238,9 +286,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,
     },
   },
 
@@ -288,9 +356,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(
@@ -364,6 +432,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