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

View File

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

View File

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

View File

@ -1,31 +1,41 @@
package com.ruoyi.project.data.cases.controller; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 案例Controller
*
* @author lihe
*/
@RestController @RestController
@RequestMapping("/data/cases") @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 { public class OriginalNewHouseCase {
private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
private Integer pageIndex;
private Integer pageSize;
private Integer yearMonth; private Integer yearMonth;
/** /**
* 案例id * 案例id
@ -248,4 +251,20 @@ public class OriginalNewHouseCase {
public void setCaseLabel(String caseLabel) { public void setCaseLabel(String caseLabel) {
this.caseLabel = 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); 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); List<ArtificialResidenceRentBasePrice> selectList(ArtificialResidenceRentBasePrice officeBasePriceUltimate);
/** /**
* 分页总数
*
* @param officeBasePriceUltimate * @param officeBasePriceUltimate
* @return * @return
*/ */
@ -51,6 +53,7 @@ public interface IArtificialResidenceRentPriceService {
/** /**
* 更新 * 更新
*
* @param officeBasePriceUltimate * @param officeBasePriceUltimate
* @return * @return
*/ */

View File

@ -163,4 +163,51 @@
) )
</insert> </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> </mapper>