Prechádzať zdrojové kódy

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper into master

seyason 11 mesiacov pred
rodič
commit
61a0b1c7ef
15 zmenil súbory, kde vykonal 221 pridanie a 30 odobranie
  1. 39 5
      fhKeeper/formulahousekeeper/customerBuler-crm/src/components/relatedProducts/relatedProducts.vue
  2. 1 1
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/component/information.vue
  3. 5 1
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/component/products.vue
  4. 7 2
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/index.vue
  5. 4 0
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/contacts/component/relatedBusiness.vue
  6. 5 2
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/customer/component/relatedBusiness.vue
  7. 4 1
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/thread/detail/components/information.vue
  8. 28 0
      fhKeeper/formulahousekeeper/customerBuler-crm/src/utils/tools.ts
  9. 11 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/src/generate/GenerateForm.vue
  10. 46 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/src/generate/GenerateFormItem.vue
  11. 1 0
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/generate/GenerateForm.vue.d.ts
  12. 6 2
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/generate/GenerateFormItem.vue.d.ts
  13. 1 1
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.css
  14. 62 14
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.es.js
  15. 1 1
      fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.es.js.map

+ 39 - 5
fhKeeper/formulahousekeeper/customerBuler-crm/src/components/relatedProducts/relatedProducts.vue

@@ -1,5 +1,5 @@
 <template>
-    <div>
+    <div class="pt-2">
         <el-table ref="productTableRef" :data="productTable" border :row-class-name="tableRowClassName"
             @row-click="tableRowItem" :style="{ width: '100%', height: heightClass }">
             <el-table-column label="序号" width="60" align="center">
@@ -55,11 +55,22 @@
                 </template>
             </el-table-column>
         </el-table>
+
+        <div class="flex w-full justify-between pt-2 pb-1">
+            <div>整单折扣率(%)</div>
+            <div class="flex">
+                <div>已选中产品:<span class="text-[red] pr-2">{{ selectedQuantity }}</span>个</div>
+                <div class="pl-4">
+                    总金额:<span class="pr-1">{{ totalAmount }}</span> 元
+                </div>
+            </div>
+        </div>
     </div>
 </template>
   
 <script lang="ts" setup>
