提交 416784b7 编写于 作者: zhangpingchuan's avatar zhangpingchuan

update:更新

上级 bf8295ff
...@@ -128,7 +128,7 @@ $ yarn build ...@@ -128,7 +128,7 @@ $ yarn build
​ |─ ─ XXX-view 视图文件夹 ​ |─ ─ XXX-view 视图文件夹
|─ ─ XXX-view-base.vue 视图基类 |─ ─ XXX-view-base.vue 视图基类
|─ ─ XXX-view.vue 自定义视图文件 |─ ─ XXX-view.vue 自定义视图文件
|─ ─ XXX-view.scss 自定义视图样式文件 |─ ─ XXX-view.less 自定义视图样式文件
​ |─ ─ main.ts 应用主函数入口 ​ |─ ─ main.ts 应用主函数入口
​ |─ ─ page-register.ts 全局视图注册 ​ |─ ─ page-register.ts 全局视图注册
​ |─ ─ router.ts 路由配置文件 ​ |─ ─ router.ts 路由配置文件
...@@ -140,8 +140,8 @@ $ yarn build ...@@ -140,8 +140,8 @@ $ yarn build
|─ ─ YYY-logic.ts 自定义应用实体数据处理逻辑文件 |─ ─ YYY-logic.ts 自定义应用实体数据处理逻辑文件
|─ ─ store 全局状态管理 |─ ─ store 全局状态管理
|─ ─ styles 样式文件夹 |─ ─ styles 样式文件夹
|─ ─ default.scss 默认样式 |─ ─ default.less 默认样式
|─ ─ user.scss 用户自定义样式 |─ ─ user.less 用户自定义样式
|─ ─ theme 主题文件夹 |─ ─ theme 主题文件夹
|─ ─ uiservice 界面服务文件 |─ ─ uiservice 界面服务文件
|─ ─ XXX 应用实体名称 |─ ─ XXX 应用实体名称
...@@ -155,7 +155,7 @@ $ yarn build ...@@ -155,7 +155,7 @@ $ yarn build
​ |─ ─ XXX 部件名称 ​ |─ ─ XXX 部件名称
|─ ─ XXX-base.vue 视图基类 |─ ─ XXX-base.vue 视图基类
|─ ─ XXX.vue 自定义部件文件 |─ ─ XXX.vue 自定义部件文件
|─ ─ XXX.scss 部件样式文件 |─ ─ XXX.less 部件样式文件
​ |─ ─ XXX.model.ts 部件model文件 ​ |─ ─ XXX.model.ts 部件model文件
​ |─ ─ XXX.service.ts 部件服务文件 ​ |─ ─ XXX.service.ts 部件服务文件
|─ ─ app-register.ts 公共组件全局注册 |─ ─ app-register.ts 公共组件全局注册
......
console.log('Generate application code successfully!');
\ No newline at end of file
{
"name": "app",
"version": "0.1.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"adler-32": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz",
"integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=",
"requires": {
"exit-on-epipe": "~1.0.1",
"printj": "~1.1.0"
}
},
"cfb": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.1.4.tgz",
"integrity": "sha512-rwFkl3aFO3f+ljR27YINwC0x8vPjyiEVbYbrTCKzspEf7Q++3THdfHVgJYNUbxNcupJECrLX+L40Mjm9hm/Bgw==",
"requires": {
"adler-32": "~1.2.0",
"commander": "^2.16.0",
"crc-32": "~1.2.0",
"printj": "~1.1.2"
}
},
"codepage": {
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz",
"integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=",
"requires": {
"commander": "~2.14.1",
"exit-on-epipe": "~1.0.1"
},
"dependencies": {
"commander": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
}
}
},
"commander": {
"version": "2.17.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
},
"crc-32": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
"integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
"requires": {
"exit-on-epipe": "~1.0.1",
"printj": "~1.1.0"
}
},
"exit-on-epipe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
},
"file-saver": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz",
"integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw=="
},
"frac": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
},
"printj": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
},
"raw-loader": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
"integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=",
"dev": true
},
"script-loader": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/script-loader/-/script-loader-0.7.2.tgz",
"integrity": "sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA==",
"dev": true,
"requires": {
"raw-loader": "~0.5.1"
}
},
"ssf": {
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.3.tgz",
"integrity": "sha512-pRuUdW0WwyB2doSqqjWyzwCD6PkfxpHAHdZp39K3dp/Hq7f+xfMwNAWIi16DyrRg4gg9c/RvLYkJTSawTPTm1w==",
"requires": {
"frac": "~1.1.2"
}
},
"wmf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz",
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
},
"xlsx": {
"version": "0.15.6",
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.15.6.tgz",
"integrity": "sha512-7vD9eutyLs65iDjNFimVN+gk/oDkfkCgpQUjdE82QgzJCrBHC4bGPH7fzKVyy0UPp3gyFVQTQEFJaWaAvZCShQ==",
"requires": {
"adler-32": "~1.2.0",
"cfb": "^1.1.4",
"codepage": "~1.14.0",
"commander": "~2.17.1",
"crc-32": "~1.2.0",
"exit-on-epipe": "~1.0.1",
"ssf": "~0.10.3",
"wmf": "~1.0.1"
}
}
}
}
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="20" height="20" viewBox="0 0 20 20"><defs><clipPath id="master_svg0_1426_37272"><rect x="0" y="0" width="20" height="20" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_1426_37272)"><g><path d="M10.000078046875,1.6666641235351562C5.4050780468749995,1.6666641235351562,1.666748046875,5.404994123535156,1.666748046875,9.999994123535156C1.666748046875,14.594964123535156,5.4050780468749995,18.333364123535155,10.000078046875,18.333364123535155C14.595048046875,18.333364123535155,18.333448046875,14.594964123535156,18.333448046875,9.999994123535156C18.333448046875,5.404994123535156,14.595048046875,1.6666641235351562,10.000078046875,1.6666641235351562ZM15.765048046875,6.666664123535156L13.844248046875,6.666664123535156C13.638448046875,5.667494123535156,13.340048046875,4.779164123535156,12.967548046875,4.038334123535156C14.136748046875,4.623334123535156,15.110048046875,5.539994123535156,15.765048046875,6.666664123535156ZM16.666748046875,9.999994123535156C16.666748046875,10.576664123535156,16.585948046875,11.132494123535157,16.447548046875,11.666664123535156L14.089248046875,11.666664123535156C14.139248046875,11.130834123535156,14.166748046875,10.574164123535157,14.166748046875,9.999994123535156C14.166748046875,9.425834123535157,14.139248046875,8.869164123535157,14.089248046875,8.333334123535156L16.447548046875,8.333334123535156C16.585948046875,8.867494123535156,16.666748046875,9.423334123535156,16.666748046875,9.999994123535156ZM10.000078046875,16.666664123535156C9.297578046875,16.666664123535156,8.375918046875,15.432464123535157,7.870918046875,13.333364123535157L12.128448046875,13.333364123535157C11.624248046875,15.432464123535157,10.702578046875,16.666664123535156,10.000078046875,16.666664123535156ZM7.590078046875,11.666664123535156C7.534248046875,11.142494123535156,7.500078046875,10.589164123535156,7.500078046875,9.999994123535156C7.500078046875,9.410834123535157,7.534248046875,8.857494123535156,7.590078046875,8.333334123535156L12.410048046875,8.333334123535156C12.465948046875,8.857494123535156,12.500048046875,9.410834123535157,12.500048046875,9.999994123535156C12.500048046875,10.589164123535156,12.465948046875,11.142494123535156,12.410048046875,11.666664123535156L7.590078046875,11.666664123535156ZM3.333418046875,9.999994123535156C3.333418046875,9.423334123535156,3.414248046875,8.867494123535156,3.552578046875,8.333334123535156L5.910918046875,8.333334123535156C5.860918046875,8.869164123535157,5.833418046875,9.425834123535157,5.833418046875,9.999994123535156C5.833418046875,10.574164123535157,5.860918046875,11.130834123535156,5.910918046875,11.666664123535156L3.552578046875,11.666664123535156C3.414248046875,11.132494123535157,3.333418046875,10.576664123535156,3.333418046875,9.999994123535156ZM10.000078046875,3.333334123535156C10.702578046875,3.333334123535156,11.624248046875,4.567494123535156,12.129248046875,6.666664123535156L7.870918046875,6.666664123535156C8.375918046875,4.567494123535156,9.297578046875,3.333334123535156,10.000078046875,3.333334123535156ZM7.033418046875,4.038334123535156C6.660918046875,4.779164123535156,6.362578046875,5.667494123535156,6.156748046875,6.666664123535156L4.235078046875,6.666664123535156C4.890078046875,5.539994123535156,5.863418046875,4.623334123535156,7.033418046875,4.038334123535156ZM4.235078046875,13.333364123535157L6.155918046875,13.333364123535157C6.361748046875,14.332464123535157,6.660078046875,15.220864123535156,7.032578046875,15.961664123535156C5.863418046875,15.376664123535157,4.890078046875,14.459964123535157,4.235078046875,13.333364123535157ZM12.966748046875,15.961664123535156C13.339248046875,15.220864123535156,13.636748046875,14.332464123535157,13.843448046875,13.333364123535157L15.764248046875,13.333364123535157C15.110048046875,14.459964123535157,14.136748046875,15.376664123535157,12.966748046875,15.961664123535156Z" fill="#FFFFFF" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="20" height="20" viewBox="0 0 20 20"><defs><clipPath id="master_svg0_1426_37270"><rect x="0" y="0" width="20" height="20" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_1426_37270)"><g><path d="M3.3415480468750003,2.5C2.423219046875,2.5,1.675719336875,3.246706,1.674886066875,4.16504L1.666748046875,19.165L5.000078046875,15.8333L16.666748046875,15.8333C17.585948046875,15.8333,18.333448046875,15.0858,18.333448046875,14.1667L18.333448046875,4.16667C18.333448046875,3.2475,17.585948046875,2.5,16.666748046875,2.5L3.3415480468750003,2.5ZM3.3415480468750003,4.16667L16.666748046875,4.16667L16.666748046875,14.1667L4.309978046875,14.1667L3.3366680468750003,15.1416L3.3415480468750003,4.16667ZM5.833418046875,8.33333L5.833418046875,10L7.500078046875,10L7.500078046875,8.33333L5.833418046875,8.33333ZM9.166748046875,8.33333L9.166748046875,10L10.833418046875,10L10.833418046875,8.33333L9.166748046875,8.33333ZM12.500048046875,8.33333L12.500048046875,10L14.166748046875,10L14.166748046875,8.33333L12.500048046875,8.33333Z" fill="#FFFFFF" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="30" height="30" viewBox="0 0 30 30">
<g style="mix-blend-mode:passthrough">
<g style="mix-blend-mode:passthrough">
<g style="mix-blend-mode:passthrough">
<g style="mix-blend-mode:passthrough">
</g>
<g style="mix-blend-mode:passthrough">
<path d="M7.5,12.5C6.125,12.5,5,13.625,5,15C5,16.375,6.125,17.5,7.5,17.5C8.875,17.5,10,16.375,10,15C10,13.625,8.875,12.5,7.5,12.5ZM12.5,15C12.5,13.625,13.625,12.5,15,12.5C16.375,12.5,17.5,13.625,17.5,15C17.5,16.375,16.375,17.5,15,17.5C13.625,17.5,12.5,16.375,12.5,15ZM22.5,12.5C21.125,12.5,20,13.625,20,15C20,16.375,21.125,17.5,22.5,17.5C23.875,17.5,25,16.375,25,15C25,13.625,23.875,12.5,22.5,12.5Z" fill-rule="evenodd" fill="#27ACAA" fill-opacity="1"/>
</g></g></g></g></svg>
\ No newline at end of file
此差异已折叠。
...@@ -57,7 +57,7 @@ export default class App extends Vue { ...@@ -57,7 +57,7 @@ export default class App extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './styles/default.scss'; @import './styles/default.less';
</style> </style>
...@@ -14,10 +14,7 @@ import { entityServiceRegister } from '@/service/entity-service-register'; ...@@ -14,10 +14,7 @@ import { entityServiceRegister } from '@/service/entity-service-register';
import { counterServiceRegister } from '@/counter/counter-service-register'; import { counterServiceRegister } from '@/counter/counter-service-register';
import { codeListRegister } from '@codelist/codelist-register'; import { codeListRegister } from '@codelist/codelist-register';
import { messageServiceRegister } from '@/message/message-service-register'; import { messageServiceRegister } from '@/message/message-service-register';
import AppIcon from './components/app-icon/app-icon.vue'
import AppCaption from './components/app-caption/app-caption.vue'
import AppHelp from './components/app-help/app-help.vue'
import AppButton from './components/app-button/app-button.vue'
import InputBox from './components/input-box/input-box.vue' import InputBox from './components/input-box/input-box.vue'
import AppKeepAlive from './components/app-keep-alive/app-keep-alive.vue' import AppKeepAlive from './components/app-keep-alive/app-keep-alive.vue'
import TabPageExp from './components/tab-page-exp/tab-page-exp.vue' import TabPageExp from './components/tab-page-exp/tab-page-exp.vue'
...@@ -139,22 +136,8 @@ import AppCtrlPos from './components/layout-element/structure/app-ctrl-pos/app-c ...@@ -139,22 +136,8 @@ import AppCtrlPos from './components/layout-element/structure/app-ctrl-pos/app-c
import AppPresetButton from './components/layout-element/interactive/app-preset-button/app-preset-button.vue'; import AppPresetButton from './components/layout-element/interactive/app-preset-button/app-preset-button.vue';
import AppFieldImageDynamic from './components/layout-element/media/app-field-image-dynamic/app-field-image-dynamic.vue'; import AppFieldImageDynamic from './components/layout-element/media/app-field-image-dynamic/app-field-image-dynamic.vue';
import AppTodoList from './components/app-todo-list/app-todo-list.vue'; import AppTodoList from './components/app-todo-list/app-todo-list.vue';
import AppGridPagination from './components/app-grid-pagination/app-grid-pagination.vue';
import AppSearchbar from './components/app-searchbar/app-searchbar.vue';
import AppEYUpload from './components/app-ey-upload/app-ey-upload.vue';
import AppEYMPicker from './components/app-ey-mpicker/app-ey-mpicker.vue';
import ExtendActionTimeline from './components/extend-action-timeline/extend-action-timeline.vue'; import ExtendActionTimeline from './components/extend-action-timeline/extend-action-timeline.vue';
import AppAddressCascader from './components/app-address-cascader/app-address-cascader.vue';
import AppDateRange from './components/app-date-range/app-date-range.vue';
// 布局组件
import AppIndexViewLayoutLeft from './layout/index-view-layout-left/index-view-layout-left.vue';
import AppIndexViewLayoutTop from './layout/index-view-layout-top/index-view-layout-top.vue';
import AppGridViewLayout from './layout/grid-view-layout/grid-view-layout.vue';
import AppEditViewLayout from './layout/edit-view-layout/edit-view-layout.vue';
import AppMEditViewLayout from './layout/medit-view-layout/medit-view-layout.vue';
import AppPickUpViewLayout from './layout/pickup-view-layout/pickup-view-layout.vue';
import AppMPickUpViewLayout from './layout/mpickup-view-layout/mpickup-view-layout.vue';
import AppPickUpGridViewLayout from './layout/pickup-grid-view-layout/pickup-grid-view-layout.vue';
// 全局挂载UI实体服务注册中心 // 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister; window['uiServiceRegister'] = uiServiceRegister;
// 全局挂载实体权限服务注册中心 // 全局挂载实体权限服务注册中心
...@@ -181,15 +164,6 @@ export const AppComponents = { ...@@ -181,15 +164,6 @@ export const AppComponents = {
v.prototype.$verify = Verify; v.prototype.$verify = Verify;
v.prototype.$viewTool = ViewTool; v.prototype.$viewTool = ViewTool;
v.prototype.$uiActionTool = UIActionTool; v.prototype.$uiActionTool = UIActionTool;
v.component('app-icon',AppIcon);
v.component('app-caption',AppCaption);
v.component('app-help',AppHelp);
v.component('app-button',AppButton);
v.component('app-medit-view-layout',AppMEditViewLayout);
v.component('app-edit-view-layout',AppEditViewLayout);
v.component('app-index-view-layout-top',AppIndexViewLayoutTop);
v.component('app-index-view-layout-left',AppIndexViewLayoutLeft);
v.component('app-grid-view-layout',AppGridViewLayout);
v.component('app-department-personnel',AppDepartmentPersonnel); v.component('app-department-personnel',AppDepartmentPersonnel);
v.component('app-panel-button',AppPanelButton); v.component('app-panel-button',AppPanelButton);
v.component('app-panel-field',AppPanelField); v.component('app-panel-field',AppPanelField);
...@@ -314,15 +288,6 @@ export const AppComponents = { ...@@ -314,15 +288,6 @@ export const AppComponents = {
v.component('app-preset-button',AppPresetButton); v.component('app-preset-button',AppPresetButton);
v.component('app-field-image-dynamic', AppFieldImageDynamic); v.component('app-field-image-dynamic', AppFieldImageDynamic);
v.component('app-todo-list',AppTodoList); v.component('app-todo-list',AppTodoList);
v.component('app-grid-pagination',AppGridPagination);
v.component('app-searchbar',AppSearchbar);
v.component('app-ey-upload',AppEYUpload);
v.component('app-ey-mpicker',AppEYMPicker);
v.component('extend-action-timeline',ExtendActionTimeline); v.component('extend-action-timeline',ExtendActionTimeline);
v.component('app-pickup-view-layout',AppPickUpViewLayout);
v.component('app-mpickup-view-layout',AppMPickUpViewLayout);
v.component('app-pickup-grid-view-layout',AppPickUpGridViewLayout);
v.component('app-address-cascader',AppAddressCascader);
v.component('app-date-range',AppDateRange);
}, },
}; };
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="6.5" height="4.013750076293945" viewBox="0 0 6.5 4.013750076293945"><g style="mix-blend-mode:passthrough" transform="matrix(0,1,-1,0,6.5,-6.5)"><path d="M7.26375,0L6.5,0.76375L8.980830000000001,3.25L6.5,5.73625L7.26375,6.5L10.51375,3.25L7.26375,0Z" fill-rule="evenodd" fill="#747480" fill-opacity="1"/></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="4.013750076293945" height="6.5" viewBox="0 0 4.013750076293945 6.5"><g style="mix-blend-mode:passthrough"><path d="M0.76375,0L0,0.76375L2.48083,3.25L0,5.73625L0.76375,6.5L4.01375,3.25L0.76375,0Z" fill-rule="evenodd" fill="#747480" fill-opacity="1"/></g></svg>
\ No newline at end of file
...@@ -28,6 +28,6 @@ export default class Error404 extends Vue { ...@@ -28,6 +28,6 @@ export default class Error404 extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './404.scss'; @import './404.less';
</style> </style>
\ No newline at end of file
...@@ -28,6 +28,6 @@ export default class Error404 extends Vue { ...@@ -28,6 +28,6 @@ export default class Error404 extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './500.scss'; @import './500.less';
</style> </style>
\ No newline at end of file
...@@ -163,6 +163,6 @@ export default class ActionTimeline extends Vue { ...@@ -163,6 +163,6 @@ export default class ActionTimeline extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './action-timeline.scss'; @import './action-timeline.less';
</style> </style>
\ No newline at end of file
...@@ -150,6 +150,6 @@ export default class AppActionBar extends Vue { ...@@ -150,6 +150,6 @@ export default class AppActionBar extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import "./app-actionbar.scss"; @import "./app-actionbar.less";
</style> </style>
\ No newline at end of file
.app-address-cascader {
>.el-cascader {
width: 100%;
}
}
.app-address-cascader__popper-class {
.el-cascader-node {
padding-left: 10px;
padding-right: 15px;
margin-top: 4px;
height: 18px;
.el-cascader-node__label {
height: inherit;
font-size: 12px;
font-weight: 400;
color: var(--app-color-gray-100);
line-height: 18px;
height: 18px;
padding: 0;
>div{
height: inherit;
}
.cascader-node-label{
height: inherit;
line-height: inherit;
}
.node__icon {
width: 13px;
height: 13px;
margin: 2.5px 4.5px;
vertical-align: text-bottom;
}
}
.selected-node{
background-color: var(--app-color-gray-250);
}
}
.el-cascader-node__label+.el-cascader-node__postfix.el-icon-arrow-right {
// 选项去掉右侧小图标
display: none;
}
.el-icon-check {
// 去掉选中小对勾
display: none;
}
}
\ No newline at end of file
<template>
<div class="app-address-cascader">
<el-cascader popper-class="app-address-cascader__popper-class" :disabled="disabled" size="medium"
v-model="CurrentVal" :options="items" separator=" - " @expand-change="selectChange" @change="nodeChange"
@visible-change="onChange">
<template slot-scope="{ node, data }">
<div :class="{ 'selected-node': isSelect(data.value) }">
<span v-if="!node.isLeaf" class="node__icon">
<img src="@/assets/img/dropdown-icon.svg" v-if="isSelect(data.value)">
<img src="@/assets/img/select-right-icon.svg" v-else>
</span>
<span class="cascader-node-label">{{ data.label }}</span>
</div>
</template>
</el-cascader>
</div>
</template>
<script lang="ts">
import { Component, Vue, Prop} from 'vue-property-decorator';
import CodeListService from '@/codelist/codelist-service';
@Component({})
export default class AppAddressCascader extends Vue {
/**
* 属性名称
*
* @type {*}
* @memberof AppCheckBox
*/
@Prop() name?: any;
/**
* 传入值
* @type {any}
* @memberof AppAddressCascader
*/
@Prop() public value?: any;
/**
* 是否禁用
* @type {boolean}
* @memberof AppAddressCascader
*/
@Prop() public disabled?: boolean;
/**
* 代码表标识
*
* @type {string}
* @memberof AppAddressCascader
*/
@Prop() public tag?: string;
/**
* 局部上下文导航参数
*
* @type {any}
* @memberof AppCheckBox
*/
@Prop() public localContext!: any;
/**
* 局部导航参数
*
* @type {any}
* @memberof AppCheckBox
*/
@Prop() public localParam!: any;
/**
* 传入表单数据
*
* @type {*}
* @memberof AppCheckBox
*/
@Prop() public data?: any;
/**
* 视图上下文
*
* @type {*}
* @memberof AppCheckBox
*/
@Prop() public context!: any;
/**
* 代码表类型
*
* @type {string}
* @memberof AppAddressCascader
*/
@Prop() public codelistType?: string;
/**
* 视图参数
*
* @type {*}
* @memberof AppCheckBox
*/
@Prop() public viewparams!: any;
/**
* 代码表服务对象
*
* @type {CodeListService}
* @memberof AppAddressCascader
*/
public codeListService: CodeListService = new CodeListService();
//判断是否被选中
isSelect(value: any) {
if (this.selectNode.indexOf(value) < 0) {
return false;
} else {
return true;
}
}
/**
* 当前值
*
* @memberof AppAddressCascader
*/
get CurrentVal() {
return this.value;
}
/**
* 值变化
*
* @memberof AppAddressCascader
*/
set CurrentVal(val: any) {
this.$emit("change", {name:this.name,value:val[val.length-1]});
}
/**
* 城市数据
*
* @memberof AppAddressCascader
*/
public items: any = [];
public selectNode: any[] = [];
/**
* 获取树形代码表数据
*
* @memberof AppAddressCascader
*/
public load() {
if (this.tag) {
if (Object.is(this.codelistType, "STATIC")) {
const codelist = this.$store.getters.getCodeList(this.tag);
if (codelist) {
this.formatData([...JSON.parse(JSON.stringify(codelist.items))]);
} else {
console.warn(`${this.tag}--代码表配置异常`);
}
} else if (Object.is(this.codelistType, "DYNAMIC")) {
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag, _context, _param).then((res: any) => {
this.formatData([...JSON.parse(JSON.stringify(res))]);
}).catch((error: any) => {
console.error(error);
});
}
}
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof AppCheckBox
*/
public handlePublicParams(arg: any) {
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.localContext && Object.keys(this.localContext).length > 0) {
let _context = this.$util.computedNavData(this.data, arg.context, arg.param, this.localContext);
Object.assign(arg.context, _context);
}
if (this.localParam && Object.keys(this.localParam).length > 0) {
let _param = this.$util.computedNavData(this.data, arg.param, arg.param, this.localParam);
Object.assign(arg.param, _param);
}
}
//展开面板
public onChange(value: boolean) {
if (value) {
this.load()
}
}
//格式化代码表
public formatData(data: any[]) {
if (data.length == 0) {
this.items = []
} else {
this.items = this.handleChildren(undefined, data);
}
}
//处理父子层级
public handleChildren(pValue: any, data: any) {
let tempData: any[] = [];
data.forEach((item: any, index: number) => {
if (Object.is(pValue, item.pvalue)) {
tempData.push(...data.splice(index, 1));
}
})
tempData.forEach((item: any) => {
const children = this.handleChildren(item.value, data);
if (children.length == 0) {
return
}
if (item.children) {
item.children.push(...children);
} else {
item.children = children;
}
})
return tempData;
}
//选中树节点改变
public selectChange(data: any) {
this.selectNode = data;
}
//选中叶子值改变
public nodeChange(data:any){
this.selectNode = data;
}
/**
* 生命周期
*
* @memberof AppAddressCascader
*/
public created() {
this.load();
}
}
</script>
<style lang="scss">
@import "./app-address-cascader.scss";
</style>
...@@ -93,6 +93,6 @@ export default class AppAddressSelection extends Vue { ...@@ -93,6 +93,6 @@ export default class AppAddressSelection extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './app-address-selection.scss'; @import './app-address-selection.less';
</style> </style>
\ No newline at end of file
...@@ -112,7 +112,7 @@ export default class AppAlertGroup extends Vue { ...@@ -112,7 +112,7 @@ export default class AppAlertGroup extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
.view-body-messages { .view-body-messages {
margin-bottom: 6px; margin-bottom: 6px;
} }
......
...@@ -230,6 +230,6 @@ export default class AppAlert extends Vue { ...@@ -230,6 +230,6 @@ export default class AppAlert extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import './app-alert.scss'; @import './app-alert.less';
</style> </style>
\ No newline at end of file
.ivu-auto-complete {
.ivu-select-dropdown-list {
height: 300px;
}
}
...@@ -319,6 +319,6 @@ export default class AppAutocomplete extends Vue { ...@@ -319,6 +319,6 @@ export default class AppAutocomplete extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './app-autocomplete.scss'; @import './app-autocomplete.less';
</style> </style>
\ No newline at end of file
.el-breadcrumb__inner, .el-breadcrumb__inner,
.el-breadcrumb__inner a { .el-breadcrumb__inner a {
font-weight: 400 !important; font-weight: 400 !important;
...@@ -6,28 +7,18 @@ ...@@ -6,28 +7,18 @@
.app-breadcrumb.el-breadcrumb { .app-breadcrumb.el-breadcrumb {
display: inline-block; display: inline-block;
font-size: 14px; font-size: 14px;
background-color: var(--ey-color-gray-250); line-height: 50px;
padding: 16px 5%; margin-left: 8px;
.no-redirect { .no-redirect {
color: var(--ey-color-black); color: #97a8be;
font-weight: bold;
cursor: text; cursor: text;
.curselected{ .curselected{
color: #2196F3;
font-weight: bold; font-weight: bold;
} }
.app-breadcrumb-selected{ .app-breadcrumb-selected{
cursor: pointer; cursor: pointer;
} }
} }
.el-breadcrumb__inner a {
color: var(--ey-color-gray-100);
}
.el-breadcrumb__separator{
margin: 0 3px;
color: var(--ey-color-black);
}
}
.app-breadcrumb.only-root{
display: none;
} }
\ No newline at end of file
<template> <template>
<el-breadcrumb :class="['app-breadcrumb', breadcrumbs.length === 1 ? 'only-root' : '']" :separator="separator"> <el-breadcrumb class="app-breadcrumb" :separator="separator">
<transition-group name="breadcrumb"> <transition-group name="breadcrumb">
<template v-if="Object.is(this.navModel,'route')"> <template v-if="Object.is(this.navModel,'route')">
<el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id"> <el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id">
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
</template> </template>
<template v-if="!Object.is(this.navModel,'route')"> <template v-if="!Object.is(this.navModel,'route')">
<el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.path"> <el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.path">
<span v-if="index === breadcrumbs.length-1" class="no-redirect" >{{ getCaption(item.meta)}}</span> <span v-if="index === breadcrumbs.length-1" class="no-redirect" >{{ $t(item.meta.caption)}}</span>
<a v-else @click.prevent="handleLink(item)" >{{ getCaption(item.meta) }}</a> <a v-else @click.prevent="handleLink(item)" >{{ $t(item.meta.caption) }}</a>
</el-breadcrumb-item> </el-breadcrumb-item>
</template> </template>
</transition-group> </transition-group>
...@@ -113,18 +113,6 @@ export default class Breadcrumb extends Vue { ...@@ -113,18 +113,6 @@ export default class Breadcrumb extends Vue {
} }
} }
/**
* 获取项标题
*
* @memberof Breadcrumb
*/
public getCaption(meta: any): any {
const caption = meta.captionLanResTag ? this.$t(meta.captionLanResTag, meta.caption) : meta.caption;
return meta.info && !Object.is(meta.info, "")
? `${this.$t(caption)} - ${this.$t(meta.info)}`
: this.$t(caption);
}
/** /**
* 获取面包屑数据 * 获取面包屑数据
* *
...@@ -228,6 +216,6 @@ export default class Breadcrumb extends Vue { ...@@ -228,6 +216,6 @@ export default class Breadcrumb extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import "./app-breadcrumb.scss"; @import "./app-breadcrumb.less";
</style> </style>
\ No newline at end of file
...@@ -55,6 +55,6 @@ export default class AppBuild extends Vue { ...@@ -55,6 +55,6 @@ export default class AppBuild extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import './app-build.scss'; @import './app-build.less';
</style> </style>
\ No newline at end of file
<template>
<i-button class="app-button" :type="type" :size="size" :disabled="disabled" @click="handleClick">
<i v-if="showIcon" :class="{[iconClass ? iconClass : '']: true, 'app-button__icon': true}"></i>
<span v-if="showCaption" class="app-button__caption">
{{caption}}
</span>
</i-button>
</template>
<script lang="ts">
import { Component, Vue, Prop } from 'vue-property-decorator'
@Component({
})
export default class AppButton extends Vue {
/**
* 按钮类型
*
* @type {string}
* @memberof AppButton
*/
@Prop({ default: 'default' }) public type!: "default" | "primary" | "dashed" | "text" | "info" | "success" | "warning" | "error";
/**
* 按钮大小
*
* @type {string}
* @memberof AppButton
*/
@Prop({ default: 'default' }) public size!: 'large' | 'small' | 'default';
/**
* 按钮禁用
*
* @type {boolean}
* @memberof AppButton
*/
@Prop({ default: false }) public disabled!: boolean;
/**
* 按钮图标
*
* @type {string}
* @memberof AppButton
*/
@Prop() public iconClass?: string;
/**
* 按钮标题
*
* @type {string}
* @memberof AppButton
*/
@Prop() public caption?: string;
/**
* 显示图标
*
* @type {boolean}
* @memberof AppButton
*/
@Prop({ default: true }) public showIcon!: boolean;
/**
* 显示标题
*
* @type {boolean}
* @memberof AppButton
*/
@Prop({ default: true }) public showCaption!: boolean;
/**
* 处理按钮点击
*
* @prama
* @memberof AppButton
*/
public handleClick($event: MouseEvent) {
this.$emit('click', $event);
}
}
</script>
<style lang='scss'>
@import "./app-button.scss";
</style>
\ No newline at end of file
.app-calendar-itemlayoutpanel{
display: flex;
.item-icon{
width: 40px;
height: 40px;
margin-right: 10px;
img{
width: 100%;
height: 100%;
border-radius: 50%;
}
}
.item-text{
.title{
font-size: 18px;
font-weight: bold;
}
.srfdescription{
margin-top: 14px;
margin-bottom: 14px;
}
.date{
.start{
margin:0 6px;
}
.end{
margin:0 6px;
}
}
}
}
<template>
<div class="app-calendar-itemlayoutpanel">
<div class="item-icon">
</div>
<div class="item-text">
<div class="title">{{inputData.title}}</div>
<div class="srfdescription">{{inputData.srfdescription}}</div>
<div class="date">
{{ $t('userCustom.AppCalendarItemlayoutpanel.from') }}
<span class="start">{{inputData.start}}</span>
{{$t('userCustom.AppCalendarItemlayoutpanel.to')}}
<span class="end">{{inputData.end}}</span>
</div>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue, Prop, Model, Watch } from 'vue-property-decorator';
import { Subject,Subscription } from 'rxjs';
@Component({
})
export default class AppCalendarItemlayoutpanel extends Vue {
/**
* 面板数据对象
*
* @type {*}
* @memberof AppCalendarItemlayoutpanel
*/
@Prop() public inputData?: any;
}
</script>
<style lang="scss">
@import './app-calendar-itemlayoutpanel.scss';
</style>
\ No newline at end of file
.app-caption {
font-size: 28px;
font-weight: bold;
line-height: 22px;
color: var(--ey-color-black);
&.app-caption--embed {
font-size: 14px;
height: 25px;
display: flex;
align-items: center;
padding-left: 7px;
border-left: 4px solid var(--app-color-blue);
}
}
\ No newline at end of file
<template>
<div :class="`app-caption app-caption--${openType.toLowerCase()}`">{{caption}}</div>
</template>
<script lang='ts'>
import { Vue, Component, Prop } from 'vue-property-decorator';
@Component({})
export default class AppCaption extends Vue {
/**
* 视图标题
*
* @type {string}
* @memberof AppCaption
*/
@Prop() public caption?: string;
/**
* 打开方式
*
* @type {'ROUTE' | 'EMBED' | 'MODAL'}
* @memberof AppCaption
*/
@Prop({ default: 'ROUTE' }) public openType!: 'ROUTE' | 'EMBED' | 'MODAL';
}
</script>
<style lang="scss">
@import './app-caption.scss';
</style>
\ No newline at end of file
<template> <template>
<checkbox-group class="app-checkbox-list" v-model="selectArray"> <checkbox-group class="app-checkbox-list" v-model="selectArray">
<checkbox v-for="(item,index) in items" :key="index" :label="item.value" :disabled="isDisabled || item.disabled"> <checkbox v-for="(item,index) in items" :key="index" :label="item.value" :disabled="isDisabled || item.disabled">
<span>{{ item.textLanRes ? $t(item.textLanRes, item.text) : item.text }}</span> <span>{{Object.is(codelistType,'STATIC') ? $t('codelist.'+tag+'.'+item.value) : item.text}}</span>
</checkbox> </checkbox>
</checkbox-group > </checkbox-group >
</template> </template>
...@@ -284,6 +284,6 @@ export default class AppCheckBox extends Vue { ...@@ -284,6 +284,6 @@ export default class AppCheckBox extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './app-checkbox-list.scss'; @import './app-checkbox-list.less';
</style> </style>
\ No newline at end of file
.app-checkbox { .app-checkbox-list {
overflow: auto; overflow: auto;
} }
\ No newline at end of file
<template> <template>
<div class="app-checkbox"> <div class="checkbox">
<checkbox v-model="CurrentVal" :disabled="disabled"></checkbox> <checkbox v-model="CurrentVal" :disabled="disabled"></checkbox>
</div> </div>
</template> </template>
...@@ -50,6 +50,6 @@ export default class AppCheckbox extends Vue { ...@@ -50,6 +50,6 @@ export default class AppCheckbox extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import "./app-checkbox.scss"; @import "./app-checkbox.less";
</style> </style>
\ No newline at end of file
...@@ -179,6 +179,6 @@ export default class AppColorPicker extends Vue { ...@@ -179,6 +179,6 @@ export default class AppColorPicker extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import './app-color-picker.scss'; @import './app-color-picker.less';
</style> </style>
...@@ -152,7 +152,7 @@ export default class AppColorSpan extends Vue { ...@@ -152,7 +152,7 @@ export default class AppColorSpan extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
.text-color{ .text-color{
padding: 2px 8px; padding: 2px 8px;
margin: 6px 6px 6px 0px; margin: 6px 6px 6px 0px;
......
...@@ -53,6 +53,6 @@ export default class AppColumnFormat extends Vue { ...@@ -53,6 +53,6 @@ export default class AppColumnFormat extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import "./app-column-format.scss"; @import "./app-column-format.less";
</style> </style>
\ No newline at end of file
...@@ -314,6 +314,6 @@ export default class AppColumnLink extends Vue { ...@@ -314,6 +314,6 @@ export default class AppColumnLink extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './app-column-link.scss'; @import './app-column-link.less';
</style> </style>
\ No newline at end of file
...@@ -148,6 +148,6 @@ export default class AppColumnRender extends Vue { ...@@ -148,6 +148,6 @@ export default class AppColumnRender extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import "./app-column-render.scss"; @import "./app-column-render.less";
</style> </style>
\ No newline at end of file
...@@ -457,6 +457,6 @@ export default class AppDashboardDesign extends Vue { ...@@ -457,6 +457,6 @@ export default class AppDashboardDesign extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import "./app-dashboard-design.scss"; @import "./app-dashboard-design.less";
</style> </style>
\ No newline at end of file
.app-data-card{
padding: 10px;
.data-item{
display: flex;
margin-bottom: 16px;
.item-text{
.srfmajortext{
font-size: 18px;
font-weight: bold;
}
.srfdescription{
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
overflow: hidden;
}
}
.item-icon{
width: 50px;
height: 50px;
margin-right: 10px;
.single-card-img{
border-radius: 50%;
width: 100%;
height: 100%;
}
}
}
.data-view-item-action{
width: 100%;
display: flex;
justify-content: space-around;
border-top: 1px solid #e2e2e2;
padding-top: 10px;
button{
width: 50%;
font-size: 15px;
border: none;
background-color: transparent;
border: none;
}
}
}
\ No newline at end of file
<template>
<div class="app-data-card">
<div class="data-item">
<div class="item-icon">
<img v-if="inputData.srficonpath" :src="inputData.srficonpath" class="single-card-img" />
<img v-else src="/assets/img/noimage.png" class="single-card-img" />
</div>
<div class="item-text">
<div class="srfmajortext">{{inputData.srfmajortext}}</div>
<div class="srfdescription" :title="inputData.srfdescription">{{inputData.srfdescription}}</div>
</div>
</div>
<div class="data-view-item-action" v-if="actionModel">
<template v-for="(action,index) in Object.keys(actionModel)">
<button type="info" :key="index" @click="uiAction(inputData, action, $event)">
<i :class="actionModel[action].icon" style="margin-right:2px;"></i>
<span>{{actionModel[action].caption}}</span>
</button>
</template>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue, Prop, Model, Watch } from 'vue-property-decorator';
import { Subject,Subscription } from 'rxjs';
@Component({
})
export default class AppDataCard extends Vue {
/**
* 面板数据对象
*
* @type {*}
* @memberof AppDataCard
*/
@Prop() public inputData?: any;
/**
* 操作栏模型
*
* @type {*}
* @memberof AppDataCard
*/
@Prop() public actionModel:any;
/**
* 操作列界面行为
*
* @param {*} data
* @param {*} tag
* @param {*} $event
* @memberof AppDataCard
*/
public uiAction(data: any, tag: any, $event: any) {
this.$emit('uiAction',data, tag, $event)
}
}
</script>
<style lang="scss">
@import './app-data-card.scss';
</style>
\ No newline at end of file
// 导入视图样式 // 导入视图样式
.app-data-upload-view{ .app-data-upload-view{
font-family: "Microsoft YaHei";
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.main-content{ .main-content{
......
...@@ -607,6 +607,6 @@ export default class AppDataUploadView extends Vue { ...@@ -607,6 +607,6 @@ export default class AppDataUploadView extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import "./app-data-upload.scss"; @import "./app-data-upload.less";
</style> </style>
// 带时间
.app-date-range--datetime{
min-width: 333px;
}
// 不带时间
.app-date-range--date{
min-width: 210px;
}
\ No newline at end of file
<template>
<date-picker
:class="['app-date-range', 'app-date-range--' + type]"
:type="rangeType"
:value="realVal"
:placeholder="placeholder"
:disabled="disabled"
transfer
@on-change="onChange"
@on-open-change="onOpenChange"
></date-picker>
</template>
<script lang="ts">
import { Vue, Component, Prop, Watch } from "vue-property-decorator";
@Component({})
export default class AppDateRange extends Vue {
/**
* 是否禁用
*
* @type {string}
* @memberof AppDateRange
*/
@Prop({ default: false }) public disabled?: boolean;
/**
* placeholder
*
* @type {string}
* @memberof AppDateRange
*/
@Prop({ default: "请选择时间" }) public placeholder?: string;
/**
* 日期值格式化
*
* @type {string}
* @memberof AppDateRange
*/
@Prop() public valueFormat?: string;
/**
* 数据类型
*
* @type {string}
* @memberof AppDateRange
*/
@Prop({ default: "datetime" }) public type?: "datetime" | "date";
/**
* 开始属性名称
*
* @type {string}
* @memberof AppDateRange
*/
@Prop() public startField?: string;
/**
* 结束属性名称
*
* @type {string}
* @memberof AppDateRange
*/
@Prop() public endField?: string;
/**
* 传入表单数据
*
* @type {*}
* @memberof AppDateRange
*/
@Prop() public data?: any;
/**
* 实际组件维护的值
*
* @type {*}
* @memberof AppDateRange
*/
public realVal: any[] = [];
/**
* 是否修改过数据
* @type {boolean}
* @memberof AppDateRange
*/
public modified: boolean = false;
/**
* iview组件类型`
*
* @type {string}
* @memberof AppDateRange
*/
get rangeType() {
switch (this.type) {
case "date":
return "daterange";
default:
return "datetimerange";
}
}
/**
* 生命周期
*
* @type {string}
* @memberof AppDateRange
*/
created() {
if (!this.startField) {
this.$Notice.error({
title: this.$t("app.commonWords.wrong") as string,
desc: "没有配置开始属性",
});
}
if (!this.endField) {
this.$Notice.error({
title: this.$t("app.commonWords.wrong") as string,
desc: "没有配置结束属性",
});
}
}
/**
* 监控表单属性 data 值
*
* @memberof AppDateRange
*/
@Watch("data", { deep: true, immediate: true })
onDataChange(newVal: any, oldVal: any) {
if (newVal && this.startField && this.endField) {
this.realVal = [newVal[this.startField], newVal[this.endField]];
this.modified = false;
console.log(this.realVal);
}
}
/**
* iview组件值变更事件(只更新realVal,不抛出)
*
* @memberof AppDateRange
*/
onChange(values: any[]) {
this.realVal = values;
this.modified = true;
if(values[0]==='' && values[1] === ''){
//清空的情况,直接抛值,openChange会先触发,或不触发。
this.$emit("change", this.startField!, null);
this.$emit("change", this.endField!, null);
}
}
/**
* iview组件值关闭事件(如果数据有变更,则抛出change事件)
*
* @memberof AppDateRange
*/
onOpenChange(isOpen: boolean) {
if (!isOpen && this.modified) {
const [start, end] = this.realVal;
this.$emit("change", this.startField!, start);
this.$emit("change", this.endField!, end);
}
}
}
</script>
<style lang="scss">
@import "./app-date-range.scss";
</style>
...@@ -431,6 +431,6 @@ export default class AppDepartmentPersonnel extends Vue { ...@@ -431,6 +431,6 @@ export default class AppDepartmentPersonnel extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import './app-department-personnel.scss'; @import './app-department-personnel.less';
</style> </style>
\ No newline at end of file
...@@ -283,6 +283,6 @@ export default class AppDepartmentSelect extends Vue { ...@@ -283,6 +283,6 @@ export default class AppDepartmentSelect extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './app-department-select.scss'; @import './app-department-select.less';
</style> </style>
\ No newline at end of file
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
:viewdata="viewdata" :viewdata="viewdata"
:viewparam="viewparam" :viewparam="viewparam"
:viewDefaultUsage="false" :viewDefaultUsage="false"
openType="EMBED"
@viewdataschange="setValue($event)" @viewdataschange="setValue($event)"
style="height:100%;"> style="height:100%;">
</component> </component>
...@@ -286,6 +285,6 @@ export default class AppEmbedPicker extends Vue { ...@@ -286,6 +285,6 @@ export default class AppEmbedPicker extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './app-embed-picker.scss'; @import './app-embed-picker.less';
</style> </style>
\ No newline at end of file
...@@ -135,6 +135,6 @@ export default class AppExportExcel extends Vue { ...@@ -135,6 +135,6 @@ export default class AppExportExcel extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './app-export-excel.scss'; @import './app-export-excel.less';
</style> </style>
.app-ey-mpicker {
display: flex;
flex-direction: column;
gap: 10px;
.el-select {
width: 100%;
.el-input__suffix {
right: 25px;
}
}
.app-ey-mpicker__item {
width: 100%;
position: relative;
padding-right: 30px;
.app-ey-mpicker__search {
height: 34px;
position: absolute;
top: 0;
right: 40px;
color: var(--ey-color-gray-200);
font-size: 16px;
}
.app-ey-mpicker__button {
height: 34px;
position: absolute;
top: 0;
right: 4px;
display: flex;
align-items: center;
img {
height: 20px;
width: 20px;
}
}
}
}
\ No newline at end of file
.app-ey-upload {
>.el-row {
display: flex;
flex-direction: column;
align-items: flex-start;
.app-ey-upload__item + .app-ey-upload__item {
margin-top: 10px;
}
}
.el-upload {
height: 34px;
width: 270px;
.el-button {
height: 100%;
width: 100%;
padding: 4px 10px;
border-radius: 0;
background-color: var(--app-color-white);
border: 1px solid var(--app-color-gray-235);
&:hover {
color: var(--app-color-blue);
}
span {
font-size: 12px;
line-height: 20px;
display: flex;
align-items: center;
justify-content: center;
}
}
}
.app-ey-upload__item {
height: 34px;
display: flex;
align-items: center;
>div {
height: 100%;
}
}
.app-ey-upload__buttons {
width: 30px;
display: flex;
justify-content: center;
align-items: center;
img {
height: 20px;
width: 20px;
cursor: pointer;
}
}
.app-ey-upload__preview {
font-size: 12px;
line-height: 20px;
display: flex;
align-items: center;
gap: 10px;
.file-title {
color: var(--app-color-blue);
cursor: pointer;
min-width: 270px;
}
.file-icon {
cursor: pointer;
display: flex;
align-items: center;
}
.file-version {
min-width: 150px;
}
.file-size {
min-width: 120px;
}
.file-owner {
min-width: 180px;
}
.file-time {
min-width: 210px;
}
}
}
\ No newline at end of file
...@@ -513,6 +513,6 @@ export default class AppFileUpload extends Vue { ...@@ -513,6 +513,6 @@ export default class AppFileUpload extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './app-file-upload.scss'; @import './app-file-upload.less';
</style> </style>
\ No newline at end of file
.app-form-group {
>.ivu-card-head {
>p {
>i {
margin-right: 8px;
cursor: pointer;
}
}
}
>.ivu-card-extra {
.item-extract-mode {
display: flex;
.item {
margin-left: 12px;
}
}
}
}
.app-form-group.app-group-collapse-contant {
.ivu-card-body {
display: none;
}
}
.app-group-flex {
height: 100%;
overflow-y: auto;
overflow-x: hidden;
>.ivu-card-body {
height: calc(100% - 51px);
overflow-y: auto;
overflow-x: hidden;
}
}
\ No newline at end of file
.app-form-group {
.app-form-group-caption {
padding-left: 20px;
}
.collapse-icon {
font-size: 20px;
margin-right: 20px;
cursor: pointer;
}
>.ivu-card{
border-radius: 6px;
margin: 10px 0;
>.ivu-card-head{
height: 40px;
background:var(--ey-color-gray-400);
.app-form-group-caption{
font-size: 16px;
font-weight: bold;
color: var(--ey-color-black);
}
}
>.ivu-card-body {
padding: 20px 20px 10px 20px;
}
>.ivu-card-extra {
right: 20px;
top: 2px;
display: flex;
.app-button {
margin-left: 4px;
}
}
}
&.app-group-collapse-content {
>.ivu-card{
>.ivu-card-head {
color: var(--ey-color-gray-200);
border-bottom: none;
}
>.ivu-card-body {
display: none;
}
}
}
&.app-group-flex {
>.ivu-card{
height: 100%;
overflow-y: auto;
overflow-x: hidden;
>.ivu-card-body {
height: calc(100% - 51px);
overflow-y: auto;
overflow-x: hidden;
}
}
}
}
\ No newline at end of file
...@@ -12,14 +12,14 @@ ...@@ -12,14 +12,14 @@
</app-form-group2> </app-form-group2>
</template> </template>
<template v-else> <template v-else>
<card v-if="isShowCaption === true" :dis-hover="true"> <card v-if="isShowCaption === true" :bordered="false" :dis-hover="true" :class="classes">
<span class='app-form-group-caption' slot='title'> <p class='' slot='title'>
<icon v-if="titleBarCloseMode !== 0" :type="collapseContent ? 'md-add' : 'md-remove'" class="collapse-icon" <icon v-if="titleBarCloseMode !== 0" :type="collapseContant ? 'ios-arrow-dropright-circle' : 'ios-arrow-dropdown-circle'"
@click="clickCollapse"></icon> @click="clickCollapse"></icon>
<span :class="titleClass">{{caption}}</span> <span :class="titleClass">{{caption}}</span>
</span> </p>
<template v-if="uiActionGroup"> <template v-if="uiActionGroup">
<template slot='extra'> <a slot='extra'>
<template v-if="uiActionGroup.extractMode && Object.is(uiActionGroup.extractMode, 'ITEMS')"> <template v-if="uiActionGroup.extractMode && Object.is(uiActionGroup.extractMode, 'ITEMS')">
<dropdown :transfer="true" trigger='click'> <dropdown :transfer="true" trigger='click'>
<a href='javascript:void(0)'> <a href='javascript:void(0)'>
...@@ -55,19 +55,37 @@ ...@@ -55,19 +55,37 @@
</dropdown> </dropdown>
</template> </template>
<template v-if="!(uiActionGroup.extractMode && Object.is(uiActionGroup.extractMode, 'ITEMS'))"> <template v-if="!(uiActionGroup.extractMode && Object.is(uiActionGroup.extractMode, 'ITEMS'))">
<template v-if="uiActionGroup.details && Array.isArray(uiActionGroup.details)"> <span class='item-extract-mode'>
<app-button <template v-if="uiActionGroup.details && Array.isArray(uiActionGroup.details)">
v-for="(detail,index) in uiActionGroup.details" <div v-for="(detail,index) in uiActionGroup.details" :key="index">
:key="index" <span v-show="detail.visabled" :style="{'pointer-events':detail.disabled?'none':'auto','color':detail.disabled?'#7b7979':'#2d8cf0'}" class='item' @click="doUIAction($event, detail)">
type="primary" <template v-if="detail.isShowIcon">
:showIcon="detail.isShowIcon" <template v-if="detail.icon && !Object.is(detail.icon, '')">
:iconClass="detail.icon" <i :class="detail.icon" ></i>
@click="doUIAction($event, detail)" </template>
:caption="getCaption(detail)"> <template v-if="!(detail.icon && !Object.is(detail.icon, ''))">
</app-button> <div v-if="detail.img && !Object.is(detail.img, '')">
</template> <img :src="detail.img" />
</div>
</template>
</template>
&nbsp;
<span>
<template v-if="detail.isShowCaption">
<template v-if="uiActionGroup.langbase && !Object.is(uiActionGroup.langbase, '') && detail.uiactiontag && !Object.is(detail.uiactiontag, '')">
{{$t(`${uiActionGroup.langbase}.uiactions.${detail.uiactiontag}`)}}
</template>
<template v-if="!(uiActionGroup.langbase && !Object.is(uiActionGroup.langbase, '') && detail.uiactiontag && !Object.is(detail.uiactiontag, ''))">
{{detail.caption}}
</template>
</template>
</span>
</span>
</div>
</template>
</span>
</template> </template>
</template> </a >
</template> </template>
<template v-if="Object.is(layoutType, 'FLEX')"> <template v-if="Object.is(layoutType, 'FLEX')">
<slot></slot> <slot></slot>
...@@ -131,19 +149,6 @@ export default class AppFormGroup extends Vue { ...@@ -131,19 +149,6 @@ export default class AppFormGroup extends Vue {
} }
} }
/**
* 获取标题
*
* @memberof AppFormGroup
*/
public getCaption (detail: any) {
if (detail.captionLanbase) {
return this.$t(detail.captionLanbase, detail.caption);
} else {
return detail.caption;
}
}
/** /**
* 计算界面行为项权限状态 * 计算界面行为项权限状态
* *
...@@ -278,7 +283,7 @@ export default class AppFormGroup extends Vue { ...@@ -278,7 +283,7 @@ export default class AppFormGroup extends Vue {
* @type {boolean} * @type {boolean}
* @memberof AppFormGroup * @memberof AppFormGroup
*/ */
public collapseContent: boolean = false; public collapseContant: boolean = false;
/** /**
* 计算样式 * 计算样式
...@@ -290,7 +295,7 @@ export default class AppFormGroup extends Vue { ...@@ -290,7 +295,7 @@ export default class AppFormGroup extends Vue {
get classes(): string[] { get classes(): string[] {
return [ return [
'app-form-group', 'app-form-group',
this.isShowCaption && this.collapseContent ? 'app-group-collapse-content' : '', this.isShowCaption && this.collapseContant ? 'app-group-collapse-contant' : '',
this.isInfoGroupMode ? 'app-info-group-mode' : '', this.isInfoGroupMode ? 'app-info-group-mode' : '',
Object.is(this.layoutType, 'FLEX') ? 'app-group-flex': '' Object.is(this.layoutType, 'FLEX') ? 'app-group-flex': ''
]; ];
...@@ -313,7 +318,7 @@ export default class AppFormGroup extends Vue { ...@@ -313,7 +318,7 @@ export default class AppFormGroup extends Vue {
* @memberof AppFormGroup * @memberof AppFormGroup
*/ */
public created() { public created() {
this.collapseContent = this.titleBarCloseMode === 2 ? true : false; this.collapseContant = this.titleBarCloseMode === 2 ? true : false;
} }
/** /**
...@@ -322,7 +327,7 @@ export default class AppFormGroup extends Vue { ...@@ -322,7 +327,7 @@ export default class AppFormGroup extends Vue {
* @memberof AppFormGroup * @memberof AppFormGroup
*/ */
public clickCollapse(): void { public clickCollapse(): void {
this.collapseContent = !this.collapseContent; this.collapseContant = !this.collapseContant;
} }
/** /**
...@@ -346,6 +351,6 @@ export default class AppFormGroup extends Vue { ...@@ -346,6 +351,6 @@ export default class AppFormGroup extends Vue {
} }
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import './app-form-group.scss'; @import './app-form-group.less';
</style> </style>
\ No newline at end of file
...@@ -62,6 +62,6 @@ export default class AppFormGroup2 extends Vue { ...@@ -62,6 +62,6 @@ export default class AppFormGroup2 extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import './app-form-group2.scss'; @import './app-form-group2.less';
</style> </style>
\ No newline at end of file
.app-form-item {
height: 100%;
padding: 0 6px;
.editor {
height: 100%;
.ivu-form-item-content {
height: 100%;
min-height: 36px;
}
}
.app-form-item-label {
line-height: 21px;
padding: 6px 10px 6px 0px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.app-form-item.label-top, .app-form-item.label-bottom {
.app-form-item-label {
display: block;
}
}
.app-form-item.label-left, .app-form-item.label-right {
.app-form-item-label, .editor {
height: 100%;
}
}
.app-form-item.label-left {
.app-form-item-label {
float: left;
text-align: right;
}
}
.app-form-item.label-right {
.app-form-item-label {
float: right;
padding: 6px 0px 6px 10px;
}
}
.app-form-item.label-none {
>.app-form-item-label {
display: none !important;
}
}
\ No newline at end of file
.app-form-item {
height: 100%;
min-height: 45px;
padding: 0 15px;
.app-form-item-label {
line-height: 21px;
padding: 6px 10px 6px 0px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-left: 7px;
&.app-form-item-label--required {
padding-left: 0;
}
}
.required {
color: var(--app-color-red);
}
}
.app-form-item.label-top,
.app-form-item.label-bottom {
.app-form-item-label {
display: block;
}
}
.app-form-item.label-left,
.app-form-item.label-right {
.app-form-item-label,
.editor {
height: 100%;
}
}
.app-form-item.label-left {
.app-form-item-label {
float: left;
}
}
.app-form-item.label-right {
.app-form-item-label {
float: right;
padding: 6px 0px 6px 10px;
}
}
.app-form-item.label-none {
>.app-form-item-label {
display: none !important;
}
}
\ No newline at end of file
...@@ -30,18 +30,18 @@ ...@@ -30,18 +30,18 @@
:style="labelstyle" :style="labelstyle"
:class="labelclasses" :class="labelclasses"
> >
<span v-show="required" class="required">*</span> <span v-if="required" style="color:red;">* </span>
<span v-if="!isEmptyCaption"> <span v-if="!isEmptyCaption">
<el-tooltip v-if="isShowTip" placement="top" effect="light"> <el-tooltip v-if="isShowTip" placement="top" effect="light">
<span v-html="caption"></span> <span v-html="caption"></span>
<template > <template >
<span slot="content" v-html="caption" ></span> <span slot="content" v-html="caption" ></span>
</template>
</el-tooltip>
<template v-if="!isShowTip">
<span v-html="caption" ></span>
</template> </template>
</el-tooltip> </span>
<template v-if="!isShowTip">
<span v-html="caption" ></span>
</template>
</span>
</span> </span>
<div <div
v-if="Object.is(this.labelPos,'TOP') || Object.is(this.labelPos,'LEFT') || Object.is(this.labelPos,'RIGHT')" v-if="Object.is(this.labelPos,'TOP') || Object.is(this.labelPos,'LEFT') || Object.is(this.labelPos,'RIGHT')"
...@@ -221,7 +221,9 @@ export default class AppFormItem extends Vue { ...@@ -221,7 +221,9 @@ export default class AppFormItem extends Vue {
* @memberof AppFormItem * @memberof AppFormItem
*/ */
get labelclasses(): string { get labelclasses(): string {
return `app-form-item-label ${this.required ? 'app-form-item-label--required' : ''} ${this.labelStyle || ''}` return this.labelStyle
? this.labelStyle + " app-form-item-label"
: "app-form-item-label";
} }
/** /**
...@@ -286,6 +288,6 @@ export default class AppFormItem extends Vue { ...@@ -286,6 +288,6 @@ export default class AppFormItem extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import "./app-form-item.scss"; @import "./app-form-item.less";
</style> </style>
\ No newline at end of file
...@@ -211,6 +211,6 @@ export default class AppFormItem2 extends Vue { ...@@ -211,6 +211,6 @@ export default class AppFormItem2 extends Vue {
} }
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import "./app-form-item2.scss"; @import "./app-form-item2.less";
</style> </style>
\ No newline at end of file
...@@ -239,6 +239,6 @@ export default class AppFormPart extends Vue { ...@@ -239,6 +239,6 @@ export default class AppFormPart extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang = "less">
@import './app-form-part.scss'; @import './app-form-part.less';
</style> </style>
\ No newline at end of file
...@@ -28,6 +28,6 @@ export default class AppForm extends Vue { ...@@ -28,6 +28,6 @@ export default class AppForm extends Vue {
@Prop() public name?: string; @Prop() public name?: string;
} }
</script> </script>
<style lang="scss"> <style lang = "less">
@import './app-form.scss'; @import './app-form.less';
</style> </style>
\ No newline at end of file
...@@ -91,6 +91,6 @@ export default class AppFormatData extends Vue { ...@@ -91,6 +91,6 @@ export default class AppFormatData extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import './app-format-data.scss'; @import './app-format-data.less';
</style> </style>
\ No newline at end of file
<template> <template>
<div class="fullscren"> <div class="fullscren">
<Icon :type="fullScren == true ? 'ios-contract' : 'ios-expand'" size="22" @click="handleScreen"/> <Icon :type="fullScren == true ? 'ios-contract' : 'ios-expand'" color="#aaa" size="22" @click="handleScreen"/>
</div> </div>
</template> </template>
<script lang = 'ts'> <script lang = 'ts'>
...@@ -82,7 +82,7 @@ export default class AppFullScren extends Vue{ ...@@ -82,7 +82,7 @@ export default class AppFullScren extends Vue{
} }
</script> </script>
<style lang='scss'> <style lang='less'>
.fullscren{ .fullscren{
cursor:pointer; cursor:pointer;
padding: 0 5px; padding: 0 5px;
......
.grid-pagination {
display: flex;
align-items: center;
justify-content: flex-end;
padding: 16px 0 20px 0;
color: var(--ey-color-gray-100);
// 选择分页大小
.grid-pagination-size {
width: 100px;
color: var(--ey-color-gray-100);
background: var(--ey-color-white);
&.ivu-select .ivu-select-selection {
border-radius: 4px;
border: 1px solid var(--ey-color-gray-200);
height: 30px;
min-height: 30px;
}
margin-left: 18px;
margin-right: 21px;
}
// 中间页数样式
.ivu-page {
.ivu-page-prev,
.ivu-page-next,
.ivu-page-item {
width: 30px;
height: 30px;
min-height: 30px;
border-radius: 4px;
border-width: 0;
font-weight: bold;
background: var(--ey-color-gray-400);
&:hover a {
color: var(--ey-color-blue-green);
}
&.ivu-page-disabled {
cursor: pointer;
a {
cursor: pointer;
color: var(--ey-color-gray-100);
}
&:hover a{
color: var(--ey-color-blue-green);
}
}
.ivu-icon {
font-weight: bold;
}
}
.ivu-page-item-active {
a {
color: var(--ey-color-white);
}
&:hover a{
color: var(--ey-color-white);
}
background: var(--ey-color-blue-green);
}
}
// 页面跳转
.ivu-page-options-elevator {
height: 30px;
line-height: 30px;
input {
height: 30px;
width: 45px;
text-align: center;
}
input:focus {
border-color: var(--ey-color-blue-green);
box-shadow: none;
}
}
}
// 分页大小popover
.grid-pagination-size-popover {
padding: 0;
// margin: 10px 0;
height: 132px;
width: 100px;
.ivu-select-item {
color: var(--ey-color-gray-100);
border-bottom: 1px solid var(--ey-color-gray-250);
padding: 7px 16px 7px 10px;
text-align: left !important;
}
&.ivu-select-dropdown .ivu-select-dropdown-list .ivu-select-item.ivu-select-item-selected {
color: var(--ey-color-gray-100);
background-color: var(--ey-color-white);
&:hover {
color: var(--ey-color-black);
background-color: var(--ey-color-blue-green-110);
}
}
.ivu-select-item:hover {
color: var(--ey-color-black);
background-color: var(--ey-color-blue-green-110);
}
}
<template>
<row class="grid-pagination">
<span>&nbsp;{{ totalRow }}&nbsp;</span>
<i-select transfer-class-name="grid-pagination-size-popover" class="grid-pagination-size" :value="limit" :transfer="true" @on-change="handleSizeChange">
<i-option v-for="item in pageSize" :key="item" :value="item" style="text-align: center"
>{{ item }} 条/页</i-option
>
</i-select>
<page
class="pull-right"
:total="totalRow"
show-elevator
:current="curPage"
:page-size="limit"
@on-change="handleChange($event)"
>
</page>
</row>
</template>
<script lang="ts">
import { Vue, Component, Prop } from "vue-property-decorator";
@Component({})
export default class AppGridPagination extends Vue {
/**
* 总行数
*
* @type {number}
* @memberof AppGridPagination
*/
@Prop() totalRow!: number;
/**
* 当前页
*
* @type {number}
* @memberof AppGridPagination
*/
@Prop() curPage!: number;
/**
* 分页大小
*
* @type {number}
* @memberof AppGridPagination
*/
@Prop() limit!: number;
/**
* 分页数数组
*
* @type {Array<*>}
* @memberof AppGridPagination
*/
public pageSize = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
/**
* 处理当前页改变
*
* @type {number}
* @memberof AppGridPagination
*/
public handleChange($event: any) {
this.$emit("page-change", $event);
}
/**
* 处理分页大小改变
*
* @type {number}
* @memberof AppGridPagination
*/
public handleSizeChange($event: any) {
this.$emit("page-size-change", $event);
}
}
</script>
<style lang="scss">
@import "./app-grid-pagination.scss";
</style>
...@@ -283,7 +283,7 @@ export default class AppGroupPicker extends Vue { ...@@ -283,7 +283,7 @@ export default class AppGroupPicker extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
.ibiz-group-picker{ .ibiz-group-picker{
width: 100%; width: 100%;
height: 100%; height: 100%;
......
...@@ -327,6 +327,6 @@ export default class AppGroupSelect extends Vue { ...@@ -327,6 +327,6 @@ export default class AppGroupSelect extends Vue {
} }
</script> </script>
<style lang="scss"> <style lang="less">
@import './app-group-select.scss'; @import './app-group-select.less';
</style> </style>
\ No newline at end of file
.app-help {
font-size: 20px;
margin: 0 10px;
cursor: pointer;
}
\ No newline at end of file
<template>
<div class='app-help'>
<Icon type="ios-help-circle-outline" />
</div>
</template>
<script lang='ts'>
import { Vue, Component } from 'vue-property-decorator';
@Component({})
export default class AppHelp extends Vue {
}
</script>
<style lang="scss">
@import './app-help.scss';
</style>
\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<template v-if="!item.hidden"> <template v-if="!item.hidden">
<div :bordered="false" v-if="item.items && Array.isArray(item.items)" :key="index" :class="item.textcls"> <div :bordered="false" v-if="item.items && Array.isArray(item.items)" :key="index" :class="item.textcls">
<p @click="$emit('menuClick',item.name, [item.name])"> <p @click="$emit('menuClick',item.name, [item.name])">
<span>{{$t(item.cappslanguageres, item.text)}}</span> <span>{{$t('app.menus.' + ctrlName + '.' + item.name)}}</span>
<span class="line"></span> <span class="line"></span>
</p> </p>
<p style=" display: 'flex' "> <p style=" display: 'flex' ">
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<img :src="item.iconcls" v-else-if="!Object.is(item.iconcls, '')" /> <img :src="item.iconcls" v-else-if="!Object.is(item.iconcls, '')" />
<i class="fa fa-cogs" v-else></i> <i class="fa fa-cogs" v-else></i>
</span> </span>
<h4>{{$t(item.cappslanguageres, item.text)}}</h4> <h4>{{$t('app.menus.' + ctrlName + '.' + item.name)}}</h4>
</div> </div>
</el-card> </el-card>
</template> </template>
...@@ -74,6 +74,6 @@ export default class AppQuickMenus extends Vue { ...@@ -74,6 +74,6 @@ export default class AppQuickMenus extends Vue {
} }
</script> </script>
<style lang='scss'> <style lang='less'>
@import "./app-icon-menus.scss"; @import "./app-icon-menus.less";
</style> </style>
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册