From df59cae6f3c73605a3f3b4055fdca5b4dabde2c2 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 05 九月 2024 18:32:17 +0800
Subject: [PATCH] 测试完成

---
 src/views/patient/propaganda/QuestionnaireTask.vue |  286 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 190 insertions(+), 96 deletions(-)

diff --git a/src/views/patient/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue
index 1573ba4..e7b0051 100644
--- a/src/views/patient/propaganda/QuestionnaireTask.vue
+++ b/src/views/patient/propaganda/QuestionnaireTask.vue
@@ -30,33 +30,68 @@
               <div>鍩虹淇℃伅</div>
             </div>
             <div class="jic-value">
-              <el-form ref="form" :model="form" label-width="105px">
+              <el-form
+                ref="form"
+                :model="form"
+                :rules="rules"
+                label-width="125px"
+              >
                 <el-row :gutter="20">
                   <el-col :span="12"
-                    ><el-form-item label="浠诲姟鍚嶇О">
+                    ><el-form-item label="浠诲姟鍚嶇О" prop="taskName">
                       <el-input
                         style="width: 220px"
                         v-model="form.taskName"
                         placeholder="璇疯緭鍏ヤ换鍔″悕绉�"
                       /> </el-form-item
                   ></el-col>
+                  <el-col :span="12"
+                    ><el-form-item label="浠诲姟绫诲瀷">
+                      <el-select
+                        v-model="serviceType"
+                        placeholder="璇烽�夋嫨鏂板绫诲瀷"
+                      >
+                        <el-option
+                          v-for="item in tasktypes"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                        >
+                        </el-option>
+                      </el-select> </el-form-item
+                  ></el-col>
                 </el-row>
 
-                <el-form-item label="浠诲姟鎻忚堪">
+                <el-form-item label="浠诲姟鎻忚堪" prop="taskDesc">
                   <el-input
                     type="textarea"
                     v-model="form.taskDesc"
                     placeholder="璇疯緭鍏ヤ换鍔℃弿杩�"
                   />
                 </el-form-item>
-                <el-form-item label="鍙戦�佽缃細">
+                <el-form-item label="鏈嶅姟褰㈠紡" prop="taskDesc">
+                  <el-checkbox-group v-model="checkList">
+                    <el-checkbox
+                      v-for="(item, index) in checkboxlist"
+                      :key="index"
+                      :label="item.value"
+                    >
+                      {{ item.label }}</el-checkbox
+                    >
+                  </el-checkbox-group>
+                </el-form-item>
+                <el-form-item label="鎵ц璁剧疆" prop="sendType">
                   <el-radio-group v-model="form.sendType">
-                    <el-radio :label="1">鏃堕棿娈靛彂閫�</el-radio>
-                    <el-radio :label="3">鏃堕棿鐐瑰彂閫�</el-radio>
-                    <el-radio :label="2">鍗冲埢鍙戦��</el-radio>
+                    <el-radio :label="1">鏃堕棿娈垫墽琛�</el-radio>
+                    <el-radio :label="3">鏃堕棿鐐规墽琛�</el-radio>
+                    <el-radio :label="2">鍗冲埢鎵ц</el-radio>
                   </el-radio-group>
                 </el-form-item>
-                <el-form-item label="鍙戦�佹棩鏈燂細" v-if="form.sendType == 1">
+                <el-form-item
+                  label="鎵ц鏃ユ湡"
+                  v-if="form.sendType == 1"
+                  prop="daytime"
+                >
                   <el-date-picker
                     v-model="daytime"
                     @change="changeTimeday"
@@ -69,7 +104,11 @@
                   </el-date-picker>
                 </el-form-item>
 
-                <el-form-item label="鍙戦�佹椂闂寸偣锛�" v-if="form.sendType == 3">
+                <el-form-item
+                  label="鎵ц鏃堕棿鐐�"
+                  v-if="form.sendType == 3"
+                  prop="daytime"
+                >
                   <div style="display: flex">
                     <div style="margin-right: 10px">
                       <el-date-picker
