master
toesbieya 6 years ago
parent d375bf5619
commit 2e835ae853
  1. 11
      vue/element-ui-personal/components/Menu/MenuItem.vue
  2. 14
      vue/element-ui-personal/components/Menu/Submenu.vue
  3. 6
      vue/element-ui-personal/components/Message/main.vue
  4. 30
      vue/element-ui-personal/components/Select/Select.vue
  5. 6
      vue/element-ui-personal/components/Select/SelectDropdown.vue
  6. 4
      vue/src/App.vue
  7. 4
      vue/src/components/AbstractForm/AbstractFormItem.vue
  8. 4
      vue/src/components/AbstractForm/index.vue
  9. 6
      vue/src/components/AbstractTable/index.vue
  10. 6
      vue/src/components/Charts/PieChart.vue
  11. 18
      vue/src/components/CollapseCard/index.vue
  12. 10
      vue/src/components/ColorCheckBox/group.vue
  13. 8
      vue/src/components/ColorCheckBox/index.vue
  14. 4
      vue/src/components/ContextMenu/ContextMenuItem.vue
  15. 10
      vue/src/components/ContextMenu/index.vue
  16. 4
      vue/src/components/Empty/DefaultEmptyImage.vue
  17. 6
      vue/src/components/Empty/index.vue
  18. 4
      vue/src/components/ExtraArea/index.vue
  19. 6
      vue/src/components/FormDialog/index.vue
  20. 6
      vue/src/components/LinerProgress/index.vue
  21. 4
      vue/src/components/LoadingMask/index.vue
  22. 26
      vue/src/components/RegionSelector/Tab/index.vue
  23. 10
      vue/src/components/RegionSelector/Tree/TreeDialog.vue
  24. 14
      vue/src/components/RegionSelector/Tree/index.vue
  25. 8
      vue/src/components/RegionSelector/index.vue
  26. 4
      vue/src/components/SearchForm/SearchFormItem.vue
  27. 10
      vue/src/components/SearchForm/index.vue
  28. 18
      vue/src/components/Skeleton/PageSkeleton.vue
  29. 8
      vue/src/components/Skeleton/index.vue
  30. 14
      vue/src/components/SvgIcon/index.vue
  31. 20
      vue/src/components/TinymceEditor/index.vue
  32. 8
      vue/src/components/ZoomControl/index.vue
  33. 8
      vue/src/components/biz/CategoryTree/index.vue
  34. 6
      vue/src/components/biz/UserSelector/SimpleMultipleUserSelector.vue
  35. 4
      vue/src/components/biz/doc/DocDetailFooter.vue
  36. 12
      vue/src/components/biz/doc/DocDetailHeader.vue
  37. 10
      vue/src/globalMethods/BottomTip/main.vue
  38. 18
      vue/src/globalMethods/Guide/main.vue
  39. 20
      vue/src/globalMethods/PuzzleVerify/main.vue
  40. 18
      vue/src/globalMethods/SignautreBoard/main.vue
  41. 8
      vue/src/layout/components/Footer.vue
  42. 20
      vue/src/layout/components/Header.vue
  43. 18
      vue/src/layout/components/Main.vue
  44. 10
      vue/src/layout/components/Navbar/components/Bell.vue
  45. 10
      vue/src/layout/components/Navbar/components/Breadcrumb.vue
  46. 12
      vue/src/layout/components/Navbar/components/Hamburger.vue
  47. 10
      vue/src/layout/components/Navbar/components/HeaderSearch.vue
  48. 26
      vue/src/layout/components/Navbar/components/SettingDrawer.vue
  49. 26
      vue/src/layout/components/Navbar/index.vue
  50. 6
      vue/src/layout/components/Sidebar/components/Logo.vue
  51. 14
      vue/src/layout/components/Sidebar/components/SidebarItem.vue
  52. 4
      vue/src/layout/components/Sidebar/components/SidebarItemContent.vue
  53. 12
      vue/src/layout/components/Sidebar/index.vue
  54. 6
      vue/src/layout/components/TagsView/ScrollPane.vue
  55. 14
      vue/src/layout/components/TagsView/index.vue
  56. 20
      vue/src/layout/index.vue
  57. 8
      vue/src/views/app/403.vue
  58. 8
      vue/src/views/app/404.vue
  59. 12
      vue/src/views/app/login/RegisterForm.vue
  60. 8
      vue/src/views/app/login/SetAnimation.vue
  61. 18
      vue/src/views/app/login/index.vue
  62. 4
      vue/src/views/app/redirect.vue
  63. 6
      vue/src/views/example/components/regionSelectorExample.vue
  64. 4
      vue/src/views/example/components/rippleExample.vue
  65. 4
      vue/src/views/example/components/signatureExample.vue
  66. 30
      vue/src/views/example/components/skeletonExample.vue
  67. 8
      vue/src/views/example/components/treeSelectExample.vue
  68. 8
      vue/src/views/example/components/uploadExample.vue
  69. 6
      vue/src/views/example/cool/fluid.vue
  70. 6
      vue/src/views/example/cool/l2d.vue
  71. 4
      vue/src/views/example/detailPage.vue
  72. 8
      vue/src/views/example/developingTest/components/ApiSpeedTest.vue
  73. 8
      vue/src/views/example/developingTest/components/ExportExcelTest.vue
  74. 44
      vue/src/views/example/developingTest/components/ImageCompressTest.vue
  75. 18
      vue/src/views/example/icons/index.vue
  76. 22
      vue/src/views/example/stylePage.vue
  77. 10
      vue/src/views/index/components/DailyFinishOrderStat.vue
  78. 10
      vue/src/views/index/components/DailyProfitStat.vue
  79. 14
      vue/src/views/index/components/PanelGroup/PanelGroupItem.vue
  80. 18
      vue/src/views/index/components/PanelGroup/index.vue
  81. 8
      vue/src/views/index/components/TotalProfitGoods.vue
  82. 12
      vue/src/views/index/index.vue
  83. 26
      vue/src/views/message/manage/EditDialog.vue
  84. 30
      vue/src/views/message/manage/index.vue
  85. 12
      vue/src/views/message/user/AutoHidden.vue
  86. 22
      vue/src/views/message/user/MessageStream.vue
  87. 10
      vue/src/views/message/user/index.vue
  88. 22
      vue/src/views/purchase/inbound/components/OrderSelector.vue
  89. 24
      vue/src/views/purchase/inbound/detail.vue
  90. 12
      vue/src/views/purchase/order/components/CategorySelector.vue
  91. 20
      vue/src/views/purchase/order/components/SupplierSelector.vue
  92. 28
      vue/src/views/purchase/order/detail.vue
  93. 18
      vue/src/views/sell/order/components/CustomerSelector.vue
  94. 14
      vue/src/views/sell/order/components/StockSelector.vue
  95. 28
      vue/src/views/sell/order/detail.vue
  96. 22
      vue/src/views/sell/outbound/components/OrderSelector.vue
  97. 12
      vue/src/views/sell/outbound/components/StockSelector.vue
  98. 30
      vue/src/views/stock/current/DetailDialog.vue
  99. 30
      vue/src/views/stock/current/index.vue
  100. 14
      vue/src/views/system/category/components/Form.vue
  101. Some files were not shown because too many files have changed in this diff Show More

@ -13,7 +13,8 @@
<div slot="content">
<slot name="title"/>
</div>
<div style="position: absolute;left: 0;top: 0;height: 100%;width: 100%;display: inline-block;box-sizing: border-box;padding: 0 20px;">
<div
style="position: absolute;left: 0;top: 0;height: 100%;width: 100%;display: inline-block;box-sizing: border-box;padding: 0 20px;">
<slot/>
</div>
</el-tooltip>
@ -26,10 +27,10 @@
</template>
<script>
import MenuMixin from 'element-ui/packages/menu/src/menu-mixin'
import Emitter from 'element-ui/lib/mixins/emitter'
import MenuMixin from 'element-ui/packages/menu/src/menu-mixin'
import Emitter from 'element-ui/lib/mixins/emitter'
export default {
export default {
name: 'ElMenuItem',
componentName: 'ElMenuItem',
@ -70,5 +71,5 @@
this.parentMenu.removeItem(this)
this.rootMenu.removeItem(this)
}
}
}
</script>

@ -1,9 +1,9 @@
<script type="text/jsx">
import MenuMixin from 'element-ui/packages/menu/src/menu-mixin'
import Emitter from 'element-ui/lib/mixins/emitter'
import Popper from 'element-ui/lib/utils/vue-popper'
import MenuMixin from 'element-ui/packages/menu/src/menu-mixin'
import Emitter from 'element-ui/lib/mixins/emitter'
import Popper from 'element-ui/lib/utils/vue-popper'
const PopperMixins = {
const PopperMixins = {
props: {
transformOrigin: {type: [Boolean, String], default: false},
offset: Popper.props.offset,
@ -14,9 +14,9 @@
methods: Popper.methods,
beforeDestroy: Popper.beforeDestroy,
deactivated: Popper.deactivated
}
}
export default {
export default {
name: 'ElSubmenu',
componentName: 'ElSubmenu',
@ -270,7 +270,7 @@
</li>
)
}
}
}
</script>
<style>

