<template> 
 | 
  <div class="app-container"> 
 | 
    <el-row :gutter="20"> 
 | 
      <!--用户数据--> 
 | 
      <el-col :span="24" :xs="24"> 
 | 
        <el-form 
 | 
          :model="topqueryParams" 
 | 
          ref="queryForm" 
 | 
          size="small" 
 | 
          :inline="true" 
 | 
          v-show="showSearch" 
 | 
          label-width="98px" 
 | 
        > 
 | 
          <el-form-item label="投诉类型" prop="status"> 
 | 
            <el-select v-model="topqueryParams.topic" placeholder="请选择"> 
 | 
              <el-option 
 | 
                v-for="item in topicoptions" 
 | 
                :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="topqueryParams.topic" placeholder="请选择"> 
 | 
              <el-option 
 | 
                v-for="item in topicoptions" 
 | 
                :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-divider></el-divider> 
 | 
        <el-row :gutter="10" class="mb8"> 
 | 
          <el-col :span="1.5"> 
 | 
            <el-button 
 | 
              type="primary" 
 | 
              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="success" 
 | 
              plain 
 | 
              icon="el-icon-edit" 
 | 
              size="medium" 
 | 
              :disabled="single" 
 | 
              @click="handleUpdate" 
 | 
              v-hasPermi="['system:user:edit']" 
 | 
              >修改</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="19"> 
 | 
            <div class="documentf"> 
 | 
              <div class="document"> 
 | 
                <el-button 
 | 
                  type="warning" 
 | 
                  plain 
 | 
                  icon="el-icon-download" 
 | 
                  size="medium" 
 | 
                  @click="handleExport" 
 | 
                  v-hasPermi="['system:user:export']" 
 | 
                  >导出</el-button 
 | 
                > 
 | 
              </div> 
 | 
            </div> 
 | 
          </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" 
 | 
          @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" 
 | 
            sortable 
 | 
            key="userName" 
 | 
            prop="userName" 
 | 
             width="100" 
 | 
            :show-overflow-tooltip="true" 
 | 
          /> 
 | 
          <el-table-column 
 | 
            label="手机号" 
 | 
            align="center" 
 | 
            key="types" 
 | 
            prop="types" 
 | 
          /> 
 | 
          <el-table-column 
 | 
            label="性别"width="100" 
 | 
            align="center" 
 | 
            key="nickName" 
 | 
            prop="nickName" 
 | 
          /> 
 | 
          <el-table-column 
 | 
            label="投诉方式" 
 | 
            align="center" 
 | 
            key="phonenumber" 
 | 
            prop="phonenumber" 
 | 
            width="120" 
 | 
          /> 
 | 
  
 | 
          <el-table-column 
 | 
            label="投诉对象" 
 | 
            align="center" 
 | 
            key="topicnumber" 
 | 
            prop="topicnumber" 
 | 
            width="120" 
 | 
            :show-overflow-tooltip="true" 
 | 
          /> 
 | 
          <el-table-column 
 | 
            label="级别" 
 | 
            align="center" 
 | 
            key="topicnumberaa" 
 | 
            prop="topicnumberaa" 
 | 
            sortable 
 | 
            width="120" 
 | 
            :show-overflow-tooltip="true" 
 | 
          /> 
 | 
  
 | 
          <el-table-column 
 | 
            label="投诉日期" 
 | 
            sortable 
 | 
            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" 
 | 
            width="160" 
 | 
            class-name="small-padding fixed-width" 
 | 
          > 
 | 
            <template slot-scope="scope"> 
 | 
              <el-button 
 | 
                size="medium" 
 | 
                type="text" 
 | 
                icon="el-icon-edit" 
 | 
                @click="handleUpdate(scope.row)" 
 | 
                v-hasPermi="['system:user:edit']" 
 | 
                >修改</el-button 
 | 
              > 
 | 
            </template> 
 | 
          </el-table-column> 
 | 
        </el-table> 
 | 
  
 | 
        <pagination 
 | 
          v-show="total > 0" 
 | 
          :total="total" 
 | 
          :page.sync="topqueryParams.pageNum" 
 | 
          :limit.sync="topqueryParams.pageSize" 
 | 
          @pagination="getList" 
 | 
        /> 
 | 
      </el-col> 
 | 
    </el-row> 
 | 
    <!-- 添加或修改投诉对话框 --> 
 | 
    <el-dialog 
 | 
      :title="title" 
 | 
      :visible.sync="addalteropen" 
 | 
      width="900px" 
 | 
      append-to-body 
 | 
    > 
 | 
      <el-form ref="form" :model="form" label-width="80px"> 
 | 
        <el-row :gutter="20"> 
 | 
          <el-col :span="12" 
 | 
            ><el-form-item label="病人姓名"> 
 | 
              <el-input v-model="form.name"></el-input> </el-form-item 
 | 
          ></el-col> 
 | 
          <el-col :span="12" 
 | 
            ><el-form-item label="性别"width="100"> 
 | 
              <el-radio v-model="form.radio" label="1">男</el-radio> 
 | 
              <el-radio v-model="form.radio" label="2">女</el-radio> 
 | 
              <el-radio v-model="form.radio" label="3">未知</el-radio> 
 | 
            </el-form-item></el-col 
 | 
          > 
 | 
        </el-row> 
 | 
        <el-row :gutter="20"> 
 | 
          <el-col :span="24"> 
 | 
            <el-form-item label="联系电话"> 
 | 
              <div style="margin-top: 15px"> 
 | 
                <el-input 
 | 
                  placeholder="请输入手机号" 
 | 
                  v-model="form.telcode" 
 | 
                  class="input-with-select" 
 | 
                > 
 | 
                  <el-button slot="append" icon="el-icon-search"></el-button> 
 | 
                </el-input> 
 | 
              </div> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
        </el-row> 
 | 
        <el-row :gutter="20"> 
 | 
          <el-col :span="12"> 
 | 
            <el-form-item label="投诉类型"> 
 | 
              <el-select v-model="form.region" placeholder="请选择活动区域"> 
 | 
                <el-option label="区域一" value="shanghai"></el-option> 
 | 
                <el-option label="区域二" value="beijing"></el-option> 
 | 
              </el-select> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
          <el-col :span="12"> 
 | 
            <el-form-item label="投诉日期"> 
 | 
              <el-date-picker 
 | 
                v-model="form.value2" 
 | 
                align="right" 
 | 
                type="date" 
 | 
                placeholder="选择日期" 
 | 
                :picker-options="pickerOptions" 
 | 
              > 
 | 
              </el-date-picker> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
        </el-row> 
 | 
        <el-row :gutter="20"> 
 | 
          <el-col :span="12"> 
 | 
            <el-form-item label="投诉级别"> 
 | 
              <el-select v-model="form.region" placeholder="请选择活动区域"> 
 | 
                <el-option label="一级" value="shanghai"></el-option> 
 | 
                <el-option label="二级" value="beijing"></el-option> 
 | 
              </el-select> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
          <el-col :span="12" 
 | 
            ><el-form-item label="门诊日期"> 
 | 
              <el-date-picker 
 | 
                v-model="form.value2" 
 | 
                align="right" 
 | 
                type="date" 
 | 
                placeholder="选择日期" 
 | 
                :picker-options="pickerOptions" 
 | 
              > 
 | 
              </el-date-picker> </el-form-item 
 | 
          ></el-col> 
 | 
        </el-row> 
 | 
        <el-row :gutter="20"> 
 | 
          <el-col :span="12"> 
 | 
            <el-form-item label="投诉对象搜索"> 
 | 
              <el-select 
 | 
                v-model="value" 
 | 
                multiple 
 | 
                filterable 
 | 
                remote 
 | 
                reserve-keyword 
 | 
                placeholder="请输入关键词" 
 | 
                :remote-method="remoteMethod" 
 | 
                :loading="loading" 
 | 
              > 
 | 
                <el-option 
 | 
                  v-for="item in options" 
 | 
                  :key="item.value" 
 | 
                  :label="item.label" 
 | 
                  :value="item.value" 
 | 
                > 
 | 
                </el-option> 
 | 
              </el-select> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
          <el-col :span="12"> 
 | 
            <el-form-item label="投诉对象显示"> 
 | 
              <div>{{ form.name }}</div> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
        </el-row> 
 | 
        <el-row :gutter="20"> 
 | 
          <el-col :span="12"> 
 | 
            <el-form-item label="投诉描述"> 
 | 
              <el-input type="textarea" v-model="form.desc"></el-input> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
          <el-col :span="12"> 
 | 
            <el-form-item label="投诉要求"> 
 | 
              <el-input type="textarea" v-model="form.desc"></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> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
