From c7b33db117fd2893d7d1c93bf5d46e87d33e44d0 Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期一, 16 十二月 2024 16:08:51 +0800
Subject: [PATCH] 初审结果查询

---
 src/views/hosp/surveyTemplate/index.vue |  466 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 396 insertions(+), 70 deletions(-)

diff --git a/src/views/hosp/surveyTemplate/index.vue b/src/views/hosp/surveyTemplate/index.vue
index 04ddaaf..375582e 100644
--- a/src/views/hosp/surveyTemplate/index.vue
+++ b/src/views/hosp/surveyTemplate/index.vue
@@ -1,68 +1,177 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
       <el-form-item label="妯℃澘鍚嶇О" prop="tempName">
-        <el-input v-model="queryParams.tempName" placeholder="璇疯緭鍏ユā鏉垮悕绉�" clearable @keyup.enter.native="handleQuery" />
+        <el-input
+          v-model="queryParams.tempName"
+          placeholder="璇疯緭鍏ユā鏉垮悕绉�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >鎼滅储</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >閲嶇疆</el-button
+        >
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
-          v-hasPermi="['hosp:surveyTemplate:add']">鏂板
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['hosp:surveyTemplate:add']"
+          >鏂板
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
-          v-hasPermi="['hosp:surveyTemplate:edit']">淇敼
+        <el-button
+          type="primary"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate1"
+          v-hasPermi="['hosp:surveyTemplate:edit']"
+          >鏍囬淇敼
+        </el-button>
+      </el-col>
+      <el-col :span="1.5" v-if="details">
+        <el-button
+          type="primary"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['hosp:surveyTemplate:edit']"
+          >璇︽儏淇敼
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
-          v-hasPermi="['hosp:surveyTemplate:remove']">鍒犻櫎
+        <el-button
+          type="primary"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['hosp:surveyTemplate:remove']"
+          >鍒犻櫎
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"
-          v-hasPermi="['hosp:surveyTemplate:export']">瀵煎嚭
+        <el-button
+          type="primary"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['hosp:surveyTemplate:export']"
+          >瀵煎嚭
         </el-button>
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
-    <el-table border v-loading="loading" :data="surveyTemplateList" @selection-change="handleSelectionChange">
+    <el-table
+      border
+      v-loading="loading"
+      :data="surveyTemplateList"
+      @selection-change="handleSelectionChange"
+    >
       <el-table-column type="selection" width="40px" align="center" />
       <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" />
       <el-table-column label="妯℃澘鍚嶇О" align="center" prop="tempName" />
       <el-table-column label="妯℃澘绫诲瀷" align="center" prop="tempType">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.question_template_type" :value="scope.row.tempType" />
+          <dict-tag
+            :options="dict.type.question_template_type"
+            :value="scope.row.tempType"
+          />
         </template>
       </el-table-column>
       <el-table-column label="鍒涘缓浜�" align="center" prop="createBy" />
-      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180">
+      <el-table-column
+        label="鍒涘缓鏃堕棿"
+        align="center"
+        prop="createTime"
+        width="180"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
       </el-table-column>
       <el-table-column label="淇敼浜�" align="center" prop="updateBy" />
-      <el-table-column label="淇敼鏃堕棿" align="center" prop="updateTime" width="180">
+      <el-table-column
+        label="淇敼鏃堕棿"
+        align="center"
+        prop="updateTime"
+        width="180"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.updateTime) }}</span>
         </template>
       </el-table-column>
+      <el-table-column label="鍚敤鏍囧織" align="center" prop="qybz">
+        <template slot-scope="scope" v-if="scope.row.userId !== 1">
+          <el-switch
+            v-model="scope.row.qybz"
+            active-value="0"
+            inactive-value="1"
+            @change="handleStatusChange(scope.row)"
+          ></el-switch>
+        </template>
+      </el-table-column>
       <el-table-column label="澶囨敞" align="center" prop="remark" />
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" width="80px">
+      <el-table-column
+        label="鎿嶄綔"
+        align="center"
+        class-name="small-padding fixed-width"
+        width="80px"
+      >
         <template slot-scope="scope">