@ -14,14 +14,14 @@
<p v-else v-html="message" class="el-message__content"/>
</slot>
<i v-if="showClose" class="el-message__closeBtn el-icon-close" @click="close"/>
<div v-if="badge>1" :key="'badge'+badge" class="el-message__badge">{{badge}}</div>
<div v-if="badge>1" :key="'badge'+badge" class="el-message__badge">{{ badge }}</div>
<div v-if="progress&&!closed" :key="'progress'+badge" class="el-message__progress" :style="progressStyle"/>
</div>
</transition>
</template>
<script>
export default {
export default {
data() {
return {
visible: false,
@ -103,5 +103,5 @@
mounted() {
this.startTimer()
}
}
}
</script>

@ -112,20 +112,20 @@
</template>
<script>
import Emitter from 'element-ui/lib/mixins/emitter'
import Focus from 'element-ui/lib/mixins/focus'
import Locale from 'element-ui/lib/mixins/locale'
import ElSelectMenu from './SelectDropdown.vue'
import {debounce} from '@/utils'
import Clickoutside from 'element-ui/lib/utils/clickoutside'
import {addResizeListener, removeResizeListener} from 'element-ui/lib/utils/resize-event'
import {t} from 'element-ui/lib/locale'
import scrollIntoView from 'element-ui/lib/utils/scroll-into-view'
import {getValueByPath, isEdge, isIE, valueEquals} from 'element-ui/lib/utils/util'
import NavigationMixin from 'element-ui/packages/select/src/navigation-mixin'
import {isKorean} from 'element-ui/lib/utils/shared'
export default {
import Emitter from 'element-ui/lib/mixins/emitter'
import Focus from 'element-ui/lib/mixins/focus'
import Locale from 'element-ui/lib/mixins/locale'
import ElSelectMenu from './SelectDropdown.vue'
import {debounce} from '@/utils'
import Clickoutside from 'element-ui/lib/utils/clickoutside'
import {addResizeListener, removeResizeListener} from 'element-ui/lib/utils/resize-event'
import {t} from 'element-ui/lib/locale'
import scrollIntoView from 'element-ui/lib/utils/scroll-into-view'
import {getValueByPath, isEdge, isIE, valueEquals} from 'element-ui/lib/utils/util'
import NavigationMixin from 'element-ui/packages/select/src/navigation-mixin'
import {isKorean} from 'element-ui/lib/utils/shared'
export default {
mixins: [Emitter, Locale, Focus('reference'), NavigationMixin],
name: 'ElSelect',
@ -840,5 +840,5 @@
beforeDestroy() {
if (this.$el && this.handleResize) removeResizeListener(this.$el, this.handleResize)
}
}
}
</script>

@ -9,9 +9,9 @@
</template>
<script type="text/babel">
import Popper from '@ele/mixins/vue-popper'
import Popper from '@ele/mixins/vue-popper'
export default {
export default {
name: 'ElSelectDropdown',
componentName: 'ElSelectDropdown',
@ -44,5 +44,5 @@
})
this.$on('destroyPopper', this.destroyPopper)
}
}
}
</script>

@ -7,7 +7,7 @@
</template>
<script>
export default {
export default {
name: 'App'
}
}
</script>

@ -1,5 +1,5 @@
<script type="text/jsx">
export default {
export default {
name: "AbstractFormItem",
functional: true,
@ -21,5 +21,5 @@
</el-col>
)
}
}
}
</script>

@ -1,5 +1,5 @@
<script type="text/jsx">
export default {
export default {
name: "AbstractForm",
functional: true,
@ -19,5 +19,5 @@
</el-form>
)
}
}
}
</script>

@ -1,7 +1,7 @@
<script type="text/jsx">
import Empty from "@/components/Empty"
import Empty from "@/components/Empty"
export default {
export default {
name: "AbstractTable",
functional: true,
@ -32,5 +32,5 @@
</el-table>
)
}
}
}
</script>

@ -3,9 +3,9 @@
</template>
<script>
import {logic, resize} from "@/mixins/chart"
import {logic, resize} from "@/mixins/chart"
export default {
export default {
mixins: [resize, logic],
props: {
@ -45,5 +45,5 @@
})
}
}
}
}
</script>

@ -1,7 +1,7 @@
<template>
<el-card :class="{collapsed}">
<div slot="header" class="clearfix">
<slot name="header">{{header}}</slot>
<slot name="header">{{ header }}</slot>
<i class="el-icon-arrow-up collapse-card-icon" @click="collapse"/>
</div>
<slot/>
@ -9,7 +9,7 @@
</template>
<script>
export default {
export default {
name: "CollapseCard",
props: {
@ -27,22 +27,22 @@
this.collapsed = !this.collapsed
}
}
}
}
</script>
<style>
.collapse-card-icon {
.collapse-card-icon {
float: right;
font-weight: bold;
transition: transform .3s;
cursor: pointer;
}
}
.collapsed .collapse-card-icon {
.collapsed .collapse-card-icon {
transform: rotate(180deg);
}
}
.el-card.collapsed > .el-card__body {
.el-card.collapsed > .el-card__body {
display: none;
}
}
</style>

@ -5,7 +5,7 @@
</template>
<script>
export default {
export default {
name: "ColorCheckGroup",
provide() {
@ -17,13 +17,13 @@
props: {value: String},
data: () => ({children: []})
}
}
</script>
<style lang="scss">
@import "~@/assets/styles/variables.scss";
@import "~@/assets/styles/variables.scss";
.color-checkbox-group {
.color-checkbox-group {
@include clearfix
}
}
</style>

@ -5,7 +5,7 @@
</template>
<script>
export default {
export default {
name: "ColorCheckBox",
inject: ['colorCheckGroup'],
@ -30,11 +30,11 @@
const group = this.colorCheckGroup
group && group.children.push(this.color)
},
}
}
</script>
<style>
.color-checkbox {
.color-checkbox {
float: left;
width: 20px;
height: 20px;
@ -44,5 +44,5 @@
text-align: center;
font-weight: bold;
color: #fff;
}
}
</style>

@ -1,5 +1,5 @@
<script type="text/jsx">
export default {
export default {
name: "ContextMenuItem",
functional: true,
@ -7,5 +7,5 @@
render(h, context) {
return <li class="contextmenu-item" {...context.data}>{context.children}</li>
}
}
}
</script>

@ -5,7 +5,7 @@
</template>
<script>
export default {
export default {
name: "ContextMenu",
props: {
@ -59,13 +59,13 @@
else this.realLeft = v + 'px'
}
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/variables.scss";
@import "~@/assets/styles/variables.scss";
.contextmenu {
.contextmenu {
margin: 0;
background: $--menu-background-color;
z-index: 10;
@ -87,5 +87,5 @@
color: $--color-primary;
}
}
}
}
</style>

@ -1,5 +1,5 @@
<script type="text/jsx">
export default {
export default {
name: 'DefaultEmptyImage',
functional: true,
@ -47,5 +47,5 @@
</svg>
)
}
}
}
</script>

@ -1,7 +1,7 @@
<script type="text/jsx">
import DefaultEmptyImage from "./DefaultEmptyImage"
import DefaultEmptyImage from "./DefaultEmptyImage"
export default {
export default {
name: "AEmpty",
functional: true,
@ -32,7 +32,7 @@
</div>
)
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -13,7 +13,7 @@
</template>
<script type="text/jsx">
export default {
export default {
name: "ExtraArea",
props: {
@ -37,7 +37,7 @@
return `el-icon-arrow-${this.expanded ? 'right' : 'left'}`
}
}
}
}
</script>

@ -1,7 +1,7 @@
<script type="text/jsx">
import LoadingMask from '@/components/LoadingMask'
import LoadingMask from '@/components/LoadingMask'
export default {
export default {
name: "FormDialog",
functional: true,
@ -48,7 +48,7 @@
</el-dialog>
)
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -1,6 +1,6 @@
<script type="text/jsx">
//muse-uihttps://muse-ui.org/#/zh-CN/progress
export default {
//muse-uihttps://muse-ui.org/#/zh-CN/progress
export default {
name: "LinerProgress",
functional: true,
@ -17,7 +17,7 @@
)
}
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -1,5 +1,5 @@
<script type="text/jsx">
export default {
export default {
name: "LoadingMask",
functional: true,
@ -20,5 +20,5 @@
)
}
}
}
}
</script>

@ -36,7 +36,7 @@
<div class="rg-level-tabs">
<ul>
<li v-for="(tab,index) in selected" :key="tab.name" :class="{active:index+1 === currentLevel}">
<a href="javascript:" @click="()=>clickTab(index,tab)">{{tab.name}}</a>
<a href="javascript:" @click="()=>clickTab(index,tab)">{{ tab.name }}</a>
</li>
</ul>
</div>
@ -49,7 +49,7 @@
:class="{'rg-item': true, 'active': isItemActive(item.id)}"
@click="()=>clickItem(item)"
>
{{limit ? item.name + `(${item.value})` : item.name}}
{{ limit ? item.name + `(${item.value})` : item.name }}
</li>
<li v-if="items.length === 0" class="rg-message-box">无匹配项目</li>
</ul>
@ -59,15 +59,15 @@
</template>
<script>
import {debounce} from "@/utils"
import {createLimitTree, getNodeId} from "@/utils/tree"
import {store, init} from '../store'
import common from '../mixin'
import {debounce} from "@/utils"
import {createLimitTree, getNodeId} from "@/utils/tree"
import {store, init} from '../store'
import common from '../mixin'
const PROVINCE_CITIES = ['北京市', '天津市', '上海市', '重庆市']
const DEFAULT_TABS = [{name: '省/直辖市'}, {name: '市'}, {name: '区/县'}, {name: '乡/镇/街道'}]
const PROVINCE_CITIES = ['北京市', '天津市', '上海市', '重庆市']
const DEFAULT_TABS = [{name: '省/直辖市'}, {name: '市'}, {name: '区/县'}, {name: '乡/镇/街道'}]
export default {
export default {
name: "RegionTabSelector",
mixins: [common],
@ -255,10 +255,10 @@
mounted() {
this.init()
}
}
}
//node{id:'10',...}{name:'',...}'10'''
function predicate(node) {
//node{id:'10',...}{name:'',...}'10'''
function predicate(node) {
if (typeof node === 'object') {
const key = node.hasOwnProperty('id') ? 'id' : 'name'
return item => item[key] === node[key]
@ -268,7 +268,7 @@
const key = 48 <= firstCharCode && firstCharCode <= 57 ? 'id' : 'name'
return item => item[key] === node
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -1,9 +1,9 @@
<script type="text/jsx">
import {store, init} from '../store'
import FormDialog from "@/components/FormDialog"
import {createLimitTree, getNodeId} from "@/utils/tree"
import {store, init} from '../store'
import FormDialog from "@/components/FormDialog"
import {createLimitTree, getNodeId} from "@/utils/tree"
export default {
export default {
components: {FormDialog},
data() {
@ -80,5 +80,5 @@
</form-dialog>
)
}
}
}
</script>

@ -1,13 +1,13 @@
<script type="text/jsx">
import Vue from 'vue'
import TreeDialog from "./TreeDialog"
import common from '../mixin'
import Vue from 'vue'
import TreeDialog from "./TreeDialog"
import common from '../mixin'
const TreeDialogConstructor = Vue.extend(TreeDialog)
const TreeDialogConstructor = Vue.extend(TreeDialog)
let limit, full
let limit, full
export default {
export default {
name: "RegionTreeSelector",
mixins: [common],
@ -75,5 +75,5 @@
/>
)
}
}
}
</script>

@ -1,8 +1,8 @@
<script>
const Tree = () => import('./Tree').then(_ => _.default)
const Tab = () => import('./Tab').then(_ => _.default)
const Tree = () => import('./Tree').then(_ => _.default)
const Tab = () => import('./Tab').then(_ => _.default)
export default {
export default {
name: "RegionSelector",
functional: true,
@ -14,5 +14,5 @@
render(h, context) {
return h(context.props.type === 'tree' ? Tree : Tab, context.data)
}
}
}
</script>

@ -1,5 +1,5 @@
<script type="text/jsx">
export default {
export default {
name: "SearchFormItem",
inject: {
@ -20,5 +20,5 @@
</el-col>
)
}
}
}
</script>

@ -1,7 +1,7 @@
<script type="text/jsx">
import {getElementInnerWidth} from '@/utils/browser'
import {getElementInnerWidth} from '@/utils/browser'
export default {
export default {
name: "SearchForm",
provide() {
@ -101,11 +101,11 @@
</el-form>
)
}
}
}
</script>
<style lang="scss">
.searchForm {
.searchForm {
margin-bottom: -15px;
> .el-row {
@ -120,5 +120,5 @@
margin: 0 auto;
text-align: center;
}
}
}
</style>

@ -1,8 +1,8 @@
<script type="text/jsx">
//https://antdv.com/components/skeleton-cn/
import QSkeleton from './index'
//https://antdv.com/components/skeleton-cn/
import QSkeleton from './index'
export default {
export default {
name: "PageSkeleton",
functional: true,
@ -22,17 +22,17 @@
return <div class="page-skeleton-wrapper">{new Array(4).fill(single)}</div>
}
}
}
</script>
<style lang="scss">
@import "~@/assets/styles/variables.scss";
@import "~@/assets/styles/variables.scss";
.page-skeleton-wrapper {
.page-skeleton-wrapper {
margin: $page-view-margin;
}
}
.page-skeleton {
.page-skeleton {
width: 100%;
display: table;
@ -71,5 +71,5 @@
}
}
}
}
}
</style>

@ -1,8 +1,8 @@
<script type="text/jsx">
//quasarhttps://quasar.dev/vue-components/skeleton
import {skeletonAnimations, skeletonTypes} from './constant'
//quasarhttps://quasar.dev/vue-components/skeleton
import {skeletonAnimations, skeletonTypes} from './constant'
export default {
export default {
name: 'QSkeleton',
functional: true,
@ -44,7 +44,7 @@
on: context.$listeners
}, context.children)
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -1,7 +1,7 @@
<script type="text/jsx">
import {isExternal} from '@/utils/validate'
import {isExternal} from '@/utils/validate'
export default {
export default {
name: 'SvgIcon',
functional: true,
@ -31,20 +31,20 @@
)
}
}
}
}
</script>
<style>
.svg-icon {
.svg-icon {
width: 1em;
height: 1em;
fill: currentColor;
overflow: hidden;
}
}
.svg-external-icon {
.svg-external-icon {
background-color: currentColor;
mask-size: cover !important;
display: inline-block;
}
}
</style>

@ -7,19 +7,19 @@
</template>
<script>
import {waitUntilSuccess} from "@/utils"
import {elError} from "@/utils/message"
import {waitUntilSuccess} from "@/utils"
import {elError} from "@/utils/message"
const DEFAULT_OPTIONS = {
const DEFAULT_OPTIONS = {
language: 'zh_CN',
language_url: `${process.env.BASE_URL}static/tinymce/langs/zh_CN.js`,
object_resizing: false,
end_container_on_empty_block: true,
default_link_target: '_blank',
convert_urls: false
}
}
export default {
export default {
name: "TinymceEditor",
props: {
@ -99,11 +99,11 @@
this.init()
this.$once('hook:beforeDestroy', this.destroy)
}
}
}
</script>
<style lang="scss">
.tinymce-container {
.tinymce-container {
position: relative;
.tinymce-wrapper {
@ -113,9 +113,9 @@
visibility: hidden;
}
}
}
}
.tox-tinymce-aux {
.tox-tinymce-aux {
z-index: 10000 !important;
}
}
</style>

@ -1,5 +1,5 @@
<script type="text/jsx">
export default {
export default {
name: "ZoomControl",
functional: true,
@ -33,15 +33,15 @@
</div>
)
}
}
}
</script>
<style>
.zoom-wrapper .zoom-number {
.zoom-wrapper .zoom-number {
color: #657180;
padding: 0 10px;
display: inline-block;
width: 60px;
text-align: center;
}
}
</style>

@ -12,9 +12,9 @@
</template>
<script>
import {getAll} from "@/api/system/category"
import {getAll} from "@/api/system/category"
export default {
export default {
name: "CategoryTree",
props: {filterNodeMethod: Function},
@ -26,7 +26,7 @@
},
methods: {
filter(v){
filter(v) {
this.$refs.tree.filter(v)
}
},
@ -37,5 +37,5 @@
.then(data => this.$store.commit('dataCache/categories', data))
.finally(() => this.loading = false)
}
}
}
</script>

@ -10,9 +10,9 @@
</template>
<script>
import {getUsers} from '@/api/system/user'
import {getUsers} from '@/api/system/user'
export default {
export default {
name: "SimpleMultipleUserSelector",
props: {
@ -36,5 +36,5 @@
getUsers({page: 1, pageSize: 9999})
.then(({list}) => this.data = list)
}
}
}
</script>

@ -10,7 +10,7 @@
</template>
<script>
export default {
export default {
name: "DocDetailFooter"
}
}
</script>

@ -5,15 +5,15 @@
<el-row>
<el-row class="detail-page-header-left">
<el-col v-for="i in props.description" :key="i.label" :xs="24" :sm="12">
<span class="detail-page-header-description-label">{{i.label}}</span>
<span class="detail-page-header-description-content">{{i.content}}</span>
<span class="detail-page-header-description-label">{{ i.label }}</span>
<span class="detail-page-header-description-content">{{ i.content }}</span>
</el-col>
</el-row>
<div class="detail-page-header-extra">
<div>
<div v-for="i in props.extra" :key="i.title">
<div class="detail-page-header-extra-title">{{i.title}}</div>
<div class="detail-page-header-extra-content">{{i.content}}</div>
<div class="detail-page-header-extra-title">{{ i.title }}</div>
<div class="detail-page-header-extra-content">{{ i.content }}</div>
</div>
</div>
</div>
@ -22,7 +22,7 @@
</template>
<script>
export default {
export default {
name: "DocDetailHeader",
props: {
@ -36,5 +36,5 @@
default: () => []
}
}
}
}
</script>

@ -2,13 +2,13 @@
<transition name="el-zoom-in-bottom" @after-leave="handleAfterLeave">
<div v-show="value" class="bottom-tip el-alert--error is-dark">
<i class="el-icon-warning tip-icon"/>
<span class="tip-content">{{message}}</span>
<span class="tip-content">{{ message }}</span>
</div>
</transition>
</template>
<script>
export default {
export default {
name: "BottomTip",
data() {
@ -27,11 +27,11 @@
this.value = false
},
}
}
}
</script>
<style lang="scss" scoped>
.bottom-tip {
.bottom-tip {
position: absolute;
width: 100%;
bottom: 0;
@ -45,5 +45,5 @@
font-weight: bold;
margin: 10px;
}
}
}
</style>

@ -6,19 +6,19 @@
<div class="guide-popover-action">
<div class="action-close">
<el-button v-if="hasDone" size="small" @click="exit">
{{step.doneBtnText}}
{{ step.doneBtnText }}
</el-button>
<el-button v-else size="small" @click="exit">
{{step.closeBtnText}}
{{ step.closeBtnText }}
</el-button>
</div>
<div class="action-step">
<el-button v-if="showPrevBtn" class="prev-btn" size="small" @click="previous">
{{step.prevBtnText}}
{{ step.prevBtnText }}
</el-button>
<el-button v-if="showNextBtn" class="next-btn" size="small" @click="next">
{{step.nextBtnText}}
{{ step.nextBtnText }}
</el-button>
</div>
</div>
@ -33,14 +33,14 @@
</template>
<script>
/**
/**
* 由driver.js改造而来
* vue里交互型的导航不太行太多东西做不到换成引导手册吧
*/
import {debounce, isEmpty} from "@/utils"
import {addHighlightClasses, getCalculatedPosition, inAppView, jump, removeHighlightClasses} from "./utils"
import {debounce, isEmpty} from "@/utils"
import {addHighlightClasses, getCalculatedPosition, inAppView, jump, removeHighlightClasses} from "./utils"
export default {
export default {
name: "Guide",
data() {
@ -237,7 +237,7 @@
window.removeEventListener('resize', this.resize)
})
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -26,7 +26,7 @@
</transition>
<div :class="resultTipClass">
{{stat==='success'?'验证通过':'请正确拼合图像'}}
{{ stat === 'success' ? '验证通过' : '请正确拼合图像' }}
</div>
</div>
@ -53,14 +53,14 @@
</template>
<script>
import BtnStopImage from './image/btn_stop.png'
import BtnMoveImage from './image/btn_move.png'
/*
* https://github.com/Kevin-269581661/vue-puzzle-verification
* 网上搬的例子实际开发建议用极验
* */
export default {
import BtnStopImage from './image/btn_stop.png'
import BtnMoveImage from './image/btn_move.png'
/*
* https://github.com/Kevin-269581661/vue-puzzle-verification
* 网上搬的例子实际开发建议用极验
* */
export default {
name: "PuzzleVerify",
props: {
@ -324,7 +324,7 @@
mounted() {
this.initImage().then(() => this.initCanvas())
},
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -19,11 +19,11 @@
</template>
<script>
/*
* 突然发现没办法做到竖屏横屏都支持坑爹
* */
/*
* 突然发现没办法做到竖屏横屏都支持坑爹
* */
function getEventPoint(e) {
function getEventPoint(e) {
let x, y
if (['mousedown', 'mousemove'].includes(e.type)) {
x = e.clientX - e.target.offsetLeft
@ -34,9 +34,9 @@
y = e.changedTouches[0].clientY - e.target.offsetTop
}
return {x, y}
}
}
export default {
export default {
name: 'SignatureBoard',
props: {
@ -138,11 +138,11 @@
window.removeEventListener('resize', this.resize)
})
}
}
}
</script>
<style lang="scss">
.signature-board {
.signature-board {
position: fixed;
background-color: white;
top: 0;
@ -157,5 +157,5 @@
bottom: 20px;
right: 20px;
}
}
}
</style>

@ -7,13 +7,13 @@
</template>
<script>
export default {
export default {
name: "Footer"
}
}
</script>
<style lang="scss">
.page-footer {
.page-footer {
padding: 48px 24px 24px 24px;
text-align: center;
@ -21,5 +21,5 @@
color: #808695;
font-size: 14px;
}
}
}
</style>

