|
@@ -70,7 +70,7 @@
|
|
|
@keyup.enter.native="handleSearch"
|
|
@keyup.enter.native="handleSearch"
|
|
|
@submit.native.prevent
|
|
@submit.native.prevent
|
|
|
>
|
|
>
|
|
|
- <el-row :gutter="[20, 20]" style="row-gap: 20px">
|
|
|
|
|
|
|
+ <el-row :gutter="20" style="row-gap: 20px">
|
|
|
<el-col v-bind="{ span: 5 }">
|
|
<el-col v-bind="{ span: 5 }">
|
|
|
<el-form-item
|
|
<el-form-item
|
|
|
label="关键字:"
|
|
label="关键字:"
|
|
@@ -257,29 +257,8 @@
|
|
|
overflow-y: auto;
|
|
overflow-y: auto;
|
|
|
"
|
|
"
|
|
|
>
|
|
>
|
|
|
- <template
|
|
|
|
|
- v-if="row?.formJson?.makingJson"
|
|
|
|
|
- v-for="(item, index) in JSON.parse(
|
|
|
|
|
- row?.formJson?.makingJson
|
|
|
|
|
- )?.list.filter(
|
|
|
|
|
- (val) =>
|
|
|
|
|
- ![
|
|
|
|
|
- 'grid',
|
|
|
|
|
- 'blank',
|
|
|
|
|
- 'report',
|
|
|
|
|
- 'component',
|
|
|
|
|
- 'card',
|
|
|
|
|
- 'collapse',
|
|
|
|
|
- 'tabs',
|
|
|
|
|
- 'inline',
|
|
|
|
|
- 'divider',
|
|
|
|
|
- 'alert',
|
|
|
|
|
- 'table',
|
|
|
|
|
- 'subform',
|
|
|
|
|
- 'dialog'
|
|
|
|
|
- ].includes(val.type)
|
|
|
|
|
- )"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <template v-if="getRowRemarkList(row).length">
|
|
|
|
|
+ <template v-for="item in getRowRemarkList(row)">
|
|
|
<div style="display: flex">
|
|
<div style="display: flex">
|
|
|
<div>{{ item.name }}:</div>
|
|
<div>{{ item.name }}:</div>
|
|
|
<div v-if="item.type == 'imgupload'">
|
|
<div v-if="item.type == 'imgupload'">
|
|
@@ -333,6 +312,7 @@
|
|
|
{{ formatValue(row[item.model]) }}
|
|
{{ formatValue(row[item.model]) }}
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ </template>
|
|
|
</template>
|
|
</template>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
@@ -377,6 +357,7 @@
|
|
|
import { listOrganizations } from '@/api/system/organization';
|
|
import { listOrganizations } from '@/api/system/organization';
|
|
|
import tabMixins from '@/mixins/tableColumnsMixin';
|
|
import tabMixins from '@/mixins/tableColumnsMixin';
|
|
|
import { getGroupUserTree } from '@/api/main';
|
|
import { getGroupUserTree } from '@/api/main';
|
|
|
|
|
+ import { getToken, getCurrentUser } from '@/utils/token-util';
|
|
|
|
|
|
|
|
// 默认表单数据
|
|
// 默认表单数据
|
|
|
const defaultParams = {
|
|
const defaultParams = {
|
|
@@ -604,6 +585,34 @@
|
|
|
this.handleSearch();
|
|
this.handleSearch();
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ // 安全解析行的 formJson.list,过滤掉布局类控件;makingJson 为空或非法时返回 []
|
|
|
|
|
+ getRowRemarkList(row) {
|
|
|
|
|
+ const makingJson = row && row.formJson && row.formJson.makingJson;
|
|
|
|
|
+ if (!makingJson || typeof makingJson !== 'string') return [];
|
|
|
|
|
+ let parsed;
|
|
|
|
|
+ try {
|
|
|
|
|
+ parsed = JSON.parse(makingJson);
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ return [];
|
|
|
|
|
+ }
|
|
|
|
|
+ const list = (parsed && parsed.list) || [];
|
|
|
|
|
+ const excludeTypes = [
|
|
|
|
|
+ 'grid',
|
|
|
|
|
+ 'blank',
|
|
|
|
|
+ 'report',
|
|
|
|
|
+ 'component',
|
|
|
|
|
+ 'card',
|
|
|
|
|
+ 'collapse',
|
|
|
|
|
+ 'tabs',
|
|
|
|
|
+ 'inline',
|
|
|
|
|
+ 'divider',
|
|
|
|
|
+ 'alert',
|
|
|
|
|
+ 'table',
|
|
|
|
|
+ 'subform',
|
|
|
|
|
+ 'dialog'
|
|
|
|
|
+ ];
|
|
|
|
|
+ return list.filter((val) => val && !excludeTypes.includes(val.type));
|
|
|
|
|
+ },
|
|
|
formatValue(value) {
|
|
formatValue(value) {
|
|
|
if (value === null || value === undefined) {
|
|
if (value === null || value === undefined) {
|
|
|
return ''; // 空值处理
|
|
return ''; // 空值处理
|