| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973 |
- <template>
- <div v-loading="loading" class="b-cont">
- <div v-if="showSaveButton" class="b-cont__handle">
- <el-button @click.native="editCancel">取消</el-button>
- <el-button
- v-debounce="editConfirm"
- type="primary">保存</el-button>
- </div>
- <sections
- v-for="(mainItem, mainIndex) in list"
- :key="mainIndex"
- :title="mainItem.name"
- class="b-cells"
- content-height="auto">
- <el-form
- :model="editForm"
- :rules="currentEditRules"
- :ref="`editForm${mainIndex}`"
- class="el-form--flex"
- label-position="left"
- label-width="100px">
- <el-form-item
- v-for="(item, index) in mainItem.list"
- v-if="getShowValue(item)"
- :key="index"
- :prop="item.field"
- :class="[{'is-block': isBlockShowField(item)},, `is-${item.form_type}`]">
- <span slot="label">
- {{ item.name }}
- </span>
- <template v-if="item.isEdit">
- <wk-field
- :item="item"
- :index="index"
- :field-from="editForm"
- :ignore-fields="ignoreFields"
- @change="formChange"
- >
- <template slot-scope="{ data, index }">
- <el-select
- v-if="data.form_type === 'business_status'"
- v-model="editForm[data.fieldName]"
- style="width: 100%;"
- clearable>
- <el-option
- v-for="(optionItem, index) in getFieldOption(data)"
- :key="index"
- :label="optionItem.name"
- :value="optionItem.value"/>
- </el-select>
- <el-select
- v-if="data.fieldName == 'status'"
- v-model="editForm[data.fieldName]"
- style="width: 100%;">
- <el-option
- v-for="item in data.setting"
- :key="item.value"
- :label="item.name"
- :value="item.value"/>
- </el-select>
- <crm-relative-cell
- v-else-if="data.form_type === 'contacts' ||
- data.form_type === 'customer' ||
- data.form_type === 'contract' ||
- data.form_type === 'business'"
- :relative-type="data.form_type"
- :value="editForm[data.fieldName]"
- @value-change="arrayValueChange($event, data)"
- />
- <xh-prouct-cate
- v-else-if="data.form_type === 'category'"
- :value="editForm[data.fieldName]"
- @value-change="arrayValueChange($event, data)"
- />
- <el-select
- v-if="data.fieldName == 'invoice_type'"
- v-model="editForm[data.fieldName]"
- style="width: 100%;">
- <el-option
- v-for="item in invoiceTypeOptions"
- :key="item.value"
- :label="item.name"
- :value="item.value"/>
- </el-select>
-
- </template>
- </wk-field>
-
- <!-- <el-input
- v-if="item.form_type === 'text' ||
- item.form_type == 'number' ||
- item.form_type == 'floatnumber' ||
- item.form_type == 'mobile' ||
- item.form_type == 'email' ||
- item.form_type == 'textarea'"
- v-model="editForm[item.field]"/>
- <el-select
- v-else-if="item.form_type === 'select' || item.form_type === 'business_status'"
- v-model="editForm[item.field]"
- style="width: 100%;"
- clearable>
- <el-option
- v-for="(item, index) in getFieldOption(item)"
- :key="index"
- :label="item.name"
- :value="item.value"/>
- </el-select>
- <el-select
- v-else-if="item.form_type === 'checkbox'"
- v-model="editForm[item.field]"
- multiple
- style="width: 100%;"
- clearable>
- <el-option
- v-for="(item, index) in getFieldOption(item)"
- :key="index"
- :label="item.name"
- :value="item.value"/>
- </el-select>
- <el-date-picker
- v-else-if="item.form_type === 'date'"
- v-model="editForm[item.field]"
- type="date"
- clearable
- style="width: 100%;"
- value-format="yyyy-MM-dd"
- />
- <el-date-picker
- v-else-if="item.form_type === 'datetime'"
- v-model="editForm[item.field]"
- clearable
- style="width: 100%;"
- type="datetime"
- value-format="yyyy-MM-dd HH:mm:ss"
- />
- <xh-user-cell
- v-else-if="item.form_type === 'user' || item.form_type === 'single_user'"
- :value="editForm[item.field]"
- :radio="item.form_type === 'single_user'"
- @value-change="arrayValueChange($event, item)"
- />
- <xh-structure-cell
- v-else-if="item.form_type === 'structure'"
- :value="editForm[item.field]"
- :radio="false"
- @value-change="arrayValueChange($event, item)"
- />
- <crm-relative-cell
- v-else-if="item.form_type === 'contacts' ||
- item.form_type === 'customer' ||
- item.form_type === 'contract' ||
- item.form_type === 'business'"
- :relative-type="item.form_type"
- :value="editForm[item.field]"
- @value-change="arrayValueChange($event, item)"
- />
- <xh-files
- v-else-if="item.form_type === 'file'"
- :value="editForm[item.field]"
- @value-change="arrayValueChange($event, item)"
- />
- <xh-prouct-cate
- v-else-if="item.form_type === 'category'"
- :value="editForm[item.field]"
- @value-change="arrayValueChange($event, item)"
- /> -->
- </template>
- <template v-else>
- <!-- <flexbox v-if="item.form_type === 'file'" style="min-height: 40px;">
- <file-list-view :list="item.value || []" />
- <i v-if="getEditAuth(item)" class="wk wk-edit form-item__edit" @click="editClick(item)" />
- </flexbox> -->
- <div
- v-if="item.form_type === 'map_address'"
- :gutter="0"
- wrap="wrap">
- <div
- :span="0.5"
- class="b-cell"
- @click="checkMapView(item)">
- <flexbox
- class="b-cell-b">
- <div class="b-cell-name">定位</div>
- <div
- class="b-cell-value"
- style="color: #3E84E9;cursor: pointer;">{{ item.value.location }}</div>
- </flexbox>
- </div>
- <div
- :span="0.5"
- class="b-cell">
- <flexbox
- class="b-cell-b">
- <div class="b-cell-name">区域</div>
- <div class="b-cell-value">{{ item.value.address.join() }}</div>
- </flexbox>
- </div>
- <div
- :span="0.5"
- class="b-cell">
- <flexbox
- class="b-cell-b">
- <div class="b-cell-name">详细地址</div>
- <div class="b-cell-value">{{ item.value.detail_address }}</div>
- </flexbox>
- </div>
- </div>
- <flexbox
- v-else
- :class="{'can-check':isModule(item)}"
- align="stretch"
- style="width: 100%;"
- class="form-item__value">
- <wk-field-view
- :props="item"
- :form_type="item.form_type"
- :value="item.value"
- :ignore-fields="ignoreFields"
- >
- <template slot-scope="{ data }">
- <span v-if="data.form_type === 'business_type'">{{ detail ? detail.typeName : '' }}</span>
- <span v-else-if="data.form_type === 'business_status'">{{ detail ? detail.statusName : '' }}</span>
- <span v-else-if="data.form_type === 'category'">{{ detail ? detail.categoryName : '' }}</span>
- <span v-else-if="data.form_type === 'receivables_plan'">{{ detail ? detail.planNum : '' }}</span>
- <span v-else-if="ignoreFields.includes(data.props.field) && data.props.field === 'status'">{{ getSelectShowValue(data) }}</span>
- <span v-else @click="checkModuleDetail(data)">{{ getCommonShowValue(data) }}</span>
- </template>
- </wk-field-view>
-
- <i v-if="getEditAuth(item)" class="wk wk-edit form-item__edit" @click.stop="editClick(item, index)" />
- </flexbox>
- </template>
- </el-form-item>
- </el-form>
- </sections>
- <slot />
- <map-view
- v-if="showMapView"
- :title="mapViewInfo.title"
- :lat="mapViewInfo.lat"
- :lng="mapViewInfo.lng"
- @hidden="showMapView=false" />
-
- <c-r-m-full-screen-detail
- :visible.sync="showFullDetail"
- :id="fullDetailId"
- :crm-type="fullDetailType"/>
- </div>
- </template>
-
- <script>
- import { filedGetInformationAPI, filedUpdateTableFieldAPI } from '@/api/crm/common'
- // import { crmMarketingInformationAPI } from '@/api/crm/marketing'
-
- import {
- XhUserCell,
- XhStructureCell,
- XhFiles,
- CrmRelativeCell,
- XhProuctCate,
- XhBusinessStatus,
- XhReceivablesPlan
- } from '@/components/CreateCom'
- import WkFieldView from '@/components/NewCom/WkForm/WkFieldView'
- import WkField from '@/components/NewCom/WkForm/WkField'
- import crmTypeModel from '@/views/crm/model/crmTypeModel'
- import Sections from '../components/Sections'
- import MapView from '@/components/MapView' // 地图详情
- import FileListView from '@/components/FileListView'
- import CheckStatusMixin from '@/mixins/CheckStatusMixin'
- import { separator } from '@/filters/vueNumeralFilter/filters'
- import {
- objDeepCopy
- } from '@/utils'
- import { isArray, isObject, isEmpty } from '@/utils/types'
- import { mapGetters } from 'vuex'
- import { getWkDateTime } from '@/utils'
-
- import { getFormFieldShowName } from '@/components/NewCom/WkForm/utils'
- import CustomFieldsMixin from '@/mixins/CustomFields'
-
- export default {
- // 客户管理 的 基本信息
- name: 'CRMEditBaseInfo',
- components: {
- Sections,
- MapView,
- FileListView,
- XhUserCell,
- XhStructureCell,
- XhFiles,
- CrmRelativeCell,
- XhProuctCate,
- XhBusinessStatus,
- XhReceivablesPlan,
- CRMFullScreenDetail: () => import('@/components/CRMFullScreenDetail'),
- WkFieldView,
- WkField
- },
- filters: {
- },
- mixins: [CheckStatusMixin, CustomFieldsMixin],
- props: {
- // 模块ID
- id: [String, Number],
- pool_id: [String, Number],
- isSeas: {
- type: Boolean,
- default: false
- },
- detail: {
- type: Object,
- default: () => {
- return {}
- }
- },
- // 没有值就是全部类型 有值就是当个类型
- crmType: {
- type: String,
- default: ''
- },
- // 固定字段的数据
- filedList: Array,
- // 系统消息之前的数据
- otherList: Array,
- // 忽略的字段直接输出
- ignoreFields: {
- type: Array,
- default: () => {
- return []
- }
- }
- },
- data() {
- return {
- loading: false,
- list: [],
- // 控制展示地图详情
- showMapView: false,
- // 地图详情信息
- mapViewInfo: {},
- showFullDetail: false,
- fullDetailId: '',
- fullDetailType: '',
- // 编辑
- showSaveButton: false,
- editRules: {},
- editForm: {},
- allForm: {}, // 用于逻辑表单刷新
- currentEditRules: {}, // 当前编辑字段规则
- editOptions: {},
- editFieldData: [],
- invoiceTypeOptions: [{
- name: '增值税专用发票',
- value: 1
- }, {
- name: '增值税普通发票',
- value: 2
- }, {
- name: '国税通用机打发票',
- value: 3
- }, {
- name: '地税通用机打发票',
- value: 4
- }, {
- name: '收据',
- value: 5
- }]
- }
- },
- inject: ['rootTabs'],
- computed: {
- ...mapGetters(['crm'])
- },
- watch: {
- id(val) {
- if (!this.filedList) {
- this.getBaseInfo(true)
- }
- },
-
- filedList() {
- this.list = this.filedList
- },
-
- 'rootTabs.currentName'(val) {
- if (val === 'CRMEditBaseInfo') {
- this.getBaseInfo(false)
- }
- }
-
- },
- created() {
- this.$bus.on('crm-detail-update', (data) => {
- this.getBaseInfo(false)
- })
- },
- beforeDestroy() {
- this.$bus.off('crm-detail-update')
- },
- mounted() {
- if (this.filedList) {
- this.list = this.filedList
- } else {
- this.getBaseInfo(true)
- }
- },
- methods: {
-
- /**
- * 获取基础信息
- */
- getBaseInfo(loading) {
- this.loading = !!loading
- if (this.crmType === 'marketing') {
- // crmMarketingInformationAPI().then(res => {
- // this.list = res.data || []
- // this.loading = false
- // }).catch(() => {
- // this.loading = false
- // })
- } else {
- const params = {
- id: this.id,
- types: crmTypeModel[this.crmType],
- action_id: this.id,
- module: 'crm',
- controller: this.crmType,
- action: 'read',
- system: 1
- }
-
- // 如果有公海id 需上传确定展示字段
- if (this.pool_id) {
- params.pool_id = this.pool_id
- }
-
- filedGetInformationAPI(params)
- .then(res => {
- const baseList = []
- const systemList = []
- // 编辑用信息
- const editFieldData = []
- const editRules = {}
-
- res.data.forEach(item => {
- if (item.form_type === 'floatnumber') {
- item.value = separator(item.value)
- } else if (item.form_type === 'date') {
- item.value = getWkDateTime(item.value)
- }
- if (item.system == 1) {
- systemList.push(item)
- } else if (item.form_type !== 'product') {
- baseList.push(item)
- }
- })
- // 逻辑表单逻辑
- const assistIds = this.getFormAssistIds([baseList])
- baseList.forEach(item => {
- this.getFormItemDefaultProperty(item, false)
- item.show = !assistIds.includes(item.formAssistId)
-
- if (this.ignoreFields.includes(item.field)) {
- // 防止影响普通单选的验证方式 该方法必须在获取值之上
- delete item.optionsData
- }
-
- const canEdit = this.getItemIsCanEdit(item, 'update')
- // 是否能编辑权限
- const copyItem = objDeepCopy(item)
- if (item.show && canEdit) {
- editRules[item.field] = this.getRules(copyItem)
- }
-
- // 是否可编辑
- item.disabled = !canEdit
-
- // 特殊字段允许多选
- this.getItemRadio(item, item)
-
- // 表格为了展示,提前处理为编辑数据
- if (item.form_type === 'detail_table') {
- if (!isEmpty(item.value)) {
- item.value = this.getItemValue(item, null, 'update')
- }
- this.allForm[item.field] = item.value || null
- } else {
- // copyItem 避免修改原始item.value
- this.allForm[item.field] = this.getItemValue(copyItem, null, 'update')
- }
-
- editFieldData.push(item)
- })
-
- // 编辑逻辑赋值
- this.editFieldData = editFieldData
- this.editRules = editRules
-
- if (this.otherList) {
- this.list = [
- {
- name: '基本信息',
- list: baseList
- },
- ...this.otherList,
- {
- name: '系统信息',
- list: systemList
- }
- ]
- } else {
- this.list = [
- {
- name: '基本信息',
- list: baseList
- },
- {
- name: '系统信息',
- list: systemList
- }
- ]
- }
-
- this.editCancel()
- this.loading = false
- })
- .catch(() => {
- this.loading = false
- })
- }
- },
- /**
- * change
- */
- formChange(field, index, value, valueList) {
- if ([
- 'select',
- 'checkbox'
- ].includes(field.form_type) &&
- field.remark === 'options_type' &&
- field.optionsData) {
- const { fieldForm, fieldRules } = this.getFormContentByOptionsChange([this.editFieldData], { ...this.allForm, ...this.editForm }, this.editRules, null, 'update')
-
- const editForm = {}
- const currentEditRules = {}
-
- this.editFieldData.forEach(item => {
- // 重新获取当前可编辑字段的值和规则
- if (item.show && item.isEdit) {
- editForm[item.field] = fieldForm[item.field]
- currentEditRules[item.field] = fieldRules[item.field]
- }
-
- // 不展示的字段,但处在可编辑状态,置为不能编辑
- if (!item.show && item.isEdit) {
- item.isEdit = false
- }
- })
- this.editForm = editForm
- this.currentEditRules = currentEditRules
- }
- },
- /**
- * 查看地图详情
- */
- checkMapView(item) {
- if (item.value && item.value !== '') {
- this.mapViewInfo = {
- title: item.value.location,
- lat: item.value.lat,
- lng: item.value.lng
- }
- this.showMapView = true
- }
- },
-
- getArrayKey(type) {
- if (type === 'structure') {
- return 'name'
- } else if (type === 'user') {
- return 'realname'
- }
-
- return ''
- },
-
- arrayValue(array, field) {
- if (
- !array ||
- Object.prototype.toString.call(array) !== '[object Array]'
- ) {
- return ''
- }
-
- return array
- .map(item => {
- return field ? item[field] : item
- })
- .join(',')
- },
-
- /**
- * 客户等模块类型
- */
- isModule(item) {
- return [
- 'customer',
- 'business',
- 'contract',
- 'contacts'].includes(item.form_type)
- },
-
- /**
- * 特殊字段
- */
- isSpecialField(item) {
- return [
- 'category',
- 'statusName',
- 'typeName'].includes(item.form_type)
- },
-
- /**
- * 是整行展示字段
- */
- isBlockShowField(item) {
- return [
- 'map_address',
- 'file',
- 'detail_table'].includes(item.form_type)
- },
-
- getShowBlock(type) {
- return ['map_address', 'file'].includes(type)
- },
-
- getModuleName(item) {
- const field = {
- customer: 'name',
- business: 'name',
- contract: 'num',
- contacts: 'name',
- category: 'name',
- statusName: 'name',
- typeName: 'name'
- }[item.form_type]
- return item.value ? item.value.length == 0 ? '' : item.value[0][field] || item.value : ''
- },
-
- getFieldOption(item) {
- const editData = this.editOptions[item.field]
- let setting = []
- if (editData) {
- if (item.form_type === 'select' || item.form_type === 'checkbox') {
- if (editData.setting.length > 0 && typeof editData.setting[0] == 'string') {
- setting = editData.setting.map(element => {
- return { name: element, value: element }
- })
- } else {
- setting = editData.setting
- }
- } else if (item.form_type === 'business_status') {
- setting = editData.setting.map(element => {
- element.value = element.statusId
- return element
- })
- }
- }
- return setting
- },
-
- /**
- * 获取非附件类型的展示值
- */
- getCommonShowValue(item) {
- if (this.isModule(item)) {
- return this.getModuleName(item)
- } else {
- const field = item.props
- if (field.fieldName === 'invoice_type') {
- const dataItem = this.invoiceTypeOptions.find(o => o.value == item.value)
- return dataItem ? dataItem.name : ''
- }
- return getFormFieldShowName(item.form_type, item.value, '', item)
- }
- },
-
- /**
- * 查看详情
- */
- checkModuleDetail(data) {
- const dataValue = data.value
- if (this.isModule(data)) {
- let id = ''
- if (isObject(dataValue)) {
- id = dataValue[`${data.form_type}_id`]
- } else if (isArray(dataValue) && dataValue.length > 0) {
- id = dataValue[0][`${data.form_type}_id`]
- }
-
- if (id) {
- this.fullDetailType = data.form_type
- this.fullDetailId = id
- this.showFullDetail = true
- }
- }
- },
-
- /**
- * 编辑逻辑
- */
- getEditAuth(item) {
- if (this.isSeas) {
- return false
- }
- if (this.crmType == 'business' && ['business_type', 'business_status'].includes(item.form_type)) {
- return false
- } else if (this.crmType == 'contract' && ['business', 'contacts', 'customer'].includes(item.form_type)) {
- return false
- } else if (this.crmType == 'receivables' && ['contract', 'customer'].includes(item.form_type)) {
- return false
- } else if (this.crmType == 'visit' && ['business', 'contacts', 'customer'].includes(item.form_type)) {
- return false
- }
- // authLevel 1 不能查看不能编辑 2可查看 3 可编辑可查看
- return item.writeStatus === 1 && this.crm && this.crm[this.crmType] && this.crm[this.crmType].update // 不能编辑 disabled true
- },
-
- /**
- * 点击编辑按钮
- */
- editClick(item) {
- let dataValue = objDeepCopy(this.allForm[item.fieldName])
- // 明细表格是空时,需要填充一条空数据,展示时未处理。这里增加
- if (item.form_type === 'detail_table' && isEmpty(dataValue)) {
- dataValue = this.getItemValue(objDeepCopy(item), null, 'update')
- }
- this.$set(this.editForm, item.fieldName, dataValue)
- this.$set(item, 'isEdit', true)
- this.$set(this.editOptions, item.fieldName, item)
- this.$set(this.currentEditRules, item.fieldName, this.editRules[item.fieldName] || [])
- this.showSaveButton = true
- },
-
- editCancel() {
- if (this.$refs.editForm0[0].clearValidate) {
- this.$refs.editForm0[0].clearValidate()
- }
-
- this.$nextTick(() => {
- // this.list.forEach(bItem => {
- // bItem.list.forEach(item => {
- // item.isEdit = false
- // })
- // })
- this.editFieldData.forEach(item => {
- item.isEdit = false
- })
-
- this.editForm = {}
- this.editOptions = {}
- this.showSaveButton = false
- })
- },
-
- editConfirm() {
- // customerId fieldId fieldType field form_type value
- // this.editCancel()
- this.$refs.editForm0[0].validate(valid => {
- if (valid) {
- this.submiteInfo()
- }
- })
- },
-
- /**
- * 发请求提交数据
- */
- submiteInfo() {
- // 仅第一块可编辑 ,直接取第一块的数据
- this.loading = true
- const list = []
- for (let index = 0; index < this.editFieldData.length; index++) {
- const field = this.editFieldData[index]
- // 获取当前编辑 和 隐藏的字段
- if (field.form_type !== 'desc_text' && (field.isEdit || !field.show)) {
- list.push({
- fieldName: field.fieldName,
- field: field.field,
- field_type: field.field_type,
- name: field.name,
- type: field.type,
- field_id: field.field_id,
- value: field.show ? this.getRealParams(field, this.editForm[field.fieldName]) : null
- })
- }
- }
-
- filedUpdateTableFieldAPI({
- types: 'crm_' + this.crmType,
- action_id: this.id,
- list: list.map(item => {
- return {
- [item.field]: item.value
- }
- })
-
- }).then(res => {
- this.loading = false
- this.editCancel()
- this.$emit('handle', { type: 'save-success' }) // 刷新数据
-
- // this.refreshData(true)
- }).catch(() => {
- this.loading = false
- })
- },
-
-
- /**
- * 员工编辑
- * 关联模块编辑
- * 附件选择
- * 产品类别
- */
- arrayValueChange(data, item) {
- this.editForm[item.field] = data.value || []
- },
- /**
- * 判断展示
- */
- getShowValue(item) {
- if (item.hasOwnProperty('show')) {
- return item.show
- }
- return true
- },
- /**
- * 获取单选值
- */
- getSelectShowValue(data) {
- const field = data.props
- const value = data.value
- if (value !== null) {
- const dataValue = field.setting.find(o => o.value === value)
- return dataValue ? dataValue.name : ''
- }
- return ''
- }
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .b-cont {
- position: relative;
- padding: 15px;
- height: 100%;
- overflow-y: auto;
- overflow-y: overlay;
-
- &__handle {
- position: absolute;
- text-align: right;
- right: 20px;
- width: 100%;
- z-index: 3;
- }
- }
-
- .section {
- margin-top: 0;
- /deep/ .content {
- overflow: hidden;
- }
- }
-
-
- .b-cells + .b-cells {
- margin-top: 25px;
- }
-
- .b-cell {
- padding: 0 10px;
- }
-
- .el-form--flex {
- margin: 20px 10px 0;
- /deep/ .el-form-item {
- padding: 0 40px 0 15px;
- margin-bottom: 10px;
- max-width: 100%;
- .el-form-item__content {
- position: relative;
- min-height: 40px;
- }
-
- .el-form-item__label {
- color: #777;
- font-size: 13px;
- line-height: 30px;
- }
-
- &:hover {
- .form-item__edit{
- display: inline;
- }
- }
-
- &.is-desc_text {
- .el-form-item__content {
- margin-left: 0 !important;
- }
- }
- }
- }
-
- .form-item__value {
- font-size: 13px;
- color: #333;
- line-height: 30px;
- white-space: pre-wrap;
- word-wrap: break-word;
- word-break: break-all;
- .wk-field-view {
- width: 0;
- flex: 1;
- }
- }
-
- .form-item__edit {
- margin-left: 5px;
- font-size: 14px;
- color: #999;
- cursor: pointer;
- display: none;
- flex-shrink: 0;
-
- &:hover {
- color: $xr-color-primary;
- }
- }
-
- .can-check {
- color: $xr-color-primary !important;
- cursor: pointer;
- }
-
- .is-block {
- flex-basis: 100% !important;
- }
-
- .b-cell-b {
- width: auto;
- .b-cell-name {
- width: 100px;
- margin-right: 10px;
- font-size: 13px;
- flex-shrink: 0;
- color: #777;
- }
- .b-cell-value {
- font-size: 13px;
- color: #333;
- line-height: 30px;
- white-space: pre-wrap;
- word-wrap: break-word;
- word-break: break-all;
- }
- }
- </style>
|