@ -11,11 +11,11 @@
</template>
<script>
import {mapState} from 'vuex'
import VNavbar from './Navbar'
import TagsView from './TagsView'
import {mapState} from 'vuex'
import VNavbar from './Navbar'
import TagsView from './TagsView'
export default {
export default {
name: "Header",
components: {VNavbar, TagsView},
@ -72,17 +72,17 @@
this.$once('hook:beforeDestroy', this.removeEvent)
}
}
}
</script>
<style lang="scss">
@import "~@/assets/styles/variables.scss";
@import "~@/assets/styles/variables.scss";
.has-tags-view .header-container {
.has-tags-view .header-container {
height: calc(#{$nav-height} + #{$tags-view-height});
}
}
.header-container {
.header-container {
position: relative;
height: $nav-height;
transition: height .3s ease-in-out;
@ -95,5 +95,5 @@
height: 0;
}
}
}
}
</style>

@ -27,12 +27,12 @@
</template>
<script>
import Vue from 'vue'
import {mapState} from 'vuex'
import KeepRouterViewAlive from "./KeepAlive"
import Footer from "./Footer"
import Vue from 'vue'
import {mapState} from 'vuex'
import KeepRouterViewAlive from "./KeepAlive"
import Footer from "./Footer"
export default {
export default {
name: 'AppMain',
components: {KeepRouterViewAlive},
@ -63,13 +63,13 @@
const footerInstance = new FooterConstructor().$mount()
this.$refs.scrollbar.$refs.wrap.appendChild(footerInstance.$el)
}
}
}
</script>
<style lang="scss">
@import "~@/assets/styles/variables.scss";
@import "~@/assets/styles/variables.scss";
.app-main {
.app-main {
position: relative;
overflow: hidden;
background-color: #f5f7f9;
@ -97,5 +97,5 @@
}
}
}
}
}
</style>

@ -5,9 +5,9 @@
</template>
<script>
import {baseUrl} from '@/api/message/user'
import {baseUrl} from '@/api/message/user'
export default {
export default {
name: "Bell",
computed: {
@ -27,12 +27,12 @@
mounted() {
this.$store.dispatch('message/refresh')
}
}
}
</script>
<style>
.bell-badge .el-badge__content {
.bell-badge .el-badge__content {
top: 15px !important;
right: 10px !important;
}
}
</style>

@ -9,7 +9,7 @@
</template>
<script>
export default {
export default {
data: () => ({data: []}),
watch: {
@ -29,13 +29,13 @@
mounted() {
this.getBreadcrumb()
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/variables.scss";
@import "~@/assets/styles/variables.scss";
.app-breadcrumb {
.app-breadcrumb {
margin-left: 8px;
line-height: $nav-height;
@ -43,5 +43,5 @@
color: $--color-gray;
cursor: text;
}
}
}
</style>

@ -1,5 +1,5 @@
<script type="text/jsx">
export default {
export default {
name: 'Hamburger',
functional: true,
@ -15,15 +15,15 @@
</div>
)
}
}
}
</script>
<style>
.hamburger {
.hamburger {
font-size: 20px;
}
}
.hamburger.is-active {
.hamburger.is-active {
transform: rotate(180deg);
}
}
</style>

@ -25,9 +25,9 @@
</template>
<script>
import Fuse from 'fuse.js'
import Fuse from 'fuse.js'
export default {
export default {
name: 'HeaderSearch',
data() {
@ -115,11 +115,11 @@
this.searchPool = this.generateRoutes(this.routes)
this.initFuse(this.searchPool)
}
}
}
</script>
<style lang="scss">
.header-search {
.header-search {
.header-search-select {
font-size: 18px;
transition: width 0.2s;
@ -147,5 +147,5 @@
margin-left: 10px;
}
}
}
}
</style>

@ -10,7 +10,7 @@
<el-divider>其他设置</el-divider>
<div v-for="{name,key} in settings" :key="key" class="drawer-item">
<span>{{name}}</span>
<span>{{ name }}</span>
<el-switch :value="getValue(key)" class="drawer-switch" @input="e => setValue(e,key)"/>
</div>
</div>
@ -18,13 +18,13 @@
</template>
<script>
import ColorCheckBox from "@/components/ColorCheckBox"
import ColorCheckboxGroup from "@/components/ColorCheckBox/group"
import {isDev} from '@/config'
import client from 'webpack-theme-color-replacer/client'
import forElementUI from 'webpack-theme-color-replacer/forElementUI'
import ColorCheckBox from "@/components/ColorCheckBox"
import ColorCheckboxGroup from "@/components/ColorCheckBox/group"
import {isDev} from '@/config'
import client from 'webpack-theme-color-replacer/client'
import forElementUI from 'webpack-theme-color-replacer/forElementUI'
const settings = [
const settings = [
{name: '显示logo', key: 'showLogo'},
{name: '显示面包屑', key: 'showBreadcrumb'},
{name: '使用多页签', key: 'useTagsView'},
@ -34,10 +34,10 @@
{name: '侧边栏自动隐藏', key: 'sidebarAutoHidden'},
{name: '头部自动隐藏', key: 'headerAutoHidden'},
{name: '显示返回顶部按钮', key: 'showBackToTop'}
]
const colors = ['#f5222d', '#fa541c', '#fadb14', '#3eaf7c', '#13c2c2', '#1890ff', '#722ed1', '#eb2f96']
]
const colors = ['#f5222d', '#fa541c', '#fadb14', '#3eaf7c', '#13c2c2', '#1890ff', '#722ed1', '#eb2f96']
export default {
export default {
name: "SettingDrawer",
components: {ColorCheckBox, ColorCheckboxGroup},
@ -64,11 +64,11 @@
this.$store.commit(`setting/${key}`, value)
}
}
}
}
</script>
<style lang="scss" scoped>
.drawer-container {
.drawer-container {
padding: 24px;
font-size: 14px;
line-height: 1.5;
@ -83,5 +83,5 @@
.drawer-switch {
float: right
}
}
}
</style>

@ -24,7 +24,7 @@
>
<div class="avatar-wrapper">
<el-avatar :size="30" :src="avatar" icon="el-icon-user-solid"/>
<span class="hidden-xs">{{name}}</span>
<span class="hidden-xs">{{ name }}</span>
</div>
<el-dropdown-menu class="user-dropdown" slot="dropdown">
<router-link to="/user/index">
@ -48,17 +48,17 @@
</template>
<script>
import Hamburger from './components/Hamburger'
import Breadcrumb from './components/Breadcrumb'
import Search from './components/HeaderSearch'
import Bell from "./components/Bell"
import SettingDrawer from './components/SettingDrawer'
import {mapState} from 'vuex'
import GuideMixin from '@/mixins/guide'
import {auth} from "@/utils/auth"
import {elConfirm} from "@/utils/message"
export default {
import Hamburger from './components/Hamburger'
import Breadcrumb from './components/Breadcrumb'
import Search from './components/HeaderSearch'
import Bell from "./components/Bell"
import SettingDrawer from './components/SettingDrawer'
import {mapState} from 'vuex'
import GuideMixin from '@/mixins/guide'
import {auth} from "@/utils/auth"
import {elConfirm} from "@/utils/message"
export default {
name: 'navbar',
mixins: [GuideMixin.navbar],
@ -96,7 +96,7 @@
.then(() => this.$store.dispatch('user/logout'))
}
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -1,7 +1,7 @@
<script type="text/jsx">
import {sidebarLogoUrl, title} from '@/config'
import {sidebarLogoUrl, title} from '@/config'
export default {
export default {
name: 'SidebarLogo',
functional: true,
@ -22,5 +22,5 @@
</div>
)
}
}
}
</script>

@ -1,7 +1,7 @@
<script type="text/jsx">
import SidebarItemContent from './SidebarItemContent'
import SidebarItemContent from './SidebarItemContent'
function getOnlyChild(item) {
function getOnlyChild(item) {
const children = item.children || []
if (children.length === 1) return item.alwaysShow ? null : children[0]
@ -9,9 +9,9 @@
if (children.length < 1) return {...item, path: undefined, children: undefined}
return null
}
}
function renderNode(h, {item, showParent, collapse}) {
function renderNode(h, {item, showParent, collapse}) {
let onlyOneChild = getOnlyChild(item)
const showSingle = onlyOneChild && !onlyOneChild.children
@ -54,9 +54,9 @@
</el-submenu>
)
}
}
}
export default {
export default {
functional: true,
props: {
@ -68,5 +68,5 @@
render(h, context) {
return renderNode(h, context.props)
}
}
}
</script>

@ -1,5 +1,5 @@
<script type="text/jsx">
export default {
export default {
name: "SidebarItemContent",
functional: true,
@ -27,5 +27,5 @@
return vnodes
}
}
}
</script>

@ -1,10 +1,10 @@
<script type="text/jsx">
import {mapState} from 'vuex'
import Logo from './components/Logo'
import SidebarItem from './components/SidebarItem'
import {isExternal} from "@/utils/validate"
import {mapState} from 'vuex'
import Logo from './components/Logo'
import SidebarItem from './components/SidebarItem'
import {isExternal} from "@/utils/validate"
export default {
export default {
name: 'sidebar',
components: {SidebarItem, Logo},
@ -143,7 +143,7 @@
</aside>
)
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -5,9 +5,9 @@
</template>
<script>
const tagAndTagSpacing = 4
const tagAndTagSpacing = 4
export default {
export default {
name: 'ScrollPane',
data: () => ({rAF: null}),
@ -89,5 +89,5 @@
frameFunc()
}
}
}
}
</script>

@ -29,13 +29,13 @@
</template>
<script>
import ScrollPane from './ScrollPane'
import ContextMenu from "@/components/ContextMenu"
import ContextMenuItem from "@/components/ContextMenu/ContextMenuItem"
import shortcuts from './mixin/shortcuts'
import decideRouterTransition from './mixin/decideRouterTransition'
import ScrollPane from './ScrollPane'
import ContextMenu from "@/components/ContextMenu"
import ContextMenuItem from "@/components/ContextMenu/ContextMenuItem"
import shortcuts from './mixin/shortcuts'
import decideRouterTransition from './mixin/decideRouterTransition'
export default {
export default {
mixins: [shortcuts, decideRouterTransition],
components: {ContextMenu, ContextMenuItem, ScrollPane},
@ -181,7 +181,7 @@
this.initTags()
this.addTags()
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -15,14 +15,14 @@
</template>
<script>
import {mapState} from 'vuex'
import VMain from './components/Main'
import VHeader from './components/Header'
import VSidebar from './components/Sidebar'
import offlineMixin from "@/layout/mixin/offline"
import resizeMixin from './mixin/resize'
import {mapState} from 'vuex'
import VMain from './components/Main'
import VHeader from './components/Header'
import VSidebar from './components/Sidebar'
import offlineMixin from "@/layout/mixin/offline"
import resizeMixin from './mixin/resize'
export default {
export default {
name: 'Layout',
mixins: [offlineMixin, resizeMixin],
@ -53,11 +53,11 @@
this.$store.commit('setting/sidebarCollapse', true)
}
}
}
}
</script>
<style lang="scss">
.app-wrapper {
.app-wrapper {
position: relative;
height: 100%;
width: 100%;
@ -78,5 +78,5 @@
position: relative;
flex-direction: column;
}
}
}
</style>

@ -19,13 +19,13 @@
</template>
<script>
export default {
export default {
name: 'Page403'
}
}
</script>
<style lang="scss" scoped>
.error-container {
.error-container {
transform: translate(-50%, -50%);
position: absolute;
top: 40%;
@ -119,5 +119,5 @@
}
}
}
}
}
</style>

@ -22,13 +22,13 @@
</template>
<script>
export default {
export default {
name: 'Page404'
}
}
</script>
<style lang="scss" scoped>
.error-container {
.error-container {
transform: translate(-50%, -50%);
position: absolute;
top: 40%;
@ -221,5 +221,5 @@
}
}
}
}
}
</style>

@ -35,7 +35,7 @@
type="primary"
@click="register"
>
{{loading ? '注 册 中...' : '注 册'}}
{{ loading ? '注 册 中...' : '注 册' }}
</el-button>
<div class="flex" style="margin-top: 20px">
@ -46,11 +46,11 @@
</template>
<script>
import md5 from "js-md5"
import {register, checkName} from "@/api/account"
import {elSuccess} from "@/utils/message"
import md5 from "js-md5"
import {register, checkName} from "@/api/account"
import {elSuccess} from "@/utils/message"
export default {
export default {
name: "RegisterForm",
data() {
@ -125,5 +125,5 @@
this.$once('hook:beforeDestroy', this.removeEvent)
}
}
}
</script>

@ -1,5 +1,5 @@
<script type="text/jsx">
const animations = [
const animations = [
{name: '无', value: ''},
{name: '烟花', value: 'firework'},
{name: '上帝之光', value: 'godrays'},
@ -10,9 +10,9 @@
{name: '雨', value: 'reflectRain'},
{name: '流星雨', value: 'sparkRain'},
{name: '阳光', value: 'sunlight'},
]
]
export default {
export default {
name: "SetAnimation",
functional: true,
@ -45,5 +45,5 @@
</el-dropdown>
)
}
}
}
</script>

@ -4,7 +4,7 @@
<div class="login-container" @click.stop>
<div class="title">
{{title}}
{{ title }}
<set-animation :value="loginBackgroundAnimation" custom-class="set-animation" @select="setAnimation"/>
</div>
@ -14,14 +14,14 @@
</template>
<script>
import {mapState} from 'vuex'
import {title} from '@/config'
import SetAnimation from "./SetAnimation"
import LoginForm from "./LoginForm"
import RegisterForm from "./RegisterForm"
import {isEmpty} from "@/utils"
import {mapState} from 'vuex'
import {title} from '@/config'
import SetAnimation from "./SetAnimation"
import LoginForm from "./LoginForm"
import RegisterForm from "./RegisterForm"
import {isEmpty} from "@/utils"
export default {
export default {
name: 'login',
components: {LoginForm, RegisterForm, SetAnimation},
@ -68,7 +68,7 @@
this.clearAnimation()
this.$message.closeAll()
}
}
}
</script>
<style lang="scss" src="./style.scss"></style>

@ -1,5 +1,5 @@
<script>
export default {
export default {
created() {
const {params, query} = this.$route
//使name+params
@ -11,5 +11,5 @@
},
render: h => h()
}
}
</script>

@ -19,9 +19,9 @@
</template>
<script>
import RegionSelector from '@/components/RegionSelector'
import RegionSelector from '@/components/RegionSelector'
export default {
export default {
name: "regionSelectorExample",
components: {RegionSelector},
data() {
@ -37,5 +37,5 @@
this.value = obj.fullname
}
}
}
}
</script>

@ -5,7 +5,7 @@
</template>
<script>
export default {
export default {
name: "rippleExample"
}
}
</script>

@ -11,7 +11,7 @@
</template>
<script>
export default {
export default {
name: 'signatureExample',
data() {
return {
@ -25,5 +25,5 @@
})
}
}
}
}
</script>

@ -22,10 +22,10 @@
</template>
<script>
import QSkeleton from '@/components/Skeleton'
import {skeletonAnimations, skeletonTypes} from '@/components/Skeleton/constant'
import QSkeleton from '@/components/Skeleton'
import {skeletonAnimations, skeletonTypes} from '@/components/Skeleton/constant'
export default {
export default {
name: "skeletonExample",
components: {QSkeleton},
data() {
@ -34,29 +34,29 @@
skeletonAnimations
}
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/variables.scss";
@import "~@/assets/styles/variables.scss";
.q-skeleton + .q-skeleton {
.q-skeleton + .q-skeleton {
margin-top: 20px;
}
}
.bg-primary {
.bg-primary {
background: $--color-primary;
}
}
.bg-info {
.bg-info {
background-color: $--color-teal;
}
}
.bg-warning {
.bg-warning {
background-color: $--color-warning;
}
}
.bg-error {
.bg-error {
background-color: $--color-danger;
}
}
</style>

@ -9,9 +9,9 @@
</template>
<script>
import TreeSelect from '@/components/TreeSelect'
import TreeSelect from '@/components/TreeSelect'
export default {
export default {
name: "treeSelectExample",
components: {TreeSelect},
@ -32,9 +32,9 @@
return data.label.includes(v)
},
singleInput(v,data) {
singleInput(v, data) {
console.log(data)
}
}
}
}
</script>

@ -11,10 +11,10 @@
</template>
<script>
import UploadFile from '@/components/UploadFile'
import request from "@/config/request"
import UploadFile from '@/components/UploadFile'
import request from "@/config/request"
export default {
export default {
name: "uploadExample",
components: {UploadFile},
data() {
@ -55,5 +55,5 @@
.then(({data}) => alert(data))
}
}
}
}
</script>

@ -5,9 +5,9 @@
</template>
<script>
import {debounce} from "@/utils"
import {debounce} from "@/utils"
export default {
export default {
name: "fluid",
data() {
@ -51,5 +51,5 @@
this.$_destroyResizeEvent()
this.close()
}
}
}
</script>

@ -9,9 +9,9 @@
</template>
<script>
import {loadExternalResource} from "@/utils/browser"
import {loadExternalResource} from "@/utils/browser"
export default {
export default {
name: "l2d",
data: () => ({l2d: null}),
@ -32,5 +32,5 @@
beforeDestroy() {
this.l2d && this.l2d.exit()
}
}
}
</script>

@ -6,12 +6,12 @@
</template>
<script>
export default {
export default {
name: "detailPage",
data() {
return {
data: ''
}
}
}
}
</script>

@ -1,7 +1,7 @@
<template>
<div class="tip-row">
测试接口返回速度<br>
当前响应次数{{times}}响应时间{{cur}}毫秒平均响应{{avg}}毫秒最长响应{{max}}毫秒
当前响应次数{{ times }}响应时间{{ cur }}毫秒平均响应{{ avg }}毫秒最长响应{{ max }}毫秒
<el-row>
<el-button type="primary" @click="post">点我测试</el-button>
<el-button plain @click="reset">重置</el-button>
@ -10,9 +10,9 @@
</template>
<script>
import request from "@/config/request"
import request from "@/config/request"
export default {
export default {
name: "ApiSpeedTest",
data() {
return {
@ -51,5 +51,5 @@
this.total = 0
}
}
}
}
</script>

@ -1,7 +1,7 @@
<template>
<div class="tip-row">
测试纯前端导出excel性能超过1w行浏览器将会有卡顿感请勿作死<br>
导出耗时{{cost}}毫秒
导出耗时{{ cost }}毫秒
<el-row>
<el-input-number v-model="rows" :min="1" :step="1" step-strictly/>
<el-radio v-model="merge" :label="true" style="margin-left: 20px">合并</el-radio>
@ -12,9 +12,9 @@
</template>
<script>
import {exportExcelByJs, json2workbook} from "@/utils/excel"
import {exportExcelByJs, json2workbook} from "@/utils/excel"
export default {
export default {
name: "ExportExcelTest",
data() {
return {
@ -52,5 +52,5 @@
this.cost = end - start
},
},
}
}
</script>

