Commit 4a344f20 authored by tianhongyang's avatar tianhongyang

fix bug

parent 3ff59684
...@@ -37,7 +37,12 @@ ...@@ -37,7 +37,12 @@
<!-- 详情模式下 --> <!-- 详情模式下 -->
<template v-if="!isModify && detailTypes.includes(comCustomItem.comType)"> <template v-if="!isModify && detailTypes.includes(comCustomItem.comType)">
<div class="dsk-cutom-form-render-detail-item"> <div class="dsk-cutom-form-render-detail-item">
{{detailRender(comCustomItem)}} <div class="render-detail-item-inner">
<dsk-text-over-flow-tip>
<span>{{detailRender(comCustomItem)}}</span>
<template slot="overflow">{{detailRender(comCustomItem)}}</template>
</dsk-text-over-flow-tip>
</div>
</div> </div>
</template> </template>
</el-form-item> </el-form-item>
...@@ -48,12 +53,14 @@ ...@@ -48,12 +53,14 @@
import DskEmailInput from "@/components/DskEmailInput"; import DskEmailInput from "@/components/DskEmailInput";
import DskPhotoInput from "@/components/DskPhotoInput"; import DskPhotoInput from "@/components/DskPhotoInput";
import DskFileInput from "@/components/DskFileInput"; import DskFileInput from "@/components/DskFileInput";
import DskTextOverFlowTip from "@/components/DskTextOverFlowTip";
export default { export default {
name: "dskCustomItemRender", name: "dskCustomItemRender",
components: { components: {
DskEmailInput, DskEmailInput,
DskPhotoInput, DskPhotoInput,
DskFileInput DskFileInput,
DskTextOverFlowTip
}, },
props: { props: {
customItem: Object, customItem: Object,
...@@ -168,9 +175,6 @@ export default { ...@@ -168,9 +175,6 @@ export default {
} }
} }
::v-deep &.custom-render-item-textarea {
}
::v-deep .dsk-custom-form-render-item { ::v-deep .dsk-custom-form-render-item {
.dsk-cutom-form-render-detail-item { .dsk-cutom-form-render-detail-item {
width: 100%; width: 100%;
...@@ -180,6 +184,20 @@ export default { ...@@ -180,6 +184,20 @@ export default {
line-height: 40px; line-height: 40px;
padding: 9px 12px; padding: 9px 12px;
box-sizing: border-box; box-sizing: border-box;
.render-detail-item-inner {
width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
}
::v-deep &.custom-render-item-textarea {
.dsk-custom-form-render-item {
.dsk-cutom-form-render-detail-item {
}
} }
} }
} }
......
...@@ -6,8 +6,10 @@ ...@@ -6,8 +6,10 @@
<slot :optionData="item"> <slot :optionData="item">
<div class="email-type-option"> <div class="email-type-option">
<div class="email-type-inner"> <div class="email-type-inner">
<div class="email-icon-box"></div> <!-- <div class="email-icon-box"></div> -->
<div class="email-content-box">{{item.value}}</div> <div class="email-content-box">
<div class="email-content-box-inner">{{item.value}}</div>
</div>
</div> </div>
<div class="email-vfx-box"></div> <div class="email-vfx-box"></div>
</div> </div>
...@@ -159,6 +161,7 @@ export default { ...@@ -159,6 +161,7 @@ export default {
</style> </style>
<style lang="scss"> <style lang="scss">
.dsk-email-options-popper { .dsk-email-options-popper {
min-width: 240px;
.el-autocomplete-suggestion__wrap { .el-autocomplete-suggestion__wrap {
.el-autocomplete-suggestion__list { .el-autocomplete-suggestion__list {
& > [id*="el-autocomplete"] { & > [id*="el-autocomplete"] {
...@@ -208,13 +211,21 @@ export default { ...@@ -208,13 +211,21 @@ export default {
} }
.email-content-box { .email-content-box {
width: calc(100% - 40px); /* width: calc(100% - 40px); */
width: 100%;
height: 100%; height: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
box-sizing: border-box; box-sizing: border-box;
margin-left: 16px; margin-left: 16px;
color: rgba(35, 35, 35, 0.8); color: rgba(35, 35, 35, 0.8);
.email-content-box-inner {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
} }
} }
} }
......
<template>
<div class="dsk-text-over-flow-tip">
<el-tooltip class="item" placement="top" effect="dark" ref="elToolTip" :disabled="tipDisable">
<div class="text-over-flow-tip-inner" :class="[$attrs['custom-class'] ? $attrs['custom-class'] : '' ]" @mouseover.stop.self="textHover">
<slot></slot>
</div>
<template slot="content">
<slot name="overflow"></slot>
</template>
</el-tooltip>
</div>
</template>
<script>
// 只能传入一个根元素 不能多级
export default {
name: "dskTextOverFlowTip",
data() {
return {
tipDisable: true
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
textHover(e) {
/**
* @type {{
* target : HTMLDivElement
* }}
*/
const { target } = e;
const clientWidth = target.clientWidth;
const scrollWidth = target.scrollWidth;
if (scrollWidth > clientWidth) {
this.tipDisable = false;
} else {
this.tipDisable = true;
}
},
},
}
</script>
<style lang="scss" scoped>
.dsk-text-over-flow-tip {
width: 100%;
.text-over-flow-tip-inner {
width: 100%;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
}
</style>
...@@ -111,7 +111,7 @@ export const defaultComOptions = [ ...@@ -111,7 +111,7 @@ export const defaultComOptions = [
// 展示label // 展示label
label: "下拉选项", label: "下拉选项",
// 组件宽度 // 组件宽度
width: 100, width: 50,
selectOptions: [], selectOptions: [],
// 是否多选 // 是否多选
isMultiple: false, isMultiple: false,
...@@ -145,7 +145,7 @@ export const defaultComOptions = [ ...@@ -145,7 +145,7 @@ export const defaultComOptions = [
// 展示label // 展示label
label: "日期/时间", label: "日期/时间",
// 组件宽度 // 组件宽度
width: 100, width: 50,
isError: false, isError: false,
allowDefaultValue: false allowDefaultValue: false
}, },
...@@ -198,7 +198,7 @@ export const defaultComOptions = [ ...@@ -198,7 +198,7 @@ export const defaultComOptions = [
// 展示label // 展示label
label: "电话", label: "电话",
// 组件宽度 // 组件宽度
width: 100, width: 50,
isError: false, isError: false,
allowDefaultValue: false allowDefaultValue: false
}, },
...@@ -252,7 +252,7 @@ export const defaultComOptions = [ ...@@ -252,7 +252,7 @@ export const defaultComOptions = [
// 展示label // 展示label
label: "电子邮箱", label: "电子邮箱",
// 组件宽度 // 组件宽度
width: 100, width: 50,
isError: false, isError: false,
allowDefaultValue: false allowDefaultValue: false
}, },
......
...@@ -51,8 +51,8 @@ ...@@ -51,8 +51,8 @@
<div class="custom-form-design-field-options"> <div class="custom-form-design-field-options">
<div class="design-header field-options-header">字段设置</div> <div class="design-header field-options-header">字段设置</div>
<div class="design-main field-options-main"> <div class="design-main field-options-main">
<set-field-option v-if="showSetOption" :activeFieldData="activeItemData" :activeUid="activeUid" :parentUid="activeModuleId" <set-field-option v-if="showSetOption" :activeFieldData="activeItemData" :activeFieldOrigin="activeItemDataOrigin" :activeUid="activeUid"
ref="setFieldOptionRef" @cancelSetOptions="cancelSetOptions" @setOptionsFinish="setOptionsFinish" :parentUid="activeModuleId" ref="setFieldOptionRef" @cancelSetOptions="cancelSetOptions" @setOptionsFinish="setOptionsFinish"
@backfileData="backfileData"></set-field-option> @backfileData="backfileData"></set-field-option>
</div> </div>
</div> </div>
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
:custom-class="'subfield-module-dialog-inner'" @close="removeDialogClose"> :custom-class="'subfield-module-dialog-inner'" @close="removeDialogClose">
<div class="subfield-module-dialog-content"> <div class="subfield-module-dialog-content">
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_tips@2x.png" alt=""> <img src="@/assets/images/consultingAgencyManagement/customForm/icon_tips@2x.png" alt="">
<span>{{`确认删除“${removeSubfieldModule.subfieldModuleName ? removeSubfieldModule.subfieldModuleName : removeSubfieldModule.defaultSubfieldModuleName ? removeSubfieldModule.defaultSubfieldModuleName : ""}”吗?`}}</span> <span>{{`确认删除分栏“${removeSubfieldModule.subfieldModuleName ? removeSubfieldModule.subfieldModuleName : removeSubfieldModule.defaultSubfieldModuleName ? removeSubfieldModule.defaultSubfieldModuleName : ""}”吗?`}}</span>
</div> </div>
<div class="subfield-module-dialog-footer"> <div class="subfield-module-dialog-footer">
<el-button size="default" @click="removeSubFiledModuleDialog = false">取消</el-button> <el-button size="default" @click="removeSubFiledModuleDialog = false">取消</el-button>
...@@ -232,6 +232,8 @@ export default { ...@@ -232,6 +232,8 @@ export default {
const result = await addCustomFormDataApi(params); const result = await addCustomFormDataApi(params);
if (result.code == 200) { if (result.code == 200) {
this.$message.success(`${this.formTemplate?.templateId ? "更新" : "创建"}模板成功`); this.$message.success(`${this.formTemplate?.templateId ? "更新" : "创建"}模板成功`);
// 更新成功重置源数据
this.olduSbfieldModuleList = cloneDeep(this.subfieldModuleForm.subfieldModuleList);
} }
} catch (error) { } catch (error) {
console.log(error); console.log(error);
...@@ -353,7 +355,7 @@ export default { ...@@ -353,7 +355,7 @@ export default {
}, },
// 取消当前焦点设置 // 取消当前焦点设置
cancelSetOptions() { cancelSetOptions() {
this.activeItemData = cloneDeep(this.activeItemDataOrigin); this.resetCurrent();
}, },
// 设置表单完成 // 设置表单完成
setOptionsFinish(current, parentUid) { setOptionsFinish(current, parentUid) {
...@@ -495,7 +497,7 @@ export default { ...@@ -495,7 +497,7 @@ export default {
width: 100%; width: 100%;
height: calc(100% - 48px); height: calc(100% - 48px);
display: flex; display: flex;
min-width: 1140px; /* min-width: 1140px; */
.subfield-origin-dragClass, .subfield-origin-dragClass,
.subfield-item-dragClass { .subfield-item-dragClass {
......
...@@ -132,6 +132,7 @@ export default { ...@@ -132,6 +132,7 @@ export default {
componentOptions: {} componentOptions: {}
}) })
}, },
activeFieldOrigin: Object,
parentUid: String, parentUid: String,
activeUid: String activeUid: String
}, },
...@@ -154,6 +155,12 @@ export default { ...@@ -154,6 +155,12 @@ export default {
this.$mitt.emit("fieldOptionChange", newValue); this.$mitt.emit("fieldOptionChange", newValue);
}, },
deep: true deep: true
},
activeFieldOrigin: {
handler(newValue) {
this.comActiveFieldOrigin = cloneDeep(newValue);
},
deep: true
} }
}, },
data() { data() {
...@@ -179,6 +186,8 @@ export default { ...@@ -179,6 +186,8 @@ export default {
return { return {
// 通过保存更新源数据按钮 // 通过保存更新源数据按钮
comActiveFieldData: cloneDeep(this.activeFieldData), comActiveFieldData: cloneDeep(this.activeFieldData),
// 源数据
comActiveFieldOrigin: cloneDeep(this.activeFieldOrigin),
setFieldOptionRules: { setFieldOptionRules: {
fieldName: [{ required: true, trigger: ["blur", "change"], validator: fieldNameValidor }], fieldName: [{ required: true, trigger: ["blur", "change"], validator: fieldNameValidor }],
limit: [{ required: true, type: "number", trigger: ["blur", "change"], validator: limitValidor }], limit: [{ required: true, type: "number", trigger: ["blur", "change"], validator: limitValidor }],
...@@ -216,6 +225,7 @@ export default { ...@@ -216,6 +225,7 @@ export default {
this.comActiveFieldData = value; this.comActiveFieldData = value;
}, },
cancelSet() { cancelSet() {
this.$mitt.emit("fieldOptionChange", cloneDeep(this.comActiveFieldOrigin));
this.$emit("cancelSetOptions"); this.$emit("cancelSetOptions");
}, },
async formCheck() { async formCheck() {
......
...@@ -8,7 +8,12 @@ ...@@ -8,7 +8,12 @@
<el-input v-model="comModuleInfo.subfieldModuleName" :placeholder="comModuleInfo.subfieldModulePlaceholder" clearable <el-input v-model="comModuleInfo.subfieldModuleName" :placeholder="comModuleInfo.subfieldModulePlaceholder" clearable
@keyup.enter.native.stop="editOk"></el-input> @keyup.enter.native.stop="editOk"></el-input>
</el-form-item> </el-form-item>
<span v-else>{{comModuleInfo.defaultSubfieldModuleName}}</span> <div v-else class="no-edit-module-name">
<dsk-text-over-flow-tip>
<span>{{comModuleInfo.defaultSubfieldModuleName}}</span>
<template slot="overflow">{{comModuleInfo.defaultSubfieldModuleName}}</template>
</dsk-text-over-flow-tip>
</div>
</div> </div>
<div class="subfield-module-title-tool" v-if="comModuleInfo.edit"> <div class="subfield-module-title-tool" v-if="comModuleInfo.edit">
<img src="@/assets/images/consultingAgencyManagement/customForm/icon_verify@2x.png" alt="" class="title-tool-edit-ok" @click.stop="editOk"> <img src="@/assets/images/consultingAgencyManagement/customForm/icon_verify@2x.png" alt="" class="title-tool-edit-ok" @click.stop="editOk">
...@@ -25,8 +30,12 @@ ...@@ -25,8 +30,12 @@
</template> </template>
<script> <script>
import { cloneDeep } from "lodash-es"; import { cloneDeep } from "lodash-es";
import DskTextOverFlowTip from "@/components/DskTextOverFlowTip";
export default { export default {
name: "subfieldModule", name: "subfieldModule",
components: {
DskTextOverFlowTip
},
props: { props: {
moduleInfo: Object, moduleInfo: Object,
moduleIndex: Number moduleIndex: Number
...@@ -111,19 +120,26 @@ export default { ...@@ -111,19 +120,26 @@ export default {
.subfield-module-title { .subfield-module-title {
display: flex; display: flex;
align-items: center; align-items: center;
flex: 1; width: calc(100% - 60px);
& > img { & > img {
width: 14px; width: 14px;
height: 14px; height: 14px;
cursor: move; cursor: move;
} }
& > span { .no-edit-module-name {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
margin-left: 12px; margin-left: 12px;
color: rgba(35, 35, 35, 0.8); color: rgba(35, 35, 35, 0.8);
} }
.no-edit-module-name {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
} }
.subfield-module-title-tool { .subfield-module-title-tool {
...@@ -143,5 +159,46 @@ export default { ...@@ -143,5 +159,46 @@ export default {
} }
} }
} }
::v-deep .subfield-module-form-item {
display: flex;
margin-bottom: 0px;
margin-left: 12px;
width: 100%;
.el-form-item__content {
flex: 1;
line-height: 32px;
height: 32px;
.el-input {
line-height: 32px;
height: 32px;
.el-input__suffix {
display: flex;
align-items: center;
}
}
}
.el-input {
width: 100%;
.el-input__inner {
width: 100%;
height: 32px;
line-height: 32px;
padding-left: 12px;
&::placeholder {
color: #c0c4cc !important;
font-size: 14px !important;
}
}
.el-input__suffix {
.el-input__icon {
line-height: 32px;
}
}
}
}
} }
</style> </style>
<template> <template>
<div class="custom-form-container"> <div class="custom-form-container">
<div class="custom-form-inner"> <div class="custom-form-outer-inner">
<div class="custom-form-header"> <div class="custom-form-inner">
<div class="custom-form-title">咨询机构结算信息表单配置</div> <div class="custom-form-header">
<!-- 提示 --> <div class="custom-form-title">咨询机构结算信息表单配置</div>
<div class="custom-form-tip"> <!-- 提示 -->
<img src="@/assets/images/consultingAgencyManagement/custom-form-tip-icon.png" alt=""> <div class="custom-form-tip">
<span>自定义表格模板保存方案后将同步更新至项目详情 “咨询机构结算信息” 表格。</span> <img src="@/assets/images/consultingAgencyManagement/custom-form-tip-icon.png" alt="">
<span>自定义表格模板保存方案后将同步更新至项目详情 “咨询机构结算信息” 表格。</span>
</div>
</div> </div>
</div> <!-- 表单设计组件部分 -->
<!-- 表单设计组件部分 --> <div class="custom-form-design-container">
<div class="custom-form-design-container"> <div class="custom-form-design-outer">
<div class="custom-form-design-outer"> <custom-form-design></custom-form-design>
<custom-form-design></custom-form-design> </div>
</div> </div>
</div> </div>
</div> </div>
...@@ -49,13 +51,21 @@ export default { ...@@ -49,13 +51,21 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
padding: 16px 24px 24px 24px; padding: 16px 24px 24px 24px;
box-sizing: border-box;
overflow: hidden; overflow: hidden;
.custom-form-outer-inner {
width: 100%;
height: 100%;
overflow: auto;
}
.custom-form-inner { .custom-form-inner {
width: 100%; width: 100%;
height: 100%; height: 100%;
background: #fff; background: #fff;
border-radius: 4px; border-radius: 4px;
min-width: 1600px;
.custom-form-header { .custom-form-header {
width: 100%; width: 100%;
......
...@@ -142,7 +142,12 @@ ...@@ -142,7 +142,12 @@
<!-- 生成行 --> <!-- 生成行 -->
<div class="custom-module-row" v-for="(row,rowIndex) of item.childrentGroup" :key="rowIndex"> <div class="custom-module-row" v-for="(row,rowIndex) of item.childrentGroup" :key="rowIndex">
<div class="custom-module-item" v-for="(column,columnIndex) of row" :key="column.uid" :style="itemStyles(column,rowIndex,columnIndex)"> <div class="custom-module-item" v-for="(column,columnIndex) of row" :key="column.uid" :style="itemStyles(column,rowIndex,columnIndex)">
<div class="custom-item-key" :class="{'is-required-key' : column.formAttribute.required}">{{column.formAttribute.label}}</div> <div class="custom-item-key">
<dsk-text-over-flow-tip :custom-class="column.formAttribute.required ? 'is-required-key' : ''">
<span>{{column.formAttribute.label}}</span>
<template slot="overflow">{{column.formAttribute.label}}</template>
</dsk-text-over-flow-tip>
</div>
<!-- 组件容器 --> <!-- 组件容器 -->
<div class="custom-item-com-box"> <div class="custom-item-com-box">
<dsk-custom-item-render :custom-item="column" :custom-module-index="index" :custom-row-index="rowIndex" <dsk-custom-item-render :custom-item="column" :custom-module-index="index" :custom-row-index="rowIndex"
...@@ -161,11 +166,13 @@ ...@@ -161,11 +166,13 @@
import { searchConsultingApi, getCustomFormDetailApi, getCustomFormDataByProjectKeyApi } from "@/api/consultingOrgManagement"; import { searchConsultingApi, getCustomFormDetailApi, getCustomFormDataByProjectKeyApi } from "@/api/consultingOrgManagement";
import { elementMessageSingleton, jsonStrToObject, groupArray } from "@/utils"; import { elementMessageSingleton, jsonStrToObject, groupArray } from "@/utils";
import { cloneDeep } from "lodash-es"; import { cloneDeep } from "lodash-es";
import DskTextOverFlowTip from "@/components/DskTextOverFlowTip";
import DskCustomItemRender from "@/components/DskCustomItemRender"; import DskCustomItemRender from "@/components/DskCustomItemRender";
export default { export default {
name: "consultingAgency", name: "consultingAgency",
components: { components: {
DskCustomItemRender DskCustomItemRender,
DskTextOverFlowTip
}, },
props: { props: {
projectDetailInfo: Object, projectDetailInfo: Object,
...@@ -341,6 +348,8 @@ export default { ...@@ -341,6 +348,8 @@ export default {
const _childrentGroup = groupArray(iterator?.children, 100, "formAttribute.width"); const _childrentGroup = groupArray(iterator?.children, 100, "formAttribute.width");
// 分组过后的值 // 分组过后的值
iterator["childrentGroup"] = cloneDeep(_childrentGroup); iterator["childrentGroup"] = cloneDeep(_childrentGroup);
} else {
iterator["childrentGroup"] = [];
} }
} }
return tableList; return tableList;
...@@ -766,7 +775,7 @@ export default { ...@@ -766,7 +775,7 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
&.is-required-key { .is-required-key {
&::before { &::before {
content: "*"; content: "*";
color: #f56c6c; color: #f56c6c;
......
...@@ -157,10 +157,12 @@ export default { ...@@ -157,10 +157,12 @@ export default {
padding: 16px 24px 24px 24px; padding: 16px 24px 24px 24px;
box-sizing: border-box; box-sizing: border-box;
overflow: hidden; overflow: hidden;
/* min-width: 1300px; */
.project-detail-inner { .project-detail-inner {
width: 100%; width: 100%;
height: 100%; height: 100%;
min-width: 1300px;
.project-header-container { .project-header-container {
width: 100%; width: 100%;
......
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