WXL
2024-07-31 3d50e2c6d8cd86ee10b4353ad6365c59f588dbc4
src/views/knowledge/questionnaire/index.vue
@@ -68,72 +68,48 @@
              v-show="showSearch"
              label-width="98px"
            >
              <el-form-item label="问卷名称" prop="userName">
              <el-form-item label="问卷名称" prop="svyname">
                <el-input
                  v-model="queryParams.userName"
                  v-model="queryParams.svyname"
                  placeholder="请输入"
                  clearable
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="适用科室" prop="region">
                <el-cascader
                  v-model="queryParams.administrative"
                  :options="deptList"
                  :props="props"
                  :show-all-levels="false"
                  clearable
                >
                  <template slot-scope="{ node, data }">
                    <span>{{ data.deptName }}</span>
                    <span v-if="!node.isLeaf">
                      ({{ data.children.length }})
                    </span>
                  </template>
                </el-cascader>
              </el-form-item>
              <el-form-item label="通知内容" prop="userName">
                <el-input
                  v-model="queryParams.userNamevalue"
                  placeholder="请输入"
                  clearable
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="适用方式" prop="shape">
                <el-cascader
                  v-model="queryParams.shapevalue"
                  :options="editableTabs"
                  :props="propss"
                  clearable
                ></el-cascader>
              </el-form-item>
              <el-form-item label="内容形式" prop="classify">
              <el-form-item label="适用院区" prop="region">
                <el-select
                  v-model="queryParams.classifyvalue"
                  placeholder="请选择"
                  v-model="queryParams.campus"
                  size="medium"
                  filterable
                  placeholder="请选择分类"
                >
                  <el-option
                    v-for="(item, index) in editableTabs"
                    :key="index++"
                    :label="item.title"
                    :value="index++"
                    v-for="item in courtyardlist"
                    :key="item.label"
                    :label="item.label"
                    :value="item.label"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="主要内容" prop="userName">
                <el-input
                  v-model="queryParams.description"
                  placeholder="请输入"
                  clearable
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="可用状态" prop="classify">
                <el-select
                  v-model="queryParams.classifyvalue"
                  placeholder="请选择"
                >
                <el-select v-model="queryParams.isenable" placeholder="请选择">
                  <el-option
                    v-for="(item, index) in editableTabs"
                    :key="index++"
                    :label="item.title"
                    :value="index++"
                    v-for="(item, index) in qyoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
@@ -189,15 +165,15 @@
              @selection-change="handleSelectionChange"
            >
              <el-table-column type="selection" width="50" align="center" />
              <el-table-column
              <!-- <el-table-column
                label="序号"
                fixed
                align="center"
                key="svyid"
                prop="svyid"
              />
              /> -->
              <el-table-column
                label="问卷标题"
                label="问卷名称"
                fixed
                align="center"
                key="svyname"
@@ -247,14 +223,14 @@
                :show-overflow-tooltip="true"
              >
                <template slot-scope="scope">
                  <span v-for="item in scope.row.labelInfo.split(',')"
                    >{{ item }}、
                  <span v-for="item in scope.row.svyLibTemplateTagList"
                    >{{ item.tagname }}、
                  </span>
                </template>
              </el-table-column>
              <el-table-column
                label="可用"
                label="是否可用"
                align="center"
                key="isenable"
                prop="isenable"
@@ -287,10 +263,10 @@
                    v-hasPermi="['system:user:edit']"
                  >
                    <span class="button-text"
                      ><i class="el-icon-edit"></i>二维码</span
                      ><i class="el-icon-edit"></i>预览</span
                    ></el-button
                  >
                  <el-button
                  <!-- <el-button
                    size="medium"
                    type="text"
                    @click="ViewQuestionnaire(scope.row)"
@@ -298,7 +274,7 @@
                    ><span class="button-textck"
                      ><i class="el-icon-edit"></i>查看</span
                    ></el-button
                  >
                  > -->
                  <el-button
                    size="medium"
                    type="text"
