Commit ea9c38ec authored by 纪泽龙's avatar 纪泽龙

新分支

parent aeea6d6b
...@@ -4,61 +4,78 @@ ...@@ -4,61 +4,78 @@
*/ */
/** 基础通用 **/ /** 基础通用 **/
.pt5 { .pt5 {
padding-top: 5px; padding-top: 5px;
} }
.pr5 {
.pr5 {
padding-right: 5px; padding-right: 5px;
} }
.pb5 {
.pb5 {
padding-bottom: 5px; padding-bottom: 5px;
} }
.mt5 {
.mt5 {
margin-top: 5px; margin-top: 5px;
} }
.mr5 {
.mr5 {
margin-right: 5px; margin-right: 5px;
} }
.mb5 {
.mb5 {
margin-bottom: 5px; margin-bottom: 5px;
} }
.mb8 {
.mb8 {
margin-bottom: 8px; margin-bottom: 8px;
} }
.ml5 {
.ml5 {
margin-left: 5px; margin-left: 5px;
} }
.mt10 {
.mt10 {
margin-top: 10px; margin-top: 10px;
} }
.mr10 {
.mr10 {
margin-right: 10px; margin-right: 10px;
} }
.mb10 {
.mb10 {
margin-bottom: 10px; margin-bottom: 10px;
} }
.ml0 {
.ml0 {
margin-left: 10px; margin-left: 10px;
} }
.mt20 {
.mt20 {
margin-top: 20px; margin-top: 20px;
} }
.mr20 {
.mr20 {
margin-right: 20px; margin-right: 20px;
} }
.mb20 {
.mb20 {
margin-bottom: 20px; margin-bottom: 20px;
} }
.m20 {
.m20 {
margin-left: 20px; margin-left: 20px;
} }
.el-dialog:not(.is-fullscreen){ .el-dialog:not(.is-fullscreen) {
margin-top: 6vh !important; margin-top: 6vh !important;
} }
.el-table {
.el-table { .el-table__header-wrapper,
.el-table__header-wrapper, .el-table__fixed-header-wrapper { .el-table__fixed-header-wrapper {
th { th {
word-break: break-word; word-break: break-word;
background-color: #f8f8f9; background-color: #f8f8f9;
...@@ -67,155 +84,156 @@ ...@@ -67,155 +84,156 @@
font-size: 13px; font-size: 13px;
} }
} }
.el-table__body-wrapper { .el-table__body-wrapper {
.el-button [class*="el-icon-"] + span { .el-button [class*="el-icon-"]+span {
margin-left: 1px; margin-left: 1px;
} }
} }
} }
/** 表单布局 **/ /** 表单布局 **/
.form-header { .form-header {
font-size:15px; font-size: 15px;
color:#6379bb; color: #6379bb;
border-bottom:1px solid #ddd; border-bottom: 1px solid #ddd;
margin:8px 10px 25px 10px; margin: 8px 10px 25px 10px;
padding-bottom:5px padding-bottom: 5px
} }
/** 表格布局 **/ /** 表格布局 **/
.pagination-container { .pagination-container {
position: relative; position: relative;
height: 25px; height: 25px;
margin-bottom: 10px; margin-bottom: 10px;
margin-top: 15px; margin-top: 15px;
padding: 10px 20px !important; padding: 10px 20px !important;
} }
/* tree border */ /* tree border */
.tree-border { .tree-border {
margin-top: 5px; margin-top: 5px;
border: 1px solid #e5e6e7; border: 1px solid #e5e6e7;
background: #FFFFFF none; background: #FFFFFF none;
border-radius:4px; border-radius: 4px;
} }
.pagination-container .el-pagination { .pagination-container .el-pagination {
right: 0; right: 0;
position: absolute; position: absolute;
} }
.el-table .fixed-width .el-button--mini { .el-table .fixed-width .el-button--mini {
padding-left: 0; padding-left: 0;
padding-right: 0; padding-right: 0;
width: inherit; width: inherit;
} }
.el-tree-node__content > .el-checkbox { .el-tree-node__content>.el-checkbox {
margin-right: 8px; margin-right: 8px;
} }
.list-group-striped > .list-group-item { .list-group-striped>.list-group-item {
border-left: 0; border-left: 0;
border-right: 0; border-right: 0;
border-radius: 0; border-radius: 0;
padding-left: 0; padding-left: 0;
padding-right: 0; padding-right: 0;
} }
.list-group { .list-group {
padding-left: 0px; padding-left: 0px;
list-style: none; list-style: none;
} }
.list-group-item { .list-group-item {
border-bottom: 1px solid #e7eaec; border-bottom: 1px solid #e7eaec;
border-top: 1px solid #e7eaec; border-top: 1px solid #e7eaec;
margin-bottom: -1px; margin-bottom: -1px;
padding: 11px 0px; padding: 11px 0px;
font-size: 13px; font-size: 13px;
} }
.pull-right { .pull-right {
float: right !important; float: right !important;
} }
.el-card__header { .el-card__header {
padding: 14px 15px 7px; padding: 14px 15px 7px;
min-height: 40px; min-height: 40px;
} }
.el-card__body { .el-card__body {
padding: 15px 20px 20px 20px; padding: 15px 20px 20px 20px;
} }
.card-box { .card-box {
padding-right: 15px; padding-right: 15px;
padding-left: 15px; padding-left: 15px;
margin-bottom: 10px; margin-bottom: 10px;
} }
/* button color */ /* button color */
.el-button--cyan.is-active, .el-button--cyan.is-active,
.el-button--cyan:active { .el-button--cyan:active {
background: #20B2AA; background: #20B2AA;
border-color: #20B2AA; border-color: #20B2AA;
color: #FFFFFF; color: #FFFFFF;
} }
.el-button--cyan:focus, .el-button--cyan:focus,
.el-button--cyan:hover { .el-button--cyan:hover {
background: #48D1CC; background: #48D1CC;
border-color: #48D1CC; border-color: #48D1CC;
color: #FFFFFF; color: #FFFFFF;
} }
.el-button--cyan { .el-button--cyan {
background-color: #20B2AA; background-color: #20B2AA;
border-color: #20B2AA; border-color: #20B2AA;
color: #FFFFFF; color: #FFFFFF;
} }
/* text color */ /* text color */
.text-navy { .text-navy {
color: #1ab394; color: #1ab394;
} }
.text-primary { .text-primary {
color: inherit; color: inherit;
} }
.text-success { .text-success {
color: #1c84c6; color: #1c84c6;
} }
.text-info { .text-info {
color: #23c6c8; color: #23c6c8;
} }
.text-warning { .text-warning {
color: #f8ac59; color: #f8ac59;
} }
.text-danger { .text-danger {
color: #ed5565; color: #ed5565;
} }
.text-muted { .text-muted {
color: #888888; color: #888888;
} }
/* image */ /* image */
.img-circle { .img-circle {
border-radius: 50%; border-radius: 50%;
} }
.img-lg { .img-lg {
width: 120px; width: 120px;
height: 120px; height: 120px;
} }
.avatar-upload-preview { .avatar-upload-preview {
position: absolute; position: absolute;
top: 50%; top: 50%;
transform: translate(50%, -50%); transform: translate(50%, -50%);
...@@ -224,16 +242,85 @@ ...@@ -224,16 +242,85 @@
border-radius: 50%; border-radius: 50%;
box-shadow: 0 0 4px #ccc; box-shadow: 0 0 4px #ccc;
overflow: hidden; overflow: hidden;
} }
/* 拖拽列样式 */ /* 拖拽列样式 */
.sortable-ghost{ .sortable-ghost {
opacity: .8; opacity: .8;
color: #fff!important; color: #fff !important;
background: #42b983!important; background: #42b983 !important;
} }
.top-right-btn { .top-right-btn {
position: relative; position: relative;
float: right; 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;
}
}
.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> <template>
<div :class="{'hidden':hidden}" class="pagination-container"> <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 <el-pagination
:background="background" :background="background"
:current-page.sync="currentPage" :current-page.sync="currentPage"
...@@ -8,94 +20,120 @@ ...@@ -8,94 +20,120 @@
:page-sizes="pageSizes" :page-sizes="pageSizes"
:total="total" :total="total"
v-bind="$attrs" v-bind="$attrs"
@size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
/> />
<!-- @size-change="handleSizeChange" -->
</div>
</div> </div>
</template> </template>
<script> <script>
import { scrollTo } from '@/utils/scroll-to' import { scrollTo } from "@/utils/scroll-to";
export default { export default {
name: 'Pagination', name: "Pagination",
props: { props: {
total: { total: {
required: true, required: true,
type: Number type: Number,
}, },
page: { page: {
type: Number, type: Number,
default: 1 default: 1,
}, },
limit: { limit: {
type: Number, type: Number,
default: 20 default: 20,
}, },
pageSizes: { pageSizes: {
type: Array, type: Array,
default() { default() {
return [10, 20, 30, 50] return [10, 20, 30, 50];
} },
}, },
layout: { layout: {
type: String, type: String,
default: 'total, sizes, prev, pager, next, jumper' // default: 'total, sizes, prev, pager, next, jumper'
default: "prev, pager, next",
}, },
background: { background: {
type: Boolean, type: Boolean,
default: true default: false,
}, },
autoScroll: { autoScroll: {
type: Boolean, type: Boolean,
default: true default: true,
}, },
hidden: { hidden: {
type: Boolean, type: Boolean,
default: false default: false,
} },
},
data() {
return {active:0};
}, },
computed: { computed: {
currentPage: { currentPage: {
get() { get() {
return this.page return this.page;
}, },
set(val) { set(val) {
this.$emit('update:page', val) this.$emit("update:page", val);
} },
}, },
pageSize: { pageSize: {
get() { get() {
return this.limit return this.limit;
}, },
set(val) { set(val) {
this.$emit('update:limit', val) this.$emit("update:limit", val);
} },
} },
}, },
methods: { methods: {
handleSizeChange(val) { 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) { if (this.autoScroll) {
scrollTo(0, 800) scrollTo(0, 800);
} }
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.$emit('pagination', { page: val, limit: this.pageSize }) this.$emit("pagination", { page: val, limit: this.pageSizes[active] });
if (this.autoScroll) { if (this.autoScroll) {
scrollTo(0, 800) scrollTo(0, 800);
}
}
} }
} },
},
};
</script> </script>
<style scoped> <style lang="scss" scoped>
.pagination-container { .pagination-container {
background: #fff; background: #fff;
padding: 32px 16px; padding: 10px 0px !important;
justify-content: space-between;
} }
.pagination-container.hidden { .pagination-container.hidden {
display: none; 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> </style>
<template> <template>
<div> <div>
<el-table v-loading="loading" :data="projectList"> <el-table v-loading="loading" :data="projectList">
<el-table-column label="交易项目" align="center" prop="relationTransactionProjectId" :formatter="transactionProjectName" :show-overflow-tooltip="true"/> <el-table-column
<el-table-column label="交易状态" align="center" prop="tradeStatus" :formatter="getTradeStatus" :show-overflow-tooltip="true"/> 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="applyName" />
<el-table-column label="卖方" align="center" prop="applyDeptName" :show-overflow-tooltip="true"/> <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="tradeTotal" />
<el-table-column label="买方" align="center" prop="tradeDeptName" :show-overflow-tooltip="true"/> <el-table-column
label="买方"
align="center"
prop="tradeDeptName"
:show-overflow-tooltip="true"
/>
<el-table-column label="交易评分" align="center" prop="tradeScore" /> <el-table-column label="交易评分" align="center" prop="tradeScore" />
<el-table-column label="交易成交价" align="center" prop="dealPrice" /> <el-table-column label="交易成交价" align="center" prop="dealPrice" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
v-if="scope.row.tradeStatus=='0' || scope.row.tradeStatus=='4'" v-if="scope.row.tradeStatus == '0' || scope.row.tradeStatus == '4'"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['system:project:edit']" v-hasPermi="['system:project:edit']"
>修改</el-button> >修改</el-button
>
<el-button <el-button
v-if="scope.row.tradeStatus=='0' || scope.row.tradeStatus=='4'" v-if="scope.row.tradeStatus == '0' || scope.row.tradeStatus == '4'"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:project:remove']" v-hasPermi="['system:project:remove']"
>删除</el-button> >删除</el-button
<OperatorButton v-for="item in scope.row.operators" >
<OperatorButton
v-for="item in scope.row.operators"
:key="item"
:operatorName="item" :operatorName="item"
:tradeInfo="scope.row" :tradeInfo="scope.row"
@getList="getList"/> @getList="getList"
/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0"
v-show="total > 0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
...@@ -45,52 +77,56 @@ ...@@ -45,52 +77,56 @@
</template> </template>
<script> <script>
import OperatorButton from "./OperatorButton"; import OperatorButton from "./OperatorButton";
export default { export default {
name: "table-list", name: "table-list",
props:{ props: {
projectList:{ projectList: {
type: Array type: Array,
}, },
queryParams:{ queryParams: {
type: Object type: Object,
}, },
total:{ total: {
type: Number type: Number,
}, },
loading:{ loading: {
type: Boolean type: Boolean,
}
}, },
components:{
OperatorButton
}, },
methods:{ components: {
getList(){ OperatorButton,
this.$emit("getList"); },
methods: {
getList(value) {
console.log(value)
this.$emit("getList",value);
}, },
//获取项目名称 //获取项目名称
transactionProjectName(row){ transactionProjectName(row) {
let project = this.$parent.$parent.transactionProjects.find(item => item.transactionProjectId == row.relationTransactionProjectId); let project = this.$parent.$parent.transactionProjects.find(
if(project){ (item) => item.transactionProjectId == row.relationTransactionProjectId
);
if (project) {
return project.transactionProjectName; return project.transactionProjectName;
} }
return "-"; return "-";
}, },
//获取交易状态 //获取交易状态
getTradeStatus(row){ getTradeStatus(row) {
return this.selectDictLabel(this.$parent.$parent.transactionProjectStatus, row.tradeStatus); return this.selectDictLabel(
this.$parent.$parent.transactionProjectStatus,
row.tradeStatus
);
}, },
handleUpdate(row){ handleUpdate(row) {
this.$parent.$parent.handleUpdate(row); this.$parent.$parent.handleUpdate(row);
}, },
handleDelete(row){ handleDelete(row) {
this.$parent.$parent.handleDelete(row); this.$parent.$parent.handleDelete(row);
} },
} },
} };
</script> </script>
<style scoped> <style scoped></style>
</style>
...@@ -34,7 +34,7 @@ module.exports = { ...@@ -34,7 +34,7 @@ module.exports = {
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
target: `http://localhost:8668/precisionEffect`, target: `http://192.168.1.5:8668/precisionEffect`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: '' ['^' + 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