From d93ed5c5aadcf3d49f824339c26ebfac911be06d Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期五, 07 十一月 2025 14:39:38 +0800
Subject: [PATCH] 测试完成

---
 src/views/knowledge/questionnaire/compilequer/index.vue |  443 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 424 insertions(+), 19 deletions(-)

diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 6717af7..8ee26c1 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -671,19 +671,75 @@
                         </el-form-item>
                       </el-col>
                     </el-row>
+                    <el-row>
+                      <el-form-item label="鍏宠仈鏈嶅姟">
+                        <div
+                          v-if="item.sendTaskname"
+                          class="service-tag-container"
+                        >
+                          <el-tag
+                            type="success"
+                            closable
+                            @close="removeService(item)"
+                            class="service-tag"
+                          >
+                            <i class="el-icon-connection service-icon"></i>
+                            {{ item.sendTaskname }}
+                          </el-tag>
+                        </div>
+                        <div v-else class="service-add-btn">
+                          <el-button
+                            type="success"
+                            size="small"
+                            icon="el-icon-plus"
+                            @click="openServiceDialog(item)"
+                            class="add-service-btn"
+                          >
+                            閫夋嫨浠诲姟
+                          </el-button>
+                        </div>
+                      </el-form-item>
+                    </el-row>
                     <el-row :gutter="10">
-                      <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-form-item label="鏄惁閫変腑鏀堕泦闄勫姞淇℃伅">
-                        <el-radio-group v-model="item.appendflag">
-                          <el-radio label="1">鏄�</el-radio>
-                          <el-radio label="0">鍚�</el-radio>
-                        </el-radio-group>
-                      </el-form-item>
+                      <el-col :span="11">
+                        <!-- 淇敼锛氬紓甯告彁閱掗儴鍒� -->
+                        <el-form-item label="寮傚父鎻愰啋">
+                          <el-select
+                            v-model="item.isabnormal"
+                            placeholder="璇烽�夋嫨鐘舵��"
+                          >
+                            <el-option
+                              :value="0"
+                              label="姝e父"
+                              :style="{ color: '#67C23A' }"
+                            >
+                              <span style="color: #67c23a">鈼� 姝e父</span>
+                            </el-option>
+                            <el-option
+                              :value="1"
+                              label="寮傚父"
+                              :style="{ color: '#E6A23C' }"
+                            >
+                              <span style="color: #e6a23c">鈼� 寮傚父</span>
+                            </el-option>
+                            <el-option
+                              :value="2"
+                              label="璀﹀憡"
+                              :style="{ color: '#F56C6C' }"
+                            >
+                              <span style="color: #f56c6c">鈼� 璀﹀憡</span>
+                            </el-option>
+                          </el-select>
+                        </el-form-item>
+                      </el-col>
+                      <el-col :span="11">
+                        <el-form-item label="鏄惁閫変腑鏀堕泦闄勫姞淇℃伅">
+                          <el-radio-group v-model="item.appendflag">
+                            <el-radio label="1">鏄�</el-radio>
+                            <el-radio label="0">鍚�</el-radio>
+                          </el-radio-group>
+                        </el-form-item>
+                      </el-col>
                     </el-row>
                     <el-row :gutter="10" v-if="topicobj.branchFlag == 1">
                       <el-col :span="20"
@@ -1254,6 +1310,144 @@
         </el-tabs>
       </div>
     </el-drawer>
+    <!-- 閫夋嫨浠诲姟寮圭獥 -->
+    <el-dialog
+      title="閫夋嫨浠诲姟"
+      :visible.sync="serviceDialogVisible"
+      width="50%"
+    >
+      <div>
+        <el-form
+          :model="topqueryParams"
+          ref="queryForm"
+          size="small"
+          :inline="true"
+          label-width="98px"
+        >
+          <el-form-item label="浠诲姟鍚嶇О">
+            <el-input
+              v-model="topqueryParams.taskName"
+              @keyup.enter.native="handleQuery"
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="浠诲姟绫诲瀷" prop="status">
+            <el-select
+              v-model="topqueryParams.serviceType"
+              placeholder="璇烽�夋嫨鏈嶅姟绫诲瀷"
+            >
+              <el-option
+                v-for="item in taskoptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-form>
+        <el-table
+          :data="filteredServiceList"
+          v-loading="taskloading"
+          @selection-change="handleServiceSelectionChange"
+        >
+          <el-table-column type="selection" width="55"></el-table-column>
+          <el-table-column
+            label="浠诲姟鍚嶇О"
+            fixed
+            align="center"
+            key="taskName"
+            prop="taskName"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="浠诲姟鎻忚堪"
+            align="center"
+            key="taskDesc"
+            prop="taskDesc"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鏈嶅姟椤圭洰"
+            align="center"
+            key="templatename"
+            prop="templatename"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鎬讳换鍔�/宸查殢璁�"
+            align="center"
+            key="nickName"
+            width="120"
+            prop="nickName"
+          >
+            <template slot-scope="scope">
+              <span
+                >{{
+                  scope.row.wfs || scope.row.wfs == 0
+                    ? scope.row.wfs + scope.row.yfs
+                    : ""
+                }}/{{ scope.row.yfs }}</span
+              >
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鏄惁闀挎湡浠诲姟"
+            align="center"
+            key="longTask"
+            prop="longTask"
+          >
+            <template slot-scope="scope">
+              <span>{{ scope.row.longTask ? "闀挎湡浠诲姟" : "闈為暱鏈�" }}</span>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            label="鐘舵��"
+            align="center"
+            key="sendState"
+            prop="sendState"
+          >
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.task_status"
+                :value="scope.row.sendState"
+              />
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            label="鍒涘缓浜�"
+            align="center"
+            key="createBy"
+            prop="createBy"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鍒涘缓鏃堕棿"
+            sortable
+            align="center"
+            prop="createTime"
+          >
+            <template slot-scope="scope">
+              <span>{{ formatTime(scope.row.createTime) }}</span>
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          v-show="tasktotal > 0"
+          :total="tasktotal"
+          :page.sync="topqueryParams.pageNum"
+          :limit.sync="topqueryParams.pageSize"
+          @pagination="gettaskList"
+        />
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="serviceDialogVisible = false">鍙栨秷</el-button>
+        <el-button type="primary" @click="confirmServiceSelection"
+          >纭畾</el-button
+        >
+      </span>
+    </el-dialog>
     <!-- 娣诲姞閫傜敤鐤剧梾绐楀彛 -->
     <Optional-Form
       ref="child"
