Commit 4616ecc3484e387d28bd78eb764db7178d88d698

Authored by fengtao
1 parent 36d02848

fix:DEFECT-1016 租户配置新增后就不允许编辑了

1 1 <template>
2 2 <div class="drawer-class">
3   - <BasicDrawer v-bind="$attrs" @register="registerDrawer" showFooter :title="getTitle" width="700px"
4   - @ok="handleSubmit">
  3 + <BasicDrawer
  4 + v-bind="$attrs"
  5 + @register="registerDrawer"
  6 + showFooter
  7 + :title="getTitle"
  8 + width="700px"
  9 + @ok="handleSubmit"
  10 + >
5 11 <BasicForm @register="registerForm" />
6 12 <CpnsTenantSet ref="getChildData" :parentData="parentSetData" />
7 13 </BasicDrawer>
8 14 </div>
9 15 </template>
10 16 <script lang="ts">
11   -import { defineComponent, ref, computed, unref, getCurrentInstance, reactive } from 'vue';
12   -import { BasicForm, useForm } from '/@/components/Form';
13   -import { formSchema } from './config';
14   -import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
15   -import CpnsTenantSet from './cpns/index.vue';
16   -import { saveTenantProfileApi } from '/@/api/tenant/tenantApi';
17   -import { useMessage } from '/@/hooks/web/useMessage';
  17 + import { defineComponent, ref, computed, unref, getCurrentInstance, reactive } from 'vue';
  18 + import { BasicForm, useForm } from '/@/components/Form';
  19 + import { formSchema } from './config';
  20 + import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
  21 + import CpnsTenantSet from './cpns/index.vue';
  22 + import { saveTenantProfileApi } from '/@/api/tenant/tenantApi';
  23 + import { useMessage } from '/@/hooks/web/useMessage';
