fix: 资源路径调整
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 795 B After Width: | Height: | Size: 795 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -12,7 +12,7 @@ const proxy = {
|
||||
changeOrigin: true,
|
||||
},
|
||||
'/carbon-smart': {
|
||||
target: 'http://123.60.103.97:8224',
|
||||
target: 'http://192.168.112.144:8224',
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/carbon-smart/, ''),
|
||||
},
|
||||
|
@@ -10,4 +10,5 @@ export enum enterPrise {
|
||||
freeze = `${BASE_URL}/admin/org/freeze`,
|
||||
getCode = `${BASE_URL}/admin/org/getCode`,
|
||||
queryRootAc = `${BASE_URL}/admin/org/queryRootAc`,
|
||||
permissionTree = `${BASE_URL}/api/dept/permissionTree`,
|
||||
}
|
||||
|
@@ -9,7 +9,13 @@ import { enterPrise } from '/@/api/origanizemanage';
|
||||
type status = 'NORMAL' | 'FREEZE';
|
||||
export const formConfig = [
|
||||
{
|
||||
field: 'projectId',
|
||||
field: 'orgId',
|
||||
label: '企业ID',
|
||||
component: 'NsInput',
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
field: 'orgCode',
|
||||
label: '组织ID',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
@@ -18,29 +24,21 @@ export const formConfig = [
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入组织编号',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
field: 'jituanname',
|
||||
field: 'orgName',
|
||||
label: '企业名称',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
placeholder: '请输入企业名称',
|
||||
placeholder: '请输入',
|
||||
maxLength: 20,
|
||||
},
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入企业名称',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
rules: [{ required: true }],
|
||||
},
|
||||
{
|
||||
field: 'jituanname',
|
||||
field: 'cliqueName',
|
||||
label: '集团名称',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
@@ -52,10 +50,11 @@ export const formConfig = [
|
||||
field: 'cityName',
|
||||
label: '省市区',
|
||||
component: 'NsCascader',
|
||||
fieldMap: ['province', 'city', 'county'],
|
||||
componentProps: {
|
||||
placeholder: '请选择',
|
||||
api: enterPrise.getArea,
|
||||
fieldNames: { label: 'regionName', value: 'regionCode' },
|
||||
fieldNames: { label: 'regionName', value: 'regionName' },
|
||||
showSearch: true,
|
||||
},
|
||||
rules: [
|
||||
@@ -104,11 +103,24 @@ export const formConfig = [
|
||||
message: '请输入联系电话',
|
||||
trigger: 'blur',
|
||||
},
|
||||
{
|
||||
pattern: /^1[3-9]\d{9}$/,
|
||||
message: '请输入正确的联系电话',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export const tableConfig = (visible) => {
|
||||
export const tableConfig = ({
|
||||
visible,
|
||||
formData,
|
||||
opType,
|
||||
getOrgRandomCode,
|
||||
borderVisible,
|
||||
serviceVisible,
|
||||
server: { getTree },
|
||||
}: any) => {
|
||||
return {
|
||||
// title: '企业管理',
|
||||
api: enterPrise.list,
|
||||
@@ -118,6 +130,9 @@ export const tableConfig = (visible) => {
|
||||
name: 'RoleTypeAdd',
|
||||
type: 'primary',
|
||||
handle: () => {
|
||||
formData.value = {};
|
||||
opType.value = 'add';
|
||||
getOrgRandomCode && getOrgRandomCode();
|
||||
visible.value = true;
|
||||
},
|
||||
},
|
||||
@@ -135,15 +150,19 @@ export const tableConfig = (visible) => {
|
||||
},
|
||||
{
|
||||
title: '组织ID',
|
||||
dataIndex: 'projectId',
|
||||
dataIndex: 'orgCode',
|
||||
},
|
||||
{
|
||||
title: '集团名称',
|
||||
dataIndex: 'cliqueName',
|
||||
textNumber: 8,
|
||||
textEllipsis: true,
|
||||
},
|
||||
{
|
||||
title: '组织名称',
|
||||
dataIndex: 'orgName',
|
||||
textNumber: 8,
|
||||
textEllipsis: true,
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
@@ -157,12 +176,16 @@ export const tableConfig = (visible) => {
|
||||
dataIndex: 'area',
|
||||
customRender: ({ record }) => {
|
||||
const { province = '', city = '', county = '' } = record;
|
||||
return `${province}/${city}/${county}`;
|
||||
const result = [province, city];
|
||||
county && result.push(county);
|
||||
return result.join('/');
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '地址',
|
||||
dataIndex: 'address',
|
||||
textNumber: 8,
|
||||
textEllipsis: true,
|
||||
},
|
||||
{
|
||||
title: '联系人',
|
||||
@@ -181,12 +204,11 @@ export const tableConfig = (visible) => {
|
||||
label: '编辑',
|
||||
name: 'RoleTypeEdit',
|
||||
handle: (record: any) => {
|
||||
console.log(record, 'record');
|
||||
const { province, city, county } = record;
|
||||
formData.value = record;
|
||||
opMap.type = 'edit';
|
||||
opMap.fuc = (formData: any) => {
|
||||
Object.assign(mockData.value.filter((item) => item.id === record.id)[0], formData);
|
||||
};
|
||||
formData.value.cityName = [province, city];
|
||||
county && formData.value.cityName.push(county);
|
||||
opType.value = 'edit';
|
||||
visible.value = true;
|
||||
},
|
||||
},
|
||||
@@ -201,6 +223,8 @@ export const tableConfig = (visible) => {
|
||||
label: '服务',
|
||||
handle: (record: any) => {
|
||||
console.log(record, 'record');
|
||||
const { projectId } = record;
|
||||
getTree({ projectId: 'beijingDQ' });
|
||||
serviceVisible.value = true;
|
||||
},
|
||||
},
|
||||
@@ -278,28 +302,19 @@ export const tableConfig = (visible) => {
|
||||
formConfig: {
|
||||
schemas: [
|
||||
{
|
||||
field: 'zuzhibianhao',
|
||||
field: 'orgCode',
|
||||
label: '组织ID',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
maxLength: 20,
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'jituanname',
|
||||
field: 'cliqueName',
|
||||
label: '集团名称',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
maxLength: 20,
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'zuzhiname',
|
||||
field: 'orgName',
|
||||
label: '组织名称',
|
||||
component: 'NsInput',
|
||||
componentProps: {
|
||||
maxLength: 20,
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
|
@@ -5,54 +5,38 @@
|
||||
<ns-drawer v-bind="addDrawerConfig">
|
||||
<ns-form ref="formRef" :schemas="formSchema" :model="formData" formLayout="vertical" />
|
||||
<template #footer>
|
||||
<a-button style="margin-right: 8px" @click="onClose">取消</a-button>
|
||||
<a-button type="primary" @click="onEdit">确定</a-button>
|
||||
<ns-button style="margin-right: 8px" @click="onClose">取消</ns-button>
|
||||
<ns-button type="primary" @click="operateForm" :disabled="!formDisabled">确定</ns-button>
|
||||
</template>
|
||||
</ns-drawer>
|
||||
<a-drawer
|
||||
<ns-drawer
|
||||
:width="600"
|
||||
:visible="borderVisible"
|
||||
:body-style="{ paddingBottom: '80px' }"
|
||||
:footer-style="{ textAlign: 'right' }"
|
||||
destroyOnClose
|
||||
@close="onClose">
|
||||
<a-button type="primary" @click="borderAdd">新增</a-button>
|
||||
<a-button type="primary" style="margin-left: 10px; margin-bottom: 10px" @click="borderAddSon"
|
||||
>新增子集</a-button
|
||||
<ns-button type="primary" @click="borderAdd">新增</ns-button>
|
||||
<ns-button type="primary" style="margin-left: 10px; margin-bottom: 10px" @click="borderAddSon"
|
||||
>新增子集</ns-button
|
||||
>
|
||||
<a-directory-tree @select="handleSelect" multiple :tree-data="treeData">
|
||||
<template #title="{ title, key }">
|
||||
{{ title }}
|
||||
<a-button type="link" @click="editTree(title, key)">编辑</a-button>
|
||||
<a-button type="link" danger @click="deleteTree(title, key)">删除</a-button>
|
||||
<ns-button type="link" @click="editTree(title, key)">编辑</ns-button>
|
||||
<ns-button type="link" danger @click="deleteTree(title, key)">删除</ns-button>
|
||||
</template>
|
||||
</a-directory-tree>
|
||||
</a-drawer>
|
||||
</ns-drawer>
|
||||
|
||||
<a-drawer
|
||||
:width="600"
|
||||
:visible="serviceVisible"
|
||||
:body-style="{ paddingBottom: '80px' }"
|
||||
:footer-style="{ textAlign: 'right' }"
|
||||
destroyOnClose
|
||||
@close="onClose">
|
||||
<a-input-search
|
||||
<ns-drawer v-bind="serverDrawer">
|
||||
<ns-input-search
|
||||
placeholder="请选择开通模块"
|
||||
v-model:value="searchValue"
|
||||
style="margin-bottom: 8px"
|
||||
@search="onSearch" />
|
||||
<a-tree
|
||||
:tree-data="treeData"
|
||||
v-model:checkedKeys="checkedKeys"
|
||||
checkable
|
||||
@select="ServiceSelect">
|
||||
<template #title="{ title }">
|
||||
{{ title }}
|
||||
</template>
|
||||
</a-tree>
|
||||
<ns-button style="margin: 20px" type="primary" @click="onClose">取消</ns-button>
|
||||
<ns-button type="primary" @click="Sure">确定</ns-button>
|
||||
</a-drawer>
|
||||
<a-tree v-if="treeData?.length" v-model:checkedKeys="checkedKeys" v-bind="serverTree" />
|
||||
</ns-drawer>
|
||||
|
||||
<TreeAdd ref="treeAdd" />
|
||||
</template>
|
||||
@@ -85,17 +69,98 @@
|
||||
const serviceVisible = ref(false);
|
||||
const treeAddVisible = ref(false);
|
||||
const formSchema = formConfig;
|
||||
const opType = ref<string>('add');
|
||||
const calMap = {
|
||||
add: enterPrise.save,
|
||||
edit: enterPrise.edit,
|
||||
};
|
||||
const comApi = computed(() => {
|
||||
return calMap[opType.value as keyof typeof calMap];
|
||||
});
|
||||
const tableConfig = computed(() => {
|
||||
return insertConfig(visible);
|
||||
return insertConfig({
|
||||
visible,
|
||||
formData,
|
||||
opType,
|
||||
getOrgRandomCode,
|
||||
borderVisible,
|
||||
serviceVisible,
|
||||
server: {
|
||||
getTree,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
const getOrgRandomCode = () => {
|
||||
http.post(enterPrise.getCode).then((res) => {
|
||||
formData.value.projectId = res.data;
|
||||
formData.value.orgCode = res.data;
|
||||
});
|
||||
};
|
||||
getOrgRandomCode();
|
||||
|
||||
const onClose = () => {
|
||||
visible.value = false;
|
||||
borderVisible.value = false;
|
||||
serviceVisible.value = false;
|
||||
};
|
||||
|
||||
// 企业表单drawer
|
||||
const addDrawerConfig = ref({
|
||||
width: '520',
|
||||
visible: visible,
|
||||
footerStyle: { textAlign: 'right' },
|
||||
destroyOnClose: true,
|
||||
onClose: onClose,
|
||||
});
|
||||
|
||||
const formDisabled = computed(() => {
|
||||
return formRef.value?.validateResult;
|
||||
});
|
||||
|
||||
//企业表单数据操作
|
||||
const operateForm = () => {
|
||||
formRef.value?.triggerSubmit().then((res) => {
|
||||
console.log(formData.value, 'formData.value');
|
||||
http.post(comApi.value, res).then(() => {
|
||||
NsMessage.success('操作成功');
|
||||
visible.value = false;
|
||||
mainRef.value?.nsTableRef.reload();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// 服务操作逻辑区域
|
||||
const serverOK = () => {
|
||||
serviceVisible.value = false;
|
||||
};
|
||||
const ServiceSelect = (selectedKeys: any, info: any) => {
|
||||
console.log(selectedKeys, 'selectedKeys');
|
||||
console.log(info, 'info');
|
||||
};
|
||||
|
||||
const serverTree = ref({
|
||||
checkable: true,
|
||||
onSelect: ServiceSelect,
|
||||
defaultExpandAll: true,
|
||||
treeData: treeData,
|
||||
fieldNames: { children: 'menus', title: 'label', key: 'code' },
|
||||
});
|
||||
|
||||
const getTree = (params) => {
|
||||
http.post(enterPrise.permissionTree, params).then((res) => {
|
||||
treeData.value = res.data.data;
|
||||
});
|
||||
};
|
||||
|
||||
// 开通服务模块drawer
|
||||
const serverDrawer = ref({
|
||||
width: '450',
|
||||
visible: serviceVisible,
|
||||
footerStyle: { textAlign: 'right' },
|
||||
ok: serverOK,
|
||||
cancel: onClose,
|
||||
});
|
||||
|
||||
// drawer form
|
||||
const opMap: any = {
|
||||
type: 'add',
|
||||
@@ -112,25 +177,6 @@
|
||||
console.log(info, 'info');
|
||||
};
|
||||
|
||||
const ServiceSelect = (selectedKeys: any, info: any) => {
|
||||
console.log(selectedKeys, 'selectedKeys');
|
||||
console.log(info, 'info');
|
||||
};
|
||||
|
||||
const onClose = () => {
|
||||
visible.value = false;
|
||||
borderVisible.value = false;
|
||||
serviceVisible.value = false;
|
||||
};
|
||||
|
||||
const addDrawerConfig = ref({
|
||||
width: '520',
|
||||
visible: visible,
|
||||
footerStyle: { textAlign: 'right' },
|
||||
destroyOnClose: true,
|
||||
onClose: onClose,
|
||||
});
|
||||
|
||||
const borderAdd = () => {
|
||||
treeAddVisible.value = true;
|
||||
treeAdd.value?.toggle();
|
||||
@@ -140,18 +186,6 @@
|
||||
treeAddVisible.value = true;
|
||||
};
|
||||
|
||||
const onEdit = () => {
|
||||
formRef.value?.triggerSubmit().then(() => {
|
||||
console.log(formData.value, 'formData.value');
|
||||
opMap.fuc && opMap.fuc(formData.value);
|
||||
visible.value = false;
|
||||
});
|
||||
};
|
||||
|
||||
const Sure = () => {
|
||||
serviceVisible.value = false;
|
||||
};
|
||||
|
||||
const editTree = (title: any, key: any) => {
|
||||
console.log(title, 'title');
|
||||
console.log(key, 'key');
|
||||
|
@@ -74,7 +74,7 @@ export class NSAxios {
|
||||
}
|
||||
return config;
|
||||
}, undefined);
|
||||
const errCodeArr = [13, 1, 3005];
|
||||
|
||||
const errCodeMap = new Map([
|
||||
[13, ''],
|
||||
[1, ''],
|
||||
@@ -91,7 +91,7 @@ export class NSAxios {
|
||||
NsMessage.error({
|
||||
content: msg,
|
||||
key: this.errorMsgKey,
|
||||
onClose: JSON.parse(errCodeMap.get(code)!),
|
||||
onClose: errCodeMap.get(code) && JSON.parse(errCodeMap.get(code)!)(),
|
||||
});
|
||||
return Promise.reject(res);
|
||||
}
|
||||
|