-import { ref, reactive, onMounted, inject, watchEffect } from "vue";
+import { ElNotification } from "element-plus";
+import { ref, reactive, onMounted, inject, watchEffect, computed } from "vue";
 
 const props = defineProps<{
     productTableList: any,
@@ -116,14 +127,37 @@ function returnData() {
     let jsonstr = JSON.stringify(productTable.value)
     let json = '[{"index":0}]'
     if (jsonstr == json) {
-        return false
+        return []
+    }
+
+    const list = productTable.value.filter((item: any) => item.productId)
+    const incompleteProduct = list.find((item: any) => !item.sellingPrice || !item.quantity || !item.discount);
+    if (incompleteProduct) {
+        ElNotification.closeAll();
+        ElNotification({
+            title: '提示',
+            message: `相关产品【${incompleteProduct.productName}】请填写完整`,
+            type: 'warning',
+        });
+        return false;
     }
-    productTable.value.forEach((item: any) => {
+
+    list.forEach((item: any) => {
         delete item.index
     });
-    return productTable.value
+    return list || []
 }
 
+const selectedQuantity = computed(() => {
+    return productTable.value.filter((item: any) => item.productId).length
+})
+
+const totalAmount = computed(() => {
+    return productTable.value.filter((item: any) => item.productId).reduce((pre: number, cur: any) => {
+        return pre + (cur.totalPrice || 0)
+    }, 0)
+})
+
 watchEffect(() => {
     const { productTableList, height, productTableListValue = [] } = props
     console.log(productTableListValue, '<==== 数据')

+ 1 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/component/information.vue

@@ -32,7 +32,7 @@
             </div>
             <div class="formItem flex pt-5 pb-1">
                 <div class="w-22 text-right text-gray-500">负责人:</div>
-                <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.creatorName }}</div>
+                <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.inchargerName }}</div>
             </div>
             <div class="formItem flex pt-5 pb-1">
                 <div class="w-22 text-right text-gray-500">预计成交日期:</div>

+ 5 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/component/products.vue

@@ -58,6 +58,7 @@ import { post } from '@/utils/request';
 import RelatedProducts from '@/components/relatedProducts/relatedProducts.vue'
 import { UPDATEINSET } from '../api';
 import { all } from 'axios';
+import { judgmentaAmounteEqual } from '@/utils/tools';
 
 const emits = defineEmits(['refreshData']);
 const props = defineProps<{
@@ -78,10 +79,13 @@ const allLoading = reactive({
 
 function editProduct() {
     let productTableListData = relatedProductsRef?.value?.returnData()
+    const { id, name, customerId, contactsId, amountOfMoney, expectedTransactionDate, stageId, inchargerId, remark } = information.value
+    if(!productTableListData || judgmentaAmounteEqual({ amountOfMoney }, productTableListData)) {
+      return
+    }
     productTableListData.forEach((item: any) => {
         delete item.id
     })
-    const { id, name, customerId, contactsId, amountOfMoney, expectedTransactionDate, stageId, inchargerId, remark } = information.value
     const formData = { id, name, customerId, contactsId, amountOfMoney, expectedTransactionDate, stageId, inchargerId, remark }
     allLoading.editProductLoading = true
     post(UPDATEINSET, { ...formData, businessItemProductList: JSON.stringify(productTableListData) }).then((_res) => {

+ 7 - 2
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/index.vue

@@ -179,7 +179,7 @@ import { useRouter, useRoute } from "vue-router";
 import { GETSYSFILED, MOD, GETPERSONNEL, GETGENERATEFOEM, GETBUSINESSLIST, UPDATEINSET, BUSINESSDETELE, BATCHTRANSFER, MODURL, tableColumn, BUSIESS_GETSATE, URL_IMPOERBUSINESS, BUSIESS_INFO, URL_EXPORTBUSINESS } from './api'
 import { GETTABLELIST } from '@/pages/product/api'
 import { post, get, uploadFile } from "@/utils/request";
-import { getAllListByCode, getFromValue, resetFromValue, getFirstDayOfMonth, createTaskFromType, formatDate, confirmAction, downloadTemplate, downloadFile } from '@/utils/tools'
+import { getAllListByCode, getFromValue, resetFromValue, getFirstDayOfMonth, createTaskFromType, formatDate, confirmAction, downloadTemplate, downloadFile, judgmentaAmounteEqual } from '@/utils/tools'
 import { createTask } from '@/components/TaskModal/taskFunction'
 import { formatDateTime } from '@/utils/times'
 import { GenerateForm } from '@zmjs/form-design';
@@ -252,7 +252,12 @@ const productTableListValue = ref([])
 
 function editBusiness(visibles: boolean) {
   businessTemplateRef.value?.getData().then((res: any) => {
-    let productTableListData = relatedProductsRef?.value?.returnData() || []
+    let productTableListData = relatedProductsRef?.value?.returnData()
+    console.log(!productTableListData, judgmentaAmounteEqual({...businessTemplateValue.value, ...res}, productTableListData))
+    if(!productTableListData || judgmentaAmounteEqual({...businessTemplateValue.value, ...res}, productTableListData)) {
+      return
+    }
+
     productTableListData.forEach((item: any) => {
       delete item.id
     })

+ 4 - 0
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/contacts/component/relatedBusiness.vue

@@ -57,6 +57,7 @@ import RelatedProducts from '@/components/relatedProducts/relatedProducts.vue'
 import { formatDateTime } from '@/utils/times';
 import { GETGENERATEFOEM, UPDATEINSET } from '@/pages/business/api';
 import { GETTABLELIST } from '@/pages/product/api';
+import { judgmentaAmounteEqual } from '@/utils/tools';
 
 const router = useRouter()
 const globalPopup = inject<GlobalPopup>('globalPopup')
@@ -95,6 +96,9 @@ function toBusDetal(row: any) {
 function editBusiness() {
     businessTemplateRef.value?.getData().then((res: any) => {
         let productTableListData = relatedProductsRef?.value?.returnData()
+        if(!productTableListData || judgmentaAmounteEqual({ ...businessTemplateValue.value, ...res }, productTableListData)) {
+            return
+        }
         let newForm = {
             ...res,
             expectedTransactionDate: res.expectedTransactionDate ? formatDateTime(new Date(res.expectedTransactionDate)) : '',

+ 5 - 2
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/customer/component/relatedBusiness.vue

@@ -54,7 +54,7 @@ import { GenerateForm } from '@zmjs/form-design';
 import RelatedProducts from '@/components/relatedProducts/relatedProducts.vue'
 import { GETTABLELIST } from '@/pages/product/api';
 import { GETGENERATEFOEM, UPDATEINSET } from '@/pages/business/api';
-import { setTemplateDataDisable } from '@/utils/tools';
+import { judgmentaAmounteEqual, setTemplateDataDisable } from '@/utils/tools';
 import { formatDateTime } from '@/utils/times';
 
 const emits = defineEmits(['refreshData']);
@@ -86,7 +86,10 @@ const allLoading = reactive({
 
 function editBusiness(visibles: boolean) {
     businessTemplateRef.value?.getData().then((res: any) => {
-        let productTableListData = relatedProductsRef?.value?.returnData() || []
+        let productTableListData = relatedProductsRef?.value?.returnData()
+        if(!productTableListData || judgmentaAmounteEqual({ ...businessTemplateValue.value, ...res }, productTableListData)) {
+            return
+        }
         productTableListData.forEach((item: any) => {
             delete item.id
         })

+ 4 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/thread/detail/components/information.vue

@@ -138,7 +138,7 @@
 <script lang="ts" setup>
 import { ref, reactive, onMounted, onUnmounted, defineExpose, inject, watchEffect } from 'vue'
 import { GenerateForm } from '@zmjs/form-design';
-import { formatDate, confirmAction, backPath } from '@/utils/tools'
+import { formatDate, confirmAction, backPath, judgmentaAmounteEqual } from '@/utils/tools'
 import { GETTEMPLATE, UNDATEFORM, GETPERSONNEL, UNDATECLAIM, GETTEMPLATETWO } from '../../constant'
 import { get, post } from '@/utils/request'
 import { useStore } from '@/store/index'
@@ -202,6 +202,9 @@ const transferOptions = ref<personnelInterface[]>([]) // 转移人员列表
 function transferBusiness() {
     generateFormDataRef.value?.getData().then((res: any) => {
         let productTableListData = relatedProductsRef?.value?.returnData()
+        if(!productTableListData || judgmentaAmounteEqual({ ...res }, productTableListData)) {
+            return
+        }
         let newForm = {
             ...res,
             expectedTransactionDate: res.expectedTransactionDate ? formatDateTime(new Date(res.expectedTransactionDate)) : '',

+ 28 - 0
fhKeeper/formulahousekeeper/customerBuler-crm/src/utils/tools.ts

@@ -1,4 +1,5 @@
 import { defalutModalForm } from "@/components/TaskModal/api";
+import { ElNotification } from "element-plus";
 import { ElMessageBox } from "element-plus";
 import { IMPORTTIMELIST } from '../pages/api'
 import { get, post } from "./request";
@@ -263,3 +264,30 @@ export function setTemplateDataDisable(list: Array<any>, fieldList: Array<any>)
   })
   return result;
 } 
+
+/**
+ * 新建商机指定方法,用来判断商机金额需与产品总金额是否相等
+ * @param mob 商机表单
+ * @param arr 相关产品
+ * @returns Boolean
+ */
+export function judgmentaAmounteEqual(mob: any, arr: any) {
+  if(!arr || arr.length <= 0) {
+    return false;
+  }
+  let flag = false;
+  const amounte = mob.amountOfMoney || 0;
+  const totalAmounte = arr.reduce((pre: number, cur: any) => pre + (cur.totalPrice || 0), 0);
+
+  if (amounte != totalAmounte) {
+    ElNotification.closeAll();
+    ElNotification({
+      title: '提示',
+      message: `商机金额${amounte > totalAmounte ? '大于' : '小于'}产品总金额,请修改`,
+      type: 'warning',
+    });
+    flag = true;
+  }
+
+  return flag;
+}

+ 11 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/src/generate/GenerateForm.vue

@@ -17,6 +17,8 @@
         :config="data.config"
         :disabled="disabled"
         :request="request"
+        :widgetFormData="widgetForm.list"
+        @updateWidgetForm="updateWidgetForm"
       />
     </template>
   </el-form>
@@ -122,6 +124,14 @@ export default defineComponent({
       })
     }
 
+    const updateWidgetForm = (list: any[]) => {
+      // console.log(list, '<=====')
+      const listIndex = state.widgetForm.list.findIndex((item: any) => item.type === 'grid')
+      state.widgetForm.list[listIndex].columns = list
+      // console.log(state.widgetForm.list);
+      state.model = {...state.model, contactsId: ''}
+    }
+
     watch(
       () => props.data,
       (val) => {
@@ -159,6 +169,7 @@ export default defineComponent({
       ...toRefs(state),
       getData,
       reset,
+      updateWidgetForm
     }
   },
 })

+ 46 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/src/generate/GenerateFormItem.vue

@@ -18,6 +18,8 @@
         :element="colItem"
         :config="config"
         :disabled="disabled"
+        :widgetFormData="element.columns"
+        @updateWidgetForm="updateWidgetForm"
       />
     </div>
   </div>
@@ -236,6 +238,7 @@
         :filterable="element.options.filterable"
         :disabled="disabled || element.options.disabled"
         :style="{ width: element.options.width }"
+        @change="(value: any) => specializedHandleSelect(value, element)"
       >
         <el-option
           v-for="item of element.options.remote
@@ -346,6 +349,7 @@ const props = defineProps<{
   updatedModel: any
   disabled: boolean
   request?: Function
+  widgetFormData?: any
 }>()
 const originData = props.model[props.element.model]
 const data = computed({
@@ -382,6 +386,48 @@ async function download(defaultValue: string, label: string) {
   a.download = `${label}.${defaultValue.split('.')[1]}`
   a.click()
 }
+
+const emits = defineEmits(['updateWidgetForm'])
+const specializedHandleSelect = (val: any, element: any) => {
+  const field = element.model
+  if(field == 'customerId') {
+    // console.log(props, '<===== props')
+    let list = JSON.parse(JSON.stringify(props.widgetFormData))
+    for(var i in list) {
+      if(list[i].list[0].model == 'contactsId') {
+        let item = list[i].list[0]
+        const token: any = sessionStorage.getItem('token')
+        // fetch(item.options.remoteFunc, {
+        fetch(`${item.options.remoteFunc}?customerId=${val}`, {
+          headers: {
+            "Content-type": " application/x-www-form-urlencoded; charset=UTF-8",
+            "Token": token
+          }
+        })
+          .then(resp => resp.json())
+          .then((json) => {
+            const res = json.data
+            if (res instanceof Array) {
+              item.options.remoteOptions = res.map(data => ({
+                label: data[item.options.props.label],
+                value: data[item.options.props.value],
+                children: data[item.options.props.children],
+              }))
+            }
+            list[i].list[0].options = {...list[i].list[0].options, disabled: false, defaultValue: ''}
+          })
+      }
+    }
+    setTimeout(() => {
+      console.log('开始执行')
+      updateWidgetForm(list)
+    }, 100)
+  }
+}
+
+const updateWidgetForm = (list: any) => {
+  emits('updateWidgetForm', list)
+}
 </script>
 <style scoped>
 :deep(.el-upload--picture-card) {

+ 1 - 0
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/generate/GenerateForm.vue.d.ts

@@ -16,6 +16,7 @@ declare const _default: import("vue").DefineComponent<{
 }, {
     getData: () => Promise<unknown>;
     reset: () => void;
+    updateWidgetForm: (list: any[]) => void;
     generateForm: import("vue").Ref<any>;
     model: import("vue").Ref<any>;
     updatedModel: import("vue").Ref<any>;

+ 6 - 2
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/generate/GenerateFormItem.vue.d.ts

@@ -6,14 +6,18 @@ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimePr
     updatedModel: any;
     disabled: boolean;
     request?: Function | undefined;
-}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
+    widgetFormData?: any;
+}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "updateWidgetForm"[], "updateWidgetForm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
     config: WidgetForm['config'];
     element: any;
     model: any;
     updatedModel: any;
     disabled: boolean;
     request?: Function | undefined;
-}>>>, {}>;
+    widgetFormData?: any;
+}>>> & {
+    onUpdateWidgetForm?: ((...args: any[]) => any) | undefined;
+}, {}>;
 export default _default;
 declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
 declare type __VLS_TypePropsToRuntimeProps<T> = {

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.css


+ 62 - 14
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.es.js

@@ -27558,7 +27558,7 @@ var _export_sfc = (sfc, props) => {
   }
   return target;
 };
-const _withScopeId = (n) => (pushScopeId("data-v-4dd8224f"), n = n(), popScopeId(), n);
+const _withScopeId = (n) => (pushScopeId("data-v-fd931432"), n = n(), popScopeId(), n);
 const _hoisted_1$6 = { key: 12 };
 const _hoisted_2$5 = {
   key: 1,
@@ -27575,9 +27575,11 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
     model: null,
     updatedModel: null,
     disabled: { type: Boolean },
-    request: null
+    request: null,
+    widgetFormData: null
   },
-  setup(__props) {
+  emits: ["updateWidgetForm"],
+  setup(__props, { emit: emits }) {
     const props = __props;
     const originData = props.model[props.element.model];
     const data2 = computed({
@@ -27609,6 +27611,41 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
       a2.download = `${label}.${defaultValue.split(".")[1]}`;
       a2.click();
     }
+    const specializedHandleSelect = (val, element) => {
+      const field = element.model;
+      if (field == "customerId") {
+        let list = JSON.parse(JSON.stringify(props.widgetFormData));
+        for (var i in list) {
+          if (list[i].list[0].model == "contactsId") {
+            let item = list[i].list[0];
+            const token = sessionStorage.getItem("token");
+            fetch(`${item.options.remoteFunc}?customerId=${val}`, {
+              headers: {
+                "Content-type": " application/x-www-form-urlencoded; charset=UTF-8",
+                "Token": token
+              }
+            }).then((resp) => resp.json()).then((json) => {
+              const res = json.data;
+              if (res instanceof Array) {
+                item.options.remoteOptions = res.map((data22) => ({
+                  label: data22[item.options.props.label],
+                  value: data22[item.options.props.value],
+                  children: data22[item.options.props.children]
+                }));
+              }
+              list[i].list[0].options = __spreadProps(__spreadValues({}, list[i].list[0].options), { disabled: false, defaultValue: "" });
+            });
+          }
+        }
+        setTimeout(() => {
+          console.log("\u5F00\u59CB\u6267\u884C");
+          updateWidgetForm(list);
+        }, 100);
+      }
+    };
+    const updateWidgetForm = (list) => {
+      emits("updateWidgetForm", list);
+    };
     return (_ctx, _cache) => {
       const _component_GenerateFormItem = resolveComponent("GenerateFormItem", true);
       const _component_el_table_column = ElTableColumn;
@@ -27651,8 +27688,10 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
                 "updated-model": __props.updatedModel,
                 element: colItem,
                 config: __props.config,
-                disabled: __props.disabled
-              }, null, 8, ["request", "model", "updated-model", "element", "config", "disabled"]);
+                disabled: __props.disabled,
+                widgetFormData: __props.element.columns,
+                onUpdateWidgetForm: updateWidgetForm
+              }, null, 8, ["request", "model", "updated-model", "element", "config", "disabled", "widgetFormData"]);
             }), 128))
           ], 4);
         }), 128))
@@ -27895,7 +27934,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
             clearable: __props.element.options.clearable,
             filterable: __props.element.options.filterable,
             disabled: __props.disabled || __props.element.options.disabled,
-            style: normalizeStyle({ width: __props.element.options.width })
+            style: normalizeStyle({ width: __props.element.options.width }),
+            onChange: _cache[10] || (_cache[10] = (value) => specializedHandleSelect(value, __props.element))
           }, {
             default: withCtx(() => [
               (openBlock(true), createElementBlock(Fragment, null, renderList(__props.element.options.remote ? __props.element.options.remoteOptions : __props.element.options.options, (item) => {
@@ -27911,7 +27951,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
           __props.element.type === "switch" ? (openBlock(), createBlock(_component_el_switch, {
             key: 10,
             modelValue: unref(data2),
-            "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => isRef(data2) ? data2.value = $event : null),
+            "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => isRef(data2) ? data2.value = $event : null),
             "active-text": __props.element.options.activeText,
             "inactive-text": __props.element.options.inactiveText,
             disabled: __props.disabled || __props.element.options.disabled
@@ -27919,7 +27959,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
           __props.element.type === "slider" ? (openBlock(), createBlock(_component_el_slider, {
             key: 11,
             modelValue: unref(data2),
-            "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => isRef(data2) ? data2.value = $event : null),
+            "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => isRef(data2) ? data2.value = $event : null),
             min: __props.element.options.min,
             max: __props.element.options.max,
             step: __props.element.options.step,
@@ -27966,7 +28006,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
             key: 14,
             style: { "margin-top": "-4px" },
             type: "text",
-            onClick: _cache[12] || (_cache[12] = ($event) => download(__props.element.options.defaultValue, __props.element.label))
+            onClick: _cache[13] || (_cache[13] = ($event) => download(__props.element.options.defaultValue, __props.element.label))
           }, {
             default: withCtx(() => [
               _hoisted_6$4
@@ -27976,7 +28016,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
           __props.element.type === "cascader" ? (openBlock(), createBlock(_component_el_cascader, {
             key: 15,
             modelValue: unref(data2),
-            "onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => isRef(data2) ? data2.value = $event : null),
+            "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => isRef(data2) ? data2.value = $event : null),
             options: __props.element.options.remoteOptions,
             placeholder: __props.element.options.placeholder,
             filterable: __props.element.options.filterable,
@@ -28001,7 +28041,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
     };
   }
 });
-var GenerateFormItem = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-4dd8224f"]]);
+var GenerateFormItem = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-fd931432"]]);
 const _sfc_main$7 = defineComponent({
   name: "FormGenerate",
   components: {
@@ -28085,6 +28125,11 @@ const _sfc_main$7 = defineComponent({
         }
       });
     };
+    const updateWidgetForm = (list) => {
+      const listIndex2 = state.widgetForm.list.findIndex((item) => item.type === "grid");
+      state.widgetForm.list[listIndex2].columns = list;
+      state.model = __spreadProps(__spreadValues({}, state.model), { contactsId: "" });
+    };
     watch(() => props.data, (val) => {
       var _a3;
       state.widgetForm = (_a3 = val && JSON.parse(JSON.stringify(val))) != null ? _a3 : getWidgetForm();
@@ -28110,7 +28155,8 @@ const _sfc_main$7 = defineComponent({
     };
     return __spreadProps(__spreadValues({}, toRefs(state)), {
       getData,
-      reset
+      reset,
+      updateWidgetForm
     });
   }
 });
@@ -28136,8 +28182,10 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
           element: _ctx.widgetForm.list[index],
           config: _ctx.data.config,
           disabled: _ctx.disabled,
-          request: _ctx.request
-        }, null, 8, ["model", "updated-model", "element", "config", "disabled", "request"]);
+          request: _ctx.request,
+          widgetFormData: _ctx.widgetForm.list,
+          onUpdateWidgetForm: _ctx.updateWidgetForm
+        }, null, 8, ["model", "updated-model", "element", "config", "disabled", "request", "widgetFormData", "onUpdateWidgetForm"]);
       }), 128))
     ]),
     _: 1

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 1
fhKeeper/formulahousekeeper/plugIn/form-design-master/update/dist/index.es.js.map