@@ -84,12 +123,14 @@
                   </div>
                 </el-form-item>
 
-                <el-form-item label="鍙戦�佹椂闂存锛�" v-if="form.sendType == 1">
+                <el-form-item
+                  label="鎵ц鏃堕棿娈�"
+                  v-if="form.sendType == 1"
+                  prop="daytime"
+                >
                   <div style="display: flex">
                     <div style="margin-right: 10px">
-                      <span style="font-size: 18px; margin-right: 10px"
-                        >鏃堕棿娈典竴</span
-                      >
+                      <span style="font-size: 18px; margin-right: 10px">鈶�</span>
                       <el-time-picker
                         is-range
                         arrow-control
@@ -104,9 +145,7 @@
                       </el-time-picker>
                     </div>
                     <div style="margin-right: 10px">
-                      <span style="font-size: 18px; margin-right: 10px"
-                        >鏃堕棿娈典簩</span
-                      >
+                      <span style="font-size: 18px; margin-right: 10px">鈶�</span>
                       <el-time-picker
                         is-range
                         arrow-control
@@ -121,9 +160,7 @@
                       </el-time-picker>
                     </div>
                     <div style="margin-right: 10px">
-                      <span style="font-size: 18px; margin-right: 10px"
-                        >鏃堕棿娈典笁</span
-                      >
+                      <span style="font-size: 18px; margin-right: 10px">鈶�</span>
                       <el-time-picker
                         is-range
                         arrow-control
@@ -139,28 +176,21 @@
                     </div>
                   </div>
                 </el-form-item>
-                <el-form-item label="鏈嶅姟褰㈠紡">
-                  <el-checkbox-group v-model="checkList">
-                    <el-checkbox
-                      v-for="(item, index) in checkboxlist"
-                      :key="index"
-                      :label="item.value"
-                    >
-                      {{ item.label }}</el-checkbox
-                    >
-                  </el-checkbox-group>
-                </el-form-item>
-                <el-row :gutter="20">
-                  <el-col :span="10"
-                    ><el-form-item label="妯℃澘鍚嶇О">
-                      <el-input
-                        style="width: 300px"
-                        :disabled="true"
-                        v-model="form.templatename"
-                        placeholder="璇峰湪涓嬪垪閫夋嫨"
-                      /> </el-form-item
-                  ></el-col>
-                  <el-col :span="4">
+              </el-form>
+            </div>
+          </div>
+          <div class="examine-jic">
+            <div class="headline">
+              <div>浠诲姟浣跨敤妯℃澘</div>
+              <div style="margin-left: 20px">
+                <el-form :model="form">
+                  <el-form-item label="">
+                    <el-input
+                      style="width: 300px"
+                      :disabled="true"
+                      v-model="form.templatename"
+                      placeholder="璇风偣鍑诲彸渚ч�夋嫨"
+                    />
                     <el-button
                       type="primary"
                       icon="el-icon-edit"
@@ -169,23 +199,21 @@
                     ></el-button>
 
                     <el-button
-                    v-if="this.form.libtemplateid"
+                      v-if="this.form.libtemplateid"
                       type="success"
                       icon="el-icon-search"
                       @click="previewfnmb"
                       circle
                     ></el-button>
-                  </el-col>
-                </el-row>
-              </el-form>
+                  </el-form-item>
+                </el-form>
+              </div>
             </div>
-          </div>
-          <div class="examine-jic">
-            <div class="headline">
-              <div>鍙橀噺鍖归厤閲忓弬</div>
-            </div>
+
             <div class="examine-jic">
               <div class="jic-value">
+                <div style="margin-bottom: 10px">妯℃澘涓娇鐢ㄧ殑鍙橀噺锛�</div>
+
                 <el-row :gutter="20">
                   <el-table :data="variableList" style="width: 100%">
                     <el-table-column
@@ -335,7 +363,7 @@
               v-show="showSearch"
               label-width="98px"
             >
-              <el-form-item label="鎮h�呭悕绉帮細">
+              <el-form-item label="鎮h�咃細">
                 <el-input
                   v-model="patientqueryParams.name"
                   @keyup.enter.native="handleQuery"
