Shan9312 vor 1 Jahr
Ursprung
Commit
61b0530be5

BIN
dist-tmr-正式-20240528.zip


BIN
dist-tmr-测试线-20240528.zip


+ 3 - 3
src/utils/request.js

@@ -14,9 +14,9 @@ if (DoMainString) {
 var reg =  /(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)\.(25[0-5]|2[0-4]\d|[0-1]\d{2}|[1-9]?\d)/;
 var browserUrl = window.location.hostname
 console.log("========url===",reg.test(browserUrl))
-if (reg.test(browserUrl)){
-  URL = window.location.protocol +"//"+ browserUrl + ":8082"
-}
+// if (reg.test(browserUrl)){
+//   URL = window.location.protocol +"//"+ browserUrl + ":8082"
+// }
 
 Cookies.set('url',URL)
 console.log(process.env.VUE_APP_BASE_API,'===========URL1111')

+ 515 - 515
src/views/systemManagement/user/index.vue

@@ -1,515 +1,515 @@
-<template>
-  <div class="app-container">
-    <div class="search">
-      <el-input v-model="table.getdataListParm.parammaps.empCode" placeholder="用户名称" style="width: 180px;" class="filter-item" clearable />
-      <el-input v-model="table.getdataListParm.parammaps.empname" placeholder="员工姓名" style="width: 180px;" class="filter-item" clearable />
-      <el-select v-model="table.getdataListParm.parammaps.enable" placeholder="是否启用" class="filter-item" style="width: 120px;" clearable>
-        <el-option v-for="item in enableList" :key="item.id" :label="item.name" :value="item.id" />
-      </el-select>
-      <el-date-picker v-model="table.getdataListParm.parammaps.inputDatetime" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" />
-      <!-- 临时注释 -->
-      <!-- <el-select v-model="table.getdataListParm.parammaps.enable" placeholder="公众号关注状态" class="filter-item" style="width: 150px;" clearable>
-        <el-option v-for="item in attentionStatusList" :key="item.id" :label="item.name" :value="item.id" />
-      </el-select> -->
-      <!-- 临时注释 -->
-      <el-button class="successBorder" @click="form_search">查询</el-button>
-      <el-button class="successBorder" @click="handleRefresh">重置</el-button>
-    </div>
-    <div class="operation">
-      <el-button v-if="isRoleEdit" icon="el-icon-plus" class="success" @click="handleCreate">新增</el-button>
-      <el-button v-if="isRoleEdit" icon="el-icon-delete" class="danger" @click="form_delete">删除</el-button>
-    </div>
-    <div class="table">
-      <el-table
-        :key="table.tableKey"
-        v-loading="table.listLoading"
-        element-loading-text="给我一点时间"
-        :data="table.list"
-        border
-        fit
-        highlight-current-row
-        style="width: 100%;"
-        :row-style="rowStyle"
-        :cell-style="cellStyle"
-        class="elTable table-fixed"
-        @selection-change="handleSelectionChange"
-      >
-        <el-table-column type="selection" align="center" width="50" />
-        <el-table-column label="序号" align="center" type="index" width="50px">
-          <template slot-scope="scope">
-            <span>{{ scope.$index + (table.pageNum-1) * table.pageSize + 1 }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="用户名称" min-width="180px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.username }}</span>
-            <el-input v-if="scope.row.Edit" v-model.trim="scope.row.username" placeholder="建议使用手机号" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:95%;padding:10px 0;" />
-          </template>
-        </el-table-column>
-        <el-table-column label="员工姓名" min-width="130px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.empname }}</span>
-            <el-input v-if="scope.row.Edit" v-model.trim="scope.row.empname" placeholder="1-32字符" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:95%;padding:10px 0;" />
-          </template>
-        </el-table-column>
-        <el-table-column label="手机号" min-width="180px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.phone }}</span>
-            <el-input v-if="scope.row.Edit" v-model.trim="scope.row.phone" placeholder="请输入11位手机号" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="11" style="width:95%;padding:10px 0;" />
-          </template>
-        </el-table-column>
-        <el-table-column label="角色" min-width="150px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.rolename }}</span>
-            <el-select v-if="scope.row.Edit" v-model="scope.row.roleid" placeholder="角色" class="filter-item" style="width:90%;padding:10px 0;" filterable @change="changeRolename">
-              <el-option v-for="item in roleList" :key="item.id" :label="item.rolename" :value="item.id" />
-            </el-select>
-          </template>
-        </el-table-column>
-        <!-- 临时注释 -->
-        <!-- <el-table-column label="公众号关注状态" min-width="150px" align="center">
-          <template slot-scope="scope">
-            <span v-if="scope.row.NoEdit">{{ scope.row.rolename }}</span>
-            <el-select v-if="scope.row.Edit" v-model="scope.row.roleid" placeholder="角色" class="filter-item" style="width:90%;padding:10px 0;" filterable @change="changeRolename">
-              <el-option v-for="item in attentionStatusList" :key="item.id" :label="item.name" :value="item.id" />
-            </el-select>
-          </template>
-        </el-table-column> -->
-        <!-- 临时注释 -->
-        <el-table-column label="创建时间" min-width="110px" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.createdtime }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="创建人" min-width="110px" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.createmp }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="是否启用" min-width="110px" align="center">
-          <template slot-scope="scope">
-            <el-switch v-model="scope.row.enable" :disabled="scope.row.NoEdit==true" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleEnableChange(scope.$index, scope.row)" />
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width" fixed="right">
-          <template slot-scope="{row}">
-            <!-- 新增 -->
-            <el-button v-if="row.isCreate && isRoleEdit" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="createData(row)" />
-            <span v-if="row.isCreate && isRoleEdit" class="centerSpan">|</span>
-            <el-button v-if="row.isCreate && isRoleEdit" class="minCancel" icon="el-icon-close" @click="createCancel(row)" />
-            <!-- 扫码接收消息 -->
-            <!-- 临时注释 -->
-            <a v-if="row.isUpdate && isRoleEdit" class="correcting" size="mini" style="width: 80px;" @click="handleScanningCode(row)">扫码接收消息</a>
-            <span v-if="row.isUpdate && isRoleEdit" class="centerSpan">|</span>
-            <!-- 临时注释 -->
-            <!-- 重置密码 -->
-            <a v-if="row.isUpdate && isRoleEdit" class="correcting" size="mini" style="width: 80px;" @click="handleResetPassword(row)">重置密码</a>
-            <span v-if="row.isUpdate && isRoleEdit" class="centerSpan">|</span>
-            <!-- 编辑 -->
-            <el-button v-if="row.isUpdate && isRoleEdit" class="miniSuccess" icon="el-icon-edit-outline" @click="handleUpdate(row)" />
-            <span v-if="row.isUpdate && isRoleEdit" class="centerSpan">|</span>
-            <el-button v-if="row.isUpdate && isRoleEdit" class="miniDanger" icon="el-icon-delete" @click="handleRowDelete(row)" />
-            <!-- 编辑保存 -->
-            <el-button v-if="row.isUpdateSave && isRoleEdit" :disabled="isokDisable" class="miniSuccess" icon="el-icon-folder-checked" @click="updateData(row)" />
-            <span v-if="row.isUpdateSave && isRoleEdit" class="centerSpan">|</span>
-            <el-button v-if="row.isUpdateSave && isRoleEdit" class="minCancel" icon="el-icon-close" @click="updateCancel(row)" />
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination v-show="table.total>0" :total="table.total" :page.sync="table.getdataListParm.offset" :limit.sync="table.getdataListParm.pagecount" @pagination="getList" />
-    </div>
-    <el-dialog :title="textMap[QRcode.dialogStatus]" :visible.sync="QRcode.dialogFormVisible" :close-on-click-modal="false" width="50%">
-      <div class="QRcode">
-        <div class="content">
-          <div class="title">
-            <p>微信接收系统待办、预警等消息,必须先扫码关注公众号;</p>
-            <p>请将下方二维码分享给需要接收信息的用户扫码</p>
-          </div>
-          <div style="font-weight: 600;">关注微信:</div>
-          <img :src="imgUrl" alt="">
-        </div>
-        <div slot="footer" class="dialog-footer" style="right:30px;position:absolute;bottom: 40px;">
-          <el-button class="save" :disabled="isokDisable" @click="QRcode.dialogFormVisible = false;">确认</el-button>
-        </div>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { GetDataByName, PostDataByName, failproccess, GetDataByNames, ExecDataByConfig, checkButtons } from '@/api/common'
-import Cookies from 'js-cookie'
-import { parseTime } from '@/utils/index.js'
-import { MessageBox } from 'element-ui'
-import Pagination from '@/components/Pagination'
-export default {
-  name: 'User',
-  components: { Pagination },
-  data() {
-    return {
-      isRoleEdit: [],
-      requestParams: [
-        { name: 'getRoleAll', offset: 0, pagecount: 0, parammaps: { 'pastureid': Cookies.get('pastureid') }}
-      ],
-      enableList: [{ id: 1, name: '是' }, { id: 0, name: '否' }], // 是否启用
-      attentionStatusList: [{ id: 1, name: '已关注公众号' }, { id: 0, name: '未关注公众号' }],
-      roleList: [], // 角色
-
-      table: {
-        getdataListParm: {
-          name: 'getuserallL',
-          page: 1,
-          offset: 1,
-          pagecount: parseInt(Cookies.get('pageCount')),
-          returntype: 'Map',
-          parammaps: {
-            pastureid: Cookies.get('pastureid'),
-            empCode: '',
-            empname: '',
-            enable: '',
-            startTime: '',
-            stopTime: '',
-            inputDatetime: ''
-          }
-        },
-        tableKey: 0,
-        list: [],
-        total: 0,
-        listLoading: true,
-        temp: {}
-      },
-      requestParam: {},
-      isokDisable: false,
-      selectList: [],
-      QRcode:{
-        dialogStatus: '',
-        dialogFormVisible:false,
-      },
-      textMap: {
-        QRcode:'提示'
-      },
-      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
-      cellStyle: { padding: 0 + 'px' },
-      imgUrl:''
-
-    }
-  },
-
-  created() {
-    this.getList()
-    this.getDownList()
-    this.getButtons()
-  },
-
-  methods: {
-    getButtons() {
-      const Edit = 'User'
-      const isRoleEdit = checkButtons(JSON.parse(sessionStorage.getItem('buttons')), Edit)
-      this.isRoleEdit = isRoleEdit
-    },
-    getDownList() {
-      GetDataByNames(this.requestParams).then(response => {
-        this.roleList = response.data.getRoleAll.list
-      })
-    },
-    getList() {
-      this.table.listLoading = true
-      GetDataByName(this.table.getdataListParm).then(response => {
-        console.log('table数据', response.data.list)
-        if (response.data.list !== null) {
-          for (let i = 0; i < response.data.list.length; i++) {
-            this.$set(response.data.list[i], 'Edit', false) // 编辑
-            this.$set(response.data.list[i], 'NoEdit', true) // 不可编辑/输入
-            this.$set(response.data.list[i], 'isCreate', false) // 新增操作
-            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作
-            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存
-          }
-          this.table.list = response.data.list
-          this.table.pageNum = response.data.pageNum
-          this.table.pageSize = response.data.pageSize
-        } else {
-          this.table.list = []
-        }
-        this.table.total = response.data.total
-        setTimeout(() => {
-          this.table.listLoading = false
-        }, 100)
-      })
-    },
-    handleEnableChange() {
-      console.log('点击了是否启用')
-    },
-
-    form_search() {
-      console.log('点击了查询')
-      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
-        this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
-        this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
-      } else {
-        this.table.getdataListParm.parammaps.inputDatetime = ''
-        this.table.getdataListParm.parammaps.startTime = ''
-        this.table.getdataListParm.parammaps.stopTime = ''
-      }
-      this.table.getdataListParm.offset = 1
-      this.getList()
-    },
-    handleRefresh() {
-      console.log('点击了重置')
-      this.table.getdataListParm.parammaps.empCode = ''
-      this.table.getdataListParm.parammaps.empname = ''
-      this.table.getdataListParm.parammaps.enable = ''
-      this.table.getdataListParm.parammaps.startTime = ''
-      this.table.getdataListParm.parammaps.stopTime = ''
-      this.table.getdataListParm.parammaps.inputDatetime = ''
-      this.table.getdataListParm.offset = 1
-      this.getList()
-    },
-
-    handleCreate() {
-      // 编辑true/不可编辑false
-      // 新增操true,编辑false,编辑保存false
-      for (let i = 0; i < this.table.list.length; i++) {
-        if (this.table.list[i].Edit === true) {
-          console.log(123)
-          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
-          return false
-        }
-      }
-      this.table.list.unshift({ 'myId': (new Date()).valueOf(), 'Edit': true, 'NoEdit': false, 'isCreate': true, 'isUpdate': false, 'isUpdateSave': false, 'enable': 1, 'createdtime': parseTime(new Date(), '{y}-{m}-{d}'), 'createmp': Cookies.get('employename'), 'username': '', 'roleid': '' })
-    },
-    changeRolename(item) {
-      this.table.temp.rolename = this.roleList.find(obj => obj.id === item).rolename
-    },
-    createData(row) {
-      console.log('点击了新增保存', row)
-      this.table.temp.pastureid = Cookies.get('pastureid')
-      this.table.temp.empname = row.empname
-      this.table.temp.username = row.username
-      this.table.temp.phone = row.phone
-      this.table.temp.createmp = row.createmp
-      this.table.temp.enable = row.enable
-      this.table.temp.roleid = row.roleid
-      // 检验用户名称/角色是否为空
-      if (this.table.temp.username == '' && this.table.temp.roleid == '') {
-        this.$message({ type: 'error', message: '用户名称/角色不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.username == '') {
-        this.$message({ type: 'error', message: '用户名称不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.roleid == '') {
-        this.$message({ type: 'error', message: '角色不能为空', duration: 2000 })
-        return false
-      }
-      // 检验手机号是否为11位数字
-      if (this.table.temp.phone !== undefined && this.table.temp.phone !== '') {
-        const phone = /^\d{11}$/
-        if (!phone.test(this.table.temp.phone)) {
-          this.$message({ type: 'error', message: '请输入11位手机号', duration: 2000 })
-          return false
-        }
-      }
-      this.isokDisable = true
-      setTimeout(() => {
-        this.isokDisable = false
-      }, 1000)
-      this.requestParam.name = 'createUser'
-      this.table.temp.isgroups = Cookies.get('ispastureuse')
-      this.requestParam.parammaps = this.table.temp
-      PostDataByName(this.requestParam).then(response => {
-        console.log('新增保存发送参数', this.requestParam)
-        if (response.msg !== 'fail') {
-          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
-          this.getList()
-        } else {
-          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
-        }
-      })
-    },
-    createCancel(row) {
-      console.log('点击了新增取消')
-      for (let i = 0; i < this.table.list.length; i++) {
-        if (row.myId === this.table.list[i].myId) {
-          var listIndex = this.table.list.indexOf(this.table.list[i])
-        }
-        if (listIndex > -1) {
-          this.table.list.splice(listIndex, 1)
-          return
-        }
-      }
-    },
-    handleUpdate(row) {
-      for (let i = 0; i < this.table.list.length; i++) {
-        if (this.table.list[i].Edit == true) {
-          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
-          return false
-        }
-      }
-      // 编辑true,不可编辑false
-      row.Edit = true
-      row.NoEdit = false
-      // 新增false,编辑false,编辑保存true
-      row.isCreate = false
-      row.isUpdate = false
-      row.isUpdateSave = true
-      row.roleid = String(row.roleid)
-      this.table.temp.roleid = row.roleid
-      this.table.temp.rolename = row.rolename
-    },
-    updateData(row) {
-      console.log('点击了编辑保存', row)
-      this.table.temp.pastureid = row.pastureid
-      this.table.temp.empname = row.empname
-      this.table.temp.username = row.username
-      this.table.temp.phone = row.phone
-      this.table.temp.createmp = row.createmp
-      this.table.temp.enable = row.enable
-      this.table.temp.roleid = row.roleid
-      this.table.temp.id = row.id
-      // 校验用户名称/角色是否为空
-      if (this.table.temp.username == '' && this.table.temp.roleid == '') {
-        this.$message({ type: 'error', message: '用户名称/角色不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.username == '') {
-        this.$message({ type: 'error', message: '用户名称不能为空', duration: 2000 })
-        return false
-      } else if (this.table.temp.roleid == '') {
-        this.$message({ type: 'error', message: '角色不能为空', duration: 2000 })
-        return false
-      }
-      console.log(this.table.temp.phone)
-      // 检验手机号是否为11位数字
-      if (this.table.temp.phone !== undefined && this.table.temp.phone !== '') {
-        const phone = /^\d{11}$/
-        if (!phone.test(this.table.temp.phone)) {
-          this.$message({ type: 'error', message: '请输入11位手机号', duration: 2000 })
-          return false
-        }
-      }
-      this.isokDisable = true
-      setTimeout(() => {
-        this.isokDisable = false
-      }, 1000)
-      this.requestParam.name = 'updateUser'
-      this.requestParam.parammaps = this.table.temp
-      PostDataByName(this.requestParam).then(response => {
-        console.log('新增保存发送参数', this.requestParam)
-        if (response.msg !== 'fail') {
-          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
-          this.getList()
-        } else {
-          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
-        }
-      })
-    },
-    updateCancel(row) {
-      console.log('点击了编辑取消')
-      // 编辑false,不可编辑true
-      row.Edit = false
-      row.NoEdit = true
-      // 新增false,编辑true,编辑保存false
-      row.isCreate = false
-      row.isUpdate = true
-      row.isUpdateSave = false
-      this.getList()
-    },
-    handleRowDelete(row) {
-      console.log('点击了行内删除')
-      MessageBox.confirm('是否确认删除此信息?', {
-        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
-      }).then(() => {
-        this.selectList = []
-        this.requestParam.name = 'deleteUser'
-        this.requestParam.parammaps = {}
-        this.requestParam.parammaps.pastureid = row.pastureid
-        this.requestParam.parammaps.id = row.id
-        PostDataByName(this.requestParam).then(response => {
-        	if (response.msg === 'fail') {
-        		this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
-        	} else {
-        		this.$notify({ title: '成功', message: '删除成功', type: 'success', duration: 2000 })
-        		this.getList()
-        	}
-        })
-      }).catch(() => {
-        this.$message({ type: 'info', message: '已取消删除' })
-      })
-    },
-    handleSelectionChange(val) {
-      console.log('勾选数据', val)
-      this.selectList = val
-    },
-    form_delete() {
-      console.log('点击了删除')
-      if (this.selectList.length == 0) {
-        this.$message({ type: 'error', message: '请选择用户信息', duration: 2000 })
-      } else {
-        MessageBox.confirm('是否确认删除此信息?', {
-          confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
-        }).then(() => {
-          console.log(this.selectList)
-          this.requestParam.common = { 'returnmap': '0' }
-          this.requestParam.data = []
-          this.requestParam.data[0] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.selectList }}
-          this.requestParam.data[0].children = []
-          this.requestParam.data[0].children[0] = { 'name': 'deleteUser', 'type': 'e', 'parammaps': {
-            id: '@insertSpotList.id',
-            pastureid: '@insertSpotList.pastureid'
-          }}
-          ExecDataByConfig(this.requestParam).then(response => {
-            console.log('删除保存发送参数', this.requestParam)
-            if (response.msg === 'fail') {
-              this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
-            } else {
-              this.$notify({ title: '', message: '删除成功', type: 'success', duration: 2000 })
-              this.getList()
-            }
-          })
-        })
-      }
-    },
-    handleResetPassword(row) {
-      console.log(row,'hss')
-      MessageBox.confirm('是否确认将此用户密码重置为默认密码Kpt@.666', {
-        confirmButtonText: '确认',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        this.requestParam.name = 'initPassword'
-        this.requestParam.parammaps = {}
-        this.requestParam.parammaps.pastureid = row.pastureid
-        this.requestParam.parammaps.id = row.id
-        console.log(this.requestParam);
-        PostDataByName(this.requestParam).then(() => {
-          this.getList()
-          this.resetRequestParam()
-          this.dialogFormVisible = false
-          this.$notify({
-            title: '成功',
-            message: '重置密码成功',
-            type: 'success',
-            duration: 2000
-          })
-        })
-      })
-    },
-    handleScanningCode(row){
-      this.QRcode.dialogStatus = 'QRcode'
-      this.QRcode.dialogFormVisible = true
-      this.imgUrl = 'http://tmrwatch.cn/wx/code?scene_str=tmrwatch.'+ Cookies.get('pastureid')+'.'+ row.username + '.'+row.empname
-      console.log(this.imgUrl)
-    }
-  }
-}
-</script>
-<style lang="scss" scoped>
-  // .search{margin-top:10px;}
-  .QRcode{display:flex;justify-content: center; align-items:center;}
-  .content{
-    /* margin-top: 100px; */
-    width: 500px;
-  }
-  .content img{
-    max-width:300px;
-
-  }
- </style>
+<template>
+  <div class="app-container">
+    <div class="search">
+      <el-input v-model="table.getdataListParm.parammaps.empCode" placeholder="用户名称" style="width: 180px;" class="filter-item" clearable />
+      <el-input v-model="table.getdataListParm.parammaps.empname" placeholder="员工姓名" style="width: 180px;" class="filter-item" clearable />
+      <el-select v-model="table.getdataListParm.parammaps.enable" placeholder="是否启用" class="filter-item" style="width: 120px;" clearable>
+        <el-option v-for="item in enableList" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select>
+      <el-date-picker v-model="table.getdataListParm.parammaps.inputDatetime" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" />
+      <!-- 临时注释 -->
+      <!-- <el-select v-model="table.getdataListParm.parammaps.enable" placeholder="公众号关注状态" class="filter-item" style="width: 150px;" clearable>
+        <el-option v-for="item in attentionStatusList" :key="item.id" :label="item.name" :value="item.id" />
+      </el-select> -->
+      <!-- 临时注释 -->
+      <el-button class="successBorder" @click="form_search">查询</el-button>
+      <el-button class="successBorder" @click="handleRefresh">重置</el-button>
+    </div>
+    <div class="operation">
+      <el-button v-if="isRoleEdit" icon="el-icon-plus" class="success" @click="handleCreate">新增</el-button>
+      <el-button v-if="isRoleEdit" icon="el-icon-delete" class="danger" @click="form_delete">删除</el-button>
+    </div>
+    <div class="table">
+      <el-table
+        :key="table.tableKey"
+        v-loading="table.listLoading"
+        element-loading-text="给我一点时间"
+        :data="table.list"
+        border
+        fit
+        highlight-current-row
+        style="width: 100%;"
+        :row-style="rowStyle"
+        :cell-style="cellStyle"
+        class="elTable table-fixed"
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" align="center" width="50" />
+        <el-table-column label="序号" align="center" type="index" width="50px">
+          <template slot-scope="scope">
+            <span>{{ scope.$index + (table.pageNum-1) * table.pageSize + 1 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="用户名称" min-width="180px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.username }}</span>
+            <el-input v-if="scope.row.Edit" v-model.trim="scope.row.username" placeholder="建议使用手机号" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:95%;padding:10px 0;" />
+          </template>
+        </el-table-column>
+        <el-table-column label="员工姓名" min-width="130px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.empname }}</span>
+            <el-input v-if="scope.row.Edit" v-model.trim="scope.row.empname" placeholder="1-32字符" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="32" style="width:95%;padding:10px 0;" />
+          </template>
+        </el-table-column>
+        <el-table-column label="手机号" min-width="180px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.phone }}</span>
+            <el-input v-if="scope.row.Edit" v-model.trim="scope.row.phone" placeholder="请输入11位手机号" type="textarea" :autosize="{ minRows: 1.3, maxRows: 4}" maxlength="11" style="width:95%;padding:10px 0;" />
+          </template>
+        </el-table-column>
+        <el-table-column label="角色" min-width="150px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.rolename }}</span>
+            <el-select v-if="scope.row.Edit" v-model="scope.row.roleid" placeholder="角色" class="filter-item" style="width:90%;padding:10px 0;" filterable @change="changeRolename">
+              <el-option v-for="item in roleList" :key="item.id" :label="item.rolename" :value="item.id" />
+            </el-select>
+          </template>
+        </el-table-column>
+        <!-- 临时注释 -->
+        <!-- <el-table-column label="公众号关注状态" min-width="150px" align="center">
+          <template slot-scope="scope">
+            <span v-if="scope.row.NoEdit">{{ scope.row.rolename }}</span>
+            <el-select v-if="scope.row.Edit" v-model="scope.row.roleid" placeholder="角色" class="filter-item" style="width:90%;padding:10px 0;" filterable @change="changeRolename">
+              <el-option v-for="item in attentionStatusList" :key="item.id" :label="item.name" :value="item.id" />
+            </el-select>
+          </template>
+        </el-table-column> -->
+        <!-- 临时注释 -->
+        <el-table-column label="创建时间" min-width="110px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.createdtime }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="创建人" min-width="110px" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.createmp }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="是否启用" min-width="110px" align="center">
+          <template slot-scope="scope">
+            <el-switch v-model="scope.row.enable" :disabled="scope.row.NoEdit==true" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0" @change="handleEnableChange(scope.$index, scope.row)" />
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width" fixed="right">
+          <template slot-scope="{row}">
+            <!-- 新增 -->
+            <el-button v-if="row.isCreate && isRoleEdit" :disabled="isokDisable" icon="el-icon-folder-checked" class="miniSuccess" @click="createData(row)" />
+            <span v-if="row.isCreate && isRoleEdit" class="centerSpan">|</span>
+            <el-button v-if="row.isCreate && isRoleEdit" class="minCancel" icon="el-icon-close" @click="createCancel(row)" />
+            <!-- 扫码接收消息 -->
+            <!-- 临时注释 -->
+            <a v-if="row.isUpdate && isRoleEdit" class="correcting" size="mini" style="width: 80px;" @click="handleScanningCode(row)">扫码接收消息</a>
+            <span v-if="row.isUpdate && isRoleEdit" class="centerSpan">|</span>
+            <!-- 临时注释 -->
+            <!-- 重置密码 -->
+            <a v-if="row.isUpdate && isRoleEdit" class="correcting" size="mini" style="width: 80px;" @click="handleResetPassword(row)">重置密码</a>
+            <span v-if="row.isUpdate && isRoleEdit" class="centerSpan">|</span>
+            <!-- 编辑 -->
+            <el-button v-if="row.isUpdate && isRoleEdit" class="miniSuccess" icon="el-icon-edit-outline" @click="handleUpdate(row)" />
+            <span v-if="row.isUpdate && isRoleEdit" class="centerSpan">|</span>
+            <el-button v-if="row.isUpdate && isRoleEdit" class="miniDanger" icon="el-icon-delete" @click="handleRowDelete(row)" />
+            <!-- 编辑保存 -->
+            <el-button v-if="row.isUpdateSave && isRoleEdit" :disabled="isokDisable" class="miniSuccess" icon="el-icon-folder-checked" @click="updateData(row)" />
+            <span v-if="row.isUpdateSave && isRoleEdit" class="centerSpan">|</span>
+            <el-button v-if="row.isUpdateSave && isRoleEdit" class="minCancel" icon="el-icon-close" @click="updateCancel(row)" />
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination v-show="table.total>0" :total="table.total" :page.sync="table.getdataListParm.offset" :limit.sync="table.getdataListParm.pagecount" @pagination="getList" />
+    </div>
+    <el-dialog :title="textMap[QRcode.dialogStatus]" :visible.sync="QRcode.dialogFormVisible" :close-on-click-modal="false" width="50%">
+      <div class="QRcode">
+        <div class="content">
+          <div class="title">
+            <p>微信接收系统待办、预警等消息,必须先扫码关注公众号;</p>
+            <p>请将下方二维码分享给需要接收信息的用户扫码</p>
+          </div>
+          <div style="font-weight: 600;">关注微信:</div>
+          <img :src="imgUrl" alt="">
+        </div>
+        <div slot="footer" class="dialog-footer" style="right:30px;position:absolute;bottom: 40px;">
+          <el-button class="save" :disabled="isokDisable" @click="QRcode.dialogFormVisible = false;">确认</el-button>
+        </div>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { GetDataByName, PostDataByName, failproccess, GetDataByNames, ExecDataByConfig, checkButtons } from '@/api/common'
+import Cookies from 'js-cookie'
+import { parseTime } from '@/utils/index.js'
+import { MessageBox } from 'element-ui'
+import Pagination from '@/components/Pagination'
+export default {
+  name: 'User',
+  components: { Pagination },
+  data() {
+    return {
+      isRoleEdit: [],
+      requestParams: [
+        { name: 'getRoleAll', offset: 0, pagecount: 0, parammaps: { 'pastureid': Cookies.get('pastureid') }}
+      ],
+      enableList: [{ id: 1, name: '是' }, { id: 0, name: '否' }], // 是否启用
+      attentionStatusList: [{ id: 1, name: '已关注公众号' }, { id: 0, name: '未关注公众号' }],
+      roleList: [], // 角色
+
+      table: {
+        getdataListParm: {
+          name: 'getuserallL',
+          page: 1,
+          offset: 1,
+          pagecount: parseInt(Cookies.get('pageCount')),
+          returntype: 'Map',
+          parammaps: {
+            pastureid: Cookies.get('pastureid'),
+            empCode: '',
+            empname: '',
+            enable: '',
+            startTime: '',
+            stopTime: '',
+            inputDatetime: ''
+          }
+        },
+        tableKey: 0,
+        list: [],
+        total: 0,
+        listLoading: true,
+        temp: {}
+      },
+      requestParam: {},
+      isokDisable: false,
+      selectList: [],
+      QRcode:{
+        dialogStatus: '',
+        dialogFormVisible:false,
+      },
+      textMap: {
+        QRcode:'提示'
+      },
+      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },
+      cellStyle: { padding: 0 + 'px' },
+      imgUrl:''
+
+    }
+  },
+
+  created() {
+    this.getList()
+    this.getDownList()
+    this.getButtons()
+  },
+
+  methods: {
+    getButtons() {
+      const Edit = 'User'
+      const isRoleEdit = checkButtons(JSON.parse(sessionStorage.getItem('buttons')), Edit)
+      this.isRoleEdit = isRoleEdit
+    },
+    getDownList() {
+      GetDataByNames(this.requestParams).then(response => {
+        this.roleList = response.data.getRoleAll.list
+      })
+    },
+    getList() {
+      this.table.listLoading = true
+      GetDataByName(this.table.getdataListParm).then(response => {
+        console.log('table数据', response.data.list)
+        if (response.data.list !== null) {
+          for (let i = 0; i < response.data.list.length; i++) {
+            this.$set(response.data.list[i], 'Edit', false) // 编辑
+            this.$set(response.data.list[i], 'NoEdit', true) // 不可编辑/输入
+            this.$set(response.data.list[i], 'isCreate', false) // 新增操作
+            this.$set(response.data.list[i], 'isUpdate', true) // 编辑操作
+            this.$set(response.data.list[i], 'isUpdateSave', false) // 编辑保存
+          }
+          this.table.list = response.data.list
+          this.table.pageNum = response.data.pageNum
+          this.table.pageSize = response.data.pageSize
+        } else {
+          this.table.list = []
+        }
+        this.table.total = response.data.total
+        setTimeout(() => {
+          this.table.listLoading = false
+        }, 100)
+      })
+    },
+    handleEnableChange() {
+      console.log('点击了是否启用')
+    },
+
+    form_search() {
+      console.log('点击了查询')
+      if (this.table.getdataListParm.parammaps.inputDatetime !== '' && this.table.getdataListParm.parammaps.inputDatetime !== null) {
+        this.table.getdataListParm.parammaps.startTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')
+        this.table.getdataListParm.parammaps.stopTime = parseTime(this.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')
+      } else {
+        this.table.getdataListParm.parammaps.inputDatetime = ''
+        this.table.getdataListParm.parammaps.startTime = ''
+        this.table.getdataListParm.parammaps.stopTime = ''
+      }
+      this.table.getdataListParm.offset = 1
+      this.getList()
+    },
+    handleRefresh() {
+      console.log('点击了重置')
+      this.table.getdataListParm.parammaps.empCode = ''
+      this.table.getdataListParm.parammaps.empname = ''
+      this.table.getdataListParm.parammaps.enable = ''
+      this.table.getdataListParm.parammaps.startTime = ''
+      this.table.getdataListParm.parammaps.stopTime = ''
+      this.table.getdataListParm.parammaps.inputDatetime = ''
+      this.table.getdataListParm.offset = 1
+      this.getList()
+    },
+
+    handleCreate() {
+      // 编辑true/不可编辑false
+      // 新增操true,编辑false,编辑保存false
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (this.table.list[i].Edit === true) {
+          console.log(123)
+          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
+          return false
+        }
+      }
+      this.table.list.unshift({ 'myId': (new Date()).valueOf(), 'Edit': true, 'NoEdit': false, 'isCreate': true, 'isUpdate': false, 'isUpdateSave': false, 'enable': 1, 'createdtime': parseTime(new Date(), '{y}-{m}-{d}'), 'createmp': Cookies.get('employename'), 'username': '', 'roleid': '' })
+    },
+    changeRolename(item) {
+      this.table.temp.rolename = this.roleList.find(obj => obj.id === item).rolename
+    },
+    createData(row) {
+      console.log('点击了新增保存', row)
+      this.table.temp.pastureid = Cookies.get('pastureid')
+      this.table.temp.empname = row.empname
+      this.table.temp.username = row.username
+      this.table.temp.phone = row.phone
+      this.table.temp.createmp = row.createmp
+      this.table.temp.enable = row.enable
+      this.table.temp.roleid = row.roleid
+      // 检验用户名称/角色是否为空
+      if (this.table.temp.username == '' && this.table.temp.roleid == '') {
+        this.$message({ type: 'error', message: '用户名称/角色不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.username == '') {
+        this.$message({ type: 'error', message: '用户名称不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.roleid == '') {
+        this.$message({ type: 'error', message: '角色不能为空', duration: 2000 })
+        return false
+      }
+      // 检验手机号是否为11位数字
+      if (this.table.temp.phone !== undefined && this.table.temp.phone !== '') {
+        const phone = /^\d{11}$/
+        if (!phone.test(this.table.temp.phone)) {
+          this.$message({ type: 'error', message: '请输入11位手机号', duration: 2000 })
+          return false
+        }
+      }
+      this.isokDisable = true
+      setTimeout(() => {
+        this.isokDisable = false
+      }, 1000)
+      this.requestParam.name = 'createUser'
+      this.table.temp.isgroups = Cookies.get('ispastureuse')
+      this.requestParam.parammaps = this.table.temp
+      PostDataByName(this.requestParam).then(response => {
+        console.log('新增保存发送参数', this.requestParam)
+        if (response.msg !== 'fail') {
+          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList()
+        } else {
+          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+        }
+      })
+    },
+    createCancel(row) {
+      console.log('点击了新增取消')
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (row.myId === this.table.list[i].myId) {
+          var listIndex = this.table.list.indexOf(this.table.list[i])
+        }
+        if (listIndex > -1) {
+          this.table.list.splice(listIndex, 1)
+          return
+        }
+      }
+    },
+    handleUpdate(row) {
+      for (let i = 0; i < this.table.list.length; i++) {
+        if (this.table.list[i].Edit == true) {
+          this.$message({ type: 'error', message: '当前内容未保存,请点击取消或保存继续进行操作', duration: 2000 })
+          return false
+        }
+      }
+      // 编辑true,不可编辑false
+      row.Edit = true
+      row.NoEdit = false
+      // 新增false,编辑false,编辑保存true
+      row.isCreate = false
+      row.isUpdate = false
+      row.isUpdateSave = true
+      row.roleid = String(row.roleid)
+      this.table.temp.roleid = row.roleid
+      this.table.temp.rolename = row.rolename
+    },
+    updateData(row) {
+      console.log('点击了编辑保存', row)
+      this.table.temp.pastureid = row.pastureid
+      this.table.temp.empname = row.empname
+      this.table.temp.username = row.username
+      this.table.temp.phone = row.phone
+      this.table.temp.createmp = row.createmp
+      this.table.temp.enable = row.enable
+      this.table.temp.roleid = row.roleid
+      this.table.temp.id = row.id
+      // 校验用户名称/角色是否为空
+      if (this.table.temp.username == '' && this.table.temp.roleid == '') {
+        this.$message({ type: 'error', message: '用户名称/角色不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.username == '') {
+        this.$message({ type: 'error', message: '用户名称不能为空', duration: 2000 })
+        return false
+      } else if (this.table.temp.roleid == '') {
+        this.$message({ type: 'error', message: '角色不能为空', duration: 2000 })
+        return false
+      }
+      console.log(this.table.temp.phone)
+      // 检验手机号是否为11位数字
+      if (this.table.temp.phone !== undefined && this.table.temp.phone !== '') {
+        const phone = /^\d{11}$/
+        if (!phone.test(this.table.temp.phone)) {
+          this.$message({ type: 'error', message: '请输入11位手机号', duration: 2000 })
+          return false
+        }
+      }
+      this.isokDisable = true
+      setTimeout(() => {
+        this.isokDisable = false
+      }, 1000)
+      this.requestParam.name = 'updateUser'
+      this.requestParam.parammaps = this.table.temp
+      PostDataByName(this.requestParam).then(response => {
+        console.log('新增保存发送参数', this.requestParam)
+        if (response.msg !== 'fail') {
+          this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 })
+          this.getList()
+        } else {
+          this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 })
+        }
+      })
+    },
+    updateCancel(row) {
+      console.log('点击了编辑取消')
+      // 编辑false,不可编辑true
+      row.Edit = false
+      row.NoEdit = true
+      // 新增false,编辑true,编辑保存false
+      row.isCreate = false
+      row.isUpdate = true
+      row.isUpdateSave = false
+      this.getList()
+    },
+    handleRowDelete(row) {
+      console.log('点击了行内删除')
+      MessageBox.confirm('是否确认删除此信息?', {
+        confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+      }).then(() => {
+        this.selectList = []
+        this.requestParam.name = 'deleteUser'
+        this.requestParam.parammaps = {}
+        this.requestParam.parammaps.pastureid = row.pastureid
+        this.requestParam.parammaps.id = row.id
+        PostDataByName(this.requestParam).then(response => {
+        	if (response.msg === 'fail') {
+        		this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
+        	} else {
+        		this.$notify({ title: '成功', message: '删除成功', type: 'success', duration: 2000 })
+        		this.getList()
+        	}
+        })
+      }).catch(() => {
+        this.$message({ type: 'info', message: '已取消删除' })
+      })
+    },
+    handleSelectionChange(val) {
+      console.log('勾选数据', val)
+      this.selectList = val
+    },
+    form_delete() {
+      console.log('点击了删除')
+      if (this.selectList.length == 0) {
+        this.$message({ type: 'error', message: '请选择用户信息', duration: 2000 })
+      } else {
+        MessageBox.confirm('是否确认删除此信息?', {
+          confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning'
+        }).then(() => {
+          console.log(this.selectList)
+          this.requestParam.common = { 'returnmap': '0' }
+          this.requestParam.data = []
+          this.requestParam.data[0] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.selectList }}
+          this.requestParam.data[0].children = []
+          this.requestParam.data[0].children[0] = { 'name': 'deleteUser', 'type': 'e', 'parammaps': {
+            id: '@insertSpotList.id',
+            pastureid: '@insertSpotList.pastureid'
+          }}
+          ExecDataByConfig(this.requestParam).then(response => {
+            console.log('删除保存发送参数', this.requestParam)
+            if (response.msg === 'fail') {
+              this.$notify({ title: '删除失败', message: response.data, type: 'warning', duration: 2000 })
+            } else {
+              this.$notify({ title: '', message: '删除成功', type: 'success', duration: 2000 })
+              this.getList()
+            }
+          })
+        })
+      }
+    },
+    handleResetPassword(row) {
+      console.log(row,'hss')
+      MessageBox.confirm('是否确认将此用户密码重置为默认密码Kpt@.666', {
+        confirmButtonText: '确认',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.requestParam.name = 'initPassword'
+        this.requestParam.parammaps = {}
+        this.requestParam.parammaps.pastureid = row.pastureid
+        this.requestParam.parammaps.id = row.id
+        console.log(this.requestParam);
+        PostDataByName(this.requestParam).then(() => {
+          this.getList()
+          this.resetRequestParam()
+          this.dialogFormVisible = false
+          this.$notify({
+            title: '成功',
+            message: '重置密码成功',
+            type: 'success',
+            duration: 2000
+          })
+        })
+      })
+    },
+    handleScanningCode(row){
+      this.QRcode.dialogStatus = 'QRcode'
+      this.QRcode.dialogFormVisible = true
+      this.imgUrl = 'http://tmrwatch.cn/wx/code?scene_str=tmrwatch.'+ Cookies.get('pastureid')+'.'+ row.username + '.'+row.empname
+      console.log(this.imgUrl)
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+  // .search{margin-top:10px;}
+  .QRcode{display:flex;justify-content: center; align-items:center;}
+  .content{
+    /* margin-top: 100px; */
+    width: 500px;
+  }
+  .content img{
+    max-width:300px;
+
+  }
+ </style>