yuang-framework-ui-pc
Version:
yuang-framework-ui-pc Library
235 lines (234 loc) • 7.57 kB
JavaScript
import { defineComponent, ref, onMounted, watch, resolveComponent, createElementBlock, openBlock, Fragment, createVNode, withCtx, renderList, unref, createBlock, createCommentVNode, createTextVNode, toDisplayString } from "vue";
import RoleQuery from "./role-query";
import { http } from "yuang-framework-ui-common/lib/config/httpConfig";
import { useStatusEnumList } from "yuang-framework-ui-common/lib/hooks/framework/frameworkEnum";
import { deepClone } from "yuang-framework-ui-common/lib/utils/objectUtils";
const _sfc_main = /* @__PURE__ */ defineComponent({
...{ name: "UimsUserList" },
__name: "role-list",
props: {
param: {},
uimsApplication: {},
selectionList: {}
},
emits: ["update:selectionList"],
setup(__props, { emit: __emit }) {
const props = __props;
const emit = __emit;
const queryRef = ref(null);
const tableRef = ref(null);
const columns = ref([
{
type: "selection",
columnKey: "selection",
width: 50,
align: "center",
fixed: "left",
selectable: (row) => {
return !row.isRoleExistsUser;
}
},
{
type: "index",
columnKey: "index",
label: "编号",
width: 70,
align: "center",
fixed: "left"
},
{
prop: "name",
label: "角色名称",
sortable: "custom",
minWidth: 200,
align: "left",
slot: "name"
},
{
prop: "code",
label: "角色代码",
sortable: "custom",
minWidth: 180,
align: "left"
},
{
prop: "status",
label: "状态",
width: 90,
align: "center",
sortable: "custom",
slot: "status"
},
{
prop: "remark",
label: "备注",
minWidth: 240,
align: "center"
},
{
prop: "sequence",
label: "排序号",
sortable: "custom",
width: 100,
align: "center"
},
{
prop: "createUserName",
label: "创建人",
sortable: "custom",
width: 100,
align: "center"
},
{
prop: "createTime",
label: "创建时间",
sortable: "custom",
width: 180,
align: "center"
},
{
prop: "lastUpdateUserName",
label: "最后更新人",
sortable: "custom",
width: 120,
align: "center"
},
{
prop: "lastUpdateTime",
label: "最后更新时间",
sortable: "custom",
width: 180,
align: "center"
},
{
columnKey: "action",
label: "操作",
width: 80,
align: "center",
slot: "action",
fixed: "right"
}
]);
const selections = ref([]);
const tableList = ref([]);
const { statusEnumList } = useStatusEnumList();
onMounted(() => {
initSelectionList();
});
const initSelectionList = () => {
selections.value = deepClone(props.selectionList ?? []);
console.log("props.param", props.param);
console.log("selections.value", selections.value);
};
const datasource = async ({ queryParam, pageParam, orderParamList }) => {
var _a, _b;
const data = {
...queryParam,
...pageParam,
orderParamList,
uimsApplicationIdForEqual: props.uimsApplication.id,
// 查询角色存在的用户id
selectRoleExistsUserIdForEqual: ((_a = props.param) == null ? void 0 : _a.isDisableSelectRoleOfExistsUser) && ((_b = props.param) == null ? void 0 : _b.selectRoleExistsUserId),
// 是否排除所有人角色
isExcludeEveryOne: true
};
const res = await http.post(`/uims-api/admin/uims-role/selectPage`, data);
tableList.value = res.data.data.records;
return res.data.data;
};
const queryPage = () => {
var _a, _b, _c;
selections.value = [];
(_c = (_a = tableRef.value) == null ? void 0 : _a.reload) == null ? void 0 : _c.call(_a, { currentPage: 1, queryParam: (_b = queryRef.value) == null ? void 0 : _b.queryForm });
};
watch(
() => props.uimsApplication.id,
() => {
var _a, _b;
(_b = (_a = queryRef.value) == null ? void 0 : _a.resetFields) == null ? void 0 : _b.call(_a);
queryPage();
initSelectionList();
}
);
watch(
() => selections.value,
(newSelections) => {
let tempSelections = deepClone(newSelections ?? []);
let updateSelectionList = deepClone(props.selectionList ?? []);
tempSelections.forEach((item) => {
const isRepeat = updateSelectionList.some((old) => old.id === item.id);
if (!isRepeat) {
updateSelectionList.push(item);
}
});
updateSelectionList = updateSelectionList.filter((item) => {
return tempSelections.some((newItem) => newItem.id === item.id) || !tableList.value.some((t) => t.id === item.id);
});
console.log("updateSelectionList", updateSelectionList);
emit("update:selectionList", updateSelectionList);
}
);
return (_ctx, _cache) => {
const _component_el_tag = resolveComponent("el-tag");
const _component_ele_pro_table = resolveComponent("ele-pro-table");
return openBlock(), createElementBlock(Fragment, null, [
createVNode(RoleQuery, {
ref_key: "queryRef",
ref: queryRef,
style: { "margin-bottom": "-14px" },
onQuery: queryPage
}, null, 512),
createVNode(_component_ele_pro_table, {
ref_key: "tableRef",
ref: tableRef,
"row-key": "id",
border: "",
sticky: false,
columns: columns.value,
datasource,
"show-overflow-tooltip": true,
selections: selections.value,
"onUpdate:selections": _cache[0] || (_cache[0] = ($event) => selections.value = $event),
"highlight-current-row": true,
"header-cell-style": { "text-align": "center" },
"footer-style": { paddingBottom: "16px" }
}, {
name: withCtx(({ row }) => [
createTextVNode(toDisplayString(row.name) + " ", 1),
row.isSystemRole ? (openBlock(), createBlock(_component_el_tag, {
key: 0,
type: "warning",
"disable-transitions": true
}, {
default: withCtx(() => _cache[1] || (_cache[1] = [
createTextVNode("系统角色")
])),
_: 1,
__: [1]
})) : createCommentVNode("", true)
]),
status: withCtx(({ row }) => [
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(statusEnumList), (item, index) => {
return openBlock(), createElementBlock(Fragment, null, [
row.status == item.value ? (openBlock(), createBlock(_component_el_tag, {
type: item.tagType,
"disable-transitions": true,
key: index
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(item.name), 1)
]),
_: 2
}, 1032, ["type"])) : createCommentVNode("", true)
], 64);
}), 256))
]),
_: 1
}, 8, ["columns", "selections"])
], 64);
};
}
});
export {
_sfc_main as default
};