no message

This commit is contained in:
小陌 2024-01-30 23:24:43 +08:00
parent 58c8f4f633
commit 075ecae03c
23 changed files with 361 additions and 332 deletions

2
dist/index.html vendored
View File

@ -1,4 +1,4 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/><meta content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0" name="viewport"/><link rel="icon" href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/favicon.ico"><title>X-PHP</title><script>document.write("<script src='config.js'><\/script>");</script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/echarts.49558cc4.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/elicons.4bccae06.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/modules.af2834df.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/app.9e64d7b4.js"></script><link href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/css/modules.34563575.css" rel="stylesheet"><link href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/css/app.8a627c74.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but X-PHP doesn't work properly without JavaScript enabled.</strong></noscript><div id="app" class="adminui"><div class="app-loading"><div class="app-loading__logo"><img src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/logo.png"/></div><div class="app-loading-text"><span class="app-loading-preloader">X</span> <span class="app-loading-preloader">-</span> <span class="app-loading-preloader">A</span> <span class="app-loading-preloader">d</span> <span class="app-loading-preloader">m</span> <span class="app-loading-preloader">i</span> <span class="app-loading-preloader">n</span><div class="app-loading-viewtext-container"><span class="app-loading-viewtext">X</span> <span class="app-loading-viewtext">-</span> <span class="app-loading-viewtext">A</span> <span class="app-loading-viewtext">d</span> <span class="app-loading-viewtext">m</span> <span class="app-loading-viewtext">i</span> <span class="app-loading-viewtext">n</span></div></div></div></div></body><div id="versionCheck" class="versionCheck"><h2>当前浏览器内核版本过低</h2><p>当前版本:<span id="versionCheck-type">--</span> <span id="versionCheck-version">--</span></p><p>最低版本要求Chrome 71+、Firefox 65+、Safari 12+、Edge 97+。</p><p>请升级浏览器版本,或更换现代浏览器,如果你使用的是双核浏览器,请切换到极速/高速模式。</p></div><style>html,
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/><meta content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0" name="viewport"/><link rel="icon" href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/favicon.ico"><title>X-PHP</title><script>document.write("<script src='config.js'><\/script>");</script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/echarts.49558cc4.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/elicons.4bccae06.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/modules.af2834df.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/app.d9acf3ba.js"></script><link href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/css/modules.34563575.css" rel="stylesheet"><link href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/css/app.cac8c39f.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but X-PHP doesn't work properly without JavaScript enabled.</strong></noscript><div id="app" class="adminui"><div class="app-loading"><div class="app-loading__logo"><img src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/logo.png"/></div><div class="app-loading-text"><span class="app-loading-preloader">X</span> <span class="app-loading-preloader">-</span> <span class="app-loading-preloader">A</span> <span class="app-loading-preloader">d</span> <span class="app-loading-preloader">m</span> <span class="app-loading-preloader">i</span> <span class="app-loading-preloader">n</span><div class="app-loading-viewtext-container"><span class="app-loading-viewtext">X</span> <span class="app-loading-viewtext">-</span> <span class="app-loading-viewtext">A</span> <span class="app-loading-viewtext">d</span> <span class="app-loading-viewtext">m</span> <span class="app-loading-viewtext">i</span> <span class="app-loading-viewtext">n</span></div></div></div></div></body><div id="versionCheck" class="versionCheck"><h2>当前浏览器内核版本过低</h2><p>当前版本:<span id="versionCheck-type">--</span> <span id="versionCheck-version">--</span></p><p>最低版本要求Chrome 71+、Firefox 65+、Safari 12+、Edge 97+。</p><p>请升级浏览器版本,或更换现代浏览器,如果你使用的是双核浏览器,请切换到极速/高速模式。</p></div><style>html,
body,
#app {
transition-property: filter;

4
dist/report.html vendored

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.setting[data-v-6bfa3f9c]{height:100%}.setting[data-v-6bfa3f9c] .el-tabs--left .el-tabs__nav.is-left{width:100%}.setting[data-v-6bfa3f9c] .el-card__body{height:100%;padding:0}.x-page-header[data-v-6bfa3f9c]{padding:10px 25px}.setting[data-v-6bfa3f9c] .el-tabs__item.is-active{background-color:var(--el-menu-background)}.setting[data-v-6bfa3f9c] .el-tabs--left{height:calc(100% - 78px)}.setting[data-v-6bfa3f9c] .el-tabs__content{padding:20px;overflow-y:scroll;height:100%}.setting[data-v-6bfa3f9c] .el-tabs{--el-tabs-header-height:50px}.setting[data-v-6bfa3f9c] .el-tabs--left .el-tabs__header.is-left{margin:0;min-width:120px}.el-footer[data-v-6bfa3f9c]{padding:10px;height:51px;margin:0;text-align:center}.setting[data-v-6bfa3f9c] .el-tabs--top .el-tabs__item{padding:0 20px}

1
dist/static/css/444.55741c84.css vendored Normal file
View File