@@ -592,13 +620,13 @@
       questionList: [],
       // 鎮h�呰〃鍗�
       tableLabelhz: [
-        // { label: "搴忓彿", width: "", prop: "patid" },
-        { label: "鎮h�呭悕绉�", width: "", prop: "name" },
+        { label: "鎮h��", width: "", prop: "name" },
+        { label: "韬唤璇�", width: "200", prop: "idcardno" },
         { label: "鎬у埆", width: "", prop: "sex" },
         { label: "骞撮緞", width: "", prop: "age" },
-        { label: "灏辫瘖绉戝", width: "", prop: "deptName" },
-        { label: "鍏ラ櫌鏃ユ湡", width: "", prop: "inhosptime" },
-        { label: "鍒涘缓浜猴紙缂猴級", width: "", prop: "update_by" },
+        { label: "鍖荤敓", width: "", prop: "drname" },
+        { label: "绉戝", width: "", prop: "deptName" },
+        { label: "灏辫瘖/鍑洪櫌鏃ユ湡", width: "280", prop: "inhosptime" },
       ],
 
       tableLabelwj: [
@@ -728,8 +756,62 @@
           label: "浣撴鐥呬汉",
         },
       ],
+      tasktypes: [
+        {
+          value: 1,
+          label: "鐩戞祴璇勪及",
+        },
+        {
+          value: 2,
+          label: "鍑洪櫌闅忚",
+        },
+        {
+          value: 3,
+          label: "闂ㄨ瘖闅忚",
+        },
+        {
+          value: 4,
+          label: "瀹f暀鍏虫��",
+        },
+        {
+          value: 5,
+          label: "澶嶈瘖绠$悊",
+        },
+        {
+          value: 6,
+          label: "婊℃剰搴﹁皟鏌�",
+        },
+        {
+          value: 7,
+          label: "鎮h�呮姤鍛�",
+        },
+
+        {
+          value: 8,
+          label: "鍏朵粬閫氱煡",
+        },
+      ],
+      rules: {
+        taskName: [
+          { required: true, message: "浠诲姟鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+          {
+            min: 2,
+            max: 20,
+            message: "浠诲姟鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿",
+            trigger: "blur",
+          },
+        ],
+
+        taskDesc: [
+          { required: true, message: "浠诲姟鎻忚堪涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        sendType: [
+          { required: true, message: "鍙戦�佽缃笉鑳戒负绌�", trigger: "blur" },
+        ],
+        daytime: [{ required: true, message: "姘戞棌涓嶈兘涓虹┖", trigger: "blur" }],
+      },
       quote: false,
-      serviceType:null,
+      serviceType: null,
     };
   },
   components: { SFtable },
