heimawl
2023-06-15 26ac0c266ae778635c5497b53d9fb61457db7115
封装api接口,宣教管理模块搭建
已添加6个文件
已修改4个文件
2334 ■■■■■ 文件已修改
src/api/knowledge/education.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/knowledge/questionbank.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/knowledge/questionnaire.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/patient/homepage.js 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/label.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/compilequer/index.vue 866 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/examine/index.vue 304 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/knowledge/education/index.vue 809 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/patient/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/label/index.vue 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/knowledge/education.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/ruoyi";//处理字符串,und,null转换为'';
// ä¿®æ”¹å®£æ•™åˆ†ç±»
export function amendtag(data) {
  return request({
    url: '/smartor/hecategory',
    method: 'put',
    data: data
  })
};
// æ–°å¢žå®£æ•™åˆ†ç±»
export function addapitag(data) {
    return request({
      url: '/smartor/hecategory',
      method: 'post',
      data: data
    })
  };
/**
 *
 * @param {标签id} userId
 * èŽ·å–å®£æ•™è¯¦æƒ…
 * @returns
 */
export function detailstag(userId) {
    return request({
      url: '/smartor/hecategory/'+ userId,
      method: 'get',
    })
  };
  /**
   *
   * @param {标签id} userId
   * åˆ é™¤æ ‡ç­¾
   * @returns
   */
export function deletetag(userId) {
    return request({
      url: '/smartor/hecategory/' + userId,
      method: 'delete',
    })
  };
  // å¯¼å‡ºæ ‡ç­¾åˆ—表
export function exporttag(data) {
    return request({
      url: '/smartor/hecategory/export',
      method: 'post',
      data: data
    })
  };
  // æŸ¥è¯¢æ ‡ç­¾åˆ—表
export function listtag(query) {
    return request({
      url: '/smartor/hecategory/list',
      method: 'get',
      params: query
    })
  };
src/api/knowledge/questionbank.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/ruoyi";//处理字符串,und,null转换为'';
// æŸ¥è¯¢é¢˜åº“列表
export function listpatient(query) {
  return request({
    url: '/smartor/patarchive/list',
    method: 'get',
    params: query
  })
};
src/api/knowledge/questionnaire.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/ruoyi";//处理字符串,und,null转换为'';
// æŸ¥è¯¢é—®å·åˆ—表
export function listpatient(query) {
  return request({
    url: '/smartor/patarchive/list',
    method: 'get',
    params: query
  })
};
src/api/patient/homepage.js
@@ -1,5 +1,5 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/ruoyi";
import { parseStrEmpty } from "@/utils/ruoyi";//处理字符串,und,null转换为'';
// æŸ¥è¯¢æ‚£è€…列表
export function listpatient(query) {
@@ -8,4 +8,65 @@
    method: 'get',
    params: query
  })
}
};
// ç”¨æˆ·ä¿¡æ¯æŸ¥è¯¢æ‚£è€…列表
export function messagelistpatient(data) {
  return request({
    url: '/smartor/patarchive/patInfoByContion',
    method: 'post',
    data: data
  })
};
// æ ‡ç­¾æŸ¥è¯¢æ‚£è€…列表
export function taglistpatient(data) {
  return request({
    url: '/smartor/patarchive/patTagByContion',
    method: 'post',
    data: data
  })
};
// ä¿®æ”¹æ‚£è€…档案
export function alterpatient(data) {
  return request({
    url: '/smartor/patarchive',
    method: 'put',
    data: data
  })
};
// æ–°å¢žæ‚£è€…
export function addpatient(data) {
  return request({
    url: '/smartor/patarchive',
    method: 'post',
    data: data
  })
};
// æ‚£è€…详情
export function particularpatient(userId) {
  return request({
    url: '/smartor/patarchive/' + userId,
    method: 'get',
  })
};
// åˆ é™¤æ‚£è€…列表
export function deletepatient(userId) {
  return request({
    url: '/smartor/patarchive/' + userId,
    method: 'delete',
  })
};
// å¯¼å‡ºæ‚£è€…错误信息
export function Exporterrorpatient(userId) {
  return request({
    url: '/smartor/patarchive/patTagByContion/'+userId,
    method: 'get',
  })
};
// å¯¼å…¥æ‚£è€…文件处理
export function toleadpatient(userId) {
  return request({
    url: '/smartor/patarchive/patTagByContion/'+userId,
    method: 'get',
  })
};
src/api/system/label.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/ruoyi";//处理字符串,und,null转换为'';
// ä¿®æ”¹æ ‡ç­¾
export function amendtag(data) {
  return request({
    url: '/base/tag',
    method: 'put',
    data: data
  })
};
// æ–°å¢žæ ‡ç­¾
export function addapitag(data) {
    return request({
      url: '/base/tag',
      method: 'post',
      data: data
    })
  };
/**
 *
 * @param {标签id} userId
 * èŽ·å–æ ‡ç­¾è¯¦æƒ…
 * @returns
 */
export function detailstag(userId) {
    return request({
      url: '/base/tag/'+ userId,
      method: 'get',
    })
  };
  /**
   *
   * @param {标签id} userId
   * åˆ é™¤æ ‡ç­¾
   * @returns
   */
export function deletetag(userId) {
    return request({
      url: '/base/tag/' + userId,
      method: 'delete',
    })
  };
  // å¯¼å‡ºæ ‡ç­¾åˆ—表
export function exporttag(data) {
    return request({
      url: '/base/tag/export',
      method: 'post',
      data: data
    })
  };
  // æŸ¥è¯¢æ ‡ç­¾åˆ—表
export function listtag(query) {
    return request({
      url: '/base/tag/list',
      method: 'get',
      params: query
    })
  };
