snowy-designer
Version:
基于Epic-Designer-Pro版本的设计器,可视化开发页面表单
2 lines (1 loc) • 2.75 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("vue");;/* empty css */require("radix-vue");require("clsx");require("tailwind-merge");require("lucide-vue-next");require("../../../ui-kit/base-ui/src/shadch-ui/button/index.cjs");require("@vueuse/core");require("../../../ui-kit/base-ui/src/shadch-ui/toast/index.cjs");require("vuedraggable");const o=require("../../../utils/src/common/data.cjs");require("../store/index.cjs");require("lodash");require("../../../utils/src/manager/pluginManager.cjs");require("monaco-editor");require("../../../utils/src/request/index.cjs");function b(s=null){const u=f.reactive({}),p=f.inject("pageManager");let i=[],c={};f.watch(()=>u,e=>{f.nextTick(()=>{for(const r in e)e[r]!==c[r]&&(i==null||i.forEach(t=>{t.condition.conditions.map(n=>n.field).includes(r)&&(q(t.condition)?t.actions.forEach(n=>{y(n)}):t.actions.filter(n=>n.reverseExecute).forEach(n=>{y(n,!0)}))}));c=o.deepClone(e)})},{deep:!0});function q(e){return e.operator==="and"?e.conditions.every(r=>{if(!r.field)return!0;const t=u[r.field];return d(t,r)}):e.operator==="or"?e.conditions.some(r=>{if(!r.field)return!0;const t=u[r.field];return d(t,r)}):!0}function d(e,r){if(!r.value)return!1;switch(r.operator){case"eq":return typeof e=="object"?o.deepEqual(e,r.value):e===r.value;case"gt":return(typeof e=="number"||typeof e=="string")&&e>r.value;case"gte":return(typeof e=="number"||typeof e=="string")&&e>=r.value;case"in":return a(e,r.value);case"lt":return(typeof e=="number"||typeof e=="string")&&e<r.value;case"lte":return(typeof e=="number"||typeof e=="string")&&e<=r.value;case"neq":return typeof e=="object"?!o.deepEqual(e,r.value):e!==r.value;case"nin":return!a(e,r.value);case"notNull":return e!=null&&e.length>0;case"null":return e==null||e.length===0;default:return!0}}function y(e,r=!1){if(!e.componentId||r&&["setValue"].includes(e.trigger??""))return;const t=p.find(e.componentId);if(t)switch(e.trigger){case"disabled":{t.setAttr("disabled",!r);break}case"enabled":{t.setAttr("disabled",r);break}case"hide":{t.setAttr("hidden",!r);break}case"notRequired":{t.setAttr("required",r),s==null||s();break}case"readonly":{t.setAttr("readOnly",!r);break}case"readWrite":{t.setAttr("readOnly",r);break}case"required":{t.setAttr("required",!r),s==null||s();break}case"show":{t.setAttr("hidden",r);break}case"setValue":t.setValue(e.value)}}function g(e){i=e}function a(e,r){if(Array.isArray(e)&&Array.isArray(r)){const t=new Set(e);return r.every(n=>t.has(n))}else{if(Array.isArray(e)&&typeof r!="object")return new Set(e).has(r);if(typeof e=="string"&&typeof r=="string")return e.includes(r)}return!1}return{formData:u,setLogicRules:g}}exports.useFormLogic=b;