Merge remote-tracking branch 'origin/master'

master
toesbieya 5 years ago
commit 5da445a5c9
  1. 30
      vue/full/package-lock.json
  2. 8
      vue/full/package.json
  3. 11
      vue/full/src/asset/style/cover/el-admin-layout.scss
  4. 8
      vue/full/src/component/form/Anchor/index.vue
  5. 108
      vue/full/src/component/form/Search/index.vue
  6. 3
      vue/full/src/router/module/admin/child/default.js
  7. 2
      vue/full/src/view/admin/index/indexPage.vue
  8. 2
      vue/full/src/view/admin/system/category/component/List.vue
  9. 2
      vue/full/src/view/admin/system/department/indexPage.vue

@ -1803,9 +1803,9 @@
"dev": true
},
"vue-loader-v15": {
"version": "npm:vue-loader@15.9.7",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.7.tgz",
"integrity": "sha512-qzlsbLV1HKEMf19IqCJqdNvFJRCI58WNbS6XbPqK13MrLz65es75w392MSQ5TsARAfIjUw+ATm3vlCXUJSOH9Q==",
"version": "npm:vue-loader@15.9.8",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.8.tgz",
"integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^3.1.0",
@ -4461,14 +4461,14 @@
"dev": true
},
"el-admin-layout": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/el-admin-layout/-/el-admin-layout-0.8.2.tgz",
"integrity": "sha512-6D5i70GqrPmw2AQo8ntLN1k1JWCYDdM6wNBX0errsJS9vDetxF3LuJHmqVQzZzm5t7RHH1FuOlQa8eKdHhCi4w=="
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/el-admin-layout/-/el-admin-layout-0.9.4.tgz",
"integrity": "sha512-vyVgGB7ufW9jFjQNXxJDRItQ3T5NP/meskcX/1pVaTFv6AFr+fM/aRzUrzJ06DgltYZ54VrmRPBUSnWkZ3cA1Q=="
},
"element-ui": {
"version": "2.15.1",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.1.tgz",
"integrity": "sha512-TqlScAKGH97XndSScUDeEHIzL1x7yg7DvQdKPEOUdiDcyIz3y3FJJBlpHYaJT96FOn1xpIcUZb+I2FJeU9EcrQ==",
"version": "2.15.6",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.6.tgz",
"integrity": "sha512-rcYXEKd/j2G0AgficAOk1Zd1AsnHRkhmrK4yLHmNOiimU2JfsywgfKUjMoFuT6pQx0luhovj8lFjpE4Fnt58Iw==",
"requires": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
@ -11490,9 +11490,9 @@
"dev": true
},
"vue": {
"version": "2.6.12",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz",
"integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg=="
"version": "2.6.14",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz",
"integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ=="
},
"vue-count-to": {
"version": "1.0.13",
@ -11602,9 +11602,9 @@
}
},
"vue-template-compiler": {
"version": "2.6.12",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz",
"integrity": "sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==",
"version": "2.6.14",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz",
"integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==",
"dev": true,
"requires": {
"de-indent": "^1.0.2",

@ -10,14 +10,14 @@
"dependencies": {
"axios": "^0.21.1",
"decimal.js": "^10.2.1",
"el-admin-layout": "^0.8.2",
"element-ui": "^2.15.1",
"el-admin-layout": "^0.9.4",
"element-ui": "^2.15.6",
"file-saver": "^2.0.5",
"js-md5": "^0.7.3",
"nprogress": "^0.2.0",
"pako": "1.0.11",
"socket.io-client": "2.3.1",
"vue": "^2.6.12",
"vue": "^2.6.14",
"vue-count-to": "^1.0.13",
"vue-router": "^3.5.1",
"vuex": "^3.6.2"
@ -30,7 +30,7 @@
"sass-loader": "^11.0.1",
"svg-sprite-loader": "^5.2.1",
"svgo": "^1.3.2",
"vue-template-compiler": "^2.6.12"
"vue-template-compiler": "^2.6.14"
},
"browserslist": [
"Chrome > 80"

@ -1,13 +1,4 @@
//如果使用auto的话滚动条会占据容器宽度这样<list-page/>的自适应高度比较麻烦所以偷个懒
.page-main > .scroll-container {
.page-main > .page-content {
overflow: overlay;
}
//TODO 升级el-admin-layout至0.8.3可解决
.right-out,
.left-out {
&-leave-active,
&-enter-active {
position: inherit;
}
}

@ -13,11 +13,11 @@
</template>
<script>
import {debounce} from "@/util"
import {getScroll, getTopDistance, scrollTo} from "@/util/browser"
import {debounce} from '@/util'
import {getScroll, getTopDistance, scrollTo} from '@/util/browser'
export default {
name: "FormAnchor",
name: 'FormAnchor',
props: {
reference: Function,
@ -34,7 +34,7 @@ export default {
//
getContainer: {
type: Function,
default: () => document.querySelector('#app .page-main>.scroll-container')
default: () => document.querySelector('#app .page-main>.page-content')
},
},

@ -1,5 +1,5 @@
<script type="text/jsx">
import {deepClone} from "@/util"
import {isEmpty, deepClone} from "@/util"
import {getElementInnerWidth} from '@/util/browser'
import {clearableComponentTag, clearFormItem} from "@/util/element-ui/elForm"
import {findComponentByTag} from "@/util/vue"
@ -13,8 +13,18 @@ export default {
},
props: {
//
model: Object,
labelWidth: {type: String, default: '120px'},
//
defaultExpand: { type: Boolean, default: true },
// el-form
labelWidth: String,
labelPosition: { type: String, default: 'right' },
labelSuffix: { type: String, default: ':' },
// el-rowgutter
gutter: { type: Number, default: 20 },
/*每个宽度下,一行能有多少个控件,需要是24的因数*/
xs: {type: Number, default: 1}, // <768px
@ -23,12 +33,32 @@ export default {
lg: {type: Number, default: 4} // >=1200px
},
data() {
data(vm) {
return {
showCollapse: false, //
collapse: true, //
num: 0, //
span: 8 //24
maxLabelLength: 0, // el-form-itemlabel10.5
showCollapse: false, //
collapse: !vm.defaultExpand, //
num: 0, //
span: 8 // 24
}
},
computed: {
innerLabelWith() {
// 使props.labelWidth
if (!isEmpty(this.labelWidth)) return this.labelWidth
// 使label + 1+ 1
const fixedLength = isEmpty(this.labelSuffix) ? 0 : 1
return `${this.maxLabelLength + fixedLength + 1}em`
}
},
watch: {
defaultExpand: {
immediate: true,
handler(v) {
v && (this.collapse = false)
}
}
},
@ -52,6 +82,9 @@ export default {
//
this.$emit('reset', deepClone(this.initialModel))
},
handleSubmit() {
this.handleSearch()
},
getElementNumInRow() {
const vw = getElementInnerWidth(this.$el.parentNode)
@ -86,19 +119,21 @@ export default {
return (
<div class="search-form-action">
<el-button type="primary" size="small" on-click={this.handleSearch}> </el-button>
<el-button type="dashed" size="small" plain on-click={this.handleReset}> </el-button>
{this.showCollapse && (
<el-button
type="text"
size="small"
style="padding-left: 0"
on-click={this.handleCollapse}
>
{ctrl.t}
<v-icon icon={ctrl.i} style="margin-left: 0.5em"/>
</el-button>
)}
<el-form-item label-width="0">
<el-button type="primary" size="small" on-click={this.handleSearch}> </el-button>
<el-button type="dashed" size="small" plain on-click={this.handleReset}> </el-button>
{this.showCollapse && (
<el-button
class="search-form-action-button"
type="text"
size="small"
on-click={this.handleCollapse}
>
{ctrl.t}
<v-icon icon={ctrl.i}/>
</el-button>
)}
</el-form-item>
</div>
)
}
@ -121,7 +156,20 @@ export default {
},
render() {
const slots = this.$slots.default, collapse = this.showCollapse && this.collapse
const slots = this.$slots.default.filter(i => i.tag)
const collapse = this.showCollapse && this.collapse
this.maxLabelLength = Math.max(...slots.map(vnode => {
const label = vnode.componentOptions?.propsData?.label
if (isEmpty(label)) return 0
// labelem1em0.5em
let num = 0
for (let i = 0; i < label.length; i++) {
num += label.charCodeAt(i) > 127 ? 1 : 0.5
}
return num
}))
const display = collapse ? slots.slice(0, this.num) : slots
const hidden = collapse ? slots.slice(this.num) : []
@ -129,12 +177,13 @@ export default {
return (
<el-form
class="search-form"
label-position="right"
label-width={this.labelWidth}
label-suffix=":"
label-position={this.labelPosition}
label-width={this.innerLabelWith}
label-suffix={this.labelSuffix}
size="small"
{...{ nativeOn: { submit: this.handleSubmit } }}
>
<el-row gutter={20}>
<el-row gutter={this.gutter}>
{this.renderChildren(display)}
{this.renderChildren(hidden, true)}
{this.renderAction()}
@ -149,6 +198,15 @@ export default {
.search-form {
&-action {
margin-left: auto;
text-align: right;
&-button {
padding-left: 0;
.icon {
margin-left: 0.5em;
}
}
}
> .el-row {

@ -1,5 +1,8 @@
//路由表:默认页面
/**
* @type {import('vue-router').RouteConfig[]}
*/
const router = [
{
path: 'index',

@ -7,8 +7,6 @@ import TotalProfitGoods from "./component/TotalProfitGoods"
export default {
name: 'index',
functional: true,
render() {
return (
<div>

@ -14,7 +14,7 @@
</template>
<script>
import ContextMenu from "el-admin-layout/src/component/TagsView/ContextMenu"
import ContextMenu from "el-admin-layout/src/component/ContextMenu"
import CategoryTree from '@/component/biz/CategoryTree'
import {add, del, getAll} from "@/api/system/category"
import {isEmpty, waitUntilSuccess} from '@/util'

@ -48,7 +48,7 @@
* 详情见iview-admin
* https://admin.iviewui.com/component/org_tree_page
*/
import ContextMenu from "el-admin-layout/src/component/TagsView/ContextMenu"
import ContextMenu from "el-admin-layout/src/component/ContextMenu"
import EditDialog from "./component/EditDialog"
import OrgTreeView from "./component/OrgTreeView"
import ZoomControl from './component/ZoomControl'

Loading…
Cancel
Save