src/views/knowledge/education/compilequer/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,866 @@
<template>
  <div class="Questionnairemanagement">
    <!-- å·¦ä¾§æ  -->
    <div class="sidecolumn">
      <div style="height: 200px">
        <el-steps direction="vertical" :active="Editprogress">
          <el-step title="基础信息设置"></el-step>
          <el-step title="宣教内容"></el-step>
        </el-steps>
      </div>
    </div>
    <!-- å³ä¾§æ•°æ® -->
    <div class="leftvlue">
      <!-- åŸºæœ¬ä¿¡æ¯ -->
      <div v-if="Editprogress == 1">
        <div class="leftvlue-jbxx">
          åŸºæœ¬ä¿¡æ¯<span>当前版本:{{ currentVersion }}</span>
        </div>
        <el-form
          :model="ruleForm"
          :rules="rules"
          ref="ruleForm"
          label-width="100px"
          class="demo-ruleForm"
        >
          <el-form-item label="宣教名称" prop="name">
            <el-input v-model="ruleForm.name"></el-input>
          </el-form-item>
          <el-form-item label="宣教形式" prop="name">
            <el-select v-model="ruleForm.shape" placeholder="请选择">
              <el-option
                v-for="item in xjxsoptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="宣教分类" prop="region">
            <el-select
              v-model="ruleForm.classify"
              size="medium"
              multiple
              filterable
              placeholder="请选择分类"
            >
              <el-option
                class="ruleFormaa"
                v-for="item in options"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="适用疾病" prop="sickness">
            <el-select
              v-model="ruleForm.sickness"
              filterable
              placeholder="请选择"
            >
              <el-option
                v-for="item in sicknessoptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="活动形式" prop="desc">
            <el-input
              :rows="4"
              type="textarea"
              v-model="ruleForm.desc"
              maxlength="400"
              show-word-limit
            ></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="success" @click="submitForm('ruleForm')"
              >下一步</el-button
            >
            <el-button @click="resetForm('ruleForm')">重置</el-button>
          </el-form-item>
        </el-form>
      </div>
      <!-- å®£æ•™å†…容 -->
      <div v-if="Editprogress == 2">
        <div class="leftvlue-jbxx">宣教内容</div>
        <el-form
          :model="ruleForm"
          :rules="rules"
          ref="ruleForm"
          label-width="100px"
          class="demo-ruleForm"
        >
          <el-form-item label="宣教介绍" prop="desc">
            <el-cascader
              class="demo-cascader"
              v-model="ruleForm.templatevalue"
              :options="asoptions"
              :props="{ expandTrigger: 'hover' }"
            ></el-cascader>
            <el-select v-model="ruleForm.data2" placeholder="提交提示">
              <el-option
                v-for="item in asoptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
            <div style="display: flex; margin-top: 20px">
              <div class="PreviewTemplate" @click="PreviewTemplate()">
                é¢„览模版
              </div>
              <el-button type="primary">确认引用</el-button>
            </div>
          </el-form-item>
          <el-form-item label="活动形式" prop="desc">
            <el-input type="textarea" v-model="ruleForm.desc"></el-input>
          </el-form-item>
          <el-form-item label="活动形式" prop="desc">
            <el-input type="textarea" v-model="ruleForm.desc"></el-input>
            <div class="addtopic">
              <el-select
                v-model="addvalue"
                @change="changeaddtopic"
                class="addtopic-input"
              >
                <el-option
                  v-for="item in options"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
            </div>
            <div class="presentation">
              <div class="presentation-left">
                <el-table v-loading="loading" :data="userList">
                  <el-table-column
                    label="序号"
                    align="center"
                    key="userid"
                    prop="userid"
                  />
                  <el-table-column
                    label="题目"
                    align="center"
                    key="userName"
                    prop="userName"
                    :show-overflow-tooltip="true"
                  />
                  <el-table-column
                    label="操作"
                    align="center"
                    width="300"
                    class-name="small-padding fixed-width"
                  >
                    <template slot-scope="scope">
                      <!-- <el-button
                        size="medium"
                        type="text"
                        @click="goQRCode(scope.row)"
                        v-hasPermi="['system:user:edit']"
                      >
                        <span class="button-text"
                          ><i class="el-icon-edit"></i>二维码</span
                        ></el-button
                      >
                      <el-button
                        size="medium"
                        type="text"
                        @click="ViewQuestionnaire(scope.row)"
                        v-hasPermi="['system:user:edit']"
                        ><span class="button-textck"
                          ><i class="el-icon-edit"></i>查看</span
                        ></el-button
                      > -->
                      <el-button
                        size="medium"
                        type="text"
                        @click="handleUpdate(scope.row)"
                        v-hasPermi="['system:user:edit']"
                        ><span class="button-textxg"
                          ><i class="el-icon-scissors"></i>修改</span
                        ></el-button
                      >
                      <el-button
                        size="medium"
                        type="text"
                        @click="handleDelete(scope.row)"
                        v-hasPermi="['system:user:remove']"
                        ><span class="button-textsc"
                          ><i class="el-icon-delete"></i>删除</span
                        ></el-button
                      >
                    </template>
                  </el-table-column>
                </el-table>
                <pagination
                  v-show="total > 0"
                  :total="total"
                  :page.sync="queryParams.pageNum"
                  :limit.sync="queryParams.pageSize"
                  @pagination="getList"
                />
              </div>
              <div class="presentation-right">
                <div class="headline">题目设置详情</div>
                <div>题目标题:<span>这家机构怎么样</span></div>
                <div>是否必答:<span>是</span> æ˜¯å¦éšè—ï¼š<span>否</span></div>
                <div class="headline">选项设置</div>
                <div>
                  <p>选项1:<span>医疗机构</span></p>
                  <p>
                    å¡«å†™æ˜Žç»†ï¼š<span>无</span> å¼‚常选项:<span>无</span>
                    åˆ†å€¼ï¼š<span>3</span>
                  </p>
                  <p>选中提示:<span>这个题有点难请注意</span></p>
                  <p>选中跳转:<span>无</span></p>
                </div>
              </div>
            </div>
          </el-form-item>
          <el-form-item>
            <el-button type="success" @click="submitForm('ruleForm')"
              >立即创建</el-button
            >
            <el-button type="primary" @click="laststep()">上一步</el-button>
            <el-button @click="resetForm('ruleForm')">重置</el-button>
          </el-form-item>
        </el-form>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      sidecolumnrabs: "left", //方向
      Editprogress: 1, //编辑进度
      currentVersion: "1.2.3", //当前版本
      loading: false, // é®ç½©å±‚
      drawer: false, //控制展开
      radio: "false", //单选题选中
      radios: [], //多选题选中
      radioas: "", //填空题答案
      // æ€»æ¡æ•°
      total: 1,
      ruleForm: {
        name: "",
        shape: "",
        classify: "",
        region: "",
        date1: "",
        date2: "",
        delivery: false,
        type: [],
        resource: "",
        desc: "",
        templatevalue: "",
        data2: "",
      },
      rules: {},
      rulesa: {
        name: [
          { required: true, message: "请输入活动名称", trigger: "blur" },
          { min: 3, max: 5, message: "长度在 3 åˆ° 5 ä¸ªå­—符", trigger: "blur" },
        ],
        region: [
          { required: true, message: "请选择活动区域", trigger: "change" },
        ],
        date1: [
          {
            type: "date",
            required: true,
            message: "请选择日期",
            trigger: "change",
          },
        ],
        date2: [
          {
            type: "date",
            required: true,
            message: "请选择时间",
            trigger: "change",
          },
        ],
        type: [
          {
            type: "array",
            required: true,
            message: "请至少选择一个活动性质",
            trigger: "change",
          },
        ],
        resource: [
          { required: true, message: "请选择活动资源", trigger: "change" },
        ],
        desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }],
      },
      options: [
        {
          value: "选项1",
          label: "疾病宣教",
        },
        {
          value: "选项2",
          label: "入院宣教",
        },
        {
          value: "选项3",
          label: "手术宣教",
        },
        {
          value: "选项4",
          label: "护理宣教",
        },
      ],
      xjxsoptions: [
        {
          value: "选项1",
          label: "图文",
        },
        {
          value: "选项2",
          label: "视频",
        },
        {
          value: "选项3",
          label: "音频",
        },
      ],
      sicknessoptions: [
        {
          value: 1,
          label: "高血压",
        },
        {
          value: 2,
          label: "心脏病",
        },
        {
          value: 3,
          label: "糖尿病",
        },
        {
          value: 4,
          label: "脊椎炎",
        },
      ],
      asoptions: [
        {
          value: "zhinan",
          label: "指南",
          children: [
            {
              value: "shejiyuanze",
              label: "设计原则",
              children: [
                {
                  value: "yizhi",
                  label: "一致",
                },
                {
                  value: "fankui",
                  label: "反馈",
                },
                {
                  value: "xiaolv",
                  label: "效率",
                },
                {
                  value: "kekong",
                  label: "可控",
                },
              ],
            },
            {
              value: "daohang",
              label: "导航",
              children: [
                {
                  value: "cexiangdaohang",
                  label: "侧向导航",
                },
                {
                  value: "dingbudaohang",
                  label: "顶部导航",
                },
              ],
            },
          ],
        },
        {
          value: "zujian",
          label: "组件",
          children: [
            {
              value: "basic",
              label: "Basic",
              children: [
                {
                  value: "layout",
                  label: "Layout å¸ƒå±€",
                },
                {
                  value: "color",
                  label: "Color è‰²å½©",
                },
                {
                  value: "typography",
                  label: "Typography å­—体",
                },
                {
                  value: "icon",
                  label: "Icon å›¾æ ‡",
                },
                {
                  value: "button",
                  label: "Button æŒ‰é’®",
                },
              ],
            },
            {
              value: "form",
              label: "Form",
              children: [
                {
                  value: "radio",
                  label: "Radio å•选框",
                },
                {
                  value: "checkbox",
                  label: "Checkbox å¤šé€‰æ¡†",
                },
                {
                  value: "input",
                  label: "Input è¾“入框",
                },
                {
                  value: "input-number",
                  label: "InputNumber è®¡æ•°å™¨",
                },
                {
                  value: "select",
                  label: "Select é€‰æ‹©å™¨",
                },
                {
                  value: "cascader",
                  label: "Cascader çº§è”选择器",
                },
                {
                  value: "switch",
                  label: "Switch å¼€å…³",
                },
                {
                  value: "slider",
                  label: "Slider æ»‘块",
                },
                {
                  value: "time-picker",
                  label: "TimePicker æ—¶é—´é€‰æ‹©å™¨",
                },
                {
                  value: "date-picker",
                  label: "DatePicker æ—¥æœŸé€‰æ‹©å™¨",
                },
                {
                  value: "datetime-picker",
                  label: "DateTimePicker æ—¥æœŸæ—¶é—´é€‰æ‹©å™¨",
                },
                {
                  value: "upload",
                  label: "Upload ä¸Šä¼ ",
                },
                {
                  value: "rate",
                  label: "Rate è¯„分",
                },
                {
                  value: "form",
                  label: "Form è¡¨å•",
                },
              ],
            },
            {
              value: "data",
              label: "Data",
              children: [
                {
                  value: "table",
                  label: "Table è¡¨æ ¼",
                },
                {
                  value: "tag",
                  label: "Tag æ ‡ç­¾",
                },
                {
                  value: "progress",
                  label: "Progress è¿›åº¦æ¡",
                },
                {
                  value: "tree",
                  label: "Tree æ ‘形控件",
                },
                {
                  value: "pagination",
                  label: "Pagination åˆ†é¡µ",
                },
                {
                  value: "badge",
                  label: "Badge æ ‡è®°",
                },
              ],
            },
            {
              value: "notice",
              label: "Notice",
              children: [
                {
                  value: "alert",
                  label: "Alert è­¦å‘Š",
                },
                {
                  value: "loading",
                  label: "Loading åŠ è½½",
                },
                {
                  value: "message",
                  label: "Message æ¶ˆæ¯æç¤º",
                },
                {
                  value: "message-box",
                  label: "MessageBox å¼¹æ¡†",
                },
                {
                  value: "notification",
                  label: "Notification é€šçŸ¥",
                },
              ],
            },
            {
              value: "navigation",
              label: "Navigation",
              children: [
                {
                  value: "menu",
                  label: "NavMenu å¯¼èˆªèœå•",
                },
                {
                  value: "tabs",
                  label: "Tabs æ ‡ç­¾é¡µ",
                },
                {
                  value: "breadcrumb",
                  label: "Breadcrumb é¢åŒ…屑",
                },
                {
                  value: "dropdown",
                  label: "Dropdown ä¸‹æ‹‰èœå•",
                },
                {
                  value: "steps",
                  label: "Steps æ­¥éª¤æ¡",
                },
              ],
            },
            {
              value: "others",
              label: "Others",
              children: [
                {
                  value: "dialog",
                  label: "Dialog å¯¹è¯æ¡†",
                },
                {
                  value: "tooltip",
                  label: "Tooltip æ–‡å­—提示",
                },
                {
                  value: "popover",
                  label: "Popover å¼¹å‡ºæ¡†",
                },
                {
                  value: "card",
                  label: "Card å¡ç‰‡",
                },
                {
                  value: "carousel",
                  label: "Carousel èµ°é©¬ç¯",
                },
                {
                  value: "collapse",
                  label: "Collapse æŠ˜å é¢æ¿",
                },
              ],
            },
          ],
        },
        {
          value: "ziyuan",
          label: "资源",
          children: [
            {
              value: "axure",
              label: "Axure Components",
            },
            {
              value: "sketch",
              label: "Sketch Templates",
            },
            {
              value: "jiaohu",
              label: "组件交互文档",
            },
          ],
        },
      ],
      valssu: [
        {
          idd: 1,
          wssd: "你最近怎么样",
          sdadd: ["sss", "ssccss", "ssaas", "ss"],
        },
      ],
      addvalue: "添加题目",
      // é¢˜ç›®è¡¨æ ¼æ•°æ®
      userList: [
        {
          userid: "1",
          userName: "一号宣教",
        },
        {
          userid: "2",
          userName: "二号宣教",
        },
        {
          userid: "3",
          userName: "三号宣教",
        },
        {
          userid: "4",
          userName: "四号宣教",
        },
      ],
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        userName: undefined,
        phonenumber: undefined,
        status: undefined,
        deptId: undefined,
        IDnumber: undefined,
      },
    };
  },
  created() {},
  methods: {
    submitForm(formName) {
      if (this.Editprogress <= 3) {
        return this.Editprogress++;
      }
      this.rules = this.rulesa;
      //   æäº¤
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert("submit!");
        } else {
          console.log("error submit!!");
          return false;
        }
      });
    },
    /** æŸ¥è¯¢é¢˜ç›®åˆ—表 */
    getList() {
      //   this.loading = true;
      listUser().then((response) => {
        console.log(response);
        // this.userList = response.data;
        // this.total = response.total;
        // this.loading = false;
        console.log(this.userList);
      });
      //   const { rows } = await listUser();
      //   console.log(rows);
      //   this.list = rows;
    },
    changeaddtopic(val) {
      console.log(11);
      console.log(val);
      this.addvalue = "添加题目";
    },
    // é¢„览模版
    PreviewTemplate() {
      this.drawer = true;
    },
    laststep() {
      this.Editprogress--;
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
  },
};
</script>
<style lang="scss" scoped>
.Questionnairemanagement {
  display: flex;
}
.sidecolumn {
  width: 300px;
  min-height: 100vh;
  text-align: center;
  //   display: flex;
  //   margin-top: 20px;
  margin: 20px;
  margin-bottom: 0;
  padding: 30px;
  background: #edf1f7;
  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);
}
.leftvlue {
  //   display: flex;
  //   flex: 1;
  width: 80%;
  margin-top: 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);
  .mulsz {
    font-size: 20px;
  }
  .leftvlue-jbxx {
    margin-bottom: 50px;
    font-size: 20px;
    span {
      position: absolute;
      right: 80px;
    }
  }
  .demo-cascader {
    margin-right: 20px;
  }
  .PreviewTemplate {
    color: #02a7f0;
    cursor: pointer;
    font-size: 20px;
    margin: 0 20px;
  }
}
.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);
  .topic-dev {
    margin-bottom: 25px;
    font-size: 20px !important;
    .dev-text {
      margin-bottom: 10px;
    }
  }
}
.addtopic {
  margin-top: 30px;
}
.presentation {
  margin: 20px 0;
  display: flex;
  .presentation-left {
    width: 50%;
    height: 500px;
    .button-textxg {
      color: #024df0;
    }
    .button-textsc {
      color: #f52727;
    }
  }
  .presentation-right {
    width: 50%;
    height: 500px;
    padding: 20px;
    font-size: 18px;
    border: 1px solid #909091;
    span {
      padding: 0 35px;
      margin-right: 10px;
      border-bottom: 1px solid #909091;
    }
    .headline {
      font-size: 20px;
      border-left: 3px solid #41a1be;
      padding-left: 5px;
      margin: 15px 0;
    }
  }
}
::v-deep .addtopic-input {
  input {
    background: #02a7f0;
    color: #edf1f7;
    width: 150px;
  }
}
::v-deep.el-step.is-vertical .el-step__title {
  font-size: 25px;
}
::v-deep.el-input--medium {
  font-size: 24px !important;
}
::v-deep.ruleFormaa.el-select {
  display: inline-block;
  position: relative;
  width: 700px;
}
.el-select__tags {
  font-size: 20px;
  max-width: 888px !important;
}
::v-deep.el-radio__inner {
  width: 22px;
  height: 22px;
}
// ::v-deep.topic-dev.el-radio__label {
//   font-size: 24px;
// }
::v-deep.el-radio-group {
  span {
    font-size: 24px;
  }
}
::v-deep.el-checkbox-group {
  span {
    font-size: 24px;
  }
}
// ::v-deep.el-form-item--medium .el-form-item__content {
//   line-height: 36px;
//   display: flex;
// }
</style>
src/views/knowledge/education/examine/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,304 @@
<template>
  <div class="examineemanagement">
    <!-- å·¦ä¾§æ  -->
    <div class="sidecolumn">
      <div class="sidecolumn-top">
        <div class="top-wj">历史版本</div>
        <!-- <div class="top-tj" @click="dialogFormVisible = true">+添加</div> -->
      </div>
      <div class="bottom-fl">
        <el-tabs tab-position="right" v-model="activeName">
          <el-tab-pane
            class="tab-paness"
            :key="index"
            v-for="(item, index) in editableTabs"
          >
            <div class="mulsz" slot="label">
              {{ item.versionsac
              }}<span style="margin-left: 30px">{{
                item.startUsing ? "启用" : "禁用"
              }}</span>
            </div>
          </el-tab-pane>
        </el-tabs>
      </div>
    </div>
    <!-- å³ä¾§æ•°æ® -->
    <div class="leftvlue">
      <div v-if="activeName == '0'">
        <div class="examine-top">
          <span>编辑人:{{ basicInformation.name }}</span>
          <span>编辑时间:{{ basicInformation.day }}</span>
          <span class="ewmyl">二维码预览</span>
        </div>
        <!-- åŸºç¡€ä¿¡æ¯ -->
        <div class="examine-jic">
          <div class="headline">基础信息</div>
          <div class="jic-value">
            <div>
              å®£æ•™åç§°ï¼š{{ basicInformation.wname
              }}<span>适用疾病:{{ basicInformation.jbname }}</span>
            </div>
            <div>
              å®£æ•™å½¢å¼ï¼š{{ basicInformation.wname
              }}<span>适用分类:{{ basicInformation.jbname }}</span>
            </div>
            <div>表单描述:{{ basicInformation.miaosname }}</div>
          </div>
        </div>
        <!-- å®£æ•™é¢„览 -->
        <div class="examine-jic">
          <div class="headline">宣教内容</div>
          <div class="jic-value">
            <div>
              å®£æ•™ä»‹ç»ï¼š<span class="wenjuanjs"
                >非常好非常好非常好非常好非常好非常好非常好非常好</span
              >
            </div>
          </div>
          <div class="preview-left">
            <!-- å•选 -->
            <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
              <div class="dev-text">
                {{ item.idd }}、[单选]&nbsp&nbsp<span>{{ item.wssd }}</span>
              </div>
              <div class="dev-xx">
                <el-radio-group v-model="radio">
                  <el-radio
                    v-for="(items, index) in item.sdadd"
                    :key="index"
                    :label="index"
                    >{{ items }}</el-radio
                  >
                </el-radio-group>
              </div>
            </div>
            <!-- å¤šé€‰ -->
            <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
              <div class="dev-text">
                {{ item.idd }}、[多选]&nbsp&nbsp<span>{{ item.wssd }}</span>
              </div>
              <div class="dev-xx">
                <el-checkbox-group v-model="radios">
                  <el-checkbox
                    v-for="(items, index) in item.sdadd"
                    :key="index"
                    :label="index"
                  >
                    {{ items }}
                  </el-checkbox>
                </el-checkbox-group>
              </div>
            </div>
            <!-- å¡«ç©º -->
            <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
              <div class="dev-text">
                {{ item.idd }}、[填空]&nbsp&nbsp<span>{{ item.wssd }}</span>
              </div>
              <div class="dev-xx">
                <el-input placeholder="请输入答案" v-model="radioas" clearable>
                </el-input>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div v-else-if="activeName == '1'">bbb</div>
      <div v-else-if="activeName == '2'">ccc</div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      activeName: "0",
      radios: [], //多选题选中
      basicInformation: {
        name: "老吴",
        day: "2023å¹´12月11日16时12分11秒",
        wname: "大大大",
        jbname: "小小小",
        miaosname: "非常好大大大",
      },
      valssu: [
        {
          idd: 1,
          wssd: "你最近怎么样",
          sdadd: ["sss", "ssccss", "ssaas", "ss"],
        },
      ],
      editableTabs: [
        {
          versionsac: "1.0.3",
          startUsing: true,
        },
        {
          versionsac: "1.0.2",
          startUsing: false,
        },
        {
          versionsac: "1.0.1",
          startUsing: false,
        },
      ],
    };
  },
  created() {},
  methods: {
    handleClick() {},
  },
};
</script>
<style lang="scss" scoped>
.examineemanagement {
  display: flex;
  .sidecolumn {
    width: 300px;
    min-height: 100vh;
    text-align: center;
    //   display: flex;
    margin-top: 20px;
    margin: 20px;
    padding: 30px;
    background: #edf1f7;
    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);
    .sidecolumn-top {
      display: flex;
      justify-content: space-between;
      .top-wj {
        font-size: 20px;
      }
      .top-tj {
        font-size: 18px;
        color: rgb(0, 89, 255);
        cursor: pointer;
      }
    }
    .center-ss {
      margin-top: 30px;
      .input-with-select {
        height: 40px !important;
      }
    }
    .bottom-fl {
      margin-top: 30px;
      display: center !important;
    }
  }
  .leftvlue {
    width: 80%;
    margin-top: 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);
    .mulsz {
      font-size: 20px;
      span {
        margin-left: 30px;
      }
    }
    .examine-top {
      font-size: 20px;
      margin-bottom: 40px;
      span {
        margin-right: 30px;
      }
      .ewmyl {
        color: rgb(0, 81, 255);
        cursor: pointer;
      }
    }
    .examine-jic {
      .headline {
        font-size: 28px;
        border-left: 8px solid #42b983;
        padding-left: 5px;
        margin-bottom: 15px;
      }
      .jic-value {
        font-size: 20px;
        border-top: 1px solid #a7abac;
        padding: 20px;
        div {
          margin-bottom: 15px;
          span {
            margin-left: 180px;
          }
        }
        .wenjuanjs {
          margin-left: 15px;
          padding-bottom: 5px;
          border-bottom: 1px solid #a7abac;
        }
      }
      .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);
        .topic-dev {
          margin-bottom: 25px;
          font-size: 20px !important;
          .dev-text {
            margin-bottom: 10px;
          }
        }
      }
    }
    .examine-jieg {
      .headline {
        font-size: 28px;
        padding-left: 5px;
        border-left: 8px solid #41a1be;
        // border-bottom: 1px solid #41a1be;
        margin-bottom: 15px;
      }
    }
  }
}
::v-deep.el-tabs--left,
.el-tabs--right {
  overflow: hidden;
  align-items: center;
  display: flex;
}
::v-deep.el-input--medium .el-input__inner {
  height: 40px !important;
}
::v-deep.el-tabs--right .el-tabs__active-bar.is-right {
  height: 40px;
  width: 5px;
  left: 0;
}
::v-deep.el-tabs--right .el-tabs__item.is-right {
  display: block;
  font-size: 20px;
}
::v-deep.el-radio-group {
  span {
    font-size: 24px;
  }
}
::v-deep.el-checkbox-group {
  span {
    font-size: 24px;
  }
}
</style>
src/views/knowledge/education/index.vue
@@ -1,17 +1,816 @@
<template>
  <div>宣教管理</div>
  <div class="educationmanagement">
    <!-- å·¦ä¾§æ  -->
    <div class="sidecolumn">
      <div class="sidecolumn-top">
        <div class="top-wj">宣教类型</div>
        <div class="top-tj" @click="dialogFormVisible = true">+添加类别</div>
      </div>
      <div class="center-ss">
        <el-input
          placeholder="请输入内容"
          v-model="sidecolumnval"
          class="input-with-select"
          size="medium "
        >
          <el-button
            @click="sidecolumnss"
            slot="append"
            icon="el-icon-search"
          ></el-button>
        </el-input>
      </div>
      <div class="bottom-fl">
        <el-tabs tab-position="right">
          <el-tab-pane :label="`全部 (${numberlb})`"></el-tab-pane>
          <el-tab-pane
            class="tab-paness"
            :key="item.name"
            v-for="(item, index) in editableTabs"
            :label="item.title + ' (' + item.number + ')'"
          ></el-tab-pane>
          <el-tab-pane :label="`未分组(${numberlbs})`"></el-tab-pane>
        </el-tabs>
      </div>
    </div>
    <!-- å³ä¾§æ•°æ® -->
    <div class="leftvlue">
      <div class="leftvlue-top">
        <el-tabs v-model="topactiveName" @tab-click="tophandleClick">
          <el-tab-pane name="Local">
            <span class="mulsz" slot="label">本地宣教库 </span>
          </el-tab-pane>
          <el-tab-pane name="sharing">
            <span class="mulsz" slot="label">共享宣教库 </span>
          </el-tab-pane>
        </el-tabs>
      </div>
      <div class="leftvlue-bg">
        <el-row :gutter="20">
          <!--用户数据-->
          <el-col :span="24" :xs="24">
            <el-form
              :model="queryParams"
              ref="queryForm"
              size="small"
              :inline="true"
              v-show="showSearch"
              label-width="98px"
            >
              <el-form-item label="宣教名称" prop="userName">
                <el-input
                  v-model="queryParams.userName"
                  placeholder="请输入"
                  clearable
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="适用疾病" prop="sickness">
                <el-cascader
                  v-model="queryParams.sickness"
                  :options="optionss"
                  :props="propss"
                  clearable
                ></el-cascader>
              </el-form-item>
              <el-form-item label="宣教形式" prop="shape">
                <el-select
                  v-model="queryParams.shapevalue"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in xjxsoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="宣教分类" prop="classify">
                <el-select
                  v-model="queryParams.classifyvalue"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="(item, index) in editableTabs"
                    :key="index++"
                    :label="item.title"
                    :value="index++"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item>
                <el-button
                  type="primary"
                  icon="el-icon-search"
                  size="medium"
                  @click="handleQuery"
                  >搜索</el-button
                >
                <el-button
                  icon="el-icon-refresh"
                  size="medium"
                  @click="resetQuery"
                  >重置</el-button
                >
              </el-form-item>
            </el-form>
            <el-row :gutter="10" class="mb8">
              <el-col :span="1.5">
                <el-button
                  type="primary"
                  plain
                  icon="el-icon-plus"
                  size="medium"
                  @click="handleAdd"
                  v-hasPermi="['system:user:add']"
                  >新增</el-button
                >
              </el-col>
              <el-col :span="1.5">
                <el-button
                  type="danger"
                  plain
                  icon="el-icon-delete"
                  size="medium"
                  :disabled="multiple"
                  @click="handleDelete"
                  v-hasPermi="['system:user:remove']"
                  >删除</el-button
                >
              </el-col>
              <!-- <el-col :span="1.5"> </el-col> -->
            </el-row>
            <!-- <right-toolbar
          :showSearch.sync="showSearch"
          @queryTable="getList"
          :columns="columns"
        ></right-toolbar> -->
            <el-table
              v-loading="loading"
              :data="userList"
              border="true"
              @selection-change="handleSelectionChange"
            >
              <el-table-column type="selection" width="50" align="center" />
              <el-table-column
                label="序号"
                align="center"
                key="userid"
                prop="userid"
              />
              <el-table-column
                label="宣教名称"
                align="center"
                key="userName"
                prop="userName"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="版本"
                align="center"
                key="nickName"
                prop="nickName"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="适用疾病"
                align="center"
                key="aphonenumber"
                prop="aphonenumber"
                width="120"
              /><el-table-column
                label="宣教描述"
                align="center"
                key="bphonenumber"
                prop="bphonenumber"
                width="120"
              />
              <el-table-column
                label="最近编辑"
                align="center"
                key="cphonenumber"
                prop="cphonenumber"
                width="120"
              />
              <el-table-column
                label="操作"
                align="center"
                width="300"
                class-name="small-padding fixed-width"
              >
                <template slot-scope="scope">
                  <el-button
                    size="medium"
                    type="text"
                    @click="goQRCode(scope.row)"
                    v-hasPermi="['system:user:edit']"
                  >
                    <span class="button-text"
                      ><i class="el-icon-edit"></i>二维码</span
                    ></el-button
                  >
                  <el-button
                    size="medium"
                    type="text"
                    @click="Vieweducation(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textck"
                      ><i class="el-icon-edit"></i>查看</span
                    ></el-button
                  >
                  <el-button
                    size="medium"
                    type="text"
                    @click="handleUpdate(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textxg"
                      ><i class="el-icon-edit"></i>修改</span
                    ></el-button
                  >
                  <el-button
                    size="medium"
                    type="text"
                    @click="handleDelete(scope.row)"
                    v-hasPermi="['system:user:remove']"
                    ><span class="button-textsc"
                      ><i class="el-icon-edit"></i>删除</span
                    ></el-button
                  >
                </template>
              </el-table-column>
            </el-table>
            <pagination
              v-show="total > 0"
              :total="total"
              :page.sync="queryParams.pageNum"
              :limit.sync="queryParams.pageSize"
              @pagination="getList"
            />
          </el-col>
        </el-row>
        <!-- æ·»åŠ æˆ–ä¿®æ”¹å®£æ•™é…ç½®å¯¹è¯æ¡† -->
        <el-dialog
          :title="title"
          :visible.sync="open"
          width="900px"
          append-to-body
        >
          <el-form ref="form" :model="form" :rules="rules" label-width="100px">
            <el-row>
              <el-col :span="12">
                <el-form-item label="姓名" prop="nickName">
                  <el-input
                    v-model="form.nickName"
                    placeholder="请输入姓名"
                    maxlength="30"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="性别" prop="deptId">
                  <el-select v-model="form.sex" placeholder="请选择性别">
                    <el-option
                      v-for="dict in dict.type.sys_user_sex"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="证件类型" prop="phonenumber">
                  <el-input
                    v-model="form.phonenumber"
                    placeholder="请选择证件类型"
                    maxlength="11"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="证件号" prop="email">
                  <el-input
                    v-model="form.email"
                    placeholder="请输入证件号"
                    maxlength="50"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="本人手机号" prop="userName">
                  <el-input
                    v-model="form.userName"
                    placeholder="请输入手机号"
                    maxlength="30"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="亲属手机号" prop="password">
                  <el-input
                    v-model="form.password"
                    placeholder="请输入亲属手机号"
                    type="password"
                    maxlength="20"
                    show-password
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="患者标签">
                  <el-cascader
                    :options="optionss"
                    :props="propss"
                    clearable
                  ></el-cascader>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="备注">
                  <el-input
                    v-model="form.remark"
                    type="textarea"
                    placeholder="请输入内容"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </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>
      </div>
    </div>
    <!-- æ·»åŠ ç±»åˆ«å¼¹æ¡† -->
    <el-dialog width="30%" :visible.sync="dialogFormVisible">
      <el-form :model="sidecolumnform">
        <el-form-item label="请输入类别名称">
          <el-input v-model="form.name" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="submitsidecolumn">ç¡® å®š</el-button>
      </div>
    </el-dialog>
    <!-- äºŒç»´ç å±•示弹框 -->
    <el-dialog width="30%" :visible.sync="goQRCodeVisible">
      <div class="qrcode-dialo">
        <div class="qrcode-text">
          {{ nameeducation }}<span>{{ haoeducation }}</span>
        </div>
        <div class="qrcode-img"></div>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import {
  listUser,
  getUser,
  delUser,
  addUser,
  updateUser,
} from "@/api/system/user";
import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
  name: "education",
  dicts: ["sys_normal_disable", "sys_user_sex"],
  components: { Treeselect },
  data() {
    return {};
    return {
      topactiveName: "Local", //顶部选择
      // é®ç½©å±‚
      loading: false,
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•个禁用
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      nameeducation: "",
      haoeducation: "",
      // ç”¨æˆ·è¡¨æ ¼æ•°æ®
      userList: [
        {
          userid: 1,
          userName: "三号宣教",
          nickName: "1.2.4",
          aphonenumber: "关节炎症",
          bphonenumber: "很棒",
          cphonenumber: "2022-12-12",
        },
      ],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æ—¥æœŸèŒƒå›´
      dateRange: [],
      // å²—位选项
      postOptions: [],
      // è§’色选项
      roleOptions: [],
      // è¡¨å•参数
      form: {},
      numberlb: 22,
      numberlbs: 2,
      sidecolumnform: {}, //添加类别表单
      dialogFormVisible: false, //添加类别弹框
      goQRCodeVisible: false, //二维码弹框
      sidecolumnval: "", //类别搜索
      propss: { multiple: true },
      optionss: [
        {
          value: 1,
          label: "东南",
        },
        {
          value: 2,
          label: "西北",
        },
        {
          value: 3,
          label: "仨仨仨",
        },
        {
          value: 4,
          label: "六飒飒飒",
        },
      ],
      xjxsoptions: [
        {
          value: 1,
          label: "视频",
        },
        {
          value: 2,
          label: "讲座",
        },
        {
          value: 3,
          label: "语音",
        },
      ],
      //类别列表
      editableTabs: [
        {
          title: "宣教分类一",
          number: "1",
        },
        {
          title: "宣教分类二",
          number: "2",
        },
        {
          title: "宣教分类三",
          number: "2",
        },
        {
          title: "宣教分类四",
          number: "2",
        },
        {
          title: "宣教分类五",
          number: "2",
        },
      ],
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        sickness: "",
        classifyvalue: "",
        shapevalue: "",
        userName: undefined,
      },
      // åˆ—信息
      columns: [
        { key: 0, label: `用户编号`, visible: true },
        { key: 1, label: `用户名称`, visible: true },
        { key: 2, label: `用户昵称`, visible: true },
        { key: 3, label: `部门`, visible: true },
        { key: 4, label: `手机号码`, visible: true },
        { key: 5, label: `状态`, visible: true },
        { key: 6, label: `创建时间`, visible: true },
      ],
      // è¡¨å•校验
      rules: {
        userName: [
          { required: true, message: "用户名称不能为空", trigger: "blur" },
          {
            min: 2,
            max: 20,
            message: "用户名称长度必须介于 2 å’Œ 20 ä¹‹é—´",
            trigger: "blur",
          },
        ],
        nickName: [
          { required: true, message: "用户昵称不能为空", trigger: "blur" },
        ],
        password: [
          { required: true, message: "用户密码不能为空", trigger: "blur" },
          {
            min: 5,
            max: 20,
            message: "用户密码长度必须介于 5 å’Œ 20 ä¹‹é—´",
            trigger: "blur",
          },
        ],
        email: [
          {
            type: "email",
            message: "请输入正确的邮箱地址",
            trigger: ["blur", "change"],
          },
        ],
        phonenumber: [
          {
            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
            message: "请输入正确的手机号码",
            trigger: "blur",
          },
        ],
        IDnumber: [
          {
            pattern:
              /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
            message: "请输入正确的身份证号码",
            trigger: "blur",
          },
        ],
      },
    };
  },
  watch: {},
  created() {
    this.getList();
  },
  created() {},
  methods: {
    /** æŸ¥è¯¢ç”¨æˆ·åˆ—表 */
    getList() {
      //   this.loading = true;
      listUser().then((response) => {
        console.log(response);
        // this.userList = response.data;
        // this.total = response.total;
        // this.loading = false;
        console.log(this.userList);
      });
      //   const { rows } = await listUser();
      //   console.log(rows);
      //   this.list = rows;
    },
    // æ·»åŠ ç±»åˆ«
    submitsidecolumn() {
      this.dialogFormVisible = false;
    },
    //搜索类别
    sidecolumnss() {},
    // åˆ‡æ¢å…±äº«/本地
    tophandleClick() {},
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    goQRCode(row) {
      this.goQRCodeVisible = true;
      this.nameeducation = row.userName;
      this.haoeducation = row.nickName;
    },
    // è¡¨å•重置
    reset() {
      this.form = {
        userId: undefined,
        deptId: undefined,
        userName: undefined,
        nickName: undefined,
        password: undefined,
        phonenumber: undefined,
        email: undefined,
        sex: undefined,
        status: "0",
        remark: undefined,
        postIds: [],
        roleIds: [],
      };
      this.resetForm("form");
    },
    /** æœç´¢æŒ‰é’®æ“ä½œ */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** é‡ç½®æŒ‰é’®æ“ä½œ */
    resetQuery() {
      this.dateRange = [];
      this.resetForm("queryForm");
      this.queryParams.deptId = undefined;
      this.$refs.tree.setCurrentKey(null);
      this.handleQuery();
    },
    // å¤šé€‰æ¡†é€‰ä¸­æ•°æ®
    handleSelectionChange(selection) {
      this.ids = selection.map((item) => item.userId);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
    },
    /** æ–°å¢žæŒ‰é’®æ“ä½œ */
    handleAdd() {
      this.$router.push({
        path: "/knowledge/education/compilequer/",
      });
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      this.$router.push({
        path: "/knowledge/education/compilequer/",
        query: { id: "1" },
      });
    },
    // æŸ¥çœ‹å®£æ•™
    Vieweducation() {
      this.$router.push({
        path: "/knowledge/education/examine/",
        query: { id: "1" },
      });
    },
  methods: {},
    /** æ›´æ–°/修改提交按钮 */
    submitForm: function () {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          if (this.form.userId != undefined) {
            updateUser(this.form).then((response) => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addUser(this.form).then((response) => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const userIds = row.userId || this.ids;
      this.$modal
        .confirm('是否确认删除用户编号为"' + userIds + '"的数据项?')
        .then(function () {
          return delUser(userIds);
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => {});
    },
  },
};
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.educationmanagement {
  display: flex;
}
.sidecolumn {
  width: 300px;
  min-height: 100vh;
  text-align: center;
  //   display: flex;
  margin-top: 20px;
  margin: 20px;
  padding: 30px;
  background: #edf1f7;
  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);
  .sidecolumn-top {
    display: flex;
    justify-content: space-between;
    .top-wj {
      font-size: 20px;
    }
    .top-tj {
      font-size: 18px;
      color: rgb(0, 89, 255);
      cursor: pointer;
    }
  }
  .center-ss {
    margin-top: 30px;
    .input-with-select {
      height: 40px !important;
    }
  }
  .bottom-fl {
    margin-top: 30px;
    display: center !important;
  }
}
.qrcode-dialo {
  text-align: center;
  //   display: flex;
  margin: 20px;
  padding: 30px;
  background: #edf1f7;
  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);
  .qrcode-text {
    font-size: 20px;
    span {
      margin-left: 20px;
    }
  }
  .qrcode-img {
    width: 300px;
    height: 400px;
  }
}
::v-deep.el-tabs--left,
.el-tabs--right {
  overflow: hidden;
  align-items: center;
  display: flex;
}
::v-deep.el-input--medium .el-input__inner {
  height: 40px !important;
}
::v-deep.el-tabs--right .el-tabs__active-bar.is-right {
  height: 40px;
  width: 5px;
  left: 0;
}
::v-deep.el-tabs--right .el-tabs__item.is-right {
  display: block;
  font-size: 20px;
}
.leftvlue {
  //   display: flex;
  //   flex: 1;
  width: 80%;
  margin-top: 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);
  .mulsz {
    font-size: 20px;
  }
}
.button-text {
  color: rgb(70, 204, 238);
}
.button-textck {
  color: rgb(39, 167, 67);
}
.button-textxg {
  color: rgb(35, 81, 233);
}
.button-textsc {
  color: rgb(235, 23, 23);
}
</style>
src/views/patient/patient/index.vue
@@ -622,6 +622,7 @@
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        name: "王大",
        pageSize: 10,
        userName: undefined,
        phonenumber: undefined,
@@ -890,7 +891,7 @@
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download(
        "system/user/export",
        "smartor/patarchive/export",
        {
          ...this.queryParams,
        },
src/views/system/label/index.vue
@@ -171,9 +171,7 @@
              >
                <template slot-scope="scope">
                  <el-switch
                    v-model="scope.row.status"
                    active-value="0"
                    inactive-value="1"
                    v-model="scope.row.delivery"
                    @change="handleStatusChange(scope.row)"
                  ></el-switch>
                </template>
@@ -217,109 +215,6 @@
            />
          </el-col>
        </el-row>
        <!-- æ·»åŠ æˆ–ä¿®æ”¹é—®å·é…ç½®å¯¹è¯æ¡† -->
        <el-dialog
          :title="title"
          :visible.sync="open"
          width="900px"
          append-to-body
        >
          <el-form ref="form" :model="form" :rules="rules" label-width="100px">
            <el-row>
              <el-col :span="12">
                <el-form-item label="姓名" prop="nickName">
                  <el-input
                    v-model="form.nickName"
                    placeholder="请输入姓名"
                    maxlength="30"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="性别" prop="deptId">
                  <el-select v-model="form.sex" placeholder="请选择性别">
                    <el-option
                      v-for="dict in dict.type.sys_user_sex"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="证件类型" prop="phonenumber">
                  <el-input
                    v-model="form.phonenumber"
                    placeholder="请选择证件类型"
                    maxlength="11"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="证件号" prop="email">
                  <el-input
                    v-model="form.email"
                    placeholder="请输入证件号"
                    maxlength="50"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="本人手机号" prop="userName">
                  <el-input
                    v-model="form.userName"
                    placeholder="请输入手机号"
                    maxlength="30"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="亲属手机号" prop="password">
                  <el-input
                    v-model="form.password"
                    placeholder="请输入亲属手机号"
                    type="password"
                    maxlength="20"
                    show-password
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="患者标签">
                  <el-cascader
                    :options="optionss"
                    :props="propss"
                    clearable
                  ></el-cascader>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="备注">
                  <el-input
                    v-model="form.remark"
                    type="textarea"
                    placeholder="请输入内容"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </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>
      </div>
    </div>
    <!-- æ·»åŠ ç±»åˆ«å¼¹æ¡† -->
@@ -332,7 +227,10 @@
        <el-form-item
          :label="amendtag ? '请输入新的类别名称' : '请输入类别名称'"
        >
          <el-input v-model="form.name" autocomplete="off"></el-input>
          <el-input
            v-model="sidecolumnform.classesname"
            autocomplete="off"
          ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
@@ -418,18 +316,20 @@
      scavisible: false, //删除弹框
      deleteVisible: false, //分类删除弹框
      deletefenl: "高血压", //删除项
      //修改添加标签弹框数据
      tagform: {
        delivery: "",
        name: "",
        desc: "",
      },
      // ç”¨æˆ·è¡¨æ ¼æ•°æ®
      // æ ‡ç­¾è¡¨æ ¼æ•°æ®
      userList: [
        {
          userid: 1,
          userId: 1,
          userName: "三号",
          nickName: "1.2.4",
          aphonenumber: "关节炎症",
          delivery: true,
          aphonenumbers: "",
          bphonenumber: "很棒",
          cphonenumber: "2022-12-12 ",
@@ -449,7 +349,9 @@
      form: {},
      numberlb: 22,
      numberlbs: 2,
      sidecolumnform: {}, //添加类别表单
      sidecolumnform: {
        classesname: "",
      }, //添加类别表单
      dialogFormVisible: false, //添加、修改类别弹框
      lstamendtagVisible: false, //添加、修改标签弹框
      goQRCodeVisible: false, //二维码弹框
@@ -583,6 +485,11 @@
    // æ·»åŠ ç±»åˆ«
    submitsidecolumn() {
      this.dialogFormVisible = false;
      this.tagform = {
        delivery: "",
        name: "",
        desc: "",
      };
    },
    // ä¿®æ”¹å¼¹æ¡†
    popoveramend() {
@@ -652,8 +559,14 @@
    },
    /** ä¿®æ”¹æ ‡ç­¾ */
    handleUpdate(row) {
      console.log(row, "修改标签");
      this.lstamendtagVisible = true;
      this.lstamendtag = true;
      this.tagform = {
        delivery: row.delivery,
        name: row.userName,
        desc: row.bphonenumber,
      };
    },
    // æŸ¥çœ‹é—®å·
    ViewQuestionnaire() {
@@ -685,9 +598,15 @@
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      console.log(row, "删除弹窗");
      const userIds = row.userId || this.ids;
      const aphonenumber = row.aphonenumber;
      this.$modal
        .confirm('是否确认删除用户编号为"' + userIds + '"的数据项?')
        .confirm(
          aphonenumber
            ? '是否确认删除标签名称为"' + aphonenumber + '"的数据项?'
            : "是否确认删除选中的数据项?"
        )
        .then(function () {
          return delUser(userIds);
        })