|
@@ -1,7 +1,7 @@
|
|
|
<script setup lang="ts">
|
|
|
import { reactive, ref, onMounted, watch } from "vue";
|
|
|
import { useColumns } from "./columns";
|
|
|
-import { httpList, httpStatus } from "/@/api/interest/role";
|
|
|
+import { httpList, httpStatus, httpDetail, httpAdd } from "/@/api/interest/role";
|
|
|
import { type FormInstance } from "element-plus";
|
|
|
import { ElMessage } from "element-plus";
|
|
|
import { TableProBar } from "/@/components/ReTable";
|
|
@@ -124,6 +124,31 @@ const resetForm = (formEl: FormInstance | undefined) => {
|
|
|
onSearch();
|
|
|
};
|
|
|
|
|
|
+async function setRoles() {
|
|
|
+ const { data } = await httpList({ level: "2", size: 1000, companyNo: 'GS2203161855277894' });
|
|
|
+ const { list } = data;
|
|
|
+
|
|
|
+ for (const item of list) {
|
|
|
+ const { data: detail } = await httpDetail({ roleid: item.id });
|
|
|
+
|
|
|
+ const {
|
|
|
+ action,
|
|
|
+ private_data,
|
|
|
+ role_name,
|
|
|
+ } = detail;
|
|
|
+
|
|
|
+ const params = {
|
|
|
+ action:Array.isArray(action) ? action :action.split(','),
|
|
|
+ level: 2,
|
|
|
+ companyNo: currentCompany.value.companyNo,
|
|
|
+ role_name,
|
|
|
+ private_data: Array.isArray(private_data) ? private_data : private_data.split(',')
|
|
|
+ };
|
|
|
+
|
|
|
+ await httpAdd(params);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
powers.value = useUserStoreHook().getMenuActions("role");
|
|
|
if (powers.value.some(i => i == "001")) {
|
|
@@ -139,137 +164,64 @@ watch(
|
|
|
|
|
|
<template>
|
|
|
<div class="main role">
|
|
|
+ <el-button @click="setRoles">设置角色</el-button>
|
|
|
+
|
|
|
<div v-show="powers.some(i => i == '001')">
|
|
|
- <el-form
|
|
|
- ref="formRef"
|
|
|
- :inline="true"
|
|
|
- :model="form"
|
|
|
- size="small"
|
|
|
- :label-width="0"
|
|
|
- class="bg-white w-99/100 pl-8 pt-4"
|
|
|
- >
|
|
|
+ <el-form ref="formRef" :inline="true" :model="form" size="small" :label-width="0"
|
|
|
+ class="bg-white w-99/100 pl-8 pt-4">
|
|
|
<el-form-item prop="status">
|
|
|
- <el-select
|
|
|
- v-model="form.status"
|
|
|
- style="width: 100%"
|
|
|
- placeholder="角色状态"
|
|
|
- clearable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(si, sii) in statusList"
|
|
|
- :key="'status' + si.value + sii"
|
|
|
- :label="si.label"
|
|
|
- :value="si.value"
|
|
|
- />
|
|
|
+ <el-select v-model="form.status" style="width: 100%" placeholder="角色状态" clearable>
|
|
|
+ <el-option v-for="(si, sii) in statusList" :key="'status' + si.value + sii" :label="si.label"
|
|
|
+ :value="si.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="role_name">
|
|
|
<el-input v-model="form.role_name" placeholder="角色名称" clearable />
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- :icon="useRenderIcon('search')"
|
|
|
- :loading="loading"
|
|
|
- @click="resetSearch"
|
|
|
- >
|
|
|
+ <el-button type="primary" :icon="useRenderIcon('search')" :loading="loading" @click="resetSearch">
|
|
|
搜索
|
|
|
</el-button>
|
|
|
- <el-button
|
|
|
- :icon="useRenderIcon('refresh')"
|
|
|
- @click="resetForm(formRef)"
|
|
|
- >
|
|
|
+ <el-button :icon="useRenderIcon('refresh')" @click="resetForm(formRef)">
|
|
|
重置
|
|
|
</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
- <TableProBar
|
|
|
- title="公司角色管理"
|
|
|
- :loading="loading"
|
|
|
- :dataList="dataList"
|
|
|
- @refresh="onSearch"
|
|
|
- >
|
|
|
+ <TableProBar title="公司角色管理" :loading="loading" :dataList="dataList" @refresh="onSearch">
|
|
|
<template #buttons>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- size="small"
|
|
|
- v-if="powers.some(i => i == '002')"
|
|
|
- :icon="useRenderIcon('add')"
|
|
|
- @click="editItem('', 'add')"
|
|
|
- >
|
|
|
+ <el-button type="primary" size="small" v-if="powers.some(i => i == '002')" :icon="useRenderIcon('add')"
|
|
|
+ @click="editItem('', 'add')">
|
|
|
新增角色
|
|
|
</el-button>
|
|
|
</template>
|
|
|
<template v-slot="{ size, checkList }">
|
|
|
- <PureTable
|
|
|
- border
|
|
|
- align="left"
|
|
|
- showOverflowTooltip
|
|
|
- table-layout="auto"
|
|
|
- size="small"
|
|
|
- :data="dataList"
|
|
|
- :columns="columns"
|
|
|
- :checkList="checkList"
|
|
|
- :pagination="pagination"
|
|
|
+ <PureTable border align="left" showOverflowTooltip table-layout="auto" size="small" :data="dataList"
|
|
|
+ :columns="columns" :checkList="checkList" :pagination="pagination"
|
|
|
:paginationSmall="size === 'small' ? true : false"
|
|
|
- :header-cell-style="{ background: '#fafafa', color: '#606266' }"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- >
|
|
|
+ :header-cell-style="{ background: '#fafafa', color: '#606266' }" @selection-change="handleSelectionChange"
|
|
|
+ @size-change="handleSizeChange" @current-change="handleCurrentChange">
|
|
|
<template #operation="{ row }">
|
|
|
- <el-button
|
|
|
- class="reset-margin"
|
|
|
- link
|
|
|
- type="primary"
|
|
|
- v-if="powers.some(i => i == '007')"
|
|
|
- :size="size"
|
|
|
- @click="editItem(row.id, 'view')"
|
|
|
- :icon="useRenderIcon('eye-view')"
|
|
|
- />
|
|
|
- <el-button
|
|
|
- class="reset-margin"
|
|
|
- link
|
|
|
- type="primary"
|
|
|
- :size="size"
|
|
|
- v-if="powers.some(i => i == '005')"
|
|
|
- @click="editItem(row.id, 'edit')"
|
|
|
- :icon="useRenderIcon('edits')"
|
|
|
- />
|
|
|
- <el-popconfirm
|
|
|
- :title="row.status === '1' ? '改为禁用?' : '改为启用?'"
|
|
|
- v-if="
|
|
|
- (powers.some(i => i == '004') && row.status + '' === '1') ||
|
|
|
- (powers.some(i => i == '003') && row.status + '' === '0')
|
|
|
- "
|
|
|
- @confirm="handleStatus(row)"
|
|
|
- >
|
|
|
+ <el-button class="reset-margin" link type="primary" v-if="powers.some(i => i == '007')" :size="size"
|
|
|
+ @click="editItem(row.id, 'view')" :icon="useRenderIcon('eye-view')" />
|
|
|
+ <el-button class="reset-margin" link type="primary" :size="size" v-if="powers.some(i => i == '005')"
|
|
|
+ @click="editItem(row.id, 'edit')" :icon="useRenderIcon('edits')" />
|
|
|
+ <el-popconfirm :title="row.status === '1' ? '改为禁用?' : '改为启用?'" v-if="(powers.some(i => i == '004') && row.status + '' === '1') ||
|
|
|
+ (powers.some(i => i == '003') && row.status + '' === '0')
|
|
|
+ " @confirm="handleStatus(row)">
|
|
|
<template #reference>
|
|
|
- <el-button
|
|
|
- class="reset-margin"
|
|
|
- link
|
|
|
- type="primary"
|
|
|
- :size="size"
|
|
|
- :icon="
|
|
|
- useRenderIcon(
|
|
|
- row.status === '1'
|
|
|
- ? 'close-circle-line'
|
|
|
- : 'checkbox-circle-line'
|
|
|
- )
|
|
|
- " /></template
|
|
|
- ></el-popconfirm>
|
|
|
+ <el-button class="reset-margin" link type="primary" :size="size" :icon="useRenderIcon(
|
|
|
+ row.status === '1'
|
|
|
+ ? 'close-circle-line'
|
|
|
+ : 'checkbox-circle-line'
|
|
|
+ )
|
|
|
+ " /></template></el-popconfirm>
|
|
|
</template>
|
|
|
</PureTable>
|
|
|
</template>
|
|
|
</TableProBar>
|
|
|
- <addEdit
|
|
|
- :itemId="itemId"
|
|
|
- :isDetails="isDetails"
|
|
|
- :show-model="showModel"
|
|
|
- @refresh="submitRefresh"
|
|
|
- @cancel="submitCancel"
|
|
|
- />
|
|
|
+ <addEdit :itemId="itemId" :isDetails="isDetails" :show-model="showModel" @refresh="submitRefresh"
|
|
|
+ @cancel="submitCancel" />
|
|
|
</div>
|
|
|
<NoAuth v-show="!powers.some(i => i == '001')" />
|
|
|
</div>
|