@@ -899,38 +981,49 @@
     },
     // 淇濆瓨
     submitForm(formName) {
-      this.form.preachform = this.checkList.join(",");
-
-      if (!this.form.patTaskRelevances[0]) {
-        this.$modal.msgError("璇烽�夋嫨鐥呬汉");
-        return;
-      }
-      const filteredArray = this.variableList.filter(
-        (item) =>
-          item.name !== "濮撳悕" && item.name !== "鐢佃瘽" && item.name !== "鍦板潃"
-      );
-      console.log(filteredArray, "瀛樺墠鍙橀噺");
-      this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
-      if (this.form.taskid) {
-        this.form.isoperation = 2;
-      } else {
-        this.form.isoperation = 1;
-      }
-      if (!this.form.type) {
-        this.form.type = this.$route.query.type;
-      }
-      this.form.serviceType=this.serviceType;
-      Editsingletask(this.form).then((res) => {
-        if (res.code == 200) {
-          if (this.form.taskid) {
-            this.$modal.msgSuccess("鏂板鎴愬姛");
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.checkList[0]) {
+            this.form.preachform = this.checkList.join(",");
           } else {
-            this.$modal.msgSuccess("淇敼鎴愬姛");
+            this.$modal.msgError("璇烽�夋嫨鏈嶅姟绫诲瀷");
+            return;
           }
-          this.$router.push({
-            path: "/followvisit/tasklist",
-            query: { tasktopic: this.form.serviceType },
+          if (!this.form.patTaskRelevances[0]) {
+            this.$modal.msgError("璇烽�夋嫨鐥呬汉");
+            return;
+          }
+          const filteredArray = this.variableList.filter(
+            (item) =>
+              item.name !== "濮撳悕" &&
+              item.name !== "鐢佃瘽" &&
+              item.name !== "鍦板潃"
+          );
+          this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
+          if (this.form.taskid) {
+            this.form.isoperation = 2;
+          } else {
+            this.form.isoperation = 1;
+          }
+          if (!this.form.type) {
+            this.form.type = this.$route.query.type;
+          }
+          this.form.serviceType = this.serviceType;
+          Editsingletask(this.form).then((res) => {
+            if (res.code == 200) {
+              if (this.form.taskid) {
+                this.$modal.msgSuccess("鏂板鎴愬姛");
+              } else {
+                this.$modal.msgSuccess("淇敼鎴愬姛");
+              }
+              this.$router.push({
+                path: "/followvisit/tasklist",
+                query: { tasktopic: this.form.serviceType },
+              });
+            }
           });
+        }else{
+          this.$modal.msgError("琛ㄥ崟鍐呭鏈畬鍠勶紝璇锋鏌�");
         }
       });
     },
@@ -1001,17 +1094,17 @@
       });
       if (this.patientqueryParams.allhosp == 1) {
         this.tableLabelhz = [
-          { label: "鎮h�呭悕绉�", width: "", prop: "name" },
+          { label: "鎮h��", width: "", prop: "name" },
+          { label: "韬唤璇�", width: "200", prop: "idcardno" },
           { label: "鎬у埆", width: "", prop: "sex" },
           { label: "骞撮緞", width: "", prop: "age" },
-          { label: "涓讳换鍖诲笀", width: "", prop: "drname" },
-          { label: "灏辫瘖绉戝", width: "", prop: "deptName" },
-          { label: "鍏ラ櫌鏃ユ湡", width: "", prop: "inhosptime" },
-          { label: "鍒涘缓浜�", width: "", prop: "createBy" },
+          { label: "鍖荤敓", width: "", prop: "drname" },
+          { label: "绉戝", width: "", prop: "deptName" },
+          { label: "灏辫瘖/鍑洪櫌鏃ユ湡", width: "280", prop: "inhosptime" },
         ];
       } else if (this.patientqueryParams.allhosp == 2) {
         this.tableLabelhz = [
-          { label: "鎮h�呭悕绉�", width: "", prop: "name" },
+          { label: "鎮h��", width: "", prop: "name" },
           { label: "鎬у埆", width: "", prop: "sex" },
           { label: "骞撮緞", width: "", prop: "age" },
           { label: "璇婃柇", width: "", prop: "diagname" },
@@ -1127,20 +1220,20 @@
     },
     // 鑾峰彇璇︽儏
     Getdetails() {
-      this.form= {
+      this.form = {
         patTaskRelevances: [],
         sendType: 1,
         templatename: "",
         templateid: null,
         libtemplateid: null,
       };
-      this.questionList=[];
+      this.questionList = [];
       if (this.id) {
         Questionnairetaskget({ taskid: this.id }).then((res) => {
           let filteredArray = "";
           if (res.code == 200) {
             this.form = res.data;
-            this.form.serviceType=this.serviceType;
+            this.form.serviceType = this.serviceType;
             this.form.patTaskRelevances = this.form.patTaskRelevances
               ? this.form.patTaskRelevances
               : [];
@@ -1357,11 +1450,12 @@
   margin: 20px;
   .headline {
     font-size: 24px;
+    height: 40px;
     border-left: 5px solid #41a1be;
     padding-left: 5px;
     margin-bottom: 10px;
     display: flex;
-    justify-content: space-between;
+    // justify-content: space-between;
     .Add-details {
       font-size: 18px;
       color: #02a7f0;

--
Gitblit v1.9.3