| | |
| | | font-size: 14px; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .h_form .h_form_group { |
| | | margin: 0px; |
| | | } |
| | | .h_form .h_form_group_name { |
| | | font-size: 14px; |
| | | } |
| | |
| | | |
| | | |
| | | config = { |
| | | jscssversion: "2024082502", //.js/.css文件的版本号,去除前端缓存的一种机制 |
| | | jscssversion: "2024082602", //.js/.css文件的版本号,去除前端缓存的一种机制 |
| | | isupgrading: false, //是否升级中 |
| | | appName: "TPP", |
| | | title: "营销一体化运营平台", |
| | |
| | | '<div v-if="formAttr.istitle && formAttr.title" class="h_form_title_name">{{formAttr.title}}</div> '+ |
| | | |
| | | '<template v-for="(g, k) in tableFieldsGroup"> '+ |
| | | '<div v-if="g.name && g.name !=\' \' " style="margin: 0;"><i class="iconfont icon-fuzhushuxian" style="color: #0270c1;"></i><span class="h_form_group_name">{{g.name}}</span></div> '+ |
| | | '<div v-if="g.name && g.name !=\' \' " class="h_form_group"><i class="iconfont icon-fuzhushuxian" style="color: #0270c1;"></i><span class="h_form_group_name">{{g.name}}</span></div> '+ |
| | | '<div style="margin: 0; padding-left: 0px">'+ |
| | | '<h-newform-a '+ |
| | | //外部参数 |
| | |
| | | disabledone: config.disabledone, |
| | | operationtype: config.operationtype, |
| | | parentOption: window.top.tab.selected.option, |
| | | |
| | | filter: config.filter || "", |
| | | dataname: config.dataname || "", |
| | | closecallback: function() { |
| | | if (closecallback_) { |
| | | closecallback_(); |
New file |
| | |
| | | <!doctype html> |
| | | <html> |
| | | <head> |
| | | <meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache"> |
| | | <title>表单编辑字段设置弹窗</title> |
| | | |
| | | <script type="text/javascript"> |
| | | var pageVue = null; |
| | | function loadJsCss(callback) { |
| | | var jscss_urls = []; |
| | | window.top.initJsCss(document, jscss_urls, callback); |
| | | }; |
| | | |
| | | function initVue() { |
| | | new ListVue({ |
| | | el: "#vbody", |
| | | data: { |
| | | dataname: "", |
| | | title: "表单编辑字段设置弹窗", |
| | | pageAttr: { |
| | | heightType: "popuppage" |
| | | }, |
| | | delta: {}, |
| | | orderby: "", |
| | | tableAttr: { |
| | | isborder: true |
| | | }, |
| | | filterfieldClick: {}, |
| | | tablefieldClick: {}, |
| | | formfieldClick: {}, |
| | | tableHeight: 0, |
| | | isPagination: false |
| | | }, |
| | | created() { |
| | | this.popupParames = clone(Root.popupParames); |
| | | this.title = this.popupParames.title || this.popupParames.text |
| | | if (this.popupParames.filter) { |
| | | this.filterTxt = this.popupParames.filter |
| | | } |
| | | |
| | | if (this.popupParames.dataname) { |
| | | this.dataname = this.popupParames.dataname; |
| | | } |
| | | if (this.popupParames.delta) { |
| | | this.delta = this.popupParames.delta; |
| | | if (this.delta.orderby) { |
| | | this.orderby = this.delta.orderby; |
| | | } |
| | | } |
| | | |
| | | if (this.popupParames.sceneCode) { |
| | | if (this.popupParames.sceneCode == "add") {//新增 |
| | | this.isedit = true; |
| | | } |
| | | if (this.popupParames.sceneCode == "browse") {//只读 |
| | | this.isedit = false; |
| | | |
| | | } |
| | | } |
| | | |
| | | }, |
| | | |
| | | mounted() { |
| | | // this.getTableMeta(); |
| | | //获取数据 |
| | | this.initData(); |
| | | this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 |
| | | hideLoading(); |
| | | }); |
| | | }, |
| | | |
| | | methods:{ |
| | | //关闭弹窗 |
| | | closeDialog() { |
| | | this.docloseDialog(true); |
| | | }, |
| | | |
| | | //关闭前调回调 |
| | | saveAfter() { |
| | | var me = this; |
| | | if(this.popupParames.callback) { |
| | | let obj = { |
| | | tableData: clone(this.tableData) |
| | | } |
| | | this.popupParames.callback(obj, function() { |
| | | me.docloseDialog(); |
| | | }); |
| | | } |
| | | else { |
| | | me.docloseDialog(); |
| | | } |
| | | }, |
| | | |
| | | initData() { |
| | | var me = this; |
| | | if (this.delta.tabledata) { |
| | | this.tableData = clone(this.delta.tabledata); |
| | | } |
| | | if (this.delta.tablefields) { |
| | | this.tableFields = clone(this.delta.tablefields); |
| | | } |
| | | me.tableDataAfter(); |
| | | // this.onQuery(function(result, callback) {//查询后的回调,用于获取字段的 |
| | | // if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) { |
| | | // var metas = clone(result.meta[me.dataname].fields); |
| | | // var tableFields_ = []; |
| | | |
| | | // metas.map(f=>{ |
| | | // f.isshow = "F"; |
| | | |
| | | // tableFields_.push(clone(f)); |
| | | // }) |
| | | // if (!me.tableFields || (me.tableFields && me.tableFields.length == 0)) { |
| | | // me.tableFields = clone(tableFields_); |
| | | |
| | | // //字段数组转字段obj,目的为了筛选时获取字段属性 |
| | | // me.fieldsToFieldsObj(); |
| | | |
| | | // //设置字段事件 |
| | | // me.tableFieldClick(); |
| | | // } |
| | | |
| | | // } |
| | | |
| | | // if (callback) { |
| | | // callback(); |
| | | // } |
| | | // }); |
| | | }, |
| | | |
| | | tableFieldClick() { |
| | | var me = this; |
| | | //筛选字段事件设置 |
| | | this.filterfieldClick = { |
| | | }; |
| | | //表格字段事件设置 |
| | | this.tablefieldClick = { |
| | | }; |
| | | |
| | | //表单字段事件设置 |
| | | this.formfieldClick = { |
| | | }; |
| | | }, |
| | | |
| | | |
| | | onRowDblClick() { |
| | | if (this.isedit) { |
| | | this.saveAfter(); |
| | | } |
| | | }, |
| | | |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | loadJsCss(function () { |
| | | initVue(); |
| | | }); |
| | | </script> |
| | | <style> |
| | | /* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */ |
| | | [v-cloak] { |
| | | display: none !important; |
| | | } |
| | | </style> |
| | | |
| | | </head> |
| | | |
| | | <body style="margin: 0px;"> |
| | | <div v-cloak id="vbody"> |
| | | <div id="page_root"> |
| | | <div ref="popup_body" style="padding: 0 20px;"> |
| | | |
| | | |
| | | <div class="h_dialog__body"> |
| | | <h-table |
| | | v-if="isRefresh && tableFields.length" |
| | | ref="table1" |
| | | :table-fields="tableFields" |
| | | :table-data="tableData" |
| | | :table-attr="tableAttr" |
| | | :table-height="tableHeight" |
| | | :table-field-click="tablefieldClick" |
| | | :is-highlight-row="isedit" |
| | | :is-show-index="false" |
| | | :filtersobj="filterObj" |
| | | :is-pagination="isPagination" |
| | | :is-within-edit-table-data="true" |
| | | |
| | | :isshowtool="false" |
| | | :isfilterfield="false" |
| | | :istablebuttons="false" |
| | | :isbasicfilterfields="false" |
| | | :isdraggableorder="false" |
| | | > |
| | | </h-table> |
| | | </div> |
| | | |
| | | <!-- 底部工具栏 --> |
| | | <div class="el-dialog__footer" style="margin-top: 0px;"> |
| | | <el-button size="small" type="default" @click="closeDialog">取 消</el-button> |
| | | <el-button size="small" v-if="isedit" type="primary" @click="saveAfter">确 定</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;"> |
| | | <div class="spinner"> |
| | | <div class="cube1"></div> |
| | | <div class="cube2"></div> |
| | | </div> |
| | | </div> |
| | | |
| | | </body> |
| | | </html> |
| | |
| | | dataRequestObj: {}, |
| | | options_menumap: {}, |
| | | options_menutree: [], |
| | | listoptions: [], |
| | | |
| | | //按键权限设置 |
| | | isedit: false,//提交前编辑,保存/提交 |
| | |
| | | if (this.popupParames.sceneCode) { |
| | | if (this.popupParames.sceneCode == 'addmenu') { |
| | | this.isAddMenu = true; |
| | | // this.pageid = createCode("M_P"); |
| | | this.parent_menuobj = this.popupParames.data; |
| | | if (this.parent_menuobj && this.parent_menuobj.id) { |
| | | this.formData.parent_id = this.parent_menuobj.id |
| | |
| | | var me = this; |
| | | if(this.popupParames.callback) { |
| | | let obj = { |
| | | options: this.treeoptions, |
| | | treeoptions: this.options_menutree, |
| | | listoptions: this.listoptions |
| | | } |
| | | this.popupParames.callback(obj, function() { |
| | | me.closeDialog(); |
| | |
| | | if (entity_.id) { |
| | | entity.id = entity_.id |
| | | } |
| | | else { |
| | | entity.id = createCode("M") |
| | | } |
| | | |
| | | let param = { |
| | | dataname: this.dataname, |
| | |
| | | if (me.pageid) { |
| | | me.onRefreshCacheByPageId(me.pageid); |
| | | } |
| | | else if (entity.id) { |
| | | me.onRefreshCacheByMenuId(entity.id); |
| | | } |
| | | else { |
| | | Root.message({ |
| | | type: 'success', |
| | |
| | | }); |
| | | }, |
| | | |
| | | // 刷新缓存 |
| | | // 刷新缓存页面 |
| | | onRefreshCacheByPageId(PageId) { |
| | | var me = this; |
| | | let param_ = { |
| | |
| | | filter: "page_id is null", |
| | | } |
| | | Server.call("root/data/getEntitySet", param_, function(result2){ |
| | | me.listoptions = clone(result2.data.entityset); |
| | | let agm_category_ = ArrayToTree(clone(result2.data.entityset), "title", "parent_id"); |
| | | me.options_menutree = agm_category_; |
| | | Root.message({ |
| | |
| | | }); |
| | | }, |
| | | |
| | | onRefreshCacheByMenuId(MenuId) { |
| | | var me = this; |
| | | let param_ = { |
| | | menu_id: MenuId |
| | | } |
| | | Server.call("root/system/reloadOneMenu", param_, function(result) { |
| | | if (result.success) { |
| | | let param_ = { |
| | | dataname: "sys_menu", |
| | | filter: "page_id is null", |
| | | } |
| | | Server.call("root/data/getEntitySet", param_, function(result2){ |
| | | me.listoptions = clone(result2.data.entityset); |
| | | let agm_category_ = ArrayToTree(clone(result2.data.entityset), "title", "parent_id"); |
| | | me.options_menutree = agm_category_; |
| | | Root.message({ |
| | | type: 'success', |
| | | message: '保存成功' |
| | | }); |
| | | me.saveAfter(); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | } |
| | | }); |
| | | }; |
| | |
| | | { |
| | | name: "sys_menunotpage", |
| | | dataname: "sys_menu", |
| | | filter: " page_id is null", |
| | | filter: " page_id is null ", |
| | | isnotoption: false, //true:不是选项 |
| | | code:"id",//是下拉选项时设置 |
| | | label:"name",//是下拉选项时设置 |
| | |
| | | { |
| | | name: "modelByPage", |
| | | dataname: "sys_model", |
| | | filter: "is_detail='F'", |
| | | filter: "open_type='page'", |
| | | isnotoption: false, //true:不是选项 |
| | | code:"id",//是下拉选项时设置 |
| | | label:"name",//是下拉选项时设置 |
| | |
| | | { |
| | | name: "modelBydetail", |
| | | dataname: "sys_model", |
| | | filter: "is_detail='T'", |
| | | filter: "open_type in ('popup','tab')", |
| | | isnotoption: false, //true:不是选项 |
| | | code:"id",//是下拉选项时设置 |
| | | label:"name",//是下拉选项时设置 |
| | |
| | | {isshow: "T", field: "model_id", labelchinese: "模型选择", inputtype: "select", optionsgroup: "", colspan: 1, group_name: "页面配置", buttonarrayname: [{type: "", buttonname:"模型维护", icon: "", code:"showfile", classname: "form_showfile"}]}, |
| | | {isshow: "T", field: "dataname", labelchinese: "数据对象", inputtype: "", optionsgroup: "", group_name: "页面配置", buttonarrayname: [{type: "", buttonname:"对象维护", icon: "", code:"showfile", classname: "form_showfile"}]}, |
| | | {isshow: "T", field: "buttons", labelchinese: "功能选择", inputtype: "checkboxobj", optionsgroup: "", colspan: 2, group_name: "页面配置"}, |
| | | {isshow: "T", field: "detail_model_id", labelchinese: "详情模型选择", inputtype: "select", optionsgroup: "", colspan: 2, group_name: "页面配置", labelwidth: "120", visiblefilterrule: "buttons:Add、Edit、FormDetail"}, |
| | | {isshow: "T", field: "detail_model_id", labelchinese: "详情模型选择", inputtype: "select", optionsgroup: "", colspan: 2, group_name: "页面配置", labelwidth: "120", visiblefilterrule: "buttons:Add、Edit、FormDetail", buttonarrayname: [{type: "", buttonname:"详情模型维护", icon: "", code:"detail_model", classname: "form_showfile"},{type: "", buttonname:"详情页配置", icon: "", code:"popup_detail_model", classname: ""}]}, |
| | | ], |
| | | |
| | | tableFields_table: [ |
| | |
| | | }, |
| | | created() { |
| | | let clientHeight = document.documentElement.clientHeight; |
| | | this.tableHeight = clientHeight - 250 - 32; |
| | | this.tableHeight = clientHeight - 250 - 32 - 10; |
| | | |
| | | }, |
| | | |
| | |
| | | menuToPageTree(oldmenus) { |
| | | var me = this; |
| | | oldmenus.map(om=>{ |
| | | if (om.id && om.open_type && om.open_type == "arrange") { |
| | | |
| | | if (om.id && om.open_type && om.open_type == "arrange" && om.page_id) { |
| | | om.isnot_nodeadd = true; // 节点不可新增 |
| | | } |
| | | else if (om.id && !om.page_id) { |
| | | else if (om.id && !om.page_id ) { |
| | | // om.isnot_nodeadd = true; // 节点不可新增 |
| | | om.isnot_nodeedit = true; // 节点不可改 |
| | | // om.isnot_nodeedit = true; // 节点不可改 |
| | | om.ishnodeadd = true; |
| | | om.isnot_nodedel = true; // 节点不可删 |
| | | } |
| | | else { |
| | |
| | | var parent_ids_ = []; |
| | | var parent_ids = this.getParents(data_.parent_id, this.options_menumap, parent_ids_); |
| | | |
| | | data_.parent_id = parent_ids |
| | | data_.parent_id = parent_ids_ |
| | | } |
| | | data_.buttons = [] |
| | | data_.detail_model_id = "" |
| | |
| | | delta: {}, |
| | | sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(obj, callback) { |
| | | me.options_menutree = clone(obj.treeoptions) |
| | | var sys_menunotpage_ = clone(obj.listoptions); |
| | | me.options_menumap = {} |
| | | sys_menunotpage_.map(m=>{ |
| | | me.options_menumap[m.id] = m; |
| | | }) |
| | | |
| | | var formFields_ = clone(me.formFields) |
| | | formFields_.map(f=>{ |
| | | if(f.field == "parent_id") { |
| | | f.options = (me.options_menutree) |
| | | } |
| | | }) |
| | | me.formFields = clone(formFields_) |
| | | |
| | | me.getMenuAll(); |
| | | if (callback) { |
| | | callback(); |
| | |
| | | data: data, |
| | | sceneCode: "edit", |
| | | callback: function(options_obj, callback) { |
| | | me.options_menutree = clone(obj.treeoptions) |
| | | var sys_menunotpage_ = clone(obj.listoptions); |
| | | me.options_menumap = {} |
| | | sys_menunotpage_.map(m=>{ |
| | | me.options_menumap[m.id] = m; |
| | | }) |
| | | var formFields_ = clone(me.formFields) |
| | | formFields_.map(f=>{ |
| | | if(f.field == "parent_id") { |
| | | f.options = (me.options_menutree) |
| | | } |
| | | }) |
| | | me.formFields = clone(formFields_) |
| | | me.getMenuAll(); |
| | | if (callback) { |
| | | callback(); |
| | |
| | | }, |
| | | }, |
| | | |
| | | detail_model_id: { |
| | | buttonarray: { |
| | | onclick: function(obj) { |
| | | if (obj.buttonobj.code == "popup_detail_model") { |
| | | let sceneCode = "add" |
| | | var config = { |
| | | totab: false, //true: 以Tab导航的方式打开 |
| | | width: "900px", |
| | | height: "500px", |
| | | icon: "icon-product", |
| | | text: "编辑页配置", |
| | | id: "popup_tablefield_edit" + sceneCode,//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/config/page/popup/popup_tablefield_edit.html", |
| | | dataname: me.dataname, |
| | | data: {}, |
| | | delta: {dataname: me.dataname, tabledata: me.tableData, tablefields: me.tableFields_form}, |
| | | sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(obj, callback) { |
| | | me.tableData = clone(obj.tableData) |
| | | if (callback) { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | me.doPopupByPublic(config); |
| | | } |
| | | }, |
| | | }, |
| | | }, |
| | | model_id: { |
| | | buttonarray: { |
| | | onclick: function(obj) { |
| | |
| | | onchange: function(obj,row,callback) { //下拉展开事件 |
| | | let param_ = { |
| | | dataname: "sys_model",//获取经销商对应收货地址 |
| | | filter:"is_detail='F'", |
| | | filter:"open_type='page'", |
| | | } |
| | | Server.call("root/data/getEntitySet", param_, function(result) { |
| | | if (result && result.data && result.data.entityset) { |
| | |
| | | delta: {}, |
| | | sceneCode: "addmenu",//"refuseedit",//"approval", //"add"//"browse", |
| | | callback: function(obj, callback) { |
| | | me.options_menutree = clone(obj.treeoptions) |
| | | var sys_menunotpage_ = clone(obj.listoptions); |
| | | me.options_menumap = {} |
| | | sys_menunotpage_.map(m=>{ |
| | | me.options_menumap[m.id] = m; |
| | | }) |
| | | var formFields_ = clone(me.formFields) |
| | | formFields_.map(f=>{ |
| | | if(f.field == "parent_id") { |
| | | f.options = (me.options_menutree) |
| | | } |
| | | }) |
| | | me.formFields = clone(formFields_) |
| | | me.getMenuAll(); |
| | | if (callback) { |
| | | callback(); |
| | |
| | | var entity_ = clone(this.formData); |
| | | var entity_menu = { |
| | | id: entity_.id, |
| | | parent_id: entity_.parent_id, |
| | | parent_id: entity_.parent_id[entity_.parent_id.length - 1], |
| | | icon: entity_.icon, |
| | | title: entity_.title |
| | | }; |
| | |
| | | last_update_time: datetime_, |
| | | label_chinese: r.label_chinese, |
| | | is_list: r.is_list ? r.is_list : false, |
| | | is_form: r.is_form ? r.is_form : false, |
| | | is_filter: r.is_filter ? r.is_filter : false, |
| | | list_order_no: r.list_order_no ? r.list_order_no : 0, |
| | | form_order_no: r.form_order_no ? r.form_order_no : 0, |
| | |
| | | position: relative; |
| | | padding-left: 20px; |
| | | } |
| | | .h_form_group { |
| | | height: 32px; |
| | | line-height: 32px; |
| | | margin-top: 5px !important; |
| | | } |
| | | </style> |
| | | |
| | | </head> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div style="margin: 16px;"> |
| | | <div style="margin: 0 10px;"> |
| | | <h-form |
| | | ref="form1" |
| | | :form-attr="formAttr" |
| | |
| | | me.dataRequestObj = data; |
| | | //预加载数据后给哪些字段设置options或formatterjson |
| | | if (me.dataRequestObj.sys_model) { |
| | | me.sys_model_map = me.dataRequestObj.sys_model.map.sys_model; |
| | | |
| | | me.dataRequestObj.sys_model.map(m=>{ |
| | | me.sys_model_map[m.id] = m |
| | | }) |
| | | } |
| | | |
| | | if (me.dataRequestObj.sys_page_model) { |
| | |
| | | |
| | | editData(sceneCode, row) { |
| | | var me = this; |
| | | let url = ""; |
| | | let totab = true; |
| | | if (me.detail_model_id && me.sys_model_map[me.detail_model_id]) { |
| | | url = me.sys_model_map[me.detail_model_id].url; |
| | | } |
| | | if (!url) { |
| | | return |
| | | } |
| | | if (me.sys_model_map[me.detail_model_id].open_type == "popup") { |
| | | totab = false; |
| | | } |
| | | |
| | | var config = { |
| | | totab: true, //true: 以Tab导航的方式打开 |
| | | totab: totab, //true: 以Tab导航的方式打开 |
| | | width: "900px", |
| | | height: "500px", |
| | | icon: "icon-product", |
| | | text: me.title + "详情", |
| | | id: "popup_form_simple" + sceneCode + row.id,//totab: true时需设置,用于判断是否已打开此页面 |
| | | url: "module/model/page/popup_form_simple.html", |
| | | url: url, //"module/model/page/popup_form_simple.html", |
| | | dataname: me.dataname, |
| | | data: row, |
| | | delta: {dataname: me.dataname}, |
| | |
| | | <meta http-equiv="Cache-control" content="no-cache"> |
| | | <meta http-equiv="Cache" content="no-cache"> |
| | | <title>营销一体化运营平台</title> |
| | | <link href="../css/main.css?v=2024082502" rel="stylesheet"> |
| | | <link href="../../../css/control.css?v=2024082502" rel="stylesheet"> |
| | | <link href="../../../css/page.css?v=2024082502" rel="stylesheet"> |
| | | <link href="../../../css/icon/iconfont.css?v=2024082502" rel="stylesheet"> |
| | | <link href="../css/main.css?v=2024082602" rel="stylesheet"> |
| | | <link href="../../../css/control.css?v=2024082602" rel="stylesheet"> |
| | | <link href="../../../css/page.css?v=2024082602" rel="stylesheet"> |
| | | <link href="../../../css/icon/iconfont.css?v=2024082602" rel="stylesheet"> |
| | | <link href="../../../js/vue/element-ui/lib/theme-chalk/index.css" rel="stylesheet"> |
| | | <link href="../../../img/org/head.png" rel="shortcut icon" type="image/x-icon"> |
| | | <link href="../../../css/myelement.css?v=2024082502" rel="stylesheet"> |
| | | <link href="../../../css/myelement.css?v=2024082602" rel="stylesheet"> |
| | | |
| | | <script src="../../../js/jquery-3.5.1.min.js"></script> |
| | | <script src="../../../js/vue/vue.js"></script> |
| | | |
| | | <script src="../../../js/config.js?v=2024082502"></script> |
| | | <script src="../../../js/config.js?v=2024082602"></script> |
| | | <script src="../../../data/data.js"></script> |
| | | <script src="../../../js/vue/elementDefault.js"></script> |
| | | <script src="../../../js/vue/element-ui/lib/index.js"></script> |
| | | <script src="../../../js/Sortable.js"></script> |
| | | <script src="../../../js/vue/page.js?v=2024082502"></script> |
| | | <script src="../../../js/foundation.js?v=2024082502"></script> |
| | | <script src="../../../js/control.js?v=2024082502"></script> |
| | | <script src="../../../js/vue/page.js?v=2024082602"></script> |
| | | <script src="../../../js/foundation.js?v=2024082602"></script> |
| | | <script src="../../../js/control.js?v=2024082602"></script> |
| | | <script src="../../../js/loadJsCss.js"></script> |
| | | <script src="../../../js/myelement.js?v=2024082502"></script> |
| | | <script src="../../../js/myelement.js?v=2024082602"></script> |
| | | |
| | | </head> |
| | | |