@ -0,0 +1 @@
.setting[data-v-c77bcd06]{height:100%}.setting[data-v-c77bcd06] .el-tabs--left .el-tabs__nav.is-left{width:100%}.setting[data-v-c77bcd06] .el-card__body{height:100%;padding:0}.x-page-header[data-v-c77bcd06]{padding:10px 25px}.setting[data-v-c77bcd06] .el-tabs__item.is-active{background-color:var(--el-menu-background)}.setting[data-v-c77bcd06] .el-tabs--left{height:calc(100% - 78px)}.setting[data-v-c77bcd06] .el-tabs__content{padding:20px;overflow-y:scroll;height:100%}.setting[data-v-c77bcd06] .el-tabs{--el-tabs-header-height:50px}.setting[data-v-c77bcd06] .el-tabs--left .el-tabs__header.is-left{margin:0;min-width:120px}.el-footer[data-v-c77bcd06]{padding:10px;height:51px;margin:0;text-align:center}.setting[data-v-c77bcd06] .el-tabs--top .el-tabs__item{padding:0 20px}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
"use strict";(self["webpackChunkx_php_admin"]=self["webpackChunkx_php_admin"]||[]).push([[251],{251:function(e,t,a){a.r(t),a.d(t,{default:function(){return m}});var r=a(6808),l=a(9511);const n={class:"left-panel"},i={class:"right-panel"},s={class:"right-panel-search"};function c(e,t,a,c,o,u){const h=(0,r.up)("el-date-picker"),p=(0,r.up)("el-input"),d=(0,r.up)("el-button"),m=(0,r.up)("el-header"),g=(0,r.up)("el-table-column"),f=(0,r.up)("xTable"),w=(0,r.up)("el-main"),b=(0,r.up)("el-container");return(0,r.wg)(),(0,r.j4)(b,{class:"container"},{default:(0,r.w5)((()=>[(0,r.Wm)(m,null,{default:(0,r.w5)((()=>[(0,r._)("div",n,[(0,r.Wm)(h,{modelValue:o.date,"onUpdate:modelValue":t[0]||(t[0]=e=>o.date=e),type:"datetimerange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},null,8,["modelValue"])]),(0,r._)("div",i,[(0,r._)("div",s,[(0,r.Wm)(p,{modelValue:o.search.keyword,"onUpdate:modelValue":t[1]||(t[1]=e=>o.search.keyword=e),placeholder:"输入关键词",clearable:""},null,8,["modelValue"]),(0,r.Wm)(d,{type:"primary",icon:"el-icon-search",onClick:u.upsearch},null,8,["onClick"])])])])),_:1}),(0,r.Wm)(w,{class:"nopadding"},{default:(0,r.w5)((()=>[(0,r.Wm)(f,{ref:"table",api:o.api,params:o.search,tableColumn:o.tableColumn,stripe:"",highlightCurrentRow:"",onRowClick:u.rowClick},{default:(0,r.w5)((()=>[(0,r.Wm)(g,{type:"index",width:"60",align:"center"},{default:(0,r.w5)((e=>[(0,r._)("span",null,(0,l.zw)(e.$index+(o.currentPage-1)*o.limit+1),1)])),_:1})])),_:1},8,["api","params","tableColumn","onRowClick"])])),_:1})])),_:1})}var o=a(7062),u=a(1843),h={name:"log",components:{columnItem:o.Z,xMenuItem:u.Z},data(){return{infoDrawer:!1,chartoption:{},typeList:[],date:[],data:[],search:{},api:"",current:"",config:{},tableColumn:{},column:"default",currentPage:1,limit:20}},mounted(){this.getType()},watch:{current(){this.search.type=this.current,this.getCurrent()}},methods:{sideClick(e){this.info=e,this.search.type=e.value,this.current=e.value,this.column=e.column||"column"},changeURLArg(e,t,a){var r=t+"=([^&]*)";if(""===a)return e=e.replace(new RegExp("&?"+r,"gi"),""),e=e.replace(new RegExp("\\??"+r+"&?","gi"),"?"),e;var l=t+"="+a;if(e.match(r)){var n="("+t+"=)([^&]*)";return n=e.replace(new RegExp(n,"gi"),l),n}return e.match("[?]")?e+"&"+l:e+"?"+l},nodeClick(e){if(e.disabled)return!1;this.current=e.label,this.column=e.column||"column"},getType(){this.$http.get("log/admin/types",{type:this.$route.query.type},{cacheparameters:!0}).then((e=>{if(200==e.code){Object.assign(this.$data,e.data);for(const e in this.search)Object.prototype.hasOwnProperty.call(this.$route.query,e)&&(this.search[e]=this.$route.query[e])}}))},getCurrent(){this.tableColumn=this.config[this.column]||this.config.default,this.api||(this.api="log/admin/lists"),this.$refs.table.reload(this.search);let e=window.location.href;for(const[t,a]of Object.entries(this.search))e=this.changeURLArg(e,t,a);history.replaceState(Object.assign({},window.history.state,{url:e}),"null",e)},upsearch(){this.getCurrent()},rowClick(e){this.infoDrawer=!0,this.$nextTick((()=>{this.$refs.info.setData(e)}))}}},p=a(8700);const d=(0,p.Z)(h,[["render",c],["__scopeId","data-v-eba8b6d4"]]);var m=d}}]);
"use strict";(self["webpackChunkx_php_admin"]=self["webpackChunkx_php_admin"]||[]).push([[251],{251:function(e,t,a){a.r(t),a.d(t,{default:function(){return m}});var r=a(6808),l=a(9511);const n={class:"left-panel"},i={class:"right-panel"},s={class:"right-panel-search"};function c(e,t,a,c,o,u){const h=(0,r.up)("el-date-picker"),p=(0,r.up)("el-input"),d=(0,r.up)("el-button"),m=(0,r.up)("el-header"),g=(0,r.up)("el-table-column"),f=(0,r.up)("xTable"),w=(0,r.up)("el-main"),b=(0,r.up)("el-container");return(0,r.wg)(),(0,r.j4)(b,{class:"container"},{default:(0,r.w5)((()=>[(0,r.Wm)(m,null,{default:(0,r.w5)((()=>[(0,r._)("div",n,[(0,r.Wm)(h,{modelValue:o.date,"onUpdate:modelValue":t[0]||(t[0]=e=>o.date=e),type:"datetimerange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期"},null,8,["modelValue"])]),(0,r._)("div",i,[(0,r._)("div",s,[(0,r.Wm)(p,{modelValue:o.search.keyword,"onUpdate:modelValue":t[1]||(t[1]=e=>o.search.keyword=e),placeholder:"输入关键词",clearable:""},null,8,["modelValue"]),(0,r.Wm)(d,{type:"primary",icon:"el-icon-search",onClick:u.upsearch},null,8,["onClick"])])])])),_:1}),(0,r.Wm)(w,{class:"nopadding"},{default:(0,r.w5)((()=>[(0,r.Wm)(f,{ref:"table",api:o.api,params:o.search,tableColumn:o.tableColumn,stripe:"",highlightCurrentRow:"",onRowClick:u.rowClick},{default:(0,r.w5)((()=>[(0,r.Wm)(g,{type:"index",width:"60",align:"center"},{default:(0,r.w5)((e=>[(0,r._)("span",null,(0,l.zw)(e.$index+(o.currentPage-1)*o.limit+1),1)])),_:1})])),_:1},8,["api","params","tableColumn","onRowClick"])])),_:1})])),_:1})}var o=a(9565),u=a(1843),h={name:"log",components:{columnItem:o.Z,xMenuItem:u.Z},data(){return{infoDrawer:!1,chartoption:{},typeList:[],date:[],data:[],search:{},api:"",current:"",config:{},tableColumn:{},column:"default",currentPage:1,limit:20}},mounted(){this.getType()},watch:{current(){this.search.type=this.current,this.getCurrent()}},methods:{sideClick(e){this.info=e,this.search.type=e.value,this.current=e.value,this.column=e.column||"column"},changeURLArg(e,t,a){var r=t+"=([^&]*)";if(""===a)return e=e.replace(new RegExp("&?"+r,"gi"),""),e=e.replace(new RegExp("\\??"+r+"&?","gi"),"?"),e;var l=t+"="+a;if(e.match(r)){var n="("+t+"=)([^&]*)";return n=e.replace(new RegExp(n,"gi"),l),n}return e.match("[?]")?e+"&"+l:e+"?"+l},nodeClick(e){if(e.disabled)return!1;this.current=e.label,this.column=e.column||"column"},getType(){this.$http.get("log/admin/types",{type:this.$route.query.type},{cacheparameters:!0}).then((e=>{if(200==e.code){Object.assign(this.$data,e.data);for(const e in this.search)Object.prototype.hasOwnProperty.call(this.$route.query,e)&&(this.search[e]=this.$route.query[e])}}))},getCurrent(){this.tableColumn=this.config[this.column]||this.config.default,this.api||(this.api="log/admin/lists"),this.$refs.table.reload(this.search);let e=window.location.href;for(const[t,a]of Object.entries(this.search))e=this.changeURLArg(e,t,a);history.replaceState(Object.assign({},window.history.state,{url:e}),"null",e)},upsearch(){this.getCurrent()},rowClick(e){this.infoDrawer=!0,this.$nextTick((()=>{this.$refs.info.setData(e)}))}}},p=a(8700);const d=(0,p.Z)(h,[["render",c],["__scopeId","data-v-eba8b6d4"]]);var m=d}}]);

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunkx_php_admin"]=self["webpackChunkx_php_admin"]||[]).push([[322],{3322:function(e,t,a){a.r(t),a.d(t,{default:function(){return r}});var l=a(6808);const i={key:0};function n(e,t,a,n,o,d){const s=(0,l.up)("x-page-header"),r=(0,l.up)("el-alert"),u=(0,l.up)("el-option"),p=(0,l.up)("el-select"),m=(0,l.up)("el-input"),c=(0,l.up)("el-table-column"),g=(0,l.up)("x-form-table"),h=(0,l.up)("el-button"),w=(0,l.up)("x-form"),f=(0,l.up)("el-tab-pane"),y=(0,l.up)("el-tabs"),b=(0,l.up)("el-card"),v=(0,l.up)("el-main"),k=(0,l.up)("el-footer"),x=(0,l.up)("el-container"),_=(0,l.Q2)("loading");return(0,l.wg)(),(0,l.j4)(x,null,{default:(0,l.w5)((()=>[(0,l.Wm)(v,null,{default:(0,l.w5)((()=>[(0,l.Wm)(b,{shadow:"never",class:"setting"},{default:(0,l.w5)((()=>[(0,l.Wm)(s,{title:"系统设置",description:"可以修改网站及应用的各种配置",icon:"el-icon-setting"}),(0,l.wy)(((0,l.wg)(),(0,l.j4)(y,{"tab-position":o.tabposition,modelValue:o.activename,"onUpdate:modelValue":t[1]||(t[1]=e=>o.activename=e)},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(o.settingList,(e=>((0,l.wg)(),(0,l.j4)(f,{key:e.key,label:e.name,name:e.key},{default:(0,l.w5)((()=>["extend"==e.type?((0,l.wg)(),(0,l.iD)("div",i,[e.tips?((0,l.wg)(),(0,l.j4)(r,{key:0,title:e.tips,type:"warning",style:{"margin-bottom":"15px"}},null,8,["title"])):(0,l.kq)("",!0),(0,l.Wm)(g,{modelValue:o.extend[e.key],"onUpdate:modelValue":t=>o.extend[e.key]=t,hideAdd:!0,"drag-sort":"",placeholder:"暂无数据"},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.column,(e=>((0,l.wg)(),(0,l.j4)(c,{label:e.label,prop:e.prop,width:e.width,key:e.prop},{default:(0,l.w5)((t=>["select"==e.component?((0,l.wg)(),(0,l.j4)(p,(0,l.dG)({key:0,modelValue:t.row[e.prop],"onUpdate:modelValue":a=>t.row[e.prop]=a},e.options,{clearable:"",filterable:"",style:{width:"100%"}}),{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.options.items,(e=>((0,l.wg)(),(0,l.j4)(u,{key:e.value,label:e.label||e.name,value:e.value},null,8,["label","value"])))),128))])),_:2},1040,["modelValue","onUpdate:modelValue"])):((0,l.wg)(),(0,l.j4)(m,{key:1,modelValue:t.row[e.prop],"onUpdate:modelValue":a=>t.row[e.prop]=a,placeholder:e.placeholder},null,8,["modelValue","onUpdate:modelValue","placeholder"]))])),_:2},1032,["label","prop","width"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"]),(0,l.Wm)(h,{type:"primary",icon:"el-icon-plus",onClick:t=>d.table_add(e),style:{"margin-top":"20px"}},null,8,["onClick"])])):((0,l.wg)(),(0,l.j4)(w,{key:1,ref_for:!0,ref:"formref",config:o.formList[e.key],modelValue:o.info,"onUpdate:modelValue":t[0]||(t[0]=e=>o.info=e),loading:o.loading},null,8,["config","modelValue","loading"]))])),_:2},1032,["label","name"])))),128))])),_:1},8,["tab-position","modelValue"])),[[_,o.loading]])])),_:1})])),_:1}),(0,l.Wm)(k,null,{default:(0,l.w5)((()=>[(0,l.Wm)(h,{type:"primary",onClick:d.submit,style:{"max-width":"500px",width:"100%"},loading:o.submitloading},{default:(0,l.w5)((()=>[(0,l.Uk)("保存")])),_:1},8,["onClick","loading"])])),_:1})])),_:1})}a(8311);var o={name:"setting",data(){return{info:{},activename:"init",tabposition:"left",settingList:[],extend:[],formList:{},loading:!1,submitloading:!1}},watch:{activename(){let e=window.location.href;e=this.changeURLArg(e,"type",this.activename),history.replaceState(Object.assign({},window.history.state,{url:e}),"null",e)}},mounted(){this.render()},created(){this.onLayoutResize(),window.addEventListener("resize",this.onLayoutResize)},methods:{onLayoutResize(){this.tabposition=document.body.clientWidth<992?"top":"left"},changeURLArg(e,t,a){var l=t+"=([^&]*)";if(""===a)return e=e.replace(new RegExp("&?"+l,"gi"),""),e=e.replace(new RegExp("\\??"+l+"&?","gi"),"?"),e;var i=t+"="+a;if(e.match(l)){var n="("+t+"=)([^&]*)";return n=e.replace(new RegExp(n,"gi"),i),n}return e.match("[?]")?e+"&"+i:e+"?"+i},async render(){this.loading=!0;var e=await this.$http.get("setting/get",this.$route.query);if(200!=e.code)return this.$message.warning(e.message),!1;this.settingList=e.data.settingList,this.info=e.data.info,this.formList=e.data.formList,this.extend=e.data.extend||[],this.loading=!1,e.data.activename&&(this.activename=e.data.activename)},async submit(){this.submitloading=!0;var e=this.$http.post("setting/submit",{info:this.info,extend:this.extend});this.submitloading=!1,200!=e.code?this.$alert(e.message,"提示",{type:"error"}):this.$message.success(e.message||"操作成功")},table_add(e){var t={};e.column.forEach((function(e){t[e.prop]=""})),this.extend[e.key].push(t)}}},d=a(8700);const s=(0,d.Z)(o,[["render",n],["__scopeId","data-v-6bfa3f9c"]]);var r=s}}]);

