feature (调整前端文案):

This commit is contained in:
purple 2020-07-10 18:22:39 +08:00
parent 4d4d36ddef
commit 462207c613
10 changed files with 454 additions and 292 deletions

View File

@ -1,187 +1,187 @@
<template>
<div class="navbar">
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
<div class="right-menu">
<template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" />
<el-tooltip content="源码地址" effect="dark" placement="bottom">
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
</el-tooltip>
<el-tooltip content="文档地址" effect="dark" placement="bottom">
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
</el-tooltip>
<screenfull id="screenfull" class="right-menu-item hover-effect" />
<el-tooltip content="布局大小" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip>
</template>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
<img :src="avatar" class="user-avatar">
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown">
<router-link to="/user/profile">
<el-dropdown-item>个人中心</el-dropdown-item>
</router-link>
<el-dropdown-item @click.native="setting = true">
<span>布局设置</span>
</el-dropdown-item>
<el-dropdown-item divided @click.native="logout">
<span>退出登录</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
import RuoYiGit from '@/components/RuoYi/Git'
import RuoYiDoc from '@/components/RuoYi/Doc'
export default {
components: {
Breadcrumb,
Hamburger,
Screenfull,
SizeSelect,
Search,
RuoYiGit,
RuoYiDoc
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'device'
]),
setting: {
get() {
return this.$store.state.settings.showSettings
},
set(val) {
this.$store.dispatch('settings/changeSetting', {
key: 'showSettings',
value: val
})
}
}
},
methods: {
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
},
async logout() {
this.$confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.reload()
})
})
}
}
}
</script>
<style lang="scss" scoped>
.navbar {
height: 50px;
overflow: hidden;
position: relative;
background: #fff;
box-shadow: 0 1px 4px rgba(0,21,41,.08);
.hamburger-container {
line-height: 46px;
height: 100%;
float: left;
cursor: pointer;
transition: background .3s;
-webkit-tap-highlight-color:transparent;
&:hover {
background: rgba(0, 0, 0, .025)
}
}
.breadcrumb-container {
float: left;
}
.errLog-container {
display: inline-block;
vertical-align: top;
}
.right-menu {
float: right;
height: 100%;
line-height: 50px;
&:focus {
outline: none;
}
.right-menu-item {
display: inline-block;
padding: 0 8px;
height: 100%;
font-size: 18px;
color: #5a5e66;
vertical-align: text-bottom;
&.hover-effect {
cursor: pointer;
transition: background .3s;
&:hover {
background: rgba(0, 0, 0, .025)
}
}
}
.avatar-container {
margin-right: 30px;
.avatar-wrapper {
margin-top: 5px;
position: relative;
.user-avatar {
cursor: pointer;
width: 40px;
height: 40px;
border-radius: 10px;
}
.el-icon-caret-bottom {
cursor: pointer;
position: absolute;
right: -20px;
top: 25px;
font-size: 12px;
}
}
}
}
}
</style>
<template>
<div class="navbar">
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
<div class="right-menu">
<template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" />
<!-- <el-tooltip content="源码地址" effect="dark" placement="bottom">
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
</el-tooltip>
<el-tooltip content="文档地址" effect="dark" placement="bottom">
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
</el-tooltip> -->
<screenfull id="screenfull" class="right-menu-item hover-effect" />
<el-tooltip content="布局大小" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip>
</template>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
<img :src="avatar" class="user-avatar">
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown">
<router-link to="/user/profile">
<el-dropdown-item>个人中心</el-dropdown-item>
</router-link>
<el-dropdown-item @click.native="setting = true">
<span>布局设置</span>
</el-dropdown-item>
<el-dropdown-item divided @click.native="logout">
<span>退出登录</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
// import RuoYiGit from '@/components/RuoYi/Git'
// import RuoYiDoc from '@/components/RuoYi/Doc'
export default {
components: {
Breadcrumb,
Hamburger,
Screenfull,
SizeSelect,
Search,
// RuoYiGit,
// RuoYiDoc
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'device'
]),
setting: {
get() {
return this.$store.state.settings.showSettings
},
set(val) {
this.$store.dispatch('settings/changeSetting', {
key: 'showSettings',
value: val
})
}
}
},
methods: {
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
},
async logout() {
this.$confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.reload()
})
})
}
}
}
</script>
<style lang="scss" scoped>
.navbar {
height: 50px;
overflow: hidden;
position: relative;
background: #fff;
box-shadow: 0 1px 4px rgba(0,21,41,.08);
.hamburger-container {
line-height: 46px;
height: 100%;
float: left;
cursor: pointer;
transition: background .3s;
-webkit-tap-highlight-color:transparent;
&:hover {
background: rgba(0, 0, 0, .025)
}
}
.breadcrumb-container {
float: left;
}
.errLog-container {
display: inline-block;
vertical-align: top;
}
.right-menu {
float: right;
height: 100%;
line-height: 50px;
&:focus {
outline: none;
}
.right-menu-item {
display: inline-block;
padding: 0 8px;
height: 100%;
font-size: 18px;
color: #5a5e66;
vertical-align: text-bottom;
&.hover-effect {
cursor: pointer;
transition: background .3s;
&:hover {
background: rgba(0, 0, 0, .025)
}
}
}
.avatar-container {
margin-right: 30px;
.avatar-wrapper {
margin-top: 5px;
position: relative;
.user-avatar {
cursor: pointer;
width: 40px;
height: 40px;
border-radius: 10px;
}
.el-icon-caret-bottom {
cursor: pointer;
position: absolute;
right: -20px;
top: 25px;
font-size: 12px;
}
}
}
}
}
</style>

View File

@ -1,84 +1,84 @@
<template>
<div class="sidebar-logo-container" :class="{'collapse':collapse}">
<transition name="sidebarLogoFade">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo">
<h1 v-else class="sidebar-title">{{ title }} </h1>
</router-link>
<router-link v-else key="expand" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo">
<h1 class="sidebar-title">{{ title }} </h1>
</router-link>
</transition>
</div>
</template>
<script>
import logoImg from '@/assets/logo/logo.png'
export default {
name: 'SidebarLogo',
props: {
collapse: {
type: Boolean,
required: true
}
},
data() {
return {
title: '若依管理系统',
logo: logoImg
}
}
}
</script>
<style lang="scss" scoped>
.sidebarLogoFade-enter-active {
transition: opacity 1.5s;
}
.sidebarLogoFade-enter,
.sidebarLogoFade-leave-to {
opacity: 0;
}
.sidebar-logo-container {
position: relative;
width: 100%;
height: 50px;
line-height: 50px;
background: #2b2f3a;
text-align: center;
overflow: hidden;
& .sidebar-logo-link {
height: 100%;
width: 100%;
& .sidebar-logo {
width: 32px;
height: 32px;
vertical-align: middle;
margin-right: 12px;
}
& .sidebar-title {
display: inline-block;
margin: 0;
color: #fff;
font-weight: 600;
line-height: 50px;
font-size: 14px;
font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
vertical-align: middle;
}
}
&.collapse {
.sidebar-logo {
margin-right: 0px;
}
}
}
</style>
<template>
<div class="sidebar-logo-container" :class="{'collapse':collapse}">
<transition name="sidebarLogoFade">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo">
<h1 v-else class="sidebar-title">{{ title }} </h1>
</router-link>
<router-link v-else key="expand" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo">
<h1 class="sidebar-title">{{ title }} </h1>
</router-link>
</transition>
</div>
</template>
<script>
import logoImg from '@/assets/logo/logo.png'
export default {
name: 'SidebarLogo',
props: {
collapse: {
type: Boolean,
required: true
}
},
data() {
return {
title: '联城作价系统',
logo: logoImg
}
}
}
</script>
<style lang="scss" scoped>
.sidebarLogoFade-enter-active {
transition: opacity 1.5s;
}
.sidebarLogoFade-enter,
.sidebarLogoFade-leave-to {
opacity: 0;
}
.sidebar-logo-container {
position: relative;
width: 100%;
height: 50px;
line-height: 50px;
background: #2b2f3a;
text-align: center;
overflow: hidden;
& .sidebar-logo-link {
height: 100%;
width: 100%;
& .sidebar-logo {
width: 32px;
height: 32px;
vertical-align: middle;
margin-right: 12px;
}
& .sidebar-title {
display: inline-block;
margin: 0;
color: #fff;
font-weight: 600;
line-height: 50px;
font-size: 14px;
font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
vertical-align: middle;
}
}
&.collapse {
.sidebar-logo {
margin-right: 0px;
}
}
}
</style>