-          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
-            v-hasPermi="['hosp:surveyTemplate:edit']" title="淇敼">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="xiangqing(scope.row)"
+            v-hasPermi="['web:tags:edit']"
+            title="棰勮"
+          ></el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['hosp:surveyTemplate:edit']"
+            title="淇敼"
+          >
           </el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
-            v-hasPermi="['hosp:surveyTemplate:remove']" title="鍒犻櫎">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['hosp:surveyTemplate:remove']"
+            title="鍒犻櫎"
+          >
           </el-button>
         </template>
       </el-table-column>
@@ -70,11 +179,15 @@
 
     <div class="pag">
       <div class="pag1">
-        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-          @pagination="getList" />
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
       </div>
     </div>
-
 
     <!-- 娣诲姞鎴栦慨鏀归棶鍗锋ā鏉垮璇濇 -->
     <el-dialog :title="title" :visible.sync="open" width="450px" append-to-body>
@@ -82,59 +195,162 @@
         <el-form-item label="妯℃澘鍚嶇О" prop="tempName">
           <el-input v-model="form.tempName" placeholder="璇疯緭鍏ユā鏉垮悕绉�" />
         </el-form-item>
+        <el-form-item label="妯℃澘绫诲瀷" prop="tempType">
+          <el-select v-model="form.tempType" style="width: 100%">
+            <el-option
+              v-for="dict in dict.type.question_template_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+
         <el-form-item label="澶囨敞" prop="remark">
           <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" />
         </el-form-item>
-        <el-divider content-position="center">闂嵎妯℃澘闂淇℃伅</el-divider>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button type="primary" icon="el-icon-plus" size="mini" @click="addmembers()">娣诲姞
-            </el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="danger" icon="el-icon-delete" size="mini" @click.native.prevent="Delete()">鍒犻櫎
-            </el-button>
-          </el-col>
-        </el-row>
-        <el-table style="width:450px" border :data="form.tjSurveyTempQuesList"
-          @selection-change="handleTjSurveyTempQuesSelectionChange">
-          <el-table-column type="selection" width="40" align="center" />
-          <el-table-column label="闂id" prop="qid" width="179">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.qid" placeholder="璇疯緭鍏ラ棶棰榠d" />
-            </template>
-          </el-table-column>
-          <el-table-column label="闂鍚�" prop="qname" width="190">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.qname" placeholder="璇疯緭鍏ラ棶棰樺悕" />
-            </template>
-          </el-table-column>
-        </el-table>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+    <!-- 闂嵎璇︽儏鎶藉眽 -->
+    <el-drawer
+      title="闂嵎璇︽儏"
+      :visible.sync="drawer"
+      :with-header="true"
+      size="40%"
+    >
+      <el-form
+        v-for="(item, index) in intList"
+        :key="index"
+        style="margin-left: 15px"
+      >
+        <el-form-item>
+          <span
+            style="color: red; margin-left: 5px"
+            v-if="item.isRequired == 'Y'"
+            >*</span
+          >
+          {{ index + 1 > 9 ? index + 1 : "0" + (index + 1) }}.{{
+            item.question
+          }}
+          <span v-if="item.type == '0'">(鍗曢��)</span>
+          <span v-if="item.type == '1'">(澶氶��)</span><br />
+          <label
+            v-for="(item5, index) in item.tjSurveyOptionsList"
+            :key="index"
+          >
+            <!-- <img v-show="item.type == '1'" v-if="item5.qid ==item.qid"   class="select-radio" src="../../../assets/images/weixuanzhong.png" alt="">
+                <img v-show="item.type == '1'" v-else  class="select-radio1" src="../../../assets/images/xuanzhong.png" alt=""> -->
+            <input
+              v-show="item.type == '0'"
+              type="radio"
+              :name="item5.qid"
+              :value="item5.oid"
+            /><label class="inp" v-show="item.type == '0'">{{
+              item5.ooption
+            }}</label>
+            <input
+              v-show="item.type == '1'"
+              type="checkbox"
+              :name="item5.qid"
+              :value="item5.oid"
+            /><label class="inp" v-show="item.type == '1'">{{
+              item5.ooption
+            }}</label>
+            <el-rate
+              v-show="item.type == '2'"
+              v-model="myscore"
+              show-text
+            ></el-rate>
+            <el-input
+              v-show="item.type == '3'"
+              v-model="inpu"
+              style="width: 280px"
+            />
+            <!-- <el-date-picker
+              v-show="item.type == '4'"
+              v-model="value2"
+              align="right"
+              type="date"
+              placeholder="閫夋嫨鏃ユ湡"
+              :picker-options="pickerOptions"
+            >
+            </el-date-picker> -->
+            <!-- <el-input-number
+              v-show="item.type == '5'"
+              v-model="num"
+              :min="1"
+              :max="10000"
+            ></el-input-number>
+            <el-input-number
+              v-show="item.type == '6'"
+              v-model="numf"
+              :precision="2"
+              :step="0.0"
+              :max="10000"
+            ></el-input-number> -->
+          </label>
+        </el-form-item>
+      </el-form>
+      <!-- <el-button type="primary" size="mini" @click="tijiao">鎻愪氦</el-button> -->
+    </el-drawer>
+    <el-drawer
+      :visible.sync="previewDialogVisible"
+      :before-close="handleClose"
+      size="40%"
+    >
+      <pre-view :key="previewKey" :preview-qrcode="true" />
+    </el-drawer>
   </div>
 </template>
 
 <script>
