import{_ as e,aH as a,aI as o,aJ as r,u as s,aK as t,v as m,aL as l,a as i,c as n,w as c,d as p,C as u,F as d,D as h,al as f,a2 as y,e as b,b as g,H as E,am as I,f as F,i as w}from"./index-C5Ed3_rp.js";const C=[{name:"等于",symbol:"EQ",compare:(e,a)=>e==a[0]},{name:"不等于",symbol:"NEQ",compare:(e,a)=>e!=a[0]},{name:"为其之一",symbol:"IN",compare:(e,a)=>(a||[]).includes(e)},{name:"不为其之一",symbol:"NIN",compare:(e,a)=>!(a||[]).includes(e)},{name:"含有",symbol:"LIKE",compare:(e,a)=>(a||"").includes(e)}],_=[{name:"包含",symbol:"HS",compare:(e,a)=>S(a,e)},{name:"不包含",symbol:"NHS",compare:(e,a)=>!S(a,e)}],N=[{name:"大于",symbol:"GT",compare:(e,a)=>e>a},{name:"小于",symbol:"LT",compare:(e,a)=>ee==a},{name:"不等于",symbol:"NEQ",compare:(e,a)=>e!=a},{name:"大于等于",symbol:"GT_EQ",compare:(e,a)=>e>=a},{name:"小于等于",symbol:"LT_EQ",compare:(e,a)=>e<=a},{name:"在内或相等",symbol:"IN_EQ",compare:(e,a)=>e>=a[0]&&e<=a[1]},{name:"在内或不等",symbol:"IN_NEQ",compare:(e,a)=>e==a},{name:"为其之一",symbol:"IN",compare:(e,a)=>(a||[]).includes(e)},{name:"不为其之一",symbol:"NIN",compare:(e,a)=>!(a||[]).includes(e)}],T=[{name:"是",symbol:"EQ",compare:(e,a)=>e[0].id==a[0].id},{name:"不是",symbol:"NEQ",compare:(e,a)=>e[0].id!=a[0].id},{name:"为其之一",symbol:"IN",compare:(e,a)=>S(e,a,"id")},{name:"含有",symbol:"HS",compare:(e,a)=>S(a,e,"id")},{name:"不含有",symbol:"NHS",compare:(e,a)=>!S(a,e,"id")}],v=[{name:"在之前",symbol:"LT",compare:(e,a)=>H(e,a[0])},{name:"在之后",symbol:"GT",compare:(e,a)=>R(e,a[0])},{name:"在其中",symbol:"IN",compare:(e,a)=>H(a[0])&&R(a[1])}],M=[{name:"包含",symbol:"HS",compare:(e,a)=>H(e[0],a[0])&&R(e[1],a[0])},{name:"不包含",symbol:"NHS",compare:(e,a)=>H(e[0],a[0])||R(a[0],e[1])}];function H(e,a){return new Date(e).getTime()>=new Date(e).getTime()}function R(e,a){return new Date(e).getTime()<=new Date(e).getTime()}function S(e,a,o){if(0===e.length||0===a.length)return!1;for(let r=0;re.strCompare[a.symbol]=a.compare)),_.forEach((a=>e.strArrCompare[a.symbol]=a.compare)),N.forEach((a=>e.numCompare[a.symbol]=a.compare)),T.forEach((a=>e.orgCompare[a.symbol]=a.compare)),v.forEach((a=>e.timeCompare[a.symbol]=a.compare)),M.forEach((a=>e.timeArrCompare[a.symbol]=a.compare)),e}();const x=e({name:"FormRender",options:{styleIsolation:"shared"},components:{WFormItem:a},props:{modelValue:{type:Object,default:()=>({})},config:{type:Object,default:()=>({ruleType:"SIMPLE",rules:[]})},jsonConf:{type:Array,default:()=>[]}},computed:{_value:{get(){return this.modelValue},set(e){emit("update:modelValue",e)}},rules(){const e={};return this.formFields.forEach((a=>{a.props.required&&"H"!==a.perm&&(e[a.id]={rules:[{required:!0,errorMessage:"请填写"+a.title}]})})),e},formFields(){const e=[];return this.jsonConf.forEach((a=>this.loadInnerField(a,e))),e},formItemMap(){const e=new Map;return this.loadFormItemMap(this.jsonConf,e),e}},data:()=>({formPermHis:{},compareFunc:{},oldFormData:{},conditionFields:new Set,execute:null}),onReady(){this.$refs.wflowForm.setRules(this.rules)},methods:{showItem:o,loadInnerField(e,a){"SpanLayout"===e.name?e.props.items.forEach((e=>this.loadInnerField(e,a))):a.push(e)},validate(e){this.$refs.wflowForm.validate().then((a=>{e(!0),console.log("表单数据信息:",a)})).catch((e=>{console.log("表单错误信息:",e)}))},loadFormItemMap(e,a){e.forEach((e=>{"TableList"===e.name?(a.set(e.id,e),this.loadFormItemMap(e.props.columns,a)):"SpanLayout"===e.name?this.loadFormItemMap(e.props.items,a):a.set(e.id,e)}))},parserRule(e){const a=e.condition;if(e.children.length>0){for(let a=0;a{switch(e.type){case"SHOW":e.targets.forEach((e=>this.showField(e)));break;case"HIDE":e.targets.forEach((e=>this.hideField(e)));break;case"DISABLE":e.targets.forEach((e=>this.disableField(e)));break;case"UPDATE":e.targets.forEach((a=>this.updateField(a,e.value)));break;case"ENABLE":e.targets.forEach((a=>this.enableField(a,e.value)))}}))},analyseFormRule(){console.log("~~~~~~~~~~~~~~~~~~规则类型"+this.config.ruleType),"SIMPLE"===this.config.ruleType?(this.analyseRules(),this.analyseJsRules()):this.analyseJsRules()},async analyseJsRules(){console.log(this.execute),console.log("~~~~~~~~~~~~~~~~~~~~~~~~~~~"+!(this.execute instanceof Function)),this.execute,console.log("~~~~~~~~~~~~~~~~change事件"),this.execute=new Function(`${this.config.ruleJs||"function doChange(){}"}\r\n return doChange`),this.execute=this.execute(),console.log("~~~~~~~~~~~~~~~~change事件11111"),console.log(this._value,this.formItemMap),this.execute(this._value,this.formItemMap)},async analyseRules(){(this.config.rules||[]).forEach(((e,a)=>{const o=this.parserRule(e.condition);console.log(`解析规则 ${a+1}: ${o}`),this.doActions(o?e.action.with:e.action.other)}))},compare(e){const a=this._value[e.field];let o=null;switch(e.fieldType){case"AmountInput":case"NumberInput":case"Score":case"CalcFormula":o="numCompare";break;case"TextInput":case"TextareaInput":case"SelectInput":case"Location":case"Provinces":o="strCompare";break;case"MultipleSelect":o="strArrCompare";break;case"DateTime":o="timeCompare";break;case"DateTimeRange":o="timeArrCompare";break;case"DeptPicker":case"UserPicker":o="orgCompare"}return k[o][e.compare](a,e.fixed?e.compareVal:this._value[e.compareVal[0]])},isRequired(e){return void 0!==this.rules[e.id]},hideField(e){const a=this.formItemMap.get(e);a&&(a.perm="H")},showField(e){const a=this.formItemMap.get(e);a&&(a.perm=this.formPermHis[e]||"E")},disableField(e){const a=this.formItemMap.get(e);a&&(a.perm="R")},enableField(e){const a=this.formItemMap.get(e);a&&(a.perm="E")},updateField(e,a){this.formItemMap.get(e)&&(this._value[e]=a)}},watch:{config:{deep:!0,immediate:!0,handler(){console.log("~~~~~~~~~~~~配置",JSON.stringify(this.config)),this.config&&(0===Object.keys(this.formPermHis).length&&this.formItemMap.forEach((e=>{this.formPermHis[e.id]=e.perm})),this.analyseFormRule())}},modelValue:{deep:!0,immediate:!0,handler(){console.log("~~~~~~~~~~~~配置",JSON.stringify(this.config)),this.config&&(0===Object.keys(this.formPermHis).length&&this.formItemMap.forEach((e=>{this.formPermHis[e.id]=e.perm})),this.analyseFormRule())}}},emits:["update:modelValue"]},[["render",function(e,a,o,C,_,N){const T=F,v=w,M=r("w-form-item"),H=s(m("uni-forms-item"),t),R=s(m("uni-forms"),l);return i(),n(v,{class:"wflow-form"},{default:c((()=>[p(R,{ref:"wflowForm",class:"wflow-form",rules:N.rules,modelValue:N._value,"label-position":"top","label-width":"200"},{default:c((()=>[(i(!0),u(d,null,h(N.formFields,(e=>f((i(),n(H,{class:y("w-form-item "+("R"===e.perm?"w-form-item-r":"")),name:e.id,key:e.id,required:e.props.required},{label:c((()=>[p(v,{class:"w-form-title"},{default:c((()=>[e.props.required&&"E"===e.perm?(i(),n(T,{key:0,style:{color:"#CE5266"}},{default:c((()=>[b("* ")])),_:1})):g("",!0),p(T,{style:{"font-size":"32rpx"}},{default:c((()=>[b(E(e.title),1)])),_:2},1024)])),_:2},1024)])),default:c((()=>[p(M,{type:e.name,modelValue:N._value[e.id],"onUpdate:modelValue":a=>N._value[e.id]=a,"form-props":e.props,readonly:"E"!==e.perm,formData:N._value},null,8,["type","modelValue","onUpdate:modelValue","form-props","readonly","formData"])])),_:2},1032,["class","name","required"])),[[I,N.showItem(e,N._value[e.id])]]))),128))])),_:1},8,["rules","modelValue"])])),_:1})}],["__scopeId","data-v-d27ec670"]]);export{x as F};