import { 
 | 
  listUser, 
 | 
  getUser, 
 | 
  delUser, 
 | 
  addUser, 
 | 
  updateUser, 
 | 
  resetUserPwd, 
 | 
  changeUserStatus, 
 | 
} from "@/api/system/user"; 
 | 
import Treeselect from "@riophae/vue-treeselect"; 
 | 
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; 
 | 
  
 | 
export default { 
 | 
  name: "User", 
 | 
  dicts: ["sys_normal_disable", "sys_user_sex"], 
 | 
  components: { Treeselect }, 
 | 
  data() { 
 | 
    return { 
 | 
      // 遮罩层 
 | 
      loading: true, 
 | 
      // 选中数组 
 | 
      ids: [], 
 | 
      // 非单个禁用 
 | 
      single: true, 
 | 
      // 非多个禁用 
 | 
      multiple: true, 
 | 
      // 显示搜索条件 
 | 
      showSearch: true, 
 | 
      // 总条数 
 | 
      total: 0, 
 | 
      // 用户表格数据 
 | 
      userList: null, 
 | 
      // 弹出层标题 
 | 
      title: "新增投诉", 
 | 
      // 是否显示修改、添加弹出层 
 | 
      addalteropen: false, 
 | 
      // 部门名称 
 | 
      deptName: undefined, 
 | 
      // 默认密码 
 | 
      initPassword: undefined, 
 | 
      // 日期范围 
 | 
      dateRange: [], 
 | 
      // 岗位选项 
 | 
      postOptions: [], 
 | 
      // 角色选项 
 | 
      roleOptions: [], 
 | 
      dynamicTags: ["选项一", "选项二", "选项三"], //选项 
 | 
      inputVisible: false, 
 | 
      inputValue: "", 
 | 
      previewVisible: false, //投诉预览弹框 
 | 
      radio: "", 
 | 
      radios: [], 
 | 
      previewtype: 2, //预览投诉类型 
 | 
      total: 0, // 总条数 
 | 
      ImportQuantity: 999, //导投诉数量 
 | 
      //预览投诉信息 
 | 
      previewvalue: { 
 | 
        username: "这个医生对你怎么样", 
 | 
      }, 
 | 
      value: [], 
 | 
      list: [], 
 | 
      loading: false, 
 | 
      states: [ 
 | 
        "Alabama", 
 | 
        "Alaska", 
 | 
        "Arizona", 
 | 
        "Arkansas", 
 | 
        "California", 
 | 
        "Colorado", 
 | 
        "Connecticut", 
 | 
        "Delaware", 
 | 
        "Florida", 
 | 
        "Georgia", 
 | 
        "Hawaii", 
 | 
        "Idaho", 
 | 
        "Illinois", 
 | 
        "Indiana", 
 | 
        "Iowa", 
 | 
        "Kansas", 
 | 
        "Kentucky", 
 | 
        "Louisiana", 
 | 
        "Maine", 
 | 
        "Maryland", 
 | 
        "Massachusetts", 
 | 
        "Michigan", 
 | 
        "Minnesota", 
 | 
        "Mississippi", 
 | 
        "Missouri", 
 | 
        "Montana", 
 | 
        "Nebraska", 
 | 
        "Nevada", 
 | 
        "New Hampshire", 
 | 
        "New Jersey", 
 | 
        "New Mexico", 
 | 
        "New York", 
 | 
        "North Carolina", 
 | 
        "North Dakota", 
 | 
        "Ohio", 
 | 
        "Oklahoma", 
 | 
        "Oregon", 
 | 
        "Pennsylvania", 
 | 
        "Rhode Island", 
 | 
        "South Carolina", 
 | 
        "South Dakota", 
 | 
        "Tennessee", 
 | 
        "Texas", 
 | 
        "Utah", 
 | 
        "Vermont", 
 | 
        "Virginia", 
 | 
        "Washington", 
 | 
        "West Virginia", 
 | 
        "Wisconsin", 
 | 
        "Wyoming", 
 | 
      ], 
 | 
      pickerOptions: { 
 | 
        disabledDate(time) { 
 | 
          return time.getTime() > Date.now(); 
 | 
        }, 
 | 
        shortcuts: [ 
 | 
          { 
 | 
            text: "今天", 
 | 
            onClick(picker) { 
 | 
              picker.$emit("pick", new Date()); 
 | 
            }, 
 | 
          }, 
 | 
          { 
 | 
            text: "昨天", 
 | 
            onClick(picker) { 
 | 
              const date = new Date(); 
 | 
              date.setTime(date.getTime() - 3600 * 1000 * 24); 
 | 
              picker.$emit("pick", date); 
 | 
            }, 
 | 
          }, 
 | 
          { 
 | 
            text: "一周前", 
 | 
            onClick(picker) { 
 | 
              const date = new Date(); 
 | 
              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); 
 | 
              picker.$emit("pick", date); 
 | 
            }, 
 | 
          }, 
 | 
        ], 
 | 
      }, 
 | 
      // 表单参数 
 | 
      form: { 
 | 
        phonenumber: "", 
 | 
        totagid: "", 
 | 
        types: "", 
 | 
        nickName: "", 
 | 
        qystatus: "", 
 | 
        btstatus: "", 
 | 
      }, 
 | 
      //导入进度 
 | 
      dractive: 1, 
 | 
      // 导入展示表单 
 | 
      uploadingData: {}, 
 | 
      // 查询参数 
 | 
      topqueryParams: { 
 | 
        pageNum: 1, 
 | 
        pageSize: 10, 
 | 
        userName: undefined, 
 | 
        tagid: undefined, 
 | 
        topic: undefined, 
 | 
      }, 
 | 
      propss: { multiple: true }, 
 | 
      options: [], 
 | 
  
 | 
      topicoptions: [ 
 | 
        { 
 | 
          value: 1, 
 | 
          label: "单选", 
 | 
        }, 
 | 
        { 
 | 
          value: 2, 
 | 
          label: "多选", 
 | 
        }, 
 | 
        { 
 | 
          value: 3, 
 | 
          label: "填空", 
 | 
        }, 
 | 
      ], 
 | 
      // 表单校验 
 | 
      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(); 
 | 
    this.getConfigKey("sys.user.initPassword").then((response) => { 
 | 
      this.initPassword = response.msg; 
 | 
    }); 
 | 
  }, 
 | 
  // 搜索 
 | 
  mounted() { 
 | 
    this.list = this.states.map((item) => { 
 | 
      return { value: `value:${item}`, label: `label:${item}` }; 
 | 
    }); 
 | 
  }, 
 | 
  methods: { 
 | 
    /** 查询投诉列表 */ 
 | 
    getList() { 
 | 
      this.loading = true; 
 | 
      listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then( 
 | 
        (response) => { 
 | 
          this.userList = response.rows; 
 | 
          this.total = response.total; 
 | 
          this.loading = false; 
 | 
        } 
 | 
      ); 
 | 
    }, 
 | 
    // 查看投诉详情 
 | 
    Referencequestion(row) { 
 | 
      this.previewVisible = true; 
 | 
    }, 
 | 
    // 添加弹框搜索 
 | 
    remoteMethod(query) { 
 | 
      if (query !== "") { 
 | 
        this.loading = true; 
 | 
        setTimeout(() => { 
 | 
          this.loading = false; 
 | 
          this.options = this.list.filter((item) => { 
 | 
            return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1; 
 | 
          }); 
 | 
        }, 200); 
 | 
      } else { 
 | 
        this.options = []; 
 | 
      } 
 | 
    }, 
 | 
    // 投诉状态修改 
 | 
    handleStatusChange(row) { 
 | 
      let text = row.status === "0" ? "启用" : "停用"; 
 | 
      this.$modal 
 | 
        .confirm('确认要"' + text + '""' + row.userName + '"用户吗?') 
 | 
        .then(function () { 
 | 
          return changeUserStatus(row.userId, row.status); 
 | 
        }) 
 | 
        .then(() => { 
 | 
          this.$modal.msgSuccess(text + "成功"); 
 | 
        }) 
 | 
        .catch(function () { 
 | 
          row.status = row.status === "0" ? "1" : "0"; 
 | 
        }); 
 | 
    }, 
 | 
    // 取消按钮 
 | 
    cancel() { 
 | 
      this.addalteropen = 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.topqueryParams.pageNum = 1; 
 | 
      this.getList(); 
 | 
    }, 
 | 
    /** 重置按钮操作 */ 
 | 
    resetQuery() { 
 | 
      this.dateRange = []; 
 | 
      this.resetForm("queryForm"); 
 | 
      this.topqueryParams.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; 
 | 
    }, 
 | 
    //删除选项 
 | 
    handleClose(tag) { 
 | 
      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); 
 | 
    }, 
 | 
    //触发新增输入 
 | 
    showInput() { 
 | 
      this.inputVisible = true; 
 | 
      this.$nextTick((_) => { 
 | 
        this.$refs.saveTagInput.$refs.input.focus(); 
 | 
      }); 
 | 
    }, 
 | 
    //获取失去焦点触发 
 | 
    handleInputConfirm() { 
 | 
      let inputValue = this.inputValue; 
 | 
      if (inputValue) { 
 | 
        this.dynamicTags.push(inputValue); 
 | 
      } 
 | 
      this.inputVisible = false; 
 | 
      this.inputValue = ""; 
 | 
    }, 
 | 
    /** 新增按钮操作 */ 
 | 
    handleAdd() { 
 | 
      this.reset(); 
 | 
      this.addalteropen = true; 
 | 
      // getUser().then((response) => { 
 | 
      //   this.postOptions = response.posts; 
 | 
      //   this.roleOptions = response.roles; 
 | 
      //   this.title = "新增投诉"; 
 | 
      //   this.form.password = this.initPassword; 
 | 
      // }); 
 | 
    }, 
 | 
    /** 修改按钮操作 */ 
 | 
    handleUpdate(row) { 
 | 
      this.reset(); 
 | 
      const userId = row.userId || this.ids; 
 | 
      getUser(userId).then((response) => { 
 | 
        this.form = response.data; 
 | 
        this.postOptions = response.posts; 
 | 
        this.roleOptions = response.roles; 
 | 
        this.$set(this.form, "postIds", response.postIds); 
 | 
        this.$set(this.form, "roleIds", response.roleIds); 
 | 
        this.addalteropen = true; 
 | 
        this.title = "修改用户"; 
 | 
        this.form.password = ""; 
 | 
      }); 
 | 
    }, 
 | 
    /** 重置密码按钮操作 */ 
 | 
    handleResetPwd(row) { 
 | 
      this.$prompt('请输入"' + row.userName + '"的新密码', "提示", { 
 | 
        confirmButtonText: "确定", 
 | 
        cancelButtonText: "取消", 
 | 
        closeOnClickModal: false, 
 | 
        inputPattern: /^.{5,20}$/, 
 | 
        inputErrorMessage: "用户密码长度必须介于 5 和 20 之间", 
 | 
      }) 
 | 
        .then(({ value }) => { 
 | 
          resetUserPwd(row.userId, value).then((response) => { 
 | 
            this.$modal.msgSuccess("修改成功,新密码是:" + value); 
 | 
          }); 
 | 
        }) 
 | 
        .catch(() => {}); 
 | 
    }, 
 | 
  
 | 
    /** 提交按钮 */ 
 | 
    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(() => {}); 
 | 
    }, 
 | 
    /** 导出按钮操作 */ 
 | 
    handleExport() { 
 | 
      this.download( 
 | 
        "system/user/export", 
 | 
        { 
 | 
          ...this.topqueryParams, 
 | 
        }, 
 | 
        `user_${new Date().getTime()}.xlsx` 
 | 
      ); 
 | 
    }, 
 | 
  }, 
 | 
}; 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.el-button--primary.is-plain { 
 | 
  color: #ffffff; 
 | 
  background: #409eff; 
 | 
  border-color: #4fabe9; 
 | 
} 
 | 
  
 | 
