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"> <div slot="content">
<slot name="title"/> <slot name="title"/>
</div> </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/> <slot/>
</div> </div>
</el-tooltip> </el-tooltip>
@ -26,10 +27,10 @@
</template> </template>
<script> <script>
import MenuMixin from 'element-ui/packages/menu/src/menu-mixin' import MenuMixin from 'element-ui/packages/menu/src/menu-mixin'
import Emitter from 'element-ui/lib/mixins/emitter' import Emitter from 'element-ui/lib/mixins/emitter'
export default { export default {
name: 'ElMenuItem', name: 'ElMenuItem',
componentName: 'ElMenuItem', componentName: 'ElMenuItem',
@ -70,5 +71,5 @@
this.parentMenu.removeItem(this) this.parentMenu.removeItem(this)
this.rootMenu.removeItem(this) this.rootMenu.removeItem(this)
} }
} }
</script> </script>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1,13 +1,13 @@
<script type="text/jsx"> <script type="text/jsx">
import Vue from 'vue' import Vue from 'vue'
import TreeDialog from "./TreeDialog" import TreeDialog from "./TreeDialog"
import common from '../mixin' 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", name: "RegionTreeSelector",
mixins: [common], mixins: [common],
@ -75,5 +75,5 @@
/> />
) )
} }
} }
</script> </script>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -32,17 +32,17 @@
<el-table-column align="center" label="#" type="index" width="80"/> <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="标 题" prop="title" show-overflow-tooltip/>
<el-table-column align="center" label="类 型" 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>
<el-table-column align="center" label="通知对象" show-overflow-tooltip> <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>
<el-table-column align="center" label="状 态" show-overflow-tooltip> <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>
<el-table-column align="center" label="发布人" prop="pname" show-overflow-tooltip/> <el-table-column align="center" label="发布人" prop="pname" show-overflow-tooltip/>
<el-table-column align="center" label="发布时间" width="150" 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> </el-table-column>
</abstract-table> </abstract-table>
@ -67,16 +67,16 @@
</template> </template>
<script> <script>
import SearchForm from "@/components/SearchForm" import SearchForm from "@/components/SearchForm"
import SearchFormItem from "@/components/SearchForm/SearchFormItem" import SearchFormItem from "@/components/SearchForm/SearchFormItem"
import EditDialog from './EditDialog' import EditDialog from './EditDialog'
import {search, del} from "@/api/message/manage" import {search, del} from "@/api/message/manage"
import {isEmpty} from '@/utils' import {isEmpty} from '@/utils'
import {elConfirm, elError, elSuccess} from "@/utils/message" import {elConfirm, elError, elSuccess} from "@/utils/message"
import {auth} from "@/utils/auth" import {auth} from "@/utils/auth"
import tableMixin from '@/mixins/tablePageMixin' import tableMixin from '@/mixins/tablePageMixin'
export default { export default {
name: "messageManagement", name: "messageManagement",
mixins: [tableMixin], mixins: [tableMixin],
@ -169,5 +169,5 @@
.finally(() => this.config.operating = false) .finally(() => this.config.operating = false)
} }
} }
} }
</script> </script>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Loading…
Cancel
Save