Commit 495bda5f authored by tianhongyang's avatar tianhongyang

2023/12/12 咨询机构管理 70%

parent a6231c14
......@@ -9,19 +9,7 @@
"build:prod": "vue-cli-service build",
"build:test": "vue-cli-service build --mode test",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
"preview": "node build/index.js --preview"
},
"keywords": [
"vue",
......@@ -75,15 +63,11 @@
"@vue/babel-helper-vue-jsx-merge-props": "^1.4.0",
"@vue/babel-preset-jsx": "^1.4.0",
"@vue/cli-plugin-babel": "4.4.6",
"@vue/cli-plugin-eslint": "4.4.6",
"@vue/cli-service": "4.4.6",
"babel-eslint": "10.1.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"chalk": "4.1.0",
"compression-webpack-plugin": "5.0.2",
"connect": "3.6.6",
"eslint": "7.15.0",
"eslint-plugin-vue": "7.2.0",
"js-base64": "^3.7.5",
"lint-staged": "10.5.3",
"runjs": "4.4.2",
......
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_14_81552"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_14_81552)"><g><rect x="0" y="0" width="16" height="16" rx="0" fill-opacity="0.009999999776482582"/></g><g><path d="M4.2354478125,13.9198078125Q4.2685578125,13.9761078125,4.3150178125,14.0220078125Q4.3614778125,14.0679078125,4.4181678125,14.1004078125Q4.4748578125,14.1328078125,4.537977812499999,14.1496078125Q4.6010978125,14.1663078125,4.6664078125,14.1663078125L11.3331078125,14.1663078125Q11.3984078125,14.1663078125,11.4615078125,14.1496078125Q11.5246078125,14.1328078125,11.5813078125,14.1004078125Q11.6380078125,14.0679078125,11.6845078125,14.0220078125Q11.7310078125,13.9761078125,11.7641078125,13.9198078125L15.0973078125,8.253177812499999Q15.1312078125,8.1955478125,15.1488078125,8.1310378125Q15.1663078125,8.0665378125,15.1663078125,7.9996778125Q15.1663078125,7.9328178125,15.1488078125,7.8683078125Q15.1312078125,7.8037978125,15.0973078125,7.7461678125L11.7641078125,2.0795038125Q11.7310078125,2.0232098125,11.6845078125,1.9773098125Q11.6380078125,1.9314098125,11.5813078125,1.8989848125Q11.5246078125,1.8665588125,11.4615078125,1.8497838125000001Q11.3984078125,1.8330078125,11.3331078125,1.8330078125L4.6664078125,1.8330078125Q4.6010978125,1.8330078125,4.537977812499999,1.8497828125Q4.4748578125,1.8665578125,4.4181678125,1.8989818125Q4.3614778125,1.9314058125,4.3150178125,1.9773038125Q4.2685578125,2.0232018125,4.2354478125,2.0794938125L0.9020428125,7.7461578125Q0.8681428125,7.8037878125,0.8505748125,7.8682978125Q0.8330078125,7.9328178125,0.8330078125,7.9996778125Q0.8330078125,8.0665378125,0.8505748125,8.1310478125Q0.8681428125,8.195557812499999,0.9020428125,8.2531878125L4.2354478125,13.9198078125ZM4.9523778125,13.1663078125L1.9131018124999999,7.9996778125L4.9523778125,2.8330078125L11.0471278125,2.8330078125L14.0862078125,7.9996778125L11.0471278125,13.1663078125L4.9523778125,13.1663078125Z" fill-rule="evenodd" fill-opacity="0.800000011920929"/></g><g><path d="M6.4676128125,6.4676128125Q5.8330078125,7.1022178125,5.8330078125,7.9996778125Q5.8330078125,8.897127812499999,6.4676128125,9.5317378125Q7.1022178125,10.1663378125,7.9996778125,10.1663378125Q8.897127812499999,10.1663378125,9.5317378125,9.5317378125Q10.1663378125,8.897127812499999,10.1663378125,7.9996778125Q10.1663378125,7.1022178125,9.5317378125,6.4676128125Q8.897127812499999,5.8330078125,7.9996778125,5.8330078125Q7.1022178125,5.8330078125,6.4676128125,6.4676128125ZM7.1747198125,8.824627812500001Q6.8330078125,8.4829178125,6.8330078125,7.9996778125Q6.8330078125,7.5164278125,7.1747198125,7.1747198125Q7.5164278125,6.8330078125,7.9996778125,6.8330078125Q8.4829178125,6.8330078125,8.824627812500001,7.1747198125Q9.1663378125,7.5164278125,9.1663378125,7.9996778125Q9.1663378125,8.4829178125,8.824627812500001,8.824627812500001Q8.4829178125,9.1663378125,7.9996778125,9.1663378125Q7.5164278125,9.1663378125,7.1747198125,8.824627812500001Z" fill-rule="evenodd" fill-opacity="0.800000011920929"/></g></g></svg>
\ No newline at end of file
......@@ -39,3 +39,19 @@
.el-message {
z-index: 3000 !important;
}
/* 规范容器样式 */
.default-layout-container {
width: 100%;
height: 100%;
box-sizing: border-box;
overflow: auto;
}
.default-layout-container-inner {
width: 100%;
height: 100%;
padding: 16px 24px;
box-sizing: border-box;
}
::v-deep .el-search-form-public {
.each-line {
white-space: nowrap;
}
// 重置element 表单样式
.el-form-item {
display: inline-flex;
align-items: center;
margin-bottom: 16px;
margin-right: 24px;
.el-form-item__label {
font-weight: 400;
color: rgba(35, 35, 35, 0.8);
text-align: left;
font-size: 14px;
line-height: 32px;
padding-right: 0px;
margin-right: 12px;
}
.el-form-item__content {
margin-left: 0px !important;
line-height: 32px;
}
.el-input__inner {
height: 32px;
line-height: 32px;
width: 268px;
border-radius: 2px;
border: 1px solid #dcdfe6;
padding: 0px 12px;
padding-right: 30px;
box-sizing: border-box;
&:focus {
border-color: #0081ff;
}
&::placeholder {
color: #c0c4cc !important;
}
}
.el-date-editor {
width: 268px;
height: 32px;
line-height: 32px;
border-radius: 2px;
border: 1px solid #dcdfe6;
padding: 3px 0px;
box-sizing: border-box;
&.is-active {
border-color: #0081ff;
}
.el-input__icon.el-range__icon.el-icon-date {
display: none;
}
.el-range__close-icon {
line-height: 32px;
}
.el-range-separator {
padding: 0px;
line-height: 24px;
color: rgba(35, 35, 35, 0.8);
}
.el-range-input {
padding: 0px 12px;
box-sizing: border-box;
text-align: left;
}
}
}
}
......@@ -11,7 +11,7 @@ body {
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB,
Microsoft YaHei, Arial, sans-serif;
Microsoft YaHei, Arial, sans-serif;
}
label {
......@@ -106,7 +106,7 @@ aside {
line-height: 32px;
font-size: 16px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
color: #2c3e50;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
......@@ -143,11 +143,11 @@ aside {
padding-right: 20px;
transition: 600ms ease position;
background: linear-gradient(
90deg,
rgba(32, 182, 249, 1) 0%,
rgba(32, 182, 249, 1) 0%,
rgba(33, 120, 241, 1) 100%,
rgba(33, 120, 241, 1) 100%
90deg,
rgba(32, 182, 249, 1) 0%,
rgba(32, 182, 249, 1) 0%,
rgba(33, 120, 241, 1) 100%,
rgba(33, 120, 241, 1) 100%
);
.subtitle {
......@@ -311,7 +311,10 @@ li {
.table-item {
width: 100%;
height: 100%;
.el-table {
width: 100%;
height: 100%;
font-size: 14px;
color: #232323;
th {
......@@ -322,8 +325,8 @@ li {
font-size: 14px;
}
.cell {
padding-right: 12px !important;
padding-left: 12px !important;
padding-right: 12px;
padding-left: 12px;
line-height: 18px;
}
thead {
......@@ -344,7 +347,6 @@ li {
.el-table__header-wrapper {
th {
background: #f0f3fa;
// text-align: left;
}
}
.el-table__fixed-header-wrapper {
......@@ -448,6 +450,156 @@ li {
}
}
}
// 封装组件样式
.table-list-com-ins {
.table-item {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
.el-table {
width: 100%;
height: 100%;
font-size: 14px;
color: #232323;
th {
height: 40px;
font-size: 12px !important;
font-weight: 400 !important;
color: rgba(35, 35, 35, 0.8);
padding: 9px 0px;
}
td {
font-size: 14px;
}
.cell {
padding-right: 12px;
padding-left: 12px;
line-height: 21px;
}
.sort-caret.ascending {
border-bottom-color: rgba(0, 129, 255, 0.5);
}
.ascending .sort-caret.ascending {
border-bottom-color: #0081ff;
}
.sort-caret.descending {
border-top-color: rgba(0, 129, 255, 0.5);
}
.descending .sort-caret.descending {
border-top-color: #0081ff;
}
.el-table__header-wrapper {
box-sizing: border-box;
th {
background: #f0f3fa;
}
}
.el-table__fixed-header-wrapper {
th {
background: #f0f3fa;
}
}
.is-scrolling-left + .el-table__fixed,
.is-scrolling-middle + .el-table__fixed,
.is-scrolling-right + .el-table__fixed {
//box-shadow:none;
//-webkit-box-shadow: 2px 0px 1px -2px #C3CBD5;
box-shadow: 2px 0 8px -7px #202020;
//border-right: 1px solid #C3CBD5;
height: auto !important;
bottom: 16px !important;
}
.el-table__body tr.current-row > td.el-table__cell {
background: none;
}
.caret-wrapper {
width: 10px;
}
.el-table__body-wrapper {
&::-webkit-scrollbar {
width: 16px; //竖轴宽度
height: 16px; //横轴宽度
}
&::-webkit-scrollbar-track {
background-color: #f3f4f5;
border-radius: 0;
}
&::-webkit-scrollbar-thumb {
background-color: rgba(98, 110, 126, 0.2);
border: 4px solid #f3f4f5;
border-radius: 10px;
}
&::-webkit-scrollbar-corner {
background: #f3f4f5;
/*border-left: 1px solid #E0EAF2;*/
}
tr {
&.current-row > td {
background-color: initial;
}
&:nth-child(2n) {
background: #f8fbff;
}
}
tr:hover > td.el-table__cell {
background: #dcebff;
}
}
.el-table__body tr.hover-row > td.el-table__cell {
background: #dcebff;
}
.el-table__fixed {
//bottom:0 !important;
.el-table__body {
padding-bottom: 16px;
}
tr:nth-child(2n) {
background-color: #f8fbff;
}
}
::-webkit-scrollbar-track-piece {
//滚动条凹槽的颜色,还可以设置边框属性
background-color: #f3f4f5;
height: 16px;
padding: 0 4px;
}
//滚动条的宽度
::-webkit-scrollbar {
width: 8px;
height: 16px;
background-color: #f3f4f5;
border-radius: 6px;
}
//滚动条的滑块
::-webkit-scrollbar-thumb {
border-radius: 8px;
height: 8px;
margin: 0 4px;
background: rgba(98, 110, 126, 0.2);
border: 4px solid #f3f4f5;
&:hover {
background: #566380;
}
}
.el-scrollbar {
height: 16px;
.el-scrollbar__bar.is-horizontal {
height: 8px;
}
.el-scrollbar__thumb {
background: rgba(98, 110, 126, 0.4);
&:hover {
background: #566380;
}
}
}
}
}
}
.el-table__body tr.hover-row > td.el-table__cell {
background-color: #dcebff;
}
......
.search-result-head-container {
display: flex;
align-items: center;
justify-content: space-between;
line-height: 24px;
height: 24px;
.result-head-left {
.result-list-total {
font-size: 12px;
color: rgba(35, 35, 35, 0.8);
padding-left: 6px;
box-sizing: border-box;
position: relative;
&::before {
content: "";
position: absolute;
width: 2px;
height: 2px;
background: rgba(35, 35, 35, 0.4);
left: 0px;
top: 50%;
transform: translateY(-50%);
}
}
}
.result-head-right {
}
}
......@@ -6,6 +6,7 @@
width: 100%;
height: 100%;
overflow: auto;
box-sizing: border-box;
}
.search-supplier {
-webkit-box-sizing: border-box;
......
<template>
<div class="dsk-amount-range" :class="{'dsk-amount-range-active' : iptActive}">
<div class="dsk-amount-inner">
<el-input v-model="amountArray[0]" :placeholder="startPlaceholder" class="dsk-range-start dsk-amount-ipt" @focus="iptActive = true" @blur="iptActive = false"></el-input>
<div class="dsk-range-text">{{rangeText}}</div>
<el-input v-model="amountArray[1]" :placeholder="endPlaceholder" class="dsk-range-end dsk-amount-ipt" @focus="iptActive = true" @blur="iptActive = false"></el-input>
</div>
</div>
</template>
<script>
export default {
name: "dskAmountRange",
props: {
amountArray: {
required: true,
type: Array,
default: () => []
},
// 区间文字
rangeText: {
type: String,
default: "至"
},
// 开始区间输入框提示语
startPlaceholder: {
type: String,
default: ""
},
// 结束区间输入框提示语
endPlaceholder: {
type: String,
default: ""
},
},
model: {
prop: "amountArray",
event: "amountRangeChange"
},
data() {
return {
iptActive: false
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
},
}
</script>
<style lang="scss" scoped>
.dsk-amount-range {
width: 268px;
height: 32px;
padding: 5px 0px;
border-radius: 2px;
border: 1px solid #dcdfe6;
box-sizing: border-box;
&.dsk-amount-range-active {
border-color: #0081ff;
}
::v-deep .dsk-amount-inner {
display: flex;
height: 100%;
align-items: center;
.dsk-range-start,
.dsk-range-end {
&.dsk-amount-ipt.el-input {
line-height: 20px;
height: 100%;
.el-input__inner {
line-height: 1;
height: 100%;
width: 100%;
padding: 0px 12px;
border: none;
}
}
}
.dsk-range-text {
color: rgba(35, 35, 35, 0.8);
}
}
}
</style>
<template>
<div class="dsk-tab-toggle">
<!-- tab列表 -->
<div class="dsk-tab-items-container">
<div class="dsk-tab-items-container-inner">
<div class="dsk-tab-item" v-for="item of tabs" :key="item.id" :class="{'tab-current' : item.value == currentValue}" @click="tabChoose(item)">
<div class="dsk-tab-item-name">{{item.name}}</div>
</div>
<!-- 下滑条 -->
<div class="dsk-tab-sliding-bar" v-if="tabs.length" :style="{width : `${silidingBarWidth}px`,transform : `translateX(${silidingBarLeft}px)`}">
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "dskTabToggle",
props: {
currentValue: {
required: true,
type: [String, Number]
},
tabs: {
required: true,
type: Array,
default: () => []
}
},
model: {
prop: "currentValue",
event: "currentTabChange"
},
data() {
return {
silidingBarLeft: 0,
silidingBarWidth: 0
};
},
//可访问data属性
created() {
this.initSlidingBar();
},
//计算集
computed: {
},
//方法集
methods: {
async initSlidingBar() {
try {
await this.$nextTick();
const current = document.querySelector(".tab-current");
if (current) {
const text = current.querySelector(".dsk-tab-item-name");
const width = text.offsetWidth;
const boxOffsetLeft = current.offsetLeft;
const textOffsetLeft = text.offsetLeft;
this.silidingBarWidth = width;
this.silidingBarLeft = boxOffsetLeft + textOffsetLeft;
}
} catch (error) {
}
},
tabChoose(item) {
this.$emit("currentTabChange", item.value);
this.$emit("tabToggle", item.value);
this.initSlidingBar();
}
},
}
</script>
<style lang="scss" scoped>
.dsk-tab-toggle {
width: 100%;
height: 48px;
border-bottom: 1px solid #eeeeee;
background: #fff;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
box-sizing: border-box;
.dsk-tab-items-container {
width: 100%;
height: 100%;
display: flex;
align-items: center;
.dsk-tab-items-container-inner {
width: 100%;
height: 100%;
display: flex;
align-items: center;
white-space: nowrap;
overflow: auto;
box-sizing: border-box;
position: relative;
.dsk-tab-item {
height: 100%;
display: flex;
align-items: center;
padding: 0px 16px;
box-sizing: border-box;
position: relative;
.dsk-tab-item-name {
cursor: pointer;
color: #232323;
font-size: 16px;
}
&.tab-current {
.dsk-tab-item-name {
color: #0081ff;
font-weight: bold;
}
}
}
.dsk-tab-sliding-bar {
position: absolute;
left: 0px;
bottom: 0px;
height: 2px;
background: #0081ff;
transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
}
}
}
</style>
<template>
<transition>
<div class="dsk-table-header-setting-bar">
<div class="dsk-table-header-setting-bar-inner">
</div>
</div>
</transition>
</template>
<script>
import vuedraggable from "vuedraggable";
export default {
name: "dskTableHeaderSettingBar",
components: {
vuedraggable
},
props: {
settingList: {
type: Array,
default: () => []
}
},
data() {
return {
lockColumn: [],
useColumn: [],
notUseColumn: []
};
},
//可访问data属性
created() {
this.settingHeaderClassify();
},
//计算集
computed: {
},
//方法集
methods: {
// 表头当前状态分类
settingHeaderClassify() {
if (this.settingList?.length) {
const temp = JSON.parse(JSON.stringify(this.settingList));
const len = temp.length;
for (let index = 0; index < len; index++) {
if (temp[index].lock) {
this.lockColumn.push({
...temp[index],
use: true
});
continue;
}
// 设置了false值
if (temp[index].hasOwnProperty("use") && temp[index].use === false) {
this.notUseColumn.push(temp[index]);
continue;
}
// 默认为true 展示
this.useColumn.push({
...temp[index],
use: true
});
}
console.log(this.useColumn);
}
}
},
}
</script>
<style lang="scss" scoped>
.dsk-table-header-setting-bar {
position: absolute;
top: 24px;
left: 0px;
width: 236px;
height: 456px;
background: #fff;
border: 1px solid #eeeeee;
box-sizing: border-box;
z-index: 3000;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
.dsk-table-header-setting-bar-inner {
width: 100%;
height: 100%;
}
}
</style>
<template>
<div class="dsk-table-header-setting" @click="showHeaderSetting">
<svg-icons :icon-class="'table-header-setting-icon'" :class-name="'table-header-setting-icon'"></svg-icons>
<div class="table-header-setting-text">表头设置</div>
<setting-bar v-if="showHeaderSettingStatus" :settingList="settingList"></setting-bar>
</div>
</template>
<script>
import svgIcons from "@/components/SvgIcon";
import SettingBar from "./components/SettingBar";
export default {
components: {
svgIcons,
SettingBar
},
name: "dskTableHeaderSetting",
props: {
settingList: {
type: Array,
default: () => []
}
},
data() {
return {
showHeaderSettingStatus: false
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
showHeaderSetting() {
this.showHeaderSettingStatus = true;
}
},
}
</script>
<style lang="scss" scoped>
.dsk-table-header-setting {
display: flex;
align-items: center;
position: relative;
&:hover {
.table-header-setting-text {
color: #0081ff;
}
.table-header-setting-icon {
fill: #0081ff;
}
}
.table-header-setting-icon {
cursor: pointer;
}
.table-header-setting-text {
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
margin-left: 6px;
cursor: pointer;
}
}
</style>
<template>
<el-skeleton animated class="skeleton-container">
<template slot="template">
<el-skeleton-item variant="text" style="width: 60%;"/>
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 60%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
</template>
</el-skeleton>
</template>
<script>
export default {
name: 'skeleton'
}
</script>
<style lang="scss" scoped>
.el-skeleton__item{
height: 20px;
border-radius: 0;
margin: 9px 0;
background: #f0f0f0;
}
</style>
......@@ -3,17 +3,28 @@
<div class="table-item">
<el-table v-if="tableDataTotal>0" class="fixed-table" :class="headerFixed ? 'headerFixed':''" v-loading="tableLoading" :data="tableData"
element-loading-text="Loading" ref="tableRef" border fit highlight-current-row v-sticky-header.always="stickyHeader"
:default-sort="defaultSort?defaultSort:{}" @sort-change="sortChange" @selection-change="selectionChange" :cell-class-name="cellClassName" :cell-style="cellStyle">
:default-sort="defaultSort?defaultSort:{}" @sort-change="sortChange" @selection-change="selectionChange" :cell-class-name="cellClassName"
:cell-style="cellStyle">
<el-table-column type="selection" :width="needSelection.width ? needSelection.width : '38px'" v-if="needSelection.flag"
:fixed="needSelection.fixed" :align="needSelection.align" :show-overflow-tooltip="needSelection.showOverflowTooltip">
</el-table-column>
<el-table-column v-if="isIndex" label="序号" :width="flexWidth(tableData)" align="left" :fixed="indexFixed" :resizable="false">
<el-table-column type="index" v-if="isIndex" label="序号" :width="flexWidth(tableData)" align="left" :fixed="indexFixed" :resizable="false">
<template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
<template>
<el-table-column v-for="(item,index) in formColum" :key="index" :label="item.label" :prop="item.prop" :width="item.width"
:min-width="item.minWidth" :align="item.align?item.align:'left'" :fixed="item.fixed"
:sortable="item.sortable ?item.sortable=='custom'? 'custom':true : false" :resizable="false">
<template v-for="(item,index) in formColum">
<!-- 复选框列 -->
<el-table-column v-if="item.type == 'selection'" type="selection" :key="index" :width="item.width ? item.width : '38px'" :fixed="item.fixed"
:align="item.align?item.align:'left'" :show-overflow-tooltip="item.showOverflowTooltip">
</el-table-column>
<!-- 序号列 -->
<el-table-column v-else-if="item.type == 'index'" type="index" :key="index" :label="item.label ? item.label : '序号'"
:width="flexWidth(tableData)" :align="item.align?item.align:'left'" :fixed="item.fixed" :resizable="false">
<template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
<!-- 普通列 -->
<el-table-column v-else :key="index" :label="item.label" :prop="item.prop" :width="item.width" :min-width="item.minWidth"
:align="item.align?item.align:'left'" :fixed="item.fixed" :sortable="item.sortable ?item.sortable=='custom'? 'custom':true : false"
:resizable="false">
<template v-if="item.children&&item.children.length">
<el-table-column v-for="(cld, i) in item.children" :key="i" :prop="cld.prop" :label="cld.label" :width="cld.width" :resizable="false">
<template slot-scope="cldscope">
......@@ -21,7 +32,7 @@
<slot :name="cld.prop" :row="cldscope.row" :data="cld"></slot>
</template>
<template v-else>
<span>{{cldscope.row[cld.prop] || '--'}}</span>
<span>{{cldscope.row[cld.prop] || '-'}}</span>
</template>
</template>
</el-table-column>
......@@ -34,7 +45,7 @@
<!-- 操作栏 -->
<slot v-else-if="item.prop == 'action-field-bar'" name="action-field-bar" :row="scope.row" :index="scope.$index" :data="item"></slot>
<span v-else>
{{ scope.row[item.prop] || '--' }}
{{ scope.row[item.prop] || '-' }}
</span>
</template>
</el-table-column>
......@@ -43,7 +54,7 @@
</template>
</el-table>
<div style="padding: 30px 0" v-else>
<div style="padding: 30px 0;box-sizing:border-box;" v-else>
<no-data />
</div>
</div>
......@@ -61,7 +72,7 @@ export default {
props: {
isIndex: {
type: Boolean,
default: true
default: false
},
needSelection: {
type: Object,
......@@ -170,7 +181,7 @@ export default {
this.$emit("selectionChange", selectionArray);
},
flexWidth(tableData) {
let currentMax = this.queryParams.pageNum * this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 59;
let currentMax = this.queryParams.pageNum * this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 50;
if (currentMax.toString().length > 3) {
wdth = wdth + (currentMax.toString().length - 3) * 10;
}
......@@ -185,9 +196,6 @@ export default {
::v-deep .el-table__body tr.current-row > td.el-table__cell {
background-color: #ffffff;
}
/*::v-deep .el-table__fixed{
height: calc(100% - 16px) !important;
}*/
::v-deep .el-table__row {
&:nth-child(even) {
......@@ -215,9 +223,11 @@ export default {
::v-deep .el-table th.el-table__cell.is-leaf,
::v-deep .el-table td.el-table__cell {
border-bottom: 1px solid #e6eaf1;
box-sizing: border-box;
}
::v-deep .el-table--border .el-table__cell {
border-right: 1px solid #e6eaf1;
box-sizing: border-box;
}
::v-deep .el-table__body tr.hover-row.current-row > td,
::v-deep .el-table__body tr.hover-row.el-table__row--striped.current-row > td,
......@@ -232,22 +242,5 @@ export default {
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #dcebff;
}
::v-deep .el-table__header-wrapper {
position: sticky;
top: 0;
z-index: 99;
}
::v-deep .el-table__fixed {
overflow-x: clip;
overflow-y: clip;
}
}
.table-list-com-ins {
::v-deep .el-table {
.el-table__fixed-header-wrapper {
top: 0px;
}
}
}
</style>
......@@ -13,7 +13,7 @@
<template slot="title">
<item v-if="item.meta" :icon="sideIcon(item)" :title="item.meta.title" />
</template>
<sidebar-item v-for="child in item.children" :key="child.path" :is-nest="true" :item="child" :base-path="resolvePath(child.path,child.query)"
<sidebar-item v-for="child in item.children" :key="child.path" :is-nest="true" :item="child" :base-path="resolvePath(child.path)"
:active-menu="activeMenu" class="nest-menu secondary-menu-item-sub" />
</el-submenu>
</template>
......
<template>
<div class="cooperation-desk-account-enterprise">
</div>
</template>
<script>
export default {
name : "cooperationDeskAccountEnterprise",
data() {
return {
}
},
//可访问data属性
created(){
},
//计算集
computed:{
},
//方法集
methods:{
},
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div class="cooperation-desk-account default-layout-container">
<div class="default-layout-container-inner">
<!-- 顶部tab切换栏 -->
<dsk-tab-toggle v-model="currentList" :tabs="toggleTabs"></dsk-tab-toggle>
<!-- 项目列表 -->
<project-list v-if="currentList == 'project'"></project-list>
<!-- 企业列表 -->
<enterprise-list v-if="currentList == 'enterprise'"></enterprise-list>
</div>
</div>
</template>
<script>
import DskTabToggle from "@/components/DskTabToggle";
import ProjectList from "@/views/consultingOrgManagement/components/ProjectList";
import EnterpriseList from "@/views/consultingOrgManagement/components/EnterpriseList";
import { v4 } from 'uuid';
export default {
name: "cooperationDeskAccount",
components: {
DskTabToggle,
ProjectList,
EnterpriseList
},
data() {
return {
currentList: "project",
toggleTabs: [
{
value: "project",
name: "项目列表",
id: v4()
},
{
value: "enterprise",
name: "企业列表",
id: v4()
}
]
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
},
}
</script>
<style lang="scss" scoped>
.cooperation-desk-account {
.default-layout-container-inner {
.cooperation-desk-account-project,
.cooperation-desk-account-enterprise {
height: calc(100% - 48px);
}
}
}
</style>
......@@ -170,7 +170,7 @@
</template>
</el-table-column>
<el-table-column label="历史发包数量" min-width="107" :resizable="false" :sortable="'custom'" prop="inviteTenderCount">
<el-table-column label="历史发包数量" min-width="120" :resizable="false" :sortable="'custom'" prop="inviteTenderCount">
<template slot-scope="scope">
<router-link v-if="scope.row.inviteTenderCount"
:to="scope.row.other ? `/enterprise/${encodeStr(scope.row.id)}?path=hiscontract` : `/enterprise/${encodeStr(scope.row.id)}?path=hiscontract`"
......@@ -179,7 +179,7 @@
</template>
</el-table-column>
<el-table-column label="历史发包总金额" min-width="120" :resizable="false" :sortable="'custom'" prop="inviteTenderSumAmount">
<el-table-column label="历史发包总金额" min-width="130" :resizable="false" :sortable="'custom'" prop="inviteTenderSumAmount">
<template slot-scope="scope">
<div style="text-align:right;white-space: nowrap;">
{{parseFloat(scope.row.inviteTenderSumAmount) ? `${scope.row.inviteTenderSumAmount}万元`:"--"}}
......@@ -187,7 +187,7 @@
</template>
</el-table-column>
<el-table-column label="最近一次招标" min-width="107" :resizable="false" :sortable="'custom'" prop="inviteTenderLastTime">
<el-table-column label="最近一次招标" min-width="120" :resizable="false" :sortable="'custom'" prop="inviteTenderLastTime">
<template slot-scope="scope">
<router-link v-if="scope.row.inviteTenderLastTime"
:to="scope.row.other ? `/enterprise/${encodeStr(scope.row.id)}?path=announcement` : `/enterprise/${encodeStr(scope.row.id)}?path=announcement`"
......@@ -196,7 +196,7 @@
</template>
</el-table-column>
<el-table-column label="重点项目" min-width="107" :resizable="false" :sortable="'custom'" prop="importantProjectCount">
<el-table-column label="重点项目" min-width="120" :resizable="false" :sortable="'custom'" prop="importantProjectCount">
<template slot-scope="scope">
<router-link v-if="scope.row.importantProjectCount"
:to="scope.row.other ? `/enterprise/${encodeStr(scope.row.id)}?path=majorProject` : `/enterprise/${encodeStr(scope.row.id)}?path=majorProject`"
......@@ -214,7 +214,7 @@
</template>
</el-table-column> -->
<el-table-column label="拟建项目" min-width="107" :resizable="false" :sortable="'custom'" prop="approvalProjectCount">
<el-table-column label="拟建项目" min-width="120" :resizable="false" :sortable="'custom'" prop="approvalProjectCount">
<template slot-scope="scope">
<router-link v-if="scope.row.approvalProjectCount"
:to="scope.row.other ? `/enterprise/${encodeStr(scope.row.id)}?path=proposed` : `/enterprise/${encodeStr(scope.row.id)}?path=proposed`"
......@@ -223,7 +223,7 @@
</template>
</el-table-column>
<el-table-column label="招标计划" min-width="107" :resizable="false" :sortable="'custom'" prop="bidPlanCount">
<el-table-column label="招标计划" min-width="120" :resizable="false" :sortable="'custom'" prop="bidPlanCount">
<template slot-scope="scope">
<router-link v-if="scope.row.bidPlanCount"
:to="scope.row.other ? `/enterprise/${encodeStr(scope.row.id)}?path=biddingplan` : `/enterprise/${encodeStr(scope.row.id)}?path=biddingplan`"
......@@ -232,7 +232,7 @@
</template>
</el-table-column>
<el-table-column label="招标公告" min-width="107" :resizable="false" :sortable="'custom'" prop="jskBidCount">
<el-table-column label="招标公告" min-width="120" :resizable="false" :sortable="'custom'" prop="jskBidCount">
<template slot-scope="scope">
<router-link v-if="scope.row.jskBidCount"
:to="scope.row.other ? `/enterprise/${encodeStr(scope.row.id)}?path=announcement` : `/enterprise/${encodeStr(scope.row.id)}?path=announcement`"
......
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