.document { 
 | 
  width: 100px; 
 | 
  height: 50px; 
 | 
} 
 | 
  
 | 
.documentf { 
 | 
  display: flex; 
 | 
  justify-content: flex-end; 
 | 
} 
 | 
  
 | 
.download { 
 | 
  text-align: center; 
 | 
  
 | 
  .el-upload__tip { 
 | 
    font-size: 23px; 
 | 
  } 
 | 
  
 | 
  .el-upload__text { 
 | 
    font-size: 23px; 
 | 
  } 
 | 
} 
 | 
  
 | 
.uploading { 
 | 
  margin-top: 20px; 
 | 
  margin: 20px; 
 | 
  padding: 30px; 
 | 
  background: #ffffff; 
 | 
  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); 
 | 
} 
 | 
  
 | 
.el-tag + .el-tag { 
 | 
  margin-left: 10px; 
 | 
} 
 | 
  
 | 
.button-new-tag { 
 | 
  margin-left: 10px; 
 | 
  height: 32px; 
 | 
  line-height: 30px; 
 | 
  padding-top: 0; 
 | 
  padding-bottom: 0; 
 | 
} 
 | 
  
 | 
.input-new-tag { 
 | 
  width: 90px; 
 | 
  margin-left: 10px; 
 | 
  vertical-align: bottom; 
 | 
} 
 | 
  
 | 
.drexamine { 
 | 
  display: flex; 
 | 
  align-items: center; 
 | 
  justify-content: center; 
 | 
  padding: 30px; 
 | 
  background: #daeaf5; 
 | 
  
 | 
  img { 
 | 
    width: 100px; 
 | 
    height: 100px; 
 | 
  } 
 | 
} 
 | 
  
 | 
.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); 
 | 
  
 | 
  .topic-dev { 
 | 
    margin-bottom: 25px; 
 | 
    font-size: 20px !important; 
 | 
  
 | 
    .dev-text { 
 | 
      margin-bottom: 10px; 
 | 
    } 
 | 
  } 
 | 
} 
 | 
  
 | 
::v-deep.el-radio-group { 
 | 
  span { 
 | 
    font-size: 24px; 
 | 
  } 
 | 
} 
 | 
  
 | 
::v-deep.el-checkbox-group { 
 | 
  span { 
 | 
    font-size: 24px; 
 | 
  } 
 | 
} 
 | 
</style> 
 |