@@ -411,12 +387,80 @@
      </span>
    </el-dialog>
    <!-- 二维码展示弹框 -->
    <el-dialog width="30%" :visible.sync="goQRCodeVisible">
    <!-- <el-dialog width="30%" :visible.sync="goQRCodeVisible">
      <div class="qrcode-dialo">
        <div class="qrcode-text">
          {{ namequestionnaire }}<span>{{ haoquestionnaire }}</span>
        </div>
        <div class="qrcode-img"></div>
        <div class="qrcode-img">
          <el-image
            src="D:/qrcode/fc9a1fa37e394ac3ac606bf6b77b17c3"
            fit="cover"
          ></el-image>
        </div>
      </div>
    </el-dialog> -->
    <!-- 问卷模版预览 -->
    <el-dialog title="随访题目预览" :visible.sync="topicVisible" width="50%">
      <div class="preview-left">
        <!-- 单选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.svyTemplateLibScripts"
          :key="item.sort"
          v-if="item.scriptType == 1"
        >
          <div class="dev-text">
            {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-radio-group v-model="item.remark">
              <el-radio
                v-for="(items, index) in item.svyLibTemplateTargetoptions"
                :key="index"
                :label="index"
                >{{ items.optioncontent }}</el-radio
              >
            </el-radio-group>
          </div>
        </div>
        <!-- 多选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.svyTemplateLibScripts"
          :key="item.sort"
          v-if="item.scriptType == 2"
        >
          <div class="dev-text">
            {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-checkbox-group v-model="qremark">
              <el-checkbox
                v-for="(items, index) in item.svyLibTemplateTargetoptions"
                :key="index"
                :label="index"
              >
                {{ items.optioncontent }}
              </el-checkbox>
            </el-checkbox-group>
          </div>
        </div>
        <!-- 填空 -->
        <div
          class="scriptTopic-dev"
          v-for="item in topicform.svyTemplateLibScripts"
          :key="item.sort"
          v-if="item.scriptType == 3"
        >
          <div class="dev-text">
            {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-input placeholder="请输入答案" v-model="radioas" clearable>
            </el-input>
          </div>
        </div>
      </div>
    </el-dialog>
  </div>
@@ -431,7 +475,7 @@
  addQtemplateclassify,
  editQtemplateclassify,
  getQtemplatelist,
  issueinfo,
  getQtemplateobj,
  compileissue,
  delQtemplateinfo,
  Followupinfo,
@@ -440,6 +484,7 @@
  getillnesslist,
  illnesslistget,
  getillness,
  getQRcode,
} from "@/api/AiCentre/index";
import { listDept } from "@/api/system/dept";
@@ -456,6 +501,7 @@
      loading: false,
      // 选中数组
      ids: [],
      qremark: [],
      // 非单个禁用
      single: true,
      // 非多个禁用
@@ -466,6 +512,8 @@
      total: 0,
      namequestionnaire: "",
      haoquestionnaire: "",
      QRcodeurl: "",
      courtyardlist: "",
      // 用户表格数据
      userList: [],
@@ -485,6 +533,8 @@
      idds: "",
      amendtag: false, //是否修改类别
      dialogFormVisible: false, //修改添加类别弹框
      topicVisible: false, //
      topicform: {},
      classifyform: {}, //类别表单
      indexid: null,
      inputValue: "",
@@ -496,7 +546,7 @@
      illnesslistapi: [],
      illnesslist: [],
      defaultProps: {
        children: "svyLibTitleCategoryList",
        children: "svyLibTemplateCategoryList",
        label: "name",
      },
      deptList: [],
@@ -523,6 +573,7 @@
    this.languagelist = store.getters.languagelist;
    this.qyoptions = store.getters.usable;
    this.editableTabs = store.getters.editableTabs;
    this.courtyardlist = store.getters.courtyardlist;
  },
  methods: {
@@ -540,9 +591,20 @@
    },
    goQRCode(row) {
      this.goQRCodeVisible = true;
      this.namequestionnaire = row.userName;
      this.haoquestionnaire = row.nickName;
      getQtemplateobj({ svyid: row.svyid }).then((res) => {
        this.topicform = res.rows[0];
        console.log(this.topicform);
        this.topicVisible = true;
      });
      // getQRcode({
      //   url: "/outsideChain?param1=KHRYDSSuTpwGWDhAS6OnpfxObRZf8fd/TIagYWPvDuyku+MjtrWt1efC1htoBDc+G4QP2UOWPNitAO4TwH4oIQ==&param2=CP/xYqwqDhWACt2aQ/HOwhgRM62Lh4/1upwYDl7dmKSuiaa4zRzMgu7rmRztiwQj2YvJ1KAX1zBTpUAIdxPvUA==",
      // }).then((res) => {
      //   console.log(res);
      //   this.QRcodeurl = "D:/qrcode/fc9a1fa37e394ac3ac606bf6b77b17c3";
      // });
      // this.goQRCodeVisible = true;
      // this.namequestionnaire = row.userName;
      // this.haoquestionnaire = row.nickName;
    },
    // 表单重置
    reset() {
@@ -697,7 +759,8 @@
        });
        return;
      }
      let calssvalue = {};
      let calssvalue = {
      };
      if (
        this.classifyform.pid &&
        this.classifyform.name &&
@@ -706,11 +769,12 @@
        const index = this.deptOptions.findIndex(
          (obj) => obj.id == this.classifyform.pid
        );
        console.log(this.deptOptions[index]);
        calssvalue = this.deptOptions[index];
        calssvalue.svyLibTitleCategoryList.push(this.classifyform);
        calssvalue.svyLibTemplateCategoryList.push(this.classifyform);
      } else if (this.radio == "主分类" && this.classifyform.name) {
        this.classifyform.pid = null;
        this.classifyform.svyLibTitleCategoryList = [];
        this.classifyform.svyLibTemplateCategoryList = [];
      } else {
        return this.$modal.msgError("请填写完整信息");
      }
@@ -765,7 +829,7 @@
      return data.name.indexOf(value) !== -1;
    },
    handleNodeClick(data) {
      this.queryParams.assortid = data.id;
      this.queryParams.categoryid = data.id;
      this.getList();
    },
@@ -805,13 +869,6 @@
      this.ids = selection.map((item) => item.svyid);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.$router.push({
        path: "/knowledge/verbaltrick/particulars/",
        query: { id: "1" },
      });
    },
    /** 删除按钮操作 */
@@ -948,6 +1005,22 @@
    vertical-align: bottom;
  }
}
.preview-left {
  margin: 20px;
  //   margin: 20px;
  padding: 30px;
  background: #ffff;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
    0 0 6px 0 rgba(0, 0, 0, 0.04);
  .scriptTopic-dev {
    margin-bottom: 25px;
    font-size: 20px !important;
    .dev-text {
      margin-bottom: 10px;
    }
  }
}
::v-deep .el-tree-node__content {
  display: -webkit-box;