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