@ -9,20 +9,20 @@
<el-button type="primary" @click="() => $refs.jpg.click()">选择图片</el-button>
</div>
<div v-show="jpg.input.src" class="image-container">
<p>原始图片{{jpg.name}} ({{jpg.input.size|numberFormatter}})</p>
<p>原始图片{{ jpg.name }} ({{ jpg.input.size|numberFormatter }})</p>
<img :src="jpg.input.src">
</div>
<div v-show="jpg.output.src" class="image-container">
<p>
压缩后大小({{jpg.output.size|numberFormatter}})
压缩率{{jpg.compress}}%
总耗时{{jpg.totalCost}}毫秒
计算耗时{{jpg.calcCost}}毫秒
压缩后大小({{ jpg.output.size|numberFormatter }})
压缩率{{ jpg.compress }}%
总耗时{{ jpg.totalCost }}毫秒
计算耗时{{ jpg.calcCost }}毫秒
</p>
<img :src="jpg.output.src">
</div>
<el-row type="flex">
<span>压缩图片品质{{jpg.quality}}</span>
<span>压缩图片品质{{ jpg.quality }}</span>
<el-slider v-model="jpg.quality" :disabled="jpg.loading" :min="0" :max="100" style="flex: 1"/>
</el-row>
<el-row type="flex" justify="center">
@ -41,24 +41,24 @@
<el-button type="primary" @click="() => $refs.png.click()">选择图片</el-button>
</div>
<div v-show="png.input.src" class="image-container">
<p>原始图片{{png.name}} ({{png.input.size|numberFormatter}})</p>
<p>原始图片{{ png.name }} ({{ png.input.size|numberFormatter }})</p>
<img :src="png.input.src">
</div>
<div v-show="png.output.src" class="image-container">
<p>
压缩后大小({{png.output.size|numberFormatter}})
压缩率{{png.compress}}%
总耗时{{png.totalCost}}毫秒
计算耗时{{png.calcCost}}毫秒
压缩后大小({{ png.output.size|numberFormatter }})
压缩率{{ png.compress }}%
总耗时{{ png.totalCost }}毫秒
计算耗时{{ png.calcCost }}毫秒
</p>
<img :src="png.output.src">
</div>
<el-row type="flex">
<span>压缩图片品质{{png.quality}}</span>
<span>压缩图片品质{{ png.quality }}</span>
<el-slider v-model="png.quality" range :disabled="png.loading" :min="0" :max="100" style="flex: 1"/>
</el-row>
<el-row type="flex">
<span>压缩速度{{png.speed}}</span>
<span>压缩速度{{ png.speed }}</span>
<el-slider v-model="png.speed" :disabled="png.loading" :min="0" :max="10" style="flex: 1"/>
</el-row>
<el-row type="flex" justify="center">
@ -71,10 +71,10 @@
</template>
<script>
import {elError, elSuccess} from "@/utils/message"
import {sub, mul, div} from "@/utils/math"
import {elError, elSuccess} from "@/utils/message"
import {sub, mul, div} from "@/utils/math"
const commonData = () => ({
const commonData = () => ({
loading: false,
name: '',
compress: 0,
@ -89,9 +89,9 @@
size: 0,
src: ''
}
})
})
export default {
export default {
name: "ImageCompressTest",
data() {
return {
@ -170,13 +170,13 @@
elSuccess('压缩成功')
}
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/variables.scss";
@import "~@/assets/styles/variables.scss";
.container {
.container {
max-width: 1200px;
text-align: center;
@ -217,5 +217,5 @@
.el-slider {
margin-left: 20px;
}
}
}
</style>

@ -15,7 +15,7 @@
<el-tab-pane label="element-icons">
<div :key="item" class="icon-item" v-for="item of elementIcons">
<i :class="item"/>
<span>{{ item.replace('el-icon-','') }}</span>
<span>{{ item.replace('el-icon-', '') }}</span>
</div>
</el-tab-pane>
</el-tabs>
@ -23,10 +23,10 @@
</template>
<script>
import svgIcons from '@/assets/icons'
import elementIcons from './element-icons'
import svgIcons from '@/assets/icons'
import elementIcons from './element-icons'
export default {
export default {
name: "icons",
data() {
return {
@ -42,11 +42,11 @@
return `<i class="${symbol}" />`
},
}
}
}
</script>
<style scoped>
.icon-item {
.icon-item {
margin: 20px;
height: 85px;
text-align: center;
@ -55,11 +55,11 @@
font-size: 30px;
color: #24292e;
cursor: pointer;
}
}
span {
span {
display: block;
font-size: 16px;
margin-top: 10px;
}
}
</style>

@ -53,11 +53,11 @@
</template>
<script>
import AbstractTable from '@/components/AbstractTable'
import LinerProgress from '@/components/LinerProgress'
import FormDialog from "@/components/FormDialog"
import AbstractTable from '@/components/AbstractTable'
import LinerProgress from '@/components/LinerProgress'
import FormDialog from "@/components/FormDialog"
export default {
export default {
name: "stylePage",
components: {AbstractTable, LinerProgress, FormDialog},
@ -91,24 +91,24 @@
this.$once('hook:beforeDestroy', this.$notify.closeAll)
}
}
}
</script>
<style lang="scss" scoped>
.el-message {
.el-message {
position: static;
transform: translateX(0);
& + .el-message {
margin-left: 20px;
}
}
}
.el-row + .el-row {
.el-row + .el-row {
margin-top: 20px;
}
}
.el-tag + .el-tag {
.el-tag + .el-tag {
margin-left: 20px;
}
}
</style>

@ -3,11 +3,11 @@
</template>
<script>
import {logic, resize} from "@/mixins/chart"
import {getDailyFinishOrder} from '@/api/statistic'
import {timeFormat} from "@/utils"
import {logic, resize} from "@/mixins/chart"
import {getDailyFinishOrder} from '@/api/statistic'
import {timeFormat} from "@/utils"
export default {
export default {
name: "DailyFinishOrderStat",
mixins: [resize, logic],
@ -84,5 +84,5 @@
})
}
}
}
}
</script>

@ -3,11 +3,11 @@
</template>
<script>
import {logic, resize} from "@/mixins/chart"
import {getDailyProfitStat} from '@/api/statistic'
import {timeFormat} from "@/utils"
import {logic, resize} from "@/mixins/chart"
import {getDailyProfitStat} from '@/api/statistic'
import {timeFormat} from "@/utils"
export default {
export default {
name: "DailyProfitStat",
mixins: [resize, logic],
@ -92,5 +92,5 @@
})
}
}
}
}
</script>

@ -1,7 +1,7 @@
<script type="text/jsx">
import CountTo from 'vue-count-to'
import CountTo from 'vue-count-to'
export default {
export default {
name: "PanelGroupItem",
functional: true,
@ -27,11 +27,11 @@
</el-row>
)
}
}
}
</script>
<style lang="scss">
.card-panel {
.card-panel {
height: 108px;
cursor: pointer;
font-size: 12px;
@ -74,9 +74,9 @@
font-size: 20px;
}
}
}
}
@media (max-width: 550px) {
@media (max-width: 550px) {
.card-panel-description {
display: none;
}
@ -93,6 +93,6 @@
float: none !important;
}
}
}
}
</style>

@ -7,13 +7,13 @@
</template>
<script>
import PanelGroupItem from './PanelGroupItem'
import variables from '@/assets/styles/variables.scss'
import {getFourBlock} from '@/api/statistic'
import {isEmpty} from "@/utils"
import {auth} from "@/utils/auth"
import PanelGroupItem from './PanelGroupItem'
import variables from '@/assets/styles/variables.scss'
import {getFourBlock} from '@/api/statistic'
import {isEmpty} from "@/utils"
import {auth} from "@/utils/auth"
export default {
export default {
name: 'panelGroup',
components: {PanelGroupItem},
@ -58,15 +58,15 @@
mounted() {
this.init()
}
}
}
</script>
<style lang="scss">
.panel-group {
.panel-group {
padding-top: 17px;
> .el-col {
margin-bottom: 32px;
}
}
}
</style>

@ -9,10 +9,10 @@
</template>
<script>
import PieChart from "@/components/Charts/PieChart"
import {getTotalProfitGoods} from '@/api/statistic'
import PieChart from "@/components/Charts/PieChart"
import {getTotalProfitGoods} from '@/api/statistic'
export default {
export default {
name: "TotalProfitGoods",
components: {PieChart},
@ -68,5 +68,5 @@
mounted() {
this.init()
}
}
}
</script>

@ -15,14 +15,14 @@
</template>
<script>
import PanelGroup from './components/PanelGroup'
import DailyProfitStat from "./components/DailyProfitStat"
import DailyFinishOrderStat from "./components/DailyFinishOrderStat"
import TotalProfitGoods from "./components/TotalProfitGoods"
import PanelGroup from './components/PanelGroup'
import DailyProfitStat from "./components/DailyProfitStat"
import DailyFinishOrderStat from "./components/DailyFinishOrderStat"
import TotalProfitGoods from "./components/TotalProfitGoods"
export default {
export default {
name: 'index',
components: {PanelGroup, DailyProfitStat, DailyFinishOrderStat, TotalProfitGoods}
}
}
</script>

@ -52,18 +52,18 @@
</template>
<script>
import AbstractForm from "@/components/AbstractForm"
import AbstractFormItem from "@/components/AbstractForm/AbstractFormItem"
import FormDialog from '@/components/FormDialog'
import TinymceEditor from "@/components/TinymceEditor"
import {SimpleMultipleUserSelector as UserSelector} from '@/components/biz/UserSelector'
import dialogMixin from "@/mixins/dialogMixin"
import {add, update, publish, withdraw} from "@/api/message/manage"
import {isEmpty, mergeObj, resetObj} from '@/utils'
import {elAlert, elConfirm, elSuccess} from "@/utils/message"
import {auth} from "@/utils/auth"
export default {
import AbstractForm from "@/components/AbstractForm"
import AbstractFormItem from "@/components/AbstractForm/AbstractFormItem"
import FormDialog from '@/components/FormDialog'
import TinymceEditor from "@/components/TinymceEditor"
import {SimpleMultipleUserSelector as UserSelector} from '@/components/biz/UserSelector'
import dialogMixin from "@/mixins/dialogMixin"
import {add, update, publish, withdraw} from "@/api/message/manage"
import {isEmpty, mergeObj, resetObj} from '@/utils'
import {elAlert, elConfirm, elSuccess} from "@/utils/message"
import {auth} from "@/utils/auth"
export default {
name: "EditDialog",
mixins: [dialogMixin],
@ -235,5 +235,5 @@
else return {...this.form, recipient: this.form.recipient.join(',')}
}
}
}
}
</script>

@ -32,17 +32,17 @@
<el-table-column align="center" label="#" type="index" width="80"/>
<el-table-column align="center" label="标 题" prop="title" show-overflow-tooltip/>
<el-table-column align="center" label="类 型" show-overflow-tooltip>
<template v-slot="{row}">{{row.type===0?'通知提醒':'系统公告'}}</template>
<template v-slot="{row}">{{ row.type === 0 ? '通知提醒' : '系统公告' }}</template>
</el-table-column>
<el-table-column align="center" label="通知对象" show-overflow-tooltip>
<template v-slot="{row}">{{row.broadcast===1?'全体用户':'指定用户'}}</template>
<template v-slot="{row}">{{ row.broadcast === 1 ? '全体用户' : '指定用户' }}</template>
</el-table-column>
<el-table-column align="center" label="状 态" show-overflow-tooltip>
<template v-slot="{row}">{{transformStatus(row.status)}}</template>
<template v-slot="{row}">{{ transformStatus(row.status) }}</template>
</el-table-column>
<el-table-column align="center" label="发布人" prop="pname" show-overflow-tooltip/>
<el-table-column align="center" label="发布时间" width="150" show-overflow-tooltip>
<template v-slot="{row}">{{row.ptime | timestamp2Date}}</template>
<template v-slot="{row}">{{ row.ptime | timestamp2Date }}</template>
</el-table-column>
</abstract-table>
@ -67,16 +67,16 @@
</template>
<script>
import SearchForm from "@/components/SearchForm"
import SearchFormItem from "@/components/SearchForm/SearchFormItem"
import EditDialog from './EditDialog'
import {search, del} from "@/api/message/manage"
import {isEmpty} from '@/utils'
import {elConfirm, elError, elSuccess} from "@/utils/message"
import {auth} from "@/utils/auth"
import tableMixin from '@/mixins/tablePageMixin'
export default {
import SearchForm from "@/components/SearchForm"
import SearchFormItem from "@/components/SearchForm/SearchFormItem"
import EditDialog from './EditDialog'
import {search, del} from "@/api/message/manage"
import {isEmpty} from '@/utils'
import {elConfirm, elError, elSuccess} from "@/utils/message"
import {auth} from "@/utils/auth"
import tableMixin from '@/mixins/tablePageMixin'
export default {
name: "messageManagement",
mixins: [tableMixin],
@ -169,5 +169,5 @@
.finally(() => this.config.operating = false)
}
}
}
}
</script>