File diff suppressed because one or more lines are too long

1
dist/static/js/444.fe195afe.js vendored Normal file
View File

@ -0,0 +1 @@
"use strict";(self["webpackChunkx_php_admin"]=self["webpackChunkx_php_admin"]||[]).push([[444],{2444:function(e,t,a){a.r(t),a.d(t,{default:function(){return r}});var i=a(6808);const l={key:0};function n(e,t,a,n,o,d){const s=(0,i.up)("x-page-header"),r=(0,i.up)("el-alert"),u=(0,i.up)("el-option"),p=(0,i.up)("el-select"),m=(0,i.up)("el-input"),c=(0,i.up)("el-table-column"),g=(0,i.up)("x-form-table"),h=(0,i.up)("el-button"),w=(0,i.up)("x-form"),f=(0,i.up)("el-tab-pane"),y=(0,i.up)("el-tabs"),b=(0,i.up)("el-card"),k=(0,i.up)("el-main"),v=(0,i.up)("el-footer"),x=(0,i.up)("el-container"),_=(0,i.Q2)("loading");return(0,i.wg)(),(0,i.j4)(x,null,{default:(0,i.w5)((()=>[(0,i.Wm)(k,null,{default:(0,i.w5)((()=>[(0,i.Wm)(b,{shadow:"never",class:"setting"},{default:(0,i.w5)((()=>[(0,i.Wm)(s,{title:"系统设置",description:"可以修改网站及应用的各种配置",icon:"el-icon-setting"}),(0,i.wy)(((0,i.wg)(),(0,i.j4)(y,{"tab-position":o.tabposition,modelValue:o.activename,"onUpdate:modelValue":t[1]||(t[1]=e=>o.activename=e)},{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(o.settingList,(e=>((0,i.wg)(),(0,i.j4)(f,{key:e.key,label:e.name,name:e.key},{default:(0,i.w5)((()=>["extend"==e.type?((0,i.wg)(),(0,i.iD)("div",l,[e.tips?((0,i.wg)(),(0,i.j4)(r,{key:0,title:e.tips,type:"warning",style:{"margin-bottom":"15px"}},null,8,["title"])):(0,i.kq)("",!0),(0,i.Wm)(g,{modelValue:o.extend[e.key],"onUpdate:modelValue":t=>o.extend[e.key]=t,hideAdd:!0,"drag-sort":"",placeholder:"暂无数据"},{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.column,((e,t)=>((0,i.wg)(),(0,i.j4)(c,{label:e.label,prop:e.prop,width:e.width,key:t},{default:(0,i.w5)((t=>["select"==e.component?((0,i.wg)(),(0,i.j4)(p,(0,i.dG)({key:0,modelValue:t.row[e.prop],"onUpdate:modelValue":a=>t.row[e.prop]=a},e.bind,{clearable:"",filterable:"",style:{width:"100%"}}),{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.options,((e,t)=>((0,i.wg)(),(0,i.j4)(u,(0,i.dG)({key:t},e),null,16)))),128))])),_:2},1040,["modelValue","onUpdate:modelValue"])):((0,i.wg)(),(0,i.j4)(m,{key:1,modelValue:t.row[e.prop],"onUpdate:modelValue":a=>t.row[e.prop]=a,placeholder:e.placeholder},null,8,["modelValue","onUpdate:modelValue","placeholder"]))])),_:2},1032,["label","prop","width"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"]),(0,i.Wm)(h,{type:"primary",icon:"el-icon-plus",onClick:t=>d.table_add(e),style:{"margin-top":"20px"}},null,8,["onClick"])])):((0,i.wg)(),(0,i.j4)(w,{key:1,ref_for:!0,ref:"formref",config:o.formList[e.key],modelValue:o.info,"onUpdate:modelValue":t[0]||(t[0]=e=>o.info=e),loading:o.loading},null,8,["config","modelValue","loading"]))])),_:2},1032,["label","name"])))),128))])),_:1},8,["tab-position","modelValue"])),[[_,o.loading]])])),_:1})])),_:1}),(0,i.Wm)(v,null,{default:(0,i.w5)((()=>[(0,i.Wm)(h,{type:"primary",onClick:d.submit,style:{"max-width":"500px",width:"100%"},loading:o.submitloading},{default:(0,i.w5)((()=>[(0,i.Uk)("保存")])),_:1},8,["onClick","loading"])])),_:1})])),_:1})}a(8311);var o={name:"setting",data(){return{info:{},activename:"init",tabposition:"left",settingList:[],extend:[],formList:{},loading:!1,submitloading:!1}},watch:{activename(){let e=window.location.href;e=this.changeURLArg(e,"type",this.activename),history.replaceState(Object.assign({},window.history.state,{url:e}),"null",e)}},mounted(){this.render()},created(){this.onLayoutResize(),window.addEventListener("resize",this.onLayoutResize)},methods:{onLayoutResize(){this.tabposition=document.body.clientWidth<992?"top":"left"},changeURLArg(e,t,a){var i=t+"=([^&]*)";if(""===a)return e=e.replace(new RegExp("&?"+i,"gi"),""),e=e.replace(new RegExp("\\??"+i+"&?","gi"),"?"),e;var l=t+"="+a;if(e.match(i)){var n="("+t+"=)([^&]*)";return n=e.replace(new RegExp(n,"gi"),l),n}return e.match("[?]")?e+"&"+l:e+"?"+l},async render(){this.loading=!0;var e=await this.$http.get("setting/get",this.$route.query);if(200!=e.code)return this.$message.warning(e.message),!1;this.settingList=e.data.settingList,this.info=e.data.info,this.formList=e.data.formList,this.extend=e.data.extend||[],this.loading=!1,e.data.activename&&(this.activename=e.data.activename)},async submit(){this.submitloading=!0;var e=await this.$http.post("setting/submit",{info:this.info,extend:this.extend});this.submitloading=!1,200!=e.code?this.$alert(e.message,"提示",{type:"error"}):this.$message.success(e.message||"操作成功")},table_add(e){var t={};e.column.forEach((function(e){t[e.prop]=""})),this.extend[e.key].push(t)}}},d=a(8700);const s=(0,d.Z)(o,[["render",n],["__scopeId","data-v-c77bcd06"]]);var r=s}}]);

View File

@ -1 +1 @@
"use strict";(self["webpackChunkx_php_admin"]=self["webpackChunkx_php_admin"]||[]).push([[601],{5596:function(e,t,n){n.r(t),n.d(t,{default:function(){return p}});var i=n(6808),a=n(9511),r=n(1441);function h(e,t,n,h,l,o){return(0,i.wg)(),(0,i.iD)("div",{class:"x-code-editor",style:(0,a.j5)({height:o._height})},[(0,i.wy)((0,i._)("textarea",{ref:"textarea","onUpdate:modelValue":t[0]||(t[0]=e=>l.contentValue=e)},null,512),[[r.nr,l.contentValue]])],4)}var l=n(3839),o=n(7353),u=n.n(o),s=(n(5935),n(8881),n(2876),{props:{modelValue:{type:String,default:""},mode:{type:String,default:"javascript"},height:{type:[String,Number],default:300},options:{type:Object,default:()=>{}},theme:{type:String,default:"idea"},readOnly:{type:Boolean,default:!1}},data(){return{contentValue:this.modelValue,coder:null,opt:{theme:this.theme,styleActiveLine:!0,lineNumbers:!0,lineWrapping:!1,tabSize:4,indentUnit:4,indentWithTabs:!0,mode:this.mode,readOnly:this.readOnly,...this.options}}},computed:{_height(){return Number(this.height)?Number(this.height)+"px":this.height}},watch:{modelValue(e){this.contentValue=e,e!==this.coder.getValue()&&this.coder.setValue(e)}},mounted(){this.init()},methods:{init(){this.coder=(0,l.Xl)(u().fromTextArea(this.$refs.textarea,this.opt)),this.coder.on("change",(e=>{this.contentValue=e.getValue(),this.$emit("update:modelValue",this.contentValue)}))},formatStrInJson(e){return JSON.stringify(JSON.parse(e),null,4)}}}),d=n(8700);const c=(0,d.Z)(s,[["render",h],["__scopeId","data-v-1c04bc3c"]]);var p=c}}]);
"use strict";(self["webpackChunkx_php_admin"]=self["webpackChunkx_php_admin"]||[]).push([[601],{5596:function(e,t,n){n.r(t),n.d(t,{default:function(){return p}});var i=n(6808),a=n(9511),r=n(1441);function h(e,t,n,h,l,o){return(0,i.wg)(),(0,i.iD)("div",{class:"x-code-editor",style:(0,a.j5)({height:o._height})},[(0,i.wy)((0,i._)("textarea",{ref:"textarea","onUpdate:modelValue":t[0]||(t[0]=e=>l.contentValue=e)},null,512),[[r.nr,l.contentValue]])],4)}var l=n(3839),o=n(3322),u=n.n(o),s=(n(5935),n(8881),n(2876),{props:{modelValue:{type:String,default:""},mode:{type:String,default:"javascript"},height:{type:[String,Number],default:300},options:{type:Object,default:()=>{}},theme:{type:String,default:"idea"},readOnly:{type:Boolean,default:!1}},data(){return{contentValue:this.modelValue,coder:null,opt:{theme:this.theme,styleActiveLine:!0,lineNumbers:!0,lineWrapping:!1,tabSize:4,indentUnit:4,indentWithTabs:!0,mode:this.mode,readOnly:this.readOnly,...this.options}}},computed:{_height(){return Number(this.height)?Number(this.height)+"px":this.height}},watch:{modelValue(e){this.contentValue=e,e!==this.coder.getValue()&&this.coder.setValue(e)}},mounted(){this.init()},methods:{init(){this.coder=(0,l.Xl)(u().fromTextArea(this.$refs.textarea,this.opt)),this.coder.on("change",(e=>{this.contentValue=e.getValue(),this.$emit("update:modelValue",this.contentValue)}))},formatStrInJson(e){return JSON.stringify(JSON.parse(e),null,4)}}}),d=n(8700);const c=(0,d.Z)(s,[["render",h],["__scopeId","data-v-1c04bc3c"]]);var p=c}}]);

1
dist/static/js/81.af51a1bc.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/static/js/app.d9acf3ba.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -114,8 +114,8 @@
if (this.data[item.name] === undefined || this.data[item.name] === '' || JSON.stringify(this.data[item.name]) === '') {
return ; //
}
if (item.options && item.options.items && item.options.items.length>0) {
const foundItem = item.options.items.find(o => o.value === this.data[item.name]);
if (item.options && item.options && item.options.length>0) {
const foundItem = item.options.find(o => o.value === this.data[item.name]);
if (foundItem?.operator) {
item.operator = foundItem.operator;
}

View File

@ -4,118 +4,118 @@
<template>
<!-- input -->
<template v-if="item.component == 'input'">
<el-input v-model="data[item.name]" v-bind="item.options" show-word-limit></el-input>
<el-input v-model="data[item.name]" v-bind="item.bind || item.options" show-word-limit></el-input>
</template>
<!-- textarea -->
<template v-else-if="item.component == 'textarea'">
<el-input v-model="data[item.name]" v-bind="item.options" type="textarea" show-word-limit></el-input>
<el-input v-model="data[item.name]" v-bind="item.bind || item.options" type="textarea" show-word-limit></el-input>
</template>
<!-- checkbox -->
<template v-else-if="item.component == 'checkbox'">
<el-checkbox v-model="data[item.name]" :label="_item.value" v-for="(_item, _index) in item.options.items" :key="_index">{{ _item.label }}</el-checkbox>
<el-checkbox v-model="data[item.name]" v-for="(_item, _index) in options" :key="_index" v-bind="_item">{{ _item.label }}</el-checkbox>
</template>
<!-- checkboxGroup -->
<template v-else-if="item.component == 'checkboxGroup'">
<el-checkbox-group v-model="data[item.name]" v-bind="item.bind">
<el-checkbox v-for="(_item, index) in options" :key="index" v-bind="_item">
{{ _item.label }}
</el-checkbox>
</el-checkbox-group>
</template>
<!-- radio -->
<template v-else-if="item.component == 'radio'">
<el-radio-group v-model="data[item.name]">
<el-radio v-for="_item in item.options.items" :key="_item.value" :label="_item.value">
<el-radio-group v-model="data[item.name]" v-bind="item.bind">
<el-radio v-for="(_item, index) in options" :key="index" v-bind="_item">
{{ _item.label }}
</el-radio>
</el-radio-group>
</template>
<!-- select -->
<template v-else-if="item.component == 'select'">
<el-select v-model="data[item.name]" v-bind="item.options" clearable filterable style="width: 100%;">
<el-option v-for="option in item.options.items" :key="option.value" :label="option.label || option.name" :value="option.value"></el-option>
<el-select v-model="data[item.name]" v-bind="item.bind" clearable filterable style="width: 100%;">
<el-option v-for="(option, index) in options" :key="index" v-bind="option"></el-option>
</el-select>
</template>
<!-- selectgroup -->
<template v-else-if="item.component == 'selectgroup'">
<el-select v-model="data[item.name]" v-bind="item.bind" clearable filterable style="width: 100%;">
<el-option-group v-for="group in item.options" :key="group.label" :label="group.label">
<el-option v-for="item in group.options" :key="item.value" :label="item.label" :value="item.value" />
<el-option-group v-for="(group, gindex) in options" :key="gindex" :label="group.label">
<el-option v-for="(item, index) in group.options" :key="index" v-bind="item" />
</el-option-group>
</el-select>
</template>
<!-- checkboxGroup -->
<template v-else-if="item.component == 'checkboxGroup'">
<el-checkbox-group v-model="data[item.name]">
<el-checkbox v-for="_item in item.options.items" :key="_item.value" :label="_item.value">
{{ _item.label }}
</el-checkbox>
</el-checkbox-group>
</template>
<!-- upload -->
<template v-else-if="item.component == 'upload'">
<x-upload v-model="data[item.name]" v-bind="item.options"></x-upload>
<x-upload v-model="data[item.name]" v-bind="item.bind || item.options"></x-upload>
</template>
<!-- uploadfile -->
<template v-else-if="item.component == 'uploadfile'">
<x-upload-file v-model="data[item.name]" draggable v-bind="item.options"></x-upload-file>
<x-upload-file v-model="data[item.name]" draggable v-bind="item.bind || item.options"></x-upload-file>
</template>
<!-- updatemultiple -->
<template v-else-if="item.component == 'updatemultiple'">
<x-upload-multiple v-model="data[item.name]" draggable v-bind="item.options"></x-upload-multiple>
<x-upload-multiple v-model="data[item.name]" draggable v-bind="item.bind || item.options"></x-upload-multiple>
</template>
<!-- switch -->
<template v-else-if="item.component == 'switch'">
<el-switch v-model="data[item.name]" v-bind="item.options" />
<el-switch v-model="data[item.name]" v-bind="item.bind || item.options" />
</template>
<!-- cascader -->
<template v-else-if="item.component == 'cascader'">
<el-cascader v-model="data[item.name]" :options="item.options.items" clearable></el-cascader>
<el-cascader v-model="data[item.name]" :options="item.options" v-bind="item.bind" clearable></el-cascader>
</template>
<!-- date -->
<template v-else-if="item.component == 'date'">
<el-date-picker v-model="data[item.name]" v-bind="item.options"></el-date-picker>
<el-date-picker v-model="data[item.name]" v-bind="item.bind || item.options"></el-date-picker>
</template>
<!-- number -->
<template v-else-if="item.component == 'number'">
<el-input-number v-model="data[item.name]" controls-position="right"></el-input-number>
<el-input-number v-model="data[item.name]" v-bind="item.bind"></el-input-number>
</template>
<!-- color -->
<template v-else-if="item.component == 'color'">
<el-color-picker v-model="data[item.name]" v-bind="item.options"></el-color-picker>
<el-color-picker v-model="data[item.name]" v-bind="item.bind"></el-color-picker>
</template>
<!-- rate -->
<template v-else-if="item.component == 'rate'">
<el-rate style="margin-top: 6px;" v-model="data[item.name]" v-bind="item.options"></el-rate>
<el-rate style="margin-top: 6px;" v-model="data[item.name]" v-bind="item.bind"></el-rate>
</template>
<!-- slider -->
<template v-else-if="item.component == 'slider'">
<el-slider v-model="data[item.name]" v-bind="item.options"></el-slider>
<el-slider v-model="data[item.name]" v-bind="item.bind"></el-slider>
</template>
<!-- tableselect -->
<template v-else-if="item.component == 'tableselect'">
<tableselect-render v-model="computedValue" :item="item"></tableselect-render>
<tableselect-render v-model="computedValue" :item="item" v-bind="item.bind"></tableselect-render>
</template>
<!-- editor -->
<template v-else-if="item.component == 'editor'">
<x-editor v-model="data[item.name]" v-bind="item.options"></x-editor>
<x-editor v-model="data[item.name]" v-bind="item.bind"></x-editor>
</template>
<template v-else-if="item.component == 'text'">
<el-text v-bind="item.options" v-copy="data[item.name]">{{ data[item.name] }}</el-text>
<el-text v-bind="item.bind || item.options" v-copy="data[item.name]">{{ data[item.name] }}</el-text>
</template>
<template v-else-if="item.component == 'link'">
<el-link v-bind="item.options">{{ data[item.name] }}</el-link>
<el-link v-bind="item.bind || item.options">{{ data[item.name] }}</el-link>
</template>
<template v-else-if="item.component == 'button'">
<el-button v-bind="item.options">{{ data[item.name] }}</el-button>
<el-button v-bind="item.bind || item.options">{{ data[item.name] }}</el-button>
</template>
<!-- avatar -->
<template v-else-if="item.component == 'avatar'">
<x-avatar :data="data" :options="item.options" size="small"></x-avatar>
</template>
<template v-else-if="item.component == 'formtable'">
<x-form-table ref="videostable" v-model="data[item.name]" v-bind="item.options"> </x-form-table>
<x-form-table ref="xformtable" v-model="data[item.name]" v-bind="item.bind || item.options"> </x-form-table>
</template>
<template v-else-if="item.component == 'tabs'">
<el-tabs v-model="tabsValue" :type="item.options.type || 'border-card'" :tab-position="item.options.position" class="formtabs">
<el-tab-pane v-for="t in item.options.items" :key="t.value" :label="t.label" :name="t.value">
<el-tabs v-model="tabsValue" v-bind="item.bind" class="formtabs">
<el-tab-pane v-for="(t, index) in options" :key="index" v-bind="t">
<template #label>
<el-badge is-dot v-if="data[item.name][t.value]"> </el-badge>
<span>{{ t.label }}</span>
</template>
<el-input v-model="data[item.name][t.value]" type="textarea" :rows="item.options.rows || 6" show-word-limit></el-input>
<el-input v-model="data[item.name][t.value]" type="textarea" v-bind="item.options" show-word-limit></el-input>
</el-tab-pane>
</el-tabs>
</template>
@ -166,9 +166,12 @@ export default {
xEditor
},
computed: {
options() {
return this.item.options.items || this.item.options; //
},
tabsValue() {
if (this.item.options && this.item.component == 'tabs') {
return this.item.options.value || this.item.options.items[0].value;
if (this.options && this.item.component == 'tabs') {
return this.item.value || this.options[0].value;
}
return '';
},

View File

@ -47,7 +47,8 @@ export default {
},
data: {},
search: {},
date: []
date: [],
hasBeenActivated: false,
}
},
watch: {
@ -58,6 +59,15 @@ export default {
return this.config.type == 'containe' ? 'el-containe' : (this.config.type == 'drawer' ? 'el-drawer' : 'x-dialog');
}
},
activated() {
if (this.hasBeenActivated) {
this.handleSearchUpdated(this.search);
return true;
}
this.hasBeenActivated = true;
},
mounted() {
},

View File

@ -3,7 +3,7 @@
<el-badge v-if="item.status && item.status.key && row[item.status.key]" is-dot class="item" :type="item.status.type || 'primary'" style="width: 10px;cursor: pointer;margin-top: 10px;"></el-badge>
<x-avatar v-if="item.columntype == 'avatar' || item.component == 'avatar'" :name="item.name" :options="item.options" :data="row"></x-avatar>
<el-badge v-else-if="item.columntype == 'badge' || item.columntype == 'imagegroup'" :value="getType(row[item.name])" @click="handleClick(row, item)" v-bind="item.options" style="cursor: pointer; "></el-badge>
<el-link v-else-if="item.columntype == 'link'" v-bind="item.options" @click="handleClick(row, item)"> {{ row[item.name] }} </el-link>
<el-link v-else-if="item.columntype == 'link'" v-bind="item.bind || item.options" @click="handleClick(row, item)"> {{ row[item.name] }} </el-link>
<el-image v-else-if="item.columntype == 'image'" :preview-src-list="[getImg(row[item.name])]" :preview-teleported="true" hide-on-click-modal="true" lazy="true" style="max-width: 60px; height: 26px; border-radius: 2px;" fit="cover" :src="getImg(row[item.name])">
<template #error>
<div class="image-slot">
@ -13,27 +13,27 @@
</el-image>
<input v-else-if="item.columntype == 'input'" @click="handleClick(row, item)" style="cursor: pointer; " class="el-input__inner" type="text" readonly :value="row[item.name]">
<p v-else-if="item.columntype == 'status'">
<template v-for="{ value, type = 'success', label, options={} } in item.options.items">
<template v-for="{ value, type = 'success', label, options={} } in options">
<x-status-indicator :style="item.style" :key="value" pulse :type="type" :label="label" @click="handleClick(row, options || item)" v-if="value == row[item.name]"></x-status-indicator>
</template>
</p>
<p v-else-if="item.columntype == 'button'">
<span v-if="item.options.items && item.options.items.length > 0">
<template v-for="op in item.options.items">
<el-button @click="handleClick(row, op.options || item)" :key="op.value" :type="op.type || 'warning'" :size="op.size || 'small'" v-bind="op" v-if="op.value == row[item.name]">
<span v-if="options && options.length > 0">
<template v-for="(op, index) in options">
<el-button @click="handleClick(row, op.options || item)" :key="index" :type="op.type || 'warning'" :size="op.size || 'small'" v-bind="op" v-if="op.value == row[item.name]">
{{ op.label }}
</el-button>
</template>
</span>
<el-button v-else @click="handleClick(row, item)" :type="item.options.type || 'warning'" v-bind="item.options"> {{ row[item.name] }} </el-button>
<el-button v-else @click="handleClick(row, item)" :type="item.bind.type || 'warning'" v-bind="item.bind"> {{ row[item.name] }} </el-button>
</p>
<p v-else-if="item.columntype == 'text'">
<el-text v-bind="item.options" v-if="item.copy" v-copy="row[item.copy]" style="cursor: pointer;display: inline;"> {{ row[item.name] }} </el-text>
<el-text v-bind="item.options" v-else @click="handleClick(row, item)" style="cursor: pointer;display: inline;"> {{ row[item.name] }} </el-text>
<el-text v-bind="item.bind || item.options" v-if="item.copy" v-copy="row[item.copy]" style="cursor: pointer;display: inline;"> {{ row[item.name] }} </el-text>
<el-text v-bind="item.bind || item.options" v-else @click="handleClick(row, item)" style="cursor: pointer;display: inline;"> {{ row[item.name] }} </el-text>
</p>
<p v-else-if="item.columntype == 'tag' || item.columntype == 'time'" @click="handleClick(row, item)" v-time.tip="row[item.name]"></p>
<slot v-else :name="item.name">
{{ item.columntype == 'select' && item.options && item.options.items ? getNameByValue(row[item.name], item.options.items) : row[item.name] }}
{{ item.columntype == 'select' && options && options ? getNameByValue(row[item.name], options) : row[item.name] }}
</slot>
</div>
</template>
@ -53,6 +53,11 @@ export default {
},
row: { type: Object, default: () => { } },
},
computed: {
options() {
return this.item.options.items || this.item.options; //
},
},
methods: {
handleClick(row, item) {

View File

@ -115,7 +115,7 @@
addViewTags(route) {
if (route.name && !route.meta.fullpage) {
this.$store.commit("pushViewTags", route)
this.$store.commit("pushKeepLive",route.name)
!route.meta.disablecache && this.$store.commit("pushKeepLive", route.name)
}
},
//tag
@ -175,7 +175,7 @@
this.$store.commit("removeKeepLive", nowTag.name)
this.$store.commit("setRouteShow", false)
this.$nextTick(() => {
this.$store.commit("pushKeepLive", nowTag.name)
!this.$route.meta.disablecache && this.$store.commit("pushKeepLive", nowTag.name)
this.$store.commit("setRouteShow", true)
})
}, 0);
@ -266,6 +266,7 @@
list-style-type: none;
padding: 10px 0;
}
.contextmenu hr {
margin: 5px 0;
border: none;
@ -273,6 +274,7 @@
font-size: 0px;
background-color: var(--el-border-color-light);
}
.contextmenu li {
display: flex;
align-items: center;
@ -282,23 +284,32 @@
padding: 0 17px;
color: #606266;
}
.contextmenu li i {
font-size: 14px;
margin-right: 10px;
}
.contextmenu li:hover {
background-color: #ecf5ff;
color: #66b1ff;
}
.contextmenu li.disabled {
cursor: not-allowed;
color: #bbb;
background: transparent;
}
.tags-tip {padding:5px;}
.tags-tip p {margin-bottom: 10px;}
.tags-tip {
padding: 5px;
}
.dark .contextmenu li {color: var(--el-text-color-primary);}
.tags-tip p {
margin-bottom: 10px;
}
.dark .contextmenu li {
color: var(--el-text-color-primary);
}
</style>

View File

@ -13,7 +13,7 @@ export default {
store.commit("removeKeepLive", route.name)
store.commit("setRouteShow", false)
nextTick(() => {
store.commit("pushKeepLive", route.name)
!route.meta.disablecache && store.commit("pushKeepLive", route.name)
store.commit("setRouteShow", true)
NProgress.done()
})

View File

@ -8,10 +8,10 @@
<div v-if="item.type == 'extend'">
<el-alert :title="item.tips" v-if="item.tips" type="warning" style="margin-bottom: 15px;"></el-alert>
<x-form-table v-model="extend[item.key]" :hideAdd="true" drag-sort placeholder="暂无数据">
<el-table-column :label="c.label" :prop="c.prop" :width="c.width" :key="c.prop" v-for="c in item.column">
<el-table-column :label="c.label" :prop="c.prop" :width="c.width" :key="index" v-for="(c, index) in item.column">
<template #default="scope">
<el-select v-if="c.component == 'select'" v-model="scope.row[c.prop]" v-bind="c.options" clearable filterable style="width: 100%;">
<el-option v-for="option in c.options.items" :key="option.value" :label="option.label || option.name" :value="option.value"></el-option>
<el-select v-if="c.component == 'select'" v-model="scope.row[c.prop]" v-bind="c.bind" clearable filterable style="width: 100%;">
<el-option v-for="(option, index) in c.options" :key="index" v-bind="option"></el-option>
</el-select>
<el-input v-else v-model="scope.row[c.prop]" :placeholder="c.placeholder"></el-input>
</template>
@ -156,7 +156,7 @@ export default {
},
async submit() {
this.submitloading = true;
var res = this.$http.post('setting/submit', { info: this.info, extend: this.extend });
var res = await this.$http.post('setting/submit', { info: this.info, extend: this.extend });
this.submitloading = false;
if (res.code == 200) {
this.$message.success(res.message || "操作成功")