From 74a7a2bbef241a023110ff24c8e7c84025e267f5 Mon Sep 17 00:00:00 2001
From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com>
Date: 星期四, 25 四月 2024 10:09:38 +0800
Subject: [PATCH] qxtj

---
 src/views/hosp/surveyTemplate/index.vue |  367 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 291 insertions(+), 76 deletions(-)

diff --git a/src/views/hosp/surveyTemplate/index.vue b/src/views/hosp/surveyTemplate/index.vue
index e0712aa..14c0dc5 100644
--- a/src/views/hosp/surveyTemplate/index.vue
+++ b/src/views/hosp/surveyTemplate/index.vue
@@ -1,68 +1,166 @@
 <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="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 +168,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,70 +184,118 @@
         <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>
+        <div v-if="DaTianYa == false">
+          <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>
+        </div>
       </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
+      :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,
 } 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)
+      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 (value != undefined && value != "") {
         return callback();
-      }else if (!patter.test(value)) {
-        return callback('');
+      } else if (!patter.test(value)) {
+        return callback("");
       }
     };
     return {
       // 閬僵灞�
       loading: true,
+      previewKey: +new Date(),
+      previewDialogVisible:false,
       // 閫変腑鏁扮粍
       ids: [],
       // 瀛愯〃閫変腑鏁版嵁
@@ -167,6 +317,7 @@
       title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
+      DaTianYa: false,
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -182,7 +333,7 @@
         deleted: [
           {
             required: true,
-            validator: checkPhoneNum, 
+            validator: checkPhoneNum,
             trigger: "blur",
           },
         ],
@@ -246,15 +397,21 @@
       this.multiple = !selection.length;
     },
     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() {
@@ -282,20 +439,50 @@
     },
     // 鍒犻櫎琛�
     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){
+        console.log(that.form.tjSurveyTempQuesList);
+        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) {
+      
+      } 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) {
@@ -303,9 +490,19 @@
       const mid = row.mid || this.ids;
       getSurveyTemplate(mid).then((response) => {
         this.form = response.data;
-        this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList;
-        this.open = true;
-        this.title = "淇敼闂嵎妯℃澘";
+        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");
+          }
       });
     },
     /** 鎻愪氦鎸夐挳 */
@@ -320,12 +517,19 @@
             });
           } else {
             addSurveyTemplate(this.form).then((response) => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
+              // this.$modal.msgSuccess("鏂板鎴愬姛");
+              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 },
       });
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
@@ -334,13 +538,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() {
@@ -364,4 +578,5 @@
 
 .pag1 {
   width: 30%;
-}</style>
+}
+</style>

--
Gitblit v1.8.0