@ -8,16 +8,16 @@
:icon="collapseIcon"
@click="handleCollapse"
>
{{collapse ? '展开' : '收起'}}
{{ collapse ? '展开' : '收起' }}
</el-button>
</div>
</div>
</template>
<script>
import {getElementHeight} from "@/utils/browser"
import {getElementHeight} from "@/utils/browser"
export default {
export default {
name: "AutoHidden",
props: {
html: String,
@ -50,11 +50,11 @@
mounted() {
this.showCollapse = this.isOverHeight()
}
}
}
</script>
<style lang="scss">
.auto-hidden {
.auto-hidden {
position: relative;
&__content {
@ -65,5 +65,5 @@
margin: 0 auto;
text-align: center;
}
}
}
</style>

@ -26,11 +26,11 @@
>
<div class="message-stream__item__title">
<span v-if="!child.__read" class="dot success"/>
<b>{{transformType(child.type)}}</b>
{{child.title}}
<b>{{ transformType(child.type) }}</b>
{{ child.title }}
</div>
<auto-hidden :html="child.content"/>
<div class="message-stream__item__footer"><b>By:</b> {{child.pname}}</div>
<div class="message-stream__item__footer"><b>By:</b> {{ child.pname }}</div>
</el-card>
</el-timeline-item>
</el-timeline>
@ -49,12 +49,12 @@
</template>
<script>
import tablePageMixin from '@/mixins/tablePageMixin'
import AutoHidden from "./AutoHidden"
import Empty from '@/components/Empty'
import {search, read, readAll} from "@/api/message/user"
import tablePageMixin from '@/mixins/tablePageMixin'
import AutoHidden from "./AutoHidden"
import Empty from '@/components/Empty'
import {search, read, readAll} from "@/api/message/user"
export default {
export default {
name: "MessageStream",
mixins: [tablePageMixin],
@ -153,11 +153,11 @@
}
},
}
}
}
</script>
<style lang="scss">
.message-stream {
.message-stream {
&__item {
cursor: pointer;
position: relative;
@ -191,5 +191,5 @@
text-align: right;
}
}
}
}
</style>

@ -10,9 +10,9 @@
</template>
<script>
import MessageStream from './MessageStream'
import MessageStream from './MessageStream'
export default {
export default {
name: "userMessage",
components: {MessageStream},
@ -32,11 +32,11 @@
return this.tabPosition === 'left' ? 'tab-main-right' : 'tab-main-top'
}
}
}
}
</script>
<style lang="scss">
.user-message-page {
.user-message-page {
.el-tabs--left {
.el-tabs__item.is-left {
text-align: center;
@ -64,5 +64,5 @@
padding: 20px 40px;
}
}
}
}
</style>

@ -53,11 +53,11 @@
<el-table-column align="center" label="单号" prop="id" show-overflow-tooltip/>
<el-table-column align="center" label="创建人" prop="cname" show-overflow-tooltip/>
<el-table-column align="center" label="创建时间" show-overflow-tooltip>
<template v-slot="{row}">{{row.ctime | timestamp2Date}}</template>
<template v-slot="{row}">{{ row.ctime | timestamp2Date }}</template>
</el-table-column>
<el-table-column align="center" label="审核人" prop="vname" show-overflow-tooltip/>
<el-table-column align="center" label="审核时间" show-overflow-tooltip>
<template v-slot="{row}">{{row.vtime | timestamp2Date}}</template>
<template v-slot="{row}">{{ row.vtime | timestamp2Date }}</template>
</el-table-column>
</abstract-table>
</el-row>
@ -66,13 +66,13 @@
</template>
<script>
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {getSubById, search} from "@/api/doc/purchase/order"
import {elError} from "@/utils/message"
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {getSubById, search} from "@/api/doc/purchase/order"
import {elError} from "@/utils/message"
export default {
export default {
name: "OrderSelector",
mixins: [dialogMixin, tableMixin],
@ -130,13 +130,13 @@
this.tableData = []
}
}
}
}
</script>
<style lang="scss" scoped>
.el-table {
.el-table {
.nets-table-btn {
margin: 0 auto;
}
}
}
</style>

@ -17,7 +17,7 @@
<el-input v-if="canSave" :value="form.pid" readonly>
<el-button slot="append" @click="parentDialog=true">选择</el-button>
</el-input>
<template v-else>{{form.pid}}</template>
<template v-else>{{ form.pid }}</template>
</abstract-form-item>
</collapse-card>
@ -35,7 +35,7 @@
size="small"
@change="(nv,ov)=>changeInboundNum(nv,ov,row)"
/>
<span v-else>{{row.num}}</span>
<span v-else>{{ row.num }}</span>
</template>
</el-table-column>
</abstract-table>
@ -78,15 +78,15 @@
</template>
<script>
import docDetailMixin from "@/mixins/docDetailMixin"
import OrderSelector from './components/OrderSelector'
import {baseUrl, add, commit, getById, pass, reject, update, withdraw} from "@/api/doc/purchase/inbound"
import {getSubById as getParentSubById} from "@/api/doc/purchase/order"
import {isEmpty} from "@/utils"
import {elAlert} from "@/utils/message"
import {isInteger} from "@/utils/validate"
export default {
import docDetailMixin from "@/mixins/docDetailMixin"
import OrderSelector from './components/OrderSelector'
import {baseUrl, add, commit, getById, pass, reject, update, withdraw} from "@/api/doc/purchase/inbound"
import {getSubById as getParentSubById} from "@/api/doc/purchase/order"
import {isEmpty} from "@/utils"
import {elAlert} from "@/utils/message"
import {isInteger} from "@/utils/validate"
export default {
name: "purchaseInboundDetail",
mixins: [docDetailMixin],
@ -179,5 +179,5 @@
return null
}
}
}
}
</script>

@ -12,12 +12,12 @@
</template>
<script>
import TreeSelect from '@/components/TreeSelect'
import {getAll} from "@/api/system/category"
import {isEmpty} from "@/utils"
import {elError} from "@/utils/message"
import TreeSelect from '@/components/TreeSelect'
import {getAll} from "@/api/system/category"
import {isEmpty} from "@/utils"
import {elError} from "@/utils/message"
export default {
export default {
name: "CategorySelector",
components: {TreeSelect},
@ -84,5 +84,5 @@
mounted() {
this.init()
}
}
}
</script>

@ -42,12 +42,12 @@
<el-table-column align="center" label="联系人" prop="linkman" show-overflow-tooltip/>
<el-table-column align="center" label="联系电话" prop="linkphone" show-overflow-tooltip/>
<el-table-column align="center" label="创建时间" width="150" show-overflow-tooltip>
<template v-slot="{row}">{{row.ctime | timestamp2Date}}</template>
<template v-slot="{row}">{{ row.ctime | timestamp2Date }}</template>
</el-table-column>
<el-table-column align="center" label="状 态" width="120">
<template v-slot="{row}">
<span :class="row.status===1?'success':'error'" class="dot"/>
<span>{{row.status===1?'启用':'禁用'}}</span>
<span>{{ row.status === 1 ? '启用' : '禁用' }}</span>
</template>
</el-table-column>
</el-table>
@ -65,14 +65,14 @@
</template>
<script>
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {getSuppliers} from "@/api/system/supplier"
import {elError} from "@/utils/message"
import {auth} from "@/utils/auth"
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {getSuppliers} from "@/api/system/supplier"
import {elError} from "@/utils/message"
import {auth} from "@/utils/auth"
export default {
export default {
name: "SupplierSelector",
mixins: [dialogMixin, tableMixin],
components: {LinerProgress},
@ -120,5 +120,5 @@
this.$nextTick(() => this.$router.push('/system/supplier'))
}
}
}
}
</script>

@ -17,7 +17,7 @@
<el-input v-if="canSave" :value="form.sname" readonly>
<el-button slot="append" @click="supplierDialog=true">选择</el-button>
</el-input>
<template v-else>{{form.sname}}</template>
<template v-else>{{ form.sname }}</template>
</abstract-form-item>
</collapse-card>
@ -32,7 +32,7 @@
:selected="selectedCategories"
@get-name="row.cname=$event"
/>
<span v-else>{{row.cname}}</span>
<span v-else>{{ row.cname }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="采购数量">
@ -44,7 +44,7 @@
:min="0"
size="small"
/>
<span v-else>{{row.num}}</span>
<span v-else>{{ row.num }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="采购单价">
@ -56,14 +56,14 @@
:min="0"
size="small"
/>
<span v-else>{{row.price}}</span>
<span v-else>{{ row.price }}</span>
</template>
</el-table-column>
<el-table-column v-if="form.id" align="center" label="剩余未入库" prop="remainNum"/>
<el-table-column v-if="form.id" align="center" label="入库情况" width="120">
<template v-slot="{row}">
<span :class="{success:row.remainNum===0}" class="dot"/>
{{row.remainNum===0?'已全部入库':'未全部入库'}}
{{ row.remainNum === 0 ? '已全部入库' : '未全部入库' }}
</template>
</el-table-column>
<el-table-column v-if="canSave" align="center" label="操作" width="140">
@ -124,15 +124,15 @@
</template>
<script>
import docDetailMixin from "@/mixins/docDetailMixin"
import CategorySelector from './components/CategorySelector'
import SupplierSelector from './components/SupplierSelector'
import {baseUrl, add, commit, getById, pass, reject, update, withdraw} from "@/api/doc/purchase/order"
import {isEmpty} from "@/utils"
import {mul, plus} from "@/utils/math"
import {isInteger} from "@/utils/validate"
import docDetailMixin from "@/mixins/docDetailMixin"
import CategorySelector from './components/CategorySelector'
import SupplierSelector from './components/SupplierSelector'
import {baseUrl, add, commit, getById, pass, reject, update, withdraw} from "@/api/doc/purchase/order"
import {isEmpty} from "@/utils"
import {mul, plus} from "@/utils/math"
import {isInteger} from "@/utils/validate"
export default {
export default {
name: "purchaseOrderDetail",
mixins: [docDetailMixin],
@ -235,5 +235,5 @@
this.form.data.forEach(item => item.__editable = false)
}
}
}
}
</script>

