|
@@ -1,55 +1,127 @@
|
|
|
<template>
|
|
|
- <div class="flex-card" v-if="cardInfo.value == 1" :style="cardBoxStyle">
|
|
|
- <div v-for="(dataInfo, dataIndex) in cardList" :key="dataIndex" class="box-card">
|
|
|
- <el-card :style="cardStyle">
|
|
|
- <div slot="header" :style="cardInfo.title.class != '' && cardInfo.title.class ? JSON.parse(cardInfo.title.class) : {}" class="clearfix">
|
|
|
- <div class="titleLeft" :style="titleStyle">
|
|
|
+ <div>
|
|
|
+ <div class="flex-card" v-if="cardInfo.value == 1" :style="cardBoxStyle">
|
|
|
+ <div v-for="(dataInfo, dataIndex) in cardList" :key="dataIndex" class="box-card">
|
|
|
+ <el-card :style="cardStyle">
|
|
|
+ <div slot="header" :style="cardInfo.title.class != '' && cardInfo.title.class ? JSON.parse(cardInfo.title.class) : {}" class="clearfix">
|
|
|
+ <div class="titleLeft" :style="titleStyle">
|
|
|
+ <span v-if="cardInfo.title.text != ''">
|
|
|
+ {{ cardInfo.title.text + ':' }}
|
|
|
+ </span>
|
|
|
+ <el-tooltip v-if="cardInfo.title.model != ''" effect="dark" placement="right-start">
|
|
|
+ <div slot="content">
|
|
|
+ {{ getModelName(cardInfo.title, dataInfo, 'title') }}
|
|
|
+ </div>
|
|
|
+ <span>
|
|
|
+ {{ getModelName(cardInfo.title, dataInfo, 'title') }}
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <div class="titleRight" :style="subTitleStyle">
|
|
|
+ <span v-if="cardInfo.subTitle.text != ''">
|
|
|
+ {{ cardInfo.subTitle.text + ':' }}
|
|
|
+ </span>
|
|
|
+ <el-tooltip v-if="cardInfo.subTitle.model != ''" effect="dark" placement="right-start">
|
|
|
+ <div slot="content">
|
|
|
+ {{ getModelName(cardInfo.subTitle, dataInfo, 'subTitle') }}
|
|
|
+ </div>
|
|
|
+ <span>
|
|
|
+ {{ getModelName(cardInfo.subTitle, dataInfo, 'subTitle') }}
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="cardInfo.info.data.length > 0" :style="cardInfo.info.class != '' && cardInfo.info.class ? JSON.parse(cardInfo.info.class) : {}">
|
|
|
+ <el-row :gutter="10">
|
|
|
+ <el-col v-for="(item, index) in cardInfo.info.data" :key="index" :span="cardInfo.info.col">
|
|
|
+ <div class="flex-row" :style="infoStyle">
|
|
|
+ <div class="left" v-if="item.text != ''">{{ item.text + ':' }}</div>
|
|
|
+ <div class="right">
|
|
|
+ <el-tooltip v-if="item.model != ''" effect="dark" placement="right-start">
|
|
|
+ <div slot="content">
|
|
|
+ {{ getModelName(item, dataInfo, 'info') }}
|
|
|
+ </div>
|
|
|
+ <span>
|
|
|
+ {{ getModelName(item, dataInfo, 'info') }}
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="footer" v-if="btnList.length > 0">
|
|
|
+ <div class="btns">
|
|
|
+ <template v-for="(item, i) in btnList">
|
|
|
+ <template v-if="item.value == 'edit'">
|
|
|
+ <el-button size="mini" type="text" :key="i" :disabled="config.webType == 3 && [1, 2, 5].indexOf(data.flowState) > -1" @click="columnBtnsHandel(item.value, data)"
|
|
|
+ >{{ item.label }}
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.value == 'remove'">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ :key="i"
|
|
|
+ class="JNPF-table-delBtn"
|
|
|
+ :disabled="config.webType == 3 && [1, 2, 3, 5].indexOf(dataInfo.flowState) > -1"
|
|
|
+ @click="columnBtnsHandel(item.value, dataInfo, item)"
|
|
|
+ >{{ item.label }}
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.value == 'detail'">
|
|
|
+ <el-button size="mini" type="text" :key="i" @click="columnBtnsHandel(item.value, dataInfo)">
|
|
|
+ {{ item.label }}
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.value == 'rowJournal'">
|
|
|
+ <el-button size="mini" type="text" :key="i" @click="columnBtnsHandel(item.value, dataInfo)">{{ item.label }}</el-button>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <div class="check">
|
|
|
+ <el-checkbox v-model="dataInfo.checked" @change="checkChange"></el-checkbox>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="flex-card" v-else :style="cardBoxStyle">
|
|
|
+ <div v-for="(data, dataIndex) in cardList" :key="dataIndex" class="box-card">
|
|
|
+ <el-card>
|
|
|
+ <el-image class="img" :style="{ height: cardInfo.imgHeight + 'px' }" :src="imgVal(data)" alt="" />
|
|
|
+ <div class="title" :style="titleStyle">
|
|
|
<span v-if="cardInfo.title.text != ''">
|
|
|
{{ cardInfo.title.text + ':' }}
|
|
|
</span>
|
|
|
<el-tooltip v-if="cardInfo.title.model != ''" effect="dark" placement="right-start">
|
|
|
<div slot="content">
|
|
|
- {{ getModelName(cardInfo.title, dataInfo, 'title') }}
|
|
|
- </div>
|
|
|
- <span>
|
|
|
- {{ getModelName(cardInfo.title, dataInfo, 'title') }}
|
|
|
- </span>
|
|
|
- </el-tooltip>
|
|
|
- </div>
|
|
|
- <div class="titleRight" :style="subTitleStyle">
|
|
|
- <span v-if="cardInfo.subTitle.text != ''">
|
|
|
- {{ cardInfo.subTitle.text + ':' }}
|
|
|
- </span>
|
|
|
- <el-tooltip v-if="cardInfo.subTitle.model != ''" effect="dark" placement="right-start">
|
|
|
- <div slot="content">
|
|
|
- {{ getModelName(cardInfo.subTitle, dataInfo, 'subTitle') }}
|
|
|
+ {{ getModelName(cardInfo.title.model, data, 'title') }}
|
|
|
</div>
|
|
|
<span>
|
|
|
- {{ getModelName(cardInfo.subTitle, dataInfo, 'subTitle') }}
|
|
|
+ {{ getModelName(cardInfo.title.model, data, 'title') }}
|
|
|
</span>
|
|
|
</el-tooltip>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div v-if="cardInfo.info.data.length > 0" :style="cardInfo.info.class != '' && cardInfo.info.class ? JSON.parse(cardInfo.info.class) : {}">
|
|
|
- <el-row :gutter="10">
|
|
|
- <el-col v-for="(item, index) in cardInfo.info.data" :key="index" :span="cardInfo.info.col">
|
|
|
- <div class="flex-row" :style="infoStyle">
|
|
|
- <div class="left" v-if="item.text != ''">{{ item.text + ':' }}</div>
|
|
|
- <div class="right">
|
|
|
- <el-tooltip v-if="item.model != ''" effect="dark" placement="right-start">
|
|
|
- <div slot="content">
|
|
|
- {{ getModelName(item, dataInfo, 'info') }}
|
|
|
- </div>
|
|
|
- <span>
|
|
|
- {{ getModelName(item, dataInfo, 'info') }}
|
|
|
- </span>
|
|
|
- </el-tooltip>
|
|
|
+ <div v-if="cardInfo.info.data.length > 0" :style="cardInfo.info.class != '' && cardInfo.info.class ? JSON.parse(cardInfo.info.class) : {}">
|
|
|
+ <el-row :gutter="10">
|
|
|
+ <el-col v-for="(item, index) in cardInfo.info.data" :key="index" :span="cardInfo.info.col">
|
|
|
+ <div class="flex-row" :style="infoStyle">
|
|
|
+ <div class="left" v-if="item.text != ''">{{ item.text + ':' }}</div>
|
|
|
+ <div class="right">
|
|
|
+ <el-tooltip v-if="item.model != ''" effect="dark" placement="right-start">
|
|
|
+ <div slot="content">
|
|
|
+ {{ getModelName(item.model, data, 'info') }}
|
|
|
+ </div>
|
|
|
+ <span>
|
|
|
+ {{ getModelName(item.model, data, 'info') }}
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <div class="footer" v-if="btnList.length > 0">
|
|
|
- <div class="btns">
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="footer" v-if="btnList.length > 0">
|
|
|
<template v-for="(item, i) in btnList">
|
|
|
<template v-if="item.value == 'edit'">
|
|
|
<el-button size="mini" type="text" :key="i" :disabled="config.webType == 3 && [1, 2, 5].indexOf(data.flowState) > -1" @click="columnBtnsHandel(item.value, data)"
|
|
@@ -62,94 +134,24 @@
|
|
|
type="text"
|
|
|
:key="i"
|
|
|
class="JNPF-table-delBtn"
|
|
|
- :disabled="config.webType == 3 && [1, 2, 3, 5].indexOf(dataInfo.flowState) > -1"
|
|
|
- @click="columnBtnsHandel(item.value, dataInfo, item)"
|
|
|
+ :disabled="config.webType == 3 && [1, 2, 3, 5].indexOf(data.flowState) > -1"
|
|
|
+ @click="columnBtnsHandel(item.value, data, item)"
|
|
|
>{{ item.label }}
|
|
|
</el-button>
|
|
|
</template>
|
|
|
<template v-if="item.value == 'detail'">
|
|
|
- <el-button size="mini" type="text" :key="i" @click="columnBtnsHandel(item.value, dataInfo)">
|
|
|
+ <el-button size="mini" type="text" :key="i" @click="columnBtnsHandel(item.value, data)">
|
|
|
{{ item.label }}
|
|
|
</el-button>
|
|
|
</template>
|
|
|
<template v-if="item.value == 'rowJournal'">
|
|
|
- <el-button size="mini" type="text" :key="i" @click="columnBtnsHandel(item.value, dataInfo)">{{ item.label }}</el-button>
|
|
|
+ <el-button size="mini" type="text" :key="i" @click="columnBtnsHandel(item.value, data)">{{ item.label }}</el-button>
|
|
|
</template>
|
|
|
</template>
|
|
|
</div>
|
|
|
- <div class="check">
|
|
|
- <el-checkbox v-model="dataInfo.checked" @change="checkChange"></el-checkbox>
|
|
|
- </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-card>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="flex-card" v-else-if="cardInfo.value == 2" :style="cardBoxStyle">
|
|
|
- <div v-for="(data, dataIndex) in cardList" :key="dataIndex" class="box-card">
|
|
|
- <el-card>
|
|
|
- <el-image class="img" :style="{ height: cardInfo.imgHeight + 'px' }" :src="imgVal(data)" alt="" />
|
|
|
- <div class="title" :style="titleStyle">
|
|
|
- <span v-if="cardInfo.title.text != ''">
|
|
|
- {{ cardInfo.title.text + ':' }}
|
|
|
- </span>
|
|
|
- <el-tooltip v-if="cardInfo.title.model != ''" effect="dark" placement="right-start">
|
|
|
- <div slot="content">
|
|
|
- {{ getModelName(cardInfo.title.model, data, 'title') }}
|
|
|
- </div>
|
|
|
- <span>
|
|
|
- {{ getModelName(cardInfo.title.model, data, 'title') }}
|
|
|
- </span>
|
|
|
- </el-tooltip>
|
|
|
- </div>
|
|
|
- <div v-if="cardInfo.info.data.length > 0" :style="cardInfo.info.class != '' && cardInfo.info.class ? JSON.parse(cardInfo.info.class) : {}">
|
|
|
- <el-row :gutter="10">
|
|
|
- <el-col v-for="(item, index) in cardInfo.info.data" :key="index" :span="cardInfo.info.col">
|
|
|
- <div class="flex-row" :style="infoStyle">
|
|
|
- <div class="left" v-if="item.text != ''">{{ item.text + ':' }}</div>
|
|
|
- <div class="right">
|
|
|
- <el-tooltip v-if="item.model != ''" effect="dark" placement="right-start">
|
|
|
- <div slot="content">
|
|
|
- {{ getModelName(item.model, data, 'info') }}
|
|
|
- </div>
|
|
|
- <span>
|
|
|
- {{ getModelName(item.model, data, 'info') }}
|
|
|
- </span>
|
|
|
- </el-tooltip>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <div class="footer" v-if="btnList.length > 0">
|
|
|
- <template v-for="(item, i) in btnList">
|
|
|
- <template v-if="item.value == 'edit'">
|
|
|
- <el-button size="mini" type="text" :key="i" :disabled="config.webType == 3 && [1, 2, 5].indexOf(data.flowState) > -1" @click="columnBtnsHandel(item.value, data)"
|
|
|
- >{{ item.label }}
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- <template v-if="item.value == 'remove'">
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- :key="i"
|
|
|
- class="JNPF-table-delBtn"
|
|
|
- :disabled="config.webType == 3 && [1, 2, 3, 5].indexOf(data.flowState) > -1"
|
|
|
- @click="columnBtnsHandel(item.value, data, item)"
|
|
|
- >{{ item.label }}
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- <template v-if="item.value == 'detail'">
|
|
|
- <el-button size="mini" type="text" :key="i" @click="columnBtnsHandel(item.value, data)">
|
|
|
- {{ item.label }}
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- <template v-if="item.value == 'rowJournal'">
|
|
|
- <el-button size="mini" type="text" :key="i" @click="columnBtnsHandel(item.value, data)">{{ item.label }}</el-button>
|
|
|
- </template>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-card>
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -363,13 +365,17 @@ export default {
|
|
|
} else if (type == 'info') {
|
|
|
let field = this.cardInfo.info.data.find((val) => val.model == model.model)?.field
|
|
|
if (field != undefined) {
|
|
|
- let result = model.apiData.find((val) => {
|
|
|
- if (val[model.apiProps.value] == item[field]) {
|
|
|
- return val
|
|
|
+ if (model.apiData) {
|
|
|
+ let result = model.apiData.find((val) => {
|
|
|
+ if (val[model.apiProps.value] == item[field]) {
|
|
|
+ return val
|
|
|
+ }
|
|
|
+ })?.[model.apiProps.label]
|
|
|
+ if (result != undefined) {
|
|
|
+ return result
|
|
|
+ } else {
|
|
|
+ return item[field]
|
|
|
}
|
|
|
- })?.[model.apiProps.label]
|
|
|
- if (result != undefined) {
|
|
|
- return result
|
|
|
} else {
|
|
|
return item[field]
|
|
|
}
|