Commit 17a17653 authored by 纪泽龙's avatar 纪泽龙

Merge branch 'jzl'

parents 15bdbaed ea9c38ec
......@@ -4,236 +4,323 @@
*/
/** 基础通用 **/
.pt5 {
padding-top: 5px;
}
.pr5 {
padding-right: 5px;
}
.pb5 {
padding-bottom: 5px;
}
.mt5 {
margin-top: 5px;
}
.mr5 {
margin-right: 5px;
}
.mb5 {
margin-bottom: 5px;
}
.mb8 {
margin-bottom: 8px;
}
.ml5 {
margin-left: 5px;
}
.mt10 {
margin-top: 10px;
}
.mr10 {
margin-right: 10px;
}
.mb10 {
margin-bottom: 10px;
}
.ml0 {
margin-left: 10px;
}
.mt20 {
margin-top: 20px;
}
.mr20 {
margin-right: 20px;
}
.mb20 {
margin-bottom: 20px;
}
.m20 {
margin-left: 20px;
}
.el-dialog:not(.is-fullscreen){
margin-top: 6vh !important;
}
.el-table {
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
th {
word-break: break-word;
background-color: #f8f8f9;
color: #515a6e;
height: 40px;
font-size: 13px;
}
}
.el-table__body-wrapper {
.el-button [class*="el-icon-"] + span {
margin-left: 1px;
}
.pt5 {
padding-top: 5px;
}
.pr5 {
padding-right: 5px;
}
.pb5 {
padding-bottom: 5px;
}
.mt5 {
margin-top: 5px;
}
.mr5 {
margin-right: 5px;
}
.mb5 {
margin-bottom: 5px;
}
.mb8 {
margin-bottom: 8px;
}
.ml5 {
margin-left: 5px;
}
.mt10 {
margin-top: 10px;
}
.mr10 {
margin-right: 10px;
}
.mb10 {
margin-bottom: 10px;
}
.ml0 {
margin-left: 10px;
}
.mt20 {
margin-top: 20px;
}
.mr20 {
margin-right: 20px;
}
.mb20 {
margin-bottom: 20px;
}
.m20 {
margin-left: 20px;
}
.el-dialog:not(.is-fullscreen) {
margin-top: 6vh !important;
}
.el-table {
.el-table__header-wrapper,
.el-table__fixed-header-wrapper {
th {
word-break: break-word;
background-color: #f8f8f9;
color: #515a6e;
height: 40px;
font-size: 13px;
}
}
.el-table__body-wrapper {
.el-button [class*="el-icon-"]+span {
margin-left: 1px;
}
}
}
/** 表单布局 **/
.form-header {
font-size: 15px;
color: #6379bb;
border-bottom: 1px solid #ddd;
margin: 8px 10px 25px 10px;
padding-bottom: 5px
}
/** 表格布局 **/
.pagination-container {
position: relative;
height: 25px;
margin-bottom: 10px;
margin-top: 15px;
padding: 10px 20px !important;
}
/* tree border */
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #FFFFFF none;
border-radius: 4px;
}
.pagination-container .el-pagination {
right: 0;
position: absolute;
}
.el-table .fixed-width .el-button--mini {
padding-left: 0;
padding-right: 0;
width: inherit;
}
.el-tree-node__content>.el-checkbox {
margin-right: 8px;
}
.list-group-striped>.list-group-item {
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0;
}
.list-group {
padding-left: 0px;
list-style: none;
}
.list-group-item {
border-bottom: 1px solid #e7eaec;
border-top: 1px solid #e7eaec;
margin-bottom: -1px;
padding: 11px 0px;
font-size: 13px;
}
.pull-right {
float: right !important;
}
.el-card__header {
padding: 14px 15px 7px;
min-height: 40px;
}
.el-card__body {
padding: 15px 20px 20px 20px;
}
.card-box {
padding-right: 15px;
padding-left: 15px;
margin-bottom: 10px;
}
/* button color */
.el-button--cyan.is-active,
.el-button--cyan:active {
background: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
.el-button--cyan:focus,
.el-button--cyan:hover {
background: #48D1CC;
border-color: #48D1CC;
color: #FFFFFF;
}
.el-button--cyan {
background-color: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
/* text color */
.text-navy {
color: #1ab394;
}
.text-primary {
color: inherit;
}
.text-success {
color: #1c84c6;
}
.text-info {
color: #23c6c8;
}
.text-warning {
color: #f8ac59;
}
.text-danger {
color: #ed5565;
}
.text-muted {
color: #888888;
}
/* image */
.img-circle {
border-radius: 50%;
}
.img-lg {
width: 120px;
height: 120px;
}
.avatar-upload-preview {
position: absolute;
top: 50%;
transform: translate(50%, -50%);
width: 200px;
height: 200px;
border-radius: 50%;
box-shadow: 0 0 4px #ccc;
overflow: hidden;
}
/* 拖拽列样式 */
.sortable-ghost {
opacity: .8;
color: #fff !important;
background: #42b983 !important;
}
.top-right-btn {
position: relative;
float: right;
}
// dialog
.el-dialog {
padding: 0 20px !important;
border-radius: 25px;
}
.el-dialog__headerbtn {
right: 0 !important;
}
.el-dialog__header {
border: 1px solid rgba(222, 222, 222, 0.53);
position: relative;
padding: 15px 0 10px !important;
// &:before {
// content: "";
// width: 16px;
// height: 3px;
// position: absolute;
// background-color: $--color-primary;
// left: 0;
// bottom: -2px;
// }
// &:after {
// content: "";
// width: 16px;
// height: 3px;
// position: absolute;
// background-color: $--color-primary;
// right: 0;
// bottom: -2px;
// }
.el-dialog__title {
font-size: 16px;
color: #333333;
}
}
.el-dialog__body {
padding: 30px 0 !important;
}
.el-table {
& tr:nth-child(2n) {
background: rgba(249, 249, 249, 0.8);
}
&::before{
content: "";
position: absolute;
background-color: #e6ebf5;
z-index: 1;
display: none;
}
}
/** 表单布局 **/
.form-header {
font-size:15px;
color:#6379bb;
border-bottom:1px solid #ddd;
margin:8px 10px 25px 10px;
padding-bottom:5px
}
/** 表格布局 **/
.pagination-container {
position: relative;
height: 25px;
margin-bottom: 10px;
margin-top: 15px;
padding: 10px 20px !important;
}
/* tree border */
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #FFFFFF none;
border-radius:4px;
}
.pagination-container .el-pagination {
right: 0;
position: absolute;
}
.el-table .fixed-width .el-button--mini {
padding-left: 0;
padding-right: 0;
width: inherit;
}
.el-tree-node__content > .el-checkbox {
margin-right: 8px;
}
.list-group-striped > .list-group-item {
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0;
}
.list-group {
padding-left: 0px;
list-style: none;
}
.list-group-item {
border-bottom: 1px solid #e7eaec;
border-top: 1px solid #e7eaec;
margin-bottom: -1px;
padding: 11px 0px;
font-size: 13px;
}
.pull-right {
float: right !important;
}
.el-card__header {
padding: 14px 15px 7px;
min-height: 40px;
}
.el-card__body {
padding: 15px 20px 20px 20px;
}
.card-box {
padding-right: 15px;
padding-left: 15px;
margin-bottom: 10px;
}
/* button color */
.el-button--cyan.is-active,
.el-button--cyan:active {
background: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
.el-button--cyan:focus,
.el-button--cyan:hover {
background: #48D1CC;
border-color: #48D1CC;
color: #FFFFFF;
}
.el-button--cyan {
background-color: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
/* text color */
.text-navy {
color: #1ab394;
}
.text-primary {
color: inherit;
}
.text-success {
color: #1c84c6;
}
.text-info {
color: #23c6c8;
}
.text-warning {
color: #f8ac59;
}
.text-danger {
color: #ed5565;
}
.text-muted {
color: #888888;
}
/* image */
.img-circle {
border-radius: 50%;
}
.img-lg {
width: 120px;
height: 120px;
}
.avatar-upload-preview {
position: absolute;
top: 50%;
transform: translate(50%, -50%);
width: 200px;
height: 200px;
border-radius: 50%;
box-shadow: 0 0 4px #ccc;
overflow: hidden;
}
/* 拖拽列样式 */
.sortable-ghost{
opacity: .8;
color: #fff!important;
background: #42b983!important;
}
.top-right-btn {
position: relative;
float: right;
}
}
.el-table th.el-table__cell.is-leaf,
.el-table td.el-table__cell {
border: none;
}
.flex{
display: flex;
}
\ No newline at end of file
<template>
<div :class="{'hidden':hidden}" class="pagination-container">
<el-pagination
:background="background"
:current-page.sync="currentPage"
:page-size.sync="pageSize"
:layout="layout"
:page-sizes="pageSizes"
:total="total"
v-bind="$attrs"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<div :class="{ hidden: hidden }" class="pagination-container flex">
<div class="flex">
<div
class="myBtn"
:class="{ active: active===index }"
v-for="item,index in pageSizes"
:key="item"
@click="handleSizeChange(index)"
>
{{ item }}
</div>
</div>
<div>
<el-pagination
:background="background"
:current-page.sync="currentPage"
:page-size.sync="pageSize"
:layout="layout"
:page-sizes="pageSizes"
:total="total"
v-bind="$attrs"
@current-change="handleCurrentChange"
/>
<!-- @size-change="handleSizeChange" -->
</div>
</div>
</template>
<script>
import { scrollTo } from '@/utils/scroll-to'
import { scrollTo } from "@/utils/scroll-to";
export default {
name: 'Pagination',
name: "Pagination",
props: {
total: {
required: true,
type: Number
type: Number,
},
page: {
type: Number,
default: 1
default: 1,
},
limit: {
type: Number,
default: 20
default: 20,
},
pageSizes: {
type: Array,
default() {
return [10, 20, 30, 50]
}
return [10, 20, 30, 50];
},
},
layout: {
type: String,
default: 'total, sizes, prev, pager, next, jumper'
// default: 'total, sizes, prev, pager, next, jumper'
default: "prev, pager, next",
},
background: {
type: Boolean,
default: true
default: false,
},
autoScroll: {
type: Boolean,
default: true
default: true,
},
hidden: {
type: Boolean,
default: false
}
default: false,
},
},
data() {
return {active:0};
},
computed: {
currentPage: {
get() {
return this.page
return this.page;
},
set(val) {
this.$emit('update:page', val)
}
this.$emit("update:page", val);
},
},
pageSize: {
get() {
return this.limit
return this.limit;
},
set(val) {
this.$emit('update:limit', val)
}
}
this.$emit("update:limit", val);
},
},
},
methods: {
handleSizeChange(val) {
this.$emit('pagination', { page: this.currentPage, limit: val })
this.active =val;
this.$emit("pagination", { page: this.currentPage, limit: this.pageSizes[val] });
if (this.autoScroll) {
scrollTo(0, 800)
scrollTo(0, 800);
}
},
handleCurrentChange(val) {
this.$emit('pagination', { page: val, limit: this.pageSize })
this.$emit("pagination", { page: val, limit: this.pageSizes[active] });
if (this.autoScroll) {
scrollTo(0, 800)
scrollTo(0, 800);
}
}
}
}
},
},
};
</script>
<style scoped>
<style lang="scss" scoped>
.pagination-container {
background: #fff;
padding: 32px 16px;
padding: 10px 0px !important;
justify-content: space-between;
}
.pagination-container.hidden {
display: none;
}
.myBtn {
width: 42px;
height: 29px;
border-radius: 8px;
color: #727a84;
text-align: center;
line-height: 29px;
font-size: 14px;
margin-right: 10px;
cursor: pointer;
&:hover{
background: rgba(0, 122, 255,.5)
}
&.active {
background: #007aff;
color:#fff
}
}
</style>
<template>
<div>
<el-table v-loading="loading" :data="projectList">
<el-table-column label="交易项目" align="center" prop="relationTransactionProjectId" :formatter="transactionProjectName" :show-overflow-tooltip="true"/>
<el-table-column label="交易状态" align="center" prop="tradeStatus" :formatter="getTradeStatus" :show-overflow-tooltip="true"/>
<el-table-column label="申请人" align="center" prop="applyName" />
<el-table-column label="卖方" align="center" prop="applyDeptName" :show-overflow-tooltip="true"/>
<el-table-column label="申报总价" align="center" prop="tradeTotal" />
<el-table-column label="买方" align="center" prop="tradeDeptName" :show-overflow-tooltip="true"/>
<el-table-column label="买方经办人" align="center" prop="tradeTransactorName" :show-overflow-tooltip="true"/>
<el-table-column label="交易评分" align="center" prop="tradeScore" />
<el-table-column label="交易成交价" align="center" prop="dealPrice" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-if="scope.row.tradeStatus=='0' || scope.row.tradeStatus=='4'"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:project:edit']"
>修改</el-button>
<el-button
v-if="scope.row.tradeStatus=='0' || scope.row.tradeStatus=='4'"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:project:remove']"
>删除</el-button>
<OperatorButton v-for="item in scope.row.operators"
:operatorName="item"
:tradeInfo="scope.row"
@getList="getList"/>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
<div>
<el-table v-loading="loading" :data="projectList">
<el-table-column
label="交易项目"
align="center"
prop="relationTransactionProjectId"
:formatter="transactionProjectName"
:show-overflow-tooltip="true"
/>
</div>
<el-table-column
label="交易状态"
align="center"
prop="tradeStatus"
:formatter="getTradeStatus"
:show-overflow-tooltip="true"
/>
<el-table-column label="申请人" align="center" prop="applyName" />
<el-table-column
label="卖方"
align="center"
prop="applyDeptName"
:show-overflow-tooltip="true"
/>
<el-table-column label="申报总价" align="center" prop="tradeTotal" />
<el-table-column
label="买方"
align="center"
prop="tradeDeptName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="买方经办人"
align="center"
prop="tradeTransactorName"
:show-overflow-tooltip="true"
/>
<el-table-column label="交易评分" align="center" prop="tradeScore" />
<el-table-column label="交易成交价" align="center" prop="dealPrice" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
v-if="scope.row.tradeStatus == '0' || scope.row.tradeStatus == '4'"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:project:edit']"
>修改</el-button
>
<el-button
v-if="scope.row.tradeStatus == '0' || scope.row.tradeStatus == '4'"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:project:remove']"
>删除</el-button
>
<OperatorButton
v-for="item in scope.row.operators"
:key="item"
:operatorName="item"
:tradeInfo="scope.row"
@getList="getList"
/>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import OperatorButton from "./OperatorButton";
export default {
name: "table-list",
props:{
projectList:{
type: Array
},
queryParams:{
type: Object
},
total:{
type: Number
},
loading:{
type: Boolean
}
import OperatorButton from "./OperatorButton";
export default {
name: "table-list",
props: {
projectList: {
type: Array,
},
queryParams: {
type: Object,
},
total: {
type: Number,
},
components:{
OperatorButton
loading: {
type: Boolean,
},
methods:{
getList(){
this.$emit("getList");
},
//获取项目名称
transactionProjectName(row){
let project = this.$parent.$parent.transactionProjects.find(item => item.transactionProjectId == row.relationTransactionProjectId);
if(project){
return project.transactionProjectName;
}
return "-";
},
//获取交易状态
getTradeStatus(row){
return this.selectDictLabel(this.$parent.$parent.transactionProjectStatus, row.tradeStatus);
},
handleUpdate(row){
this.$parent.$parent.handleUpdate(row);
},
handleDelete(row){
this.$parent.$parent.handleDelete(row);
},
components: {
OperatorButton,
},
methods: {
getList(value) {
console.log(value);
this.$emit("getList", value);
},
//获取项目名称
transactionProjectName(row) {
let project = this.$parent.$parent.transactionProjects.find(
(item) => item.transactionProjectId == row.relationTransactionProjectId
);
if (project) {
return project.transactionProjectName;
}
}
}
return "-";
},
//获取交易状态
getTradeStatus(row) {
return this.selectDictLabel(
this.$parent.$parent.transactionProjectStatus,
row.tradeStatus
);
},
handleUpdate(row) {
this.$parent.$parent.handleUpdate(row);
},
handleDelete(row) {
this.$parent.$parent.handleDelete(row);
},
},
};
</script>
<style scoped>
</style>
<style scoped></style>
......@@ -34,7 +34,7 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://localhost:8668/precisionEffect`,
target: `http://192.168.1.5:8668/precisionEffect`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment