<template> 
 | 
  <div class="Questionnairemanagement"> 
 | 
    <!-- 左侧栏 --> 
 | 
    <div class="sidecolumn"> 
 | 
      <div class="notebuttom" @click="handleAdd"> 
 | 
        <i class="el-icon-chat-dot-square" />发短信 
 | 
      </div> 
 | 
      <el-divider></el-divider> 
 | 
      <div class="notestate"> 
 | 
        <div class="state-text">短信状态</div> 
 | 
        <div 
 | 
          :class="classestag == 1 ? 'state-lines' : 'state-line'" 
 | 
          @click="completefn" 
 | 
        > 
 | 
          <div class="value-left"><i class="el-icon-menu" />全部</div> 
 | 
          <div class="quantityq">22</div> 
 | 
        </div> 
 | 
        <div 
 | 
          :class="classestag == 2 ? 'state-lines' : 'state-line'" 
 | 
          @click="succeedfn" 
 | 
        > 
 | 
          <div class="value-left"> 
 | 
            <i class="el-icon-circle-check" />发送成功 
 | 
          </div> 
 | 
          <div class="quantitycg">22</div> 
 | 
        </div> 
 | 
        <div 
 | 
          :class="classestag == 3 ? 'state-lines' : 'state-line'" 
 | 
          @click="losefn" 
 | 
        > 
 | 
          <div class="value-left"> 
 | 
            <i class="el-icon-warning-outline" />发送失败 
 | 
          </div> 
 | 
          <div class="quantitysb">22</div> 
 | 
        </div> 
 | 
        <div 
 | 
          :class="classestag == 4 ? 'state-lines' : 'state-line'" 
 | 
          @click="awaitfn" 
 | 
        > 
 | 
          <div class="value-left"><i class="el-icon-s-help" />待随访</div> 
 | 
          <div class="quantityd">22</div> 
 | 
        </div> 
 | 
      </div> 
 | 
    </div> 
 | 
    <!-- 右侧数据 --> 
 | 
    <div class="leftvlue"> 
 | 
      <div class="leftvlue-top">短信详情({{ total }})</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="上传日期"> 
 | 
                <el-date-picker 
 | 
                  v-model="dateRange" 
 | 
                  style="width: 240px" 
 | 
                  value-format="yyyy-MM-dd" 
 | 
                  type="daterange" 
 | 
                  range-separator="-" 
 | 
                  start-placeholder="开始日期" 
 | 
                  end-placeholder="结束日期" 
 | 
                ></el-date-picker> 
 | 
              </el-form-item> 
 | 
              <el-form-item label="短信类型" prop="status"> 
 | 
                <el-select v-model="queryParams.status" placeholder="请选择"> 
 | 
                  <el-option 
 | 
                    v-for="item in languagelist" 
 | 
                    :key="item.value" 
 | 
                    :label="item.label" 
 | 
                    :value="item.value" 
 | 
                  > 
 | 
                  </el-option> 
 | 
                </el-select> 
 | 
              </el-form-item> 
 | 
              <el-form-item label="操作用户" prop="status"> 
 | 
                <el-select v-model="queryParams.statusa" placeholder="请选择"> 
 | 
                  <el-option 
 | 
                    v-for="item in qyoptions" 
 | 
                    :key="item.value" 
 | 
                    :label="item.label" 
 | 
                    :value="item.value" 
 | 
                  > 
 | 
                  </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> 
 | 
            <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="transmitleg" 
 | 
                prop="transmitleg" 
 | 
              /><el-table-column 
 | 
                label="接收人" 
 | 
                align="center" 
 | 
                key="bphonenumber" 
 | 
                prop="bphonenumber" 
 | 
                width="120" 
 | 
              /> 
 | 
              <el-table-column 
 | 
                label="上传时间" 
 | 
                align="center" 
 | 
                prop="createTime" 
 | 
                width="160" 
 | 
              > 
 | 
                <template slot-scope="scope"> 
 | 
                  <span>{{ formatTime(scope.row.createTime) }}</span> 
 | 
                </template> </el-table-column 
 | 
              ><el-table-column 
 | 
                label="发送时间" 
 | 
                align="center" 
 | 
                prop="createTime" 
 | 
                width="160" 
 | 
              > 
 | 
                <template slot-scope="scope"> 
 | 
                  <span>{{ formatTime(scope.row.createTime) }}</span> 
 | 
                </template> 
 | 
              </el-table-column> 
 | 
              <el-table-column 
 | 
                label="发送内容" 
 | 
                align="center" 
 | 
                key="sendvalue" 
 | 
                prop="sendvalue" 
 | 
                width="300" 
 | 
                :show-overflow-tooltip="true" 
 | 
              /> 
 | 
              <el-table-column 
 | 
                label="发送状态" 
 | 
                align="center" 
 | 
                key="state" 
 | 
                prop="state" 
 | 
              > 
 | 
                <template slot-scope="scope"> 
 | 
                  <div 
 | 
                    v-if="scope.row.state == 1" 
 | 
                    style="color: rgb(58, 250, 144)" 
 | 
                  > 
 | 
                    <i class="el-icon-check"></i> 
 | 
                  </div> 
 | 
                  <div 
 | 
                    v-else-if="scope.row.state == 2" 
 | 
                    style="color: rgb(250, 96, 58)" 
 | 
                  > 
 | 
                    <i class="el-icon-check"></i> 
 | 
                  </div> 
 | 
                </template> 
 | 
              </el-table-column> 
 | 
  
 | 
              <el-table-column 
 | 
                label="操作" 
 | 
                align="center" 
 | 
                class-name="small-padding fixed-width" 
 | 
              > 
 | 
                <template slot-scope="scope"> 
 | 
                  <el-button 
 | 
                    size="medium" 
 | 
                    type="text" 
 | 
                    @click="handleUpdate(scope.row)" 
 | 
                    v-hasPermi="['system:user:edit']" 
 | 
                    ><span class="button-textxg" 
 | 
                      ><i class="el-icon-edit-outline"></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="indexopen" 
 | 
          width="900px" 
 | 
          append-to-body 
 | 
        > 
 | 
          <el-form 
 | 
            ref="form" 
 | 
            :model="indexform" 
 | 
            :rules="rules" 
 | 
            label-width="100px" 
 | 
          > 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="语言" prop="deptId"> 
 | 
                  <el-select 
 | 
                    v-model="indexform.language" 
 | 
                    placeholder="请选择语言" 
 | 
                  > 
 | 
                    <el-option 
 | 
                      v-for="index in languagelist" 
 | 
                      :key="index.value" 
 | 
                      :label="index.label" 
 | 
                      :value="index.value" 
 | 
                    ></el-option> 
 | 
                  </el-select> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="短信主旨" prop="nickName"> 
 | 
                  <el-input 
 | 
                    v-model="indexform.nickName" 
 | 
                    placeholder="请输入短信主旨" 
 | 
                    maxlength="80" 
 | 
                  /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <div 
 | 
                  style="display: flex; margin-left: 100px; margin-bottom: 10px" 
 | 
                > 
 | 
                  <div class="tsgname" @click="tsgnameto()">医院名称</div> 
 | 
                  <div class="tsgname" @click="tsgnameto()">医院电话</div> 
 | 
                  <div class="tsgname" @click="tsgnameto()">医院姓名</div> 
 | 
                  <div class="tsgname" @click="tsgnameto()">随访姓名</div> 
 | 
                  <div class="tsgname" @click="tsgnameto()">随访电话</div> 
 | 
                  <div class="tsgname" @click="tsgnameto()">性别</div> 
 | 
                  <div class="tsgname" @click="tsgnameto()">年龄</div> 
 | 
                  <div class="tsgname" @click="tsgnameto()">地址</div> 
 | 
                </div> 
 | 
              </el-col></el-row 
 | 
            > 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="短信文本" prop="verbaltricktext"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="短信语音" prop="verbaltrickyy"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="无匹配文本" prop="matchtext"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="无匹配语音" prop="matchyy"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="无声文本" prop="silenttext"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="无声语音" prop="silentyy"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="通用库文本" prop="librarytext"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="通用库语音" prop="libraryy"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="听不清文本" prop="vaguetext"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="听不清语音" prop="vagueyy"> 
 | 
                  <el-input v-model="indexform.userName" maxlength="30" /> 
 | 
                </el-form-item> </el-col 
 | 
            ></el-row> 
 | 
  
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="短信规则" prop="email"> 
 | 
                  <el-input 
 | 
                    v-model="indexform.remark" 
 | 
                    type="textarea" 
 | 
                    placeholder="请输入内容" 
 | 
                  ></el-input> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="是否启用"> 
 | 
                  <el-radio-group v-model="indexform.qystatus"> 
 | 
                    <el-radio 
 | 
                      v-for="item in qyoptions" 
 | 
                      :key="item.value" 
 | 
                      :label="item.value" 
 | 
                      >{{ item.label }}</el-radio 
 | 
                    > 
 | 
                  </el-radio-group> 
 | 
                </el-form-item> 
 | 
              </el-col> 
 | 
            </el-row> 
 | 
  
 | 
            <el-row> 
 | 
              <el-col :span="24"> 
 | 
                <el-form-item label="备注"> 
 | 
                  <el-input 
 | 
                    v-model="indexform.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 
 | 
      :title="amendtag ? '修改类别' : '新增类别'" 
 | 
      width="30%" 
 | 
      :visible.sync="dialogFormVisible" 
 | 
    > 
 | 
      <el-form :model="classifyform"> 
 | 
        <el-form-item 
 | 
          :label="amendtag ? '请输入新的类别名称' : '请输入类别名称'" 
 | 
        > 
 | 
          <el-input 
 | 
            v-model="classifyform.categoryname" 
 | 
            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 title="警告" :visible.sync="deleteVisible" width="40%"> 
 | 
      <div style="font-size: 20px; color: rgb(247, 76, 76)"> 
 | 
        是否确认删除分类:[<span>{{ deletefenl }}</span 
 | 
        >]? 
 | 
      </div> 
 | 
      <div style="font-size: 20px"> 
 | 
        此操作会将该类别下所有模块转移至[未分类],是否继续删除此分类? 
 | 
      </div> 
 | 
      <span slot="footer" class="dialog-footer"> 
 | 
        <el-button @click="deleteVisible = false">取 消</el-button> 
 | 
        <el-button type="primary" @click="deletefenlei">确 定</el-button> 
 | 
      </span> 
 | 
    </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: "questionnaire", 
 | 
  dicts: ["sys_normal_disable", "sys_user_sex"], 
 | 
  components: { Treeselect }, 
 | 
  data() { 
 | 
    return { 
 | 
      // 遮罩层 
 | 
      loading: false, 
 | 
      // 选中数组 
 | 
      ids: [], 
 | 
      // 非单个禁用 
 | 
      single: true, 
 | 
      // 非多个禁用 
 | 
      multiple: true, 
 | 
      // 显示搜索条件 
 | 
      showSearch: true, 
 | 
      // 总条数 
 | 
      total: 0, 
 | 
      classestag: 1, //类别标识 
 | 
      namequestionnaire: "", 
 | 
      haoquestionnaire: "", 
 | 
      idds: "", 
 | 
      amendtag: false, //是否修改类别 
 | 
      dialogFormVisible: false, //修改添加类别弹框 
 | 
      deleteVisible: false, //分类删除弹框 
 | 
      deletefenl: "高血压", //删除项 
 | 
      classifyform: { 
 | 
        categoryname: "", 
 | 
      }, //类别表单 
 | 
      // 表格数据 
 | 
      userList: [ 
 | 
        { 
 | 
          userid: 1, 
 | 
          userName: "血常规、尿常规", 
 | 
          nickName: "贫血", 
 | 
          aphonenumber: "(?!不.*|没.*|未.*)^.*([贫平凭血]|贫血|评学|评学),10", 
 | 
          bphonenumber: "选择", 
 | 
          cphonenumber: "普通话", 
 | 
          status: "0", 
 | 
        }, 
 | 
      ], 
 | 
      // 弹出层标题 
 | 
      title: "", 
 | 
      // 是否显示弹出层 
 | 
      open: false, 
 | 
      // 日期范围 
 | 
      dateRange: [], 
 | 
      // 岗位选项 
 | 
      postOptions: [], 
 | 
      // 角色选项 
 | 
      roleOptions: [], 
 | 
      // 添加、修改参数 
 | 
      indexform: {}, 
 | 
      numberlb: 22, 
 | 
      numberlbs: 2, 
 | 
      sidecolumnform: {}, //添加类别表单 
 | 
      dialogFormVisible: false, //添加类别弹框 
 | 
      sidecolumnval: "", //类别搜索 
 | 
      indexopen: false, //弹框展示否 
 | 
      propss: { multiple: true }, 
 | 
      languagelist: [ 
 | 
        { 
 | 
          value: 1, 
 | 
          label: "全部", 
 | 
        }, 
 | 
        { 
 | 
          value: 2, 
 | 
          label: "出院病情随访", 
 | 
        }, 
 | 
        { 
 | 
          value: 3, 
 | 
          label: "语音随访后短信", 
 | 
        }, 
 | 
        { 
 | 
          value: 4, 
 | 
          label: "医生随访后短信", 
 | 
        }, 
 | 
      ], //语言列表 
 | 
      qyoptions: [ 
 | 
        { 
 | 
          value: 1, 
 | 
          label: "启用", 
 | 
        }, 
 | 
        { 
 | 
          value: 2, 
 | 
          label: "关闭", 
 | 
        }, 
 | 
      ], 
 | 
      //类别列表 
 | 
      editableTabs: [ 
 | 
        { 
 | 
          title: "短信分类一", 
 | 
          number: "1", 
 | 
        }, 
 | 
        { 
 | 
          title: "短信分类二", 
 | 
          number: "2", 
 | 
        }, 
 | 
        { 
 | 
          title: "短信分类三", 
 | 
          number: "2", 
 | 
        }, 
 | 
        { 
 | 
          title: "短信分类四", 
 | 
          number: "2", 
 | 
        }, 
 | 
        { 
 | 
          title: "短信分类五", 
 | 
          number: "2", 
 | 
        }, 
 | 
      ], 
 | 
      // 查询参数 
 | 
      queryParams: { 
 | 
        pageNum: 1, 
 | 
        pageSize: 10, 
 | 
        userName: undefined, 
 | 
        phonenumber: undefined, 
 | 
        status: undefined, 
 | 
        deptId: undefined, 
 | 
        IDnumber: undefined, 
 | 
      }, 
 | 
      // 表单校验 
 | 
      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(); 
 | 
  }, 
 | 
  
 | 
  methods: { 
 | 
    /** 查询用户列表 */ 
 | 
    getList() { 
 | 
      //   this.loading = true; 
 | 
      listUser().then((response) => { 
 | 
        console.log(response); 
 | 
        console.log(this.userList); 
 | 
      }); 
 | 
    }, 
 | 
    // const { pageNum, pageSize, ...params } = this.queryParams; 
 | 
    submitsidecolumn() {}, 
 | 
    deletefenlei() {}, 
 | 
    // 便捷标签 
 | 
    tsgnameto() {}, 
 | 
    // 切换共享/本地 
 | 
    tophandleClick() {}, 
 | 
    // 取消按钮 
 | 
    cancel() { 
 | 
      this.indexopen = false; 
 | 
      this.reset(); 
 | 
    }, 
 | 
  
 | 
    // 表单重置 
 | 
    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("/shortmessage/messagebank/compile/"); 
 | 
    }, 
 | 
    /** 修改按钮操作 */ 
 | 
    handleUpdate(row) { 
 | 
      this.reset(); 
 | 
      this.title = "修改短信"; 
 | 
      this.indexopen = true; 
 | 
    }, 
 | 
    // 修改分类弹框 
 | 
    popoveramend(tagcategoryid) { 
 | 
      this.idds = tagcategoryid; 
 | 
      this.amendtag = true; 
 | 
      this.dialogFormVisible = true; 
 | 
    }, 
 | 
  
 | 
    /** 更新/修改提交按钮 */ 
 | 
    submitForm: function () { 
 | 
      this.$refs["form"].validate((valid) => { 
 | 
        if (valid) { 
 | 
          if (this.form.userId != undefined) { 
 | 
            updateUser(this.form).then((response) => { 
 | 
              this.$modal.msgSuccess("修改成功"); 
 | 
              this.indexopen = false; 
 | 
              this.getList(); 
 | 
            }); 
 | 
          } else { 
 | 
            addUser(this.form).then((response) => { 
 | 
              this.$modal.msgSuccess("新增成功"); 
 | 
              this.indexopen = 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(() => {}); 
 | 
    }, 
 | 
    // 切换全部类别 
 | 
    completefn() { 
 | 
      this.classestag = 1; 
 | 
    }, 
 | 
    // 切换成功类别 
 | 
    succeedfn() { 
 | 
      this.classestag = 2; 
 | 
    }, 
 | 
    // 切换失败类别 
 | 
    losefn() { 
 | 
      this.classestag = 3; 
 | 
    }, 
 | 
    // 切换待随访类别 
 | 
    awaitfn() { 
 | 
      this.classestag = 4; 
 | 
    }, 
 | 
  }, 
 | 
}; 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.Questionnairemanagement { 
 | 
  display: flex; 
 | 
} 
 | 
.sidecolumn { 
 | 
  width: 350px; 
 | 
  min-height: 100vh; 
 | 
  text-align: center; 
 | 
  //   display: flex; 
 | 
  margin-top: 20px; 
 | 
  margin: 20px; 
 | 
  padding: 10px; 
 | 
  padding-top: 20px; 
 | 
  text-align: center; 
 | 
  background: #dfeffd; 
 | 
  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); 
 | 
  .notebuttom { 
 | 
    height: 35px; 
 | 
    background: #85c046; 
 | 
    color: #ffff; 
 | 
    font-size: 20px; 
 | 
    line-height: 35px; 
 | 
    cursor: pointer; 
 | 
    border-radius: 3px; 
 | 
  } 
 | 
  .notestate { 
 | 
    font-size: 20px; 
 | 
    .state-text { 
 | 
      height: 40px; 
 | 
    } 
 | 
    .state-line { 
 | 
      display: flex; 
 | 
      height: 40px; 
 | 
      align-items: center; 
 | 
      padding: 10px 10px; 
 | 
      cursor: pointer; 
 | 
      justify-content: space-between; 
 | 
    } 
 | 
    .state-lines { 
 | 
      display: flex; 
 | 
      height: 40px; 
 | 
      align-items: center; 
 | 
      padding: 10px 10px; 
 | 
      background: #88abfc; 
 | 
      color: #fff; 
 | 
      cursor: pointer; 
 | 
      justify-content: space-between; 
 | 
    } 
 | 
    .state-line:hover { 
 | 
      background: #88abfc; 
 | 
    } 
 | 
    .quantityq { 
 | 
      height: 30px; 
 | 
      line-height: 30px; 
 | 
      padding: 0 5px; 
 | 
      border-radius: 10px; 
 | 
      color: #fff; 
 | 
      background: #9eb8ff; 
 | 
    } 
 | 
    .quantitycg { 
 | 
      height: 30px; 
 | 
      line-height: 30px; 
 | 
      padding: 0 5px; 
 | 
      border-radius: 10px; 
 | 
      color: #fff; 
 | 
  
 | 
      background: #48cf2d; 
 | 
    } 
 | 
    .quantitysb { 
 | 
      height: 30px; 
 | 
      line-height: 30px; 
 | 
      padding: 0 5px; 
 | 
      border-radius: 10px; 
 | 
      color: #fff; 
 | 
  
 | 
      background: #ce513b; 
 | 
    } 
 | 
    .quantityd { 
 | 
      height: 30px; 
 | 
      line-height: 30px; 
 | 
      padding: 0 5px; 
 | 
      border-radius: 10px; 
 | 
      color: #fff; 
 | 
  
 | 
      background: #3fbff1; 
 | 
    } 
 | 
  } 
 | 
} 
 | 
[class^="el-icon-"], 
 | 
[class*=" el-icon-"] { 
 | 
  font-weight: 600; 
 | 
  font-size: 20px; 
 | 
} 
 | 
.tsgname { 
 | 
  width: 90px; 
 | 
  margin-right: 10px; 
 | 
  text-align: center; 
 | 
  cursor: pointer; 
 | 
  height: 40px; 
 | 
  line-height: 40px; 
 | 
  background: #7799fa; 
 | 
  color: #ffff; 
 | 
  font-size: 18px; 
 | 
  border-radius: 5px; 
 | 
} 
 | 
.tsgname:hover { 
 | 
  background: #3366f5; 
 | 
} 
 | 
::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-bji { 
 | 
  color: rgb(39, 167, 67); 
 | 
} 
 | 
.button-textxg { 
 | 
  color: rgb(35, 81, 233); 
 | 
} 
 | 
.button-textsc { 
 | 
  color: rgb(235, 23, 23); 
 | 
} 
 | 
</style> 
 |