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