数通互联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
24 KiB

import{a1 as f,d as y,I as v,N as k,a as _,c as q,b as s,x as p,l as t,w as r,ai as c,m as o}from"./index-ea7eee8a.js";const w=""+new URL("use-form4-3c4c3b8a.png",import.meta.url).href,b=""+new URL("use-form3-566535e7.png",import.meta.url).href,x=""+new URL("use-form1-08d01fcf.png",import.meta.url).href,R=""+new URL("use-form2-c95c310f.png",import.meta.url).href,d=y({components:{},setup(u){const l=[],a=v({});return{toggleCode:n=>{const e="vdpv_"+n;a[e+"Height"]===0?a[e+"Height"]=(l[n].value?l[n].value.offsetHeight:0)||0:a[e+"Height"]=0},...k(a)}}});d.$vd={matter:{},toc:[{content:"表单设计",anchor:"表单设计",level:1},{content:"基础字段",anchor:"基础字段",level:2},{content:"高级字段",anchor:"高级字段",level:2},{content:"布局字段",anchor:"布局字段",level:2},{content:"使用模板",anchor:"使用模板",level:2},{content:"预览",anchor:"预览",level:2},{content:"生成脚本预览",anchor:"生成脚本预览",level:2},{content:"导出vue文件",anchor:"导出vue文件",level:2},{content:"保存",anchor:"保存",level:2},{content:"字段配置",anchor:"字段配置",level:2},{content:"通用属性",anchor:"通用属性",level:3},{content:"选项配置",anchor:"选项配置",level:3},{content:"校验设置",anchor:"校验设置",level:3},{content:"其他属性",anchor:"其他属性",level:3},{content:"表单配置",anchor:"表单配置",level:2},{content:"接口数据事件",anchor:"接口数据事件",level:3},{content:"全局方法",anchor:"全局方法",level:3}]};const I=d,N={class:"vuedoc"},A=c(`<h1 id="表单设计" data-source-line="1"><a class="markdownIt-Anchor" href="#表单设计">#</a> 表单设计</h1><h2 id="基础字段" data-source-line="3"><a class="markdownIt-Anchor" href="#基础字段">#</a> 基础字段</h2><p data-source-line="5">表单设计基本常用组件,直接拖动设计区域,设置好相应的属性配置即可,各组件使用见系统管理各栏目</p><p data-source-line="7"><strong>•树形控件</strong></p><p data-source-line="9">使用方法详见<a href="/#/design/dataSource">系统管理部门管理</a> 新增弹窗</p><h2 id="高级字段" data-source-line="11"><a class="markdownIt-Anchor" href="#高级字段">#</a> 高级字段</h2><p data-source-line="13"><strong>•子表:</strong></p><p data-source-line="15">使用方法详见<a href="/#/design/dataSource">新增表单数据源</a></p><p data-source-line="17"><strong>•自定义组件</strong></p><p data-source-line="19">自定义组件需全局注册,<code>导出vue文件</code>使用可使用当前页面导入的。组件需要v-model才级实现更新</p><p data-source-line="21">引入当前页面组件时建议使用markRaw,如:</p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code><span class="hljs-comment">// import component from &#39;xxx.vue&#39;</span>
<span class="hljs-attr">config</span>: {
<span class="hljs-attr">componentName</span>: markRaw(component)
}
</code></pre><p data-source-line="30">使</p><p data-source-line="32"><a href="/#/design/dataList/list"></a> </p><p data-source-line="34"><a href="/#/system/role">-</a> </p><p data-source-line="36"><img src="`+w+'" alt=""></p><h2 id="" data-source-line="38"><a class="markdownIt-Anchor" href="#">#</a> </h2><p data-source-line="40"><strong></strong></p><p data-source-line="42">使<a href="/#/system/dict"></a></p><p data-source-line="44"><img src="'+b+`" alt=""></p><h2 id="使" data-source-line="46"><a class="markdownIt-Anchor" href="#使">#</a> 使</h2><p data-source-line="48">使</p><p data-source-line="50"><strong></strong></p><p data-source-line="52">src/views/design/form/templatetsjson/javascript</p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code><span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> imgPath = <span class="hljs-string">&#39;demo.png&#39;</span> <span class="hljs-comment">// </span>
<span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> title = <span class="hljs-string">&#39;&#39;</span> <span class="hljs-comment">// </span>
<span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> formData = {} <span class="hljs-comment">// </span>
</code></pre><h2 id="" data-source-line="60"><a class="markdownIt-Anchor" href="#">#</a> </h2><p data-source-line="62"></p><h2 id="" data-source-line="64"><a class="markdownIt-Anchor" href="#">#</a> </h2><p data-source-line="66"></p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-text hljs--one-dark"><code>{
list:[
type:&#39;input&#39;,
control:{
// 这里对应的当前组件所有props参数,可见elementUi组件
}
]
}
</code></pre><h2 id="vue" data-source-line="79"><a class="markdownIt-Anchor" href="#vue">#</a> vue</h2><p data-source-line="81">vue使</p><h2 id="" data-source-line="83"><a class="markdownIt-Anchor" href="#">#</a> </h2><p data-source-line="85"><code>vue</code>使</p><h2 id="" data-source-line="87"><a class="markdownIt-Anchor" href="#">#</a> </h2><h3 id="" data-source-line="89"><a class="markdownIt-Anchor" href="#">#</a> </h3><p data-source-line="91"><strong></strong></p><p data-source-line="93">namename{name:xx}get[formName]ControlByName(name) name</p><p data-source-line="96"><strong></strong></p><p data-source-line="98">label</p><p data-source-line="100"><strong>Input/</strong></p><p data-source-line="102">selectinput使</p><p data-source-line="104">1.select =&gt; Input/true =&gt; </p><p data-source-line="106"><img src="`+x+'" alt=""></p><p data-source-line="108">2.<code>key:</code></p><p data-source-line="110"><img src="'+R+'" alt=""></p><p data-source-line="112"><strong></strong></p>',50),U={"data-source-line":"114"},C={class:"katex"},B={class:"katex-mathml"},L=s("span",{class:"katex-html","aria-hidden":"true"},[s("span",{class:"strut",style:{height:"0em"}}),s("span",{class:"strut bottom",style:{height:"0em","vertical-align":"0em"}}),s("span",{class:"base"})],-1),V=c(`<pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-text hljs--one-dark"><code>$.sex===1&amp;&amp;$.age&gt;20
</code></pre><h3 id="" data-source-line="121"><a class="markdownIt-Anchor" href="#">#</a> </h3><p data-source-line="123"><strong>1.</strong></p><p data-source-line="125"><code></code></p><p data-source-line="127"><strong>2.</strong></p><p data-source-line="129">URLURLapikey</p><p data-source-line="131"><strong>label/value</strong></p><p data-source-line="133">label/value:</p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code><span class="hljs-comment">// name/idlabel=&quot;name&quot;,value=&quot;id&quot;</span>
<span class="hljs-keyword">const</span> result =[{<span class="hljs-attr">name</span>:<span class="hljs-string">&#39;name&#39;</span>,<span class="hljs-attr">id</span>:<span class="hljs-string">&#39;1&#39;</span>}]
<span class="hljs-comment">// 转换后的数据</span>
<span class="hljs-keyword">const</span> format =[{<span class="hljs-attr">label</span>:<span class="hljs-string">&#39;name&#39;</span>,<span class="hljs-attr">value</span>:<span class="hljs-string">&#39;1&#39;</span>}]
</code></pre><p data-source-line="141"><code>afterResponse</code></p><p data-source-line="143"><strong>value</strong></p><p data-source-line="145">valuestringnumber</p><p data-source-line="148"><code>beforeRequest</code>使<code>afterResponse</code>return<code>beforeRequest</code> <code>afterResponse</code></p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code><span class="hljs-comment">// beforeRequest</span>
opt = <span class="hljs-function">(<span class="hljs-params">data, route, form</span>) =&gt;</span> {
<span class="hljs-comment">// data表求的数据 route 页面路由信息 form当前表单值</span>
<span class="hljs-keyword">return</span> data
}
</code></pre><p data-source-line="159">URL optionsFun/api?id=\${key}keyname=key</p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code>[
{
<span class="hljs-attr">type</span>: <span class="hljs-string">&quot;select&quot;</span>,
<span class="hljs-attr">control</span>:
{
<span class="hljs-attr">modelValue</span>: <span class="hljs-string">&quot;&quot;</span>,
<span class="hljs-attr">appendToBody</span>: <span class="hljs-literal">true</span>
},
<span class="hljs-attr">options</span>: [],
<span class="hljs-attr">config</span>:
{
<span class="hljs-attr">optionsType</span>: <span class="hljs-number">0</span>
},
<span class="hljs-attr">name</span>: <span class="hljs-string">&quot;province&quot;</span>,
<span class="hljs-attr">item</span>:
{
<span class="hljs-attr">label</span>: <span class="hljs-string">&quot;&quot;</span>
}
},
{
<span class="hljs-attr">type</span>: <span class="hljs-string">&quot;select&quot;</span>,
<span class="hljs-attr">control</span>:
{
<span class="hljs-attr">modelValue</span>: <span class="hljs-string">&quot;&quot;</span>,
<span class="hljs-attr">appendToBody</span>: <span class="hljs-literal">true</span>
},
<span class="hljs-attr">options</span>: [],
<span class="hljs-attr">config</span>:
{
<span class="hljs-attr">optionsType</span>: <span class="hljs-number">1</span>,
<span class="hljs-attr">optionsFun</span>: <span class="hljs-string">&quot;/api/getCity?id=\${province}&quot;</span>, <span class="hljs-comment">// province[{label:&#39;x&#39;,value:&#39;xx&#39;}]</span>
<span class="hljs-attr">method</span>: <span class="hljs-string">&quot;get&quot;</span>
},
<span class="hljs-attr">name</span>: <span class="hljs-string">&quot;city&quot;</span>,
<span class="hljs-attr">item</span>:
{
<span class="hljs-attr">label</span>: <span class="hljs-string">&quot;&quot;</span>
}
}]
</code></pre><p data-source-line="203">使<a href="/#/design/dataList/list"></a></p><p data-source-line="205"><strong>3.</strong></p><p data-source-line="207"><code>vue</code>使<a href="/#/docs/form">setOptions</a></p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code>provide(<span class="hljs-string">&#39;methodsName&#39;</span>, {<span class="hljs-attr">label</span>: <span class="hljs-string">&#39;x&#39;</span>, <span class="hljs-attr">value</span>: <span class="hljs-string">&#39;xx&#39;</span>})
</code></pre><p data-source-line="213"><strong>4.</strong></p><p data-source-line="215">URL怀<code>-</code></p><h3 id="" data-source-line="217"><a class="markdownIt-Anchor" href="#">#</a> </h3><p data-source-line="219"><strong>1.</strong></p><p data-source-line="221">1.便</p><p data-source-line="223">2.</p><p data-source-line="225">3.<code>vue</code>myFn:</p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code>provide(<span class="hljs-string">&quot;myFn&quot;</span>, <span class="hljs-function">(<span class="hljs-params">rule, value, callback</span>) =&gt;</span> {
<span class="hljs-keyword">if</span> (value === <span class="hljs-string">&#39;&#39;</span>) {
callback(<span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">&#39;Please input the password again&#39;</span>))
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (value !== <span class="hljs-string">&#39;abc&#39;</span>) {
callback(<span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">&quot;Two inputs don&#39;t match!&quot;</span>))
} <span class="hljs-keyword">else</span> {
callback()
}
})
</code></pre><p data-source-line="239">4../design/form/components/validate.ts</p><p data-source-line="241"><strong>2.</strong> UI</p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code>opt = [
{<span class="hljs-attr">required</span>: <span class="hljs-literal">true</span>, <span class="hljs-attr">message</span>: <span class="hljs-string">&#39;age is required&#39;</span>},
{<span class="hljs-attr">type</span>: <span class="hljs-string">&#39;number&#39;</span>, <span class="hljs-attr">message</span>: <span class="hljs-string">&#39;age must be a number&#39;</span>}
]
</code></pre><p data-source-line="251">*inputselectcheckbox</p><h3 id="" data-source-line="253"><a class="markdownIt-Anchor" href="#">#</a> </h3><p data-source-line="255">proppropUIprop</p><h2 id="" data-source-line="257"><a class="markdownIt-Anchor" href="#">#</a> </h2><p data-source-line="259"><strong></strong></p><p data-source-line="261"><strong></strong></p><p data-source-line="263"></p><p data-source-line="265">mysqlurlurl <a href="/#/docs/use-dataSource">使</a></p><p data-source-line="267"><strong></strong></p><p data-source-line="269">get[formName]ControlByNameget[formName]ValueByNameformName使</p><p data-source-line="271"><strong></strong></p><p data-source-line="273">FormItemlabel-width</p><p data-source-line="275"><strong></strong></p><p data-source-line="277">css</p><p data-source-line="279"><strong></strong></p><p data-source-line="281">url</p><p data-source-line="283"><strong></strong></p><p data-source-line="285">headstyle.vuestyle scopedcss</p><p data-source-line="287"><strong></strong></p><p data-source-line="289">checkbox <code></code> key</p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-json hljs--one-dark"><code>{
<span class="hljs-attr">&quot;sex&quot;</span>: {
<span class="hljs-attr">&quot;0&quot;</span>: <span class="hljs-string">&quot;&quot;</span>,
<span class="hljs-attr">&quot;1&quot;</span>: <span class="hljs-string">&quot;&quot;</span>
},
<span class="hljs-attr">&quot;status&quot;</span>: {
<span class="hljs-attr">&quot;1&quot;</span>: <span class="hljs-string">&quot;&quot;</span>,
<span class="hljs-attr">&quot;0&quot;</span>: <span class="hljs-string">&quot;&quot;</span>
}
}
</code></pre><h3 id="" data-source-line="304"><a class="markdownIt-Anchor" href="#">#</a> </h3><p data-source-line="306"><strong>1.url</strong></p><p data-source-line="308">url<code>vue</code>使props.addUrl<strong></strong></p><p data-source-line="310"><strong>2.url</strong></p><p data-source-line="312">urlprops.editUrl</p><p data-source-line="314"><strong>3.url</strong></p><p data-source-line="316">urlprops.requestUrl</p><p data-source-line="318"><strong>4.beforeRequest</strong></p><p data-source-line="320">props.beforeRequest</p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code><span class="hljs-keyword">const</span> beforeRequest = <span class="hljs-function">(<span class="hljs-params">params, route</span>) =&gt;</span> {
<span class="hljs-comment">// 此处可对请求参数params进行修改处理后返回,route为当前路由信息</span>
<span class="hljs-comment">// 如当路由参数name为true时,添加id参数</span>
<span class="hljs-keyword">if</span> (route.query.name) {
params.id = route.query.name
}
<span class="hljs-keyword">return</span> params <span class="hljs-comment">// return false时将发不请求</span>
}
</code></pre><p data-source-line="333"><strong>5.afterResponse</strong></p><p data-source-line="335">props.afterResponse<code>requestUrl</code></p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code><span class="hljs-keyword">const</span> afterResponse = <span class="hljs-function">(<span class="hljs-params">result</span>) =&gt;</span> {
<span class="hljs-comment">// 这里是处理逻辑</span>
<span class="hljs-keyword">return</span> result <span class="hljs-comment">// return false时不处理请求结果</span>
}
</code></pre><p data-source-line="344">线<code>afterResponse</code>key<code>/utils/formatResult</code></p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code><span class="hljs-comment">// const afterResponse = &#39;formatTest&#39;</span>
<span class="hljs-keyword">const</span> formatResult = <span class="hljs-function">(<span class="hljs-params">res: any, key: string</span>) =&gt;</span> {
<span class="hljs-comment">// key即为formatTest,可根据设置的key设置不同的处理方法</span>
<span class="hljs-keyword">return</span> res
}
</code></pre><p data-source-line="354">使</p><p data-source-line="356"><strong>6.beforeSubmit</strong></p><p data-source-line="358">props.beforeSubmitbeforeRequest</p><p data-source-line="360"><strong>7.afterSubmit</strong></p><p data-source-line="362">props.afterSubmitafterResponse</p><p data-source-line="364"><strong>8.change:</strong></p><p data-source-line="366">props.change<code>/utils/formChangeValue</code></p><pre style="display:none;"></pre><pre class="hljs vuedoc__hljs language-javascript hljs--one-dark"><code>opt=<span class="hljs-function">(<span class="hljs-params">key,model</span>) =&gt;</span> {
<span class="hljs-comment">// name当前改变组件的值,model表单的值</span>
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">&#39;onChange&#39;</span>,key)
<span class="hljs-keyword">return</span> model
}
</code></pre><h3 id="" data-source-line="376"><a class="markdownIt-Anchor" href="#">#</a> </h3><p data-source-line="378"><strong>get[formName]ControlByName</strong></p><p data-source-line="380">formName -使</p><p data-source-line="382">nameformData(name:string)</p><p data-source-line="384"><strong>get[formName]ValueByName</strong></p><p data-source-line="386">name</p><p data-source-line="388"><a href="/#/system/user">-</a></p>`,94);function $(u,l,a,i,n,e){const h=o("mrow"),m=o("annotation"),g=o("semantics"),j=o("math");return _(),q("div",N,[A,s("p",U,[p("使&&||//"),s("span",C,[s("span",B,[t(j,null,{default:r(()=>[t(g,null,{default:r(()=>[t(h),t(m,{encoding:"application/x-tex"})]),_:1})]),_:1})]),L]),p(" name=sexname=agesex1age20")]),V])}const T=f(I,[["render",$]]);export{T as default};