ImportJsonModal-d82e869f.js 2.94 KB
var y=Object.defineProperty,E=Object.defineProperties;var I=Object.getOwnPropertyDescriptors;var _=Object.getOwnPropertySymbols;var M=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;var h=(e,o,a)=>o in e?y(e,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[o]=a,c=(e,o)=>{for(var a in o||(o={}))M.call(o,a)&&h(e,a,o[a]);if(_)for(var a of _(o))g.call(o,a)&&h(e,a,o[a]);return e},i=(e,o)=>E(e,I(o));import{d as J,r as D,H as F,a8 as r,_ as S,a9 as U,aa as n,f as l,E as u,a0 as C,a3 as j,a4 as w}from"./vue-5a35c3f5.js";import{a as O}from"./useFormDesignState-032955db.js";import{a as k,g as B}from"./index-15077a33.js";import{C as N,M as x}from"./index-8fd1420c.js";import{a as V,_ as $}from"./index.js";import{aS as T,O as A}from"./antd-6b087f69.js";import"./useWindowSizeFn-cc2fb57c.js";const K=J({name:"ImportJsonModal",components:{CodeEditor:N,Upload:T,Modal:A},setup(){const{createMessage:e}=V(),o=D({visible:!1,json:`{
  "schemas": [
    {
      "component": "input",
      "label": "输入框",
      "field": "input_2",
      "span": 24,
      "props": {
        "type": "text"
      }
    }
  ],
  "layout": "horizontal",
  "labelLayout": "flex",
  "labelWidth": 100,
  "labelCol": {},
  "wrapperCol": {}
}`,jsonData:{schemas:{},config:{}},handleSetSelectItem:null}),{formDesignMethods:a}=O(),d=()=>{o.visible=!1},m=()=>{o.visible=!0},p=()=>{try{const s=JSON.parse(o.json);s.schemas&&k(s.schemas,t=>{B(t)}),a.setFormConfig(i(c({},s),{activeKey:1,currentItem:{component:""}})),d(),e.success("导入成功")}catch(s){e.error("导入失败,数据格式不对")}};return i(c({handleImportJson:p,beforeUpload:s=>{const t=new FileReader;return t.readAsText(s),t.onload=function(){o.json=this.result,p()},!1},handleCancel:d,showModal:m},F(o)),{MODE:x})}});const L=e=>(j("data-v-2c67b1e9"),e=e(),w(),e),R=L(()=>C("p",{class:"hint-box"},"导入格式如下:",-1)),z={class:"v-json-box"};function H(e,o,a,d,m,p){const f=r("CodeEditor"),s=r("a-button"),t=r("Upload"),b=r("Modal");return S(),U(b,{title:"JSON数据",visible:e.visible,onOk:e.handleImportJson,onCancel:e.handleCancel,cancelText:"关闭",destroyOnClose:!0,wrapClassName:"v-code-modal",style:{top:"20px"},width:850},{footer:n(()=>[l(s,{onClick:e.handleCancel},{default:n(()=>[u("取消")]),_:1},8,["onClick"]),l(t,{class:"upload-button",beforeUpload:e.beforeUpload,showUploadList:!1,accept:"application/json"},{default:n(()=>[l(s,{type:"primary"},{default:n(()=>[u("导入json文件")]),_:1})]),_:1},8,["beforeUpload"]),l(s,{type:"primary",onClick:e.handleImportJson},{default:n(()=>[u("确定")]),_:1},8,["onClick"])]),default:n(()=>[R,C("div",z,[l(f,{value:e.json,"onUpdate:value":o[0]||(o[0]=v=>e.json=v),ref:"myEditor",mode:e.MODE.JSON},null,8,["value","mode"])])]),_:1},8,["visible","onOk","onCancel"])}const ee=$(K,[["render",H],["__scopeId","data-v-2c67b1e9"],["__file","E:/allcode/erp/test7901/order-erp-front/src/views/form-design/components/VFormDesign/components/ImportJsonModal.vue"]]);export{ee as default};