|
@@ -1,211 +1,224 @@
|
|
|
<template>
|
|
|
- <div @click.stop>
|
|
|
+ <div>
|
|
|
<div
|
|
|
v-if="isExpand && analyticFeedback"
|
|
|
style="padding-top: 10px;"
|
|
|
v-html="analyticFeedback"
|
|
|
/>
|
|
|
- <el-table
|
|
|
- :data="tableData"
|
|
|
- border
|
|
|
- style="width: 100%; margin-top: 10px"
|
|
|
- highlight-current-row
|
|
|
- row-key="rowKey"
|
|
|
- :expand-row-keys="expandRowKeys"
|
|
|
- :header-cell-style="{
|
|
|
- background: '#F7F7F7',
|
|
|
- color: '#4a4a4a',
|
|
|
- 'font-size': '14px',
|
|
|
- 'font-weight': '500'
|
|
|
- }"
|
|
|
- :cell-style="{ 'font-size': '14px', color: 'rgb(102,102,102)' }"
|
|
|
- size="small"
|
|
|
- show-overflow-tooltip="true"
|
|
|
- >
|
|
|
- <!-- <el-table-column v-if="index === 0 && tabsActive.indexOf('本月重点问题') > -1
|
|
|
- && pageType !== 'edit' ? 'expand' : ''" label="展开" type="expand"> -->
|
|
|
- <el-table-column
|
|
|
- v-for="(item, index) in setColumns(columns)"
|
|
|
- :key="item.headerKey"
|
|
|
- :data-index="index"
|
|
|
- :prop="item.headerKey"
|
|
|
- :align="item.align"
|
|
|
- :label="item.name"
|
|
|
- :type="item.type"
|
|
|
- :min-width="setMinWidth(item)"
|
|
|
- :fixed="isFixed(item, index, columns)"
|
|
|
+ <span @click.stop>
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ style="width: 100%; margin-top: 10px"
|
|
|
+ highlight-current-row
|
|
|
+ row-key="rowKey"
|
|
|
+ :expand-row-keys="expandRowKeys"
|
|
|
+ :header-cell-style="{
|
|
|
+ background: '#F7F7F7',
|
|
|
+ color: '#4a4a4a',
|
|
|
+ 'font-size': '14px',
|
|
|
+ 'font-weight': '500'
|
|
|
+ }"
|
|
|
+ :cell-style="{ 'font-size': '14px', color: 'rgb(102,102,102)' }"
|
|
|
+ size="small"
|
|
|
+ show-overflow-tooltip="true"
|
|
|
>
|
|
|
- <template slot-scope="scope">
|
|
|
- <!-- 展开 -->
|
|
|
- <div v-if="item.type === 'expand'">
|
|
|
- <TableExpandRow
|
|
|
- :analytic-feedback="scope.row.analyticFeedback"
|
|
|
- @upAnalyticFeedback="setAnalyticFeedback"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <!-- 操作列 -->
|
|
|
- <div v-else-if="item.name === '操作'">
|
|
|
- <div v-if="isExpand">
|
|
|
- <el-button
|
|
|
- v-if="isShowButton(scope.row, item)"
|
|
|
- type="text"
|
|
|
- @click.stop="btnFun({ value: '分析反馈' }, scope)"
|
|
|
- >分析反馈
|
|
|
- </el-button>
|
|
|
+ <!-- <el-table-column v-if="index === 0 && tabsActive.indexOf('本月重点问题') > -1
|
|
|
+ && pageType !== 'edit' ? 'expand' : ''" label="展开" type="expand"> -->
|
|
|
+ <el-table-column
|
|
|
+ v-for="(item, index) in setColumns(columns)"
|
|
|
+ :key="item.headerKey"
|
|
|
+ :data-index="index"
|
|
|
+ :prop="item.headerKey"
|
|
|
+ :align="item.align"
|
|
|
+ :label="item.name"
|
|
|
+ :type="item.type"
|
|
|
+ :min-width="setMinWidth(item)"
|
|
|
+ :fixed="isFixed(item, index, columns)"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <!-- 展开 -->
|
|
|
+ <div v-if="item.type === 'expand'">
|
|
|
+ <TableExpandRow
|
|
|
+ :analytic-feedback="scope.row.analyticFeedback"
|
|
|
+ @upAnalyticFeedback="setAnalyticFeedback"
|
|
|
+ />
|
|
|
</div>
|
|
|
- <span v-else>
|
|
|
- <span
|
|
|
- v-for="(btnItem, btnIndex) in item.defaultValue"
|
|
|
- :key="btnIndex"
|
|
|
- >
|
|
|
+ <!-- 操作列 -->
|
|
|
+ <div v-else-if="item.name === '操作'">
|
|
|
+ <div v-if="isExpand">
|
|
|
<el-button
|
|
|
v-if="isShowButton(scope.row, item)"
|
|
|
- style="margin-right: 10px"
|
|
|
type="text"
|
|
|
- @click.stop="btnFun(btnItem, scope)"
|
|
|
- >{{ btnItem.value }}</el-button
|
|
|
+ @click.stop="btnFun({ value: '分析反馈' }, scope)"
|
|
|
+ >分析反馈
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <span v-else>
|
|
|
+ <span
|
|
|
+ v-for="(btnItem, btnIndex) in item.defaultValue"
|
|
|
+ :key="btnIndex"
|
|
|
>
|
|
|
+ <el-button
|
|
|
+ v-if="isShowButton(scope.row, item)"
|
|
|
+ style="margin-right: 10px"
|
|
|
+ type="text"
|
|
|
+ @click.stop="btnFun(btnItem, scope)"
|
|
|
+ >{{ btnItem.value }}</el-button
|
|
|
+ >
|
|
|
+ </span>
|
|
|
</span>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-else
|
|
|
- class="edit-wrapper"
|
|
|
- :style="{
|
|
|
- cursor: 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
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ v-else
|
|
|
+ class="edit-wrapper"
|
|
|
+ :style="{
|
|
|
+ cursor: 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]"
|
|
|
- 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"
|
|
|
- />
|
|
|
+ placeholder="请选择"
|
|
|
+ style="width: 80%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="optionItem in item.selectEnum"
|
|
|
+ :key="optionItem"
|
|
|
+ :label="optionItem"
|
|
|
+ :value="optionItem"
|
|
|
+ >{{ optionItem }}
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
</div>
|
|
|
- <div
|
|
|
- v-else-if="item.selectType && item.selectType === 'people'"
|
|
|
- >
|
|
|
- <searchPeople
|
|
|
- :value.sync="scope.row[item.headerKey]"
|
|
|
- :multiple="true"
|
|
|
- />
|
|
|
+
|
|
|
+ <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 === 'Cascader'">
|
|
|
+ <Cascader v-model="scope.row[item.headerKey]" />
|
|
|
</div>
|
|
|
- <el-select
|
|
|
+ <div v-else-if="item.defaultValue === 'Select'" />
|
|
|
+ <el-input
|
|
|
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>
|
|
|
+ maxlength="100"
|
|
|
+ show-word-limit
|
|
|
+ placeholder="请输入"
|
|
|
+ />
|
|
|
</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 === 'Cascader'">
|
|
|
- <Cascader v-model="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <div v-else-if="item.defaultValue === 'Select'" />
|
|
|
- <el-input
|
|
|
+ <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
|
|
|
- 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 === 'Select'">
|
|
|
- <!-- 单个人员选择 -->
|
|
|
- <div
|
|
|
- v-if="item.selectType && item.selectType === 'SinglePeople'"
|
|
|
- >
|
|
|
- <MultiplePeopleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
+ 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.selectType && item.selectType === 'MultiplePeople'
|
|
|
- "
|
|
|
- >
|
|
|
- <!-- <searchPeople :value.sync="scope.row[item.headerKey]"
|
|
|
+ <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]" />
|
|
|
+ <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.selectType && item.selectType === 'people'"
|
|
|
- >
|
|
|
- <MultiplePeopleInfo :team-data="scope.row[item.headerKey]" />
|
|
|
+ <div v-else-if="item.displayType === 'Texterea'">
|
|
|
+ <TextInfo :text="scope.row[item.headerKey]" />
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
- {{ scope.row[item.headerKey] }}
|
|
|
+ <span v-html="scope.row[item.headerKey]" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-else-if="item.displayType === 'Texterea'">
|
|
|
- <TextInfo :text="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
- <div v-else>
|
|
|
- <span v-html="scope.row[item.headerKey]" />
|
|
|
- </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="plus-table-data" :style="{ marginBottom: plusTableDataBottom }">
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </span>
|
|
|
+
|
|
|
+ <div
|
|
|
+ class="plus-table-data"
|
|
|
+ :style="{ marginBottom: plusTableDataBottom }"
|
|
|
+ @click.stop
|
|
|
+ >
|
|
|
<el-button
|
|
|
v-if="pageDate && pageDate.status < 20"
|
|
|
type="text"
|
|
@@ -215,9 +228,11 @@
|
|
|
新增
|
|
|
</el-button>
|
|
|
</div>
|
|
|
- <slot name="fixedText" />
|
|
|
- <markingIssues ref="markingIssues" />
|
|
|
- <Analysis ref="Analysis" @upData="upDataAnalysis" />
|
|
|
+ <span @click.stop>
|
|
|
+ <slot name="fixedText" />
|
|
|
+ <markingIssues ref="markingIssues" />
|
|
|
+ <Analysis ref="Analysis" @upData="upDataAnalysis" />
|
|
|
+ </span>
|
|
|
</div>
|
|
|
</template>
|
|
|
|