|
@@ -1,10 +1,6 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <div
|
|
|
- v-if="isExpand && analyticFeedback"
|
|
|
- style="padding-top: 10px;"
|
|
|
- v-html="analyticFeedback"
|
|
|
- />
|
|
|
+ <div v-if="isExpand && analyticFeedback" style="padding-top: 10px;" v-html="analyticFeedback" />
|
|
|
<span @click.stop>
|
|
|
<el-table
|
|
|
:data="tableData"
|
|
@@ -79,8 +75,8 @@
|
|
|
</el-dropdown-menu>
|
|
|
</el-dropdown>
|
|
|
</span>
|
|
|
- <!--链接-->
|
|
|
- <span v-else-if="btnItem.value === '链接' && isShowButton(scope.row, item)" @click.stop>
|
|
|
+ <!--链接-->
|
|
|
+ <span v-else-if="btnItem.value === '链接' && isShowButton(scope.row, item)" @click.stop>
|
|
|
<el-popover
|
|
|
v-if="scope.row.operationTarget"
|
|
|
placement="bottom-start"
|
|
@@ -100,132 +96,74 @@
|
|
|
@click.stop="btnFun(btnItem, scope)"
|
|
|
>链接</el-button>
|
|
|
</span>
|
|
|
- <el-button
|
|
|
- v-else-if="isShowButton(scope.row, item)"
|
|
|
- style="margin-right: 10px"
|
|
|
- type="text"
|
|
|
- @click.stop="btnFun(btnItem, scope)"
|
|
|
- >{{ btnItem.value }}</el-button
|
|
|
- >
|
|
|
- </span>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-else
|
|
|
- class="edit-wrapper"
|
|
|
- :style="{
|
|
|
- cursor: pageDate && pageDate.status < 20 ? 'pointer' : 'auto'
|
|
|
- }"
|
|
|
- >
|
|
|
- <!-- <div v-if="editKeys.indexOf(`${scope.row.rowKey}_${index}`) > -1"> -->
|
|
|
- <div v-if="editKeys.indexOf(domKey) > -1 && !item.defaultValue">
|
|
|
- <div v-if="item.displayType === 'Select'">
|
|
|
- <div v-if="item.selectType && item.selectType === 'Time'">
|
|
|
- <el-date-picker
|
|
|
- v-model="scope.row[item.headerKey]"
|
|
|
- type="date"
|
|
|
- style="width: 90%"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- size="mini"
|
|
|
- placeholder="选择日期"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-else-if="item.selectType && item.selectType === 'SinglePeople'">
|
|
|
- <searchPeople :value.sync="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-else-if="item.selectType && item.selectType === 'MultiplePeople'">
|
|
|
- <searchPeople
|
|
|
- :value.sync="scope.row[item.headerKey]"
|
|
|
- :multiple="true"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-else-if="item.selectType && item.selectType === 'people'"
|
|
|
- >
|
|
|
- <searchPeople
|
|
|
- :value.sync="scope.row[item.headerKey]"
|
|
|
- :multiple="true"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <el-select
|
|
|
- v-else
|
|
|
- v-model="scope.row[item.headerKey]"
|
|
|
- size="mini"
|
|
|
- placeholder="请选择"
|
|
|
- style="width: 80%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="optionItem in item.selectEnum"
|
|
|
- :key="optionItem"
|
|
|
- :label="optionItem"
|
|
|
- :value="optionItem"
|
|
|
- >{{ optionItem }}
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- <el-input
|
|
|
- v-else-if="item.displayType === 'Texterea'"
|
|
|
- v-model="scope.row[item.headerKey]"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入"
|
|
|
- :maxlength="item.name.search(/天数/) > -1 ? 10 : ''"
|
|
|
- :autosize="{
|
|
|
- minRows: item.name.search(/天数/) > -1 ? 1 : 2,
|
|
|
- maxRows: 30
|
|
|
- }"
|
|
|
- show-word-limit
|
|
|
- />
|
|
|
- <div v-else-if="item.displayType === 'CascaderSingle'">
|
|
|
- <CascaderSingle v-model="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <div v-else-if="item.displayType === 'Cascader'">
|
|
|
- <Cascader v-model="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <div v-else-if="item.defaultValue === 'Select'" />
|
|
|
- <el-input
|
|
|
- v-else
|
|
|
- v-model="scope.row[item.headerKey]"
|
|
|
- size="mini"
|
|
|
- maxlength="100"
|
|
|
- show-word-limit
|
|
|
- placeholder="请输入"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <span v-else-if="item.displayType === 'Text'">{{ item.defaultValue[0].value }}</span>
|
|
|
- <!-- <div v-else class="edit-cell" @click.stop="editLine(scope.row, index)"> -->
|
|
|
- <div v-else class="edit-cell" @click.stop="editLine(scope.row, index)">
|
|
|
- <div v-if="item.displayType === 'Cascader'">
|
|
|
- <CascaderInfo :team-data="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <div v-else-if="item.displayType === 'CascaderSingle'">
|
|
|
- <CascaderSingleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <div v-else-if="item.displayType === 'Select'">
|
|
|
- <!-- 单个人员选择 -->
|
|
|
- <div v-if="item.selectType && item.selectType === 'SinglePeople'">
|
|
|
- <MultiplePeopleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <!-- 多个人员选择 -->
|
|
|
- <div v-else-if=" item.selectType && item.selectType === 'MultiplePeople'">
|
|
|
- <!-- <searchPeople :value.sync="scope.row[item.headerKey]"
|
|
|
+ <el-button v-else-if="isShowButton(scope.row, item)" style="margin-right: 10px" type="text" @click.stop="btnFun(btnItem, scope)">{{ btnItem.value }}</el-button>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div v-else class="edit-wrapper" :style="{ cursor: pageDate && pageDate.status < 20 ? 'pointer' : 'auto' }">
|
|
|
+ <!-- <div v-if="editKeys.indexOf(`${scope.row.rowKey}_${index}`) > -1"> -->
|
|
|
+ <div v-if="editKeys.indexOf(domKey) > -1 && !item.defaultValue">
|
|
|
+ <div v-if="item.displayType === 'Select'">
|
|
|
+ <div v-if="item.selectType && item.selectType === 'Time'">
|
|
|
+ <el-date-picker v-model="scope.row[item.headerKey]" type="date" style="width: 90%" value-format="yyyy-MM-dd" size="mini" placeholder="选择日期" />
|
|
|
+ </div>
|
|
|
+ <div v-else-if="item.selectType && item.selectType === 'SinglePeople'">
|
|
|
+ <searchPeople :value.sync="scope.row[item.headerKey]" />
|
|
|
+ </div>
|
|
|
+ <div v-else-if="item.selectType && item.selectType === 'MultiplePeople'">
|
|
|
+ <searchPeople :value.sync="scope.row[item.headerKey]" :multiple="true" />
|
|
|
+ </div>
|
|
|
+ <div v-else-if="item.selectType && item.selectType === 'people'">
|
|
|
+ <searchPeople :value.sync="scope.row[item.headerKey]" :multiple="true" />
|
|
|
+ </div>
|
|
|
+ <el-select v-else v-model="scope.row[item.headerKey]" size="mini" placeholder="请选择" style="width: 80%">
|
|
|
+ <el-option v-for="optionItem in item.selectEnum" :key="optionItem" :label="optionItem" :value="optionItem">{{ optionItem }}
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ <el-input v-else-if="item.displayType === 'Texterea'" v-model="scope.row[item.headerKey]" type="textarea" placeholder="请输入" :maxlength="item.name.search(/天数/) > -1 ? 10 : ''" :autosize="{ minRows: item.name.search(/天数/) > -1 ? 1 : 2, maxRows: 30 }" show-word-limit />
|
|
|
+ <div v-else-if="item.displayType === 'CascaderSingle'">
|
|
|
+ <CascaderSingle v-model="scope.row[item.headerKey]" />
|
|
|
+ </div>
|
|
|
+ <div v-else-if="item.displayType === 'Cascader'">
|
|
|
+ <Cascader v-model="scope.row[item.headerKey]" />
|
|
|
+ </div>
|
|
|
+ <div v-else-if="item.defaultValue === 'Select'" />
|
|
|
+ <el-input v-else v-model="scope.row[item.headerKey]" size="mini" maxlength="100" show-word-limit placeholder="请输入" />
|
|
|
+ </div>
|
|
|
+ <span v-else-if="item.displayType === 'Text'">{{ item.defaultValue[0].value }}</span>
|
|
|
+ <!-- <div v-else class="edit-cell" @click.stop="editLine(scope.row, index)"> -->
|
|
|
+ <div v-else class="edit-cell" @click.stop="editLine(scope.row, index)">
|
|
|
+ <div v-if="item.displayType === 'Cascader'">
|
|
|
+ <CascaderInfo :team-data="scope.row[item.headerKey]" />
|
|
|
+ </div>
|
|
|
+ <div v-else-if="item.displayType === 'CascaderSingle'">
|
|
|
+ <CascaderSingleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
+ </div>
|
|
|
+ <div v-else-if="item.displayType === 'Select'">
|
|
|
+ <!-- 单个人员选择 -->
|
|
|
+ <div v-if="item.selectType && item.selectType === 'SinglePeople'">
|
|
|
+ <MultiplePeopleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
+ </div>
|
|
|
+ <!-- 多个人员选择 -->
|
|
|
+ <div v-else-if=" item.selectType && item.selectType === 'MultiplePeople'">
|
|
|
+ <!-- <searchPeople :value.sync="scope.row[item.headerKey]"
|
|
|
:multiple="true" disabled />-->
|
|
|
- <MultiplePeopleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <!-- 多个人员选择 -->
|
|
|
- <div v-else-if="item.selectType && item.selectType === 'people'">
|
|
|
- <MultiplePeopleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <div v-else>
|
|
|
- {{ scope.row[item.headerKey] }}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-else-if="item.displayType === 'Texterea'" :style="{cursor: item.name === '问题' && scope.row.operationTarget ? 'pointer' : 'auto'}" @click.stop="item.name === '问题' && goto(scope.row.operationTarget)">
|
|
|
- <TextInfo :text="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <div v-else>
|
|
|
- <span v-html="scope.row[item.headerKey]" />
|
|
|
+ <MultiplePeopleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
+ </div>
|
|
|
+ <!-- 多个人员选择 -->
|
|
|
+ <div v-else-if="item.selectType && item.selectType === 'people'">
|
|
|
+ <MultiplePeopleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
+ </div>
|
|
|
+ <div v-else>
|
|
|
+ {{ scope.row[item.headerKey] }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-else-if="item.displayType === 'Texterea'" :style="{cursor: item.name === '问题' && scope.row.operationTarget ? 'pointer' : 'auto'}" @click.stop="item.name === '问题' && goto(scope.row.operationTarget)">
|
|
|
+ <TextInfo :text="scope.row[item.headerKey]" />
|
|
|
+ </div>
|
|
|
+ <div v-else>
|
|
|
+ <span v-html="scope.row[item.headerKey]" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -234,27 +172,19 @@
|
|
|
</el-table>
|
|
|
</span>
|
|
|
|
|
|
- <div
|
|
|
- class="plus-table-data"
|
|
|
- :style="{ marginBottom: plusTableDataBottom }"
|
|
|
- @click.stop
|
|
|
- >
|
|
|
- <el-button
|
|
|
- v-if="pageDate && pageDate.status < 20"
|
|
|
- type="text"
|
|
|
- @click.stop="addTableData"
|
|
|
- >
|
|
|
- <svg-icon icon-class="data-plus" class="icon" />
|
|
|
- 新增
|
|
|
- </el-button>
|
|
|
- </div>
|
|
|
- <span @click.stop>
|
|
|
+ <div class="plus-table-data" :style="{ marginBottom: plusTableDataBottom }" @click.stop>
|
|
|
+ <el-button v-if="pageDate && pageDate.status < 20" type="text" @click.stop="addTableData">
|
|
|
+ <svg-icon icon-class="data-plus" class="icon" />
|
|
|
+ 新增
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <span @click.stop>
|
|
|
<slot name="fixedText" />
|
|
|
<markingIssues ref="markingIssues" />
|
|
|
<Analysis ref="Analysis" @upData="upDataAnalysis" />
|
|
|
<LinkEdit ref="LinkEdit" @change="linkEditChange" />
|
|
|
</span>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
@@ -654,71 +584,72 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="less">
|
|
|
-.edit-wrapper {
|
|
|
- .edit-cell {
|
|
|
- min-height: 23px;
|
|
|
- width: 100%;
|
|
|
+ .edit-wrapper {
|
|
|
+ .edit-cell {
|
|
|
+ min-height: 23px;
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
-.plus-table-data {
|
|
|
- margin-top: 2px;
|
|
|
-}
|
|
|
-
|
|
|
-/deep/ .el-table__expand-column {
|
|
|
- border-right: 0;
|
|
|
|
|
|
- .el-icon-arrow-right:before {
|
|
|
- // 这是展开图标
|
|
|
- border: 1px solid rgba(0, 0, 0, 0.14901960784313725);
|
|
|
+ .plus-table-data {
|
|
|
+ margin-top: 2px;
|
|
|
}
|
|
|
-}
|
|
|
|
|
|
-/deep/ .el-table__expand-column .cell {
|
|
|
- .el-table__expand-icon {
|
|
|
+ /deep/ .el-table__expand-column {
|
|
|
+ border-right: 0;
|
|
|
+
|
|
|
.el-icon-arrow-right:before {
|
|
|
// 这是展开图标
|
|
|
- content: '\e6d9';
|
|
|
- //content: "\e6d8";
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.14901960784313725);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .el-table__expand-icon--expanded {
|
|
|
- // 这是点击后的旋转角度
|
|
|
- //transform: rotate(180deg);
|
|
|
- transform: rotate(0deg);
|
|
|
+ /deep/ .el-table__expand-column .cell {
|
|
|
+ .el-table__expand-icon {
|
|
|
+ .el-icon-arrow-right:before {
|
|
|
+ // 这是展开图标
|
|
|
+ content: '\e6d9';
|
|
|
+ //content: "\e6d8";
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .el-icon-arrow-right:before {
|
|
|
- // 这是展开图标
|
|
|
- //content: "\e6d9";
|
|
|
- content: '\e6d8' !important;
|
|
|
+ .el-table__expand-icon--expanded {
|
|
|
+ // 这是点击后的旋转角度
|
|
|
+ //transform: rotate(180deg);
|
|
|
+ transform: rotate(0deg);
|
|
|
+
|
|
|
+ .el-icon-arrow-right:before {
|
|
|
+ // 这是展开图标
|
|
|
+ //content: "\e6d9";
|
|
|
+ content: '\e6d8' !important;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
|
|
|
-/deep/ .svg-icon {
|
|
|
- width: 1em;
|
|
|
- height: 1em;
|
|
|
-}
|
|
|
+ /deep/ .svg-icon {
|
|
|
+ width: 1em;
|
|
|
+ height: 1em;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .el-table__expanded-cell {
|
|
|
- padding-bottom: 0;
|
|
|
- padding-left: 60px;
|
|
|
-}
|
|
|
+ /deep/ .el-table__expanded-cell {
|
|
|
+ padding-bottom: 0;
|
|
|
+ padding-left: 60px;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .el-button {
|
|
|
- font-weight: 400;
|
|
|
-}
|
|
|
+ /deep/ .el-button {
|
|
|
+ font-weight: 400;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .red {
|
|
|
- color: red;
|
|
|
-}
|
|
|
+ /deep/ .red {
|
|
|
+ color: red;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .green {
|
|
|
- color: green;
|
|
|
-}
|
|
|
+ /deep/ .green {
|
|
|
+ color: green;
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/ .yellow {
|
|
|
+ color: yellow;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .yellow {
|
|
|
- color: yellow;
|
|
|
-}
|
|
|
</style>
|