Commit f336b801b9bbf86a695dd09c9ffbe6ad24b5b1dc
1 parent
d5883771
项目结构调整 x 11 : 修改前端项目为 yudao-admin-ui
Showing
307 changed files
with
14634 additions
and
14661 deletions
Too many changes.
To preserve performance only 100 of 307 files are displayed.
pom.xml
| @@ -24,6 +24,7 @@ | @@ -24,6 +24,7 @@ | ||
| 24 | <java.version>1.8</java.version> | 24 | <java.version>1.8</java.version> |
| 25 | <maven.compiler.source>${java.version}</maven.compiler.source> | 25 | <maven.compiler.source>${java.version}</maven.compiler.source> |
| 26 | <maven.compiler.target>${java.version}</maven.compiler.target> | 26 | <maven.compiler.target>${java.version}</maven.compiler.target> |
| 27 | + <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> | ||
| 27 | </properties> | 28 | </properties> |
| 28 | 29 | ||
| 29 | <dependencyManagement> | 30 | <dependencyManagement> |
| @@ -38,6 +39,20 @@ | @@ -38,6 +39,20 @@ | ||
| 38 | </dependencies> | 39 | </dependencies> |
| 39 | </dependencyManagement> | 40 | </dependencyManagement> |
| 40 | 41 | ||
| 42 | + <build> | ||
| 43 | + <pluginManagement> | ||
| 44 | + <plugins> | ||
| 45 | + <!-- maven-surefire-plugin 插件,用于运行单元测试。 --> | ||
| 46 | + <!-- 注意,需要使用 3.0.X+,因为要支持 Junit 5 版本 --> | ||
| 47 | + <plugin> | ||
| 48 | + <groupId>org.apache.maven.plugins</groupId> | ||
| 49 | + <artifactId>maven-surefire-plugin</artifactId> | ||
| 50 | + <version>${maven-surefire-plugin.version}</version> | ||
| 51 | + </plugin> | ||
| 52 | + </plugins> | ||
| 53 | + </pluginManagement> | ||
| 54 | + </build> | ||
| 55 | + | ||
| 41 | <!-- 使用 aliyun 的 Maven 源,提升下载速度 --> | 56 | <!-- 使用 aliyun 的 Maven 源,提升下载速度 --> |
| 42 | <repositories> | 57 | <repositories> |
| 43 | <repository> | 58 | <repository> |
ruoyi-ui/public/robots.txt deleted
ruoyi-ui/src/layout/components/global.js deleted
ruoyi-ui/src/views/components/icons/index.vue deleted
| 1 | -<template> | ||
| 2 | - <div class="icons-container"> | ||
| 3 | - <aside> | ||
| 4 | - <a href="#" target="_blank">Add and use | ||
| 5 | - </a> | ||
| 6 | - </aside> | ||
| 7 | - <el-tabs type="border-card"> | ||
| 8 | - <el-tab-pane label="Icons"> | ||
| 9 | - <div v-for="item of svgIcons" :key="item"> | ||
| 10 | - <el-tooltip placement="top"> | ||
| 11 | - <div slot="content"> | ||
| 12 | - {{ generateIconCode(item) }} | ||
| 13 | - </div> | ||
| 14 | - <div class="icon-item"> | ||
| 15 | - <svg-icon :icon-class="item" class-name="disabled" /> | ||
| 16 | - <span>{{ item }}</span> | ||
| 17 | - </div> | ||
| 18 | - </el-tooltip> | ||
| 19 | - </div> | ||
| 20 | - </el-tab-pane> | ||
| 21 | - <el-tab-pane label="Element-UI Icons"> | ||
| 22 | - <div v-for="item of elementIcons" :key="item"> | ||
| 23 | - <el-tooltip placement="top"> | ||
| 24 | - <div slot="content"> | ||
| 25 | - {{ generateElementIconCode(item) }} | ||
| 26 | - </div> | ||
| 27 | - <div class="icon-item"> | ||
| 28 | - <i :class="'el-icon-' + item" /> | ||
| 29 | - <span>{{ item }}</span> | ||
| 30 | - </div> | ||
| 31 | - </el-tooltip> | ||
| 32 | - </div> | ||
| 33 | - </el-tab-pane> | ||
| 34 | - </el-tabs> | ||
| 35 | - </div> | ||
| 36 | -</template> | ||
| 37 | - | ||
| 38 | -<script> | ||
| 39 | -import svgIcons from './svg-icons' | ||
| 40 | -import elementIcons from './element-icons' | ||
| 41 | - | ||
| 42 | -export default { | ||
| 43 | - name: 'Icons', | ||
| 44 | - data() { | ||
| 45 | - return { | ||
| 46 | - svgIcons, | ||
| 47 | - elementIcons | ||
| 48 | - } | ||
| 49 | - }, | ||
| 50 | - methods: { | ||
| 51 | - generateIconCode(symbol) { | ||
| 52 | - return `<svg-icon icon-class="${symbol}" />` | ||
| 53 | - }, | ||
| 54 | - generateElementIconCode(symbol) { | ||
| 55 | - return `<i class="el-icon-${symbol}" />` | ||
| 56 | - } | ||
| 57 | - } | ||
| 58 | -} | ||
| 59 | -</script> | ||
| 60 | - | ||
| 61 | -<style lang="scss" scoped> | ||
| 62 | -.icons-container { | ||
| 63 | - margin: 10px 20px 0; | ||
| 64 | - overflow: hidden; | ||
| 65 | - | ||
| 66 | - .icon-item { | ||
| 67 | - margin: 20px; | ||
| 68 | - height: 85px; | ||
| 69 | - text-align: center; | ||
| 70 | - width: 100px; | ||
| 71 | - float: left; | ||
| 72 | - font-size: 30px; | ||
| 73 | - color: #24292e; | ||
| 74 | - cursor: pointer; | ||
| 75 | - } | ||
| 76 | - | ||
| 77 | - span { | ||
| 78 | - display: block; | ||
| 79 | - font-size: 16px; | ||
| 80 | - margin-top: 10px; | ||
| 81 | - } | ||
| 82 | - | ||
| 83 | - .disabled { | ||
| 84 | - pointer-events: none; | ||
| 85 | - } | ||
| 86 | -} | ||
| 87 | -</style> |
ruoyi-ui/src/views/dashboard/BarChart.vue deleted
| 1 | -<template> | ||
| 2 | - <div :class="className" :style="{height:height,width:width}" /> | ||
| 3 | -</template> | ||
| 4 | - | ||
| 5 | -<script> | ||
| 6 | -import echarts from 'echarts' | ||
| 7 | -require('echarts/theme/macarons') // echarts theme | ||
| 8 | -import resize from './mixins/resize' | ||
| 9 | - | ||
| 10 | -const animationDuration = 6000 | ||
| 11 | - | ||
| 12 | -export default { | ||
| 13 | - mixins: [resize], | ||
| 14 | - props: { | ||
| 15 | - className: { | ||
| 16 | - type: String, | ||
| 17 | - default: 'chart' | ||
| 18 | - }, | ||
| 19 | - width: { | ||
| 20 | - type: String, | ||
| 21 | - default: '100%' | ||
| 22 | - }, | ||
| 23 | - height: { | ||
| 24 | - type: String, | ||
| 25 | - default: '300px' | ||
| 26 | - } | ||
| 27 | - }, | ||
| 28 | - data() { | ||
| 29 | - return { | ||
| 30 | - chart: null | ||
| 31 | - } | ||
| 32 | - }, | ||
| 33 | - mounted() { | ||
| 34 | - this.$nextTick(() => { | ||
| 35 | - this.initChart() | ||
| 36 | - }) | ||
| 37 | - }, | ||
| 38 | - beforeDestroy() { | ||
| 39 | - if (!this.chart) { | ||
| 40 | - return | ||
| 41 | - } | ||
| 42 | - this.chart.dispose() | ||
| 43 | - this.chart = null | ||
| 44 | - }, | ||
| 45 | - methods: { | ||
| 46 | - initChart() { | ||
| 47 | - this.chart = echarts.init(this.$el, 'macarons') | ||
| 48 | - | ||
| 49 | - this.chart.setOption({ | ||
| 50 | - tooltip: { | ||
| 51 | - trigger: 'axis', | ||
| 52 | - axisPointer: { // 坐标轴指示器,坐标轴触发有效 | ||
| 53 | - type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' | ||
| 54 | - } | ||
| 55 | - }, | ||
| 56 | - grid: { | ||
| 57 | - top: 10, | ||
| 58 | - left: '2%', | ||
| 59 | - right: '2%', | ||
| 60 | - bottom: '3%', | ||
| 61 | - containLabel: true | ||
| 62 | - }, | ||
| 63 | - xAxis: [{ | ||
| 64 | - type: 'category', | ||
| 65 | - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], | ||
| 66 | - axisTick: { | ||
| 67 | - alignWithLabel: true | ||
| 68 | - } | ||
| 69 | - }], | ||
| 70 | - yAxis: [{ | ||
| 71 | - type: 'value', | ||
| 72 | - axisTick: { | ||
| 73 | - show: false | ||
| 74 | - } | ||
| 75 | - }], | ||
| 76 | - series: [{ | ||
| 77 | - name: 'pageA', | ||
| 78 | - type: 'bar', | ||
| 79 | - stack: 'vistors', | ||
| 80 | - barWidth: '60%', | ||
| 81 | - data: [79, 52, 200, 334, 390, 330, 220], | ||
| 82 | - animationDuration | ||
| 83 | - }, { | ||
| 84 | - name: 'pageB', | ||
| 85 | - type: 'bar', | ||
| 86 | - stack: 'vistors', | ||
| 87 | - barWidth: '60%', | ||
| 88 | - data: [80, 52, 200, 334, 390, 330, 220], | ||
| 89 | - animationDuration | ||
| 90 | - }, { | ||
| 91 | - name: 'pageC', | ||
| 92 | - type: 'bar', | ||
| 93 | - stack: 'vistors', | ||
| 94 | - barWidth: '60%', | ||
| 95 | - data: [30, 52, 200, 334, 390, 330, 220], | ||
| 96 | - animationDuration | ||
| 97 | - }] | ||
| 98 | - }) | ||
| 99 | - } | ||
| 100 | - } | ||
| 101 | -} | ||
| 102 | -</script> |
ruoyi-ui/src/views/dashboard/PieChart.vue deleted
| 1 | -<template> | ||
| 2 | - <div :class="className" :style="{height:height,width:width}" /> | ||
| 3 | -</template> | ||
| 4 | - | ||
| 5 | -<script> | ||
| 6 | -import echarts from 'echarts' | ||
| 7 | -require('echarts/theme/macarons') // echarts theme | ||
| 8 | -import resize from './mixins/resize' | ||
| 9 | - | ||
| 10 | -export default { | ||
| 11 | - mixins: [resize], | ||
| 12 | - props: { | ||
| 13 | - className: { | ||
| 14 | - type: String, | ||
| 15 | - default: 'chart' | ||
| 16 | - }, | ||
| 17 | - width: { | ||
| 18 | - type: String, | ||
| 19 | - default: '100%' | ||
| 20 | - }, | ||
| 21 | - height: { | ||
| 22 | - type: String, | ||
| 23 | - default: '300px' | ||
| 24 | - } | ||
| 25 | - }, | ||
| 26 | - data() { | ||
| 27 | - return { | ||
| 28 | - chart: null | ||
| 29 | - } | ||
| 30 | - }, | ||
| 31 | - mounted() { | ||
| 32 | - this.$nextTick(() => { | ||
| 33 | - this.initChart() | ||
| 34 | - }) | ||
| 35 | - }, | ||
| 36 | - beforeDestroy() { | ||
| 37 | - if (!this.chart) { | ||
| 38 | - return | ||
| 39 | - } | ||
| 40 | - this.chart.dispose() | ||
| 41 | - this.chart = null | ||
| 42 | - }, | ||
| 43 | - methods: { | ||
| 44 | - initChart() { | ||
| 45 | - this.chart = echarts.init(this.$el, 'macarons') | ||
| 46 | - | ||
| 47 | - this.chart.setOption({ | ||
| 48 | - tooltip: { | ||
| 49 | - trigger: 'item', | ||
| 50 | - formatter: '{a} <br/>{b} : {c} ({d}%)' | ||
| 51 | - }, | ||
| 52 | - legend: { | ||
| 53 | - left: 'center', | ||
| 54 | - bottom: '10', | ||
| 55 | - data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts'] | ||
| 56 | - }, | ||
| 57 | - series: [ | ||
| 58 | - { | ||
| 59 | - name: 'WEEKLY WRITE ARTICLES', | ||
| 60 | - type: 'pie', | ||
| 61 | - roseType: 'radius', | ||
| 62 | - radius: [15, 95], | ||
| 63 | - center: ['50%', '38%'], | ||
| 64 | - data: [ | ||
| 65 | - { value: 320, name: 'Industries' }, | ||
| 66 | - { value: 240, name: 'Technology' }, | ||
| 67 | - { value: 149, name: 'Forex' }, | ||
| 68 | - { value: 100, name: 'Gold' }, | ||
| 69 | - { value: 59, name: 'Forecasts' } | ||
| 70 | - ], | ||
| 71 | - animationEasing: 'cubicInOut', | ||
| 72 | - animationDuration: 2600 | ||
| 73 | - } | ||
| 74 | - ] | ||
| 75 | - }) | ||
| 76 | - } | ||
| 77 | - } | ||
| 78 | -} | ||
| 79 | -</script> |
ruoyi-ui/src/views/dashboard/mixins/resize.js deleted
| 1 | -import { debounce } from '@/utils' | ||
| 2 | - | ||
| 3 | -export default { | ||
| 4 | - data() { | ||
| 5 | - return { | ||
| 6 | - $_sidebarElm: null, | ||
| 7 | - $_resizeHandler: null | ||
| 8 | - } | ||
| 9 | - }, | ||
| 10 | - mounted() { | ||
| 11 | - this.initListener() | ||
| 12 | - }, | ||
| 13 | - activated() { | ||
| 14 | - if (!this.$_resizeHandler) { | ||
| 15 | - // avoid duplication init | ||
| 16 | - this.initListener() | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | - // when keep-alive chart activated, auto resize | ||
| 20 | - this.resize() | ||
| 21 | - }, | ||
| 22 | - beforeDestroy() { | ||
| 23 | - this.destroyListener() | ||
| 24 | - }, | ||
| 25 | - deactivated() { | ||
| 26 | - this.destroyListener() | ||
| 27 | - }, | ||
| 28 | - methods: { | ||
| 29 | - // use $_ for mixins properties | ||
| 30 | - // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential | ||
| 31 | - $_sidebarResizeHandler(e) { | ||
| 32 | - if (e.propertyName === 'width') { | ||
| 33 | - this.$_resizeHandler() | ||
| 34 | - } | ||
| 35 | - }, | ||
| 36 | - initListener() { | ||
| 37 | - this.$_resizeHandler = debounce(() => { | ||
| 38 | - this.resize() | ||
| 39 | - }, 100) | ||
| 40 | - window.addEventListener('resize', this.$_resizeHandler) | ||
| 41 | - | ||
| 42 | - this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] | ||
| 43 | - this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) | ||
| 44 | - }, | ||
| 45 | - destroyListener() { | ||
| 46 | - window.removeEventListener('resize', this.$_resizeHandler) | ||
| 47 | - this.$_resizeHandler = null | ||
| 48 | - | ||
| 49 | - this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) | ||
| 50 | - }, | ||
| 51 | - resize() { | ||
| 52 | - const { chart } = this | ||
| 53 | - chart && chart.resize() | ||
| 54 | - } | ||
| 55 | - } | ||
| 56 | -} |
ruoyi-ui/src/views/error/401.vue deleted
| 1 | -<template> | ||
| 2 | - <div class="errPage-container"> | ||
| 3 | - <el-button icon="arrow-left" class="pan-back-btn" @click="back"> | ||
| 4 | - 返回 | ||
| 5 | - </el-button> | ||
| 6 | - <el-row> | ||
| 7 | - <el-col :span="12"> | ||
| 8 | - <h1 class="text-jumbo text-ginormous"> | ||
| 9 | - 401错误! | ||
| 10 | - </h1> | ||
| 11 | - <h2>您没有访问权限!</h2> | ||
| 12 | - <h6>对不起,您没有访问权限,请不要进行非法操作!您可以返回主页面</h6> | ||
| 13 | - <ul class="list-unstyled"> | ||
| 14 | - <li class="link-type"> | ||
| 15 | - <router-link to="/"> | ||
| 16 | - 回首页 | ||
| 17 | - </router-link> | ||
| 18 | - </li> | ||
| 19 | - </ul> | ||
| 20 | - </el-col> | ||
| 21 | - <el-col :span="12"> | ||
| 22 | - <img :src="errGif" width="313" height="428" alt="Girl has dropped her ice cream."> | ||
| 23 | - </el-col> | ||
| 24 | - </el-row> | ||
| 25 | - </div> | ||
| 26 | -</template> | ||
| 27 | - | ||
| 28 | -<script> | ||
| 29 | -import errGif from '@/assets/401_images/401.gif' | ||
| 30 | - | ||
| 31 | -export default { | ||
| 32 | - name: 'Page401', | ||
| 33 | - data() { | ||
| 34 | - return { | ||
| 35 | - errGif: errGif + '?' + +new Date() | ||
| 36 | - } | ||
| 37 | - }, | ||
| 38 | - methods: { | ||
| 39 | - back() { | ||
| 40 | - if (this.$route.query.noGoBack) { | ||
| 41 | - this.$router.push({ path: '/' }) | ||
| 42 | - } else { | ||
| 43 | - this.$router.go(-1) | ||
| 44 | - } | ||
| 45 | - } | ||
| 46 | - } | ||
| 47 | -} | ||
| 48 | -</script> | ||
| 49 | - | ||
| 50 | -<style lang="scss" scoped> | ||
| 51 | - .errPage-container { | ||
| 52 | - width: 800px; | ||
| 53 | - max-width: 100%; | ||
| 54 | - margin: 100px auto; | ||
| 55 | - .pan-back-btn { | ||
| 56 | - background: #008489; | ||
| 57 | - color: #fff; | ||
| 58 | - border: none!important; | ||
| 59 | - } | ||
| 60 | - .pan-gif { | ||
| 61 | - margin: 0 auto; | ||
| 62 | - display: block; | ||
| 63 | - } | ||
| 64 | - .pan-img { | ||
| 65 | - display: block; | ||
| 66 | - margin: 0 auto; | ||
| 67 | - width: 100%; | ||
| 68 | - } | ||
| 69 | - .text-jumbo { | ||
| 70 | - font-size: 60px; | ||
| 71 | - font-weight: 700; | ||
| 72 | - color: #484848; | ||
| 73 | - } | ||
| 74 | - .list-unstyled { | ||
| 75 | - font-size: 14px; | ||
| 76 | - li { | ||
| 77 | - padding-bottom: 5px; | ||
| 78 | - } | ||
| 79 | - a { | ||
| 80 | - color: #008489; | ||
| 81 | - text-decoration: none; | ||
| 82 | - &:hover { | ||
| 83 | - text-decoration: underline; | ||
| 84 | - } | ||
| 85 | - } | ||
| 86 | - } | ||
| 87 | - } | ||
| 88 | -</style> |
ruoyi-ui/src/views/index.vue deleted
| 1 | -<template> | ||
| 2 | - <div class="dashboard-editor-container"> | ||
| 3 | - | ||
| 4 | - <panel-group @handleSetLineChartData="handleSetLineChartData" /> | ||
| 5 | - | ||
| 6 | - <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> | ||
| 7 | - <line-chart :chart-data="lineChartData" /> | ||
| 8 | - </el-row> | ||
| 9 | - | ||
| 10 | - <el-row :gutter="32"> | ||
| 11 | - <el-col :xs="24" :sm="24" :lg="8"> | ||
| 12 | - <div class="chart-wrapper"> | ||
| 13 | - <raddar-chart /> | ||
| 14 | - </div> | ||
| 15 | - </el-col> | ||
| 16 | - <el-col :xs="24" :sm="24" :lg="8"> | ||
| 17 | - <div class="chart-wrapper"> | ||
| 18 | - <pie-chart /> | ||
| 19 | - </div> | ||
| 20 | - </el-col> | ||
| 21 | - <el-col :xs="24" :sm="24" :lg="8"> | ||
| 22 | - <div class="chart-wrapper"> | ||
| 23 | - <bar-chart /> | ||
| 24 | - </div> | ||
| 25 | - </el-col> | ||
| 26 | - </el-row> | ||
| 27 | - | ||
| 28 | - | ||
| 29 | - </div> | ||
| 30 | -</template> | ||
| 31 | - | ||
| 32 | -<script> | ||
| 33 | -import PanelGroup from './dashboard/PanelGroup' | ||
| 34 | -import LineChart from './dashboard/LineChart' | ||
| 35 | -import RaddarChart from './dashboard/RaddarChart' | ||
| 36 | -import PieChart from './dashboard/PieChart' | ||
| 37 | -import BarChart from './dashboard/BarChart' | ||
| 38 | - | ||
| 39 | -const lineChartData = { | ||
| 40 | - newVisitis: { | ||
| 41 | - expectedData: [100, 120, 161, 134, 105, 160, 165], | ||
| 42 | - actualData: [120, 82, 91, 154, 162, 140, 145] | ||
| 43 | - }, | ||
| 44 | - messages: { | ||
| 45 | - expectedData: [200, 192, 120, 144, 160, 130, 140], | ||
| 46 | - actualData: [180, 160, 151, 106, 145, 150, 130] | ||
| 47 | - }, | ||
| 48 | - purchases: { | ||
| 49 | - expectedData: [80, 100, 121, 104, 105, 90, 100], | ||
| 50 | - actualData: [120, 90, 100, 138, 142, 130, 130] | ||
| 51 | - }, | ||
| 52 | - shoppings: { | ||
| 53 | - expectedData: [130, 140, 141, 142, 145, 150, 160], | ||
| 54 | - actualData: [120, 82, 91, 154, 162, 140, 130] | ||
| 55 | - } | ||
| 56 | -} | ||
| 57 | - | ||
| 58 | -export default { | ||
| 59 | - name: 'Index', | ||
| 60 | - components: { | ||
| 61 | - PanelGroup, | ||
| 62 | - LineChart, | ||
| 63 | - RaddarChart, | ||
| 64 | - PieChart, | ||
| 65 | - BarChart | ||
| 66 | - }, | ||
| 67 | - data() { | ||
| 68 | - return { | ||
| 69 | - lineChartData: lineChartData.newVisitis | ||
| 70 | - } | ||
| 71 | - }, | ||
| 72 | - methods: { | ||
| 73 | - handleSetLineChartData(type) { | ||
| 74 | - this.lineChartData = lineChartData[type] | ||
| 75 | - } | ||
| 76 | - } | ||
| 77 | -} | ||
| 78 | -</script> | ||
| 79 | - | ||
| 80 | -<style lang="scss" scoped> | ||
| 81 | -.dashboard-editor-container { | ||
| 82 | - padding: 32px; | ||
| 83 | - background-color: rgb(240, 242, 245); | ||
| 84 | - position: relative; | ||
| 85 | - | ||
| 86 | - .chart-wrapper { | ||
| 87 | - background: #fff; | ||
| 88 | - padding: 16px 16px 0; | ||
| 89 | - margin-bottom: 32px; | ||
| 90 | - } | ||
| 91 | -} | ||
| 92 | - | ||
| 93 | -@media (max-width:1024px) { | ||
| 94 | - .chart-wrapper { | ||
| 95 | - padding: 8px; | ||
| 96 | - } | ||
| 97 | -} | ||
| 98 | -</style> |
ruoyi-ui/src/views/infra/druid/index.vue deleted
| 1 | -<template> | ||
| 2 | - <div v-loading="loading" :style="'height:'+ height"> | ||
| 3 | - <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> | ||
| 4 | - </div> | ||
| 5 | -</template> | ||
| 6 | -<script> | ||
| 7 | -export default { | ||
| 8 | - name: "Druid", | ||
| 9 | - data() { | ||
| 10 | - return { | ||
| 11 | - src: process.env.VUE_APP_BASE_API + "/druid/index.html", | ||
| 12 | - height: document.documentElement.clientHeight - 94.5 + "px;", | ||
| 13 | - loading: true | ||
| 14 | - }; | ||
| 15 | - }, | ||
| 16 | - mounted: function() { | ||
| 17 | - setTimeout(() => { | ||
| 18 | - this.loading = false; | ||
| 19 | - }, 230); | ||
| 20 | - const that = this; | ||
| 21 | - window.onresize = function temp() { | ||
| 22 | - that.height = document.documentElement.clientHeight - 94.5 + "px;"; | ||
| 23 | - }; | ||
| 24 | - } | ||
| 25 | -}; | ||
| 26 | -</script> |
ruoyi-ui/src/views/infra/server/index.vue deleted
| 1 | -<template> | ||
| 2 | - <div v-loading="loading" :style="'height:'+ height"> | ||
| 3 | - <iframe ref="iframe" :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> | ||
| 4 | - </div> | ||
| 5 | -</template> | ||
| 6 | -<script> | ||
| 7 | -export default { | ||
| 8 | - name: "Server", | ||
| 9 | - data() { | ||
| 10 | - return { | ||
| 11 | - src: process.env.VUE_APP_BASE_API + "/admin", | ||
| 12 | - height: document.documentElement.clientHeight - 94.5 + "px;", | ||
| 13 | - loading: true | ||
| 14 | - }; | ||
| 15 | - }, | ||
| 16 | - mounted: function() { | ||
| 17 | - const that = this; | ||
| 18 | - | ||
| 19 | - setTimeout(() => { | ||
| 20 | - // 模拟点击【应用】菜单 | ||
| 21 | - // that.$refs["iframe"].contentWindow.document.getElementsByClassName('navbar-item')[2].click(); // TODO 暂时去掉,存在跨域问题 | ||
| 22 | - // 取消加载中 | ||
| 23 | - this.loading = false; | ||
| 24 | - }, 230); | ||
| 25 | - | ||
| 26 | - // 大小变化的监听 | ||
| 27 | - window.onresize = function temp() { | ||
| 28 | - that.height = document.documentElement.clientHeight - 94.5 + "px;"; | ||
| 29 | - }; | ||
| 30 | - } | ||
| 31 | -}; | ||
| 32 | -</script> |
ruoyi-ui/src/views/infra/skywalking/index.vue deleted
| 1 | -<template> | ||
| 2 | - <div v-loading="loading" :style="'height:'+ height"> | ||
| 3 | - <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> | ||
| 4 | - </div> | ||
| 5 | -</template> | ||
| 6 | -<script> | ||
| 7 | -export default { | ||
| 8 | - name: "SkyWalking", | ||
| 9 | - data() { | ||
| 10 | - return { | ||
| 11 | - src: "http://skywalking.shop.iocoder.cn/trace", // TODO 芋艿,后续改成配置读取 | ||
| 12 | - height: document.documentElement.clientHeight - 94.5 + "px;", | ||
| 13 | - loading: true | ||
| 14 | - }; | ||
| 15 | - }, | ||
| 16 | - mounted: function() { | ||
| 17 | - setTimeout(() => { | ||
| 18 | - this.loading = false; | ||
| 19 | - }, 230); | ||
| 20 | - const that = this; | ||
| 21 | - window.onresize = function temp() { | ||
| 22 | - that.height = document.documentElement.clientHeight - 94.5 + "px;"; | ||
| 23 | - }; | ||
| 24 | - } | ||
| 25 | -}; | ||
| 26 | -</script> |
ruoyi-ui/src/views/infra/skywalking/log.vue deleted
| 1 | -<template> | ||
| 2 | - <div v-loading="loading" :style="'height:'+ height"> | ||
| 3 | - <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> | ||
| 4 | - </div> | ||
| 5 | -</template> | ||
| 6 | -<script> | ||
| 7 | -export default { | ||
| 8 | - name: "SkyWalking-Log", | ||
| 9 | - data() { | ||
| 10 | - return { | ||
| 11 | - src: "http://skywalking.shop.iocoder.cn/log", // TODO 芋艿,后续改成配置读取 | ||
| 12 | - height: document.documentElement.clientHeight - 94.5 + "px;", | ||
| 13 | - loading: true | ||
| 14 | - }; | ||
| 15 | - }, | ||
| 16 | - mounted: function() { | ||
| 17 | - setTimeout(() => { | ||
| 18 | - this.loading = false; | ||
| 19 | - }, 230); | ||
| 20 | - const that = this; | ||
| 21 | - window.onresize = function temp() { | ||
| 22 | - that.height = document.documentElement.clientHeight - 94.5 + "px;"; | ||
| 23 | - }; | ||
| 24 | - } | ||
| 25 | -}; | ||
| 26 | -</script> |
ruoyi-ui/src/views/system/session/index.vue deleted
| 1 | -<template> | ||
| 2 | - <div class="app-container"> | ||
| 3 | - <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> | ||
| 4 | - <el-form-item label="登录地址" prop="userIp"> | ||
| 5 | - <el-input | ||
| 6 | - v-model="queryParams.userIp" | ||
| 7 | - placeholder="请输入登录地址" | ||
| 8 | - clearable | ||
| 9 | - size="small" | ||
| 10 | - @keyup.enter.native="handleQuery" | ||
| 11 | - /> | ||
| 12 | - </el-form-item> | ||
| 13 | - <el-form-item label="用户名称" prop="username"> | ||
| 14 | - <el-input | ||
| 15 | - v-model="queryParams.username" | ||
| 16 | - placeholder="请输入用户名称" | ||
| 17 | - clearable | ||
| 18 | - size="small" | ||
| 19 | - @keyup.enter.native="handleQuery" | ||
| 20 | - /> | ||
| 21 | - </el-form-item> | ||
| 22 | - <el-form-item> | ||
| 23 | - <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||
| 24 | - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||
| 25 | - </el-form-item> | ||
| 26 | - | ||
| 27 | - </el-form> | ||
| 28 | - <el-table | ||
| 29 | - v-loading="loading" | ||
| 30 | - :data="list" | ||
| 31 | - style="width: 100%;" | ||
| 32 | - > | ||
| 33 | - <el-table-column label="会话编号" align="center" prop="id" width="300" /> | ||
| 34 | - <el-table-column label="登录名称" align="center" prop="username" width="100" /> | ||
| 35 | - <el-table-column label="部门名称" align="center" prop="deptName" width="100" /> | ||
| 36 | - <el-table-column label="登陆地址" align="center" prop="userIp" width="100" /> | ||
| 37 | - <el-table-column label="userAgent" align="center" prop="userAgent" :show-overflow-tooltip="true" /> | ||
| 38 | - <el-table-column label="登录时间" align="center" prop="createTime" width="180"> | ||
| 39 | - <template slot-scope="scope"> | ||
| 40 | - <span>{{ parseTime(scope.row.createTime) }}</span> | ||
| 41 | - </template> | ||
| 42 | - </el-table-column> | ||
| 43 | - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||
| 44 | - <template slot-scope="scope"> | ||
| 45 | - <el-button | ||
| 46 | - size="mini" | ||
| 47 | - type="text" | ||
| 48 | - icon="el-icon-delete" | ||
| 49 | - @click="handleForceLogout(scope.row)" | ||
| 50 | - v-hasPermi="['system:user-session:delete']" | ||
| 51 | - >强退</el-button> | ||
| 52 | - </template> | ||
| 53 | - </el-table-column> | ||
| 54 | - </el-table> | ||
| 55 | - | ||
| 56 | - <pagination v-show="total>0" :total="total" :page.sync="pageNo" :limit.sync="pageSize" /> | ||
| 57 | - </div> | ||
| 58 | -</template> | ||
| 59 | - | ||
| 60 | -<script> | ||
| 61 | -import { list, forceLogout } from "@/api/system/session"; | ||
| 62 | - | ||
| 63 | -export default { | ||
| 64 | - name: "Online", | ||
| 65 | - data() { | ||
| 66 | - return { | ||
| 67 | - // 遮罩层 | ||
| 68 | - loading: true, | ||
| 69 | - // 总条数 | ||
| 70 | - total: 0, | ||
| 71 | - // 表格数据 | ||
| 72 | - list: [], | ||
| 73 | - // 查询参数 | ||
| 74 | - queryParams: { | ||
| 75 | - pageNo: 1, | ||
| 76 | - pageSize: 10, | ||
| 77 | - userIp: undefined, | ||
| 78 | - username: undefined | ||
| 79 | - } | ||
| 80 | - }; | ||
| 81 | - }, | ||
| 82 | - created() { | ||
| 83 | - this.getList(); | ||
| 84 | - }, | ||
| 85 | - methods: { | ||
| 86 | - /** 查询登录日志列表 */ | ||
| 87 | - getList() { | ||
| 88 | - this.loading = true; | ||
| 89 | - list(this.queryParams).then(response => { | ||
| 90 | - this.list = response.data.list; | ||
| 91 | - this.total = response.data.total; | ||
| 92 | - this.loading = false; | ||
| 93 | - }); | ||
| 94 | - }, | ||
| 95 | - /** 搜索按钮操作 */ | ||
| 96 | - handleQuery() { | ||
| 97 | - this.pageNo = 1; | ||
| 98 | - this.getList(); | ||
| 99 | - }, | ||
| 100 | - /** 重置按钮操作 */ | ||
| 101 | - resetQuery() { | ||
| 102 | - this.resetForm("queryForm"); | ||
| 103 | - this.handleQuery(); | ||
| 104 | - }, | ||
| 105 | - /** 强退按钮操作 */ | ||
| 106 | - handleForceLogout(row) { | ||
| 107 | - this.$confirm('是否确认强退名称为"' + row.username + '"的数据项?', "警告", { | ||
| 108 | - confirmButtonText: "确定", | ||
| 109 | - cancelButtonText: "取消", | ||
| 110 | - type: "warning" | ||
| 111 | - }).then(function() { | ||
| 112 | - return forceLogout(row.id); | ||
| 113 | - }).then(() => { | ||
| 114 | - this.getList(); | ||
| 115 | - this.msgSuccess("强退成功"); | ||
| 116 | - }) | ||
| 117 | - } | ||
| 118 | - } | ||
| 119 | -}; | ||
| 120 | -</script> | ||
| 121 | - |
ruoyi-ui/src/views/system/user/profile/index.vue deleted
| 1 | -<template> | ||
| 2 | - <div class="app-container"> | ||
| 3 | - <el-row :gutter="20"> | ||
| 4 | - <el-col :span="6" :xs="24"> | ||
| 5 | - <el-card class="box-card"> | ||
| 6 | - <div slot="header" class="clearfix"> | ||
| 7 | - <span>个人信息</span> | ||
| 8 | - </div> | ||
| 9 | - <div> | ||
| 10 | - <div class="text-center"> | ||
| 11 | - <userAvatar :user="user" /> | ||
| 12 | - </div> | ||
| 13 | - <ul class="list-group list-group-striped"> | ||
| 14 | - <li class="list-group-item"> | ||
| 15 | - <svg-icon icon-class="user" />用户名称 | ||
| 16 | - <div class="pull-right">{{ user.username }}</div> | ||
| 17 | - </li> | ||
| 18 | - <li class="list-group-item"> | ||
| 19 | - <svg-icon icon-class="phone" />手机号码 | ||
| 20 | - <div class="pull-right">{{ user.mobile }}</div> | ||
| 21 | - </li> | ||
| 22 | - <li class="list-group-item"> | ||
| 23 | - <svg-icon icon-class="email" />用户邮箱 | ||
| 24 | - <div class="pull-right">{{ user.email }}</div> | ||
| 25 | - </li> | ||
| 26 | - <li class="list-group-item"> | ||
| 27 | - <svg-icon icon-class="tree" />所属部门 | ||
| 28 | - <div class="pull-right" v-if="user.dept">{{ user.dept.name }}</div> | ||
| 29 | - </li> | ||
| 30 | - <li class="list-group-item"> | ||
| 31 | - <svg-icon icon-class="tree" />所属岗位 | ||
| 32 | - <div class="pull-right" v-if="user.posts">{{ user.posts.map(post => post.name).join(',') }}</div> | ||
| 33 | - </li> | ||
| 34 | - <li class="list-group-item"> | ||
| 35 | - <svg-icon icon-class="peoples" />所属角色 | ||
| 36 | - <div class="pull-right">{{ user.roles.map(post => post.name).join(',') }}</div> | ||
| 37 | - </li> | ||
| 38 | - <li class="list-group-item"> | ||
| 39 | - <svg-icon icon-class="date" />创建日期 | ||
| 40 | - <div class="pull-right">{{ parseTime(user.createTime) }}</div> | ||
| 41 | - </li> | ||
| 42 | - </ul> | ||
| 43 | - </div> | ||
| 44 | - </el-card> | ||
| 45 | - </el-col> | ||
| 46 | - <el-col :span="18" :xs="24"> | ||
| 47 | - <el-card> | ||
| 48 | - <div slot="header" class="clearfix"> | ||
| 49 | - <span>基本资料</span> | ||
| 50 | - </div> | ||
| 51 | - <el-tabs v-model="activeTab"> | ||
| 52 | - <el-tab-pane label="基本资料" name="userinfo"> | ||
| 53 | - <userInfo :user="user" /> | ||
| 54 | - </el-tab-pane> | ||
| 55 | - <el-tab-pane label="修改密码" name="resetPwd"> | ||
| 56 | - <resetPwd :user="user" /> | ||
| 57 | - </el-tab-pane> | ||
| 58 | - </el-tabs> | ||
| 59 | - </el-card> | ||
| 60 | - </el-col> | ||
| 61 | - </el-row> | ||
| 62 | - </div> | ||
| 63 | -</template> | ||
| 64 | - | ||
| 65 | -<script> | ||
| 66 | -import userAvatar from "./userAvatar"; | ||
| 67 | -import userInfo from "./userInfo"; | ||
| 68 | -import resetPwd from "./resetPwd"; | ||
| 69 | -import { getUserProfile } from "@/api/system/user"; | ||
| 70 | - | ||
| 71 | -export default { | ||
| 72 | - name: "Profile", | ||
| 73 | - components: { userAvatar, userInfo, resetPwd }, | ||
| 74 | - data() { | ||
| 75 | - return { | ||
| 76 | - user: {}, | ||
| 77 | - roleGroup: {}, | ||
| 78 | - postGroup: {}, | ||
| 79 | - activeTab: "userinfo" | ||
| 80 | - }; | ||
| 81 | - }, | ||
| 82 | - created() { | ||
| 83 | - this.getUser(); | ||
| 84 | - }, | ||
| 85 | - methods: { | ||
| 86 | - getUser() { | ||
| 87 | - getUserProfile().then(response => { | ||
| 88 | - this.user = response.data; | ||
| 89 | - }); | ||
| 90 | - } | ||
| 91 | - } | ||
| 92 | -}; | ||
| 93 | -</script> |
ruoyi-ui/src/views/system/user/profile/resetPwd.vue deleted
| 1 | -<template> | ||
| 2 | - <el-form ref="form" :model="user" :rules="rules" label-width="80px"> | ||
| 3 | - <el-form-item label="旧密码" prop="oldPassword"> | ||
| 4 | - <el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" /> | ||
| 5 | - </el-form-item> | ||
| 6 | - <el-form-item label="新密码" prop="newPassword"> | ||
| 7 | - <el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" /> | ||
| 8 | - </el-form-item> | ||
| 9 | - <el-form-item label="确认密码" prop="confirmPassword"> | ||
| 10 | - <el-input v-model="user.confirmPassword" placeholder="请确认密码" type="password" /> | ||
| 11 | - </el-form-item> | ||
| 12 | - <el-form-item> | ||
| 13 | - <el-button type="primary" size="mini" @click="submit">保存</el-button> | ||
| 14 | - <el-button type="danger" size="mini" @click="close">关闭</el-button> | ||
| 15 | - </el-form-item> | ||
| 16 | - </el-form> | ||
| 17 | -</template> | ||
| 18 | - | ||
| 19 | -<script> | ||
| 20 | -import { updateUserPwd } from "@/api/system/user"; | ||
| 21 | - | ||
| 22 | -export default { | ||
| 23 | - data() { | ||
| 24 | - const equalToPassword = (rule, value, callback) => { | ||
| 25 | - if (this.user.newPassword !== value) { | ||
| 26 | - callback(new Error("两次输入的密码不一致")); | ||
| 27 | - } else { | ||
| 28 | - callback(); | ||
| 29 | - } | ||
| 30 | - }; | ||
| 31 | - return { | ||
| 32 | - test: "1test", | ||
| 33 | - user: { | ||
| 34 | - oldPassword: undefined, | ||
| 35 | - newPassword: undefined, | ||
| 36 | - confirmPassword: undefined | ||
| 37 | - }, | ||
| 38 | - // 表单校验 | ||
| 39 | - rules: { | ||
| 40 | - oldPassword: [ | ||
| 41 | - { required: true, message: "旧密码不能为空", trigger: "blur" } | ||
| 42 | - ], | ||
| 43 | - newPassword: [ | ||
| 44 | - { required: true, message: "新密码不能为空", trigger: "blur" }, | ||
| 45 | - { min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" } | ||
| 46 | - ], | ||
| 47 | - confirmPassword: [ | ||
| 48 | - { required: true, message: "确认密码不能为空", trigger: "blur" }, | ||
| 49 | - { required: true, validator: equalToPassword, trigger: "blur" } | ||
| 50 | - ] | ||
| 51 | - } | ||
| 52 | - }; | ||
| 53 | - }, | ||
| 54 | - methods: { | ||
| 55 | - submit() { | ||
| 56 | - this.$refs["form"].validate(valid => { | ||
| 57 | - if (valid) { | ||
| 58 | - updateUserPwd(this.user.oldPassword, this.user.newPassword).then( | ||
| 59 | - response => { | ||
| 60 | - this.msgSuccess("修改成功"); | ||
| 61 | - } | ||
| 62 | - ); | ||
| 63 | - } | ||
| 64 | - }); | ||
| 65 | - }, | ||
| 66 | - close() { | ||
| 67 | - this.$store.dispatch("tagsView/delView", this.$route); | ||
| 68 | - this.$router.push({ path: "/index" }); | ||
| 69 | - } | ||
| 70 | - } | ||
| 71 | -}; | ||
| 72 | -</script> |
ruoyi-ui/src/views/system/user/profile/userAvatar.vue deleted
| 1 | -<template> | ||
| 2 | - <div> | ||
| 3 | - <div class="user-info-head" @click="editCropper()"><img v-bind:src="options.img" title="点击上传头像" class="img-circle img-lg" /></div> | ||
| 4 | - <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened"> | ||
| 5 | - <el-row> | ||
| 6 | - <el-col :xs="24" :md="12" :style="{height: '350px'}"> | ||
| 7 | - <vue-cropper | ||
| 8 | - ref="cropper" | ||
| 9 | - :img="options.img" | ||
| 10 | - :info="true" | ||
| 11 | - :autoCrop="options.autoCrop" | ||
| 12 | - :autoCropWidth="options.autoCropWidth" | ||
| 13 | - :autoCropHeight="options.autoCropHeight" | ||
| 14 | - :fixedBox="options.fixedBox" | ||
| 15 | - @realTime="realTime" | ||
| 16 | - v-if="visible" | ||
| 17 | - /> | ||
| 18 | - </el-col> | ||
| 19 | - <el-col :xs="24" :md="12" :style="{height: '350px'}"> | ||
| 20 | - <div class="avatar-upload-preview"> | ||
| 21 | - <img :src="previews.url" :style="previews.img" /> | ||
| 22 | - </div> | ||
| 23 | - </el-col> | ||
| 24 | - </el-row> | ||
| 25 | - <br /> | ||
| 26 | - <el-row> | ||
| 27 | - <el-col :lg="2" :md="2"> | ||
| 28 | - <el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload"> | ||
| 29 | - <el-button size="small"> | ||
| 30 | - 选择 | ||
| 31 | - <i class="el-icon-upload el-icon--right"></i> | ||
| 32 | - </el-button> | ||
| 33 | - </el-upload> | ||
| 34 | - </el-col> | ||
| 35 | - <el-col :lg="{span: 1, offset: 2}" :md="2"> | ||
| 36 | - <el-button icon="el-icon-plus" size="small" @click="changeScale(1)"></el-button> | ||
| 37 | - </el-col> | ||
| 38 | - <el-col :lg="{span: 1, offset: 1}" :md="2"> | ||
| 39 | - <el-button icon="el-icon-minus" size="small" @click="changeScale(-1)"></el-button> | ||
| 40 | - </el-col> | ||
| 41 | - <el-col :lg="{span: 1, offset: 1}" :md="2"> | ||
| 42 | - <el-button icon="el-icon-refresh-left" size="small" @click="rotateLeft()"></el-button> | ||
| 43 | - </el-col> | ||
| 44 | - <el-col :lg="{span: 1, offset: 1}" :md="2"> | ||
| 45 | - <el-button icon="el-icon-refresh-right" size="small" @click="rotateRight()"></el-button> | ||
| 46 | - </el-col> | ||
| 47 | - <el-col :lg="{span: 2, offset: 6}" :md="2"> | ||
| 48 | - <el-button type="primary" size="small" @click="uploadImg()">提 交</el-button> | ||
| 49 | - </el-col> | ||
| 50 | - </el-row> | ||
| 51 | - </el-dialog> | ||
| 52 | - </div> | ||
| 53 | -</template> | ||
| 54 | - | ||
| 55 | -<script> | ||
| 56 | -import store from "@/store"; | ||
| 57 | -import { VueCropper } from "vue-cropper"; | ||
| 58 | -import { uploadAvatar } from "@/api/system/user"; | ||
| 59 | - | ||
| 60 | -export default { | ||
| 61 | - components: { VueCropper }, | ||
| 62 | - props: { | ||
| 63 | - user: { | ||
| 64 | - type: Object | ||
| 65 | - } | ||
| 66 | - }, | ||
| 67 | - data() { | ||
| 68 | - return { | ||
| 69 | - // 是否显示弹出层 | ||
| 70 | - open: false, | ||
| 71 | - // 是否显示cropper | ||
| 72 | - visible: false, | ||
| 73 | - // 弹出层标题 | ||
| 74 | - title: "修改头像", | ||
| 75 | - options: { | ||
| 76 | - img: store.getters.avatar, //裁剪图片的地址 | ||
| 77 | - autoCrop: true, // 是否默认生成截图框 | ||
| 78 | - autoCropWidth: 200, // 默认生成截图框宽度 | ||
| 79 | - autoCropHeight: 200, // 默认生成截图框高度 | ||
| 80 | - fixedBox: true // 固定截图框大小 不允许改变 | ||
| 81 | - }, | ||
| 82 | - previews: {} | ||
| 83 | - }; | ||
| 84 | - }, | ||
| 85 | - methods: { | ||
| 86 | - // 编辑头像 | ||
| 87 | - editCropper() { | ||
| 88 | - this.open = true; | ||
| 89 | - }, | ||
| 90 | - // 打开弹出层结束时的回调 | ||
| 91 | - modalOpened() { | ||
| 92 | - this.visible = true; | ||
| 93 | - }, | ||
| 94 | - // 覆盖默认的上传行为 | ||
| 95 | - requestUpload() { | ||
| 96 | - }, | ||
| 97 | - // 向左旋转 | ||
| 98 | - rotateLeft() { | ||
| 99 | - this.$refs.cropper.rotateLeft(); | ||
| 100 | - }, | ||
| 101 | - // 向右旋转 | ||
| 102 | - rotateRight() { | ||
| 103 | - this.$refs.cropper.rotateRight(); | ||
| 104 | - }, | ||
| 105 | - // 图片缩放 | ||
| 106 | - changeScale(num) { | ||
| 107 | - num = num || 1; | ||
| 108 | - this.$refs.cropper.changeScale(num); | ||
| 109 | - }, | ||
| 110 | - // 上传预处理 | ||
| 111 | - beforeUpload(file) { | ||
| 112 | - if (file.type.indexOf("image/") == -1) { | ||
| 113 | - this.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。"); | ||
| 114 | - } else { | ||
| 115 | - const reader = new FileReader(); | ||
| 116 | - reader.readAsDataURL(file); | ||
| 117 | - reader.onload = () => { | ||
| 118 | - this.options.img = reader.result; | ||
| 119 | - }; | ||
| 120 | - } | ||
| 121 | - }, | ||
| 122 | - // 上传图片 | ||
| 123 | - uploadImg() { | ||
| 124 | - this.$refs.cropper.getCropBlob(data => { | ||
| 125 | - let formData = new FormData(); | ||
| 126 | - formData.append("avatarfile", data); | ||
| 127 | - uploadAvatar(formData).then(response => { | ||
| 128 | - this.open = false; | ||
| 129 | - this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl; | ||
| 130 | - store.commit('SET_AVATAR', this.options.img); | ||
| 131 | - this.msgSuccess("修改成功"); | ||
| 132 | - this.visible = false; | ||
| 133 | - }); | ||
| 134 | - }); | ||
| 135 | - }, | ||
| 136 | - // 实时预览 | ||
| 137 | - realTime(data) { | ||
| 138 | - this.previews = data; | ||
| 139 | - } | ||
| 140 | - } | ||
| 141 | -}; | ||
| 142 | -</script> | ||
| 143 | -<style scoped lang="scss"> | ||
| 144 | -.user-info-head { | ||
| 145 | - position: relative; | ||
| 146 | - display: inline-block; | ||
| 147 | - height: 120px; | ||
| 148 | -} | ||
| 149 | - | ||
| 150 | -.user-info-head:hover:after { | ||
| 151 | - content: '+'; | ||
| 152 | - position: absolute; | ||
| 153 | - left: 0; | ||
| 154 | - right: 0; | ||
| 155 | - top: 0; | ||
| 156 | - bottom: 0; | ||
| 157 | - color: #eee; | ||
| 158 | - background: rgba(0, 0, 0, 0.5); | ||
| 159 | - font-size: 24px; | ||
| 160 | - font-style: normal; | ||
| 161 | - -webkit-font-smoothing: antialiased; | ||
| 162 | - -moz-osx-font-smoothing: grayscale; | ||
| 163 | - cursor: pointer; | ||
| 164 | - line-height: 110px; | ||
| 165 | - border-radius: 50%; | ||
| 166 | -} | ||
| 167 | -</style> | ||
| 168 | \ No newline at end of file | 0 | \ No newline at end of file |
ruoyi-ui/src/views/system/user/profile/userInfo.vue deleted
| 1 | -<template> | ||
| 2 | - <el-form ref="form" :model="user" :rules="rules" label-width="80px"> | ||
| 3 | - <el-form-item label="用户昵称" prop="nickName"> | ||
| 4 | - <el-input v-model="user.nickname" /> | ||
| 5 | - </el-form-item> | ||
| 6 | - <el-form-item label="手机号码" prop="mobile"> | ||
| 7 | - <el-input v-model="user.mobile" maxlength="11" /> | ||
| 8 | - </el-form-item> | ||
| 9 | - <el-form-item label="邮箱" prop="email"> | ||
| 10 | - <el-input v-model="user.email" maxlength="50" /> | ||
| 11 | - </el-form-item> | ||
| 12 | - <el-form-item label="性别"> | ||
| 13 | - <el-radio-group v-model="user.sex"> | ||
| 14 | - <el-radio :label="1">男</el-radio> | ||
| 15 | - <el-radio :label="2">女</el-radio> | ||
| 16 | - </el-radio-group> | ||
| 17 | - </el-form-item> | ||
| 18 | - <el-form-item> | ||
| 19 | - <el-button type="primary" size="mini" @click="submit">保存</el-button> | ||
| 20 | - <el-button type="danger" size="mini" @click="close">关闭</el-button> | ||
| 21 | - </el-form-item> | ||
| 22 | - </el-form> | ||
| 23 | -</template> | ||
| 24 | - | ||
| 25 | -<script> | ||
| 26 | -import { updateUserProfile } from "@/api/system/user"; | ||
| 27 | - | ||
| 28 | -export default { | ||
| 29 | - props: { | ||
| 30 | - user: { | ||
| 31 | - type: Object | ||
| 32 | - } | ||
| 33 | - }, | ||
| 34 | - data() { | ||
| 35 | - return { | ||
| 36 | - // 表单校验 | ||
| 37 | - rules: { | ||
| 38 | - nickname: [ | ||
| 39 | - { required: true, message: "用户昵称不能为空", trigger: "blur" } | ||
| 40 | - ], | ||
| 41 | - email: [ | ||
| 42 | - { required: true, message: "邮箱地址不能为空", trigger: "blur" }, | ||
| 43 | - { | ||
| 44 | - type: "email", | ||
| 45 | - message: "'请输入正确的邮箱地址", | ||
| 46 | - trigger: ["blur", "change"] | ||
| 47 | - } | ||
| 48 | - ], | ||
| 49 | - mobile: [ | ||
| 50 | - { required: true, message: "手机号码不能为空", trigger: "blur" }, | ||
| 51 | - { | ||
| 52 | - pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, | ||
| 53 | - message: "请输入正确的手机号码", | ||
| 54 | - trigger: "blur" | ||
| 55 | - } | ||
| 56 | - ] | ||
| 57 | - } | ||
| 58 | - }; | ||
| 59 | - }, | ||
| 60 | - methods: { | ||
| 61 | - submit() { | ||
| 62 | - this.$refs["form"].validate(valid => { | ||
| 63 | - if (valid) { | ||
| 64 | - updateUserProfile(this.user).then(response => { | ||
| 65 | - this.msgSuccess("修改成功"); | ||
| 66 | - }); | ||
| 67 | - } | ||
| 68 | - }); | ||
| 69 | - }, | ||
| 70 | - close() { | ||
| 71 | - this.$store.dispatch("tagsView/delView", this.$route); | ||
| 72 | - this.$router.push({ path: "/index" }); | ||
| 73 | - } | ||
| 74 | - } | ||
| 75 | -}; | ||
| 76 | -</script> |
ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue deleted
| 1 | -<template> | ||
| 2 | - <div> | ||
| 3 | - <el-dialog | ||
| 4 | - v-bind="$attrs" | ||
| 5 | - width="500px" | ||
| 6 | - :close-on-click-modal="false" | ||
| 7 | - :modal-append-to-body="false" | ||
| 8 | - v-on="$listeners" | ||
| 9 | - @open="onOpen" | ||
| 10 | - @close="onClose" | ||
| 11 | - > | ||
| 12 | - <el-row :gutter="15"> | ||
| 13 | - <el-form | ||
| 14 | - ref="elForm" | ||
| 15 | - :model="formData" | ||
| 16 | - :rules="rules" | ||
| 17 | - size="medium" | ||
| 18 | - label-width="100px" | ||
| 19 | - > | ||
| 20 | - <el-col :span="24"> | ||
| 21 | - <el-form-item label="生成类型" prop="type"> | ||
| 22 | - <el-radio-group v-model="formData.type"> | ||
| 23 | - <el-radio-button | ||
| 24 | - v-for="(item, index) in typeOptions" | ||
| 25 | - :key="index" | ||
| 26 | - :label="item.value" | ||
| 27 | - :disabled="item.disabled" | ||
| 28 | - > | ||
| 29 | - {{ item.label }} | ||
| 30 | - </el-radio-button> | ||
| 31 | - </el-radio-group> | ||
| 32 | - </el-form-item> | ||
| 33 | - <el-form-item v-if="showFileName" label="文件名" prop="fileName"> | ||
| 34 | - <el-input v-model="formData.fileName" placeholder="请输入文件名" clearable /> | ||
| 35 | - </el-form-item> | ||
| 36 | - </el-col> | ||
| 37 | - </el-form> | ||
| 38 | - </el-row> | ||
| 39 | - | ||
| 40 | - <div slot="footer"> | ||
| 41 | - <el-button @click="close"> | ||
| 42 | - 取消 | ||
| 43 | - </el-button> | ||
| 44 | - <el-button type="primary" @click="handelConfirm"> | ||
| 45 | - 确定 | ||
| 46 | - </el-button> | ||
| 47 | - </div> | ||
| 48 | - </el-dialog> | ||
| 49 | - </div> | ||
| 50 | -</template> | ||
| 51 | -<script> | ||
| 52 | -export default { | ||
| 53 | - inheritAttrs: false, | ||
| 54 | - props: ['showFileName'], | ||
| 55 | - data() { | ||
| 56 | - return { | ||
| 57 | - formData: { | ||
| 58 | - fileName: undefined, | ||
| 59 | - type: 'file' | ||
| 60 | - }, | ||
| 61 | - rules: { | ||
| 62 | - fileName: [{ | ||
| 63 | - required: true, | ||
| 64 | - message: '请输入文件名', | ||
| 65 | - trigger: 'blur' | ||
| 66 | - }], | ||
| 67 | - type: [{ | ||
| 68 | - required: true, | ||
| 69 | - message: '生成类型不能为空', | ||
| 70 | - trigger: 'change' | ||
| 71 | - }] | ||
| 72 | - }, | ||
| 73 | - typeOptions: [{ | ||
| 74 | - label: '页面', | ||
| 75 | - value: 'file' | ||
| 76 | - }, { | ||
| 77 | - label: '弹窗', | ||
| 78 | - value: 'dialog' | ||
| 79 | - }] | ||
| 80 | - } | ||
| 81 | - }, | ||
| 82 | - computed: { | ||
| 83 | - }, | ||
| 84 | - watch: {}, | ||
| 85 | - mounted() {}, | ||
| 86 | - methods: { | ||
| 87 | - onOpen() { | ||
| 88 | - if (this.showFileName) { | ||
| 89 | - this.formData.fileName = `${+new Date()}.vue` | ||
| 90 | - } | ||
| 91 | - }, | ||
| 92 | - onClose() { | ||
| 93 | - }, | ||
| 94 | - close(e) { | ||
| 95 | - this.$emit('update:visible', false) | ||
| 96 | - }, | ||
| 97 | - handelConfirm() { | ||
| 98 | - this.$refs.elForm.validate(valid => { | ||
| 99 | - if (!valid) return | ||
| 100 | - this.$emit('confirm', { ...this.formData }) | ||
| 101 | - this.close() | ||
| 102 | - }) | ||
| 103 | - } | ||
| 104 | - } | ||
| 105 | -} | ||
| 106 | -</script> |
ruoyi-ui/src/views/tool/build/DraggableItem.vue deleted
| 1 | -<script> | ||
| 2 | -import draggable from 'vuedraggable' | ||
| 3 | -import render from '@/utils/generator/render' | ||
| 4 | - | ||
| 5 | -const components = { | ||
| 6 | - itemBtns(h, element, index, parent) { | ||
| 7 | - const { copyItem, deleteItem } = this.$listeners | ||
| 8 | - return [ | ||
| 9 | - <span class="drawing-item-copy" title="复制" onClick={event => { | ||
| 10 | - copyItem(element, parent); event.stopPropagation() | ||
| 11 | - }}> | ||
| 12 | - <i class="el-icon-copy-document" /> | ||
| 13 | - </span>, | ||
| 14 | - <span class="drawing-item-delete" title="删除" onClick={event => { | ||
| 15 | - deleteItem(index, parent); event.stopPropagation() | ||
| 16 | - }}> | ||
| 17 | - <i class="el-icon-delete" /> | ||
| 18 | - </span> | ||
| 19 | - ] | ||
| 20 | - } | ||
| 21 | -} | ||
| 22 | -const layouts = { | ||
| 23 | - colFormItem(h, element, index, parent) { | ||
| 24 | - const { activeItem } = this.$listeners | ||
| 25 | - let className = this.activeId === element.formId ? 'drawing-item active-from-item' : 'drawing-item' | ||
| 26 | - if (this.formConf.unFocusedComponentBorder) className += ' unfocus-bordered' | ||
| 27 | - return ( | ||
| 28 | - <el-col span={element.span} class={className} | ||
| 29 | - nativeOnClick={event => { activeItem(element); event.stopPropagation() }}> | ||
| 30 | - <el-form-item label-width={element.labelWidth ? `${element.labelWidth}px` : null} | ||
| 31 | - label={element.label} required={element.required}> | ||
| 32 | - <render key={element.renderKey} conf={element} onInput={ event => { | ||
| 33 | - this.$set(element, 'defaultValue', event) | ||
| 34 | - }} /> | ||
| 35 | - </el-form-item> | ||
| 36 | - {components.itemBtns.apply(this, arguments)} | ||
| 37 | - </el-col> | ||
| 38 | - ) | ||
| 39 | - }, | ||
| 40 | - rowFormItem(h, element, index, parent) { | ||
| 41 | - const { activeItem } = this.$listeners | ||
| 42 | - const className = this.activeId === element.formId ? 'drawing-row-item active-from-item' : 'drawing-row-item' | ||
| 43 | - let child = renderChildren.apply(this, arguments) | ||
| 44 | - if (element.type === 'flex') { | ||
| 45 | - child = <el-row type={element.type} justify={element.justify} align={element.align}> | ||
| 46 | - {child} | ||
| 47 | - </el-row> | ||
| 48 | - } | ||
| 49 | - return ( | ||
| 50 | - <el-col span={element.span}> | ||
| 51 | - <el-row gutter={element.gutter} class={className} | ||
| 52 | - nativeOnClick={event => { activeItem(element); event.stopPropagation() }}> | ||
| 53 | - <span class="component-name">{element.componentName}</span> | ||
| 54 | - <draggable list={element.children} animation={340} group="componentsGroup" class="drag-wrapper"> | ||
| 55 | - {child} | ||
| 56 | - </draggable> | ||
| 57 | - {components.itemBtns.apply(this, arguments)} | ||
| 58 | - </el-row> | ||
| 59 | - </el-col> | ||
| 60 | - ) | ||
| 61 | - } | ||
| 62 | -} | ||
| 63 | - | ||
| 64 | -function renderChildren(h, element, index, parent) { | ||
| 65 | - if (!Array.isArray(element.children)) return null | ||
| 66 | - return element.children.map((el, i) => { | ||
| 67 | - const layout = layouts[el.layout] | ||
| 68 | - if (layout) { | ||
| 69 | - return layout.call(this, h, el, i, element.children) | ||
| 70 | - } | ||
| 71 | - return layoutIsNotFound() | ||
| 72 | - }) | ||
| 73 | -} | ||
| 74 | - | ||
| 75 | -function layoutIsNotFound() { | ||
| 76 | - throw new Error(`没有与${this.element.layout}匹配的layout`) | ||
| 77 | -} | ||
| 78 | - | ||
| 79 | -export default { | ||
| 80 | - components: { | ||
| 81 | - render, | ||
| 82 | - draggable | ||
| 83 | - }, | ||
| 84 | - props: [ | ||
| 85 | - 'element', | ||
| 86 | - 'index', | ||
| 87 | - 'drawingList', | ||
| 88 | - 'activeId', | ||
| 89 | - 'formConf' | ||
| 90 | - ], | ||
| 91 | - render(h) { | ||
| 92 | - const layout = layouts[this.element.layout] | ||
| 93 | - | ||
| 94 | - if (layout) { | ||
| 95 | - return layout.call(this, h, this.element, this.index, this.drawingList) | ||
| 96 | - } | ||
| 97 | - return layoutIsNotFound() | ||
| 98 | - } | ||
| 99 | -} | ||
| 100 | -</script> |
ruoyi-ui/src/views/tool/build/IconsDialog.vue deleted
| 1 | -<template> | ||
| 2 | - <div class="icon-dialog"> | ||
| 3 | - <el-dialog | ||
| 4 | - v-bind="$attrs" | ||
| 5 | - width="980px" | ||
| 6 | - :modal-append-to-body="false" | ||
| 7 | - v-on="$listeners" | ||
| 8 | - @open="onOpen" | ||
| 9 | - @close="onClose" | ||
| 10 | - > | ||
| 11 | - <div slot="title"> | ||
| 12 | - 选择图标 | ||
| 13 | - <el-input | ||
| 14 | - v-model="key" | ||
| 15 | - size="mini" | ||
| 16 | - :style="{width: '260px'}" | ||
| 17 | - placeholder="请输入图标名称" | ||
| 18 | - prefix-icon="el-icon-search" | ||
| 19 | - clearable | ||
| 20 | - /> | ||
| 21 | - </div> | ||
| 22 | - <ul class="icon-ul"> | ||
| 23 | - <li | ||
| 24 | - v-for="icon in iconList" | ||
| 25 | - :key="icon" | ||
| 26 | - :class="active===icon?'active-item':''" | ||
| 27 | - @click="onSelect(icon)" | ||
| 28 | - > | ||
| 29 | - <i :class="icon" /> | ||
| 30 | - <div>{{ icon }}</div> | ||
| 31 | - </li> | ||
| 32 | - </ul> | ||
| 33 | - </el-dialog> | ||
| 34 | - </div> | ||
| 35 | -</template> | ||
| 36 | -<script> | ||
| 37 | -import iconList from '@/utils/generator/icon.json' | ||
| 38 | - | ||
| 39 | -const originList = iconList.map(name => `el-icon-${name}`) | ||
| 40 | - | ||
| 41 | -export default { | ||
| 42 | - inheritAttrs: false, | ||
| 43 | - props: ['current'], | ||
| 44 | - data() { | ||
| 45 | - return { | ||
| 46 | - iconList: originList, | ||
| 47 | - active: null, | ||
| 48 | - key: '' | ||
| 49 | - } | ||
| 50 | - }, | ||
| 51 | - watch: { | ||
| 52 | - key(val) { | ||
| 53 | - if (val) { | ||
| 54 | - this.iconList = originList.filter(name => name.indexOf(val) > -1) | ||
| 55 | - } else { | ||
| 56 | - this.iconList = originList | ||
| 57 | - } | ||
| 58 | - } | ||
| 59 | - }, | ||
| 60 | - methods: { | ||
| 61 | - onOpen() { | ||
| 62 | - this.active = this.current | ||
| 63 | - this.key = '' | ||
| 64 | - }, | ||
| 65 | - onClose() {}, | ||
| 66 | - onSelect(icon) { | ||
| 67 | - this.active = icon | ||
| 68 | - this.$emit('select', icon) | ||
| 69 | - this.$emit('update:visible', false) | ||
| 70 | - } | ||
| 71 | - } | ||
| 72 | -} | ||
| 73 | -</script> | ||
| 74 | -<style lang="scss" scoped> | ||
| 75 | -.icon-ul { | ||
| 76 | - margin: 0; | ||
| 77 | - padding: 0; | ||
| 78 | - font-size: 0; | ||
| 79 | - li { | ||
| 80 | - list-style-type: none; | ||
| 81 | - text-align: center; | ||
| 82 | - font-size: 14px; | ||
| 83 | - display: inline-block; | ||
| 84 | - width: 16.66%; | ||
| 85 | - box-sizing: border-box; | ||
| 86 | - height: 108px; | ||
| 87 | - padding: 15px 6px 6px 6px; | ||
| 88 | - cursor: pointer; | ||
| 89 | - overflow: hidden; | ||
| 90 | - &:hover { | ||
| 91 | - background: #f2f2f2; | ||
| 92 | - } | ||
| 93 | - &.active-item{ | ||
| 94 | - background: #e1f3fb; | ||
| 95 | - color: #7a6df0 | ||
| 96 | - } | ||
| 97 | - > i { | ||
| 98 | - font-size: 30px; | ||
| 99 | - line-height: 50px; | ||
| 100 | - } | ||
| 101 | - } | ||
| 102 | -} | ||
| 103 | -.icon-dialog { | ||
| 104 | - ::v-deep .el-dialog { | ||
| 105 | - border-radius: 8px; | ||
| 106 | - margin-bottom: 0; | ||
| 107 | - margin-top: 4vh !important; | ||
| 108 | - display: flex; | ||
| 109 | - flex-direction: column; | ||
| 110 | - max-height: 92vh; | ||
| 111 | - overflow: hidden; | ||
| 112 | - box-sizing: border-box; | ||
| 113 | - .el-dialog__header { | ||
| 114 | - padding-top: 14px; | ||
| 115 | - } | ||
| 116 | - .el-dialog__body { | ||
| 117 | - margin: 0 20px 20px 20px; | ||
| 118 | - padding: 0; | ||
| 119 | - overflow: auto; | ||
| 120 | - } | ||
| 121 | - } | ||
| 122 | -} | ||
| 123 | -</style> |
ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue deleted
| 1 | -<template> | ||
| 2 | - <div> | ||
| 3 | - <el-dialog | ||
| 4 | - v-bind="$attrs" | ||
| 5 | - :close-on-click-modal="false" | ||
| 6 | - :modal-append-to-body="false" | ||
| 7 | - v-on="$listeners" | ||
| 8 | - @open="onOpen" | ||
| 9 | - @close="onClose" | ||
| 10 | - > | ||
| 11 | - <el-row :gutter="0"> | ||
| 12 | - <el-form | ||
| 13 | - ref="elForm" | ||
| 14 | - :model="formData" | ||
| 15 | - :rules="rules" | ||
| 16 | - size="small" | ||
| 17 | - label-width="100px" | ||
| 18 | - > | ||
| 19 | - <el-col :span="24"> | ||
| 20 | - <el-form-item | ||
| 21 | - label="选项名" | ||
| 22 | - prop="label" | ||
| 23 | - > | ||
| 24 | - <el-input | ||
| 25 | - v-model="formData.label" | ||
| 26 | - placeholder="请输入选项名" | ||
| 27 | - clearable | ||
| 28 | - /> | ||
| 29 | - </el-form-item> | ||
| 30 | - </el-col> | ||
| 31 | - <el-col :span="24"> | ||
| 32 | - <el-form-item | ||
| 33 | - label="选项值" | ||
| 34 | - prop="value" | ||
| 35 | - > | ||
| 36 | - <el-input | ||
| 37 | - v-model="formData.value" | ||
| 38 | - placeholder="请输入选项值" | ||
| 39 | - clearable | ||
| 40 | - > | ||
| 41 | - <el-select | ||
| 42 | - slot="append" | ||
| 43 | - v-model="dataType" | ||
| 44 | - :style="{width: '100px'}" | ||
| 45 | - > | ||
| 46 | - <el-option | ||
| 47 | - v-for="(item, index) in dataTypeOptions" | ||
| 48 | - :key="index" | ||
| 49 | - :label="item.label" | ||
| 50 | - :value="item.value" | ||
| 51 | - :disabled="item.disabled" | ||
| 52 | - /> | ||
| 53 | - </el-select> | ||
| 54 | - </el-input> | ||
| 55 | - </el-form-item> | ||
| 56 | - </el-col> | ||
| 57 | - </el-form> | ||
| 58 | - </el-row> | ||
| 59 | - <div slot="footer"> | ||
| 60 | - <el-button | ||
| 61 | - type="primary" | ||
| 62 | - @click="handelConfirm" | ||
| 63 | - > | ||
| 64 | - 确定 | ||
| 65 | - </el-button> | ||
| 66 | - <el-button @click="close"> | ||
| 67 | - 取消 | ||
| 68 | - </el-button> | ||
| 69 | - </div> | ||
| 70 | - </el-dialog> | ||
| 71 | - </div> | ||
| 72 | -</template> | ||
| 73 | -<script> | ||
| 74 | -import { isNumberStr } from '@/utils/index' | ||
| 75 | - | ||
| 76 | -export default { | ||
| 77 | - components: {}, | ||
| 78 | - inheritAttrs: false, | ||
| 79 | - props: [], | ||
| 80 | - data() { | ||
| 81 | - return { | ||
| 82 | - id: 100, | ||
| 83 | - formData: { | ||
| 84 | - label: undefined, | ||
| 85 | - value: undefined | ||
| 86 | - }, | ||
| 87 | - rules: { | ||
| 88 | - label: [ | ||
| 89 | - { | ||
| 90 | - required: true, | ||
| 91 | - message: '请输入选项名', | ||
| 92 | - trigger: 'blur' | ||
| 93 | - } | ||
| 94 | - ], | ||
| 95 | - value: [ | ||
| 96 | - { | ||
| 97 | - required: true, | ||
| 98 | - message: '请输入选项值', | ||
| 99 | - trigger: 'blur' | ||
| 100 | - } | ||
| 101 | - ] | ||
| 102 | - }, | ||
| 103 | - dataType: 'string', | ||
| 104 | - dataTypeOptions: [ | ||
| 105 | - { | ||
| 106 | - label: '字符串', | ||
| 107 | - value: 'string' | ||
| 108 | - }, | ||
| 109 | - { | ||
| 110 | - label: '数字', | ||
| 111 | - value: 'number' | ||
| 112 | - } | ||
| 113 | - ] | ||
| 114 | - } | ||
| 115 | - }, | ||
| 116 | - computed: {}, | ||
| 117 | - watch: { | ||
| 118 | - // eslint-disable-next-line func-names | ||
| 119 | - 'formData.value': function (val) { | ||
| 120 | - this.dataType = isNumberStr(val) ? 'number' : 'string' | ||
| 121 | - } | ||
| 122 | - }, | ||
| 123 | - created() {}, | ||
| 124 | - mounted() {}, | ||
| 125 | - methods: { | ||
| 126 | - onOpen() { | ||
| 127 | - this.formData = { | ||
| 128 | - label: undefined, | ||
| 129 | - value: undefined | ||
| 130 | - } | ||
| 131 | - }, | ||
| 132 | - onClose() {}, | ||
| 133 | - close() { | ||
| 134 | - this.$emit('update:visible', false) | ||
| 135 | - }, | ||
| 136 | - handelConfirm() { | ||
| 137 | - this.$refs.elForm.validate(valid => { | ||
| 138 | - if (!valid) return | ||
| 139 | - if (this.dataType === 'number') { | ||
| 140 | - this.formData.value = parseFloat(this.formData.value) | ||
| 141 | - } | ||
| 142 | - this.formData.id = this.id++ | ||
| 143 | - this.$emit('commit', this.formData) | ||
| 144 | - this.close() | ||
| 145 | - }) | ||
| 146 | - } | ||
| 147 | - } | ||
| 148 | -} | ||
| 149 | -</script> |
ruoyi-ui/src/views/tool/codegen/basicInfoForm.vue deleted
| 1 | -<template> | ||
| 2 | - <el-form ref="basicInfoForm" :model="info" :rules="rules" label-width="150px"> | ||
| 3 | - <el-row> | ||
| 4 | - <el-col :span="12"> | ||
| 5 | - <el-form-item label="表名称" prop="tableName"> | ||
| 6 | - <el-input placeholder="请输入仓库名称" v-model="info.tableName" /> | ||
| 7 | - </el-form-item> | ||
| 8 | - </el-col> | ||
| 9 | - <el-col :span="12"> | ||
| 10 | - <el-form-item label="表描述" prop="tableComment"> | ||
| 11 | - <el-input placeholder="请输入" v-model="info.tableComment" /> | ||
| 12 | - </el-form-item> | ||
| 13 | - </el-col> | ||
| 14 | - | ||
| 15 | - <el-col :span="12"> | ||
| 16 | - <el-form-item label="实体类名称" prop="className"> | ||
| 17 | - <el-input placeholder="请输入" v-model="info.className" /> | ||
| 18 | - </el-form-item> | ||
| 19 | - </el-col> | ||
| 20 | - <el-col :span="12"> | ||
| 21 | - <el-form-item label="作者" prop="author"> | ||
| 22 | - <el-input placeholder="请输入" v-model="info.author" /> | ||
| 23 | - </el-form-item> | ||
| 24 | - </el-col> | ||
| 25 | - <el-col :span="24"> | ||
| 26 | - <el-form-item label="备注" prop="remark"> | ||
| 27 | - <el-input type="textarea" :rows="3" v-model="info.remark"></el-input> | ||
| 28 | - </el-form-item> | ||
| 29 | - </el-col> | ||
| 30 | - </el-row> | ||
| 31 | - </el-form> | ||
| 32 | -</template> | ||
| 33 | -<script> | ||
| 34 | -export default { | ||
| 35 | - name: "BasicInfoForm", | ||
| 36 | - props: { | ||
| 37 | - info: { | ||
| 38 | - type: Object, | ||
| 39 | - default: null | ||
| 40 | - } | ||
| 41 | - }, | ||
| 42 | - data() { | ||
| 43 | - return { | ||
| 44 | - rules: { | ||
| 45 | - tableName: [ | ||
| 46 | - { required: true, message: "请输入表名称", trigger: "blur" } | ||
| 47 | - ], | ||
| 48 | - tableComment: [ | ||
| 49 | - { required: true, message: "请输入表描述", trigger: "blur" } | ||
| 50 | - ], | ||
| 51 | - className: [ | ||
| 52 | - { required: true, message: "请输入实体类名称", trigger: "blur" } | ||
| 53 | - ], | ||
| 54 | - author: [ | ||
| 55 | - { required: true, message: "请输入作者", trigger: "blur" } | ||
| 56 | - ] | ||
| 57 | - } | ||
| 58 | - }; | ||
| 59 | - } | ||
| 60 | -}; | ||
| 61 | -</script> |
ruoyi-ui/src/views/tool/codegen/importTable.vue deleted
| 1 | -<template> | ||
| 2 | - <!-- 导入表 --> | ||
| 3 | - <el-dialog title="导入表" :visible.sync="visible" width="800px" top="5vh" append-to-body> | ||
| 4 | - <el-form :model="queryParams" ref="queryForm" :inline="true"> | ||
| 5 | - <el-form-item label="表名称" prop="tableName"> | ||
| 6 | - <el-input | ||
| 7 | - v-model="queryParams.tableName" | ||
| 8 | - placeholder="请输入表名称" | ||
| 9 | - clearable | ||
| 10 | - size="small" | ||
| 11 | - @keyup.enter.native="handleQuery" | ||
| 12 | - /> | ||
| 13 | - </el-form-item> | ||
| 14 | - <el-form-item label="表描述" prop="tableComment"> | ||
| 15 | - <el-input | ||
| 16 | - v-model="queryParams.tableComment" | ||
| 17 | - placeholder="请输入表描述" | ||
| 18 | - clearable | ||
| 19 | - size="small" | ||
| 20 | - @keyup.enter.native="handleQuery" | ||
| 21 | - /> | ||
| 22 | - </el-form-item> | ||
| 23 | - <el-form-item> | ||
| 24 | - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||
| 25 | - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||
| 26 | - </el-form-item> | ||
| 27 | - </el-form> | ||
| 28 | - <el-row> | ||
| 29 | - <el-table @row-click="clickRow" ref="table" :data="dbTableList" @selection-change="handleSelectionChange" height="260px"> | ||
| 30 | - <el-table-column type="selection" width="55"></el-table-column> | ||
| 31 | - <el-table-column prop="tableSchema" label="数据库" :show-overflow-tooltip="true"></el-table-column> | ||
| 32 | - <el-table-column prop="tableName" label="表名称" :show-overflow-tooltip="true"></el-table-column> | ||
| 33 | - <el-table-column prop="tableComment" label="表描述" :show-overflow-tooltip="true"></el-table-column> | ||
| 34 | - <el-table-column prop="createTime" label="创建时间"> | ||
| 35 | - <template slot-scope="scope"> | ||
| 36 | - <span>{{ parseTime(scope.row.createTime) }}</span> | ||
| 37 | - </template> | ||
| 38 | - </el-table-column> | ||
| 39 | - </el-table> | ||
| 40 | - </el-row> | ||
| 41 | - <div slot="footer" class="dialog-footer"> | ||
| 42 | - <el-button type="primary" @click="handleImportTable">确 定</el-button> | ||
| 43 | - <el-button @click="visible = false">取 消</el-button> | ||
| 44 | - </div> | ||
| 45 | - </el-dialog> | ||
| 46 | -</template> | ||
| 47 | - | ||
| 48 | -<script> | ||
| 49 | -import { getSchemaTableList, createCodegenListFromDB } from "@/api/tool/codegen"; | ||
| 50 | -export default { | ||
| 51 | - data() { | ||
| 52 | - return { | ||
| 53 | - // 遮罩层 | ||
| 54 | - visible: false, | ||
| 55 | - // 选中数组值 | ||
| 56 | - tables: [], | ||
| 57 | - // 总条数 | ||
| 58 | - total: 0, | ||
| 59 | - // 表数据 | ||
| 60 | - dbTableList: [], | ||
| 61 | - // 查询参数 | ||
| 62 | - queryParams: { | ||
| 63 | - tableName: undefined, | ||
| 64 | - tableComment: undefined | ||
| 65 | - } | ||
| 66 | - }; | ||
| 67 | - }, | ||
| 68 | - methods: { | ||
| 69 | - // 显示弹框 | ||
| 70 | - show() { | ||
| 71 | - this.getList(); | ||
| 72 | - this.visible = true; | ||
| 73 | - }, | ||
| 74 | - clickRow(row) { | ||
| 75 | - this.$refs.table.toggleRowSelection(row); | ||
| 76 | - }, | ||
| 77 | - // 多选框选中数据 | ||
| 78 | - handleSelectionChange(selection) { | ||
| 79 | - this.tables = selection.map(item => item.tableName); | ||
| 80 | - }, | ||
| 81 | - // 查询表数据 | ||
| 82 | - getList() { | ||
| 83 | - getSchemaTableList(this.queryParams).then(res => { | ||
| 84 | - this.dbTableList = res.data; | ||
| 85 | - }); | ||
| 86 | - }, | ||
| 87 | - /** 搜索按钮操作 */ | ||
| 88 | - handleQuery() { | ||
| 89 | - this.getList(); | ||
| 90 | - }, | ||
| 91 | - /** 重置按钮操作 */ | ||
| 92 | - resetQuery() { | ||
| 93 | - this.resetForm("queryForm"); | ||
| 94 | - this.handleQuery(); | ||
| 95 | - }, | ||
| 96 | - /** 导入按钮操作 */ | ||
| 97 | - handleImportTable() { | ||
| 98 | - createCodegenListFromDB(this.tables.join(",")).then(res => { | ||
| 99 | - this.msgSuccess("导入成功"); | ||
| 100 | - this.visible = false; | ||
| 101 | - this.$emit("ok"); | ||
| 102 | - }); | ||
| 103 | - } | ||
| 104 | - } | ||
| 105 | -}; | ||
| 106 | -</script> |
ruoyi-ui/src/views/tool/dbDoc/index.vue deleted
| 1 | -<template> | ||
| 2 | - <div class="app-container"> | ||
| 3 | - <el-row :gutter="10" class="mb8"> | ||
| 4 | - <el-col :span="1.5"> | ||
| 5 | - <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleExportHtml">导出 HTML</el-button> | ||
| 6 | - <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleExportWord">导出 Word</el-button> | ||
| 7 | - <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleExportMarkdown">导出 Markdown</el-button> | ||
| 8 | - </el-col> | ||
| 9 | - </el-row> | ||
| 10 | - | ||
| 11 | - <!-- 展示文档 --> | ||
| 12 | - <div v-loading="loading" :style="'height:'+ height"> | ||
| 13 | - <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> | ||
| 14 | - </div> | ||
| 15 | - </div> | ||
| 16 | -</template> | ||
| 17 | -<script> | ||
| 18 | -import { exportHtml, exportWord, exportMarkdown} from "@/api/infra/dbDoc"; | ||
| 19 | - | ||
| 20 | -export default { | ||
| 21 | - name: "DBDoc", | ||
| 22 | - data() { | ||
| 23 | - return { | ||
| 24 | - height: document.documentElement.clientHeight - 94.5 + "px;", | ||
| 25 | - loading: true, | ||
| 26 | - src: undefined, | ||
| 27 | - }; | ||
| 28 | - }, | ||
| 29 | - mounted: function() { | ||
| 30 | - setTimeout(() => { | ||
| 31 | - this.loading = false; | ||
| 32 | - }, 230); | ||
| 33 | - const that = this; | ||
| 34 | - window.onresize = function temp() { | ||
| 35 | - that.height = document.documentElement.clientHeight - 94.5 + "px;"; | ||
| 36 | - }; | ||
| 37 | - }, | ||
| 38 | - created() { | ||
| 39 | - // 加载 Html,进行预览 | ||
| 40 | - exportHtml().then(response => { | ||
| 41 | - let blob = new Blob([response], {type : 'text/html'}); | ||
| 42 | - this.src = window.URL.createObjectURL(blob); | ||
| 43 | - }) | ||
| 44 | - }, | ||
| 45 | - methods: { | ||
| 46 | - /** 处理导出 HTML */ | ||
| 47 | - handleExportHtml() { | ||
| 48 | - exportHtml().then(response => { | ||
| 49 | - this.downloadHtml(response, '数据库文档.html'); | ||
| 50 | - }) | ||
| 51 | - }, | ||
| 52 | - /** 处理导出 Word */ | ||
| 53 | - handleExportWord() { | ||
| 54 | - exportWord().then(response => { | ||
| 55 | - this.downloadWord(response, '数据库文档.doc'); | ||
| 56 | - }) | ||
| 57 | - }, | ||
| 58 | - /** 处理导出 Markdown */ | ||
| 59 | - handleExportMarkdown() { | ||
| 60 | - exportMarkdown().then(response => { | ||
| 61 | - this.downloadMarkdown(response, '数据库文档.md'); | ||
| 62 | - }) | ||
| 63 | - } | ||
| 64 | - } | ||
| 65 | -}; | ||
| 66 | -</script> |
ruoyi-ui/src/views/tool/swagger/index.vue deleted
| 1 | -<template> | ||
| 2 | - <div v-loading="loading" :style="'height:'+ height"> | ||
| 3 | - <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> | ||
| 4 | - </div> | ||
| 5 | -</template> | ||
| 6 | -<script> | ||
| 7 | -export default { | ||
| 8 | - name: "Swagger", | ||
| 9 | - data() { | ||
| 10 | - return { | ||
| 11 | - src: process.env.VUE_APP_BASE_API + "/doc.html", | ||
| 12 | - height: document.documentElement.clientHeight - 94.5 + "px;", | ||
| 13 | - loading: true | ||
| 14 | - }; | ||
| 15 | - }, | ||
| 16 | - mounted: function() { | ||
| 17 | - setTimeout(() => { | ||
| 18 | - this.loading = false; | ||
| 19 | - }, 230); | ||
| 20 | - const that = this; | ||
| 21 | - window.onresize = function temp() { | ||
| 22 | - that.height = document.documentElement.clientHeight - 94.5 + "px;"; | ||
| 23 | - }; | ||
| 24 | - } | ||
| 25 | -}; | ||
| 26 | -</script> |
ruoyi-ui/vue.config.js deleted
| 1 | -'use strict' | ||
| 2 | -const path = require('path') | ||
| 3 | -const defaultSettings = require('./src/settings.js') | ||
| 4 | - | ||
| 5 | -function resolve(dir) { | ||
| 6 | - return path.join(__dirname, dir) | ||
| 7 | -} | ||
| 8 | - | ||
| 9 | -const name = defaultSettings.title || '芋道管理系统' // 标题 | ||
| 10 | - | ||
| 11 | -const port = process.env.port || process.env.npm_config_port || 80 // 端口 | ||
| 12 | - | ||
| 13 | -// vue.config.js 配置说明 | ||
| 14 | -//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions | ||
| 15 | -// 这里只列一部分,具体配置参考文档 | ||
| 16 | -module.exports = { | ||
| 17 | - // 部署生产环境和开发环境下的URL。 | ||
| 18 | - // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上 | ||
| 19 | - // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 | ||
| 20 | - publicPath: process.env.PUBLIC_PATH ? process.env.PUBLIC_PATH : '/', | ||
| 21 | - // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist) | ||
| 22 | - outputDir: 'dist', | ||
| 23 | - // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) | ||
| 24 | - assetsDir: 'static', | ||
| 25 | - // 是否开启eslint保存检测,有效值:ture | false | 'error' | ||
| 26 | - lintOnSave: process.env.NODE_ENV === 'development', | ||
| 27 | - // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 | ||
| 28 | - productionSourceMap: false, | ||
| 29 | - // webpack-dev-server 相关配置 | ||
| 30 | - devServer: { | ||
| 31 | - host: '0.0.0.0', | ||
| 32 | - port: port, | ||
| 33 | - open: true, | ||
| 34 | - proxy: { | ||
| 35 | - // detail: https://cli.vuejs.org/config/#devserver-proxy | ||
| 36 | - [process.env.VUE_APP_BASE_API]: { | ||
| 37 | - target: `http://localhost:48080`, | ||
| 38 | - changeOrigin: true, | ||
| 39 | - pathRewrite: { | ||
| 40 | - ['^' + process.env.VUE_APP_BASE_API]: '' | ||
| 41 | - } | ||
| 42 | - } | ||
| 43 | - }, | ||
| 44 | - disableHostCheck: true | ||
| 45 | - }, | ||
| 46 | - configureWebpack: { | ||
| 47 | - name: name, | ||
| 48 | - resolve: { | ||
| 49 | - alias: { | ||
| 50 | - '@': resolve('src') | ||
| 51 | - } | ||
| 52 | - } | ||
| 53 | - }, | ||
| 54 | - chainWebpack(config) { | ||
| 55 | - config.plugins.delete('preload') // TODO: need test | ||
| 56 | - config.plugins.delete('prefetch') // TODO: need test | ||
| 57 | - | ||
| 58 | - // set svg-sprite-loader | ||
| 59 | - config.module | ||
| 60 | - .rule('svg') | ||
| 61 | - .exclude.add(resolve('src/assets/icons')) | ||
| 62 | - .end() | ||
| 63 | - config.module | ||
| 64 | - .rule('icons') | ||
| 65 | - .test(/\.svg$/) | ||
| 66 | - .include.add(resolve('src/assets/icons')) | ||
| 67 | - .end() | ||
| 68 | - .use('svg-sprite-loader') | ||
| 69 | - .loader('svg-sprite-loader') | ||
| 70 | - .options({ | ||
| 71 | - symbolId: 'icon-[name]' | ||
| 72 | - }) | ||
| 73 | - .end() | ||
| 74 | - | ||
| 75 | - config | ||
| 76 | - .when(process.env.NODE_ENV !== 'development', | ||
| 77 | - config => { | ||
| 78 | - config | ||
| 79 | - .plugin('ScriptExtHtmlWebpackPlugin') | ||
| 80 | - .after('html') | ||
| 81 | - .use('script-ext-html-webpack-plugin', [{ | ||
| 82 | - // `runtime` must same as runtimeChunk name. default is `runtime` | ||
| 83 | - inline: /runtime\..*\.js$/ | ||
| 84 | - }]) | ||
| 85 | - .end() | ||
| 86 | - config | ||
| 87 | - .optimization.splitChunks({ | ||
| 88 | - chunks: 'all', | ||
| 89 | - cacheGroups: { | ||
| 90 | - libs: { | ||
| 91 | - name: 'chunk-libs', | ||
| 92 | - test: /[\\/]node_modules[\\/]/, | ||
| 93 | - priority: 10, | ||
| 94 | - chunks: 'initial' // only package third parties that are initially dependent | ||
| 95 | - }, | ||
| 96 | - elementUI: { | ||
| 97 | - name: 'chunk-elementUI', // split elementUI into a single package | ||
| 98 | - priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app | ||
| 99 | - test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm | ||
| 100 | - }, | ||
| 101 | - commons: { | ||
| 102 | - name: 'chunk-commons', | ||
| 103 | - test: resolve('src/components'), // can customize your rules | ||
| 104 | - minChunks: 3, // minimum common number | ||
| 105 | - priority: 5, | ||
| 106 | - reuseExistingChunk: true | ||
| 107 | - } | ||
| 108 | - } | ||
| 109 | - }) | ||
| 110 | - config.optimization.runtimeChunk('single'), | ||
| 111 | - { | ||
| 112 | - from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件 | ||
| 113 | - to: './', //到根目录下 | ||
| 114 | - } | ||
| 115 | - } | ||
| 116 | - ) | ||
| 117 | - } | ||
| 118 | -} |
yudao-admin-server/pom.xml
| @@ -68,17 +68,6 @@ | @@ -68,17 +68,6 @@ | ||
| 68 | </execution> | 68 | </execution> |
| 69 | </executions> | 69 | </executions> |
| 70 | </plugin> | 70 | </plugin> |
| 71 | - | ||
| 72 | - <plugin> | ||
| 73 | - <groupId>org.apache.maven.plugins</groupId> | ||
| 74 | - <artifactId>maven-surefire-plugin</artifactId> | ||
| 75 | - <version>3.0.0-M5</version> | ||
| 76 | - </plugin> | ||
| 77 | - <plugin> | ||
| 78 | - <groupId>org.apache.maven.plugins</groupId> | ||
| 79 | - <artifactId>maven-failsafe-plugin</artifactId> | ||
| 80 | - <version>3.0.0-M5</version> | ||
| 81 | - </plugin> | ||
| 82 | </plugins> | 71 | </plugins> |
| 83 | </build> | 72 | </build> |
| 84 | 73 |
ruoyi-ui/.editorconfig renamed to yudao-admin-ui/.editorconfig
| 1 | -# 告诉EditorConfig插件,这是根文件,不用继续往上查找 | ||
| 2 | -root = true | ||
| 3 | - | ||
| 4 | -# 匹配全部文件 | ||
| 5 | -[*] | ||
| 6 | -# 设置字符集 | ||
| 7 | -charset = utf-8 | ||
| 8 | -# 缩进风格,可选space、tab | ||
| 9 | -indent_style = space | ||
| 10 | -# 缩进的空格数 | ||
| 11 | -indent_size = 2 | ||
| 12 | -# 结尾换行符,可选lf、cr、crlf | ||
| 13 | -end_of_line = lf | ||
| 14 | -# 在文件结尾插入新行 | ||
| 15 | -insert_final_newline = true | ||
| 16 | -# 删除一行中的前后空格 | ||
| 17 | -trim_trailing_whitespace = true | ||
| 18 | - | ||
| 19 | -# 匹配md结尾的文件 | ||
| 20 | -[*.md] | ||
| 21 | -insert_final_newline = false | ||
| 22 | -trim_trailing_whitespace = false | 1 | +# 告诉EditorConfig插件,这是根文件,不用继续往上查找 |
| 2 | +root = true | ||
| 3 | + | ||
| 4 | +# 匹配全部文件 | ||
| 5 | +[*] | ||
| 6 | +# 设置字符集 | ||
| 7 | +charset = utf-8 | ||
| 8 | +# 缩进风格,可选space、tab | ||
| 9 | +indent_style = space | ||
| 10 | +# 缩进的空格数 | ||
| 11 | +indent_size = 2 | ||
| 12 | +# 结尾换行符,可选lf、cr、crlf | ||
| 13 | +end_of_line = lf | ||
| 14 | +# 在文件结尾插入新行 | ||
| 15 | +insert_final_newline = true | ||
| 16 | +# 删除一行中的前后空格 | ||
| 17 | +trim_trailing_whitespace = true | ||
| 18 | + | ||
| 19 | +# 匹配md结尾的文件 | ||
| 20 | +[*.md] | ||
| 21 | +insert_final_newline = false | ||
| 22 | +trim_trailing_whitespace = false |
ruoyi-ui/.env.demo1024 renamed to yudao-admin-ui/.env.demo1024
ruoyi-ui/.env.development renamed to yudao-admin-ui/.env.development
| 1 | -# 开发环境配置 | ||
| 2 | -ENV = 'development' | ||
| 3 | - | ||
| 4 | -# 芋道管理系统/开发环境 | ||
| 5 | -VUE_APP_BASE_API = '/dev-api' | ||
| 6 | -# VUE_APP_BASE_API = '/api' | ||
| 7 | - | ||
| 8 | -# 路由懒加载 | ||
| 9 | -VUE_CLI_BABEL_TRANSPILE_MODULES = true | 1 | +# 开发环境配置 |
| 2 | +ENV = 'development' | ||
| 3 | + | ||
| 4 | +# 芋道管理系统/开发环境 | ||
| 5 | +VUE_APP_BASE_API = '/dev-api' | ||
| 6 | +# VUE_APP_BASE_API = '/api' | ||
| 7 | + | ||
| 8 | +# 路由懒加载 | ||
| 9 | +VUE_CLI_BABEL_TRANSPILE_MODULES = true |
ruoyi-ui/.env.production renamed to yudao-admin-ui/.env.production
ruoyi-ui/.env.staging renamed to yudao-admin-ui/.env.staging
| 1 | -NODE_ENV = production | ||
| 2 | - | ||
| 3 | -# 测试环境配置 | ||
| 4 | -ENV = 'staging' | ||
| 5 | - | ||
| 6 | -# 芋道管理系统/测试环境 | ||
| 7 | -VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn' | ||
| 8 | - | ||
| 9 | -# 静态资源地址 | ||
| 10 | -PUBLIC_PATH = 'http://static.yudao.iocoder.cn/' | 1 | +NODE_ENV = production |
| 2 | + | ||
| 3 | +# 测试环境配置 | ||
| 4 | +ENV = 'staging' | ||
| 5 | + | ||
| 6 | +# 芋道管理系统/测试环境 | ||
| 7 | +VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn' | ||
| 8 | + | ||
| 9 | +# 静态资源地址 | ||
| 10 | +PUBLIC_PATH = 'http://static.yudao.iocoder.cn/' |
ruoyi-ui/.eslintignore renamed to yudao-admin-ui/.eslintignore
| 1 | -# 忽略build目录下类型为js的文件的语法检查 | ||
| 2 | -build/*.js | ||
| 3 | -# 忽略src/assets目录下文件的语法检查 | ||
| 4 | -src/assets | ||
| 5 | -# 忽略public目录下文件的语法检查 | ||
| 6 | -public | ||
| 7 | -# 忽略当前目录下为js的文件的语法检查 | ||
| 8 | -*.js | ||
| 9 | -# 忽略当前目录下为vue的文件的语法检查 | 1 | +# 忽略build目录下类型为js的文件的语法检查 |
| 2 | +build/*.js | ||
| 3 | +# 忽略src/assets目录下文件的语法检查 | ||
| 4 | +src/assets | ||
| 5 | +# 忽略public目录下文件的语法检查 | ||
| 6 | +public | ||
| 7 | +# 忽略当前目录下为js的文件的语法检查 | ||
| 8 | +*.js | ||
| 9 | +# 忽略当前目录下为vue的文件的语法检查 | ||
| 10 | *.vue | 10 | *.vue |
| 11 | \ No newline at end of file | 11 | \ No newline at end of file |
ruoyi-ui/.eslintrc.js renamed to yudao-admin-ui/.eslintrc.js
| 1 | -// ESlint 检查配置 | ||
| 2 | -module.exports = { | ||
| 3 | - root: true, | ||
| 4 | - parserOptions: { | ||
| 5 | - parser: 'babel-eslint', | ||
| 6 | - sourceType: 'module' | ||
| 7 | - }, | ||
| 8 | - env: { | ||
| 9 | - browser: true, | ||
| 10 | - node: true, | ||
| 11 | - es6: true, | ||
| 12 | - }, | ||
| 13 | - extends: ['plugin:vue/recommended', 'eslint:recommended'], | ||
| 14 | - | ||
| 15 | - // add your custom rules here | ||
| 16 | - //it is base on https://github.com/vuejs/eslint-config-vue | ||
| 17 | - rules: { | ||
| 18 | - "vue/max-attributes-per-line": [2, { | ||
| 19 | - "singleline": 10, | ||
| 20 | - "multiline": { | ||
| 21 | - "max": 1, | ||
| 22 | - "allowFirstLine": false | ||
| 23 | - } | ||
| 24 | - }], | ||
| 25 | - "vue/singleline-html-element-content-newline": "off", | ||
| 26 | - "vue/multiline-html-element-content-newline":"off", | ||
| 27 | - "vue/name-property-casing": ["error", "PascalCase"], | ||
| 28 | - "vue/no-v-html": "off", | ||
| 29 | - 'accessor-pairs': 2, | ||
| 30 | - 'arrow-spacing': [2, { | ||
| 31 | - 'before': true, | ||
| 32 | - 'after': true | ||
| 33 | - }], | ||
| 34 | - 'block-spacing': [2, 'always'], | ||
| 35 | - 'brace-style': [2, '1tbs', { | ||
| 36 | - 'allowSingleLine': true | ||
| 37 | - }], | ||
| 38 | - 'camelcase': [0, { | ||
| 39 | - 'properties': 'always' | ||
| 40 | - }], | ||
| 41 | - 'comma-dangle': [2, 'never'], | ||
| 42 | - 'comma-spacing': [2, { | ||
| 43 | - 'before': false, | ||
| 44 | - 'after': true | ||
| 45 | - }], | ||
| 46 | - 'comma-style': [2, 'last'], | ||
| 47 | - 'constructor-super': 2, | ||
| 48 | - 'curly': [2, 'multi-line'], | ||
| 49 | - 'dot-location': [2, 'property'], | ||
| 50 | - 'eol-last': 2, | ||
| 51 | - 'eqeqeq': ["error", "always", {"null": "ignore"}], | ||
| 52 | - 'generator-star-spacing': [2, { | ||
| 53 | - 'before': true, | ||
| 54 | - 'after': true | ||
| 55 | - }], | ||
| 56 | - 'handle-callback-err': [2, '^(err|error)$'], | ||
| 57 | - 'indent': [2, 2, { | ||
| 58 | - 'SwitchCase': 1 | ||
| 59 | - }], | ||
| 60 | - 'jsx-quotes': [2, 'prefer-single'], | ||
| 61 | - 'key-spacing': [2, { | ||
| 62 | - 'beforeColon': false, | ||
| 63 | - 'afterColon': true | ||
| 64 | - }], | ||
| 65 | - 'keyword-spacing': [2, { | ||
| 66 | - 'before': true, | ||
| 67 | - 'after': true | ||
| 68 | - }], | ||
| 69 | - 'new-cap': [2, { | ||
| 70 | - 'newIsCap': true, | ||
| 71 | - 'capIsNew': false | ||
| 72 | - }], | ||
| 73 | - 'new-parens': 2, | ||
| 74 | - 'no-array-constructor': 2, | ||
| 75 | - 'no-caller': 2, | ||
| 76 | - 'no-console': 'off', | ||
| 77 | - 'no-class-assign': 2, | ||
| 78 | - 'no-cond-assign': 2, | ||
| 79 | - 'no-const-assign': 2, | ||
| 80 | - 'no-control-regex': 0, | ||
| 81 | - 'no-delete-var': 2, | ||
| 82 | - 'no-dupe-args': 2, | ||
| 83 | - 'no-dupe-class-members': 2, | ||
| 84 | - 'no-dupe-keys': 2, | ||
| 85 | - 'no-duplicate-case': 2, | ||
| 86 | - 'no-empty-character-class': 2, | ||
| 87 | - 'no-empty-pattern': 2, | ||
| 88 | - 'no-eval': 2, | ||
| 89 | - 'no-ex-assign': 2, | ||
| 90 | - 'no-extend-native': 2, | ||
| 91 | - 'no-extra-bind': 2, | ||
| 92 | - 'no-extra-boolean-cast': 2, | ||
| 93 | - 'no-extra-parens': [2, 'functions'], | ||
| 94 | - 'no-fallthrough': 2, | ||
| 95 | - 'no-floating-decimal': 2, | ||
| 96 | - 'no-func-assign': 2, | ||
| 97 | - 'no-implied-eval': 2, | ||
| 98 | - 'no-inner-declarations': [2, 'functions'], | ||
| 99 | - 'no-invalid-regexp': 2, | ||
| 100 | - 'no-irregular-whitespace': 2, | ||
| 101 | - 'no-iterator': 2, | ||
| 102 | - 'no-label-var': 2, | ||
| 103 | - 'no-labels': [2, { | ||
| 104 | - 'allowLoop': false, | ||
| 105 | - 'allowSwitch': false | ||
| 106 | - }], | ||
| 107 | - 'no-lone-blocks': 2, | ||
| 108 | - 'no-mixed-spaces-and-tabs': 2, | ||
| 109 | - 'no-multi-spaces': 2, | ||
| 110 | - 'no-multi-str': 2, | ||
| 111 | - 'no-multiple-empty-lines': [2, { | ||
| 112 | - 'max': 1 | ||
| 113 | - }], | ||
| 114 | - 'no-native-reassign': 2, | ||
| 115 | - 'no-negated-in-lhs': 2, | ||
| 116 | - 'no-new-object': 2, | ||
| 117 | - 'no-new-require': 2, | ||
| 118 | - 'no-new-symbol': 2, | ||
| 119 | - 'no-new-wrappers': 2, | ||
| 120 | - 'no-obj-calls': 2, | ||
| 121 | - 'no-octal': 2, | ||
| 122 | - 'no-octal-escape': 2, | ||
| 123 | - 'no-path-concat': 2, | ||
| 124 | - 'no-proto': 2, | ||
| 125 | - 'no-redeclare': 2, | ||
| 126 | - 'no-regex-spaces': 2, | ||
| 127 | - 'no-return-assign': [2, 'except-parens'], | ||
| 128 | - 'no-self-assign': 2, | ||
| 129 | - 'no-self-compare': 2, | ||
| 130 | - 'no-sequences': 2, | ||
| 131 | - 'no-shadow-restricted-names': 2, | ||
| 132 | - 'no-spaced-func': 2, | ||
| 133 | - 'no-sparse-arrays': 2, | ||
| 134 | - 'no-this-before-super': 2, | ||
| 135 | - 'no-throw-literal': 2, | ||
| 136 | - 'no-trailing-spaces': 2, | ||
| 137 | - 'no-undef': 2, | ||
| 138 | - 'no-undef-init': 2, | ||
| 139 | - 'no-unexpected-multiline': 2, | ||
| 140 | - 'no-unmodified-loop-condition': 2, | ||
| 141 | - 'no-unneeded-ternary': [2, { | ||
| 142 | - 'defaultAssignment': false | ||
| 143 | - }], | ||
| 144 | - 'no-unreachable': 2, | ||
| 145 | - 'no-unsafe-finally': 2, | ||
| 146 | - 'no-unused-vars': [2, { | ||
| 147 | - 'vars': 'all', | ||
| 148 | - 'args': 'none' | ||
| 149 | - }], | ||
| 150 | - 'no-useless-call': 2, | ||
| 151 | - 'no-useless-computed-key': 2, | ||
| 152 | - 'no-useless-constructor': 2, | ||
| 153 | - 'no-useless-escape': 0, | ||
| 154 | - 'no-whitespace-before-property': 2, | ||
| 155 | - 'no-with': 2, | ||
| 156 | - 'one-var': [2, { | ||
| 157 | - 'initialized': 'never' | ||
| 158 | - }], | ||
| 159 | - 'operator-linebreak': [2, 'after', { | ||
| 160 | - 'overrides': { | ||
| 161 | - '?': 'before', | ||
| 162 | - ':': 'before' | ||
| 163 | - } | ||
| 164 | - }], | ||
| 165 | - 'padded-blocks': [2, 'never'], | ||
| 166 | - 'quotes': [2, 'single', { | ||
| 167 | - 'avoidEscape': true, | ||
| 168 | - 'allowTemplateLiterals': true | ||
| 169 | - }], | ||
| 170 | - 'semi': [2, 'never'], | ||
| 171 | - 'semi-spacing': [2, { | ||
| 172 | - 'before': false, | ||
| 173 | - 'after': true | ||
| 174 | - }], | ||
| 175 | - 'space-before-blocks': [2, 'always'], | ||
| 176 | - 'space-before-function-paren': [2, 'never'], | ||
| 177 | - 'space-in-parens': [2, 'never'], | ||
| 178 | - 'space-infix-ops': 2, | ||
| 179 | - 'space-unary-ops': [2, { | ||
| 180 | - 'words': true, | ||
| 181 | - 'nonwords': false | ||
| 182 | - }], | ||
| 183 | - 'spaced-comment': [2, 'always', { | ||
| 184 | - 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] | ||
| 185 | - }], | ||
| 186 | - 'template-curly-spacing': [2, 'never'], | ||
| 187 | - 'use-isnan': 2, | ||
| 188 | - 'valid-typeof': 2, | ||
| 189 | - 'wrap-iife': [2, 'any'], | ||
| 190 | - 'yield-star-spacing': [2, 'both'], | ||
| 191 | - 'yoda': [2, 'never'], | ||
| 192 | - 'prefer-const': 2, | ||
| 193 | - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, | ||
| 194 | - 'object-curly-spacing': [2, 'always', { | ||
| 195 | - objectsInObjects: false | ||
| 196 | - }], | ||
| 197 | - 'array-bracket-spacing': [2, 'never'] | ||
| 198 | - } | ||
| 199 | -} | 1 | +// ESlint 检查配置 |
| 2 | +module.exports = { | ||
| 3 | + root: true, | ||
| 4 | + parserOptions: { | ||
| 5 | + parser: 'babel-eslint', | ||
| 6 | + sourceType: 'module' | ||
| 7 | + }, | ||
| 8 | + env: { | ||
| 9 | + browser: true, | ||
| 10 | + node: true, | ||
| 11 | + es6: true, | ||
| 12 | + }, | ||
| 13 | + extends: ['plugin:vue/recommended', 'eslint:recommended'], | ||
| 14 | + | ||
| 15 | + // add your custom rules here | ||
| 16 | + //it is base on https://github.com/vuejs/eslint-config-vue | ||
| 17 | + rules: { | ||
| 18 | + "vue/max-attributes-per-line": [2, { | ||
| 19 | + "singleline": 10, | ||
| 20 | + "multiline": { | ||
| 21 | + "max": 1, | ||
| 22 | + "allowFirstLine": false | ||
| 23 | + } | ||
| 24 | + }], | ||
| 25 | + "vue/singleline-html-element-content-newline": "off", | ||
| 26 | + "vue/multiline-html-element-content-newline":"off", | ||
| 27 | + "vue/name-property-casing": ["error", "PascalCase"], | ||
| 28 | + "vue/no-v-html": "off", | ||
| 29 | + 'accessor-pairs': 2, | ||
| 30 | + 'arrow-spacing': [2, { | ||
| 31 | + 'before': true, | ||
| 32 | + 'after': true | ||
| 33 | + }], | ||
| 34 | + 'block-spacing': [2, 'always'], | ||
| 35 | + 'brace-style': [2, '1tbs', { | ||
| 36 | + 'allowSingleLine': true | ||
| 37 | + }], | ||
| 38 | + 'camelcase': [0, { | ||
| 39 | + 'properties': 'always' | ||
| 40 | + }], | ||
| 41 | + 'comma-dangle': [2, 'never'], | ||
| 42 | + 'comma-spacing': [2, { | ||
| 43 | + 'before': false, | ||
| 44 | + 'after': true | ||
| 45 | + }], | ||
| 46 | + 'comma-style': [2, 'last'], | ||
| 47 | + 'constructor-super': 2, | ||
| 48 | + 'curly': [2, 'multi-line'], | ||
| 49 | + 'dot-location': [2, 'property'], | ||
| 50 | + 'eol-last': 2, | ||
| 51 | + 'eqeqeq': ["error", "always", {"null": "ignore"}], | ||
| 52 | + 'generator-star-spacing': [2, { | ||
| 53 | + 'before': true, | ||
| 54 | + 'after': true | ||
| 55 | + }], | ||
| 56 | + 'handle-callback-err': [2, '^(err|error)$'], | ||
| 57 | + 'indent': [2, 2, { | ||
| 58 | + 'SwitchCase': 1 | ||
| 59 | + }], | ||
| 60 | + 'jsx-quotes': [2, 'prefer-single'], | ||
| 61 | + 'key-spacing': [2, { | ||
| 62 | + 'beforeColon': false, | ||
| 63 | + 'afterColon': true | ||
| 64 | + }], | ||
| 65 | + 'keyword-spacing': [2, { | ||
| 66 | + 'before': true, | ||
| 67 | + 'after': true | ||
| 68 | + }], | ||
| 69 | + 'new-cap': [2, { | ||
| 70 | + 'newIsCap': true, | ||
| 71 | + 'capIsNew': false | ||
| 72 | + }], | ||
| 73 | + 'new-parens': 2, | ||
| 74 | + 'no-array-constructor': 2, | ||
| 75 | + 'no-caller': 2, | ||
| 76 | + 'no-console': 'off', | ||
| 77 | + 'no-class-assign': 2, | ||
| 78 | + 'no-cond-assign': 2, | ||
| 79 | + 'no-const-assign': 2, | ||
| 80 | + 'no-control-regex': 0, | ||
| 81 | + 'no-delete-var': 2, | ||
| 82 | + 'no-dupe-args': 2, | ||
| 83 | + 'no-dupe-class-members': 2, | ||
| 84 | + 'no-dupe-keys': 2, | ||
| 85 | + 'no-duplicate-case': 2, | ||
| 86 | + 'no-empty-character-class': 2, | ||
| 87 | + 'no-empty-pattern': 2, | ||
| 88 | + 'no-eval': 2, | ||
| 89 | + 'no-ex-assign': 2, | ||
| 90 | + 'no-extend-native': 2, | ||
| 91 | + 'no-extra-bind': 2, | ||
| 92 | + 'no-extra-boolean-cast': 2, | ||
| 93 | + 'no-extra-parens': [2, 'functions'], | ||
| 94 | + 'no-fallthrough': 2, | ||
| 95 | + 'no-floating-decimal': 2, | ||
| 96 | + 'no-func-assign': 2, | ||
| 97 | + 'no-implied-eval': 2, | ||
| 98 | + 'no-inner-declarations': [2, 'functions'], | ||
| 99 | + 'no-invalid-regexp': 2, | ||
| 100 | + 'no-irregular-whitespace': 2, | ||
| 101 | + 'no-iterator': 2, | ||
| 102 | + 'no-label-var': 2, | ||
| 103 | + 'no-labels': [2, { | ||
| 104 | + 'allowLoop': false, | ||
| 105 | + 'allowSwitch': false | ||
| 106 | + }], | ||
| 107 | + 'no-lone-blocks': 2, | ||
| 108 | + 'no-mixed-spaces-and-tabs': 2, | ||
| 109 | + 'no-multi-spaces': 2, | ||
| 110 | + 'no-multi-str': 2, | ||
| 111 | + 'no-multiple-empty-lines': [2, { | ||
| 112 | + 'max': 1 | ||
| 113 | + }], | ||
| 114 | + 'no-native-reassign': 2, | ||
| 115 | + 'no-negated-in-lhs': 2, | ||
| 116 | + 'no-new-object': 2, | ||
| 117 | + 'no-new-require': 2, | ||
| 118 | + 'no-new-symbol': 2, | ||
| 119 | + 'no-new-wrappers': 2, | ||
| 120 | + 'no-obj-calls': 2, | ||
| 121 | + 'no-octal': 2, | ||
| 122 | + 'no-octal-escape': 2, | ||
| 123 | + 'no-path-concat': 2, | ||
| 124 | + 'no-proto': 2, | ||
| 125 | + 'no-redeclare': 2, | ||
| 126 | + 'no-regex-spaces': 2, | ||
| 127 | + 'no-return-assign': [2, 'except-parens'], | ||
| 128 | + 'no-self-assign': 2, | ||
| 129 | + 'no-self-compare': 2, | ||
| 130 | + 'no-sequences': 2, | ||
| 131 | + 'no-shadow-restricted-names': 2, | ||
| 132 | + 'no-spaced-func': 2, | ||
| 133 | + 'no-sparse-arrays': 2, | ||
| 134 | + 'no-this-before-super': 2, | ||
| 135 | + 'no-throw-literal': 2, | ||
| 136 | + 'no-trailing-spaces': 2, | ||
| 137 | + 'no-undef': 2, | ||
| 138 | + 'no-undef-init': 2, | ||
| 139 | + 'no-unexpected-multiline': 2, | ||
| 140 | + 'no-unmodified-loop-condition': 2, | ||
| 141 | + 'no-unneeded-ternary': [2, { | ||
| 142 | + 'defaultAssignment': false | ||
| 143 | + }], | ||
| 144 | + 'no-unreachable': 2, | ||
| 145 | + 'no-unsafe-finally': 2, | ||
| 146 | + 'no-unused-vars': [2, { | ||
| 147 | + 'vars': 'all', | ||
| 148 | + 'args': 'none' | ||
| 149 | + }], | ||
| 150 | + 'no-useless-call': 2, | ||
| 151 | + 'no-useless-computed-key': 2, | ||
| 152 | + 'no-useless-constructor': 2, | ||
| 153 | + 'no-useless-escape': 0, | ||
| 154 | + 'no-whitespace-before-property': 2, | ||
| 155 | + 'no-with': 2, | ||
| 156 | + 'one-var': [2, { | ||
| 157 | + 'initialized': 'never' | ||
| 158 | + }], | ||
| 159 | + 'operator-linebreak': [2, 'after', { | ||
| 160 | + 'overrides': { | ||
| 161 | + '?': 'before', | ||
| 162 | + ':': 'before' | ||
| 163 | + } | ||
| 164 | + }], | ||
| 165 | + 'padded-blocks': [2, 'never'], | ||
| 166 | + 'quotes': [2, 'single', { | ||
| 167 | + 'avoidEscape': true, | ||
| 168 | + 'allowTemplateLiterals': true | ||
| 169 | + }], | ||
| 170 | + 'semi': [2, 'never'], | ||
| 171 | + 'semi-spacing': [2, { | ||
| 172 | + 'before': false, | ||
| 173 | + 'after': true | ||
| 174 | + }], | ||
| 175 | + 'space-before-blocks': [2, 'always'], | ||
| 176 | + 'space-before-function-paren': [2, 'never'], | ||
| 177 | + 'space-in-parens': [2, 'never'], | ||
| 178 | + 'space-infix-ops': 2, | ||
| 179 | + 'space-unary-ops': [2, { | ||
| 180 | + 'words': true, | ||
| 181 | + 'nonwords': false | ||
| 182 | + }], | ||
| 183 | + 'spaced-comment': [2, 'always', { | ||
| 184 | + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] | ||
| 185 | + }], | ||
| 186 | + 'template-curly-spacing': [2, 'never'], | ||
| 187 | + 'use-isnan': 2, | ||
| 188 | + 'valid-typeof': 2, | ||
| 189 | + 'wrap-iife': [2, 'any'], | ||
| 190 | + 'yield-star-spacing': [2, 'both'], | ||
| 191 | + 'yoda': [2, 'never'], | ||
| 192 | + 'prefer-const': 2, | ||
| 193 | + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, | ||
| 194 | + 'object-curly-spacing': [2, 'always', { | ||
| 195 | + objectsInObjects: false | ||
| 196 | + }], | ||
| 197 | + 'array-bracket-spacing': [2, 'never'] | ||
| 198 | + } | ||
| 199 | +} |
ruoyi-ui/.gitignore renamed to yudao-admin-ui/.gitignore
| 1 | -.DS_Store | ||
| 2 | -node_modules/ | ||
| 3 | -dist/ | ||
| 4 | -npm-debug.log* | ||
| 5 | -yarn-debug.log* | ||
| 6 | -yarn-error.log* | ||
| 7 | -**/*.log | ||
| 8 | - | ||
| 9 | -tests/**/coverage/ | ||
| 10 | -tests/e2e/reports | ||
| 11 | -selenium-debug.log | ||
| 12 | - | ||
| 13 | -# Editor directories and files | ||
| 14 | -.idea | ||
| 15 | -.vscode | ||
| 16 | -*.suo | ||
| 17 | -*.ntvs* | ||
| 18 | -*.njsproj | ||
| 19 | -*.sln | ||
| 20 | -*.local | ||
| 21 | - | ||
| 22 | -package-lock.json | ||
| 23 | -yarn.lock | 1 | +.DS_Store |
| 2 | +node_modules/ | ||
| 3 | +dist/ | ||
| 4 | +npm-debug.log* | ||
| 5 | +yarn-debug.log* | ||
| 6 | +yarn-error.log* | ||
| 7 | +**/*.log | ||
| 8 | + | ||
| 9 | +tests/**/coverage/ | ||
| 10 | +tests/e2e/reports | ||
| 11 | +selenium-debug.log | ||
| 12 | + | ||
| 13 | +# Editor directories and files | ||
| 14 | +.idea | ||
| 15 | +.vscode | ||
| 16 | +*.suo | ||
| 17 | +*.ntvs* | ||
| 18 | +*.njsproj | ||
| 19 | +*.sln | ||
| 20 | +*.local | ||
| 21 | + | ||
| 22 | +package-lock.json | ||
| 23 | +yarn.lock |
ruoyi-ui/babel.config.js renamed to yudao-admin-ui/babel.config.js
| 1 | -module.exports = { | ||
| 2 | - presets: [ | ||
| 3 | - // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app | ||
| 4 | - '@vue/cli-plugin-babel/preset' | ||
| 5 | - ], | ||
| 6 | - 'env': { | ||
| 7 | - 'development': { | ||
| 8 | - // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). | ||
| 9 | - // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. | ||
| 10 | - 'plugins': ['dynamic-import-node'] | ||
| 11 | - } | ||
| 12 | - } | ||
| 13 | -} | 1 | +module.exports = { |
| 2 | + presets: [ | ||
| 3 | + // https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app | ||
| 4 | + '@vue/cli-plugin-babel/preset' | ||
| 5 | + ], | ||
| 6 | + 'env': { | ||
| 7 | + 'development': { | ||
| 8 | + // babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require(). | ||
| 9 | + // This plugin can significantly increase the speed of hot updates, when you have a large number of pages. | ||
| 10 | + 'plugins': ['dynamic-import-node'] | ||
| 11 | + } | ||
| 12 | + } | ||
| 13 | +} |
ruoyi-ui/bin/build.bat renamed to yudao-admin-ui/bin/build.bat
ruoyi-ui/bin/package.bat renamed to yudao-admin-ui/bin/package.bat
| 1 | -@echo off | ||
| 2 | -echo. | ||
| 3 | -echo [信息] 安装Web工程,生成node_modules文件。 | ||
| 4 | -echo. | ||
| 5 | - | ||
| 6 | -%~d0 | ||
| 7 | -cd %~dp0 | ||
| 8 | - | ||
| 9 | -cd .. | ||
| 10 | -npm install --registry=https://registry.npm.taobao.org | ||
| 11 | - | 1 | +@echo off |
| 2 | +echo. | ||
| 3 | +echo [信息] 安装Web工程,生成node_modules文件。 | ||
| 4 | +echo. | ||
| 5 | + | ||
| 6 | +%~d0 | ||
| 7 | +cd %~dp0 | ||
| 8 | + | ||
| 9 | +cd .. | ||
| 10 | +npm install --registry=https://registry.npm.taobao.org | ||
| 11 | + | ||
| 12 | pause | 12 | pause |
| 13 | \ No newline at end of file | 13 | \ No newline at end of file |
ruoyi-ui/bin/run-web.bat renamed to yudao-admin-ui/bin/run-web.bat
| 1 | -@echo off | ||
| 2 | -echo. | ||
| 3 | -echo [信息] 使用 Vue 运行 Web 工程。 | ||
| 4 | -echo. | ||
| 5 | - | ||
| 6 | -%~d0 | ||
| 7 | -cd %~dp0 | ||
| 8 | - | ||
| 9 | -cd .. | ||
| 10 | -npm run dev | ||
| 11 | - | 1 | +@echo off |
| 2 | +echo. | ||
| 3 | +echo [信息] 使用 Vue 运行 Web 工程。 | ||
| 4 | +echo. | ||
| 5 | + | ||
| 6 | +%~d0 | ||
| 7 | +cd %~dp0 | ||
| 8 | + | ||
| 9 | +cd .. | ||
| 10 | +npm run dev | ||
| 11 | + | ||
| 12 | pause | 12 | pause |
| 13 | \ No newline at end of file | 13 | \ No newline at end of file |
ruoyi-ui/build/index.js renamed to yudao-admin-ui/build/index.js
| 1 | -const { run } = require('runjs') | ||
| 2 | -const chalk = require('chalk') | ||
| 3 | -const config = require('../vue.config.js') | ||
| 4 | -const rawArgv = process.argv.slice(2) | ||
| 5 | -const args = rawArgv.join(' ') | ||
| 6 | - | ||
| 7 | -if (process.env.npm_config_preview || rawArgv.includes('--preview')) { | ||
| 8 | - const report = rawArgv.includes('--report') | ||
| 9 | - | ||
| 10 | - run(`vue-cli-service build ${args}`) | ||
| 11 | - | ||
| 12 | - const port = 9526 | ||
| 13 | - const publicPath = config.publicPath | ||
| 14 | - | ||
| 15 | - var connect = require('connect') | ||
| 16 | - var serveStatic = require('serve-static') | ||
| 17 | - const app = connect() | ||
| 18 | - | ||
| 19 | - app.use( | ||
| 20 | - publicPath, | ||
| 21 | - serveStatic('./dist', { | ||
| 22 | - index: ['index.html', '/'] | ||
| 23 | - }) | ||
| 24 | - ) | ||
| 25 | - | ||
| 26 | - app.listen(port, function () { | ||
| 27 | - console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) | ||
| 28 | - if (report) { | ||
| 29 | - console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) | ||
| 30 | - } | ||
| 31 | - | ||
| 32 | - }) | ||
| 33 | -} else { | ||
| 34 | - run(`vue-cli-service build ${args}`) | ||
| 35 | -} | 1 | +const { run } = require('runjs') |
| 2 | +const chalk = require('chalk') | ||
| 3 | +const config = require('../vue.config.js') | ||
| 4 | +const rawArgv = process.argv.slice(2) | ||
| 5 | +const args = rawArgv.join(' ') | ||
| 6 | + | ||
| 7 | +if (process.env.npm_config_preview || rawArgv.includes('--preview')) { | ||
| 8 | + const report = rawArgv.includes('--report') | ||
| 9 | + | ||
| 10 | + run(`vue-cli-service build ${args}`) | ||
| 11 | + | ||
| 12 | + const port = 9526 | ||
| 13 | + const publicPath = config.publicPath | ||
| 14 | + | ||
| 15 | + var connect = require('connect') | ||
| 16 | + var serveStatic = require('serve-static') | ||
| 17 | + const app = connect() | ||
| 18 | + | ||
| 19 | + app.use( | ||
| 20 | + publicPath, | ||
| 21 | + serveStatic('./dist', { | ||
| 22 | + index: ['index.html', '/'] | ||
| 23 | + }) | ||
| 24 | + ) | ||
| 25 | + | ||
| 26 | + app.listen(port, function () { | ||
| 27 | + console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`)) | ||
| 28 | + if (report) { | ||
| 29 | + console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`)) | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + }) | ||
| 33 | +} else { | ||
| 34 | + run(`vue-cli-service build ${args}`) | ||
| 35 | +} |
ruoyi-ui/package.json renamed to yudao-admin-ui/package.json
| 1 | -{ | ||
| 2 | - "name": "ruoyi", | ||
| 3 | - "version": "3.3.0", | ||
| 4 | - "description": "芋道管理系统", | ||
| 5 | - "author": "芋道", | ||
| 6 | - "license": "MIT", | ||
| 7 | - "scripts": { | ||
| 8 | - "dev": "vue-cli-service serve", | ||
| 9 | - "build:prod": "vue-cli-service build", | ||
| 10 | - "build:stage": "vue-cli-service build --mode staging", | ||
| 11 | - "build:demo1024": "vue-cli-service build --mode demo1024", | ||
| 12 | - "preview": "node build/index.js --preview", | ||
| 13 | - "lint": "eslint --ext .js,.vue src" | ||
| 14 | - }, | ||
| 15 | - "husky": { | ||
| 16 | - "hooks": { | ||
| 17 | - "pre-commit": "lint-staged" | ||
| 18 | - } | ||
| 19 | - }, | ||
| 20 | - "lint-staged": { | ||
| 21 | - "src/**/*.{js,vue}": [ | ||
| 22 | - "eslint --fix", | ||
| 23 | - "git add" | ||
| 24 | - ] | ||
| 25 | - }, | ||
| 26 | - "keywords": [ | ||
| 27 | - "vue", | ||
| 28 | - "admin", | ||
| 29 | - "dashboard", | ||
| 30 | - "element-ui", | ||
| 31 | - "boilerplate", | ||
| 32 | - "admin-template", | ||
| 33 | - "management-system" | ||
| 34 | - ], | ||
| 35 | - "repository": { | ||
| 36 | - "type": "git", | ||
| 37 | - "url": "https://github.com/YunaiV/ruoyi-vue-pro" | ||
| 38 | - }, | ||
| 39 | - "dependencies": { | ||
| 40 | - "@riophae/vue-treeselect": "0.4.0", | ||
| 41 | - "axios": "0.21.0", | ||
| 42 | - "clipboard": "2.0.6", | ||
| 43 | - "core-js": "3.8.1", | ||
| 44 | - "echarts": "4.9.0", | ||
| 45 | - "element-ui": "2.15.0", | ||
| 46 | - "file-saver": "2.0.4", | ||
| 47 | - "fuse.js": "6.4.3", | ||
| 48 | - "highlight.js": "9.18.5", | ||
| 49 | - "js-beautify": "1.13.0", | ||
| 50 | - "js-cookie": "2.2.1", | ||
| 51 | - "jsencrypt": "3.0.0-rc.1", | ||
| 52 | - "nprogress": "0.2.0", | ||
| 53 | - "quill": "1.3.7", | ||
| 54 | - "screenfull": "5.0.2", | ||
| 55 | - "sortablejs": "1.10.2", | ||
| 56 | - "vue": "2.6.12", | ||
| 57 | - "vue-count-to": "1.0.13", | ||
| 58 | - "vue-cropper": "0.5.5", | ||
| 59 | - "vue-router": "3.4.9", | ||
| 60 | - "vuedraggable": "2.24.3", | ||
| 61 | - "vuex": "3.6.0" | ||
| 62 | - }, | ||
| 63 | - "devDependencies": { | ||
| 64 | - "@vue/cli-plugin-babel": "4.4.6", | ||
| 65 | - "@vue/cli-plugin-eslint": "4.4.6", | ||
| 66 | - "@vue/cli-service": "4.4.6", | ||
| 67 | - "babel-eslint": "10.1.0", | ||
| 68 | - "chalk": "4.1.0", | ||
| 69 | - "connect": "3.6.6", | ||
| 70 | - "eslint": "7.15.0", | ||
| 71 | - "eslint-plugin-vue": "7.2.0", | ||
| 72 | - "lint-staged": "10.5.3", | ||
| 73 | - "sass": "1.30.0", | ||
| 74 | - "runjs": "4.4.2", | ||
| 75 | - "sass-loader": "10.1.0", | ||
| 76 | - "script-ext-html-webpack-plugin": "2.1.5", | ||
| 77 | - "svg-sprite-loader": "5.1.1", | ||
| 78 | - "vue-template-compiler": "2.6.12" | ||
| 79 | - }, | ||
| 80 | - "engines": { | ||
| 81 | - "node": ">=8.9", | ||
| 82 | - "npm": ">= 3.0.0" | ||
| 83 | - }, | ||
| 84 | - "browserslist": [ | ||
| 85 | - "> 1%", | ||
| 86 | - "last 2 versions" | ||
| 87 | - ] | ||
| 88 | -} | 1 | +{ |
| 2 | + "name": "ruoyi", | ||
| 3 | + "version": "3.3.0", | ||
| 4 | + "description": "芋道管理系统", | ||
| 5 | + "author": "芋道", | ||
| 6 | + "license": "MIT", | ||
| 7 | + "scripts": { | ||
| 8 | + "dev": "vue-cli-service serve", | ||
| 9 | + "build:prod": "vue-cli-service build", | ||
| 10 | + "build:stage": "vue-cli-service build --mode staging", | ||
| 11 | + "build:demo1024": "vue-cli-service build --mode demo1024", | ||
| 12 | + "preview": "node build/index.js --preview", | ||
| 13 | + "lint": "eslint --ext .js,.vue src" | ||
| 14 | + }, | ||
| 15 | + "husky": { | ||
| 16 | + "hooks": { | ||
| 17 | + "pre-commit": "lint-staged" | ||
| 18 | + } | ||
| 19 | + }, | ||
| 20 | + "lint-staged": { | ||
| 21 | + "src/**/*.{js,vue}": [ | ||
| 22 | + "eslint --fix", | ||
| 23 | + "git add" | ||
| 24 | + ] | ||
| 25 | + }, | ||
| 26 | + "keywords": [ | ||
| 27 | + "vue", | ||
| 28 | + "admin", | ||
| 29 | + "dashboard", | ||
| 30 | + "element-ui", | ||
| 31 | + "boilerplate", | ||
| 32 | + "admin-template", | ||
| 33 | + "management-system" | ||
| 34 | + ], | ||
| 35 | + "repository": { | ||
| 36 | + "type": "git", | ||
| 37 | + "url": "https://github.com/YunaiV/ruoyi-vue-pro" | ||
| 38 | + }, | ||
| 39 | + "dependencies": { | ||
| 40 | + "@riophae/vue-treeselect": "0.4.0", | ||
| 41 | + "axios": "0.21.0", | ||
| 42 | + "clipboard": "2.0.6", | ||
| 43 | + "core-js": "3.8.1", | ||
| 44 | + "echarts": "4.9.0", | ||
| 45 | + "element-ui": "2.15.0", | ||
| 46 | + "file-saver": "2.0.4", | ||
| 47 | + "fuse.js": "6.4.3", | ||
| 48 | + "highlight.js": "9.18.5", | ||
| 49 | + "js-beautify": "1.13.0", | ||
| 50 | + "js-cookie": "2.2.1", | ||
| 51 | + "jsencrypt": "3.0.0-rc.1", | ||
| 52 | + "nprogress": "0.2.0", | ||
| 53 | + "quill": "1.3.7", | ||
| 54 | + "screenfull": "5.0.2", | ||
| 55 | + "sortablejs": "1.10.2", | ||
| 56 | + "vue": "2.6.12", | ||
| 57 | + "vue-count-to": "1.0.13", | ||
| 58 | + "vue-cropper": "0.5.5", | ||
| 59 | + "vue-router": "3.4.9", | ||
| 60 | + "vuedraggable": "2.24.3", | ||
| 61 | + "vuex": "3.6.0" | ||
| 62 | + }, | ||
| 63 | + "devDependencies": { | ||
| 64 | + "@vue/cli-plugin-babel": "4.4.6", | ||
| 65 | + "@vue/cli-plugin-eslint": "4.4.6", | ||
| 66 | + "@vue/cli-service": "4.4.6", | ||
| 67 | + "babel-eslint": "10.1.0", | ||
| 68 | + "chalk": "4.1.0", | ||
| 69 | + "connect": "3.6.6", | ||
| 70 | + "eslint": "7.15.0", | ||
| 71 | + "eslint-plugin-vue": "7.2.0", | ||
| 72 | + "lint-staged": "10.5.3", | ||
| 73 | + "sass": "1.30.0", | ||
| 74 | + "runjs": "4.4.2", | ||
| 75 | + "sass-loader": "10.1.0", | ||
| 76 | + "script-ext-html-webpack-plugin": "2.1.5", | ||
| 77 | + "svg-sprite-loader": "5.1.1", | ||
| 78 | + "vue-template-compiler": "2.6.12" | ||
| 79 | + }, | ||
| 80 | + "engines": { | ||
| 81 | + "node": ">=8.9", | ||
| 82 | + "npm": ">= 3.0.0" | ||
| 83 | + }, | ||
| 84 | + "browserslist": [ | ||
| 85 | + "> 1%", | ||
| 86 | + "last 2 versions" | ||
| 87 | + ] | ||
| 88 | +} |
ruoyi-ui/public/favicon.ico renamed to yudao-admin-ui/public/favicon.ico
No preview for this file type
ruoyi-ui/public/index.html renamed to yudao-admin-ui/public/index.html
| 1 | -<!DOCTYPE html> | ||
| 2 | -<html> | ||
| 3 | - <head> | ||
| 4 | - <meta charset="utf-8"> | ||
| 5 | - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | ||
| 6 | - <meta name="renderer" content="webkit"> | ||
| 7 | - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> | ||
| 8 | - <link rel="icon" href="<%= BASE_URL %>favicon.ico"> | ||
| 9 | - <title><%= webpackConfig.name %></title> | ||
| 10 | - <style> | ||
| 11 | - html, | ||
| 12 | - body, | ||
| 13 | - #app { | ||
| 14 | - height: 100%; | ||
| 15 | - margin: 0px; | ||
| 16 | - padding: 0px; | ||
| 17 | - } | ||
| 18 | - .chromeframe { | ||
| 19 | - margin: 0.2em 0; | ||
| 20 | - background: #ccc; | ||
| 21 | - color: #000; | ||
| 22 | - padding: 0.2em 0; | ||
| 23 | - } | ||
| 24 | - | ||
| 25 | - #loader-wrapper { | ||
| 26 | - position: fixed; | ||
| 27 | - top: 0; | ||
| 28 | - left: 0; | ||
| 29 | - width: 100%; | ||
| 30 | - height: 100%; | ||
| 31 | - z-index: 999999; | ||
| 32 | - } | ||
| 33 | - | ||
| 34 | - #loader { | ||
| 35 | - display: block; | ||
| 36 | - position: relative; | ||
| 37 | - left: 50%; | ||
| 38 | - top: 50%; | ||
| 39 | - width: 150px; | ||
| 40 | - height: 150px; | ||
| 41 | - margin: -75px 0 0 -75px; | ||
| 42 | - border-radius: 50%; | ||
| 43 | - border: 3px solid transparent; | ||
| 44 | - border-top-color: #FFF; | ||
| 45 | - -webkit-animation: spin 2s linear infinite; | ||
| 46 | - -ms-animation: spin 2s linear infinite; | ||
| 47 | - -moz-animation: spin 2s linear infinite; | ||
| 48 | - -o-animation: spin 2s linear infinite; | ||
| 49 | - animation: spin 2s linear infinite; | ||
| 50 | - z-index: 1001; | ||
| 51 | - } | ||
| 52 | - | ||
| 53 | - #loader:before { | ||
| 54 | - content: ""; | ||
| 55 | - position: absolute; | ||
| 56 | - top: 5px; | ||
| 57 | - left: 5px; | ||
| 58 | - right: 5px; | ||
| 59 | - bottom: 5px; | ||
| 60 | - border-radius: 50%; | ||
| 61 | - border: 3px solid transparent; | ||
| 62 | - border-top-color: #FFF; | ||
| 63 | - -webkit-animation: spin 3s linear infinite; | ||
| 64 | - -moz-animation: spin 3s linear infinite; | ||
| 65 | - -o-animation: spin 3s linear infinite; | ||
| 66 | - -ms-animation: spin 3s linear infinite; | ||
| 67 | - animation: spin 3s linear infinite; | ||
| 68 | - } | ||
| 69 | - | ||
| 70 | - #loader:after { | ||
| 71 | - content: ""; | ||
| 72 | - position: absolute; | ||
| 73 | - top: 15px; | ||
| 74 | - left: 15px; | ||
| 75 | - right: 15px; | ||
| 76 | - bottom: 15px; | ||
| 77 | - border-radius: 50%; | ||
| 78 | - border: 3px solid transparent; | ||
| 79 | - border-top-color: #FFF; | ||
| 80 | - -moz-animation: spin 1.5s linear infinite; | ||
| 81 | - -o-animation: spin 1.5s linear infinite; | ||
| 82 | - -ms-animation: spin 1.5s linear infinite; | ||
| 83 | - -webkit-animation: spin 1.5s linear infinite; | ||
| 84 | - animation: spin 1.5s linear infinite; | ||
| 85 | - } | ||
| 86 | - | ||
| 87 | - | ||
| 88 | - @-webkit-keyframes spin { | ||
| 89 | - 0% { | ||
| 90 | - -webkit-transform: rotate(0deg); | ||
| 91 | - -ms-transform: rotate(0deg); | ||
| 92 | - transform: rotate(0deg); | ||
| 93 | - } | ||
| 94 | - 100% { | ||
| 95 | - -webkit-transform: rotate(360deg); | ||
| 96 | - -ms-transform: rotate(360deg); | ||
| 97 | - transform: rotate(360deg); | ||
| 98 | - } | ||
| 99 | - } | ||
| 100 | - | ||
| 101 | - @keyframes spin { | ||
| 102 | - 0% { | ||
| 103 | - -webkit-transform: rotate(0deg); | ||
| 104 | - -ms-transform: rotate(0deg); | ||
| 105 | - transform: rotate(0deg); | ||
| 106 | - } | ||
| 107 | - 100% { | ||
| 108 | - -webkit-transform: rotate(360deg); | ||
| 109 | - -ms-transform: rotate(360deg); | ||
| 110 | - transform: rotate(360deg); | ||
| 111 | - } | ||
| 112 | - } | ||
| 113 | - | ||
| 114 | - | ||
| 115 | - #loader-wrapper .loader-section { | ||
| 116 | - position: fixed; | ||
| 117 | - top: 0; | ||
| 118 | - width: 51%; | ||
| 119 | - height: 100%; | ||
| 120 | - background: #7171C6; | ||
| 121 | - z-index: 1000; | ||
| 122 | - -webkit-transform: translateX(0); | ||
| 123 | - -ms-transform: translateX(0); | ||
| 124 | - transform: translateX(0); | ||
| 125 | - } | ||
| 126 | - | ||
| 127 | - #loader-wrapper .loader-section.section-left { | ||
| 128 | - left: 0; | ||
| 129 | - } | ||
| 130 | - | ||
| 131 | - #loader-wrapper .loader-section.section-right { | ||
| 132 | - right: 0; | ||
| 133 | - } | ||
| 134 | - | ||
| 135 | - | ||
| 136 | - .loaded #loader-wrapper .loader-section.section-left { | ||
| 137 | - -webkit-transform: translateX(-100%); | ||
| 138 | - -ms-transform: translateX(-100%); | ||
| 139 | - transform: translateX(-100%); | ||
| 140 | - -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||
| 141 | - transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||
| 142 | - } | ||
| 143 | - | ||
| 144 | - .loaded #loader-wrapper .loader-section.section-right { | ||
| 145 | - -webkit-transform: translateX(100%); | ||
| 146 | - -ms-transform: translateX(100%); | ||
| 147 | - transform: translateX(100%); | ||
| 148 | - -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||
| 149 | - transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||
| 150 | - } | ||
| 151 | - | ||
| 152 | - .loaded #loader { | ||
| 153 | - opacity: 0; | ||
| 154 | - -webkit-transition: all 0.3s ease-out; | ||
| 155 | - transition: all 0.3s ease-out; | ||
| 156 | - } | ||
| 157 | - | ||
| 158 | - .loaded #loader-wrapper { | ||
| 159 | - visibility: hidden; | ||
| 160 | - -webkit-transform: translateY(-100%); | ||
| 161 | - -ms-transform: translateY(-100%); | ||
| 162 | - transform: translateY(-100%); | ||
| 163 | - -webkit-transition: all 0.3s 1s ease-out; | ||
| 164 | - transition: all 0.3s 1s ease-out; | ||
| 165 | - } | ||
| 166 | - | ||
| 167 | - .no-js #loader-wrapper { | ||
| 168 | - display: none; | ||
| 169 | - } | ||
| 170 | - | ||
| 171 | - .no-js h1 { | ||
| 172 | - color: #222222; | ||
| 173 | - } | ||
| 174 | - | ||
| 175 | - #loader-wrapper .load_title { | ||
| 176 | - font-family: 'Open Sans'; | ||
| 177 | - color: #FFF; | ||
| 178 | - font-size: 19px; | ||
| 179 | - width: 100%; | ||
| 180 | - text-align: center; | ||
| 181 | - z-index: 9999999999999; | ||
| 182 | - position: absolute; | ||
| 183 | - top: 60%; | ||
| 184 | - opacity: 1; | ||
| 185 | - line-height: 30px; | ||
| 186 | - } | ||
| 187 | - | ||
| 188 | - #loader-wrapper .load_title span { | ||
| 189 | - font-weight: normal; | ||
| 190 | - font-style: italic; | ||
| 191 | - font-size: 13px; | ||
| 192 | - color: #FFF; | ||
| 193 | - opacity: 0.5; | ||
| 194 | - } | ||
| 195 | - </style> | ||
| 196 | - </head> | ||
| 197 | - <body> | ||
| 198 | - <div id="app"> | ||
| 199 | - <div id="loader-wrapper"> | ||
| 200 | - <div id="loader"></div> | ||
| 201 | - <div class="loader-section section-left"></div> | ||
| 202 | - <div class="loader-section section-right"></div> | ||
| 203 | - <div class="load_title">正在加载系统资源,请耐心等待</div> | ||
| 204 | - </div> | ||
| 205 | - </div> | ||
| 206 | - </body> | ||
| 207 | -</html> | 1 | +<!DOCTYPE html> |
| 2 | +<html> | ||
| 3 | + <head> | ||
| 4 | + <meta charset="utf-8"> | ||
| 5 | + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | ||
| 6 | + <meta name="renderer" content="webkit"> | ||
| 7 | + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> | ||
| 8 | + <link rel="icon" href="<%= BASE_URL %>favicon.ico"> | ||
| 9 | + <title><%= webpackConfig.name %></title> | ||
| 10 | + <style> | ||
| 11 | + html, | ||
| 12 | + body, | ||
| 13 | + #app { | ||
| 14 | + height: 100%; | ||
| 15 | + margin: 0px; | ||
| 16 | + padding: 0px; | ||
| 17 | + } | ||
| 18 | + .chromeframe { | ||
| 19 | + margin: 0.2em 0; | ||
| 20 | + background: #ccc; | ||
| 21 | + color: #000; | ||
| 22 | + padding: 0.2em 0; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + #loader-wrapper { | ||
| 26 | + position: fixed; | ||
| 27 | + top: 0; | ||
| 28 | + left: 0; | ||
| 29 | + width: 100%; | ||
| 30 | + height: 100%; | ||
| 31 | + z-index: 999999; | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + #loader { | ||
| 35 | + display: block; | ||
| 36 | + position: relative; | ||
| 37 | + left: 50%; | ||
| 38 | + top: 50%; | ||
| 39 | + width: 150px; | ||
| 40 | + height: 150px; | ||
| 41 | + margin: -75px 0 0 -75px; | ||
| 42 | + border-radius: 50%; | ||
| 43 | + border: 3px solid transparent; | ||
| 44 | + border-top-color: #FFF; | ||
| 45 | + -webkit-animation: spin 2s linear infinite; | ||
| 46 | + -ms-animation: spin 2s linear infinite; | ||
| 47 | + -moz-animation: spin 2s linear infinite; | ||
| 48 | + -o-animation: spin 2s linear infinite; | ||
| 49 | + animation: spin 2s linear infinite; | ||
| 50 | + z-index: 1001; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + #loader:before { | ||
| 54 | + content: ""; | ||
| 55 | + position: absolute; | ||
| 56 | + top: 5px; | ||
| 57 | + left: 5px; | ||
| 58 | + right: 5px; | ||
| 59 | + bottom: 5px; | ||
| 60 | + border-radius: 50%; | ||
| 61 | + border: 3px solid transparent; | ||
| 62 | + border-top-color: #FFF; | ||
| 63 | + -webkit-animation: spin 3s linear infinite; | ||
| 64 | + -moz-animation: spin 3s linear infinite; | ||
| 65 | + -o-animation: spin 3s linear infinite; | ||
| 66 | + -ms-animation: spin 3s linear infinite; | ||
| 67 | + animation: spin 3s linear infinite; | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + #loader:after { | ||
| 71 | + content: ""; | ||
| 72 | + position: absolute; | ||
| 73 | + top: 15px; | ||
| 74 | + left: 15px; | ||
| 75 | + right: 15px; | ||
| 76 | + bottom: 15px; | ||
| 77 | + border-radius: 50%; | ||
| 78 | + border: 3px solid transparent; | ||
| 79 | + border-top-color: #FFF; | ||
| 80 | + -moz-animation: spin 1.5s linear infinite; | ||
| 81 | + -o-animation: spin 1.5s linear infinite; | ||
| 82 | + -ms-animation: spin 1.5s linear infinite; | ||
| 83 | + -webkit-animation: spin 1.5s linear infinite; | ||
| 84 | + animation: spin 1.5s linear infinite; | ||
| 85 | + } | ||
| 86 | + | ||
| 87 | + | ||
| 88 | + @-webkit-keyframes spin { | ||
| 89 | + 0% { | ||
| 90 | + -webkit-transform: rotate(0deg); | ||
| 91 | + -ms-transform: rotate(0deg); | ||
| 92 | + transform: rotate(0deg); | ||
| 93 | + } | ||
| 94 | + 100% { | ||
| 95 | + -webkit-transform: rotate(360deg); | ||
| 96 | + -ms-transform: rotate(360deg); | ||
| 97 | + transform: rotate(360deg); | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + @keyframes spin { | ||
| 102 | + 0% { | ||
| 103 | + -webkit-transform: rotate(0deg); | ||
| 104 | + -ms-transform: rotate(0deg); | ||
| 105 | + transform: rotate(0deg); | ||
| 106 | + } | ||
| 107 | + 100% { | ||
| 108 | + -webkit-transform: rotate(360deg); | ||
| 109 | + -ms-transform: rotate(360deg); | ||
| 110 | + transform: rotate(360deg); | ||
| 111 | + } | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + | ||
| 115 | + #loader-wrapper .loader-section { | ||
| 116 | + position: fixed; | ||
| 117 | + top: 0; | ||
| 118 | + width: 51%; | ||
| 119 | + height: 100%; | ||
| 120 | + background: #7171C6; | ||
| 121 | + z-index: 1000; | ||
| 122 | + -webkit-transform: translateX(0); | ||
| 123 | + -ms-transform: translateX(0); | ||
| 124 | + transform: translateX(0); | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + #loader-wrapper .loader-section.section-left { | ||
| 128 | + left: 0; | ||
| 129 | + } | ||
| 130 | + | ||
| 131 | + #loader-wrapper .loader-section.section-right { | ||
| 132 | + right: 0; | ||
| 133 | + } | ||
| 134 | + | ||
| 135 | + | ||
| 136 | + .loaded #loader-wrapper .loader-section.section-left { | ||
| 137 | + -webkit-transform: translateX(-100%); | ||
| 138 | + -ms-transform: translateX(-100%); | ||
| 139 | + transform: translateX(-100%); | ||
| 140 | + -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||
| 141 | + transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + .loaded #loader-wrapper .loader-section.section-right { | ||
| 145 | + -webkit-transform: translateX(100%); | ||
| 146 | + -ms-transform: translateX(100%); | ||
| 147 | + transform: translateX(100%); | ||
| 148 | + -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||
| 149 | + transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + .loaded #loader { | ||
| 153 | + opacity: 0; | ||
| 154 | + -webkit-transition: all 0.3s ease-out; | ||
| 155 | + transition: all 0.3s ease-out; | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + .loaded #loader-wrapper { | ||
| 159 | + visibility: hidden; | ||
| 160 | + -webkit-transform: translateY(-100%); | ||
| 161 | + -ms-transform: translateY(-100%); | ||
| 162 | + transform: translateY(-100%); | ||
| 163 | + -webkit-transition: all 0.3s 1s ease-out; | ||
| 164 | + transition: all 0.3s 1s ease-out; | ||
| 165 | + } | ||
| 166 | + | ||
| 167 | + .no-js #loader-wrapper { | ||
| 168 | + display: none; | ||
| 169 | + } | ||
| 170 | + | ||
| 171 | + .no-js h1 { | ||
| 172 | + color: #222222; | ||
| 173 | + } | ||
| 174 | + | ||
| 175 | + #loader-wrapper .load_title { | ||
| 176 | + font-family: 'Open Sans'; | ||
| 177 | + color: #FFF; | ||
| 178 | + font-size: 19px; | ||
| 179 | + width: 100%; | ||
| 180 | + text-align: center; | ||
| 181 | + z-index: 9999999999999; | ||
| 182 | + position: absolute; | ||
| 183 | + top: 60%; | ||
| 184 | + opacity: 1; | ||
| 185 | + line-height: 30px; | ||
| 186 | + } | ||
| 187 | + | ||
| 188 | + #loader-wrapper .load_title span { | ||
| 189 | + font-weight: normal; | ||
| 190 | + font-style: italic; | ||
| 191 | + font-size: 13px; | ||
| 192 | + color: #FFF; | ||
| 193 | + opacity: 0.5; | ||
| 194 | + } | ||
| 195 | + </style> | ||
| 196 | + </head> | ||
| 197 | + <body> | ||
| 198 | + <div id="app"> | ||
| 199 | + <div id="loader-wrapper"> | ||
| 200 | + <div id="loader"></div> | ||
| 201 | + <div class="loader-section section-left"></div> | ||
| 202 | + <div class="loader-section section-right"></div> | ||
| 203 | + <div class="load_title">正在加载系统资源,请耐心等待</div> | ||
| 204 | + </div> | ||
| 205 | + </div> | ||
| 206 | + </body> | ||
| 207 | +</html> |
yudao-admin-ui/public/robots.txt
0 → 100644
ruoyi-ui/src/App.vue renamed to yudao-admin-ui/src/App.vue
| 1 | -<template> | ||
| 2 | - <div id="app"> | ||
| 3 | - <router-view /> | ||
| 4 | - </div> | ||
| 5 | -</template> | ||
| 6 | - | ||
| 7 | -<script> | ||
| 8 | -export default { | ||
| 9 | - name: 'App' | ||
| 10 | -} | ||
| 11 | -</script> | 1 | +<template> |
| 2 | + <div id="app"> | ||
| 3 | + <router-view /> | ||
| 4 | + </div> | ||
| 5 | +</template> | ||
| 6 | + | ||
| 7 | +<script> | ||
| 8 | +export default { | ||
| 9 | + name: 'App' | ||
| 10 | +} | ||
| 11 | +</script> |
ruoyi-ui/src/api/infra/apiAccessLog.js renamed to yudao-admin-ui/src/api/infra/apiAccessLog.js
ruoyi-ui/src/api/infra/apiErrorLog.js renamed to yudao-admin-ui/src/api/infra/apiErrorLog.js
ruoyi-ui/src/api/infra/config.js renamed to yudao-admin-ui/src/api/infra/config.js
ruoyi-ui/src/api/infra/dbDoc.js renamed to yudao-admin-ui/src/api/infra/dbDoc.js
ruoyi-ui/src/api/infra/file.js renamed to yudao-admin-ui/src/api/infra/file.js
ruoyi-ui/src/api/infra/job.js renamed to yudao-admin-ui/src/api/infra/job.js
ruoyi-ui/src/api/infra/jobLog.js renamed to yudao-admin-ui/src/api/infra/jobLog.js
ruoyi-ui/src/api/infra/redis.js renamed to yudao-admin-ui/src/api/infra/redis.js
ruoyi-ui/src/api/login.js renamed to yudao-admin-ui/src/api/login.js
| 1 | -import request from '@/utils/request' | ||
| 2 | - | ||
| 3 | -// 登录方法 | ||
| 4 | -export function login(username, password, code, uuid) { | ||
| 5 | - const data = { | ||
| 6 | - username, | ||
| 7 | - password, | ||
| 8 | - code, | ||
| 9 | - uuid | ||
| 10 | - } | ||
| 11 | - return request({ | ||
| 12 | - url: '/login', | ||
| 13 | - method: 'post', | ||
| 14 | - data: data | ||
| 15 | - }) | ||
| 16 | -} | ||
| 17 | - | ||
| 18 | -// 获取用户详细信息 | ||
| 19 | -export function getInfo() { | ||
| 20 | - return request({ | ||
| 21 | - url: '/get-permission-info', | ||
| 22 | - method: 'get' | ||
| 23 | - }) | ||
| 24 | -} | ||
| 25 | - | ||
| 26 | -// 退出方法 | ||
| 27 | -export function logout() { | ||
| 28 | - return request({ | ||
| 29 | - url: '/logout', | ||
| 30 | - method: 'post' | ||
| 31 | - }) | ||
| 32 | -} | ||
| 33 | - | ||
| 34 | -// 获取验证码 | ||
| 35 | -export function getCodeImg() { | ||
| 36 | - return request({ | ||
| 37 | - url: '/system/captcha/get-image', | ||
| 38 | - method: 'get' | ||
| 39 | - }) | ||
| 40 | -} | 1 | +import request from '@/utils/request' |
| 2 | + | ||
| 3 | +// 登录方法 | ||
| 4 | +export function login(username, password, code, uuid) { | ||
| 5 | + const data = { | ||
| 6 | + username, | ||
| 7 | + password, | ||
| 8 | + code, | ||
| 9 | + uuid | ||
| 10 | + } | ||
| 11 | + return request({ | ||
| 12 | + url: '/login', | ||
| 13 | + method: 'post', | ||
| 14 | + data: data | ||
| 15 | + }) | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +// 获取用户详细信息 | ||
| 19 | +export function getInfo() { | ||
| 20 | + return request({ | ||
| 21 | + url: '/get-permission-info', | ||
| 22 | + method: 'get' | ||
| 23 | + }) | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +// 退出方法 | ||
| 27 | +export function logout() { | ||
| 28 | + return request({ | ||
| 29 | + url: '/logout', | ||
| 30 | + method: 'post' | ||
| 31 | + }) | ||
| 32 | +} | ||
| 33 | + | ||
| 34 | +// 获取验证码 | ||
| 35 | +export function getCodeImg() { | ||
| 36 | + return request({ | ||
| 37 | + url: '/system/captcha/get-image', | ||
| 38 | + method: 'get' | ||
| 39 | + }) | ||
| 40 | +} |
ruoyi-ui/src/api/menu.js renamed to yudao-admin-ui/src/api/menu.js
| 1 | -import request from '@/utils/request' | ||
| 2 | - | ||
| 3 | -// 获取路由 | ||
| 4 | -export const getRouters = () => { | ||
| 5 | - return request({ | ||
| 6 | - url: '/list-menus', | ||
| 7 | - method: 'get' | ||
| 8 | - }) | ||
| 9 | -} | 1 | +import request from '@/utils/request' |
| 2 | + | ||
| 3 | +// 获取路由 | ||
| 4 | +export const getRouters = () => { | ||
| 5 | + return request({ | ||
| 6 | + url: '/list-menus', | ||
| 7 | + method: 'get' | ||
| 8 | + }) | ||
| 9 | +} |
ruoyi-ui/src/api/system/dept.js renamed to yudao-admin-ui/src/api/system/dept.js
| 1 | -import request from '@/utils/request' | ||
| 2 | - | ||
| 3 | -// 查询部门列表 | ||
| 4 | -export function listDept(query) { | ||
| 5 | - return request({ | ||
| 6 | - url: '/system/dept/list', | ||
| 7 | - method: 'get', | ||
| 8 | - params: query | ||
| 9 | - }) | ||
| 10 | -} | ||
| 11 | - | ||
| 12 | -// 查询部门列表(排除节点) | ||
| 13 | -export function listDeptExcludeChild(deptId) { | ||
| 14 | - return request({ | ||
| 15 | - url: '/system/dept/list/exclude/' + deptId, | ||
| 16 | - method: 'get' | ||
| 17 | - }) | ||
| 18 | -} | ||
| 19 | - | ||
| 20 | -// 查询部门详细 | ||
| 21 | -export function getDept(deptId) { | ||
| 22 | - return request({ | ||
| 23 | - url: '/system/dept/get?id=' + deptId, | ||
| 24 | - method: 'get' | ||
| 25 | - }) | ||
| 26 | -} | ||
| 27 | - | ||
| 28 | -// 获取部门精简信息列表 | ||
| 29 | -export function listSimpleDepts() { | ||
| 30 | - return request({ | ||
| 31 | - url: '/system/dept/list-all-simple', | ||
| 32 | - method: 'get' | ||
| 33 | - }) | ||
| 34 | -} | ||
| 35 | - | ||
| 36 | -// 新增部门 | ||
| 37 | -export function addDept(data) { | ||
| 38 | - return request({ | ||
| 39 | - url: '/system/dept/create', | ||
| 40 | - method: 'post', | ||
| 41 | - data: data | ||
| 42 | - }) | ||
| 43 | -} | ||
| 44 | - | ||
| 45 | -// 修改部门 | ||
| 46 | -export function updateDept(data) { | ||
| 47 | - return request({ | ||
| 48 | - url: '/system/dept/update', | ||
| 49 | - method: 'put', | ||
| 50 | - data: data | ||
| 51 | - }) | ||
| 52 | -} | ||
| 53 | - | ||
| 54 | -// 删除部门 | ||
| 55 | -export function delDept(id) { | ||
| 56 | - return request({ | ||
| 57 | - url: '/system/dept/delete?id=' + id, | ||
| 58 | - method: 'delete' | ||
| 59 | - }) | ||
| 60 | -} | 1 | +import request from '@/utils/request' |
| 2 | + | ||
| 3 | +// 查询部门列表 | ||
| 4 | +export function listDept(query) { | ||
| 5 | + return request({ | ||
| 6 | + url: '/system/dept/list', | ||
| 7 | + method: 'get', | ||
| 8 | + params: query | ||
| 9 | + }) | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +// 查询部门列表(排除节点) | ||
| 13 | +export function listDeptExcludeChild(deptId) { | ||
| 14 | + return request({ | ||
| 15 | + url: '/system/dept/list/exclude/' + deptId, | ||
| 16 | + method: 'get' | ||
| 17 | + }) | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +// 查询部门详细 | ||
| 21 | +export function getDept(deptId) { | ||
| 22 | + return request({ | ||
| 23 | + url: '/system/dept/get?id=' + deptId, | ||
| 24 | + method: 'get' | ||
| 25 | + }) | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +// 获取部门精简信息列表 | ||
| 29 | +export function listSimpleDepts() { | ||
| 30 | + return request({ | ||
| 31 | + url: '/system/dept/list-all-simple', | ||
| 32 | + method: 'get' | ||
| 33 | + }) | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +// 新增部门 | ||
| 37 | +export function addDept(data) { | ||
| 38 | + return request({ | ||
| 39 | + url: '/system/dept/create', | ||
| 40 | + method: 'post', | ||
| 41 | + data: data | ||
| 42 | + }) | ||
| 43 | +} | ||
| 44 | + | ||
| 45 | +// 修改部门 | ||
| 46 | +export function updateDept(data) { | ||
| 47 | + return request({ | ||
| 48 | + url: '/system/dept/update', | ||
| 49 | + method: 'put', | ||
| 50 | + data: data | ||
| 51 | + }) | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +// 删除部门 | ||
| 55 | +export function delDept(id) { | ||
| 56 | + return request({ | ||
| 57 | + url: '/system/dept/delete?id=' + id, | ||
| 58 | + method: 'delete' | ||
| 59 | + }) | ||
| 60 | +} |
ruoyi-ui/src/api/system/dict/data.js renamed to yudao-admin-ui/src/api/system/dict/data.js
| 1 | -import request from '@/utils/request' | ||
| 2 | - | ||
| 3 | -// 查询字典数据列表 | ||
| 4 | -export function listData(query) { | ||
| 5 | - return request({ | ||
| 6 | - url: '/system/dict-data/page', | ||
| 7 | - method: 'get', | ||
| 8 | - params: query | ||
| 9 | - }) | ||
| 10 | -} | ||
| 11 | - | ||
| 12 | -// 查询字典数据详细 | ||
| 13 | -export function getData(dictCode) { | ||
| 14 | - return request({ | ||
| 15 | - url: '/system/dict-data/get?id=' + dictCode, | ||
| 16 | - method: 'get' | ||
| 17 | - }) | ||
| 18 | -} | ||
| 19 | - | ||
| 20 | -// 根据字典类型查询字典数据信息 | ||
| 21 | -export function getDicts(dictType) { | ||
| 22 | - return request({ | ||
| 23 | - url: '/system/dict-data/type/' + dictType, | ||
| 24 | - method: 'get' | ||
| 25 | - }) | ||
| 26 | -} | ||
| 27 | - | ||
| 28 | -// 新增字典数据 | ||
| 29 | -export function addData(data) { | ||
| 30 | - return request({ | ||
| 31 | - url: '/system/dict-data/create', | ||
| 32 | - method: 'post', | ||
| 33 | - data: data | ||
| 34 | - }) | ||
| 35 | -} | ||
| 36 | - | ||
| 37 | -// 修改字典数据 | ||
| 38 | -export function updateData(data) { | ||
| 39 | - return request({ | ||
| 40 | - url: '/system/dict-data/update', | ||
| 41 | - method: 'put', | ||
| 42 | - data: data | ||
| 43 | - }) | ||
| 44 | -} | ||
| 45 | - | ||
| 46 | -// 删除字典数据 | ||
| 47 | -export function delData(dictCode) { | ||
| 48 | - return request({ | ||
| 49 | - url: '/system/dict-data/delete?id=' + dictCode, | ||
| 50 | - method: 'delete' | ||
| 51 | - }) | ||
| 52 | -} | ||
| 53 | - | ||
| 54 | -// 导出字典数据 | ||
| 55 | -export function exportData(query) { | ||
| 56 | - return request({ | ||
| 57 | - url: '/system/dict-data/export', | ||
| 58 | - method: 'get', | ||
| 59 | - params: query, | ||
| 60 | - responseType: 'blob' | ||
| 61 | - }) | ||
| 62 | -} | ||
| 63 | - | ||
| 64 | -// 查询全部字典数据列表 | ||
| 65 | -export function listSimpleDictDatas() { | ||
| 66 | - return request({ | ||
| 67 | - url: '/system/dict-data/list-all-simple', | ||
| 68 | - method: 'get', | ||
| 69 | - }) | ||
| 70 | -} | 1 | +import request from '@/utils/request' |
| 2 | + | ||
| 3 | +// 查询字典数据列表 | ||
| 4 | +export function listData(query) { | ||
| 5 | + return request({ | ||
| 6 | + url: '/system/dict-data/page', | ||
| 7 | + method: 'get', | ||
| 8 | + params: query | ||
| 9 | + }) | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +// 查询字典数据详细 | ||
| 13 | +export function getData(dictCode) { | ||
| 14 | + return request({ | ||
| 15 | + url: '/system/dict-data/get?id=' + dictCode, | ||
| 16 | + method: 'get' | ||
| 17 | + }) | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +// 根据字典类型查询字典数据信息 | ||
| 21 | +export function getDicts(dictType) { | ||
| 22 | + return request({ | ||
| 23 | + url: '/system/dict-data/type/' + dictType, | ||
| 24 | + method: 'get' | ||
| 25 | + }) | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +// 新增字典数据 | ||
| 29 | +export function addData(data) { | ||
| 30 | + return request({ | ||
| 31 | + url: '/system/dict-data/create', | ||
| 32 | + method: 'post', | ||
| 33 | + data: data | ||
| 34 | + }) | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +// 修改字典数据 | ||
| 38 | +export function updateData(data) { | ||
| 39 | + return request({ | ||
| 40 | + url: '/system/dict-data/update', | ||
| 41 | + method: 'put', | ||
| 42 | + data: data | ||
| 43 | + }) | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +// 删除字典数据 | ||
| 47 | +export function delData(dictCode) { | ||
| 48 | + return request({ | ||
| 49 | + url: '/system/dict-data/delete?id=' + dictCode, | ||
| 50 | + method: 'delete' | ||
| 51 | + }) | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +// 导出字典数据 | ||
| 55 | +export function exportData(query) { | ||
| 56 | + return request({ | ||
| 57 | + url: '/system/dict-data/export', | ||
| 58 | + method: 'get', | ||
| 59 | + params: query, | ||
| 60 | + responseType: 'blob' | ||
| 61 | + }) | ||
| 62 | +} | ||
| 63 | + | ||
| 64 | +// 查询全部字典数据列表 | ||
| 65 | +export function listSimpleDictDatas() { | ||
| 66 | + return request({ | ||
| 67 | + url: '/system/dict-data/list-all-simple', | ||
| 68 | + method: 'get', | ||
| 69 | + }) | ||
| 70 | +} |
ruoyi-ui/src/api/system/dict/type.js renamed to yudao-admin-ui/src/api/system/dict/type.js
| 1 | -import request from '@/utils/request' | ||
| 2 | - | ||
| 3 | -// 查询字典类型列表 | ||
| 4 | -export function listType(query) { | ||
| 5 | - return request({ | ||
| 6 | - url: '/system/dict-type/page', | ||
| 7 | - method: 'get', | ||
| 8 | - params: query | ||
| 9 | - }) | ||
| 10 | -} | ||
| 11 | - | ||
| 12 | -// 查询字典类型详细 | ||
| 13 | -export function getType(dictId) { | ||
| 14 | - return request({ | ||
| 15 | - url: '/system/dict-type/get?id=' + dictId, | ||
| 16 | - method: 'get' | ||
| 17 | - }) | ||
| 18 | -} | ||
| 19 | - | ||
| 20 | -// 新增字典类型 | ||
| 21 | -export function addType(data) { | ||
| 22 | - return request({ | ||
| 23 | - url: '/system/dict-type/create', | ||
| 24 | - method: 'post', | ||
| 25 | - data: data | ||
| 26 | - }) | ||
| 27 | -} | ||
| 28 | - | ||
| 29 | -// 修改字典类型 | ||
| 30 | -export function updateType(data) { | ||
| 31 | - return request({ | ||
| 32 | - url: '/system/dict-type/update', | ||
| 33 | - method: 'put', | ||
| 34 | - data: data | ||
| 35 | - }) | ||
| 36 | -} | ||
| 37 | - | ||
| 38 | -// 删除字典类型 | ||
| 39 | -export function delType(dictId) { | ||
| 40 | - return request({ | ||
| 41 | - url: '/system/dict-type/delete?id=' + dictId, | ||
| 42 | - method: 'delete' | ||
| 43 | - }) | ||
| 44 | -} | ||
| 45 | - | ||
| 46 | -// 导出字典类型 | ||
| 47 | -export function exportType(query) { | ||
| 48 | - return request({ | ||
| 49 | - url: '/system/dict-type/export', | ||
| 50 | - method: 'get', | ||
| 51 | - params: query, | ||
| 52 | - responseType: 'blob' | ||
| 53 | - }) | ||
| 54 | -} | ||
| 55 | - | ||
| 56 | -// 获取字典选择框列表 | ||
| 57 | -export function listAllSimple() { | ||
| 58 | - return request({ | ||
| 59 | - url: '/system/dict-type/list-all-simple', | ||
| 60 | - method: 'get' | ||
| 61 | - }) | ||
| 62 | -} | 1 | +import request from '@/utils/request' |
| 2 | + | ||
| 3 | +// 查询字典类型列表 | ||
| 4 | +export function listType(query) { | ||
| 5 | + return request({ | ||
| 6 | + url: '/system/dict-type/page', | ||
| 7 | + method: 'get', | ||
| 8 | + params: query | ||
| 9 | + }) | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +// 查询字典类型详细 | ||
| 13 | +export function getType(dictId) { | ||
| 14 | + return request({ | ||
| 15 | + url: '/system/dict-type/get?id=' + dictId, | ||
| 16 | + method: 'get' | ||
| 17 | + }) | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +// 新增字典类型 | ||
| 21 | +export function addType(data) { | ||
| 22 | + return request({ | ||
| 23 | + url: '/system/dict-type/create', | ||
| 24 | + method: 'post', | ||
| 25 | + data: data | ||
| 26 | + }) | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +// 修改字典类型 | ||
| 30 | +export function updateType(data) { | ||
| 31 | + return request({ | ||
| 32 | + url: '/system/dict-type/update', | ||
| 33 | + method: 'put', | ||
| 34 | + data: data | ||
| 35 | + }) | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +// 删除字典类型 | ||
| 39 | +export function delType(dictId) { | ||
| 40 | + return request({ | ||
| 41 | + url: '/system/dict-type/delete?id=' + dictId, | ||
| 42 | + method: 'delete' | ||
| 43 | + }) | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +// 导出字典类型 | ||
| 47 | +export function exportType(query) { | ||
| 48 | + return request({ | ||
| 49 | + url: '/system/dict-type/export', | ||
| 50 | + method: 'get', | ||
| 51 | + params: query, | ||
| 52 | + responseType: 'blob' | ||
| 53 | + }) | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | +// 获取字典选择框列表 | ||
| 57 | +export function listAllSimple() { | ||
| 58 | + return request({ | ||
| 59 | + url: '/system/dict-type/list-all-simple', | ||
| 60 | + method: 'get' | ||
| 61 | + }) | ||
| 62 | +} |
ruoyi-ui/src/api/system/errorCode.js renamed to yudao-admin-ui/src/api/system/errorCode.js
ruoyi-ui/src/api/system/loginlog.js renamed to yudao-admin-ui/src/api/system/loginlog.js
ruoyi-ui/src/api/system/menu.js renamed to yudao-admin-ui/src/api/system/menu.js
ruoyi-ui/src/api/system/notice.js renamed to yudao-admin-ui/src/api/system/notice.js
| 1 | -import request from '@/utils/request' | ||
| 2 | - | ||
| 3 | -// 查询公告列表 | ||
| 4 | -export function listNotice(query) { | ||
| 5 | - return request({ | ||
| 6 | - url: '/system/notice/page', | ||
| 7 | - method: 'get', | ||
| 8 | - params: query | ||
| 9 | - }) | ||
| 10 | -} | ||
| 11 | - | ||
| 12 | -// 查询公告详细 | ||
| 13 | -export function getNotice(noticeId) { | ||
| 14 | - return request({ | ||
| 15 | - url: '/system/notice/get?id=' + noticeId, | ||
| 16 | - method: 'get' | ||
| 17 | - }) | ||
| 18 | -} | ||
| 19 | - | ||
| 20 | -// 新增公告 | ||
| 21 | -export function addNotice(data) { | ||
| 22 | - return request({ | ||
| 23 | - url: '/system/notice/create', | ||
| 24 | - method: 'post', | ||
| 25 | - data: data | ||
| 26 | - }) | ||
| 27 | -} | ||
| 28 | - | ||
| 29 | -// 修改公告 | ||
| 30 | -export function updateNotice(data) { | ||
| 31 | - return request({ | ||
| 32 | - url: '/system/notice/update', | ||
| 33 | - method: 'put', | ||
| 34 | - data: data | ||
| 35 | - }) | ||
| 36 | -} | ||
| 37 | - | ||
| 38 | -// 删除公告 | ||
| 39 | -export function delNotice(noticeId) { | ||
| 40 | - return request({ | ||
| 41 | - url: '/system/notice/delete?id=' + noticeId, | ||
| 42 | - method: 'delete' | ||
| 43 | - }) | ||
| 44 | -} | 1 | +import request from '@/utils/request' |
| 2 | + | ||
| 3 | +// 查询公告列表 | ||
| 4 | +export function listNotice(query) { | ||
| 5 | + return request({ | ||
| 6 | + url: '/system/notice/page', | ||
| 7 | + method: 'get', | ||
| 8 | + params: query | ||
| 9 | + }) | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +// 查询公告详细 | ||
| 13 | +export function getNotice(noticeId) { | ||
| 14 | + return request({ | ||
| 15 | + url: '/system/notice/get?id=' + noticeId, | ||
| 16 | + method: 'get' | ||
| 17 | + }) | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +// 新增公告 | ||
| 21 | +export function addNotice(data) { | ||
| 22 | + return request({ | ||
| 23 | + url: '/system/notice/create', | ||
| 24 | + method: 'post', | ||
| 25 | + data: data | ||
| 26 | + }) | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +// 修改公告 | ||
| 30 | +export function updateNotice(data) { | ||
| 31 | + return request({ | ||
| 32 | + url: '/system/notice/update', | ||
| 33 | + method: 'put', | ||
| 34 | + data: data | ||
| 35 | + }) | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +// 删除公告 | ||
| 39 | +export function delNotice(noticeId) { | ||
| 40 | + return request({ | ||
| 41 | + url: '/system/notice/delete?id=' + noticeId, | ||
| 42 | + method: 'delete' | ||
| 43 | + }) | ||
| 44 | +} |
ruoyi-ui/src/api/system/operatelog.js renamed to yudao-admin-ui/src/api/system/operatelog.js
ruoyi-ui/src/api/system/permission.js renamed to yudao-admin-ui/src/api/system/permission.js
ruoyi-ui/src/api/system/post.js renamed to yudao-admin-ui/src/api/system/post.js
| 1 | -import request from '@/utils/request' | ||
| 2 | - | ||
| 3 | -// 查询岗位列表 | ||
| 4 | -export function listPost(query) { | ||
| 5 | - return request({ | ||
| 6 | - url: '/system/post/page', | ||
| 7 | - method: 'get', | ||
| 8 | - params: query | ||
| 9 | - }) | ||
| 10 | -} | ||
| 11 | - | ||
| 12 | -// 获取岗位精简信息列表 | ||
| 13 | -export function listSimplePosts() { | ||
| 14 | - return request({ | ||
| 15 | - url: '/system/post/list-all-simple', | ||
| 16 | - method: 'get' | ||
| 17 | - }) | ||
| 18 | -} | ||
| 19 | - | ||
| 20 | -// 查询岗位详细 | ||
| 21 | -export function getPost(postId) { | ||
| 22 | - return request({ | ||
| 23 | - url: '/system/post/get?id=' + postId, | ||
| 24 | - method: 'get' | ||
| 25 | - }) | ||
| 26 | -} | ||
| 27 | - | ||
| 28 | -// 新增岗位 | ||
| 29 | -export function addPost(data) { | ||
| 30 | - return request({ | ||
| 31 | - url: '/system/post/create', | ||
| 32 | - method: 'post', | ||
| 33 | - data: data | ||
| 34 | - }) | ||
| 35 | -} | ||
| 36 | - | ||
| 37 | -// 修改岗位 | ||
| 38 | -export function updatePost(data) { | ||
| 39 | - return request({ | ||
| 40 | - url: '/system/post/update', | ||
| 41 | - method: 'put', | ||
| 42 | - data: data | ||
| 43 | - }) | ||
| 44 | -} | ||
| 45 | - | ||
| 46 | -// 删除岗位 | ||
| 47 | -export function delPost(postId) { | ||
| 48 | - return request({ | ||
| 49 | - url: '/system/post/delete?id=' + postId, | ||
| 50 | - method: 'delete' | ||
| 51 | - }) | ||
| 52 | -} | ||
| 53 | - | ||
| 54 | -// 导出岗位 | ||
| 55 | -export function exportPost(query) { | ||
| 56 | - return request({ | ||
| 57 | - url: '/system/post/export', | ||
| 58 | - method: 'get', | ||
| 59 | - params: query, | ||
| 60 | - responseType: 'blob' | ||
| 61 | - }) | ||
| 62 | -} | 1 | +import request from '@/utils/request' |
| 2 | + | ||
| 3 | +// 查询岗位列表 | ||
| 4 | +export function listPost(query) { | ||
| 5 | + return request({ | ||
| 6 | + url: '/system/post/page', | ||
| 7 | + method: 'get', | ||
| 8 | + params: query | ||
| 9 | + }) | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +// 获取岗位精简信息列表 | ||
| 13 | +export function listSimplePosts() { | ||
| 14 | + return request({ | ||
| 15 | + url: '/system/post/list-all-simple', | ||
| 16 | + method: 'get' | ||
| 17 | + }) | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +// 查询岗位详细 | ||
| 21 | +export function getPost(postId) { | ||
| 22 | + return request({ | ||
| 23 | + url: '/system/post/get?id=' + postId, | ||
| 24 | + method: 'get' | ||
| 25 | + }) | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +// 新增岗位 | ||
| 29 | +export function addPost(data) { | ||
| 30 | + return request({ | ||
| 31 | + url: '/system/post/create', | ||
| 32 | + method: 'post', | ||
| 33 | + data: data | ||
| 34 | + }) | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +// 修改岗位 | ||
| 38 | +export function updatePost(data) { | ||
| 39 | + return request({ | ||
| 40 | + url: '/system/post/update', | ||
| 41 | + method: 'put', | ||
| 42 | + data: data | ||
| 43 | + }) | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +// 删除岗位 | ||
| 47 | +export function delPost(postId) { | ||
| 48 | + return request({ | ||
| 49 | + url: '/system/post/delete?id=' + postId, | ||
| 50 | + method: 'delete' | ||
| 51 | + }) | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +// 导出岗位 | ||
| 55 | +export function exportPost(query) { | ||
| 56 | + return request({ | ||
| 57 | + url: '/system/post/export', | ||
| 58 | + method: 'get', | ||
| 59 | + params: query, | ||
| 60 | + responseType: 'blob' | ||
| 61 | + }) | ||
| 62 | +} |
ruoyi-ui/src/api/system/role.js renamed to yudao-admin-ui/src/api/system/role.js
| 1 | -import request from '@/utils/request' | ||
| 2 | - | ||
| 3 | -// 查询角色列表 | ||
| 4 | -export function listRole(query) { | ||
| 5 | - return request({ | ||
| 6 | - url: '/system/role/page', | ||
| 7 | - method: 'get', | ||
| 8 | - params: query | ||
| 9 | - }) | ||
| 10 | -} | ||
| 11 | - | ||
| 12 | -// 查询角色(精简)列表 | ||
| 13 | -export function listSimpleRoles() { | ||
| 14 | - return request({ | ||
| 15 | - url: '/system/role/list-all-simple', | ||
| 16 | - method: 'get' | ||
| 17 | - }) | ||
| 18 | -} | ||
| 19 | - | ||
| 20 | -// 查询角色详细 | ||
| 21 | -export function getRole(roleId) { | ||
| 22 | - return request({ | ||
| 23 | - url: '/system/role/get?id=' + roleId, | ||
| 24 | - method: 'get' | ||
| 25 | - }) | ||
| 26 | -} | ||
| 27 | - | ||
| 28 | -// 新增角色 | ||
| 29 | -export function addRole(data) { | ||
| 30 | - return request({ | ||
| 31 | - url: '/system/role/create', | ||
| 32 | - method: 'post', | ||
| 33 | - data: data | ||
| 34 | - }) | ||
| 35 | -} | ||
| 36 | - | ||
| 37 | -// 修改角色 | ||
| 38 | -export function updateRole(data) { | ||
| 39 | - return request({ | ||
| 40 | - url: '/system/role/update', | ||
| 41 | - method: 'put', | ||
| 42 | - data: data | ||
| 43 | - }) | ||
| 44 | -} | ||
| 45 | - | ||
| 46 | -// 角色状态修改 | ||
| 47 | -export function changeRoleStatus(id, status) { | ||
| 48 | - const data = { | ||
| 49 | - id, | ||
| 50 | - status | ||
| 51 | - } | ||
| 52 | - return request({ | ||
| 53 | - url: '/system/role/update-status', | ||
| 54 | - method: 'put', | ||
| 55 | - data: data | ||
| 56 | - }) | ||
| 57 | -} | ||
| 58 | - | ||
| 59 | -// 删除角色 | ||
| 60 | -export function delRole(roleId) { | ||
| 61 | - return request({ | ||
| 62 | - url: '/system/role/delete?id=' + roleId, | ||
| 63 | - method: 'delete' | ||
| 64 | - }) | ||
| 65 | -} | ||
| 66 | - | ||
| 67 | -// 导出角色 | ||
| 68 | -export function exportRole(query) { | ||
| 69 | - return request({ | ||
| 70 | - url: '/system/role/export', | ||
| 71 | - method: 'get', | ||
| 72 | - params: query, | ||
| 73 | - responseType: 'blob' | ||
| 74 | - }) | ||
| 75 | -} | 1 | +import request from '@/utils/request' |
| 2 | + | ||
| 3 | +// 查询角色列表 | ||
| 4 | +export function listRole(query) { | ||
| 5 | + return request({ | ||
| 6 | + url: '/system/role/page', | ||
| 7 | + method: 'get', | ||
| 8 | + params: query | ||
| 9 | + }) | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +// 查询角色(精简)列表 | ||
| 13 | +export function listSimpleRoles() { | ||
| 14 | + return request({ | ||
| 15 | + url: '/system/role/list-all-simple', | ||
| 16 | + method: 'get' | ||
| 17 | + }) | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +// 查询角色详细 | ||
| 21 | +export function getRole(roleId) { | ||
| 22 | + return request({ | ||
| 23 | + url: '/system/role/get?id=' + roleId, | ||
| 24 | + method: 'get' | ||
| 25 | + }) | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +// 新增角色 | ||
| 29 | +export function addRole(data) { | ||
| 30 | + return request({ | ||
| 31 | + url: '/system/role/create', | ||
| 32 | + method: 'post', | ||
| 33 | + data: data | ||
| 34 | + }) | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +// 修改角色 | ||
| 38 | +export function updateRole(data) { | ||
| 39 | + return request({ | ||
| 40 | + url: '/system/role/update', | ||
| 41 | + method: 'put', | ||
| 42 | + data: data | ||
| 43 | + }) | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +// 角色状态修改 | ||
| 47 | +export function changeRoleStatus(id, status) { | ||
| 48 | + const data = { | ||
| 49 | + id, | ||
| 50 | + status | ||
| 51 | + } | ||
| 52 | + return request({ | ||
| 53 | + url: '/system/role/update-status', | ||
| 54 | + method: 'put', | ||
| 55 | + data: data | ||
| 56 | + }) | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +// 删除角色 | ||
| 60 | +export function delRole(roleId) { | ||
| 61 | + return request({ | ||
| 62 | + url: '/system/role/delete?id=' + roleId, | ||
| 63 | + method: 'delete' | ||
| 64 | + }) | ||
| 65 | +} | ||
| 66 | + | ||
| 67 | +// 导出角色 | ||
| 68 | +export function exportRole(query) { | ||
| 69 | + return request({ | ||
| 70 | + url: '/system/role/export', | ||
| 71 | + method: 'get', | ||
| 72 | + params: query, | ||
| 73 | + responseType: 'blob' | ||
| 74 | + }) | ||
| 75 | +} |
ruoyi-ui/src/api/system/session.js renamed to yudao-admin-ui/src/api/system/session.js
ruoyi-ui/src/api/system/sms/smsChannel.js renamed to yudao-admin-ui/src/api/system/sms/smsChannel.js
ruoyi-ui/src/api/system/sms/smsLog.js renamed to yudao-admin-ui/src/api/system/sms/smsLog.js
ruoyi-ui/src/api/system/sms/smsTemplate.js renamed to yudao-admin-ui/src/api/system/sms/smsTemplate.js
ruoyi-ui/src/api/system/user.js renamed to yudao-admin-ui/src/api/system/user.js
| 1 | -import request from '@/utils/request' | ||
| 2 | -import { praseStrEmpty } from "@/utils/ruoyi"; | ||
| 3 | - | ||
| 4 | -// 查询用户列表 | ||
| 5 | -export function listUser(query) { | ||
| 6 | - return request({ | ||
| 7 | - url: '/system/user/page', | ||
| 8 | - method: 'get', | ||
| 9 | - params: query | ||
| 10 | - }) | ||
| 11 | -} | ||
| 12 | - | ||
| 13 | -// 查询用户详细 | ||
| 14 | -export function getUser(userId) { | ||
| 15 | - return request({ | ||
| 16 | - url: '/system/user/get?id=' + praseStrEmpty(userId), | ||
| 17 | - method: 'get' | ||
| 18 | - }) | ||
| 19 | -} | ||
| 20 | - | ||
| 21 | -// 新增用户 | ||
| 22 | -export function addUser(data) { | ||
| 23 | - return request({ | ||
| 24 | - url: '/system/user/create', | ||
| 25 | - method: 'post', | ||
| 26 | - data: data | ||
| 27 | - }) | ||
| 28 | -} | ||
| 29 | - | ||
| 30 | -// 修改用户 | ||
| 31 | -export function updateUser(data) { | ||
| 32 | - return request({ | ||
| 33 | - url: '/system/user/update', | ||
| 34 | - method: 'put', | ||
| 35 | - data: data | ||
| 36 | - }) | ||
| 37 | -} | ||
| 38 | - | ||
| 39 | -// 删除用户 | ||
| 40 | -export function delUser(userId) { | ||
| 41 | - return request({ | ||
| 42 | - url: '/system/user/delete?id=' + userId, | ||
| 43 | - method: 'delete' | ||
| 44 | - }) | ||
| 45 | -} | ||
| 46 | - | ||
| 47 | -// 导出用户 | ||
| 48 | -export function exportUser(query) { | ||
| 49 | - return request({ | ||
| 50 | - url: '/system/user/export', | ||
| 51 | - method: 'get', | ||
| 52 | - params: query, | ||
| 53 | - responseType: 'blob' | ||
| 54 | - }) | ||
| 55 | -} | ||
| 56 | - | ||
| 57 | -// 用户密码重置 | ||
| 58 | -export function resetUserPwd(id, password) { | ||
| 59 | - const data = { | ||
| 60 | - id, | ||
| 61 | - password | ||
| 62 | - } | ||
| 63 | - return request({ | ||
| 64 | - url: '/system/user/update-password', | ||
| 65 | - method: 'put', | ||
| 66 | - data: data | ||
| 67 | - }) | ||
| 68 | -} | ||
| 69 | - | ||
| 70 | -// 用户状态修改 | ||
| 71 | -export function changeUserStatus(id, status) { | ||
| 72 | - const data = { | ||
| 73 | - id, | ||
| 74 | - status | ||
| 75 | - } | ||
| 76 | - return request({ | ||
| 77 | - url: '/system/user/update-status', | ||
| 78 | - method: 'put', | ||
| 79 | - data: data | ||
| 80 | - }) | ||
| 81 | -} | ||
| 82 | - | ||
| 83 | -// 查询用户个人信息 | ||
| 84 | -export function getUserProfile() { | ||
| 85 | - return request({ | ||
| 86 | - url: '/system/user/profile/get', | ||
| 87 | - method: 'get' | ||
| 88 | - }) | ||
| 89 | -} | ||
| 90 | - | ||
| 91 | -// 修改用户个人信息 | ||
| 92 | -export function updateUserProfile(data) { | ||
| 93 | - return request({ | ||
| 94 | - url: '/system/user/profile/update', | ||
| 95 | - method: 'put', | ||
| 96 | - data: data | ||
| 97 | - }) | ||
| 98 | -} | ||
| 99 | - | ||
| 100 | -// 用户密码重置 | ||
| 101 | -export function updateUserPwd(oldPassword, newPassword) { | ||
| 102 | - const data = { | ||
| 103 | - oldPassword, | ||
| 104 | - newPassword | ||
| 105 | - } | ||
| 106 | - return request({ | ||
| 107 | - url: '/system/user/profile/update-password', | ||
| 108 | - method: 'put', | ||
| 109 | - data: data | ||
| 110 | - }) | ||
| 111 | -} | ||
| 112 | - | ||
| 113 | -// 用户头像上传 | ||
| 114 | -export function uploadAvatar(data) { | ||
| 115 | - return request({ | ||
| 116 | - url: '/system/user/profile/avatar', | ||
| 117 | - method: 'put', | ||
| 118 | - data: data | ||
| 119 | - }) | ||
| 120 | -} | ||
| 121 | - | ||
| 122 | -// 下载用户导入模板 | ||
| 123 | -export function importTemplate() { | ||
| 124 | - return request({ | ||
| 125 | - url: '/system/user/get-import-template', | ||
| 126 | - method: 'get', | ||
| 127 | - responseType: 'blob' | ||
| 128 | - }) | ||
| 129 | -} | 1 | +import request from '@/utils/request' |
| 2 | +import { praseStrEmpty } from "@/utils/ruoyi"; | ||
| 3 | + | ||
| 4 | +// 查询用户列表 | ||
| 5 | +export function listUser(query) { | ||
| 6 | + return request({ | ||
| 7 | + url: '/system/user/page', | ||
| 8 | + method: 'get', | ||
| 9 | + params: query | ||
| 10 | + }) | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +// 查询用户详细 | ||
| 14 | +export function getUser(userId) { | ||
| 15 | + return request({ | ||
| 16 | + url: '/system/user/get?id=' + praseStrEmpty(userId), | ||
| 17 | + method: 'get' | ||
| 18 | + }) | ||
| 19 | +} | ||
| 20 | + | ||
| 21 | +// 新增用户 | ||
| 22 | +export function addUser(data) { | ||
| 23 | + return request({ | ||
| 24 | + url: '/system/user/create', | ||
| 25 | + method: 'post', | ||
| 26 | + data: data | ||
| 27 | + }) | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +// 修改用户 | ||
| 31 | +export function updateUser(data) { | ||
| 32 | + return request({ | ||
| 33 | + url: '/system/user/update', | ||
| 34 | + method: 'put', | ||
| 35 | + data: data | ||
| 36 | + }) | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +// 删除用户 | ||
| 40 | +export function delUser(userId) { | ||
| 41 | + return request({ | ||
| 42 | + url: '/system/user/delete?id=' + userId, | ||
| 43 | + method: 'delete' | ||
| 44 | + }) | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +// 导出用户 | ||
| 48 | +export function exportUser(query) { | ||
| 49 | + return request({ | ||
| 50 | + url: '/system/user/export', | ||
| 51 | + method: 'get', | ||
| 52 | + params: query, | ||
| 53 | + responseType: 'blob' | ||
| 54 | + }) | ||
| 55 | +} | ||
| 56 | + | ||
| 57 | +// 用户密码重置 | ||
| 58 | +export function resetUserPwd(id, password) { | ||
| 59 | + const data = { | ||
| 60 | + id, | ||
| 61 | + password | ||
| 62 | + } | ||
| 63 | + return request({ | ||
| 64 | + url: '/system/user/update-password', | ||
| 65 | + method: 'put', | ||
| 66 | + data: data | ||
| 67 | + }) | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +// 用户状态修改 | ||
| 71 | +export function changeUserStatus(id, status) { | ||
| 72 | + const data = { | ||
| 73 | + id, | ||
| 74 | + status | ||
| 75 | + } | ||
| 76 | + return request({ | ||
| 77 | + url: '/system/user/update-status', | ||
| 78 | + method: 'put', | ||
| 79 | + data: data | ||
| 80 | + }) | ||
| 81 | +} | ||
| 82 | + | ||
| 83 | +// 查询用户个人信息 | ||
| 84 | +export function getUserProfile() { | ||
| 85 | + return request({ | ||
| 86 | + url: '/system/user/profile/get', | ||
| 87 | + method: 'get' | ||
| 88 | + }) | ||
| 89 | +} | ||
| 90 | + | ||
| 91 | +// 修改用户个人信息 | ||
| 92 | +export function updateUserProfile(data) { | ||
| 93 | + return request({ | ||
| 94 | + url: '/system/user/profile/update', | ||
| 95 | + method: 'put', | ||
| 96 | + data: data | ||
| 97 | + }) | ||
| 98 | +} | ||
| 99 | + | ||
| 100 | +// 用户密码重置 | ||
| 101 | +export function updateUserPwd(oldPassword, newPassword) { | ||
| 102 | + const data = { | ||
| 103 | + oldPassword, | ||
| 104 | + newPassword | ||
| 105 | + } | ||
| 106 | + return request({ | ||
| 107 | + url: '/system/user/profile/update-password', | ||
| 108 | + method: 'put', | ||
| 109 | + data: data | ||
| 110 | + }) | ||
| 111 | +} | ||
| 112 | + | ||
| 113 | +// 用户头像上传 | ||
| 114 | +export function uploadAvatar(data) { | ||
| 115 | + return request({ | ||
| 116 | + url: '/system/user/profile/avatar', | ||
| 117 | + method: 'put', | ||
| 118 | + data: data | ||
| 119 | + }) | ||
| 120 | +} | ||
| 121 | + | ||
| 122 | +// 下载用户导入模板 | ||
| 123 | +export function importTemplate() { | ||
| 124 | + return request({ | ||
| 125 | + url: '/system/user/get-import-template', | ||
| 126 | + method: 'get', | ||
| 127 | + responseType: 'blob' | ||
| 128 | + }) | ||
| 129 | +} |
ruoyi-ui/src/api/tool/codegen.js renamed to yudao-admin-ui/src/api/tool/codegen.js
ruoyi-ui/src/api/tool/testDemo.js renamed to yudao-admin-ui/src/api/tool/testDemo.js
ruoyi-ui/src/assets/401_images/401.gif renamed to yudao-admin-ui/src/assets/401_images/401.gif
160 KB
ruoyi-ui/src/assets/404_images/404.png renamed to yudao-admin-ui/src/assets/404_images/404.png
95.8 KB
ruoyi-ui/src/assets/404_images/404_cloud.png renamed to yudao-admin-ui/src/assets/404_images/404_cloud.png
4.65 KB
ruoyi-ui/src/assets/icons/index.js renamed to yudao-admin-ui/src/assets/icons/index.js
| 1 | -import Vue from 'vue' | ||
| 2 | -import SvgIcon from '@/components/SvgIcon'// svg component | ||
| 3 | - | ||
| 4 | -// register globally | ||
| 5 | -Vue.component('svg-icon', SvgIcon) | ||
| 6 | - | ||
| 7 | -const req = require.context('./svg', false, /\.svg$/) | ||
| 8 | -const requireAll = requireContext => requireContext.keys().map(requireContext) | ||
| 9 | -requireAll(req) | 1 | +import Vue from 'vue' |
| 2 | +import SvgIcon from '@/components/SvgIcon'// svg component | ||
| 3 | + | ||
| 4 | +// register globally | ||
| 5 | +Vue.component('svg-icon', SvgIcon) | ||
| 6 | + | ||
| 7 | +const req = require.context('./svg', false, /\.svg$/) | ||
| 8 | +const requireAll = requireContext => requireContext.keys().map(requireContext) | ||
| 9 | +requireAll(req) |
ruoyi-ui/src/assets/icons/svg/404.svg renamed to yudao-admin-ui/src/assets/icons/svg/404.svg
ruoyi-ui/src/assets/icons/svg/bug.svg renamed to yudao-admin-ui/src/assets/icons/svg/bug.svg
ruoyi-ui/src/assets/icons/svg/build.svg renamed to yudao-admin-ui/src/assets/icons/svg/build.svg
ruoyi-ui/src/assets/icons/svg/button.svg renamed to yudao-admin-ui/src/assets/icons/svg/button.svg
ruoyi-ui/src/assets/icons/svg/cascader.svg renamed to yudao-admin-ui/src/assets/icons/svg/cascader.svg
ruoyi-ui/src/assets/icons/svg/chart.svg renamed to yudao-admin-ui/src/assets/icons/svg/chart.svg
ruoyi-ui/src/assets/icons/svg/checkbox.svg renamed to yudao-admin-ui/src/assets/icons/svg/checkbox.svg
ruoyi-ui/src/assets/icons/svg/clipboard.svg renamed to yudao-admin-ui/src/assets/icons/svg/clipboard.svg
ruoyi-ui/src/assets/icons/svg/code.svg renamed to yudao-admin-ui/src/assets/icons/svg/code.svg
ruoyi-ui/src/assets/icons/svg/color.svg renamed to yudao-admin-ui/src/assets/icons/svg/color.svg
ruoyi-ui/src/assets/icons/svg/component.svg renamed to yudao-admin-ui/src/assets/icons/svg/component.svg
ruoyi-ui/src/assets/icons/svg/dashboard.svg renamed to yudao-admin-ui/src/assets/icons/svg/dashboard.svg
ruoyi-ui/src/assets/icons/svg/date-range.svg renamed to yudao-admin-ui/src/assets/icons/svg/date-range.svg
ruoyi-ui/src/assets/icons/svg/date.svg renamed to yudao-admin-ui/src/assets/icons/svg/date.svg
ruoyi-ui/src/assets/icons/svg/dict.svg renamed to yudao-admin-ui/src/assets/icons/svg/dict.svg
ruoyi-ui/src/assets/icons/svg/documentation.svg renamed to yudao-admin-ui/src/assets/icons/svg/documentation.svg
ruoyi-ui/src/assets/icons/svg/download.svg renamed to yudao-admin-ui/src/assets/icons/svg/download.svg
ruoyi-ui/src/assets/icons/svg/drag.svg renamed to yudao-admin-ui/src/assets/icons/svg/drag.svg
ruoyi-ui/src/assets/icons/svg/druid.svg renamed to yudao-admin-ui/src/assets/icons/svg/druid.svg
ruoyi-ui/src/assets/icons/svg/edit.svg renamed to yudao-admin-ui/src/assets/icons/svg/edit.svg
ruoyi-ui/src/assets/icons/svg/education.svg renamed to yudao-admin-ui/src/assets/icons/svg/education.svg
ruoyi-ui/src/assets/icons/svg/email.svg renamed to yudao-admin-ui/src/assets/icons/svg/email.svg