@@ -1275,17 +1469,12 @@
   depthospgetsonlist,
   getQtemplateobj,
   compileQtemplate,
-  Qtemplateinfo,
-  compileissue,
-  delQtemplateinfo,
-  Followupinfo,
-  issueinfo,
   getissuelist,
   depthospgetsondel,
   deltargetillness,
   addtargetillness,
   getillnesslist,
-  illnesslistget,
+  getTasklist,
   getillness,
 } from "@/api/AiCentre/index";
 import OptionalForm from "@/components/OptionalForm"; //姝e垯缁勪欢
@@ -1294,7 +1483,7 @@
 
 export default {
   name: "Questionnaireinfo",
-
+  dicts: ["sys_normal_disable", "sys_user_sex", "task_status"],
   components: { OptionalForm },
 
   data() {
@@ -1317,8 +1506,39 @@
       dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛
       inputValue: "",
       topicobj: {},
+      topqueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        type: 3,
+      },
+      tasktotal: 0,
+      taskloading: false,
+      taskoptions: [
+        {
+          value: 4,
+          label: "瀹f暀鍏虫��",
+          raw: {
+            cssClass: "",
+            listClass: "",
+          },
+        },
+        {
+          value: 5,
+          label: "澶嶈瘖閫氱煡",
+          raw: {
+            cssClass: "",
+            listClass: "",
+          },
+        },
+      ],
       // 鎬绘潯鏁�
       total: 1,
+      serviceDialogVisible: false, // 閫夋嫨浠诲姟寮圭獥鏄剧ず鎺у埗
+      serviceSearch: "", // 浠诲姟鎼滅储鍏抽敭璇�
+      serviceList: [], // 浠诲姟鍒楄〃
+      filteredServiceList: [],
+      selectedService: null, // 閫変腑鐨勪换鍔�
+      currentOptionItem: null, // 褰撳墠姝e湪璁剧疆鐨勪换鍔¢�夐」椤�
       ruleForm: {
         svyTemplateLibScripts: [],
         tempDetpRelevances: [],
@@ -1767,6 +1987,62 @@
         });
       }
     },
