app-form-view 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * app-form-view.js v0.0.6
2
+ * app-form-view.js v0.0.8
3
3
  * Released under the MIT License.
4
4
  */
5
5
  !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue"),require("vuex"),require("element-ui"),require("vant")):"function"==typeof define&&define.amd?define(["exports","vue","vuex","element-ui","vant"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).AppFormView={},e.Vue,e.Vuex,e.ELEMENT,e.vant)}(this,function(e,t,n,i,a){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=r(t);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n<t;n++)i[n]=e[n];return i}function l(e,t,n,i,a,r,o){try{var s=e[r](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(i,a)}function c(e){return function(){var t=this,n=arguments;return new Promise(function(i,a){var r=e.apply(t,n);function o(e){l(r,i,a,o,s,"next",e)}function s(e){l(r,i,a,o,s,"throw",e)}o(void 0)})}}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,A(i.key),i)}}function p(e,t,n){return t&&d(e.prototype,t),n&&d(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function f(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=V(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0,a=function(){};return{s:a,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw r}}}}function h(e,t,n){return(t=A(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},m.apply(null,arguments)}function v(e){if(null==e)throw new TypeError("Cannot destructure "+e)}function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach(function(t){h(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function b(e,t){if(null==e)return{};var n,i,a=function(e,t){if(null==e)return{};var n={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;n[i]=e[i]}return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)n=r[i],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function w(){
@@ -7,7 +7,7 @@
7
7
  var e,t,n="function"==typeof Symbol?Symbol:{},i=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function r(n,i,a,r){var l=i&&i.prototype instanceof s?i:s,c=Object.create(l.prototype);return C(c,"_invoke",function(n,i,a){var r,s,l,c=0,u=a||[],d=!1,p={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return r=t,s=0,l=e,p.n=n,o}};function f(n,i){for(s=n,l=i,t=0;!d&&c&&!a&&t<u.length;t++){var a,r=u[t],f=p.p,h=r[2];n>3?(a=h===i)&&(l=r[(s=r[4])?5:(s=3,3)],r[4]=r[5]=e):r[0]<=f&&((a=n<2&&f<r[1])?(s=0,p.v=i,p.n=r[1]):f<h&&(a=n<3||r[0]>i||i>h)&&(r[4]=n,r[5]=i,p.n=h,s=0))}if(a||n>1)return o;throw d=!0,i}return function(a,u,h){if(c>1)throw TypeError("Generator is already running");for(d&&1===u&&f(u,h),s=u,l=h;(t=s<2?e:l)||!d;){r||(s?s<3?(s>1&&(p.n=-1),f(s,l)):p.n=l:p.v=l);try{if(c=2,r){if(s||(a="next"),t=r[a]){if(!(t=t.call(r,l)))throw TypeError("iterator result is not an object");if(!t.done)return t;l=t.value,s<2&&(s=0)}else 1===s&&(t=r.return)&&t.call(r),s<2&&(l=TypeError("The iterator does not provide a '"+a+"' method"),s=1);r=e}else if((t=(d=p.n<0)?l:n.call(i,p))!==o)break}catch(t){r=e,s=1,l=t}finally{c=1}}return{value:t,done:d}}}(n,a,r),!0),c}var o={};function s(){}function l(){}function c(){}t=Object.getPrototypeOf;var u=[][i]?t(t([][i]())):(C(t={},i,function(){return this}),t),d=c.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,C(e,a,"GeneratorFunction")),e.prototype=Object.create(d),e}return l.prototype=c,C(d,"constructor",c),C(c,"constructor",l),l.displayName="GeneratorFunction",C(c,a,"GeneratorFunction"),C(d),C(d,a,"Generator"),C(d,i,function(){return this}),C(d,"toString",function(){return"[object Generator]"}),(w=function(){return{w:r,m:p}})()}function C(e,t,n,i){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}C=function(e,t,n,i){function r(t,n){C(e,t,function(e){return this._invoke(t,n,e)})}t?a?a(e,t,{value:n,enumerable:!i,configurable:!i,writable:!i}):e[t]=n:(r("next",0),r("throw",1),r("return",2))},C(e,t,n,i)}function x(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,a,r,o,s=[],l=!0,c=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=r.call(n)).done)&&(s.push(i.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return s}}(e,t)||V(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||V(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function A(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function V(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}
8
8
  // 表单模式枚举(与 formConf.mode 对应,控制组件显隐、只读)
9
9
  // 组件映射:保留原PC tag,新增appTag
10
- var S={input:{tag:"c-input",appTag:"c-app-input",tagIcon:"danhangwenben"},textarea:{tag:"c-textarea",appTag:"c-app-input",tagIcon:"duohangwenben"},inputNumber:{tag:"c-input-number",appTag:"c-app-input",tagIcon:"shuzhixing"},select:{tag:"c-select",appTag:"c-app-select",tagIcon:"xiala-"},radio:{tag:"c-radio",appTag:"c-app-radio",tagIcon:"duoxuan-xuanzhong"},checkbox:{tag:"c-radio",appTag:"c-app-checkbox",tagIcon:"duoxuan-xuanzhong"},datetime:{tag:"c-datetime-picker",appTag:"c-app-datetime-picker",tagIcon:"riqishijian"},datetimeRange:{tag:"c-datetime-range",appTag:"c-app-datetime-range",tagIcon:"riqishijian"},inputTree:{tag:"c-input-tree",appTag:"c-app-input-tree",tagIcon:"bumen"},inputUpload:{tag:"c-input-upload",appTag:"c-app-input-upload",tagIcon:"yunshangchuan"},subRow:{tag:"c-sub-row",appTag:"c-app-collapse",tagIcon:"zhediemianban"},textBox:{tag:"c-text-box",appTag:"c-app-text-box",tagIcon:"wenbenzuhe"},searchSelect:{tag:"c-search-select",appTag:"c-app-search-select",tagIcon:"sousuoxialacaidan"},searchApi:{tag:"c-search-api",appTag:"c-app-search-api",tagIcon:"duqushujuku"},subTitle:{tag:"c-sub-title",appTag:"c-app-sub-title",tagIcon:"biaotizhengwenqiehuan"},row:{tag:"c-row",appTag:"c-app-row",tagIcon:"zhage"},password:{tag:"c-input",appTag:"c-app-input",tagIcon:"mima2"},inputHidden:{tag:"c-input-hidden",appTag:"c-app-input-hidden",tagIcon:"yincangyu1"},table:{tag:"c-table",appTag:"c-app-table",tagIcon:"biaoge"},block:{tag:"c-block",appTag:"c-app-block",tagIcon:"biaoge"},button:{tag:"c-button",appTag:"c-app-button",tagIcon:"caozuoanniu"}},_=[{label:"单行文本",hideLabel:!1,name:"",widget:"input",type:"text",placeholder:"请输入",defaultValue:"",width:6,class:"form-control",clearable:!0,prepend:"",prependType:"text",append:"",appendType:"text",maxlength:null,readonly:!1,disabled:!1,required:!1,preReg:"",regList:[],changeTag:!0,description:"",descriptionType:"icon",sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],
10
+ var S={input:{tag:"c-input",appTag:"c-app-input",tagIcon:"danhangwenben"},textarea:{tag:"c-textarea",appTag:"c-app-input",tagIcon:"duohangwenben"},inputNumber:{tag:"c-input-number",appTag:"c-app-input",tagIcon:"shuzhixing"},select:{tag:"c-select",appTag:"c-app-select",tagIcon:"xiala-"},radio:{tag:"c-radio",appTag:"c-app-radio",tagIcon:"duoxuan-xuanzhong"},checkbox:{tag:"c-radio",appTag:"c-app-checkbox",tagIcon:"duoxuan-xuanzhong"},datetime:{tag:"c-datetime-picker",appTag:"c-app-datetime-picker",tagIcon:"riqishijian"},datetimeRange:{tag:"c-datetime-range",appTag:"c-app-datetime-range",tagIcon:"riqishijian"},inputTree:{tag:"c-input-tree",appTag:"c-app-input-tree",tagIcon:"bumen"},inputUpload:{tag:"c-input-upload",appTag:"c-app-input-upload",tagIcon:"yunshangchuan"},subRow:{tag:"c-sub-row",appTag:"c-app-sub-row",tagIcon:"zhediemianban"},textBox:{tag:"c-text-box",appTag:"c-app-text-box",tagIcon:"wenbenzuhe"},searchSelect:{tag:"c-search-select",appTag:"c-app-search-select",tagIcon:"sousuoxialacaidan"},searchApi:{tag:"c-search-api",appTag:"c-app-search-api",tagIcon:"duqushujuku"},subTitle:{tag:"c-sub-title",appTag:"c-app-sub-title",tagIcon:"biaotizhengwenqiehuan"},row:{tag:"c-row",appTag:"c-app-row",tagIcon:"zhage"},password:{tag:"c-input",appTag:"c-app-input",tagIcon:"mima2"},inputHidden:{tag:"c-input-hidden",appTag:"c-app-input-hidden",tagIcon:"yincangyu1"},table:{tag:"c-table",appTag:"c-app-table",tagIcon:"biaoge"},block:{tag:"c-block",appTag:"c-app-block",tagIcon:"biaoge"},button:{tag:"c-button",appTag:"c-app-button",tagIcon:"caozuoanniu"}},_=[{label:"单行文本",hideLabel:!1,name:"",widget:"input",type:"text",placeholder:"请输入",defaultValue:"",width:6,class:"form-control",clearable:!0,prepend:"",prependType:"text",append:"",appendType:"text",maxlength:null,readonly:!1,disabled:!1,required:!1,preReg:"",regList:[],changeTag:!0,description:"",descriptionType:"icon",sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],
11
11
  // ========== 新增APP专属配置 ==========
12
12
  appVisible:!0,appReadonly:!1},{label:"多行文本",hideLabel:!1,name:"",widget:"textarea",placeholder:"请输入",defaultValue:"",width:6,class:"form-control",rows:2,maxlength:null,readonly:!1,disabled:!1,required:!1,regList:[],preReg:"",changeTag:!0,description:"",descriptionType:"icon",sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"数值输入框",hideLabel:!1,name:"",widget:"inputNumber",placeholder:"请输入",defaultValue:"",width:6,class:"form-control",clearable:!0,prepend:"",prependType:"text",append:"",appendType:"text",min:0,max:1e3,readonly:!1,disabled:!1,required:!1,preReg:"",regList:[],changeTag:!0,description:"",descriptionType:"icon",sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"下拉选择",hideLabel:!1,name:"",widget:"select",placeholder:"请选择",defaultValue:"",width:6,class:"form-control",clearable:!0,readonly:!1,disabled:!1,required:!1,regList:[],changeTag:!0,description:"",descriptionType:"icon",dataType:"dict",dict:"",dictLylx:"",options:[],sjbName:"",visible:!0,multiple:!1,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"单选框",hideLabel:!1,name:"",widget:"radio",defaultValue:"",width:6,class:"",readonly:!1,disabled:!1,required:!1,changeTag:!0,description:"",descriptionType:"icon",dataType:"dict",dict:"",dictLylx:"",options:[],sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"复选框",hideLabel:!1,name:"",widget:"checkbox",defaultValue:"",width:6,class:"",readonly:!1,disabled:!1,required:!1,changeTag:!0,description:"",descriptionType:"icon",dataType:"dict",dict:"",dictLylx:"",options:[],sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"日期时间",hideLabel:!1,name:"",widget:"datetime",defaultValue:"",placeholder:"请选择",width:6,class:"form-control",disabled:!1,readonly:!1,clearable:!0,required:!1,datetype:"date",format:"yyyy-MM-dd",changeTag:!0,description:"",descriptionType:"icon",sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"日期范围",hideLabel:!1,name:"",widget:"datetimeRange",defaultValue:"",width:12,class:"form-control",disabled:!1,readonly:!1,required:!1,datetype:"date",format:"yyyy-MM-dd",changeTag:!0,description:"",descriptionType:"icon",separator:"-",sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"树选择器",hideLabel:!1,name:"",widget:"inputTree",defaultValue:"",placeholder:"请选择",width:12,class:"form-control",disabled:!1,readonly:!0,clearable:!0,required:!1,changeTag:!0,description:"",descriptionType:"icon",multiple:!1,api:{url:"system/dept/roleDeptTreeData",method:"get",paramsList:[],refresh:!1,fhType:"json"},async:!1,keyMap:{id:"id",name:"name",title:"title",pId:"pId",rootPId:0},expand:{enable:!0,level:"all"},separator:",",sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"文件上传",hideLabel:!1,name:"",widget:"inputUpload",placeholder:"请选择",width:12,class:"",disabled:!1,readonly:!1,clearable:!0,required:!1,changeTag:!0,description:"",descriptionType:"icon",allowedFileType:["image","pdf","office","zip"],mode:0,columns:2,source:"mainTable",minFileCount:null,maxFileCount:null,multiple:!1,sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},events:[],keyMap:{path:"fileBase64",name:"fileName",type:"fileType",size:"size",bizType:"biz_type"},appVisible:!0,appReadonly:!1,maxFileSize:25600},{label:"搜索建议",hideLabel:!1,name:"",widget:"searchSelect",defaultValue:"",placeholder:"请选择",width:12,class:"form-control",disabled:!1,readonly:!1,clearable:!0,required:!1,changeTag:!0,description:"",descriptionType:"icon",api:{url:"",method:"post",paramsList:[],mappings:[],headers:[],refresh:!1},sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"API查询",hideLabel:!1,name:"",widget:"searchApi",defaultValue:"",placeholder:"点击查询",width:12,class:"form-control",disabled:!1,readonly:!0,clearable:!0,required:!1,changeTag:!0,description:"",descriptionType:"icon",append:"查询",appendType:"text",buttonType:"success",visible:!0,api:{url:"",method:"post",mappings:[],paramsList:[],refresh:!1,fhType:"json"},openType:"modal",sjbName:"",visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"密码",hideLabel:!1,name:"",widget:"password",type:"password",placeholder:"请输入",defaultValue:"",width:6,class:"form-control",clearable:!0,prepend:"",prependType:"text",append:"",appendType:"text",maxlength:null,readonly:!1,disabled:!1,required:!0,preReg:"password",regList:[],changeTag:!0,description:"",descriptionType:"icon",sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!1},readonlyByMode:{add:!1,edit:!1,view:!0},events:[],appVisible:!0,appReadonly:!1},{label:"隐藏域",hideLabel:!1,name:"",widget:"inputHidden",type:"hidden",defaultValue:"",noDrag:!0,sjbName:"",visible:!0,visibilityByMode:{add:!0,edit:!0,view:!0},readonlyByMode:{add:!0,edit:!0,view:!0},events:[],appVisible:!0,appReadonly:!0}];
13
13
  // 基础组件:原有字段全部保留,统一新增APP端配置字段
@@ -53,7 +53,7 @@ disabled:t.disabled||l&&"view"==o});
53
53
  // 合并只读状态到element(供render组件使用)