View File

@ -65,8 +65,8 @@ export default {
codeUrl: "",
cookiePassword: "",
loginForm: {
username: "admin",
password: "admin123",
username: "",
password: "",
rememberMe: false,
code: "",
uuid: ""

View File

@ -1,31 +1,41 @@
package com.ruoyi.project.data.cases.controller;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.page.TableDataInfo;
import com.ruoyi.framework.web.page.TableSupport;
import com.ruoyi.project.data.cases.domain.OriginalNewHouseCase;
import com.ruoyi.project.data.cases.service.IOriginalNewHouseCaseService;
import com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 案例Controller
*
* @author lihe
*/
@RestController
@RequestMapping("/data/cases")
public class CasesController {
public class CasesController extends BaseController {
@Autowired
private IOriginalNewHouseCaseService originalNewHouseCaseService;
/**
* 原始办公挂牌案例
* 一手房成交案例
*/
public void originalOfficeOpeningCase() {
@PreAuthorize("@ss.hasPermi('cases:newHouse:list')")
@GetMapping("/newHouse/list")
public TableDataInfo list(OriginalNewHouseCase originalNewHouseCase) {
int total = originalNewHouseCaseService.selectCount(originalNewHouseCase);
List<OriginalNewHouseCase> list =
originalNewHouseCaseService.selectList(originalNewHouseCase);
return getDataTable(list, total);
}
/**
* 原始住宅销售挂牌案例
*/
public void originalResidenceSalesOpeningCase(){
}
/**
* 原始住宅销售挂牌案例
*/
public void originalResidenceSalesClosingCase(){
}
}

View File

@ -14,6 +14,9 @@ import java.util.Date;
*/
public class OriginalNewHouseCase {
private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
private Integer pageIndex;
private Integer pageSize;
private Integer yearMonth;
/**
* 案例id
@ -248,4 +251,20 @@ public class OriginalNewHouseCase {
public void setCaseLabel(String caseLabel) {
this.caseLabel = caseLabel;
}
public Integer getPageIndex() {
return pageIndex;
}
public void setPageIndex(Integer pageIndex) {
this.pageIndex = pageIndex;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
}

View File

@ -47,5 +47,21 @@ public interface OriginalNewHouseCaseMapper {
*/
int insertSecondTable(OriginalNewHouseCase originalNewHouseCase);
/**
* 分页总数
*
* @param originalNewHouseCase
* @return
*/
int pageCount(OriginalNewHouseCase originalNewHouseCase);
/**
* 分页列表
*
* @param originalNewHouseCase
* @return
*/
List<OriginalNewHouseCase> pageList(OriginalNewHouseCase originalNewHouseCase);
}

View File

@ -0,0 +1,29 @@
package com.ruoyi.project.data.cases.service;
import com.ruoyi.project.data.cases.domain.OriginalNewHouseCase;
import com.ruoyi.project.data.price.domain.ArtificialResidenceRentBasePrice;
import java.util.List;
/**
* 一手房成交案例Service
*
* @author lihe
*/
public interface IOriginalNewHouseCaseService {
/**
* @param originalNewHouseCase
* @return
*/
List<OriginalNewHouseCase> selectList(OriginalNewHouseCase originalNewHouseCase);
/**
* 分页总数
*
* @param originalNewHouseCase
* @return
*/
int selectCount(OriginalNewHouseCase originalNewHouseCase);
}

View File

@ -0,0 +1,38 @@
package com.ruoyi.project.data.cases.service.impl;
import com.ruoyi.common.constant.LabelConstants;
import com.ruoyi.project.data.cases.domain.OriginalNewHouseCase;
import com.ruoyi.project.data.cases.mapper.OriginalNewHouseCaseMapper;
import com.ruoyi.project.data.cases.mapper.sync.DownloadOriginalNewHouseCaseMapper;
import com.ruoyi.project.data.cases.service.IOriginalNewHouseCaseService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* 一手房成交案例Service
*
* @author lihe
*/
@Service
public class OriginalNewHouseCaseServiceImpl implements IOriginalNewHouseCaseService {
@Autowired
private OriginalNewHouseCaseMapper originalNewHouseCaseMapper;
@Override
public List<OriginalNewHouseCase> selectList(OriginalNewHouseCase originalNewHouseCase) {
return originalNewHouseCaseMapper.pageList(originalNewHouseCase);
}
@Override
public int selectCount(OriginalNewHouseCase originalNewHouseCase) {
return originalNewHouseCaseMapper.pageCount(originalNewHouseCase);
}
}

View File

@ -32,6 +32,8 @@ public interface IArtificialResidenceRentPriceService {
List<ArtificialResidenceRentBasePrice> selectList(ArtificialResidenceRentBasePrice officeBasePriceUltimate);
/**
* 分页总数
*
* @param officeBasePriceUltimate
* @return
*/
@ -51,6 +53,7 @@ public interface IArtificialResidenceRentPriceService {
/**
* 更新
*
* @param officeBasePriceUltimate
* @return
*/

View File

@ -163,4 +163,51 @@
)
</insert>
<select id="pageCount" parameterType="com.ruoyi.project.data.cases.domain.OriginalNewHouseCase">
SELECT case_county as caseCounty
,case_block as caseBlock
,case_loop as caseLoop
,case_community_name as caseCommunityName
,case_address as caseAddress
,case_area as caseArea
,case_unit_price as caseUnitPrice
,case_total_price as caseTotalPrice
,case_house_type as caseHouseType
,case_signing_date as caseSigningDate
,case_floor as caseFloor
,case_house_property as caseHouseProperty
,case_apartment_layout as caseApartmentLayout
,compute_unit_price as computeUnitPrice
,compute_total_price as computeTotalPrice
,reference_unit_price as referenceUnitPrice
,reference_total_price as referenceTotalPrice
,case_label as caseLabel
,create_time
, ${yearMonth} as yearMonth
FROM dbo.original_new_house_case_${yearMonth}
</select>
<select id="pageList" resultType="com.ruoyi.project.data.cases.domain.OriginalNewHouseCase">
SELECT case_county as caseCounty
,case_block as caseBlock
,case_loop as caseLoop
,case_community_name as caseCommunityName
,case_address as caseAddress
,case_area as caseArea
,case_unit_price as caseUnitPrice
,case_total_price as caseTotalPrice
,case_house_type as caseHouseType
,case_signing_date as caseSigningDate
,case_floor as caseFloor
,case_house_property as caseHouseProperty
,case_apartment_layout as caseApartmentLayout
,compute_unit_price as computeUnitPrice
,compute_total_price as computeTotalPrice
,reference_unit_price as referenceUnitPrice
,reference_total_price as referenceTotalPrice
,case_label as caseLabel
,create_time
, ${yearMonth} as yearMonth
FROM dbo.original_new_house_case_${yearMonth}
order by case_id ASC OFFSET #{pageIndex} rows fetch next #{pageSize} rows only
</select>
</mapper>