+    // ---------------閫夐」浠诲姟缁戝畾
+    openServiceDialog(item) {
+      this.gettaskList();
+      this.currentOptionItem = item;
+    },
+    gettaskList() {
+      getTasklist(this.topqueryParams).then((response) => {
+        this.filteredServiceList = response.rows;
+        this.tasktotal = response.total;
+        this.serviceDialogVisible = true;
+        this.$forceUpdate();
+        this.taskloading = false;
+      });
+    },
+    handleQuery() {
+      this.topqueryParams.pageNum = 1;
+      this.gettaskList();
+    },
+    // 鏂板鏂规硶锛氬姞杞戒换鍔″垪琛�
+    loadServiceList() {
+      // 杩欓噷璋冪敤API鑾峰彇浠诲姟鍒楄〃
+      // 绀轰緥鏁版嵁锛屽疄闄呬娇鐢ㄦ椂闇�瑕佽皟鐢ㄧ浉搴旂殑API
+      this.serviceList = [
+        { id: 1, taskName: "闅忚浠诲姟1", taskType: "甯歌闅忚" },
+        { id: 2, taskName: "鍋ュ悍璇勪及浠诲姟", taskType: "鍋ュ悍璇勪及" },
+        { id: 3, taskName: "鐢ㄨ嵂鎻愰啋浠诲姟", taskType: "鐢ㄨ嵂绠$悊" },
+      ];
+    },
+
+    // 鏂板鏂规硶锛氬鐞嗕换鍔¢�夋嫨鍙樺寲
+    handleServiceSelectionChange(selection) {
+      this.selectedService = selection.length > 0 ? selection[0] : null;
+    },
+
+    // 鏂板鏂规硶锛氱‘璁ら�夋嫨浠诲姟
+    confirmServiceSelection() {
+      console.log(this.selectedService);
+      console.log(this.currentOptionItem);
+
+      if (this.selectedService && this.currentOptionItem) {
+        this.currentOptionItem.sendTaskname = this.selectedService.taskName;
+        this.currentOptionItem.sendTaskid = this.selectedService.taskid;
+        this.serviceDialogVisible = false;
+        this.serviceSearch = "";
+        this.selectedService = null;
+      } else {
+        this.$message.warning("璇烽�夋嫨涓�涓换鍔�");
+      }
+    },
+
+    // 鏂板鏂规硶锛氱Щ闄ゅ叧鑱旀湇鍔�
+    removeService(item) {
+      item.sendTaskname = "";
+      item.sendTaskid = "";
+    },
+    // ------------------------
     // 涓嬩竴姝�
     nextstep() {
       if (this.Editprogress <= 2) {
@@ -2472,6 +2748,135 @@
   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
     0 0 6px 0 rgba(0, 0, 0, 0.04);
 }
+.service-tag-container {
+  display: inline-block;
+
+  .service-tag {
+    margin-right: 10px;
+    max-width: 220px;
+    height: 32px;
+    line-height: 30px;
+    padding: 0 12px;
+    border-radius: 16px;
+    font-size: 14px;
+    font-weight: 500;
+    border: 1px solid #e1f3d8;
+    background: linear-gradient(135deg, #f0f9eb, #e1f3d8);
+    box-shadow: 0 2px 4px rgba(103, 194, 58, 0.1);
+    transition: all 0.3s ease;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    position: relative;
+
+    &:hover {
+      transform: translateY(-1px);
+      box-shadow: 0 4px 8px rgba(103, 194, 58, 0.15);
+      border-color: #b3e19d;
+    }
+
+    .service-icon {
+      margin-right: 4px;
+      font-size: 12px;
+    }
+
+    ::v-deep .el-icon-close {
+      margin-left: 6px;
+      font-size: 12px;
+      color: #67c23a;
+      background-color: #f0f9eb;
+      border-radius: 50%;
+      width: 16px;
+      height: 16px;
+      line-height: 16px;
+
+      &:hover {
+        background-color: #67c23a;
+        color: white;
+      }
+    }
+  }
+}
+
+.service-add-btn {
+  display: inline-block;
+
+  .add-service-btn {
+    height: 32px;
+    padding: 0 16px;
+    border-radius: 16px;
+    font-size: 14px;
+    font-weight: 500;
+    background: linear-gradient(135deg, #67c23a, #85ce61);
+    border: none;
+    box-shadow: 0 2px 4px rgba(103, 194, 58, 0.2);
+    transition: all 0.3s ease;
+
+    &:hover {
+      transform: translateY(-1px);
+      box-shadow: 0 4px 8px rgba(103, 194, 58, 0.3);
+      background: linear-gradient(135deg, #5daf34, #7ac252);
+    }
+
+    &:active {
+      transform: translateY(0);
+      box-shadow: 0 2px 4px rgba(103, 194, 58, 0.2);
+    }
+
+    i {
+      margin-right: 4px;
+      font-size: 12px;
+    }
+  }
+}
+
+// 鍝嶅簲寮忚璁�
+@media (max-width: 768px) {
+  .service-tag-container .service-tag {
+    max-width: 180px;
+    font-size: 13px;
+    padding: 0 10px;
+  }
+
+  .service-add-btn .add-service-btn {
+    padding: 0 12px;
+    font-size: 13px;
+  }
+}
+
+// 娣诲姞鍔ㄧ敾鏁堟灉
+@keyframes tagFadeIn {
+  from {
+    opacity: 0;
+    transform: scale(0.8) translateY(-5px);
+  }
+  to {
+    opacity: 1;
+    transform: scale(1) translateY(0);
+  }
+}
+
+.service-tag {
+  animation: tagFadeIn 0.3s ease-out;
+}
+
+// 涓烘暣涓�夐」鍖哄煙娣诲姞缁熶竴鏍峰紡
+.topicxq {
+  .service-tag-container,
+  .service-add-btn {
+    margin: 8px 0;
+  }
+}
+
+// 纭繚鍦ㄨ〃鍗曚腑鐨勬纭竷灞�
+.el-form-item {
+  .el-form-item__content {
+    .service-tag-container,
+    .service-add-btn {
+      vertical-align: middle;
+    }
+  }
+}
 .custom-width {
   width: 100px; /* 璁剧疆瀹藉害鏍峰紡 */
 }

--
Gitblit v1.9.3