沈丘营商办后台前端项目
wjt
2024-06-24 cace6971fbdb31ade5c5ae2cdca781ff50f9510c
src/views/system/user/index.vue
@@ -72,8 +72,8 @@
        <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" v-if="columns[0].visible" />
          <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
          <!-- <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" /> -->
          <el-table-column label="姓名" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
          <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
          <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
          <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
@@ -86,23 +86,24 @@
              <span>{{ parseTime(scope.row.createTime) }}</span>
            </template>
          </el-table-column>
          <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
          <el-table-column label="操作" align="center" width="380" class-name="small-padding fixed-width">
            <template #default="scope">
              <el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1">
                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']"></el-button>
              </el-tooltip>
              <el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
                <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']"></el-button>
              </el-tooltip>
              <el-tooltip content="重置密码" placement="top" v-if="scope.row.userId !== 1">
              <!-- <el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1"> -->
                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']">修改</el-button>
              <!-- </el-tooltip> -->
              <!-- <el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1"> -->
                <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']">删除</el-button>
              <!-- </el-tooltip> -->
              <!-- <el-tooltip content="重置密码" placement="top" v-if="scope.row.userId !== 1">
                <el-button link type="error" icon="Key" @click="handleResetPwd(scope.row)" v-hasPermi="['system:user:resetPwd']"></el-button>
              </el-tooltip>
              <el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1">
                <el-button link type="success" icon="CircleCheck" @click="handleAuthRole(scope.row)" v-hasPermi="['system:user:edit']"></el-button>
              </el-tooltip>
              </el-tooltip> -->
              <!-- <el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1"> -->
                <el-button link type="success" icon="CircleCheck" @click="handleAuthRole(scope.row)" v-hasPermi="['system:user:edit']">分配角色</el-button>
              <!-- </el-tooltip> -->
              <!-- <el-tooltip content="重置支付密码" placement="top" v-if="scope.row.userId !== 1">
                <el-button link type="danger" icon="Key" @click="handlePayPwd(scope.row)" v-hasPermi="['system:user:resetPwd']"></el-button>
              </el-tooltip> -->
              <el-button link type="success" icon="Key" @click="handlerDept(scope.row)" v-hasPermi="['system:user:resetPwd']">分管机构</el-button>
            </template>
          </el-table-column>
        </el-table>
@@ -150,11 +151,11 @@
              <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
            </el-form-item>
          </el-col> -->
          <el-col :span="12">
          <!-- <el-col :span="12">
            <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
              <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password />
            </el-form-item>
          </el-col>
          </el-col> -->
        </el-row>
        <el-row>
          <el-col :span="12">
@@ -235,13 +236,25 @@
        </div>
      </template>
    </el-dialog>
    <!-- 多机构绑定 -->
     <el-dialog title="分管机构"  v-model="openDialog" width="400px" append-to-body>
        <el-tree :data="treeData" ref="depttree" :default-expanded-keys="defaultKeys" :props="{label: 'deptName', value: 'deptId', children: 'child' }" node-key="deptId" :default-checked-keys="defaultKeys" show-checkbox>
        </el-tree>
        <template #footer>
          <div class="dialog-footer">
            <el-button type="primary" @click="submitFileFormSave">确 定</el-button>
            <el-button @click="openDialog = false">取 消</el-button>
          </div>
        </template>
     </el-dialog>
  </div>
</template>
<script setup name="User">
import { getToken } from "@/utils/auth";
import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser, deptTreeSelect, resetPayPwd,updateUserProfile } from "@/api/system/user";
import { batchUserDeptView,batchUserDeptTree,batchUserDeptSave  } from '@/api/system/company/company'
const router = useRouter();
const { proxy } = getCurrentInstance();
const { sys_normal_disable, sys_user_sex } = proxy.useDict("sys_normal_disable", "sys_user_sex");
@@ -338,6 +351,8 @@
function getDeptTree() {
  deptTreeSelect().then((response) => {
    deptOptions.value = response.data;
    queryParams.value.deptId = response.data[0].id;
    getList()
  });
}
/** 查询用户列表 */
@@ -567,5 +582,43 @@
}
getDeptTree();
getList();
// getList();
const openDialog = ref(false)
const userInfo = reactive({
  userId: "",
})
const treeData = ref([])
const defaultKeys = ref([])
const depttree = ref()
function handlerDept(item) {
  userInfo.userId = item.userId
  openDialog.value = true
  batchUserDeptTreeHttp(item.deptId)
  batchUserDeptViewHttp(userInfo.userId)
}
function batchUserDeptViewHttp(userId) {
  batchUserDeptView({userId}).then(val => {
    defaultKeys.value = val.data.deptIds
  })
}
function batchUserDeptTreeHttp(deptId) {
  batchUserDeptTree({deptId}).then(val => {
    val.data.child.forEach(item => {
      // item.disabled = true
      if(item.deptId == deptId) {
        item.disabled = true
      }
    })
    treeData.value = [val.data]
  })
}
function submitFileFormSave() {
  userInfo.deptIds = depttree.value.getCheckedKeys()
  batchUserDeptSave(userInfo).then(val => {
    if(val.code == 200){
      openDialog.value = false
    }
  })
}
</script>