54
54
  return null==t.name?e(I,{attrs:{conf:c,mode:o,terminal:"mobile"},key:t.renderKey,on:{updateItem:r},class:s}):e("c-app-form-item",{attrs:{conf:t,mode:o,formConf:a},on:{updateItem:r},class:s,scopedSlots:{default:function(n){return e(I,{key:t.renderKey,attrs:{conf:t,value:n.value,mode:o,terminal:"mobile"},on:{input:n.onUpdate,updateItem:r}})}}})},rowFormItem:function(e,t,n,i,a){var r=this.$listeners.updateItem,o=(null==a?void 0:a.mode)||"add";
55
55
  // 关键改动3:布局组件(行/块/子行)也需要判断显隐
56
- if(!L(t,o))return null;var s="widget-"+t.widget,l=F.apply(this,arguments);return"subRow"==t.widget?e("div",{class:s},[e("c-sub-row",{attrs:{conf:t,formConf:a,mode:o},on:{updateItem:r}},[l])]):"block"==t.widget?e("div",{class:s},[e("c-block",{attrs:{conf:t,formConf:a,mode:o},on:{updateItem:r}},[l])]):e("div",{class:s+(void 0!==t.border&&t.border.length>0?t.border.join(" "):"")},[l])}};function F(e,t,n,i,a){var r=this;return Array.isArray(t.children)?t.children.map(function(n,i){var o=O[n.layout];return o?o.call(r,e,n,i,t.children,a):R()}):null}function R(){throw new Error("没有与".concat(this.element.layout,"匹配的layout"))}var P="sjyy/sjczgl/form/bdgl/config/",E={scene:P+"getFromConfigScene",addSave:P+"formConfigAdd",editSave:P+"formConfigEdit",view:P+"formConfigView",getData:"sjyy/sjczgl/form/bdgl/formBdglView",getSjyyFields:"sjyy/sjcxgl/sjxgl/getYsjSjxList",getDict:P+"getFormDictData",getFormInitData:"sjyy/sjczgl/sjcjh/getFormInitData",getViewData:"sjyy/sjczgl/sjcjh/getDataViewById"};var N=["class"],z={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-page",class:e.mode},[n("c-app-form",{ref:"cform",staticClass:"app-form",attrs:{conf:e.formConf,model:e.formConf.model||{},openType:e.openType,singleUploadList:e.singleUploadList,multiplySingleUploadList:e.multiplySingleUploadList},on:{updateItem:e.updateItem}},[n("div",{staticClass:"app-wrap scroll-wrap"},[n("div",{staticStyle:{padding:"15px"}},[e._l(e.hiddenList,function(t){return n("app-form-item",{key:t.renderKey,attrs:{element:t,"form-conf":e.formConf},on:{updateItem:e.updateItem}})}),e._v(" "),e._l(e.filterDrawingList,function(t){return n("app-form-item",{key:t.renderKey,attrs:{element:t,"form-conf":e.formConf},on:{updateItem:e.updateItem}})})],2)]),e._v(" "),e.formConf.buttons?n("van-goods-action",{ref:"detailBtns",staticClass:"bottom-btns"},e._l(e.formConf.buttons,function(t){return n("app-form-item",{key:t.renderKey,attrs:{element:t,"form-conf":e.formConf},on:{updateItem:e.updateItem}})}),1):e._e()],1)],1)},staticRenderFns:[],components:{AppFormItem:{components:{render:I},props:["element","index","drawingList","formConf"],render:function(e){var t=O[this.element.layout||"colFormItem"];return t?t.call(this,e,this.element,this.index,this.drawingList,this.formConf):R()}}},props:{formId:{type:String},buttonCode:{type:String},ywid:{type:String},formData:{type:Object,default:function(){}},mode:{}},data:function(){return{formConf:{},drawingList:[],openType:"",paddingBottom:"0px",baseWidget:_.map(function(e){return e.widget})}},computed:y(y({},n.mapState("user",["userInfo"])),{},{hiddenList:function(){return this.drawingList.filter(function(e){return e.noDrag})},filterDrawingList:function(){return this.getDrawingList(this.drawingList.filter(function(e){return!e.noDrag}))},filterList:function(){return this.flattenDrawingList(this.drawingList)},singleUploadList:function(){return this.filterList.filter(function(e){return"inputUpload"==e.widget&&"mainTable"==e.source})},tableList:function(){return this.filterList.filter(function(e){return"table"==e.widget})},multiplyUploadList:function(){var e={};return this.filterList.filter(function(e){return"inputUpload"==e.widget&&"attachedTable"==e.source}).forEach(function(t){if(t.name.split("@").length>1){var n=x(t.name.split("@"),2),i=n[0];n[1],e[i]||(e[i]=t.keyMap)}}),e},multiplySingleUploadList:function(){var e={};return this.filterList.filter(function(e){return"inputUpload"==e.widget&&"attachedTable"==e.source}).forEach(function(t){1==t.name.split("@").length&&(e[t.name]=t.keyMap)}),e},sceneName:function(){return{add:"新增",edit:"修改",view:"查看"}[this.formConf.mode]||"新增"}}),watch:{formData:{handler:function(e){e&&(this.formConf=e,this.drawingList=e.fields)},deep:!0},formId:function(){this.initData(this.formId,this.buttonCode,this.ywid)},buttonCode:function(){this.initData(this.formId,this.buttonCode,this.ywid)},ywid:function(){this.initData(this.formId,this.buttonCode,this.ywid)}},created:function(){this.userInfo&&this.userInfo.userId||this.fetchUserInfo(),this.formData&&(this.formConf=this.formData,this.drawingList=this.formData.fields);
56
+ if(!L(t,o))return null;var s="widget-"+t.widget,l=F.apply(this,arguments);return"subRow"==t.widget?e("div",{class:s},[e("c-sub-row",{attrs:{conf:t,formConf:a,mode:o},on:{updateItem:r}},[l])]):"block"==t.widget?e("div",{class:s},[e("c-block",{attrs:{conf:t,formConf:a,mode:o},on:{updateItem:r}},[l])]):e("div",{class:s+(void 0!==t.border&&t.border.length>0?t.border.join(" "):"")},[l])}};function F(e,t,n,i,a){var r=this;return Array.isArray(t.children)?t.children.map(function(n,i){var o=O[n.layout];return o?o.call(r,e,n,i,t.children,a):R()}):null}function R(){throw new Error("没有与".concat(this.element.layout,"匹配的layout"))}var P="sjyy/sjczgl/form/bdgl/config/",E={scene:P+"getFromConfigScene",addSave:P+"formConfigAdd",editSave:P+"formConfigEdit",view:P+"formConfigView",getData:"sjyy/sjczgl/form/bdgl/formBdglView",getSjyyFields:"sjyy/sjcxgl/sjxgl/getYsjSjxList",getDict:P+"getFormDictData",getFormInitData:"sjyy/sjczgl/sjcjh/getFormInitData",getViewData:"sjyy/sjczgl/sjcjh/getDataViewById"};function N(e,t){return this.$request({url:e,method:"post",data:t})}var z=["class"],M={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-page",class:e.mode},[n("c-app-form",{ref:"cform",staticClass:"app-form",attrs:{conf:e.formConf,model:e.formConf.model||{},openType:e.openType,singleUploadList:e.singleUploadList,multiplySingleUploadList:e.multiplySingleUploadList},on:{updateItem:e.updateItem}},[n("div",{staticClass:"app-wrap scroll-wrap"},[n("div",{staticStyle:{padding:"15px"}},[e._l(e.hiddenList,function(t){return n("app-form-item",{key:t.renderKey,attrs:{element:t,"form-conf":e.formConf},on:{updateItem:e.updateItem}})}),e._v(" "),e._l(e.filterDrawingList,function(t){return n("app-form-item",{key:t.renderKey,attrs:{element:t,"form-conf":e.formConf},on:{updateItem:e.updateItem}})})],2)]),e._v(" "),e.formConf.buttons?n("van-goods-action",{ref:"detailBtns",staticClass:"bottom-btns"},e._l(e.formConf.buttons,function(t){return n("app-form-item",{key:t.renderKey,attrs:{element:t,"form-conf":e.formConf},on:{updateItem:e.updateItem}})}),1):e._e()],1)],1)},staticRenderFns:[],name:"AppFormView",components:{AppFormItem:{components:{render:I},props:["element","index","drawingList","formConf"],render:function(e){var t=O[this.element.layout||"colFormItem"];return t?t.call(this,e,this.element,this.index,this.drawingList,this.formConf):R()}}},props:{formId:{type:String},buttonCode:{type:String},ywid:{type:String},formData:{type:Object,default:function(){}},mode:{}},data:function(){return{formConf:{},drawingList:[],openType:"",paddingBottom:"0px",baseWidget:_.map(function(e){return e.widget})}},computed:y(y({},n.mapState("user",["userInfo"])),{},{hiddenList:function(){return this.drawingList.filter(function(e){return e.noDrag})},filterDrawingList:function(){return this.getDrawingList(this.drawingList.filter(function(e){return!e.noDrag}))},filterList:function(){return this.flattenDrawingList(this.drawingList)},singleUploadList:function(){return this.filterList.filter(function(e){return"inputUpload"==e.widget&&"mainTable"==e.source})},tableList:function(){return this.filterList.filter(function(e){return"table"==e.widget})},multiplyUploadList:function(){var e={};return this.filterList.filter(function(e){return"inputUpload"==e.widget&&"attachedTable"==e.source}).forEach(function(t){if(t.name.split("@").length>1){var n=x(t.name.split("@"),2),i=n[0];n[1],e[i]||(e[i]=t.keyMap)}}),e},multiplySingleUploadList:function(){var e={};return this.filterList.filter(function(e){return"inputUpload"==e.widget&&"attachedTable"==e.source}).forEach(function(t){1==t.name.split("@").length&&(e[t.name]=t.keyMap)}),e},sceneName:function(){return{add:"新增",edit:"修改",view:"查看"}[this.formConf.mode]||"新增"}}),watch:{formData:{handler:function(e){e&&(this.formConf=e,this.drawingList=e.fields)},deep:!0},formId:function(){this.initData(this.formId,this.buttonCode,this.ywid)},buttonCode:function(){this.initData(this.formId,this.buttonCode,this.ywid)},ywid:function(){this.initData(this.formId,this.buttonCode,this.ywid)}},created:function(){this.userInfo&&this.userInfo.userId||this.fetchUserInfo(),this.formData&&(this.formConf=this.formData,this.drawingList=this.formData.fields);
57
57
  // 调用修改后的方法,获取formId
58
58
  var e=this.getFormParamsFromUrl(),t=e.formId,n=e.buttonCode,i=e.ywid;t&&this.initData(t,n,i),this.formId&&this.initData(this.formId,this.buttonCode,this.ywid),t&&this.formId||console.warn("未从URL中获取到表单ID")},mounted:function(){},methods:y(y({},n.mapActions("user",["fetchUserInfo"])),{},{initData:function(e,t,n){var i=this;
59
59
  // 原有接口请求逻辑不变
@@ -77,7 +77,7 @@ r.appVisible=!1,
77
77
  // table 的 label 赋值为 subTitle 的 label
78
78
  o.label=r.label)}
79
79
  // 直接 return map 结果
80
- return i.map(function(e,a){e.class;var r=b(e,N),o=0===a,s=a===n-1,l=t.baseWidget.indexOf(e.widget)>-1,c="";
80
+ return i.map(function(e,a){e.class;var r=b(e,z),o=0===a,s=a===n-1,l=t.baseWidget.indexOf(e.widget)>-1,c="";
81
81
  // 最后一个
82
82
  if(s)l&&(c="last-cell-child");else if(o)(l||"subTitle"===e.widget)&&(c="first-cell-child");else{var u=i[a-1],d=i[a+1],p=t.baseWidget.indexOf(u.widget)>-1,f=t.baseWidget.indexOf(d.widget)>-1;"subTitle"===u.widget||p&&"subTitle"!=e.widget||(c="first-cell-child"),f||(c+=c?" last-cell-child":"last-cell-child")}return y(y({},r),{},{class:c})})},updateItem:function(e,t){
83
83
  // 场景1:key是对象(原有逻辑,适配 name/sjbName/key 格式)
@@ -148,7 +148,7 @@ if("object"===T(e)&&null!==e){
148
148
  // 只保留name和label字段(无则返回空字符串)
149
149
  "inputUpload"!=e.widget&&"table"!=e.widget||n.push(e);
150
150
  // 处理嵌套数组(支持children/items等常见嵌套字段)
151
- ["children","columnsData"].forEach(function(i){Array.isArray(e[i])&&(n=n.concat(t(e[i])))})}}),n};return t(e)}})},M={
151
+ ["children","columnsData"].forEach(function(i){Array.isArray(e[i])&&(n=n.concat(t(e[i])))})}}),n};return t(e)}})},B={
152
152
  /**
153
153
  * 会话级缓存
154
154
  */
@@ -164,18 +164,18 @@ this.mergeConfig(this.getUrlConfig()),
164
164
  // 3. 尝试从 localStorage 读取
165
165
  this.mergeConfig(this.getLocalStorageConfig())}},{key:"getUrlConfig",value:function(){var e=new URLSearchParams(window.location.search),t={};return e.get("baseURL")&&(t.baseURL=e.get("baseURL")),e.get("apiPrefix")&&(t.apiPrefix=e.get("apiPrefix")),t}},{key:"getLocalStorageConfig",value:function(){try{return JSON.parse(localStorage.getItem("app-config"))||{}}catch(e){return{}}}},{key:"mergeConfig",value:function(e){this.config=y(y({},this.config),e)}},{key:"updateConfig",value:function(e){this.mergeConfig(e),
166
166
  // 保存到 localStorage
167
- localStorage.setItem("app-config",JSON.stringify(this.config))}},{key:"get",value:function(e){return this.config[e]}},{key:"getAll",value:function(){return y({},this.config)}}])}());function B(e){for(var t="",n=0,i=Object.keys(e);n<i.length;n++){var a=i[n],r=e[a],o=encodeURIComponent(a)+"=";if(null!==r&&""!==r&&void 0!==r)if("object"===T(r))for(var s=0,l=Object.keys(r);s<l.length;s++){var c=l[s];if(null!==r[c]&&""!==r[c]&&void 0!==r[c]){var u="".concat(a,"[").concat(c,"]");t+=encodeURIComponent(u)+"="+encodeURIComponent(r[c])+"&"}}else t+=o+encodeURIComponent(r)+"&"}return t.slice(0,-1)}var U=function(e){var t=y(y({},{url:"",method:"GET",data:null,headers:{"Content-Type":"application/x-www-form-urlencoded"},responseType:"json",timeout:1e4,cache:!0,processData:!0,contentType:!0}),e);if(t.url=function(e,t){if(!t)return e;var n=e.endsWith("/"),i=t.startsWith("/");return n&&i?e+t.slice(1):n||i?e+t:e+"/"+t}("/api/",t.url),"GET"===t.method.toUpperCase()&&t.data){var n=B(t.data);t.url+=(t.url.includes("?")?"&":"?")+n,t.data=null}
167
+ localStorage.setItem("app-config",JSON.stringify(this.config))}},{key:"get",value:function(e){return this.config[e]}},{key:"getAll",value:function(){return y({},this.config)}}])}());function U(e){for(var t="",n=0,i=Object.keys(e);n<i.length;n++){var a=i[n],r=e[a],o=encodeURIComponent(a)+"=";if(null!==r&&""!==r&&void 0!==r)if("object"===T(r))for(var s=0,l=Object.keys(r);s<l.length;s++){var c=l[s];if(null!==r[c]&&""!==r[c]&&void 0!==r[c]){var u="".concat(a,"[").concat(c,"]");t+=encodeURIComponent(u)+"="+encodeURIComponent(r[c])+"&"}}else t+=o+encodeURIComponent(r)+"&"}return t.slice(0,-1)}var q=function(e){var t=y(y({},{url:"",method:"GET",data:null,headers:{"Content-Type":"application/x-www-form-urlencoded"},responseType:"json",timeout:1e4,cache:!0,processData:!0,contentType:!0}),e);if(t.url=function(e,t){if(!t)return e;var n=e.endsWith("/"),i=t.startsWith("/");return n&&i?e+t.slice(1):n||i?e+t:e+"/"+t}("/api/",t.url),"GET"===t.method.toUpperCase()&&t.data){var n=U(t.data);t.url+=(t.url.includes("?")?"&":"?")+n,t.data=null}
168
168
  // ---------------- 关键修复:判断是否是 FormData ----------------
169
- t.data instanceof FormData?(t.contentType=!1,t.processData=!1,t.headers={}):["POST","PUT","PATCH"].includes(t.method.toUpperCase())&&t.data&&"application/x-www-form-urlencoded"===t.headers["Content-Type"]&&(t.data=B(t.data));
169
+ t.data instanceof FormData?(t.contentType=!1,t.processData=!1,t.headers={}):["POST","PUT","PATCH"].includes(t.method.toUpperCase())&&t.data&&"application/x-www-form-urlencoded"===t.headers["Content-Type"]&&(t.data=U(t.data));
170
170
  // ----------------------------------------------------------------
171
- var a=function(e){var t;if(!1!==(null===(t=e.headers)||void 0===t?void 0:t.repeatSubmit)&&["POST","PUT"].includes(e.method.toUpperCase())){var n={url:e.url,data:e.data,time:(new Date).getTime()};if(JSON.stringify(n).length>=5242880)return console.warn("[".concat(e.url,"]: 请求数据超出5M限制")),e;M.session.setJSON("sessionObj",n)}return e}(t);return a?new Promise(function(e,t){$.ajax({cache:a.cache,processData:a.processData,contentType:a.contentType,url:a.url,type:a.method,data:a.data,headers:a.headers,timeout:a.timeout,success:function(n,r,o){try{var s=function(e){var t=e.data;if("blob"===e.responseType||"arraybuffer"===e.responseType)return t;var n=t.code,a=t.msg||"操作失败";return 401===n?Promise.reject("无效的会话,请重新登录"):500===n?(i.Message({message:a,type:"error"}),Promise.reject(a)):601===n?(i.Message({message:a,type:"warning"}),Promise.reject("warning")):0!==n&&void 0!==n?(i.Notification.error({title:a}),Promise.reject("error")):t}({data:n,responseType:a.responseType});e(s)}catch(e){t(e)}},error:function(e,n,a){(function(e,t,n){var a="";return a="error"===t?0===e.status?"后端接口连接异常":"系统接口".concat(e.status,"异常"):"timeout"===t?"请求超时":"请求失败: ".concat(n||t),i.Message({message:a,type:"error",duration:5e3}),Promise.reject(a)})(e,n,a).catch(t)}})}):Promise.reject("请求被拦截")};var q={data:function(){return{originCompConfig:{},eventMixinInited:!1,eventHandlersCache:{}}},watch:{"conf.events":{deep:!0,handler:function(e,t){this.eventMixinInited&&JSON.stringify(e)!==JSON.stringify(t)&&(this.unbindAllEvents(),this.initEventHandlers(),this.saveOriginCompConfig())}},value:{deep:!0,handler:function(e,t){this.eventMixinInited&&e!==t&&this.triggerEvent("change",{value:e,oldValue:t})}}},mounted:function(){this.conf?this.initEventMixin():console.warn("表单组件未配置 conf 参数,事件 mixin 初始化失败")},beforeDestroy:function(){this.unbindAllEvents(),this.eventMixinInited=!1},methods:{initEventMixin:function(){this.saveOriginCompConfig(),this.initEventHandlers(),this.triggerEvent("rendered"),this.eventMixinInited=!0},saveOriginCompConfig:function(){var e,t,n;this.originCompConfig={visible:!1!==this.conf.visible,disabled:!0===(null===(e=this.attrs)||void 0===e?void 0:e.disabled),required:!0===(null===(t=this.attrs)||void 0===t?void 0:t.required),readonly:!0===(null===(n=this.attrs)||void 0===n?void 0:n.readonly),value:this.value,refresh:this.conf.refresh||!1}},initEventHandlers:function(){var e,t=this,n=(null===(e=this.conf)||void 0===e?void 0:e.events)||[];Array.isArray(n)&&0!==n.length&&n.forEach(function(e){var n=e.type,i=e.rules;if(n&&Array.isArray(i))switch(n){case"change":break;case"click":case"focus":case"blur":t.bindDomEvent(n,i);break;case"rendered":t.executeRules(i);break;default:console.warn("不支持的事件类型:".concat(n))}})},bindDomEvent:function(e,t){var n=this,i=this.$el.querySelector("input, textarea, select, button, a");if(!i){var a=this.$el.tagName?this.$el.tagName:"";console.log(a,"events");var r=a.toLowerCase();if(!["input","textarea","select","button","a"].includes(r))return;i=this.$el}var o=function(i){var a;i.stopPropagation(),i.preventDefault(),n.executeRules(t,{field:null===(a=n.attrs)||void 0===a?void 0:a.name,eventType:e,value:n.value})},s="".concat(e,"-").concat(this.uid||this.conf.id||Date.now());this.eventHandlersCache[s]={el:i,type:e,handler:o},i.addEventListener(e,o)},unbindAllEvents:function(){this.eventHandlersCache&&(Object.values(this.eventHandlersCache).forEach(function(e){e.el&&e.type&&e.handler&&e.el.removeEventListener(e.type,e.handler)}),this.eventHandlersCache={})},triggerEvent:function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=((null===(t=this.conf)||void 0===t?void 0:t.events)||[]).find(function(t){return t.type===e});a&&Array.isArray(a.rules)&&this.executeRules(a.rules,y(y({},i),{},{field:null===(n=this.attrs)||void 0===n?void 0:n.name,eventType:e,component:this}))},executeRules:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Array.isArray(e)&&0!==e.length&&e.forEach(function(e){t.checkConditionGroups(e.conditionGroups,n)?t.executeActions(e.actions):t.restoreCompOriginState(e.actions)})},checkConditionGroups:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Array.isArray(e)||0===e.length)return!0;var i=!0;return e.forEach(function(e,a){var r=t.checkSingleConditionGroup(e,n);i=0===a?r:"and"===e.groupLogic?i&&r:i||r}),i},checkSingleConditionGroup:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=(null==e?void 0:e.conditions)||[];if(!Array.isArray(i)||0===i.length)return!0;var a=!0;return i.forEach(function(e,i){var r=t.checkSingleCondition(e,n);a=0===i?r:"and"===e.logic?a&&r:a||r}),a},checkSingleCondition:function(e){var t=e.field,n=e.operator,i=e.valueType,a=e.value;if(!t||!n)return!1;var r=this.getTargetFieldValue(t),o=this.getCompareValue(i,a);switch(n){case"=":return this.compareValues(r,o,"=");case"!=":return this.compareValues(r,o,"!=");case"like":return this.compareValues(r,o,"like");case">":return this.compareValues(r,o,">");case"<":return this.compareValues(r,o,"<");case">=":return this.compareValues(r,o,">=");case"<=":return this.compareValues(r,o,"<=");case"in":return this.compareValues(r,o,"in");case"is null":return null==r||""===r;case"is not null":return null!=r&&""!==r;default:return console.warn("不支持的运算符:".concat(n)),!1}},getTargetFieldValue:function(e){var t;return this.formData?this.formData[e]:e===(null===(t=this.attrs)||void 0===t?void 0:t.name)?this.value:void 0},getCompareValue:function(e,t){var n=this;if("fixed"===e)return t;if("form"===e){var i;if(Array.isArray(t)){var a=[];return t.forEach(function(e){void 0!==n.formData[e]&&a.push(n.formData[e])}),a}return(null===(i=this.formData)||void 0===i?void 0:i[t])||""}return t},compareValues:function(e,t,n){var i=null==e?"":String(e),a=null==t?"":String(t);switch(n){case"=":return i==a;case"!=":return i!==a;case"like":return i.includes(a);case">":return Number(i)>Number(a);case"<":return Number(i)<Number(a);case">=":return Number(i)>=Number(a);case"<=":return Number(i)<=Number(a);case"in":return Array.isArray(t)?t.includes(e):a.includes(i);default:return!1}},executeActions:function(e){var t=this;Array.isArray(e)&&0!==e.length&&e.forEach(function(e){var n=e.type,i=e.fields,a=e.setValueType,r=e.setFixedValue,o=e.setFormValue,s=e.message;
171
+ var a=function(e){var t;if(!1!==(null===(t=e.headers)||void 0===t?void 0:t.repeatSubmit)&&["POST","PUT"].includes(e.method.toUpperCase())){var n={url:e.url,data:e.data,time:(new Date).getTime()};if(JSON.stringify(n).length>=5242880)return console.warn("[".concat(e.url,"]: 请求数据超出5M限制")),e;B.session.setJSON("sessionObj",n)}return e}(t);return a?new Promise(function(e,t){$.ajax({cache:a.cache,processData:a.processData,contentType:a.contentType,url:a.url,type:a.method,data:a.data,headers:a.headers,timeout:a.timeout,success:function(n,r,o){try{var s=function(e){var t=e.data;if("blob"===e.responseType||"arraybuffer"===e.responseType)return t;var n=t.code,a=t.msg||"操作失败";return 401===n?Promise.reject("无效的会话,请重新登录"):500===n?(i.Message({message:a,type:"error"}),Promise.reject(a)):601===n?(i.Message({message:a,type:"warning"}),Promise.reject("warning")):0!==n&&void 0!==n?(i.Notification.error({title:a}),Promise.reject("error")):t}({data:n,responseType:a.responseType});e(s)}catch(e){t(e)}},error:function(e,n,a){(function(e,t,n){var a="";return a="error"===t?0===e.status?"后端接口连接异常":"系统接口".concat(e.status,"异常"):"timeout"===t?"请求超时":"请求失败: ".concat(n||t),i.Message({message:a,type:"error",duration:5e3}),Promise.reject(a)})(e,n,a).catch(t)}})}):Promise.reject("请求被拦截")};var J={data:function(){return{originCompConfig:{},eventMixinInited:!1,eventHandlersCache:{}}},watch:{"conf.events":{deep:!0,handler:function(e,t){this.eventMixinInited&&JSON.stringify(e)!==JSON.stringify(t)&&(this.unbindAllEvents(),this.initEventHandlers(),this.saveOriginCompConfig())}},value:{deep:!0,handler:function(e,t){this.eventMixinInited&&e!==t&&this.triggerEvent("change",{value:e,oldValue:t})}}},mounted:function(){this.conf?this.initEventMixin():console.warn("表单组件未配置 conf 参数,事件 mixin 初始化失败")},beforeDestroy:function(){this.unbindAllEvents(),this.eventMixinInited=!1},methods:{initEventMixin:function(){this.saveOriginCompConfig(),this.initEventHandlers(),this.triggerEvent("rendered"),this.eventMixinInited=!0},saveOriginCompConfig:function(){var e,t,n;this.originCompConfig={visible:!1!==this.conf.visible,disabled:!0===(null===(e=this.attrs)||void 0===e?void 0:e.disabled),required:!0===(null===(t=this.attrs)||void 0===t?void 0:t.required),readonly:!0===(null===(n=this.attrs)||void 0===n?void 0:n.readonly),value:this.value,refresh:this.conf.refresh||!1}},initEventHandlers:function(){var e,t=this,n=(null===(e=this.conf)||void 0===e?void 0:e.events)||[];Array.isArray(n)&&0!==n.length&&n.forEach(function(e){var n=e.type,i=e.rules;if(n&&Array.isArray(i))switch(n){case"change":break;case"click":case"focus":case"blur":t.bindDomEvent(n,i);break;case"rendered":t.executeRules(i);break;default:console.warn("不支持的事件类型:".concat(n))}})},bindDomEvent:function(e,t){var n=this,i=this.$el.querySelector("input, textarea, select, button, a");if(!i){var a=this.$el.tagName?this.$el.tagName:"";console.log(a,"events");var r=a.toLowerCase();if(!["input","textarea","select","button","a"].includes(r))return;i=this.$el}var o=function(i){var a;i.stopPropagation(),i.preventDefault(),n.executeRules(t,{field:null===(a=n.attrs)||void 0===a?void 0:a.name,eventType:e,value:n.value})},s="".concat(e,"-").concat(this.uid||this.conf.id||Date.now());this.eventHandlersCache[s]={el:i,type:e,handler:o},i.addEventListener(e,o)},unbindAllEvents:function(){this.eventHandlersCache&&(Object.values(this.eventHandlersCache).forEach(function(e){e.el&&e.type&&e.handler&&e.el.removeEventListener(e.type,e.handler)}),this.eventHandlersCache={})},triggerEvent:function(e){var t,n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=((null===(t=this.conf)||void 0===t?void 0:t.events)||[]).find(function(t){return t.type===e});a&&Array.isArray(a.rules)&&this.executeRules(a.rules,y(y({},i),{},{field:null===(n=this.attrs)||void 0===n?void 0:n.name,eventType:e,component:this}))},executeRules:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Array.isArray(e)&&0!==e.length&&e.forEach(function(e){t.checkConditionGroups(e.conditionGroups,n)?t.executeActions(e.actions):t.restoreCompOriginState(e.actions)})},checkConditionGroups:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Array.isArray(e)||0===e.length)return!0;var i=!0;return e.forEach(function(e,a){var r=t.checkSingleConditionGroup(e,n);i=0===a?r:"and"===e.groupLogic?i&&r:i||r}),i},checkSingleConditionGroup:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=(null==e?void 0:e.conditions)||[];if(!Array.isArray(i)||0===i.length)return!0;var a=!0;return i.forEach(function(e,i){var r=t.checkSingleCondition(e,n);a=0===i?r:"and"===e.logic?a&&r:a||r}),a},checkSingleCondition:function(e){var t=e.field,n=e.operator,i=e.valueType,a=e.value;if(!t||!n)return!1;var r=this.getTargetFieldValue(t),o=this.getCompareValue(i,a);switch(n){case"=":return this.compareValues(r,o,"=");case"!=":return this.compareValues(r,o,"!=");case"like":return this.compareValues(r,o,"like");case">":return this.compareValues(r,o,">");case"<":return this.compareValues(r,o,"<");case">=":return this.compareValues(r,o,">=");case"<=":return this.compareValues(r,o,"<=");case"in":return this.compareValues(r,o,"in");case"is null":return null==r||""===r;case"is not null":return null!=r&&""!==r;default:return console.warn("不支持的运算符:".concat(n)),!1}},getTargetFieldValue:function(e){var t;return this.formData?this.formData[e]:e===(null===(t=this.attrs)||void 0===t?void 0:t.name)?this.value:void 0},getCompareValue:function(e,t){var n=this;if("fixed"===e)return t;if("form"===e){var i;if(Array.isArray(t)){var a=[];return t.forEach(function(e){void 0!==n.formData[e]&&a.push(n.formData[e])}),a}return(null===(i=this.formData)||void 0===i?void 0:i[t])||""}return t},compareValues:function(e,t,n){var i=null==e?"":String(e),a=null==t?"":String(t);switch(n){case"=":return i==a;case"!=":return i!==a;case"like":return i.includes(a);case">":return Number(i)>Number(a);case"<":return Number(i)<Number(a);case">=":return Number(i)>=Number(a);case"<=":return Number(i)<=Number(a);case"in":return Array.isArray(t)?t.includes(e):a.includes(i);default:return!1}},executeActions:function(e){var t=this;Array.isArray(e)&&0!==e.length&&e.forEach(function(e){var n=e.type,i=e.fields,a=e.setValueType,r=e.setFixedValue,o=e.setFormValue,s=e.message;
172
172
  // 全局表单动作(走自己这一层)
173
173
  ["saveForm","saveAndCloseForm","closeForm","resetForm"].includes(n)?t.triggerGlobalFormEvent(n):
174
174
  // ===================== 核心修改 =====================
175
175
  // 直接执行当前组件自己的方法
176
176
  "refreshData"!==n?"openModal"!==n?
177
177
  // ====================================================
178
- n&&Array.isArray(i)&&i.forEach(function(e){switch(n){case"show":t.updateCompProp(e,"visible",!0);break;case"hide":t.updateCompProp(e,"visible",!1);break;case"editable":t.updateCompProp(e,"disabled",!1),t.updateCompProp(e,"readonly",!1);break;case"required":t.updateCompProp(e,"required",!0);break;case"readonly":t.updateCompProp(e,"readonly",!0),t.updateCompProp(e,"disabled",!0);break;case"showError":t.showCompError(e,s||"操作失败!");break;case"setValue":t.setCompValue(e,a,r,o);break;case"refreshComponent":t.updateCompProp(e,"api.refresh",!0);break;default:console.warn("不支持的动作类型:".concat(n))}}):"function"==typeof t.openModal?t.openModal():console.warn("当前组件未实现 openModal 方法"):"function"==typeof t.refreshData?t.refreshData():console.warn("当前组件未实现 refreshData 方法")})},triggerGlobalFormEvent:function(e){var t,n=this.findParentFormComponent();n?"function"==typeof n[e]?n[e]({formData:this.formData,field:null===(t=this.attrs)||void 0===t?void 0:t.name,component:this}):console.warn("Form 组件未实现 ".concat(e," 方法")):console.warn("未找到外层 Form 组件,无法执行表单全局操作")},findParentFormComponent:function(){for(var e=this.$parent;e;){if(!0===e.isForm)return e;e=e.$parent}return null},restoreCompOriginState:function(e){var t=this;Array.isArray(e)&&0!==e.length&&e.forEach(function(e){var n=e.type,i=e.fields;n&&Array.isArray(i)&&i.forEach(function(e){switch(n){case"show":t.updateCompProp(e,"visible",!1);break;case"hide":t.updateCompProp(e,"visible",!0);break;case"editable":case"readonly":t.updateCompProp(e,"disabled",t.originCompConfig.disabled),t.updateCompProp(e,"readonly",t.originCompConfig.readonly);break;case"required":t.updateCompProp(e,"required",t.originCompConfig.required)}})})},updateCompProp:function(e,t,n){this.$emit("updateItem",{name:e,sjbName:null,key:t},n)},setCompValue:function(e,t,n,i){if("fixed"===t)this.updateFormData(e,n);else if("form"===t){var a;this.updateFormData(e,(null===(a=this.formData)||void 0===a?void 0:a[i])||"")}},showCompError:function(e,t){var n,i=this;this.$parent&&this.$parent.$refs.form?this.$parent.$refs.form.validateField(this.conf.value,function(){i.$message.error(t)}):(null===(n=this.$message)||void 0===n?void 0:n.error(t))||console.error(t)}}},J={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-form",{ref:"vantForm",attrs:{"validate-first":""},model:{value:e.formModel,callback:function(t){e.formModel=t},expression:"formModel"}},[n("van-nav-bar",{staticClass:"top-nav-bar",attrs:{title:e.conf.showName&&e.conf.name?e.sceneName+e.conf.name:"","left-arrow":""},on:{"click-left":e.onClickLeft}}),e._v(" "),e._t("default")],2)},staticRenderFns:[],name:"Form",mixins:[q],provide:function(){
178
+ n&&Array.isArray(i)&&i.forEach(function(e){switch(n){case"show":t.updateCompProp(e,"visible",!0);break;case"hide":t.updateCompProp(e,"visible",!1);break;case"editable":t.updateCompProp(e,"disabled",!1),t.updateCompProp(e,"readonly",!1);break;case"required":t.updateCompProp(e,"required",!0);break;case"readonly":t.updateCompProp(e,"readonly",!0),t.updateCompProp(e,"disabled",!0);break;case"showError":t.showCompError(e,s||"操作失败!");break;case"setValue":t.setCompValue(e,a,r,o);break;case"refreshComponent":t.updateCompProp(e,"api.refresh",!0);break;default:console.warn("不支持的动作类型:".concat(n))}}):"function"==typeof t.openModal?t.openModal():console.warn("当前组件未实现 openModal 方法"):"function"==typeof t.refreshData?t.refreshData():console.warn("当前组件未实现 refreshData 方法")})},triggerGlobalFormEvent:function(e){var t,n=this.findParentFormComponent();n?"function"==typeof n[e]?n[e]({formData:this.formData,field:null===(t=this.attrs)||void 0===t?void 0:t.name,component:this}):console.warn("Form 组件未实现 ".concat(e," 方法")):console.warn("未找到外层 Form 组件,无法执行表单全局操作")},findParentFormComponent:function(){for(var e=this.$parent;e;){if(!0===e.isForm)return e;e=e.$parent}return null},restoreCompOriginState:function(e){var t=this;Array.isArray(e)&&0!==e.length&&e.forEach(function(e){var n=e.type,i=e.fields;n&&Array.isArray(i)&&i.forEach(function(e){switch(n){case"show":t.updateCompProp(e,"visible",!1);break;case"hide":t.updateCompProp(e,"visible",!0);break;case"editable":case"readonly":t.updateCompProp(e,"disabled",t.originCompConfig.disabled),t.updateCompProp(e,"readonly",t.originCompConfig.readonly);break;case"required":t.updateCompProp(e,"required",t.originCompConfig.required)}})})},updateCompProp:function(e,t,n){this.$emit("updateItem",{name:e,sjbName:null,key:t},n)},setCompValue:function(e,t,n,i){if("fixed"===t)this.updateFormData(e,n);else if("form"===t){var a;this.updateFormData(e,(null===(a=this.formData)||void 0===a?void 0:a[i])||"")}},showCompError:function(e,t){var n,i=this;this.$parent&&this.$parent.$refs.form?this.$parent.$refs.form.validateField(this.conf.value,function(){i.$message.error(t)}):(null===(n=this.$message)||void 0===n?void 0:n.error(t))||console.error(t)}}},W={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-form",{ref:"vantForm",attrs:{"validate-first":""},model:{value:e.formModel,callback:function(t){e.formModel=t},expression:"formModel"}},[n("van-nav-bar",{staticClass:"top-nav-bar",attrs:{title:e.conf.showName&&e.conf.name?e.sceneName+e.conf.name:"","left-arrow":""},on:{"click-left":e.onClickLeft}}),e._v(" "),e._t("default")],2)},staticRenderFns:[],name:"c-app-form",mixins:[J],provide:function(){
179
179
  // Vue 2 中 provide 是函数
180
180
  return{formData:o.default.observable(this.formModel),
181
181
  // 向子组件暴露当前 Form 实例
@@ -196,7 +196,7 @@ register:function(e){this.formItems.push(e)},
196
196
  saveForm:function(){var e=this;this.$dialog.confirm({message:"保存此次编辑?",confirmButtonText:"保存",cancelButtonText:"不保存"}).then(function(){e.back=!1,e.saveHandler()})},saveHandler:function(){var e=this;this.$refs.vantForm.validate().then(function(){var t=e.convertVueFormToNativeFormData(y({},e.formModel));e.$toast.loading({forbidClick:!0,message:"保存中…"});try{
197
197
  // 2. 转换 Vue 响应式 formData 为原生 FormData
198
198
  //const nativeFormData = this.convertVueFormToNativeFormData(JSON.parse(JSON.stringify(this.formModel)));
199
- e.ywid&&!e.formModel[e.conf.primaryKeyName]&&t.append(e.conf.primaryKeyName||"id",e.ywid),U({url:e.saveUrl,
199
+ e.ywid&&!e.formModel[e.conf.primaryKeyName]&&t.append(e.conf.primaryKeyName||"id",e.ywid),q({url:e.saveUrl,
200
200
  // cache: false,
201
201
  // contentType: false,
202
202
  // processData: false,
@@ -206,7 +206,7 @@ saveAndCloseForm:function(){var e=this,t=Date.now();
206
206
  // 检查是否在间隔时间内
207
207
  t-this.lastSubmitTime<this.submitInterval?this.$toast.fail("请勿重复提交"):(
208
208
  // 更新提交时间
209
- this.lastSubmitTime=t,this.$refs.vantForm.validate().then(function(){var t=e.convertVueFormToNativeFormData(y({},e.formModel));e.$toast.loading({forbidClick:!0,message:"保存中…"}),e.ywid&&!e.formModel[e.conf.primaryKeyName]&&t.append(e.conf.primaryKeyName||"id",e.ywid),U({url:e.saveUrl,method:"POST",data:t}).then(function(t){e.$toast.clear(),e.$toast.success("提交成功!"),e.closeForm()}).catch(function(e){$.modal.msgError("提交失败!")})}).catch(function(){e.$toast.fail("表单校验失败!")}))},closeForm:function(){this.goBack?this.goBack():this.$router?this.$router.go(-1):window.history.back()},
209
+ this.lastSubmitTime=t,this.$refs.vantForm.validate().then(function(){var t=e.convertVueFormToNativeFormData(y({},e.formModel));e.$toast.loading({forbidClick:!0,message:"保存中…"}),e.ywid&&!e.formModel[e.conf.primaryKeyName]&&t.append(e.conf.primaryKeyName||"id",e.ywid),q({url:e.saveUrl,method:"POST",data:t}).then(function(t){e.$toast.clear(),e.$toast.success("提交成功!"),e.closeForm()}).catch(function(e){$.modal.msgError("提交失败!")})}).catch(function(){e.$toast.fail("表单校验失败!")}))},closeForm:function(){this.goBack?this.goBack():this.$router?this.$router.go(-1):window.history.back()},
210
210
  // Form 组件的 methods 中替换 resetForm 方法
211
211
  resetForm:function(){var e=this;try{var t;
212
212
  // 1. 备份初始 model(在 data 初始化时保存,避免重置时丢失初始值)
@@ -225,7 +225,7 @@ return Object.entries(e).forEach(function(e){var n=x(e,2),i=n[0],a=n[1],r=t.sing
225
225
  // 处理数组(如多选框、复选框的值)
226
226
  Array.isArray(a)?a.forEach(function(e){null!=e&&c.append(i,r.length>0?t.getFile(r[0],e):e)}):null!=a&&
227
227
  // 处理普通字段(排除 undefined/null)
228
- c.append(i,r.length>0?t.getFile(r[0],a):a)}),c},getFile:function(e,t){for(var n=e.keyMap.path||"path",i=atob(t[n].split(",")[1]),a=t[n].split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(i.length),o=new Uint8Array(r),s=0;s<i.length;s++)o[s]=i.charCodeAt(s);var l=new Blob([r],{type:a});return new File([l],t[e.keyMap.name]||"file",{type:a})}}},W={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"inputHidden"==e.conf.widget&&"preview"==e.mode?n("label",{staticClass:"form-item_label",staticStyle:{width:"auto"}},[n("span",{ref:"editableDiv",class:"preview"==e.mode?"editable":"",attrs:{contenteditable:!0},on:{input:e.handleUpdateLabel}},[e._v(e._s(e.conf.label))]),e._v(" "),e._t("default",null,{value:e.fieldValue,onUpdate:e.handleInput})],2):e._t("default",null,{value:e.fieldValue,onUpdate:e.handleInput})},staticRenderFns:[],inject:["formData","updateFormData"],
228
+ c.append(i,r.length>0?t.getFile(r[0],a):a)}),c},getFile:function(e,t){for(var n=e.keyMap.path||"path",i=atob(t[n].split(",")[1]),a=t[n].split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(i.length),o=new Uint8Array(r),s=0;s<i.length;s++)o[s]=i.charCodeAt(s);var l=new Blob([r],{type:a});return new File([l],t[e.keyMap.name]||"file",{type:a})}}},H={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"inputHidden"==e.conf.widget&&"preview"==e.mode?n("label",{staticClass:"form-item_label",staticStyle:{width:"auto"}},[n("span",{ref:"editableDiv",class:"preview"==e.mode?"editable":"",attrs:{contenteditable:!0},on:{input:e.handleUpdateLabel}},[e._v(e._s(e.conf.label))]),e._v(" "),e._t("default",null,{value:e.fieldValue,onUpdate:e.handleInput})],2):e._t("default",null,{value:e.fieldValue,onUpdate:e.handleInput})},staticRenderFns:[],name:"c-app-form-item",inject:["formData","updateFormData"],
229
229
  // 接收 Form 实例
230
230
  props:{conf:{type:Object},mode:{type:String,default:"preview"},
231
231
  // 错误提示信息(由外部传入或校验生成)
@@ -245,9 +245,9 @@ var i=e.conditionContextType,a=e.conditions;if("USER"==i){var r=a.field.split(".
245
245
  else if("USER_ROLE"==i){var o=a.map(function(e){return e.roleId});if(this.userInfo.roles&&this.userInfo.roles.length>0){for(var s=0;s<this.userInfo.roles.length;s++)if(o.includes(this.userInfo.roles[s].roleId))return void this.$emit("updateItem",{name:this.conf.name,sjbName:null,key:t},n);this.$emit("updateItem",t,!n)}else"visible"==t&&this.$emit("updateItem",{name:this.conf.name,sjbName:null,key:t},!n)}},handleInput:function(e,t){
246
246
  //console.log(newVal, 'handleInputform', this.conf.name)
247
247
  // 同步 Input 回传的值到 Form.model 对应字段
248
- this.conf.name?this.updateFormData(this.conf.name,e):t&&this.updateFormData(t,e)}}},H={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"form",staticClass:"sub-form",class:1==e.conf.collapse?"open-pane":""},[e.conf.hideLabel?e._e():n("div",{staticClass:"sub-title"},[2!=e.formConf.subRow||e.conf.icon?e._e():n("span",{staticClass:"blue-xian"}),e._v(" "),e.conf.icon?n("span",{staticClass:"icon",class:e.conf.icon}):e._e(),e._v(" "),n("span",{ref:"editableDiv",class:"preview"==e.mode?"editable title":"title",attrs:{contenteditable:"preview"==e.mode},on:{input:e.handleUpdateLabel}},[e._v(e._s(e.conf.label))]),e._v(" "),1==e.conf.collapse||2==e.conf.collapse?n("a",{staticClass:"arrow-right",on:{click:e.toggleCollapse}},[n("i",{staticClass:"fa fa-angle-right"})]):e._e()]),e._v(" "),n("div",{ref:"collapse",staticClass:"sub-con",class:1==e.conf.collapse?"collapse in":2==e.conf.collapse?"collapse":""},[e._t("default")],2)])},staticRenderFns:[],props:{mode:{type:String,default:"preview"},conf:{
248
+ this.conf.name?this.updateFormData(this.conf.name,e):t&&this.updateFormData(t,e)}}},G={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"form",staticClass:"sub-form",class:1==e.conf.collapse?"open-pane":""},[e.conf.hideLabel?e._e():n("div",{staticClass:"sub-title"},[2!=e.formConf.subRow||e.conf.icon?e._e():n("span",{staticClass:"blue-xian"}),e._v(" "),e.conf.icon?n("span",{staticClass:"icon",class:e.conf.icon}):e._e(),e._v(" "),n("span",{ref:"editableDiv",class:"preview"==e.mode?"editable title":"title",attrs:{contenteditable:"preview"==e.mode},on:{input:e.handleUpdateLabel}},[e._v(e._s(e.conf.label))]),e._v(" "),1==e.conf.collapse||2==e.conf.collapse?n("a",{staticClass:"arrow-right",on:{click:e.toggleCollapse}},[n("i",{staticClass:"fa fa-angle-right"})]):e._e()]),e._v(" "),n("div",{ref:"collapse",staticClass:"sub-con",class:1==e.conf.collapse?"collapse in":2==e.conf.collapse?"collapse":""},[e._t("default")],2)])},staticRenderFns:[],name:"c-app-sub-row",props:{mode:{type:String,default:"preview"},conf:{
249
249
  // 表单数据对象
250
- type:Object,required:!0},formConf:{type:Object}},data:function(){return{}},methods:{handleUpdateLabel:function(){this.$emit("updateItem","label",this.$refs.editableDiv.innerText)},toggleCollapse:function(){$(this.$refs.collapse).collapse("toggle"),$(this.$refs.form).toggleClass("open-pane")}}},G={props:{conf:{type:Object,default:function(){return{}}},attrs:{type:Object,default:function(){return{}}},value:{},
250
+ type:Object,required:!0},formConf:{type:Object}},data:function(){return{}},methods:{handleUpdateLabel:function(){this.$emit("updateItem","label",this.$refs.editableDiv.innerText)},toggleCollapse:function(){$(this.$refs.collapse).collapse("toggle"),$(this.$refs.form).toggleClass("open-pane")}}},K={props:{conf:{type:Object,default:function(){return{}}},attrs:{type:Object,default:function(){return{}}},value:{},
251
251
  // 允许任意类型(包含数组)
252
252
  mode:{type:String,default:"preview"}},
253
253
  // 注入父组件提供的 formData(可设置默认值,防止未提供时报错)
@@ -271,7 +271,7 @@ Array.isArray(this.value)?
271
271
  // value 是数组时,只有数组为空才更新默认值
272
272
  this.innerValue=this.value.length>0?this.value.join(","):e||"":(""===this.value||null===this.value||void 0===this.value)&&(this.innerValue=e||"")}},computed:{rules:function(){var e=this.conf.preReg,t=[];return"tel"==e?t.push({pattern:/^(0\d{2,3}-)?\d{7,8}$/g,message:"请输入正确的座机号码"}):"idCard"==e?t.push({pattern:/^\d{15}$|^\d{17}[\dXx]$/g,message:"请输入正确的15或18位身份证号"}):"email"==e?t.push({pattern:/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/g,message:"请输入正确的邮箱地址"}):"isChinese"==e?t.push({pattern:/^[\u4e00-\u9fa5]{0,}$/,message:"请输入汉字"}):"english"==e?t.push({pattern:/^[a-zA-Z]{0,}$/,message:"请输入英文字母"}):"url"==e?t.push({pattern:/^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/,message:"请输入正确的网址"}):"port"==e?t.push({pattern:/^([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/,message:"请输入正确的端口号"}):"plateNumber"==e?t.push({pattern:/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/,message:"请输入正确的车牌号"}):"zinteger"==e?t.push({pattern:/^([1-9]\d*|[0]{1,1})$/,message:"请输入非负整数"}):"floatNumber"==e?t.push({pattern:/^(([1-9]\d*)|0)(\.\d{1,2})?$/,message:"请输入最多2位小数的正数"}):"floatNumberOne"==e?t.push({pattern:/^(([1-9]\d*)|0)(\.\d{1,1})?$/,message:"请输入最多1位小数的正数"}):"password"==e?t.push({pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,14}$/,message:"请输入包含大小写字母、数字、特殊符号的8位-14位密码"}):"password1"==e?t.push({pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/,message:"请输入至少8位,包含大小写字母和数字的密码"}):"password2"==e?t.push({pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,message:"请输入至少8位,大小写字母、数字、特殊字符各至少一个的密码"}):"password3"==e&&t.push({pattern:/^(?!.*(.{2,}).*\1)[a-zA-Z0-9~!@#$%^&*()_+`\-={}:";'<>?,./]{12,}$/,message:"请输入至少12位,不允许连续重复字符的密码"}),this.attrs.required&&t.push({required:!0,message:"必填项",trigger:"blur"}),t},displayValue:function(){
273
273
  // 核心修改:计算属性同步支持数组转逗号连接
274
- return Array.isArray(this.value)?this.value.length>0?this.value.join(","):this.conf.defaultValue||"":""===this.value||null===this.value||void 0===this.value?this.conf.defaultValue||"":this.value}}},K={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:"view"==e.mode?[]:e.rules},on:{input:e.handleChange,clear:e.handleClear},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1))},staticRenderFns:[],mixins:[G,q],computed:{filterAttrs:function(){var e=m({},(v(this.attrs),this.attrs)),t=this.conf,n=t.preReg,i=t.widget,a=t.clearable;e.type="password"==i?"password":"inputNumber"==i?"number":"textarea"==i?"textarea":"text";var r={mobile:"tel",integer:"digit"};return n&&r[n]&&(e.type=r[n]),e.maxlength&&(e.showWordLimit=!0),a&&(e.disabled||e.readonly)&&(e.clearable=!0),"view"==this.mode&&(e.readonly=!0),"form-control"==e.class&&(e.class=""),e}},methods:{handleChange:function(e){this.$emit("input",this.innerValue)},handleClear:function(){this.innerValue="",this.$emit("input",this.innerValue)}}},Z=function(){
274
+ return Array.isArray(this.value)?this.value.length>0?this.value.join(","):this.conf.defaultValue||"":""===this.value||null===this.value||void 0===this.value?this.conf.defaultValue||"":this.value}}},Z={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:"view"==e.mode?[]:e.rules},on:{input:e.handleChange,clear:e.handleClear},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1))},staticRenderFns:[],name:"c-app-input",mixins:[K,J],computed:{filterAttrs:function(){var e=m({},(v(this.attrs),this.attrs)),t=this.conf,n=t.preReg,i=t.widget,a=t.clearable;e.type="password"==i?"password":"inputNumber"==i?"number":"textarea"==i?"textarea":"text";var r={mobile:"tel",integer:"digit"};return n&&r[n]&&(e.type=r[n]),e.maxlength&&(e.showWordLimit=!0),a&&(e.disabled||e.readonly)&&(e.clearable=!0),"view"==this.mode&&(e.readonly=!0),"form-control"==e.class&&(e.class=""),e}},methods:{handleChange:function(e){this.$emit("input",this.innerValue)},handleClear:function(){this.innerValue="",this.$emit("input",this.innerValue)}}},Y=function(){
275
275
  /**
276
276
  * 主数据获取方法
277
277
  * @param {Object} config - 完整配置对象
@@ -294,11 +294,11 @@ var a={},r=0;r<n.length;r++){var o=n[r];a[o.target]=t.getValueFromSource(e,o)}re
294
294
  // return item[source];
295
295
  }},{key:"generateId",value:function(e,t){
296
296
  // 尝试常见ID字段
297
- return e.id||e._id||e.key||"item-".concat(t,"-").concat(Date.now())}},{key:"formatTime",value:function(e){var t=new Date(e);return"".concat(t.getFullYear(),"-").concat((t.getMonth()+1).toString().padStart(2,"0"),"-").concat(t.getDate().toString().padStart(2,"0"))}},{key:"executeModuleFunction",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var a;return"function"==typeof formatterUtils[e]?(a=formatterUtils)[e].apply(a,n):(console.error("函数 ".concat(e," 未定义")),n[0])}}]);var e,t}(),Y="undefined"!=typeof __API_PROXY_TARGET__?__API_PROXY_TARGET__:window.location.origin,Q="".concat(Y,"/"),X={props:{conf:{type:Object,default:function(){return{}}},attrs:{type:Object,default:function(){return{}}},value:{},mode:{type:String,default:"preview"}},
297
+ return e.id||e._id||e.key||"item-".concat(t,"-").concat(Date.now())}},{key:"formatTime",value:function(e){var t=new Date(e);return"".concat(t.getFullYear(),"-").concat((t.getMonth()+1).toString().padStart(2,"0"),"-").concat(t.getDate().toString().padStart(2,"0"))}},{key:"executeModuleFunction",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var a;return"function"==typeof formatterUtils[e]?(a=formatterUtils)[e].apply(a,n):(console.error("函数 ".concat(e," 未定义")),n[0])}}]);var e,t}(),Q="undefined"!=typeof __API_PROXY_TARGET__?__API_PROXY_TARGET__:window.location.origin,X="".concat(Q,"/"),ee={props:{conf:{type:Object,default:function(){return{}}},attrs:{type:Object,default:function(){return{}}},value:{},mode:{type:String,default:"preview"}},
298
298
  // 2. 注入父组件提供的 formData(可设置默认值,防止未提供时报错)
299
299
  inject:["formData","updateFormData"],
300
300
  // 接收 Form 实例
301
- data:function(){return{dataFetcher:null,datalist:null,loading:!1,baseURL:Q,innerValue:this.displayValue}},watch:{"conf.api":{deep:!0,handler:function(e,t){var n;"page"!==e.fhType&&((null!==(n=this.conf.api)&&void 0!==n&&n.url&&e.url!==t.url||1==e.refresh)&&this.refreshData(),void 0!==e.refresh&&this.$emit("updateItem",{name:this.attrs.name,sjbName:null,key:"api.refresh"},!1))}},
301
+ data:function(){return{dataFetcher:null,datalist:null,loading:!1,baseURL:X,innerValue:this.displayValue}},watch:{"conf.api":{deep:!0,handler:function(e,t){var n;"page"!==e.fhType&&((null!==(n=this.conf.api)&&void 0!==n&&n.url&&e.url!==t.url||1==e.refresh)&&this.refreshData(),void 0!==e.refresh&&this.$emit("updateItem",{name:this.attrs.name,sjbName:null,key:"api.refresh"},!1))}},
302
302
  // 监听父组件传入的 value 变化,同步到 innerValue
303
303
  value:{immediate:!0,
304
304
  // 初始化时立即执行
@@ -347,7 +347,7 @@ for(var n=new URLSearchParams,i=0,a=Object.entries(t);i<a.length;i++){var r=x(a[
347
347
  // 过滤掉值为undefined/null的参数(可选,根据需求调整)
348
348
  null!=s&&n.append(o,s)}
349
349
  // 拼接参数:判断基础URL是否已有?,避免重复拼接
350
- var l=n.toString();return e+(e.includes("?")?"&":"?")+l},reset:function(){},openModal:function(){var e=this;this.conf.api.url&&$.modal.open("选择",this.buildUrl(this.baseURL+this.conf.api.url,this.getParams(this.conf.api.paramsList)),.8*window.innerWidth,.8*window.innerHeight,function(t,n){var i=n.find("iframe")[0].contentWindow.$("#bootstrap-table").bootstrapTable("getSelections");0!=i.length?(e.updateCallback(i),layer.close(t)):$.modal.alertWarning(e.attrs.multiple?"请至少选择一行记录":"请选择一行记录")})}},created:function(){this.dataFetcher=new Z(this.$request)}},ee={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"text-combination",class:[e.conf.size,e.conf.align,e.conf.weight?"fb":"",e.isEmpty&&"preview"==!e.mode?"empty-content":""].concat(e.conf.border&&e.conf.border.length>0?e.conf.border:[])},[e.loading?n("div",{staticClass:"loading"},[n("div",{staticClass:"spinner"}),e._v(" "),n("p",[e._v("正在加载数据...")])]):e.error?n("div",{staticClass:"error"},[n("div",{staticClass:"error-icon"},[e._v("!")]),e._v(" "),n("p",{staticClass:"error-message"},[e._v(e._s(e.error))]),e._v(" "),n("button",{staticClass:"refresh-btn",on:{click:e.refresh}},[e._v("重试")])]):n("div",[n("p",{staticClass:"content",domProps:{innerHTML:e._s(e.processedContent)}}),e._v(" "),e.isEmpty&&"view"!==e.mode?n("div",{staticClass:"empty-state"},[e._v("请在组件配置中添加文本组合控件内容")]):e._e()])])},staticRenderFns:[],mixins:[X,q],data:function(){return{loading:!1,error:null,variableData:null,processedContent:""}},computed:{
350
+ var l=n.toString();return e+(e.includes("?")?"&":"?")+l},reset:function(){},openModal:function(){var e=this;this.conf.api.url&&$.modal.open("选择",this.buildUrl(this.baseURL+this.conf.api.url,this.getParams(this.conf.api.paramsList)),.8*window.innerWidth,.8*window.innerHeight,function(t,n){var i=n.find("iframe")[0].contentWindow.$("#bootstrap-table").bootstrapTable("getSelections");0!=i.length?(e.updateCallback(i),layer.close(t)):$.modal.alertWarning(e.attrs.multiple?"请至少选择一行记录":"请选择一行记录")})}},created:function(){this.dataFetcher=new Y(this.$request)}},te={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"text-combination",class:[e.conf.size,e.conf.align,e.conf.weight?"fb":"",e.isEmpty&&"preview"==!e.mode?"empty-content":""].concat(e.conf.border&&e.conf.border.length>0?e.conf.border:[])},[e.loading?n("div",{staticClass:"loading"},[n("div",{staticClass:"spinner"}),e._v(" "),n("p",[e._v("正在加载数据...")])]):e.error?n("div",{staticClass:"error"},[n("div",{staticClass:"error-icon"},[e._v("!")]),e._v(" "),n("p",{staticClass:"error-message"},[e._v(e._s(e.error))]),e._v(" "),n("button",{staticClass:"refresh-btn",on:{click:e.refresh}},[e._v("重试")])]):n("div",[n("p",{staticClass:"content",domProps:{innerHTML:e._s(e.processedContent)}}),e._v(" "),e.isEmpty&&"view"!==e.mode?n("div",{staticClass:"empty-state"},[e._v("请在组件配置中添加文本组合控件内容")]):e._e()])])},staticRenderFns:[],name:"c-app-text-box",mixins:[ee,J],data:function(){return{loading:!1,error:null,variableData:null,processedContent:""}},computed:{
351
351
  // 判断是否为空状态
352
352
  isEmpty:function(){return!this.conf.textContent&&!this.processedContent},
353
353
  // 获取所有变量
@@ -376,9 +376,9 @@ e instanceof Date||"number"==typeof e?e.toLocaleString():
376
376
  // 刷新数据
377
377
  refresh:function(){this.refreshData()},
378
378
  // 处理值变化
379
- handleChange:function(e){this.$emit("input",e)}}},te={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("input",e._b({domProps:{value:e.innerValue},on:{change:e.handleChange}},"input",e.attrs,!1))},staticRenderFns:[],mixins:[G,q],methods:{handleChange:function(e){this.innerValue=e.target.value,this.$emit("input",this.innerValue)}},watch:{innerValue:function(e){this.$emit("input",e)}}};
379
+ handleChange:function(e){this.$emit("input",e)}}},ne={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("input",e._b({domProps:{value:e.innerValue},on:{change:e.handleChange}},"input",e.attrs,!1))},staticRenderFns:[],name:"c-app-input-hidden",mixins:[K,J],methods:{handleChange:function(e){this.innerValue=e.target.value,this.$emit("input",this.innerValue)}},watch:{innerValue:function(e){this.$emit("input",e)}}};
380
380
  // 根据字典类型查询字典数据信息
381
- function ne(e,t){var n=e.split("/")[0];return U({url:"/sjyy/sjczgl/form/bdgl/config/getFormDictData",data:{dictType:n,dictLylx:t||e.split("/")[1]||"sys"},method:"post"})}var ie={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"view"===e.mode?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label},model:{value:e.innerValueLabel,callback:function(t){e.innerValueLabel=t},expression:"innerValueLabel"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{"click-right-icon":function(t){e.showPicker=!0}},model:{value:e.innerValueLabel,callback:function(t){e.innerValueLabel=t},expression:"innerValueLabel"}},"van-field",e.filterAttrs,!1)),e._v(" "),n("van-popup",{staticClass:"select-popup",style:{height:e.attrs.multiple?"40%":"auto"},attrs:{position:"bottom","get-container":"#myForm",closeable:""},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}},[n("div",{staticClass:"custom-picker-container flex flex-column h100"},[n("van-sticky",{staticClass:"w100"},[n("van-nav-bar",{attrs:{title:"选择"+e.conf.label,border:!1}})],1),e._v(" "),e.attrs.multiple?n("div",{staticClass:"popup-body scroll-wrap"},[n("div",{staticClass:"option-list",class:e.attrs.multiple?"multiple-select":"single-select"},e._l(e.selectOptions,function(t){return n("div",{key:t.value,staticClass:"option-item ",class:e.checkedValues.includes(t.value)?"active":"",on:{click:function(n){return e.handleItemClick(t.value)}}},[n("span",[e._v(e._s(t.label))]),e._v(" "),e.checkedValues.includes(t.value)&&e.attrs.multiple?n("van-icon",{attrs:{name:"success"}}):e._e()],1)}),0)]):n("van-picker",{ref:"myPicker",attrs:{columns:e.selectOptions,"value-key":"label"}}),e._v(" "),n("div",{staticClass:"bottom-btn"},[n("van-button",{attrs:{type:"primary",round:"",block:"",icon:"checked"},on:{click:e.onConfirm}},[e._v("确认")])],1)],1)])],1)},staticRenderFns:[],mixins:[G,q],data:function(){return{selectOptions:[],showPicker:!1,checkedValues:[]}},watch:{
381
+ function ie(e,t){var n=e.split("/")[0];return q({url:"/sjyy/sjczgl/form/bdgl/config/getFormDictData",data:{dictType:n,dictLylx:t||e.split("/")[1]||"sys"},method:"post"})}var ae={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"view"===e.mode?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label},model:{value:e.innerValueLabel,callback:function(t){e.innerValueLabel=t},expression:"innerValueLabel"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{"click-right-icon":function(t){e.showPicker=!0}},model:{value:e.innerValueLabel,callback:function(t){e.innerValueLabel=t},expression:"innerValueLabel"}},"van-field",e.filterAttrs,!1)),e._v(" "),n("van-popup",{staticClass:"select-popup",style:{height:e.attrs.multiple?"40%":"auto"},attrs:{position:"bottom","get-container":"#myForm",closeable:""},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}},[n("div",{staticClass:"custom-picker-container flex flex-column h100"},[n("van-sticky",{staticClass:"w100"},[n("van-nav-bar",{attrs:{title:"选择"+e.conf.label,border:!1}})],1),e._v(" "),e.attrs.multiple?n("div",{staticClass:"popup-body scroll-wrap"},[n("div",{staticClass:"option-list",class:e.attrs.multiple?"multiple-select":"single-select"},e._l(e.selectOptions,function(t){return n("div",{key:t.value,staticClass:"option-item ",class:e.checkedValues.includes(t.value)?"active":"",on:{click:function(n){return e.handleItemClick(t.value)}}},[n("span",[e._v(e._s(t.label))]),e._v(" "),e.checkedValues.includes(t.value)&&e.attrs.multiple?n("van-icon",{attrs:{name:"success"}}):e._e()],1)}),0)]):n("van-picker",{ref:"myPicker",attrs:{columns:e.selectOptions,"value-key":"label"}}),e._v(" "),n("div",{staticClass:"bottom-btn"},[n("van-button",{attrs:{type:"primary",round:"",block:"",icon:"checked"},on:{click:e.onConfirm}},[e._v("确认")])],1)],1)])],1)},staticRenderFns:[],name:"c-app-select",mixins:[K,J],data:function(){return{selectOptions:[],showPicker:!1,checkedValues:[]}},watch:{
382
382
  // 监听静态选项变化
383
383
  "conf.options":{immediate:!0,handler:function(e){"static"===this.conf.dataType&&(this.selectOptions=Array.isArray(e)?e:[])},deep:!0},
384
384
  // 监听字典标识变化
@@ -388,23 +388,23 @@ if(!this.attrs.multiple)return this.innerValue&&(null===(e=this.selectOptions.fi
388
388
  // 多选:拼接所有选中的label
389
389
  if(this.attrs.multiple&&this.innerValue){var n=Array.isArray(this.innerValue)?this.innerValue:this.innerValue.toString().split(",");return this.selectOptions.filter(function(e){return n.includes(e.value)}).map(function(e){return e.label}).join(",")}return""}},created:function(){"dict"===this.conf.dataType&&this.conf.dict?this.loadDictData(this.conf.dict,this.conf.dictLylx):this.conf.dataType},methods:{
390
390
  // 加载字典数据
391
- loadDictData:function(e,t){var n=this;return c(w().m(function i(){var a,r;return w().w(function(i){for(;;)switch(i.p=i.n){case 0:return i.p=0,i.n=1,ne(e,t);case 1:a=i.v,n.selectOptions=(a.rows||a.data||[]).map(function(e){return{value:e.dictValue,label:e.dictLabel,id:e.dictType+e.dictCode}}),i.n=3;break;case 2:i.p=2,r=i.v,console.error("加载字典数据失败:",r),n.selectOptions=[];case 3:return i.a(2)}},i,null,[[0,2]])}))()},onConfirm:function(){if(this.attrs.multiple)this.innerValue=this.checkedValues.join(","),this.$emit("input",this.checkedValues);else{var e=this.$refs.myPicker.getColumnValue(0);this.innerValue=e?e.value:"",this.$emit("input",this.innerValue)}this.showPicker=!1},handleItemClick:function(e){this.checkedValues.includes(e)?this.checkedValues.splice(this.checkedValues.indexOf(e),1):this.checkedValues.push(e)}}};
391
+ loadDictData:function(e,t){var n=this;return c(w().m(function i(){var a,r;return w().w(function(i){for(;;)switch(i.p=i.n){case 0:return i.p=0,i.n=1,ie(e,t);case 1:a=i.v,n.selectOptions=(a.rows||a.data||[]).map(function(e){return{value:e.dictValue,label:e.dictLabel,id:e.dictType+e.dictCode}}),i.n=3;break;case 2:i.p=2,r=i.v,console.error("加载字典数据失败:",r),n.selectOptions=[];case 3:return i.a(2)}},i,null,[[0,2]])}))()},onConfirm:function(){if(this.attrs.multiple)this.innerValue=this.checkedValues.join(","),this.$emit("input",this.checkedValues);else{var e=this.$refs.myPicker.getColumnValue(0);this.innerValue=e?e.value:"",this.$emit("input",this.innerValue)}this.showPicker=!1},handleItemClick:function(e){this.checkedValues.includes(e)?this.checkedValues.splice(this.checkedValues.indexOf(e),1):this.checkedValues.push(e)}}};
392
392
  // 根据字典类型查询字典数据信息
393
- function ae(e,t){var n=e.split("/")[0];return this.$request({url:"/sjyy/sjczgl/form/bdgl/config/getFormDictData",data:{dictType:n,dictLylx:t||e.split("/")[1]||"sys"},method:"post"})}var re={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-field",{class:e.attrs.class,attrs:{label:e.conf.hideLabel?"":e.conf.label,name:e.attrs.name,rules:e.rules},scopedSlots:e._u([{key:"input",fn:function(){return[n("van-radio-group",{attrs:{direction:"horizontal",disabled:e.attrs.readonly||e.attrs.disabled},on:{change:e.handleChange},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},e._l(e.selectOptions,function(t){return n("van-radio",{key:t.value,attrs:{name:t.value}},[e._v(e._s(t.label))])}),1)]},proxy:!0}])})},staticRenderFns:[],mixins:[G,q],data:function(){return{selectOptions:[]}},watch:{
393
+ function re(e,t){var n=e.split("/")[0];return this.$request({url:"/sjyy/sjczgl/form/bdgl/config/getFormDictData",data:{dictType:n,dictLylx:t||e.split("/")[1]||"sys"},method:"post"})}var oe={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-field",{class:e.attrs.class,attrs:{label:e.conf.hideLabel?"":e.conf.label,name:e.attrs.name,rules:e.rules},scopedSlots:e._u([{key:"input",fn:function(){return[n("van-radio-group",{attrs:{direction:"horizontal",disabled:e.attrs.readonly||e.attrs.disabled},on:{change:e.handleChange},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},e._l(e.selectOptions,function(t){return n("van-radio",{key:t.value,attrs:{name:t.value}},[e._v(e._s(t.label))])}),1)]},proxy:!0}])})},staticRenderFns:[],mixins:[K,J],data:function(){return{selectOptions:[]}},watch:{
394
394
  // 监听静态选项变化
395
395
  "conf.options":{immediate:!0,handler:function(e){"static"===this.conf.dataType&&(this.selectOptions=Array.isArray(e)?e:[])},deep:!0},
396
396
  // 监听字典标识变化
397
397
  "conf.dict":{immediate:!0,handler:function(e){"dict"===this.conf.dataType&&e&&this.loadDictData(e,this.conf.dictLylx)}}},methods:{
398
398
  // 加载字典数据
399
- loadDictData:function(e,t){var n=this;return c(w().m(function i(){var a,r;return w().w(function(i){for(;;)switch(i.p=i.n){case 0:return i.p=0,i.n=1,ae(e,t);case 1:a=i.v,n.selectOptions=(a.rows||a.data||[]).map(function(e){return{value:e.dictValue,label:e.dictLabel,id:e.dictType+e.dictCode}}),i.n=3;break;case 2:i.p=2,r=i.v,console.error("加载字典数据失败:",r),n.selectOptions=[];case 3:return i.a(2)}},i,null,[[0,2]])}))()},handleChange:function(){this.$emit("input",this.innerValue)}}},oe={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-field",{attrs:{label:e.conf.hideLabel?"":e.conf.label,name:e.attrs.name,rules:e.rules},scopedSlots:e._u([{key:"input",fn:function(){return[n("van-checkbox-group",{attrs:{direction:"horizontal",disabled:e.attrs.readonly||e.attrs.disabled},on:{change:e.handleChange},model:{value:e.arrayValue,callback:function(t){e.arrayValue=t},expression:"arrayValue"}},e._l(e.selectOptions,function(t){return n("van-checkbox",{key:t.value,attrs:{name:t.value,shape:"square"}},[e._v(e._s(t.label))])}),1)]},proxy:!0}])})},staticRenderFns:[],mixins:[G,q],data:function(){return{selectOptions:[],arrayValue:this.innerValue?Array.isArray(this.innerValue)?this.innerValue:this.innerValue.split(","):[]}},watch:{
399
+ loadDictData:function(e,t){var n=this;return c(w().m(function i(){var a,r;return w().w(function(i){for(;;)switch(i.p=i.n){case 0:return i.p=0,i.n=1,re(e,t);case 1:a=i.v,n.selectOptions=(a.rows||a.data||[]).map(function(e){return{value:e.dictValue,label:e.dictLabel,id:e.dictType+e.dictCode}}),i.n=3;break;case 2:i.p=2,r=i.v,console.error("加载字典数据失败:",r),n.selectOptions=[];case 3:return i.a(2)}},i,null,[[0,2]])}))()},handleChange:function(){this.$emit("input",this.innerValue)}}},se={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-field",{attrs:{label:e.conf.hideLabel?"":e.conf.label,name:e.attrs.name,rules:e.rules},scopedSlots:e._u([{key:"input",fn:function(){return[n("van-checkbox-group",{attrs:{direction:"horizontal",disabled:e.attrs.readonly||e.attrs.disabled},on:{change:e.handleChange},model:{value:e.arrayValue,callback:function(t){e.arrayValue=t},expression:"arrayValue"}},e._l(e.selectOptions,function(t){return n("van-checkbox",{key:t.value,attrs:{name:t.value,shape:"square"}},[e._v(e._s(t.label))])}),1)]},proxy:!0}])})},staticRenderFns:[],name:"c-app-checkbox",mixins:[K,J],data:function(){return{selectOptions:[],arrayValue:this.innerValue?Array.isArray(this.innerValue)?this.innerValue:this.innerValue.split(","):[]}},watch:{
400
400
  // 监听静态选项变化
401
401
  "conf.options":{immediate:!0,handler:function(e){"static"===this.conf.dataType&&(this.selectOptions=Array.isArray(e)?e:[])},deep:!0},
402
402
  // 监听字典标识变化
403
403
  "conf.dict":{immediate:!0,handler:function(e){"dict"===this.conf.dataType&&e&&this.loadDictData(e,this.conf.dictLylx)}}},created:function(){"dict"===this.conf.dataType&&this.conf.dict?this.loadDictData(this.conf.dict,this.conf.dictLylx):this.conf.dataType},methods:{
404
404
  // 加载字典数据
405
- loadDictData:function(e,t){var n=this;return c(w().m(function i(){var a,r;return w().w(function(i){for(;;)switch(i.p=i.n){case 0:return i.p=0,i.n=1,ae(e,t);case 1:a=i.v,n.selectOptions=(a.rows||a.data||[]).map(function(e){return{value:e.dictValue,label:e.dictLabel,id:e.dictType+e.dictCode}}),i.n=3;break;case 2:i.p=2,r=i.v,console.error("加载字典数据失败:",r),n.selectOptions=[];case 3:return i.a(2)}},i,null,[[0,2]])}))()},handleChange:function(){this.$emit("input",this.arrayValue)}}},se=["class"],le={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.filterAttrs.readonly||e.filterAttrs.disabled?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{"click-right-icon":function(t){e.showPicker=!0},clear:e.handleClear},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)),e._v(" "),n("van-popup",{staticClass:"select-popup",attrs:{position:"bottom","get-container":"#myForm",closeable:""},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}},[n("van-sticky",[n("van-nav-bar",{attrs:{title:e.pickerTitle,border:!1}})],1),e._v(" "),n("van-datetime-picker",{class:"date-time-picker-"+e.conf.datetype,attrs:{type:e.dateType,"show-toolbar":!1,formatter:e.formatterDateTime},model:{value:e.currentDateTime,callback:function(t){e.currentDateTime=t},expression:"currentDateTime"}}),e._v(" "),n("div",{staticClass:"bottom-btn"},[n("van-button",{attrs:{type:"primary",round:"",block:""},on:{click:e.onConfirm}},[e._v("确认")])],1)],1)],1)},staticRenderFns:[],mixins:[G,q],data:function(){return{showPicker:!1,currentDateTime:this.syncCurrentDateTime(this.innerValue)}},computed:{filterAttrs:function(){var e=this.attrs;e.class;var t=b(e,se);return this.conf.clearable&&(t.clearable=!0),"view"==this.mode&&(t.readonly=!0),"form-control"==t.class&&(t.class=""),t},pickerTitle:function(){var e=this.conf.datetype;return"date"==e?"选择日期":"datetime"==e||"time"==e?"选择时间":"month"==e?"选择月份":"year"==e?"选择年":"选择日期"},dateType:function(){var e=this.conf.datetype;return"date"==e||"datetime"==e||"time"==e?e:"month"==e||"year"==e?"year-month":void 0},format:function(){return this.conf.format.replace(/y/g,"Y").replace(/d/g,"D")}},watch:{dateType:{handler:function(e,t){"time"==t&&(this.innerValue=""),"time"!=e&&"time"!=t||(this.currentDateTime=this.syncCurrentDateTime(this.innerValue))},immediate:!0}},methods:{handleChange:function(){this.$emit("input",this.innerValue)},onConfirm:function(){var e=this.dateType;this.innerValue="time"===e?2==this.currentDateTime.split(":").length?this.currentDateTime+":00":this.currentDateTime:this.$dayjs(this.currentDateTime).format(this.format),this.handleChange(),this.showPicker=!1},formatterDateTime:function(e,t){return"year"===e?t+"年":"month"===e?t+"月":"day"===e?t+"日":"hour"===e?t+"时":"minute"===e?t+"分":"second"===e?t+"秒":void 0},handleClear:function(){this.innerValue="",this.$emit("input",this.innerValue)},
405
+ loadDictData:function(e,t){var n=this;return c(w().m(function i(){var a,r;return w().w(function(i){for(;;)switch(i.p=i.n){case 0:return i.p=0,i.n=1,re(e,t);case 1:a=i.v,n.selectOptions=(a.rows||a.data||[]).map(function(e){return{value:e.dictValue,label:e.dictLabel,id:e.dictType+e.dictCode}}),i.n=3;break;case 2:i.p=2,r=i.v,console.error("加载字典数据失败:",r),n.selectOptions=[];case 3:return i.a(2)}},i,null,[[0,2]])}))()},handleChange:function(){this.$emit("input",this.arrayValue)}}},le=["class"],ce={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.filterAttrs.readonly||e.filterAttrs.disabled?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{"click-right-icon":function(t){e.showPicker=!0},clear:e.handleClear},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)),e._v(" "),n("van-popup",{staticClass:"select-popup",attrs:{position:"bottom","get-container":"#myForm",closeable:""},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}},[n("van-sticky",[n("van-nav-bar",{attrs:{title:e.pickerTitle,border:!1}})],1),e._v(" "),n("van-datetime-picker",{class:"date-time-picker-"+e.conf.datetype,attrs:{type:e.dateType,"show-toolbar":!1,formatter:e.formatterDateTime},model:{value:e.currentDateTime,callback:function(t){e.currentDateTime=t},expression:"currentDateTime"}}),e._v(" "),n("div",{staticClass:"bottom-btn"},[n("van-button",{attrs:{type:"primary",round:"",block:""},on:{click:e.onConfirm}},[e._v("确认")])],1)],1)],1)},staticRenderFns:[],name:"c-app-datetime-picker",mixins:[K,J],data:function(){return{showPicker:!1,currentDateTime:this.syncCurrentDateTime(this.innerValue)}},computed:{filterAttrs:function(){var e=this.attrs;e.class;var t=b(e,le);return this.conf.clearable&&(t.clearable=!0),"view"==this.mode&&(t.readonly=!0),"form-control"==t.class&&(t.class=""),t},pickerTitle:function(){var e=this.conf.datetype;return"date"==e?"选择日期":"datetime"==e||"time"==e?"选择时间":"month"==e?"选择月份":"year"==e?"选择年":"选择日期"},dateType:function(){var e=this.conf.datetype;return"date"==e||"datetime"==e||"time"==e?e:"month"==e||"year"==e?"year-month":void 0},format:function(){return this.conf.format.replace(/y/g,"Y").replace(/d/g,"D")}},watch:{dateType:{handler:function(e,t){"time"==t&&(this.innerValue=""),"time"!=e&&"time"!=t||(this.currentDateTime=this.syncCurrentDateTime(this.innerValue))},immediate:!0}},methods:{handleChange:function(){this.$emit("input",this.innerValue)},onConfirm:function(){var e=this.dateType;this.innerValue="time"===e?2==this.currentDateTime.split(":").length?this.currentDateTime+":00":this.currentDateTime:this.$dayjs(this.currentDateTime).format(this.format),this.handleChange(),this.showPicker=!1},formatterDateTime:function(e,t){return"year"===e?t+"年":"month"===e?t+"月":"day"===e?t+"日":"hour"===e?t+"时":"minute"===e?t+"分":"second"===e?t+"秒":void 0},handleClear:function(){this.innerValue="",this.$emit("input",this.innerValue)},
406
406
  // 统一同步时间(核心方法,不管是值变还是类型变都走这里)
407
- syncCurrentDateTime:function(e){var t=this.dateType;return e?"time"===t?e:new Date(e):"time"===t?"00:00":new Date}}},ce=["class"],ue={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.filterAttrs.readonly||e.filterAttrs.disabled?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{"click-right-icon":function(t){e.showPicker=!0},clear:e.handleClear},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)),e._v(" "),n("van-calendar",{staticClass:"select-popup",attrs:{type:"range","get-container":"#myForm",title:"日期范围选择","allow-same-day":!0,"min-date":e.minDate,color:"#1989fa"},on:{confirm:e.onConfirm},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}})],1)},staticRenderFns:[],mixins:[G,q],data:function(){return{startValue:"",
407
+ syncCurrentDateTime:function(e){var t=this.dateType;return e?"time"===t?e:new Date(e):"time"===t?"00:00":new Date}}},ue=["class"],de={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.filterAttrs.readonly||e.filterAttrs.disabled?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{"click-right-icon":function(t){e.showPicker=!0},clear:e.handleClear},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)),e._v(" "),n("van-calendar",{staticClass:"select-popup",attrs:{type:"range","get-container":"#myForm",title:"日期范围选择","allow-same-day":!0,"min-date":e.minDate,color:"#1989fa"},on:{confirm:e.onConfirm},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}})],1)},staticRenderFns:[],name:"c-app-datetime-range",mixins:[K,J],data:function(){return{startValue:"",
408
408
  // 开始时间值
409
409
  endValue:"",
410
410
  // 结束时间值
@@ -412,7 +412,7 @@ showPicker:!1,startFieldName:"",endFieldName:"",minDate:new Date(2e3,0,1)}},watc
412
412
  // 监听父组件传值变化,拆分赋值
413
413
  innerValue:{immediate:!0,
414
414
  // 初始化时立即执行
415
- handler:function(e){this.parseValueToStartEnd(e)}},"attrs.name":{handler:function(){this.parseNameToFields()}}},computed:{filterAttrs:function(){var e=this.attrs;e.class;var t=b(e,ce);return this.conf.clearable&&(t.clearable=!0),"view"==this.mode&&(t.readonly=!0),"form-control"==t.class&&(t.class=""),t},format:function(){return this.conf.format.replace(/y/g,"Y").replace(/d/g,"D")}},mounted:function(){
415
+ handler:function(e){this.parseValueToStartEnd(e)}},"attrs.name":{handler:function(){this.parseNameToFields()}}},computed:{filterAttrs:function(){var e=this.attrs;e.class;var t=b(e,ue);return this.conf.clearable&&(t.clearable=!0),"view"==this.mode&&(t.readonly=!0),"form-control"==t.class&&(t.class=""),t},format:function(){return this.conf.format.replace(/y/g,"Y").replace(/d/g,"D")}},mounted:function(){
416
416
  // 初始化时先解析默认值(优先级:value > conf.defaultValue)
417
417
  var e=this.value||this.conf.defaultValue||"";this.parseValueToStartEnd(e)},methods:{parseNameToFields:function(){var e=this.conf.separator||"-";if(!nameStr)return this.startFieldName="",void(this.endFieldName="");var t=x(this.attrs.name.split(e),2),n=t[0],i=t[1];this.startFieldName=n||"",this.endFieldName=i||""},
418
418
  // 解析 - 分隔的字符串为开始/结束时间
@@ -427,7 +427,7 @@ t=e,n="")}this.startValue=t||"",this.endValue=n||""},
427
427
  // 拼接开始/结束时间为 - 分隔的字符串
428
428
  joinStartEndToValue:function(){return this.startValue&&this.endValue?"".concat(this.startValue," - ").concat(this.endValue):"";
429
429
  // 统一输出为 - 分隔(无空格)
430
- },handleClear:function(){this.innerValue="",this.$emit("input",this.innerValue)},handleChange:function(e){this.innerValue=this.joinStartEndToValue(),this.$emit("input",this.innerValue),this.$emit("input",this.startValue,this.startFieldName),this.$emit("input",this.endValue,this.endFieldName)},onConfirm:function(e){this.startValue=this.$dayjs(e[0]).format(this.format),this.endValue=this.$dayjs(e[1]).format(this.format),this.handleChange(),this.showPicker=!1}}},de={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"view"===e.mode?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label},model:{value:e.showText,callback:function(t){e.showText=t},expression:"showText"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{clear:e.handleClear,"click-right-icon":function(t){e.showPicker=!0}},model:{value:e.showText,callback:function(t){e.showText=t},expression:"showText"}},"van-field",e.filterAttrs,!1)),e._v(" "),n("van-popup",{staticClass:"select-popup",staticStyle:{height:"40%"},attrs:{position:"bottom","get-container":"#myForm"},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}},[n("div",{staticClass:"custom-picker-container"},[n("van-cascader",{staticClass:"flex-item",attrs:{title:"请选择",options:e.treeOptions,"active-color":"#1989fa"},on:{close:function(t){e.showPicker=!1},finish:e.onFinish}})],1)])],1)},staticRenderFns:[],mixins:[X,q],data:function(){return{showPicker:!1,showText:""}},computed:{filterAttrs:function(){var e=m({},(v(this.attrs),this.attrs)),t=this.conf.clearable;return e.maxlength&&(e.showWordLimit=!0),t&&(e.clearable=!0),"form-control"==e.class&&(e.class=""),"view"==this.mode&&(e.readonly=!0),e},treeOptions:function(){return this.datalist?(e=this.datalist,t=this.conf.keyMap,n=[],i={},
430
+ },handleClear:function(){this.innerValue="",this.$emit("input",this.innerValue)},handleChange:function(e){this.innerValue=this.joinStartEndToValue(),this.$emit("input",this.innerValue),this.$emit("input",this.startValue,this.startFieldName),this.$emit("input",this.endValue,this.endFieldName)},onConfirm:function(e){this.startValue=this.$dayjs(e[0]).format(this.format),this.endValue=this.$dayjs(e[1]).format(this.format),this.handleChange(),this.showPicker=!1}}},pe={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"view"===e.mode?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label},model:{value:e.showText,callback:function(t){e.showText=t},expression:"showText"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{clear:e.handleClear,"click-right-icon":function(t){e.showPicker=!0}},model:{value:e.showText,callback:function(t){e.showText=t},expression:"showText"}},"van-field",e.filterAttrs,!1)),e._v(" "),n("van-popup",{staticClass:"select-popup",staticStyle:{height:"40%"},attrs:{position:"bottom","get-container":"#myForm"},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}},[n("div",{staticClass:"custom-picker-container"},[n("van-cascader",{staticClass:"flex-item",attrs:{title:"请选择",options:e.treeOptions,"active-color":"#1989fa"},on:{close:function(t){e.showPicker=!1},finish:e.onFinish}})],1)])],1)},staticRenderFns:[],name:"c-app-input-tree",mixins:[ee,J],data:function(){return{showPicker:!1,showText:""}},computed:{filterAttrs:function(){var e=m({},(v(this.attrs),this.attrs)),t=this.conf.clearable;return e.maxlength&&(e.showWordLimit=!0),t&&(e.clearable=!0),"form-control"==e.class&&(e.class=""),"view"==this.mode&&(e.readonly=!0),e},treeOptions:function(){return this.datalist?(e=this.datalist,t=this.conf.keyMap,n=[],i={},
431
431
  // 先把所有数据放进 map 里
432
432
  e.forEach(function(e){i[e[t.id]]={value:e[t.id],
433
433
  // 给级联器用
@@ -445,7 +445,7 @@ var e,t,n,i},multiple:function(){return this.attrs.multiple}},methods:{handleCha
445
445
  // 选完点“确定”触发
446
446
  onFinish:function(e){var t=e.selectedOptions;this.innerValue=t[t.length-1].value,
447
447
  // this.showText = selectedOptions.map(item => item.text).join(' / ');
448
- this.showText=t[t.length-1].text,this.showPicker=!1}},mounted:function(){this.refreshData()}},pe={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-field",{class:e.attrs.class,attrs:{name:e.attrs.name,label:e.conf.hideLabel?"":e.conf.label,rules:e.rules},scopedSlots:e._u([{key:"input",fn:function(){return[n("van-uploader",e._b({attrs:{name:e.attrs.name,"after-read":e.afterRead,"upload-icon":"plus"},on:{oversize:e.onOversize,delete:e.onDelete},scopedSlots:e._u([{key:"preview-cover",fn:function(t){var i=t.file,a=t.content;return[n("div",{staticClass:"download-btn",on:{click:function(t){return t.stopPropagation(),e.handleDownload(i,a)}}},[n("van-icon",{attrs:{name:"down",color:"#fff"}})],1)]}}]),model:{value:e.fileList,callback:function(t){e.fileList=t},expression:"fileList"}},"van-uploader",e.filterAttrs,!1))]},proxy:!0}])})},staticRenderFns:[],props:{conf:{type:Object,default:function(){return{}}},attrs:{type:Object,default:function(){return{}}},value:{type:[Array,Object,String],default:""},mode:{type:String,default:"preview"}},mixins:[q],inject:["formData","updateFormData"],data:function(){return{innerValue:this.formatToJsonString(this.value),fileList:[]}},computed:{isImg:function(){var e=this.conf.allowedFileType;return Array.isArray(e)&&e.includes("image")&&1==e.length},filterAttrs:function(){var e=this.attrs,t=e.multiple,n=e.readonly,i=e.disabled,a=this.conf,r=a.allowedFileType,o=void 0===r?[]:r;a.minFileCount;var s=a.maxFileCount,l=a.maxFileSize,c=Array.isArray(o)&&o.includes("image")&&1==o.length,u={};if(t&&(u.multiple=!0,s&&s>1&&(u.maxCount=s)),l&&(u.maxSize=1024*l),(n||i||"view"==this.mode)&&(u.deletable=!1,u.showUpload=!1,u.previewFullImage=!0),u.disabled=!1,c)u.accept="image/*";else if(o.includes("apk"))u.accept=".apk";else{var d=[];o.includes("pdf")&&d.push(".pdf"),o.includes("office")&&d.push(".doc,.docx,.xls,.xlsx,.ppt,.pptx"),o.includes("zip")&&d.push(".zip,.rar,.7z"),o.includes("image")&&d.push(".png,.jpg,.jpeg,.gif,.webp"),u.accept=d.join(",")}return u}},watch:{value:function(e){var t=this.formatToJsonString(e);this.innerValue=t,this.fileList="[]"===t||""===t?[]:this.syncFileObjectsFromBase64()}},created:function(){this.fileList=this.syncFileObjectsFromBase64()},methods:{onDelete:function(e,t){var n=t.index;this.afterRead(),console.log("已删除",e.url,n)},onOversize:function(e){this.$toast("文件大小不能超过"+(this.conf.maxFileSize||0)+"KB")},afterRead:function(e){this.getStringValue(),this.$emit("input",this.innerValue)},getStringValue:function(){var e=this;this.innerValue=JSON.stringify(this.fileList.map(function(t){var n={},i=e.conf.keyMap.name||"name",a=e.conf.keyMap.size||"size",r=e.conf.keyMap.type||"type",o=e.conf.keyMap.path||"path",s=e.conf.keyMap.bizType||"bizType";n[i]=t.file.name,n[a]=t.file.size;
448
+ this.showText=t[t.length-1].text,this.showPicker=!1}},mounted:function(){this.refreshData()}},fe={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-field",{class:e.attrs.class,attrs:{name:e.attrs.name,label:e.conf.hideLabel?"":e.conf.label,rules:e.rules},scopedSlots:e._u([{key:"input",fn:function(){return[n("van-uploader",e._b({attrs:{name:e.attrs.name,"after-read":e.afterRead,"upload-icon":"plus"},on:{oversize:e.onOversize,delete:e.onDelete},scopedSlots:e._u([{key:"preview-cover",fn:function(t){var i=t.file,a=t.content;return[n("div",{staticClass:"download-btn",on:{click:function(t){return t.stopPropagation(),e.handleDownload(i,a)}}},[n("van-icon",{attrs:{name:"down",color:"#fff"}})],1)]}}]),model:{value:e.fileList,callback:function(t){e.fileList=t},expression:"fileList"}},"van-uploader",e.filterAttrs,!1))]},proxy:!0}])})},staticRenderFns:[],name:"c-app-input-upload",props:{conf:{type:Object,default:function(){return{}}},attrs:{type:Object,default:function(){return{}}},value:{type:[Array,Object,String],default:""},mode:{type:String,default:"preview"}},mixins:[J],inject:["formData","updateFormData"],data:function(){return{innerValue:this.formatToJsonString(this.value),fileList:[]}},computed:{isImg:function(){var e=this.conf.allowedFileType;return Array.isArray(e)&&e.includes("image")&&1==e.length},filterAttrs:function(){var e=this.attrs,t=e.multiple,n=e.readonly,i=e.disabled,a=this.conf,r=a.allowedFileType,o=void 0===r?[]:r;a.minFileCount;var s=a.maxFileCount,l=a.maxFileSize,c=Array.isArray(o)&&o.includes("image")&&1==o.length,u={};if(t&&(u.multiple=!0,s&&s>1&&(u.maxCount=s)),l&&(u.maxSize=1024*l),(n||i||"view"==this.mode)&&(u.deletable=!1,u.showUpload=!1,u.previewFullImage=!0),u.disabled=!1,c)u.accept="image/*";else if(o.includes("apk"))u.accept=".apk";else{var d=[];o.includes("pdf")&&d.push(".pdf"),o.includes("office")&&d.push(".doc,.docx,.xls,.xlsx,.ppt,.pptx"),o.includes("zip")&&d.push(".zip,.rar,.7z"),o.includes("image")&&d.push(".png,.jpg,.jpeg,.gif,.webp"),u.accept=d.join(",")}return u}},watch:{value:function(e){var t=this.formatToJsonString(e);this.innerValue=t,this.fileList="[]"===t||""===t?[]:this.syncFileObjectsFromBase64()}},created:function(){this.fileList=this.syncFileObjectsFromBase64()},methods:{onDelete:function(e,t){var n=t.index;this.afterRead(),console.log("已删除",e.url,n)},onOversize:function(e){this.$toast("文件大小不能超过"+(this.conf.maxFileSize||0)+"KB")},afterRead:function(e){this.getStringValue(),this.$emit("input",this.innerValue)},getStringValue:function(){var e=this;this.innerValue=JSON.stringify(this.fileList.map(function(t){var n={},i=e.conf.keyMap.name||"name",a=e.conf.keyMap.size||"size",r=e.conf.keyMap.type||"type",o=e.conf.keyMap.path||"path",s=e.conf.keyMap.bizType||"bizType";n[i]=t.file.name,n[a]=t.file.size;
449
449
  // 修复:兜底空字符串再小写
450
450
  var l=t.file.name.split("."),c=l.length>1?l.pop():"",u=(c||"").toLowerCase();return console.log(c,u,"inputUpload"),n[r]=u,n[o]=t.content,e.attrs.name&&e.attrs.name.split("@").length>1&&(n[s]=e.attrs.name.split("@").pop()),n}))},formatToJsonString:function(e){return e?"string"==typeof e?e.trim()||"[]":JSON.stringify(e):"[]"},parseValueToArray:function(){try{if(!this.innerValue)return[];var e="string"==typeof this.innerValue?JSON.parse(this.innerValue):this.innerValue;return Array.isArray(e)?e:e?[e]:[]}catch(e){return console.error("解析文件数据失败",e),[]}},syncFileObjectsFromBase64:function(){var e=this,t=this.parseValueToArray();if(!t.length)return[];var n=[];return t.forEach(function(t){try{var i=t[e.conf.keyMap.path||"path"];if(!i)return;var a=e.conf.keyMap.name||"name",r=e.conf.keyMap.type||"type",o=
451
451
  /**
@@ -486,7 +486,7 @@ try{for(var l=atob(i),c=new Uint8Array(l.length),u=0;u<l.length;u++)c[u]=l.charC
486
486
  // 修复:兜底空字符串,防止 undefined.toLowerCase
487
487
  if(console.log(l,c,"rawType"),d?s=d:u&&(u.endsWith(".png")?s="image/png":u.endsWith(".jpg")||u.endsWith(".jpeg")?s="image/jpeg":u.endsWith(".gif")?s="image/gif":u.endsWith(".pdf")?s="application/pdf":u.endsWith(".zip")?s="application/zip":u.endsWith(".docx")?s="application/vnd.openxmlformats-officedocument.wordprocessingml.document":u.endsWith(".xlsx")?s="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":u.endsWith(".pptx")?s="application/vnd.openxmlformats-officedocument.presentationml.presentation":u.endsWith(".doc")?s="application/msword":u.endsWith(".xls")?s="application/vnd.ms-excel":u.endsWith(".ppt")&&(s="application/vnd.ms-powerpoint")),!s&&i.includes("UEsDBBQ")&&(s="application/vnd.openxmlformats-officedocument.wordprocessingml.document"),s){for(var p=x(i.split(","),2)[1],f=atob(p),h=new Uint8Array(f.length),m=0;m<f.length;m++)h[m]=f.charCodeAt(m);var v=new Blob([h],{type:s}),g=e.getExtensionByMimeType(s),y=t[a]||"file.".concat(g);o=new File([v],y,{type:s})}}o&&n.push({file:o,content:i,url:i,message:o.name,status:""})}catch(e){console.error("回显文件失败:",e)}}),n},
488
488
  // 下载文件
489
- handleDownload:function(e,t){if(e&&t){for(var n=x(t.split(","),2),i=n[0],a=n[1],r=atob(a),o=[],s=0;s<r.length;s++)o.push(r.charCodeAt(s));var l=new Blob([new Uint8Array(o)],{type:i||"application/octet-stream"}),c=URL.createObjectURL(l),u=document.createElement("a");u.href=c,u.download=(null==e?void 0:e.name)||"file",document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(c)}else this.$toast("文件不存在")},getExtensionByMimeType:function(e){return{"image/png":"png","image/jpeg":"jpg","image/gif":"gif","application/pdf":"pdf","application/zip":"zip"}[e]||"file"}}},fe={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"view"==e.mode?n("div",{staticClass:"view-value"},[e._v(e._s(e.innerValue||"-"))]):n("div",{staticClass:"input-group"},[n("input",e._b({ref:"suggestInput",attrs:{type:"text",placeholder:e.conf.placeholder||"请选择",disabled:e.conf.disabled||e.loading},domProps:{value:e.innerValue}},"input",e.attrs,!1)),e._v(" "),n("div",{staticClass:"input-group-btn"},[n("button",{staticClass:"btn btn-white dropdown-toggle",attrs:{type:"button","data-toggle":"dropdown",disabled:e.conf.disabled||e.loading}},[n("span",{staticClass:"caret"})]),e._v(" "),n("ul",{staticClass:"dropdown-menu dropdown-menu-right",attrs:{role:"menu"}})])])},staticRenderFns:[],mixins:[G,q],data:function(){return{loading:!1,suggestInstance:null}},mounted:function(){this.initBsSuggest()},beforeDestroy:function(){this.suggestInstance&&(this.$refs.suggestInput.bsSuggest("destroy"),this.suggestInstance=null)},methods:{initBsSuggest:function(){var e=this,t=this.conf.api,n=$(this.$refs.suggestInput),i={};t.headers.forEach(function(e){e.field&&e.label&&(i[e.field]=e.label)});
489
+ handleDownload:function(e,t){if(e&&t){for(var n=x(t.split(","),2),i=n[0],a=n[1],r=atob(a),o=[],s=0;s<r.length;s++)o.push(r.charCodeAt(s));var l=new Blob([new Uint8Array(o)],{type:i||"application/octet-stream"}),c=URL.createObjectURL(l),u=document.createElement("a");u.href=c,u.download=(null==e?void 0:e.name)||"file",document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(c)}else this.$toast("文件不存在")},getExtensionByMimeType:function(e){return{"image/png":"png","image/jpeg":"jpg","image/gif":"gif","application/pdf":"pdf","application/zip":"zip"}[e]||"file"}}},he={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"view"==e.mode?n("div",{staticClass:"view-value"},[e._v(e._s(e.innerValue||"-"))]):n("div",{staticClass:"input-group"},[n("input",e._b({ref:"suggestInput",attrs:{type:"text",placeholder:e.conf.placeholder||"请选择",disabled:e.conf.disabled||e.loading},domProps:{value:e.innerValue}},"input",e.attrs,!1)),e._v(" "),n("div",{staticClass:"input-group-btn"},[n("button",{staticClass:"btn btn-white dropdown-toggle",attrs:{type:"button","data-toggle":"dropdown",disabled:e.conf.disabled||e.loading}},[n("span",{staticClass:"caret"})]),e._v(" "),n("ul",{staticClass:"dropdown-menu dropdown-menu-right",attrs:{role:"menu"}})])])},staticRenderFns:[],name:"c-app-search-select",mixins:[K,J],data:function(){return{loading:!1,suggestInstance:null}},mounted:function(){this.initBsSuggest()},beforeDestroy:function(){this.suggestInstance&&(this.$refs.suggestInput.bsSuggest("destroy"),this.suggestInstance=null)},methods:{initBsSuggest:function(){var e=this,t=this.conf.api,n=$(this.$refs.suggestInput),i={};t.headers.forEach(function(e){e.field&&e.label&&(i[e.field]=e.label)});
490
490
  // 2. effectiveFields(搜索匹配的字段)
491
491
  var a=t.headers.map(function(e){return e.name||e.field});this.suggestInstance=n.bsSuggest({
492
492
  // data: { value: [{ xmmc: '德州一本账', xmbh: 'xmbh11111', htbh: 'htbh11111' }, { xmmc: '东营一本账', xmbh: 'xmbh22222', htbh: 'htbh22222' },] },
@@ -515,7 +515,7 @@ var r=e.attrs.name;e.innerValue=a[r]||"",
515
515
  // 触发事件回传值
516
516
  e.$emit("input",e.innerValue)}})},
517
517
  // 可选:手动触发搜索
518
- triggerSearch:function(e){this.suggestInstance&&this.$refs.suggestInput.bsSuggest("lookup",e)}}};function he(e,t){return U({url:e,method:"post",data:t})}var me={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"table-pro"},[e._t("toolbar",null,{selected:e.selectedRows}),e._v(" "),n("div",{staticClass:"table-container",style:{height:e.height?e.height:"auto"}},[e.fixedLeft>0||e.showCheck?n("div",{staticClass:"fixed-left"},[n("div",{staticClass:"fixed-header"},[e.showCheck&&e.multiple?n("div",{staticClass:"cell check-cell"},[n("van-checkbox",{attrs:{shape:"square"},on:{change:e.handleSelectAll},model:{value:e.isCheckAll,callback:function(t){e.isCheckAll=t},expression:"isCheckAll"}})],1):e._e(),e._v(" "),e._l(e.leftCols,function(t,i){return n("div",{key:i,staticClass:"cell",style:e.getCellStyle(t)},[e._v(e._s(t.label))])})],2),e._v(" "),n("div",{ref:"fixedBody",staticClass:"fixed-body"},e._l(e.localData,function(t,i){return n("div",{key:i,staticClass:"row-flex",attrs:{"data-row-index":i}},[e.showCheck?n("div",{staticClass:"cell check-cell"},[e.multiple?n("van-checkbox",{attrs:{shape:"square"},on:{change:function(n){return e.handleChangeRow(t,i)}},model:{value:t.checked,callback:function(n){e.$set(t,"checked",n)},expression:"row.checked"}}):n("van-radio",{attrs:{name:"row_"+i},on:{click:function(t){return e.handleChange(i)}},model:{value:e.selectedRowId,callback:function(t){e.selectedRowId=t},expression:"selectedRowId"}})],1):e._e(),e._v(" "),e._l(e.leftCols,function(a,r){return n("div",{key:r,staticClass:"cell",style:e.getCellStyle(a)},[e.$scopedSlots.cell?e._t("cell",null,{row:t,col:a,index:i}):e.$scopedSlots[a.prop]?e._t(a.prop,null,{row:t,col:a,index:i}):a.slot&&e.$scopedSlots[a.slot]?e._t(a.slot,null,{row:t,col:a,index:i}):n("span",[e._v(e._s(t[a.prop]||"-"))])],2)})],2)}),0),e._v(" "),n("div",{staticClass:"shadow right-shadow"})]):e._e(),e._v(" "),n("div",{ref:"scrollBody",staticClass:"scroll-section",class:{"auto-width":e.isAutoWidth},on:{scroll:e.handleScroll}},[n("div",{ref:"scrollHeader",staticClass:"scroll-header"},e._l(e.centerCols,function(t){return n("div",{key:t.prop,staticClass:"cell",style:e.getCellStyle(t)},[e._v(e._s(t.label))])}),0),e._v(" "),n("div",{staticClass:"scroll-body-inner"},[n("div",{staticClass:"scroll-content",style:e.contentWidthStyle},[e._l(e.localData,function(t,i){return n("div",{key:i,staticClass:"row-flex",attrs:{"data-row-index":i}},e._l(e.centerCols,function(a){return n("div",{key:a.prop,staticClass:"cell",style:e.getCellStyle(a)},[e.$scopedSlots.cell?e._t("cell",null,{row:t,col:a,index:i}):e.$scopedSlots[a.prop]?e._t(a.prop,null,{row:t,col:a,index:i}):a.slot&&e.$scopedSlots[a.slot]?e._t(a.slot,null,{row:t,col:a,index:i}):n("span",[e._v(e._s(t[a.prop]||"-"))])],2)}),0)}),e._v(" "),e.localData.length||e.loading?e._e():n("div",{staticClass:"empty-content"},[e._v("暂无数据")])],2)])]),e._v(" "),e.fixedRight>0&&!e.isAutoWidth?n("div",{staticClass:"fixed-right"},[n("div",{staticClass:"fixed-header"},e._l(e.rightCols,function(t){return n("div",{key:t.prop,staticClass:"cell",style:e.getCellStyle(t)},[e._v(e._s(t.label))])}),0),e._v(" "),n("div",{staticClass:"fixed-body"},e._l(e.localData,function(t,i){return n("div",{key:i,staticClass:"row-flex"},e._l(e.rightCols,function(a){return n("div",{key:a.prop,staticClass:"cell",style:e.getCellStyle(a)},[e.$scopedSlots.cell?e._t("cell",null,{row:t,col:a,index:i}):e.$scopedSlots[a.prop]?e._t(a.prop,null,{row:t,col:a,index:i}):a.slot&&e.$scopedSlots[a.slot]?e._t(a.slot,null,{row:t,col:a,index:i}):n("span",[e._v(e._s(t[a.prop]||"-"))])],2)}),0)}),0),e._v(" "),n("div",{staticClass:"shadow left-shadow"})]):e._e()]),e._v(" "),e.showPagination?n("van-pagination",{staticClass:"pagination",attrs:{"total-items":e.page.total,"items-per-page":e.page.size},on:{change:e.handlePageChange},model:{value:e.page.current,callback:function(t){e.$set(e.page,"current",t)},expression:"page.current"}}):e._e()],2)},staticRenderFns:[],name:"TablePro",components:{VanPagination:a.Pagination,VanLoading:a.Loading,VanCheckbox:a.Checkbox,VanRadio:a.Radio},props:{columns:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},fixedLeft:{type:Number,default:0},fixedRight:{type:Number,default:0},height:{type:String},page:{type:Object,default:function(){return{current:1,size:10,total:0}}},showPagination:{type:Boolean,default:!0},showLoadMore:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},showCheck:{type:Boolean,default:!1},multiple:{type:Boolean,default:!0}},data:function(){return{isCheckAll:!1,selectedRowId:null,selectedRows:[],colWidthCache:new Map,localData:[]}},watch:{data:{handler:function(e){var t=this;this.localData=JSON.parse(JSON.stringify(e)).map(function(e){return void 0===e.checked&&(e.checked=!1),e}),this.isCheckAll=!1,this.selectedRows=[],this.$nextTick(function(){t.syncRowHeight()})},deep:!0,immediate:!0}},computed:{isAutoWidth:function(){return this.columns.length<=2},leftCols:function(){return this.columns.slice(0,this.fixedLeft)},centerCols:function(){var e=this.fixedLeft,t=this.fixedRight>0?this.columns.length-this.fixedRight:this.columns.length;return this.columns.slice(e,t)},rightCols:function(){return this.fixedRight>0?this.columns.slice(this.columns.length-this.fixedRight):[]},contentWidthStyle:function(){var e=this;if(this.isAutoWidth)return{};var t=0;return this.centerCols.forEach(function(n){var i=e.getPxWidth(n.width||"120px");t+=i}),{width:t+"px"}}},methods:{syncRowHeight:function(){this.$nextTick(function(){var e=document.querySelectorAll(".fixed-left .row-flex"),t=document.querySelectorAll(".scroll-section .row-flex"),n=document.querySelectorAll(".fixed-right .row-flex");e.forEach(function(e,i){var a=e.offsetHeight+"px";t[i]&&(t[i].style.height=a),n[i]&&(n[i].style.height=a)})})},getPxWidth:function(e){e||(e="120px");var t=String(e);if(this.colWidthCache.has(t))return this.colWidthCache.get(t);var n=120;return-1===t.indexOf("%")&&(n=parseInt(t)||120),this.colWidthCache.set(t,n),n},getCellStyle:function(e){if(this.isAutoWidth)return{flex:1,boxSizing:"border-box"};var t=e.width||"120px";return{width:t,minWidth:t,maxWidth:t,boxSizing:"border-box"}},handleScroll:function(){var e=this.$refs.scrollBody.scrollTop;this.$refs.fixedBody&&(this.$refs.fixedBody.scrollTop=e),this.syncRowHeight()},handlePageChange:function(e){this.$emit("page-change",e)},handleChangeRow:function(e,t){this.selectedRows=this.localData.map(function(e,t){return y(y({},e),{},{index:t})}).filter(function(e){return e.checked}),this.isCheckAll=this.localData.length>0&&this.selectedRows.length===this.localData.length,this.$emit("select-change",this.selectedRows)},handleChange:function(e){this.selectedRows=[y(y({},this.localData[e]),{},{index:e})],this.$emit("select-change",this.selectedRows)},handleSelectAll:function(e){this.localData.forEach(function(t){return t.checked=e}),this.selectedRows=e?this.localData.map(function(e,t){return y(y({},e),{},{index:t})}):[],this.$emit("select-change",this.selectedRows)}},mounted:function(){this.syncRowHeight()}},ve={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-popup",{staticClass:"select-popup",attrs:{position:"bottom","get-container":"#myForm",closeable:""},on:{close:e.close},model:{value:e.isShow,callback:function(t){e.isShow=t},expression:"isShow"}},[n("div",{staticClass:"custom-picker-container"},[n("van-sticky",[n("van-nav-bar",{attrs:{title:"选择",border:!1}})],1),e._v(" "),n("div",{staticClass:"popup-body",staticStyle:{padding:"10px"}},[n("TablePro",{attrs:{columns:e.tableColumns,data:e.tableData,page:e.page,fixedLeft:0,"show-pagination":"","show-check":"",multiple:e.multiple},on:{"page-change":e.getList,"select-change":e.selChange}})],1),e._v(" "),n("div",{staticClass:"bottom-btn"},[n("van-button",{attrs:{type:"primary",round:"",block:"",icon:"checked",disabled:0==e.selectRows.length},on:{click:e.onConfirm}},[e._v("确认")])],1)],1)])},staticRenderFns:[],props:{visible:Boolean,conf:Object},components:{TablePro:me},data:function(){var e,t;return{isShow:this.visible,tableColumns:[],tableData:[],selectRows:[],page:{total:0,size:5,current:1},qqljUrl:"",multiple:"xzms-checkbox"==(null===(e=this.conf)||void 0===e||null===(t=e.valueCondition)||void 0===t?void 0:t.xzms)}},computed:{tableApi:function(){var e=this.conf.valueCondition;if("sjcxyy-table"==e.yyxxType)return{url:"/sjyy/zycx/getZycxDataList",params:{pageSize:this.page.size,pageNum:this.page.current,id:e.sjbId}};if("xtglxx"==e.yyxxType){if("user-gl"==e.xtgllx)return{url:"/sjyy/sjczgl/form/bdgl/config/getSysUserList",params:{pageSize:this.page.size,pageNum:this.page.current}};if("role-gl"==e.xtgllx)return{url:"/sjyy/sjczgl/form/bdgl/config/getSysRoleList",params:{pageSize:this.page.size,pageNum:this.page.current}}}else if("zdyApi"==e.yyxxType)return{url:this.qqljUrl,params:{pageSize:this.page.size,pageNum:this.page.current}};return{}}},watch:{visible:function(e){this.isShow=e},tableApi:{deep:!0,immediate:!0,handler:function(e){e.url?this.getTableData():this.tableData=[]}}},methods:{onConfirm:function(){this.$emit("confirm",this.selectRows)},close:function(){this.$emit("close")},getTableData:function(){var e=this;he(this.tableApi.url,this.tableApi.params).then(function(t){0==t.code&&(e.tableData=t.rows,
518
+ triggerSearch:function(e){this.suggestInstance&&this.$refs.suggestInput.bsSuggest("lookup",e)}}},me={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"table-pro"},[e._t("toolbar",null,{selected:e.selectedRows}),e._v(" "),n("div",{staticClass:"table-container",style:{height:e.height?e.height:"auto"}},[e.fixedLeft>0||e.showCheck?n("div",{staticClass:"fixed-left"},[n("div",{staticClass:"fixed-header"},[e.showCheck&&e.multiple?n("div",{staticClass:"cell check-cell"},[n("van-checkbox",{attrs:{shape:"square"},on:{change:e.handleSelectAll},model:{value:e.isCheckAll,callback:function(t){e.isCheckAll=t},expression:"isCheckAll"}})],1):e._e(),e._v(" "),e._l(e.leftCols,function(t,i){return n("div",{key:i,staticClass:"cell",style:e.getCellStyle(t)},[e._v(e._s(t.label))])})],2),e._v(" "),n("div",{ref:"fixedBody",staticClass:"fixed-body"},e._l(e.localData,function(t,i){return n("div",{key:i,staticClass:"row-flex",attrs:{"data-row-index":i}},[e.showCheck?n("div",{staticClass:"cell check-cell"},[e.multiple?n("van-checkbox",{attrs:{shape:"square"},on:{change:function(n){return e.handleChangeRow(t,i)}},model:{value:t.checked,callback:function(n){e.$set(t,"checked",n)},expression:"row.checked"}}):n("van-radio",{attrs:{name:"row_"+i},on:{click:function(t){return e.handleChange(i)}},model:{value:e.selectedRowId,callback:function(t){e.selectedRowId=t},expression:"selectedRowId"}})],1):e._e(),e._v(" "),e._l(e.leftCols,function(a,r){return n("div",{key:r,staticClass:"cell",style:e.getCellStyle(a)},[e.$scopedSlots.cell?e._t("cell",null,{row:t,col:a,index:i}):e.$scopedSlots[a.prop]?e._t(a.prop,null,{row:t,col:a,index:i}):a.slot&&e.$scopedSlots[a.slot]?e._t(a.slot,null,{row:t,col:a,index:i}):n("span",[e._v(e._s(t[a.prop]||"-"))])],2)})],2)}),0),e._v(" "),n("div",{staticClass:"shadow right-shadow"})]):e._e(),e._v(" "),n("div",{ref:"scrollBody",staticClass:"scroll-section",class:{"auto-width":e.isAutoWidth},on:{scroll:e.handleScroll}},[n("div",{ref:"scrollHeader",staticClass:"scroll-header"},e._l(e.centerCols,function(t){return n("div",{key:t.prop,staticClass:"cell",style:e.getCellStyle(t)},[e._v(e._s(t.label))])}),0),e._v(" "),n("div",{staticClass:"scroll-body-inner"},[n("div",{staticClass:"scroll-content",style:e.contentWidthStyle},[e._l(e.localData,function(t,i){return n("div",{key:i,staticClass:"row-flex",attrs:{"data-row-index":i}},e._l(e.centerCols,function(a){return n("div",{key:a.prop,staticClass:"cell",style:e.getCellStyle(a)},[e.$scopedSlots.cell?e._t("cell",null,{row:t,col:a,index:i}):e.$scopedSlots[a.prop]?e._t(a.prop,null,{row:t,col:a,index:i}):a.slot&&e.$scopedSlots[a.slot]?e._t(a.slot,null,{row:t,col:a,index:i}):n("span",[e._v(e._s(t[a.prop]||"-"))])],2)}),0)}),e._v(" "),e.localData.length||e.loading?e._e():n("div",{staticClass:"empty-content"},[e._v("暂无数据")])],2)])]),e._v(" "),e.fixedRight>0&&!e.isAutoWidth?n("div",{staticClass:"fixed-right"},[n("div",{staticClass:"fixed-header"},e._l(e.rightCols,function(t){return n("div",{key:t.prop,staticClass:"cell",style:e.getCellStyle(t)},[e._v(e._s(t.label))])}),0),e._v(" "),n("div",{staticClass:"fixed-body"},e._l(e.localData,function(t,i){return n("div",{key:i,staticClass:"row-flex"},e._l(e.rightCols,function(a){return n("div",{key:a.prop,staticClass:"cell",style:e.getCellStyle(a)},[e.$scopedSlots.cell?e._t("cell",null,{row:t,col:a,index:i}):e.$scopedSlots[a.prop]?e._t(a.prop,null,{row:t,col:a,index:i}):a.slot&&e.$scopedSlots[a.slot]?e._t(a.slot,null,{row:t,col:a,index:i}):n("span",[e._v(e._s(t[a.prop]||"-"))])],2)}),0)}),0),e._v(" "),n("div",{staticClass:"shadow left-shadow"})]):e._e()]),e._v(" "),e.showPagination?n("van-pagination",{staticClass:"pagination",attrs:{"total-items":e.page.total,"items-per-page":e.page.size},on:{change:e.handlePageChange},model:{value:e.page.current,callback:function(t){e.$set(e.page,"current",t)},expression:"page.current"}}):e._e()],2)},staticRenderFns:[],name:"TablePro",components:{VanPagination:a.Pagination,VanLoading:a.Loading,VanCheckbox:a.Checkbox,VanRadio:a.Radio},props:{columns:{type:Array,default:function(){return[]}},data:{type:Array,default:function(){return[]}},fixedLeft:{type:Number,default:0},fixedRight:{type:Number,default:0},height:{type:String},page:{type:Object,default:function(){return{current:1,size:10,total:0}}},showPagination:{type:Boolean,default:!0},showLoadMore:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},showCheck:{type:Boolean,default:!1},multiple:{type:Boolean,default:!0}},data:function(){return{isCheckAll:!1,selectedRowId:null,selectedRows:[],colWidthCache:new Map,localData:[]}},watch:{data:{handler:function(e){var t=this;this.localData=JSON.parse(JSON.stringify(e)).map(function(e){return void 0===e.checked&&(e.checked=!1),e}),this.isCheckAll=!1,this.selectedRows=[],this.$nextTick(function(){t.syncRowHeight()})},deep:!0,immediate:!0}},computed:{isAutoWidth:function(){return this.columns.length<=2},leftCols:function(){return this.columns.slice(0,this.fixedLeft)},centerCols:function(){var e=this.fixedLeft,t=this.fixedRight>0?this.columns.length-this.fixedRight:this.columns.length;return this.columns.slice(e,t)},rightCols:function(){return this.fixedRight>0?this.columns.slice(this.columns.length-this.fixedRight):[]},contentWidthStyle:function(){var e=this;if(this.isAutoWidth)return{};var t=0;return this.centerCols.forEach(function(n){var i=e.getPxWidth(n.width||"120px");t+=i}),{width:t+"px"}}},methods:{syncRowHeight:function(){this.$nextTick(function(){var e=document.querySelectorAll(".fixed-left .row-flex"),t=document.querySelectorAll(".scroll-section .row-flex"),n=document.querySelectorAll(".fixed-right .row-flex");e.forEach(function(e,i){var a=e.offsetHeight+"px";t[i]&&(t[i].style.height=a),n[i]&&(n[i].style.height=a)})})},getPxWidth:function(e){e||(e="120px");var t=String(e);if(this.colWidthCache.has(t))return this.colWidthCache.get(t);var n=120;return-1===t.indexOf("%")&&(n=parseInt(t)||120),this.colWidthCache.set(t,n),n},getCellStyle:function(e){if(this.isAutoWidth)return{flex:1,boxSizing:"border-box"};var t=e.width||"120px";return{width:t,minWidth:t,maxWidth:t,boxSizing:"border-box"}},handleScroll:function(){var e=this.$refs.scrollBody.scrollTop;this.$refs.fixedBody&&(this.$refs.fixedBody.scrollTop=e),this.syncRowHeight()},handlePageChange:function(e){this.$emit("page-change",e)},handleChangeRow:function(e,t){this.selectedRows=this.localData.map(function(e,t){return y(y({},e),{},{index:t})}).filter(function(e){return e.checked}),this.isCheckAll=this.localData.length>0&&this.selectedRows.length===this.localData.length,this.$emit("select-change",this.selectedRows)},handleChange:function(e){this.selectedRows=[y(y({},this.localData[e]),{},{index:e})],this.$emit("select-change",this.selectedRows)},handleSelectAll:function(e){this.localData.forEach(function(t){return t.checked=e}),this.selectedRows=e?this.localData.map(function(e,t){return y(y({},e),{},{index:t})}):[],this.$emit("select-change",this.selectedRows)}},mounted:function(){this.syncRowHeight()}},ve={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("van-popup",{staticClass:"select-popup",attrs:{position:"bottom","get-container":"#myForm",closeable:""},on:{close:e.close},model:{value:e.isShow,callback:function(t){e.isShow=t},expression:"isShow"}},[n("div",{staticClass:"custom-picker-container"},[n("van-sticky",[n("van-nav-bar",{attrs:{title:"选择",border:!1}})],1),e._v(" "),n("div",{staticClass:"popup-body",staticStyle:{padding:"10px"}},[n("TablePro",{attrs:{columns:e.tableColumns,data:e.tableData,page:e.page,fixedLeft:0,"show-pagination":"","show-check":"",multiple:e.multiple},on:{"page-change":e.getList,"select-change":e.selChange}})],1),e._v(" "),n("div",{staticClass:"bottom-btn"},[n("van-button",{attrs:{type:"primary",round:"",block:"",icon:"checked",disabled:0==e.selectRows.length},on:{click:e.onConfirm}},[e._v("确认")])],1)],1)])},staticRenderFns:[],props:{visible:Boolean,conf:Object},components:{TablePro:me},data:function(){var e,t;return{isShow:this.visible,tableColumns:[],tableData:[],selectRows:[],page:{total:0,size:5,current:1},qqljUrl:"",multiple:"xzms-checkbox"==(null===(e=this.conf)||void 0===e||null===(t=e.valueCondition)||void 0===t?void 0:t.xzms)}},computed:{tableApi:function(){var e=this.conf.valueCondition;if("sjcxyy-table"==e.yyxxType)return{url:"/sjyy/zycx/getZycxDataList",params:{pageSize:this.page.size,pageNum:this.page.current,id:e.sjbId}};if("xtglxx"==e.yyxxType){if("user-gl"==e.xtgllx)return{url:"/sjyy/sjczgl/form/bdgl/config/getSysUserList",params:{pageSize:this.page.size,pageNum:this.page.current}};if("role-gl"==e.xtgllx)return{url:"/sjyy/sjczgl/form/bdgl/config/getSysRoleList",params:{pageSize:this.page.size,pageNum:this.page.current}}}else if("zdyApi"==e.yyxxType)return{url:this.qqljUrl,params:{pageSize:this.page.size,pageNum:this.page.current}};return{}}},watch:{visible:function(e){this.isShow=e},tableApi:{deep:!0,immediate:!0,handler:function(e){e.url?this.getTableData():this.tableData=[]}}},methods:{onConfirm:function(){this.$emit("confirm",this.selectRows)},close:function(){this.$emit("close")},getTableData:function(){var e=this;N(this.tableApi.url,this.tableApi.params).then(function(t){0==t.code&&(e.tableData=t.rows,
519
519
  // this.tableData = res.rows.map((item, index) => {
520
520
  // return {
521
521
  // ...item,
@@ -523,7 +523,7 @@ triggerSearch:function(e){this.suggestInstance&&this.$refs.suggestInput.bsSugges
523
523
  // _id: item.id || item.roleId || item.userId || index
524
524
  // }
525
525
  // })
526
- e.page.total=t.total)})},getTableColumns:function(){var e=this,t={},n=this.conf.valueCondition;"zdyApi"==n.yyxxType?(t.url="/gzt/jkgl/jkglView",t.params={id:n.jkid}):"sjcxyy-table"==n.yyxxType?(t.url="/sjyy/sjcxgl/sjxgl/getQtzsSjxList",t.params={ysjbId:n.sjbId,zxzdlx:"list"}):"xtglxx"==n.yyxxType&&("user-gl"==n.xtgllx?this.tableColumns=[{prop:"userName",label:"姓名"},{prop:"jybh",label:"警号"}]:"role-gl"==n.xtgllx&&(this.tableColumns=[{prop:"roleName",label:"角色名称"},{prop:"roleKey",label:"权限字符"}])),t&&t.url&&he(t.url,t.params).then(function(t){if(0==t.code){var i="zdyApi"==n.yyxxType?t.data.fhcsList:t.rows,a=[],r="",o="";if("zdyApi"==n.yyxxType?(r="csjp",o="csmc"):"sjcxyy-table"==n.yyxxType&&(r="sjxbs",o="sjxmc"),i&&(i.forEach(function(e){n.colysArr.find(function(t){return t.sjlyColName==e[r]})&&a.push({prop:e[r],label:e[o]})}),1==a.length&&(i[0][r]==a[0].prop?a.push({prop:i[1][r],label:i[1][o]}):a.push({prop:i[0][r],label:i[0][o]})),e.tableColumns=a),"zdyApi"==n.yyxxType){var s=t.data.qqlj;s=0==s.indexOf("/")?s.substring(1):s,e.qqljUrl=s}}})},getList:function(){},selChange:function(e){this.selectRows=e}},created:function(){this.getTableColumns()}},ge={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"widget-row table-wrapper"},[n("div",{staticClass:"sub-item-title"},[n("span",{staticClass:"left-label"},[e._v(e._s(e.conf.label))]),e._v(" "),"view"!==e.mode&&(e.conf.allowAdd||e.conf.allowReferenceAdd)?n("div",{staticClass:"toolbar-btns"},[e.conf.allowNormalAdd?n("button",{staticClass:"add-btn primary-color button-none",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.addRow.apply(null,arguments)}}},[n("van-icon",{staticStyle:{"margin-right":"2px"},attrs:{name:"plus"}}),e._v(" "+e._s(e.conf.addBtnText||"添加")+"\n ")],1):e._e(),e._v(" "),e.conf.allowNormalAdd?n("button",{staticClass:"add-btn info-color button-none",attrs:{disabled:0==e.selectRows.length},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.editRow.apply(null,arguments)}}},[n("van-icon",{staticStyle:{"margin-right":"2px"},attrs:{name:"edit"}}),e._v(" "+e._s("编辑")+"\n ")],1):e._e(),e._v(" "),e.conf.allowReferenceAdd?n("button",{staticClass:"add-btn primary-color button-none",on:{click:e.referenceAddRow}},[n("van-icon",{staticStyle:{"margin-right":"2px"},attrs:{name:"plus"}}),e._v(e._s(e.conf.referenceAddBtnText||"选择添加")+"\n ")],1):e._e(),e._v(" "),e.conf.allowDelete?n("button",{staticClass:"add-btn danger-color button-none",attrs:{disabled:0==e.selectRows.length},on:{click:e.deleteRow}},[n("van-icon",{attrs:{name:"delete-o"}}),e._v(e._s(e.conf.deleteBtnText||"删除")+"\n ")],1):e._e()]):e._e()]),e._v(" "),n("TablePro",{attrs:{columns:e.tableColumns,data:e.tableData,page:e.page,height:e.conf.tableHeight,fixedLeft:e.conf.fixedNumber,"show-pagination":e.conf.pagination,"show-check":"view"!==e.mode,multiple:!0},on:{"page-change":e.getList,"select-change":e.selChange},scopedSlots:e._u([{key:"cell",fn:function(e){var t=e.row,i=e.col;return[n("render",{attrs:{conf:i,value:t[i.prop],terminal:"mobile",mode:"view"}})]}}])}),e._v(" "),n("van-popup",{staticClass:"select-popup",style:{height:e.tableColumns.length>6?"60%":"50%"},attrs:{position:"bottom","get-container":"#myForm",closeable:""},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}},[n("van-form",{ref:"vantForm",staticClass:"custom-picker-container",attrs:{"validate-first":""},on:{submit:e.onSubmit},model:{value:e.form,callback:function(t){e.form=t},expression:"form"}},[n("van-sticky",[n("van-nav-bar",{attrs:{title:"手动添加",border:!1}})],1),e._v(" "),n("div",{staticClass:"popup-body scroll-wrap"},e._l(e.formItems,function(t,i){return n("render",{key:i,attrs:{conf:t,value:e.form[t.name],terminal:"mobile",mode:-1===e.currentIndex?"add":"edit"},on:{onInput:e.updateForm}})}),1),e._v(" "),n("div",{staticClass:"bottom-btn"},[n("van-button",{attrs:{type:"primary",round:"",block:"",icon:"checked","native-type":"submit"}},[e._v("确认")])],1)],1)],1),e._v(" "),"page"==e.fhType?n("api-popup",{attrs:{visible:e.showRPicker,conf:e.conf},on:{confirm:e.onConfirm,close:function(t){e.showRPicker=!1}}}):e._e()],1)},staticRenderFns:[],mixins:[X,q],components:{render:I,TablePro:me,apiPopup:ve},data:function(){var e;return{tableData:this.parseValue(this.innerValue),showPicker:!1,showRPicker:!1,form:{},selectRows:[],
526
+ e.page.total=t.total)})},getTableColumns:function(){var e=this,t={},n=this.conf.valueCondition;"zdyApi"==n.yyxxType?(t.url="/gzt/jkgl/jkglView",t.params={id:n.jkid}):"sjcxyy-table"==n.yyxxType?(t.url="/sjyy/sjcxgl/sjxgl/getQtzsSjxList",t.params={ysjbId:n.sjbId,zxzdlx:"list"}):"xtglxx"==n.yyxxType&&("user-gl"==n.xtgllx?this.tableColumns=[{prop:"userName",label:"姓名"},{prop:"jybh",label:"警号"}]:"role-gl"==n.xtgllx&&(this.tableColumns=[{prop:"roleName",label:"角色名称"},{prop:"roleKey",label:"权限字符"}])),t&&t.url&&N(t.url,t.params).then(function(t){if(0==t.code){var i="zdyApi"==n.yyxxType?t.data.fhcsList:t.rows,a=[],r="",o="";if("zdyApi"==n.yyxxType?(r="csjp",o="csmc"):"sjcxyy-table"==n.yyxxType&&(r="sjxbs",o="sjxmc"),i&&(i.forEach(function(e){n.colysArr.find(function(t){return t.sjlyColName==e[r]})&&a.push({prop:e[r],label:e[o]})}),1==a.length&&(i[0][r]==a[0].prop?a.push({prop:i[1][r],label:i[1][o]}):a.push({prop:i[0][r],label:i[0][o]})),e.tableColumns=a),"zdyApi"==n.yyxxType){var s=t.data.qqlj;s=0==s.indexOf("/")?s.substring(1):s,e.qqljUrl=s}}})},getList:function(){},selChange:function(e){this.selectRows=e}},created:function(){this.getTableColumns()}},ge={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"widget-row table-wrapper"},[n("div",{staticClass:"sub-item-title"},[n("span",{staticClass:"left-label"},[e._v(e._s(e.conf.label))]),e._v(" "),"view"!==e.mode&&(e.conf.allowAdd||e.conf.allowReferenceAdd)?n("div",{staticClass:"toolbar-btns"},[e.conf.allowNormalAdd?n("button",{staticClass:"add-btn primary-color button-none",on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.addRow.apply(null,arguments)}}},[n("van-icon",{staticStyle:{"margin-right":"2px"},attrs:{name:"plus"}}),e._v(" "+e._s(e.conf.addBtnText||"添加")+"\n ")],1):e._e(),e._v(" "),e.conf.allowNormalAdd?n("button",{staticClass:"add-btn info-color button-none",attrs:{disabled:0==e.selectRows.length},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.editRow.apply(null,arguments)}}},[n("van-icon",{staticStyle:{"margin-right":"2px"},attrs:{name:"edit"}}),e._v(" "+e._s("编辑")+"\n ")],1):e._e(),e._v(" "),e.conf.allowReferenceAdd?n("button",{staticClass:"add-btn primary-color button-none",on:{click:e.referenceAddRow}},[n("van-icon",{staticStyle:{"margin-right":"2px"},attrs:{name:"plus"}}),e._v(e._s(e.conf.referenceAddBtnText||"选择添加")+"\n ")],1):e._e(),e._v(" "),e.conf.allowDelete?n("button",{staticClass:"add-btn danger-color button-none",attrs:{disabled:0==e.selectRows.length},on:{click:e.deleteRow}},[n("van-icon",{attrs:{name:"delete-o"}}),e._v(e._s(e.conf.deleteBtnText||"删除")+"\n ")],1):e._e()]):e._e()]),e._v(" "),n("TablePro",{attrs:{columns:e.tableColumns,data:e.tableData,page:e.page,height:e.conf.tableHeight,fixedLeft:e.conf.fixedNumber,"show-pagination":e.conf.pagination,"show-check":"view"!==e.mode,multiple:!0},on:{"page-change":e.getList,"select-change":e.selChange},scopedSlots:e._u([{key:"cell",fn:function(e){var t=e.row,i=e.col;return[n("render",{attrs:{conf:i,value:t[i.prop],terminal:"mobile",mode:"view"}})]}}])}),e._v(" "),n("van-popup",{staticClass:"select-popup",style:{height:e.tableColumns.length>6?"60%":"50%"},attrs:{position:"bottom","get-container":"#myForm",closeable:""},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}},[n("van-form",{ref:"vantForm",staticClass:"custom-picker-container",attrs:{"validate-first":""},on:{submit:e.onSubmit},model:{value:e.form,callback:function(t){e.form=t},expression:"form"}},[n("van-sticky",[n("van-nav-bar",{attrs:{title:"手动添加",border:!1}})],1),e._v(" "),n("div",{staticClass:"popup-body scroll-wrap"},e._l(e.formItems,function(t,i){return n("render",{key:i,attrs:{conf:t,value:e.form[t.name],terminal:"mobile",mode:-1===e.currentIndex?"add":"edit"},on:{onInput:e.updateForm}})}),1),e._v(" "),n("div",{staticClass:"bottom-btn"},[n("van-button",{attrs:{type:"primary",round:"",block:"",icon:"checked","native-type":"submit"}},[e._v("确认")])],1)],1)],1),e._v(" "),"page"==e.fhType?n("api-popup",{attrs:{visible:e.showRPicker,conf:e.conf},on:{confirm:e.onConfirm,close:function(t){e.showRPicker=!1}}}):e._e()],1)},staticRenderFns:[],name:"c-app-table",mixins:[ee,J],components:{render:I,TablePro:me,apiPopup:ve},data:function(){var e;return{tableData:this.parseValue(this.innerValue),showPicker:!1,showRPicker:!1,form:{},selectRows:[],
527
527
  // 选中的行
528
528
  currentIndex:-1,fhType:"page"==(null===(e=this.conf.referenceAddApi)||void 0===e?void 0:e.fhType)?"page":"json"}},computed:{page:function(){return{total:0,size:10,current:1}},paramsChanged:function(){return this.prevValue!==this.formData[this.conf.formLdCol]},formItems:function(){return this.conf.columnsData.filter(function(e){return"inputHidden"!==e.widget&&!1!==e.appVisible})},
529
529
  /**
@@ -553,9 +553,9 @@ var e=this.selectRows.map(function(e){return e.index});
553
553
  // 🔥 关键:从大到小排序索引,避免索引错乱
554
554
  e.sort(function(e,t){return t-e});
555
555
  // 循环删除
556
- var t,n=f(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;this.tableData.splice(i,1)}}catch(e){n.e(e)}finally{n.f()}},updateForm:function(e,t){t||this.$toast("字段没有配置无法赋值!"),this.form[t]=e}}},ye={AppFormView:z,AppForm:J,AppFormItem:W,AppSubRow:H,AppInput:K,AppTextBox:ee,AppInputHidden:te,AppSelect:ie,AppRadio:re,AppCheckbox:oe,AppDateTimePicker:le,AppDateTimeRange:ue,AppInputTree:de,AppInputUpload:pe,AppSearchSelect:fe,AppSearchApi:{render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"view"===e.mode?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{"click-right-icon":e.openModal,clear:e.handleClear},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)),e._v(" "),"page"==e.fhType?n("api-popup",{attrs:{visible:e.showPicker,conf:e.conf},on:{confirm:e.onConfirm,close:function(t){e.showPicker=!1}}}):e._e()],1)},staticRenderFns:[],mixins:[X,q],data:function(){return{isFocused:!1,
556
+ var t,n=f(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;this.tableData.splice(i,1)}}catch(e){n.e(e)}finally{n.f()}},updateForm:function(e,t){t||this.$toast("字段没有配置无法赋值!"),this.form[t]=e}}},ye={AppFormView:M,AppForm:W,AppFormItem:H,AppSubRow:G,AppInput:Z,AppTextBox:te,AppInputHidden:ne,AppSelect:ae,AppRadio:oe,AppCheckbox:se,AppDateTimePicker:ce,AppDateTimeRange:de,AppInputTree:pe,AppInputUpload:fe,AppSearchSelect:he,AppSearchApi:{render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return"view"===e.mode?n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)):n("div",[n("van-field",e._b({attrs:{label:e.conf.hideLabel?"":e.conf.label,rules:e.rules,"right-icon":"arrow"},on:{"click-right-icon":e.openModal,clear:e.handleClear},model:{value:e.innerValue,callback:function(t){e.innerValue=t},expression:"innerValue"}},"van-field",e.filterAttrs,!1)),e._v(" "),"page"==e.fhType?n("api-popup",{attrs:{visible:e.showPicker,conf:e.conf},on:{confirm:e.onConfirm,close:function(t){e.showPicker=!1}}}):e._e()],1)},staticRenderFns:[],name:"c-app-search-api",mixins:[ee,J],data:function(){return{isFocused:!1,
557
557
  // 记录输入框是否聚焦
558
- showPicker:!1,fhType:"json"==this.conf.api.fhType?"json":"page"}},components:{apiPopup:ve},computed:{filterAttrs:function(){var e=m({},(v(this.attrs),this.attrs)),t=this.conf.widget;return e.type="password"==t?"password":"inputNumber"==t?"number":"textarea"==t?"textarea":"text","view"==this.mode&&(e.readonly=!0,e.clearable=!1),"form-control"==e.class&&(e.class=""),e}},methods:{handleChange:function(e){this.innerValue=e.target.value,this.$emit("input",this.innerValue)},handleClear:function(){this.innerValue="",this.$emit("input",this.innerValue)},refreshCallback:function(){this.updateCallback()},onConfirm:function(e){this.showPicker=!1,this.updateCallback(e),this.$emit("input",this.innerValue)},openModal:function(){"page"==this.fhType?this.showPicker=!0:this.refreshData()}},mounted:function(){this.conf.api.immediate&&this.refreshData()}},AppSubTitle:{render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sub-item-title",class:[e.conf.size,e.conf.align,e.conf.class].concat(e.conf.border&&e.conf.border.length>0?e.conf.border:[])},[e.conf.icon?n("span",{staticClass:"icon",class:e.conf.icon}):e._e(),e._v(" "),n(e.conf.weight?"b":"span",{ref:"editableElement",tag:"component",class:["title","preview"==e.mode?"editable":""],attrs:{contenteditable:"preview"==e.mode},on:{input:e.handleUpdateLabel}},[e._v("\n "+e._s(e.conf.label)+"\n ")])],1)},staticRenderFns:[],props:{mode:{type:String,default:"preview"},conf:{type:Object,required:!0,
558
+ showPicker:!1,fhType:"json"==this.conf.api.fhType?"json":"page"}},components:{apiPopup:ve},computed:{filterAttrs:function(){var e=m({},(v(this.attrs),this.attrs)),t=this.conf.widget;return e.type="password"==t?"password":"inputNumber"==t?"number":"textarea"==t?"textarea":"text","view"==this.mode&&(e.readonly=!0,e.clearable=!1),"form-control"==e.class&&(e.class=""),e}},methods:{handleChange:function(e){this.innerValue=e.target.value,this.$emit("input",this.innerValue)},handleClear:function(){this.innerValue="",this.$emit("input",this.innerValue)},refreshCallback:function(){this.updateCallback()},onConfirm:function(e){this.showPicker=!1,this.updateCallback(e),this.$emit("input",this.innerValue)},openModal:function(){"page"==this.fhType?this.showPicker=!0:this.refreshData()}},mounted:function(){this.conf.api.immediate&&this.refreshData()}},AppSubTitle:{render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sub-item-title",class:[e.conf.size,e.conf.align,e.conf.class].concat(e.conf.border&&e.conf.border.length>0?e.conf.border:[])},[e.conf.icon?n("span",{staticClass:"icon",class:e.conf.icon}):e._e(),e._v(" "),n(e.conf.weight?"b":"span",{ref:"editableElement",tag:"component",class:["title","preview"==e.mode?"editable":""],attrs:{contenteditable:"preview"==e.mode},on:{input:e.handleUpdateLabel}},[e._v("\n "+e._s(e.conf.label)+"\n ")])],1)},staticRenderFns:[],name:"c-app-sub-title",props:{mode:{type:String,default:"preview"},conf:{type:Object,required:!0,
559
559
  // 增加props默认结构,避免空对象/空数组导致的响应式问题
560
560
  default:function(){return{size:"",align:"",border:[],
561
561
  // 初始化border为空数组
@@ -567,6 +567,10 @@ var t=e.textContent.trim();
567
567
  // 触发父组件更新,遵循单向数据流
568
568
  this.$emit("updateItem","label",t)}}},watch:{
569
569
  // 监听conf.label变化,同步到可编辑元素(解决父组件数据更新时子组件不刷新的问题)
570
- "conf.label":function(e){var t=this.$refs.editableElement;t&&t.textContent!==e&&(t.textContent=e)}}},AppTable:ge,AppButton:{render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("a",{class:e.conf.buttonType,style:e.style,attrs:{disabled:e.conf.disabled}},[e.conf.icon?n("i",{staticClass:"icon",class:e.conf.icon}):e._e(),e._v(" "),n("span",[e._v(e._s(e.conf.buttonText))])])},staticRenderFns:[],mixins:[X,q],data:function(){return{}},computed:{style:function(){return void 0!==this.conf.appWidth?{width:"".concat(this.conf.appWidth/12*100,"%")}:{}}},methods:{refreshCallback:function(){this.updateCallback()}}},AppLayoutBlock:{render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{class:["clearfix",e.conf.align].concat(e.conf.border&&e.conf.border.length>0?e.conf.border:[])},[e._t("default")],2)},staticRenderFns:[],props:{mode:{type:String,default:"preview"},conf:{
570
+ "conf.label":function(e){var t=this.$refs.editableElement;t&&t.textContent!==e&&(t.textContent=e)}}},AppTable:ge,AppButton:{render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("a",{class:e.conf.buttonType,style:e.style,attrs:{disabled:e.conf.disabled}},[e.conf.icon?n("i",{staticClass:"icon",class:e.conf.icon}):e._e(),e._v(" "),n("span",[e._v(e._s(e.conf.buttonText))])])},staticRenderFns:[],name:"c-app-button",mixins:[ee,J],data:function(){return{}},computed:{style:function(){return void 0!==this.conf.appWidth?{width:"".concat(this.conf.appWidth/12*100,"%")}:{}}},methods:{refreshCallback:function(){this.updateCallback()}}},AppLayoutBlock:{render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{class:["clearfix",e.conf.align].concat(e.conf.border&&e.conf.border.length>0?e.conf.border:[])},[e._t("default")],2)},staticRenderFns:[],name:"c-app-block",props:{mode:{type:String,default:"preview"},conf:{
571
571
  // 表单数据对象
572
- type:Object,required:!0},formConf:{type:Object}},data:function(){return{}},methods:{}}},be=function(e,t){be.installed||(be.installed=!0,t.request&&(e.prototype.$request=t.request),Object.values(ye).forEach(function(t){e.component(t.name,t)}))},we=y({install:be},ye),Ce=ye.AppFormView,xe=ye.AppForm,ke=ye.AppFormItem,Ae=ye.AppSubRow,Te=ye.AppInput,Ve=ye.AppTextBox,Se=ye.AppInputHidden,_e=ye.AppSelect,je=ye.AppRadio,De=ye.AppCheckbox,Ie=ye.AppDateTimePicker,$e=ye.AppDateTimeRange,Le=ye.AppInputTree,Oe=ye.AppInputUpload,Fe=ye.AppSearchSelect,Re=ye.AppSearchApi,Pe=ye.AppSubTitle,Ee=ye.AppTable,Ne=ye.AppButton,ze=ye.AppLayoutBlock;e.AppFormView=Ce,e.CAppButton=Ne,e.CAppCheckbox=De,e.CAppDateTimePicker=Ie,e.CAppDateTimeRange=$e,e.CAppForm=xe,e.CAppFormItem=ke,e.CAppInput=Te,e.CAppInputHidden=Se,e.CAppInputTree=Le,e.CAppInputUpload=Oe,e.CAppLayoutBlock=ze,e.CAppRadio=je,e.CAppSearchApi=Re,e.CAppSearchSelect=Fe,e.CAppSelect=_e,e.CAppSubRow=Ae,e.CAppSubTitle=Pe,e.CAppTable=Ee,e.CAppTextBox=Ve,e.default=we,Object.defineProperty(e,"__esModule",{value:!0})});
572
+ type:Object,required:!0},formConf:{type:Object}},data:function(){return{}},methods:{}}},be=function(e,t){be.installed||(be.installed=!0,t.request&&(e.prototype.$request=t.request),Object.values(ye).forEach(function(t){
573
+ // 增加判断:comp存在 + name是有效字符串
574
+ t&&t.name&&"string"==typeof t.name?e.component(t.name,t):
575
+ // 打印缺失name的组件,方便定位是哪一个
576
+ console.warn("该组件缺失name属性,跳过全局注册",t)}))},we=y({install:be},ye),Ce=ye.AppFormView,xe=ye.AppForm,ke=ye.AppFormItem,Ae=ye.AppSubRow,Te=ye.AppInput,Ve=ye.AppTextBox,Se=ye.AppInputHidden,_e=ye.AppSelect,je=ye.AppRadio,De=ye.AppCheckbox,Ie=ye.AppDateTimePicker,$e=ye.AppDateTimeRange,Le=ye.AppInputTree,Oe=ye.AppInputUpload,Fe=ye.AppSearchSelect,Re=ye.AppSearchApi,Pe=ye.AppSubTitle,Ee=ye.AppTable,Ne=ye.AppButton,ze=ye.AppLayoutBlock;e.AppFormView=Ce,e.CAppBlock=ze,e.CAppButton=Ne,e.CAppCheckbox=De,e.CAppDateTimePicker=Ie,e.CAppDateTimeRange=$e,e.CAppForm=xe,e.CAppFormItem=ke,e.CAppInput=Te,e.CAppInputHidden=Se,e.CAppInputTree=Le,e.CAppInputUpload=Oe,e.CAppRadio=je,e.CAppSearchApi=Re,e.CAppSearchSelect=Fe,e.CAppSelect=_e,e.CAppSubRow=Ae,e.CAppSubTitle=Pe,e.CAppTable=Ee,e.CAppTextBox=Ve,e.default=we,Object.defineProperty(e,"__esModule",{value:!0})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "app-form-view",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "vue表单组件库",
5
5
  "main": "dist/index.js",
6
6
  "publishConfig": {
package/src/app-index.js CHANGED
@@ -51,10 +51,15 @@ const install = function (Vue, options) {
51
51
  Vue.prototype.$request = options.request
52
52
  }
53
53
  Object.values(components).forEach(comp => {
54
- Vue.component(comp.name, comp)
54
+ // 增加判断:comp存在 + name是有效字符串
55
+ if (comp && comp.name && typeof comp.name === 'string') {
56
+ Vue.component(comp.name, comp)
57
+ } else {
58
+ // 打印缺失name的组件,方便定位是哪一个
59
+ console.warn('该组件缺失name属性,跳过全局注册', comp)
60
+ }
55
61
  })
56
62
  }
57
-
58
63
  const AppFormPlugin = {
59
64
  install,
60
65
  ...components
@@ -81,4 +86,4 @@ export const CAppSearchApi = components.AppSearchApi
81
86
  export const CAppSubTitle = components.AppSubTitle
82
87
  export const CAppTable = components.AppTable
83
88
  export const CAppButton = components.AppButton
84
- export const CAppLayoutBlock = components.AppLayoutBlock
89
+ export const CAppBlock = components.AppLayoutBlock
@@ -7,7 +7,7 @@
7
7
  import baseMixin from './dynamicMixin'
8
8
  import eventsMixin from '../form/form-event-mixin.js'
9
9
  export default {
10
-
10
+ name: 'c-app-button',
11
11
  mixins: [baseMixin, eventsMixin],
12
12
  data() {
13
13
  return {
@@ -5,7 +5,7 @@
5
5
  :disabled="attrs.readonly || attrs.disabled">
6
6
  <van-checkbox :name="option.value" v-for="option in selectOptions" :key="option.value" shape="square">{{
7
7
  option.label
8
- }}</van-checkbox>
8
+ }}</van-checkbox>
9
9
  </template>
10
10
  </van-field>
11
11
  </template>
@@ -16,6 +16,7 @@ import baseMixin from './baseMixin.js'
16
16
  import eventsMixin from '../form/form-event-mixin.js'
17
17
 
18
18
  export default {
19
+ name: 'c-app-checkbox',
19
20
  mixins: [baseMixin, eventsMixin],
20
21
  data() {
21
22
  return {
@@ -23,6 +23,7 @@
23
23
  import baseMixin from './baseMixin.js'
24
24
  import eventsMixin from '../form/form-event-mixin.js'
25
25
  export default {
26
+ name: 'c-app-datetime-picker',
26
27
  mixins: [baseMixin, eventsMixin],
27
28
 
28
29
  data() {
@@ -14,6 +14,7 @@
14
14
  import baseMixin from './baseMixin.js'
15
15
  import eventsMixin from '../form/form-event-mixin.js'
16
16
  export default {
17
+ name: 'c-app-datetime-range',
17
18
  mixins: [baseMixin, eventsMixin],
18
19
  data() {
19
20
  return {
@@ -14,7 +14,7 @@ import Vue from 'vue'
14
14
  import { isString } from '@/utils/index'
15
15
  import eventsMixin from '../form/form-event-mixin.js'
16
16
  export default {
17
- name: 'Form',
17
+ name: 'c-app-form',
18
18
  mixins: [eventsMixin],
19
19
  provide() { // Vue 2 中 provide 是函数
20
20
  return {
@@ -14,6 +14,7 @@
14
14
  <script>
15
15
  import { mapState } from 'vuex'
16
16
  export default {
17
+ name: 'c-app-form-item',
17
18
  inject: ['formData', 'updateFormData'], // 接收 Form 实例
18
19
  props: {
19
20
  conf: {
@@ -8,6 +8,7 @@ import baseMixin from './baseMixin.js'
8
8
  import eventsMixin from '../form/form-event-mixin.js'
9
9
 
10
10
  export default {
11
+ name: 'c-app-input',
11
12
  mixins: [baseMixin, eventsMixin],
12
13
  computed: {
13
14
  filterAttrs() {
@@ -6,6 +6,7 @@
6
6
  import baseMixin from './baseMixin.js'
7
7
  import eventsMixin from '../form/form-event-mixin.js'
8
8
  export default {
9
+ name: 'c-app-input-hidden',
9
10
  mixins: [baseMixin, eventsMixin],
10
11
  methods: {
11
12
  handleChange(e) {
@@ -21,6 +21,7 @@ import baseMixin from './dynamicMixin'
21
21
  import eventsMixin from '../form/form-event-mixin.js'
22
22
  import { listToTree } from '@/utils/index.js'
23
23
  export default {
24
+ name: 'c-app-input-tree',
24
25
  mixins: [baseMixin, eventsMixin],
25
26
  data() {
26
27
  return {
@@ -11,6 +11,7 @@
11
11
 
12
12
  <script>
13
13
  export default {
14
+ name: 'c-app-block',
14
15
  props: {
15
16
  mode: {
16
17
  type: String,
@@ -15,6 +15,7 @@ import baseMixin from './dynamicMixin'
15
15
  import eventsMixin from '../form/form-event-mixin.js'
16
16
  import apiPopup from './apiPopup.vue';
17
17
  export default {
18
+ name: 'c-app-search-api',
18
19
  mixins: [baseMixin, eventsMixin],
19
20
  data() {
20
21
  return {
@@ -18,6 +18,7 @@
18
18
  import baseMixin from './baseMixin.js'
19
19
  import eventsMixin from '../form/form-event-mixin.js'
20
20
  export default {
21
+ name: 'c-app-search-select',
21
22
  mixins: [baseMixin, eventsMixin],
22
23
  data() {
23
24
  return {
@@ -18,6 +18,7 @@
18
18
 
19
19
  <script>
20
20
  export default {
21
+ name: 'c-app-sub-row',
21
22
  props: {
22
23
  mode: {
23
24
  type: String,
@@ -20,6 +20,7 @@
20
20
 
21
21
  <script>
22
22
  export default {
23
+ name: 'c-app-sub-title',
23
24
  props: {
24
25
  mode: {
25
26
  type: String,
@@ -55,6 +55,7 @@ import TablePro from './TablePro.vue'
55
55
  import render from '@/utils/generator/render.js'
56
56
  import apiPopup from './apiPopup.vue';
57
57
  export default {
58
+ name: 'c-app-table',
58
59
  mixins: [baseMixin, eventsMixin],
59
60
  components: {
60
61
  render,
@@ -33,6 +33,7 @@
33
33
  import eventsMixin from '../form/form-event-mixin.js'
34
34
  import baseMixin from './dynamicMixin.js'
35
35
  export default {
36
+ name: 'c-app-text-box',
36
37
  mixins: [baseMixin, eventsMixin],
37
38
  data() {
38
39
  return {
@@ -20,7 +20,7 @@
20
20
  </van-popup>
21
21
  </template>
22
22
  <script>
23
- import { getData } from '@/api/form.js'
23
+ import { getData } from '@/api/app-form.js'
24
24
  import TablePro from './TablePro.vue'
25
25
  export default {
26
26
  props: {
@@ -19,6 +19,7 @@ import eventsMixin from '../form/form-event-mixin.js'
19
19
  import { base64ToFile } from '@/utils/index.js'
20
20
 
21
21
  export default {
22
+ name: 'c-app-input-upload',
22
23
  props: {
23
24
  conf: {
24
25
  type: Object,
@@ -39,6 +39,7 @@ import baseMixin from './baseMixin.js'
39
39
  import eventsMixin from '../form/form-event-mixin.js'
40
40
 
41
41
  export default {
42
+ name: 'c-app-select',
42
43
  mixins: [baseMixin, eventsMixin],
43
44
  data() {
44
45
  return {
@@ -28,6 +28,7 @@ import baseMixin from './baseMixin.js'
28
28
  import eventsMixin from './form-event-mixin.js'
29
29
 
30
30
  export default {
31
+ name: 'c-app-radio',
31
32
  mixins: [baseMixin, eventsMixin],
32
33
  data() {
33
34
  return {
@@ -91,7 +91,7 @@ export const baseOptions = {
91
91
  },
92
92
  subRow: {
93
93
  tag: 'c-sub-row',
94
- appTag: 'c-app-collapse',
94
+ appTag: 'c-app-sub-row',
95
95
  tagIcon: 'zhediemianban',
96
96
  },
97
97
  textBox: {
@@ -26,6 +26,7 @@ import AppFormItem from './AppFormItem.vue'
26
26
  import { getFormData, getFormInitData, getViewData } from '@/api/app-form'
27
27
  import { findFirstNodeByNameAndSjbName } from '@/utils/index'
28
28
  export default {
29
+ name: 'AppFormView',
29
30
  components: {
30
31
  AppFormItem
31
32
  },