@ -27,12 +27,12 @@
<el-table-column align="center" label="联系人" prop="linkman" show-overflow-tooltip/>
<el-table-column align="center" label="联系电话" prop="linkphone" show-overflow-tooltip/>
<el-table-column align="center" label="创建时间" width="150" show-overflow-tooltip>
<template v-slot="{row}">{{row.ctime | timestamp2Date}}</template>
<template v-slot="{row}">{{ row.ctime | timestamp2Date }}</template>
</el-table-column>
<el-table-column align="center" label="状 态" width="120">
<template v-slot="{row}">
<span :class="row.status===1?'success':'error'" class="dot"/>
<span>{{row.status===1?'启用':'禁用'}}</span>
<span>{{ row.status === 1 ? '启用' : '禁用' }}</span>
</template>
</el-table-column>
</abstract-table>
@ -51,13 +51,13 @@
</template>
<script>
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {getCustomers} from "@/api/system/customer"
import {elError} from "@/utils/message"
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {getCustomers} from "@/api/system/customer"
import {elError} from "@/utils/message"
export default {
export default {
name: "CustomerSelector",
mixins: [dialogMixin, tableMixin],
@ -102,5 +102,5 @@
this.tableData = []
}
}
}
}
</script>

@ -45,13 +45,13 @@
</template>
<script>
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {search} from "@/api/stock/current"
import {elError} from "@/utils/message"
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {search} from "@/api/stock/current"
import {elError} from "@/utils/message"
export default {
export default {
name: "StockSelector",
mixins: [dialogMixin, tableMixin],
@ -90,5 +90,5 @@
this.tableData = []
}
}
}
}
</script>

@ -17,7 +17,7 @@
<el-input v-if="canSave" :value="form.customerName" readonly>
<el-button slot="append" @click="customerDialog=true">选择</el-button>
</el-input>
<template v-else>{{form.customerName}}</template>
<template v-else>{{ form.customerName }}</template>
</abstract-form-item>
</collapse-card>
@ -34,7 +34,7 @@
:min="0"
size="small"
/>
<span v-else>{{row.num}}</span>
<span v-else>{{ row.num }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="销售单价">
@ -46,14 +46,14 @@
:min="0"
size="small"
/>
<span v-else>{{row.price}}</span>
<span v-else>{{ row.price }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="剩余未出库" prop="remainNum"/>
<el-table-column v-if="form.id" align="center" label="出库情况" width="120">
<template v-slot="{row}">
<span :class="{success:row.remainNum===0}" class="dot"/>
{{row.remainNum===0?'已全部出库':'未全部出库'}}
{{ row.remainNum === 0 ? '已全部出库' : '未全部出库' }}
</template>
</el-table-column>
<div v-if="canSave" slot="append" class="table-add-btn">
@ -109,15 +109,15 @@
</template>
<script>
import docDetailMixin from "@/mixins/docDetailMixin"
import CustomerSelector from './components/CustomerSelector'
import StockSelector from './components/StockSelector'
import {baseUrl, add, commit, getById, pass, reject, update, withdraw} from "@/api/doc/sell/order"
import {isEmpty} from "@/utils"
import {mul, plus} from "@/utils/math"
import {isInteger} from "@/utils/validate"
export default {
import docDetailMixin from "@/mixins/docDetailMixin"
import CustomerSelector from './components/CustomerSelector'
import StockSelector from './components/StockSelector'
import {baseUrl, add, commit, getById, pass, reject, update, withdraw} from "@/api/doc/sell/order"
import {isEmpty} from "@/utils"
import {mul, plus} from "@/utils/math"
import {isInteger} from "@/utils/validate"
export default {
name: "sellOrderDetail",
mixins: [docDetailMixin],
@ -211,5 +211,5 @@
return null
}
}
}
}
</script>

@ -53,11 +53,11 @@
<el-table-column align="center" label="单号" prop="id" show-overflow-tooltip/>
<el-table-column align="center" label="创建人" prop="cname" show-overflow-tooltip/>
<el-table-column align="center" label="创建时间" show-overflow-tooltip>
<template v-slot="{row}">{{row.ctime | timestamp2Date}}</template>
<template v-slot="{row}">{{ row.ctime | timestamp2Date }}</template>
</el-table-column>
<el-table-column align="center" label="审核人" prop="vname" show-overflow-tooltip/>
<el-table-column align="center" label="审核时间" show-overflow-tooltip>
<template v-slot="{row}">{{row.vtime | timestamp2Date}}</template>
<template v-slot="{row}">{{ row.vtime | timestamp2Date }}</template>
</el-table-column>
</abstract-table>
</el-row>
@ -66,13 +66,13 @@
</template>
<script>
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {getSubById, search} from "@/api/doc/sell/order"
import {elError} from "@/utils/message"
import LinerProgress from '@/components/LinerProgress'
import dialogMixin from "@/mixins/dialogMixin"
import tableMixin from '@/mixins/tablePageMixin'
import {getSubById, search} from "@/api/doc/sell/order"
import {elError} from "@/utils/message"
export default {
export default {
name: "OrderSelector",
mixins: [dialogMixin, tableMixin],
@ -130,13 +130,13 @@
this.tableData = []
}
}
}
}
</script>
<style lang="scss" scoped>
.el-table {
.el-table {
.nets-table-btn {
margin: 0 auto;
}
}
}
</style>

@ -38,12 +38,12 @@
</template>
<script>
import dialogMixin from "@/mixins/dialogMixin"
import LinerProgress from '@/components/LinerProgress'
import {getDetail} from "@/api/stock/current"
import {elError} from "@/utils/message"
import dialogMixin from "@/mixins/dialogMixin"
import LinerProgress from '@/components/LinerProgress'
import {getDetail} from "@/api/stock/current"
import {elError} from "@/utils/message"
export default {
export default {
name: "StockSelector",
mixins: [dialogMixin],
@ -85,5 +85,5 @@
this.tableData = []
}
}
}
}
</script>

@ -16,7 +16,7 @@
:to="{name:'purchaseOrderDetail',params:{type:'see',id:row.cgddid}}"
@click.native="cancel"
>
{{row.cgddid}}
{{ row.cgddid }}
</router-link>
</el-table-column>
<el-table-column align="center" label="采购单价" prop="price" show-overflow-tooltip/>
@ -26,11 +26,11 @@
:to="{name:'purchaseInboundDetail',params:{type:'see',id:row.cgrkid}}"
@click.native="cancel"
>
{{row.cgrkid}}
{{ row.cgrkid }}
</router-link>
</el-table-column>
<el-table-column align="center" label="入库时间" show-overflow-tooltip>
<template v-slot="{row}">{{row.ctime | timestamp2Date}}</template>
<template v-slot="{row}">{{ row.ctime | timestamp2Date }}</template>
</el-table-column>
<el-table-column align="center" label="库存数量" prop="num" show-overflow-tooltip/>
<el-table-column align="center" label="总 值" prop="total" show-overflow-tooltip/>
@ -39,15 +39,15 @@
</template>
<script>
import AbstractTable from '@/components/AbstractTable'
import LinerProgress from '@/components/LinerProgress'
import FormDialog from "@/components/FormDialog"
import dialogMixin from "@/mixins/dialogMixin"
import {isEmpty} from "@/utils"
import {plus, mul} from "@/utils/math"
import {getDetail} from "@/api/stock/current"
import AbstractTable from '@/components/AbstractTable'
import LinerProgress from '@/components/LinerProgress'
import FormDialog from "@/components/FormDialog"
import dialogMixin from "@/mixins/dialogMixin"
import {isEmpty} from "@/utils"
import {plus, mul} from "@/utils/math"
import {getDetail} from "@/api/stock/current"
export default {
export default {
name: "DetailDialog",
mixins: [dialogMixin],
@ -120,15 +120,15 @@
this.tableData = []
}
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/variables.scss";
@import "~@/assets/styles/variables.scss";
.el-table {
.el-table {
a {
color: $--color-primary;
}
}
}
</style>

@ -45,7 +45,7 @@
:summary-method="summary">
<el-table-column align="center" label="#" type="index" width="80"/>
<el-table-column align="center" label="商品分类">
<el-link slot-scope="{row}" @click="more(row)">{{row.cname}}</el-link>
<el-link slot-scope="{row}" @click="more(row)">{{ row.cname }}</el-link>
</el-table-column>
<el-table-column align="center" label="库存数量" prop="totalNum" show-overflow-tooltip/>
<el-table-column align="center" label="总 值" prop="totalPrice" show-overflow-tooltip/>
@ -67,19 +67,19 @@
</template>
<script>
import CategoryTree from '@/components/biz/CategoryTree'
import DetailDialog from "./DetailDialog"
import ExtraArea from '@/components/ExtraArea'
import SearchForm from "@/components/SearchForm"
import SearchFormItem from "@/components/SearchForm/SearchFormItem"
import {baseUrl, search} from "@/api/stock/current"
import {isEmpty, debounce} from "@/utils"
import {plus} from "@/utils/math"
import {exportExcel} from "@/utils/excel"
import {getNodeId} from "@/utils/tree"
import tableMixin from '@/mixins/tablePageMixin'
export default {
import CategoryTree from '@/components/biz/CategoryTree'
import DetailDialog from "./DetailDialog"
import ExtraArea from '@/components/ExtraArea'
import SearchForm from "@/components/SearchForm"
import SearchFormItem from "@/components/SearchForm/SearchFormItem"
import {baseUrl, search} from "@/api/stock/current"
import {isEmpty, debounce} from "@/utils"
import {plus} from "@/utils/math"
import {exportExcel} from "@/utils/excel"
import {getNodeId} from "@/utils/tree"
import tableMixin from '@/mixins/tablePageMixin'
export default {
name: "currentStock",
mixins: [tableMixin],
@ -192,5 +192,5 @@
created() {
this.filter = debounce(this.filter, 500)
}
}
}
</script>

@ -37,11 +37,11 @@
</template>
<script>
import {isEmpty, mergeObj, waitUntilSuccess} from '@/utils'
import {elConfirm} from "@/utils/message"
import {add, update} from "@/api/system/category"
import {isEmpty, mergeObj, waitUntilSuccess} from '@/utils'
import {elConfirm} from "@/utils/message"
import {add, update} from "@/api/system/category"
export default {
export default {
props: ['list'],
data() {
@ -148,11 +148,11 @@
() => ['add', 'see', 'edit'].forEach(event => this.list().$on(event, this[event]))
)
}
}
}
</script>
<style lang="scss" scoped>
.edit-form {
.edit-form {
width: 85%;
}
}
</style>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save