18 24
19   -export default defineComponent({
20   - name: 'ConfigDrawer',
21   - components: { BasicDrawer, BasicForm, CpnsTenantSet },
22   - emits: ['success', 'register'],
23   - setup(_, { emit }) {
24   - const { createMessage } = useMessage();
25   - const isUpdate = ref(true);
26   - let postAllData: any = reactive({});
27   - const parentSetData: any = ref(null);
28   - let getValuesFormData: any = reactive({});
29   - const { proxy } = getCurrentInstance() as any;
30   - const getChildData = ref(null);
31   - const editGetId: any = ref('');
32   - const [registerForm, { validate, resetFields, setFieldsValue }] = useForm({
33   - schemas: formSchema,
34   - showActionButtonGroup: false,
35   - });
36   - const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
37   - //清除表单值
38   - proxy.$refs.getChildData.funcResetFields();
39   - await resetFields();
40   - setDrawerProps({ confirmLoading: false });
41   - isUpdate.value = !!data?.isUpdate;
42   - if (!unref(isUpdate)) {
43   - editGetId.value = '';
44   - }
45   - //编辑
46   - if (unref(isUpdate)) {
47   - parentSetData.value = { ...data.record.profileData.configuration };
48   - proxy.$refs.getChildData.setFieldsValueFunc(parentSetData.value);
49   - editGetId.value = data.record.id;
50   - await setFieldsValue({
51   - ...data.record,
52   - });
53   - }
54   - });
55   - const getTitle = computed(() => (!unref(isUpdate) ? '新增租户配置' : '编辑租户配置'));
  25 + export default defineComponent({
  26 + name: 'ConfigDrawer',
  27 + components: { BasicDrawer, BasicForm, CpnsTenantSet },
  28 + emits: ['success', 'register'],
  29 + setup(_, { emit }) {
  30 + const { createMessage } = useMessage();
  31 + const isUpdate = ref(true);
  32 + let postAllData: any = reactive({});
  33 + const parentSetData: any = ref(null);
  34 + let getValuesFormData: any = reactive({});
  35 + const { proxy } = getCurrentInstance() as any;
  36 + const getChildData = ref(null);
  37 + const editGetId: any = ref('');
  38 + const [registerForm, { validate, resetFields, setFieldsValue, updateSchema }] = useForm({
  39 + schemas: formSchema,
  40 + showActionButtonGroup: false,
  41 + });
  42 + const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
  43 + //清除表单值
  44 + proxy.$refs.getChildData.funcResetFields();
  45 + await resetFields();
  46 + setDrawerProps({ confirmLoading: false });
  47 + isUpdate.value = !!data?.isUpdate;
  48 + if (!unref(isUpdate)) {
  49 + editGetId.value = '';
  50 + updateStatusSchema(false);
  51 + }
  52 + //编辑
  53 + if (unref(isUpdate)) {
  54 + parentSetData.value = { ...data.record.profileData.configuration };
  55 + proxy.$refs.getChildData.setFieldsValueFunc(parentSetData.value);
  56 + editGetId.value = data.record.id;
  57 + await setFieldsValue({
  58 + ...data.record,
  59 + });
  60 + updateStatusSchema(true);
  61 + }
  62 + });
  63 + const getTitle = computed(() => (!unref(isUpdate) ? '新增租户配置' : '编辑租户配置'));
56 64
57   - const getAllFieldsFunc = async () => {
58   - getValuesFormData = await validate();
59   - if (!getValuesFormData) return;
60   - let getChildValues = proxy.$refs.getChildData.getAllFields();
61   - let profileData1 = {
62   - configuration: getChildValues,
63   - };
64   - const id: any = {
65   - id: unref(isUpdate) ? editGetId.value : '',
  65 + const updateStatusSchema = (status) => {
  66 + updateSchema([
  67 + {
  68 + field: 'isolatedTbRuleEngine',
  69 + componentProps: {
  70 + disabled: status,
  71 + },
  72 + },
  73 + {
  74 + field: 'isolatedTbCore',
  75 + componentProps: {
  76 + disabled: status,
  77 + },
  78 + },
  79 + ]);
66 80 };
67 81
68   - const createTime = {
69   - createdTime: Date.now(),
70   - };
  82 + const getAllFieldsFunc = async () => {
  83 + getValuesFormData = await validate();
  84 + if (!getValuesFormData) return;
  85 + let getChildValues = proxy.$refs.getChildData.getAllFields();
  86 + let profileData1 = {
  87 + configuration: getChildValues,
  88 + };
  89 + const id: any = {
  90 + id: unref(isUpdate) ? editGetId.value : '',
  91 + };
71 92
72   - Object.assign(
73   - postAllData,
74   - {
75   - profileData: profileData1,
76   - },
77   - getValuesFormData,
78   - id,
79   - createTime
80   - );
81   - if (!unref(isUpdate)) {
82   - delete postAllData.id;
83   - }
84   - };
  93 + const createTime = {
  94 + createdTime: Date.now(),
  95 + };
85 96
86   - async function handleSubmit() {
87   - setDrawerProps({ confirmLoading: true });
88   - try {
  97 + Object.assign(
  98 + postAllData,
  99 + {
  100 + profileData: profileData1,
  101 + },
  102 + getValuesFormData,
  103 + id,
  104 + createTime
  105 + );
89 106 if (!unref(isUpdate)) {
90   - await getAllFieldsFunc();
91   - await saveTenantProfileApi(postAllData);
92   - createMessage.success('租户配置新增成功');
93   - closeDrawer();
94   - emit('success');
95   - resetFields();
96   - } else {
97   - await getAllFieldsFunc();
98   - await saveTenantProfileApi(postAllData);
99   - createMessage.success('租户配置编辑成功');
100   - closeDrawer();
101   - emit('success');
  107 + delete postAllData.id;
  108 + }
  109 + };
  110 +
  111 + async function handleSubmit() {
  112 + setDrawerProps({ confirmLoading: true });
  113 + try {
  114 + if (!unref(isUpdate)) {
  115 + await getAllFieldsFunc();
  116 + await saveTenantProfileApi(postAllData);
  117 + createMessage.success('租户配置新增成功');
  118 + closeDrawer();
  119 + emit('success');
  120 + resetFields();
  121 + } else {
  122 + await getAllFieldsFunc();
  123 + await saveTenantProfileApi(postAllData);
  124 + createMessage.success('租户配置编辑成功');
  125 + closeDrawer();
  126 + emit('success');
  127 + }
  128 + } catch (e) {
  129 + } finally {
  130 + setTimeout(() => {
  131 + setDrawerProps({ confirmLoading: false });
  132 + }, 300);
102 133 }
103   - } catch (e) {
104   - } finally {
105   - setTimeout(() => {
106   - setDrawerProps({ confirmLoading: false });
107   - }, 300);
108 134 }
109   - }
110   - return {
111   - parentSetData,
112   - getChildData,
113   - registerDrawer,
114   - registerForm,
115   - getTitle,
116   - handleSubmit,
117   - };
118   - },
119   -});
  135 + return {
  136 + parentSetData,
  137 + getChildData,
  138 + registerDrawer,
  139 + registerForm,
  140 + getTitle,
  141 + handleSubmit,
  142 + };
  143 + },
  144 + });
120 145 </script>
121 146
122 147 <style lang="less">
123   -.drawer-class {
124   - .ant-row {
125   - .ant-col {
126   - :deep .ant-input-number {
127   - width: 34vw !important;
  148 + .drawer-class {
  149 + .ant-row {
  150 + .ant-col {
  151 + :deep .ant-input-number {
  152 + width: 34vw !important;
  153 + }
128 154 }
129 155 }
130 156 }
131   -}
132 157 </style>
... ...