+import PreView from "./editor/preview";
+import VueQr from "vue-qr";
 import {
   listSurveyTemplate,
   getSurveyTemplate,
   delSurveyTemplate,
   addSurveyTemplate,
   updateSurveyTemplate,
+  getneedDesign,
+  getcanDelete,
+  updateQybz,
+  getQuesByMid,
 } from "@/api/hosp/surveyTemplate";
 import { Message } from "element-ui";
 export default {
+  inject: ["reload"],
   name: "SurveyTemplate",
+  components: {
+    PreView,
+    VueQr,
+  },
   dicts: ["question_template_type"],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+      console.log(value);
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback("");
+      } else if (value != undefined && value != "") {
+        return callback();
+      } else if (!patter.test(value)) {
+        return callback("");
+      }
+    };
     return {
+      inpu: "",
+      num: 0,
+      myscore: null,
       // 閬僵灞�
       loading: true,
+      drawer: false,
+      previewKey: +new Date(),
+      previewDialogVisible: false,
       // 閫変腑鏁扮粍
       ids: [],
       // 瀛愯〃閫変腑鏁版嵁
@@ -154,8 +370,11 @@
       selectionList: [],
       // 寮瑰嚭灞傛爣棰�
       title: "",
+      intList: [],
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
+      DaTianYa: false,
+      details: false,
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -171,7 +390,7 @@
         deleted: [
           {
             required: true,
-            message: "",
+            validator: checkPhoneNum,
             trigger: "blur",
           },
         ],
@@ -230,20 +449,39 @@
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
+      console.log(selection);
       this.ids = selection.map((item) => item.mid);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
+      if (selection.length != 0) {
+        selection.forEach((item) => {
+          if (item.designId != null) {
+            this.details = true;
+          } else {
+            this.details = false;
+          }
+        });
+      } else {
+        this.details = false;
+      }
     },
     handleTjSurveyTempQuesSelectionChange(selection) {
-      this.selectionList =[]
-      this.selectionList = selection
-     
+      this.selectionList = [];
+      this.selectionList = selection;
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.reset();
-      this.open = true;
       this.title = "娣诲姞闂嵎妯℃澘";
+
+      getneedDesign().then((res) => {
+        if (res.msg == "false") {
+          this.DaTianYa = false;
+        } else {
+          this.DaTianYa = true;
+        }
+        this.open = true;
+      });
     },
     // 鏂板琛�
     addmembers() {
@@ -271,20 +509,62 @@
     },
     // 鍒犻櫎琛�
     Delete() {
-      let that = this
+      let that = this;
       if (!that.selectionList) {
-        that.$modal.msgSuccess('璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁')
+        that.$modal.msgSuccess("璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁");
       } else {
-        console.log( that.form.tjSurveyTempQuesList)
-        that.selectionList.forEach(item =>{
-          that.form.tjSurveyTempQuesList.forEach((item1,index) => {
-            if(item.qid == item1.qid){
+        that.selectionList.forEach((item) => {
+          that.form.tjSurveyTempQuesList.forEach((item1, index) => {
+            if (item.qid == item1.qid) {
               that.form.tjSurveyTempQuesList.splice(index, 1);
             }
-          })
-        })
-        
+          });
+        });
       }
+    },
+    xiangqing(row) {
+      const mid = row.mid;
+      getSurveyTemplate(mid).then((response) => {
+        if (response.data.designId == null) {
+          this.drawer = true;
+          getQuesByMid(mid)
+            .then((res) => {
+              res.data.sort(
+                (a, b) =>
+                  new Date(a.createTime).getTime() -
+                  new Date(b.createTime).getTime()
+              ); //杩欐槸鍗囧簭锛屽�掑簭鐨勮瘽缈昏繃鏉�
+              this.intList = res.data;
+            })
+            .catch((err) => {
+              // 閫氳繃catch鎹曡幏閿欒娑堟伅
+              return err;
+            });
+        } else {
+          this.$router.push({
+            query: { key: response.data.designId },
+          });
+          this.previewDialogVisible = true;
+        }
+      });
+    },
+    handleClose() {
+      this.reload();
+      this.previewDialogVisible = false;
+    },
+    handleStatusChange(row) {
+      let text = row.qybz === "0" ? "鍚敤" : "鍋滅敤";
+      this.$modal
+        .confirm('纭瑕�"' + text + '""' + row.tempName + '"闂嵎鍚楋紵')
+        .then(function () {
+          return updateQybz(row.mid, row.qybz);
+        })
+        .then(() => {
+          this.$modal.msgSuccess(text + "鎴愬姛");
+        })
+        .catch(function () {
+          row.qybz = row.qybz === "0" ? "1" : "0";
+        });
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
@@ -292,9 +572,34 @@
       const mid = row.mid || this.ids;
       getSurveyTemplate(mid).then((response) => {
         this.form = response.data;
-        this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList;
-        this.open = true;
+        if (response.data.tjSurveyTempQuesList.length >= 1) {
+          this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList;
+        }
+        if (this.form.designId == null) {
+          this.DaTianYa = false;
+          this.title = "淇敼闂嵎妯℃澘";
+          this.open = true;
+        } else {
+          this.DaTianYa = true;
+          this.form.formKey = this.form.designId;
+          this.form.type = 1;
+          this.toProjectHandle(this.form, "editor");
+        }
+      });
+    },
+
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate1(row) {
+      this.reset();
+      const mid = row.mid || this.ids;
+      getSurveyTemplate(mid).then((response) => {
+        this.form = response.data;
+        if (response.data.tjSurveyTempQuesList.length >= 1) {
+          this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList;
+        }
+        this.DaTianYa = false;
         this.title = "淇敼闂嵎妯℃澘";
+        this.open = true;
       });
     },
     /** 鎻愪氦鎸夐挳 */
@@ -309,12 +614,22 @@
             });
           } else {
             addSurveyTemplate(this.form).then((response) => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
+              if (this.DaTianYa == false) {
+                this.$modal.msgSuccess("鏂板鎴愬姛");
+              } else {
+                this.toProjectHandle(response.data, "editor");
+              }
               this.open = false;
               this.getList();
             });
           }
         }
+      });
+    },
+    toProjectHandle(form, type) {
+      this.$router.push({
+        path: "/editor/moban",
+        query: { key: form.formKey, active: type, type: form.type },
       });
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
@@ -323,13 +638,23 @@
       this.$modal
         .confirm('鏄惁纭鍒犻櫎闄㈠尯淇℃伅缂栧彿涓�"' + mids + '"鐨勬暟鎹」锛�')
         .then(function () {
-          return delSurveyTemplate(mids);
+          let id = row.mid;
+          return getcanDelete(id).then((res) => {
+            if (res.data == true) {
+              delSurveyTemplate(mids);
+            } else {
+              this.$modal.msgError("闂嵎姝e湪浣跨敤涓�");
+            }
+          });
+          // return delSurveyTemplate(mids);
         })
         .then(() => {
           this.getList();
           this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
         })
-        .catch(() => { });
+        .catch(() => {
+          this.$modal.msgError("闂嵎姝e湪浣跨敤涓�");
+        });
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
@@ -353,4 +678,5 @@
 
 .pag1 {
   width: 30%;
-}</style>
+}
+</style>

--
Gitblit v1.8.0