Browse Source

门类管理暂存

master
xuhuajiao 3 years ago
parent
commit
98252887fe
  1. 9
      src/api/archivesConfig/dictDetail.js
  2. 77
      src/assets/styles/yxk-admin.scss
  3. 2
      src/components/Crud/UD.operation.vue
  4. 1661
      src/views/category/descriptionPreview/data.json
  5. 180
      src/views/category/descriptionPreview/form.json
  6. 15
      src/views/category/descriptionPreview/index.vue
  7. 73
      src/views/category/descriptionPreview/module/PreviewForm.vue
  8. 176
      src/views/category/descriptionPreview/module/SettingForm.vue

9
src/api/archivesConfig/dictDetail.js

@ -26,6 +26,15 @@ export function findSubsetById(id) {
}) })
} }
// 根据字典id查询子集
export function FetchFindAllSubsetById(parameter) {
return request({
url: 'api/dictrionary/findAllSubsetById',
method: 'get',
params: parameter
})
}
export function getDictMap(dictName) { export function getDictMap(dictName) {
const params = { const params = {
dictName, dictName,

77
src/assets/styles/yxk-admin.scss

@ -227,7 +227,8 @@
.el-button--mini{ .el-button--mini{
padding: 7px 10px; padding: 7px 10px;
} }
.el-message-box{
.el-message-box,
.el-popover{
.el-button{ .el-button{
border-color: #dcdfe6; border-color: #dcdfe6;
color: #606266; color: #606266;
@ -568,6 +569,20 @@
// background-repeat: no-repeat; // background-repeat: no-repeat;
// box-shadow: inset 0px 0px 8px 1px rgba(51, 156, 255, 0.6); // box-shadow: inset 0px 0px 8px 1px rgba(51, 156, 255, 0.6);
} }
.dialog-footer{
margin: 30px auto 0 auto;
text-align: center;
.el-button{
font-size: 16px;
padding: 8px 28px;
}
.el-button--primary{
background-color: $desPreviewColor;
}
}
}
.el-dialog,
.right-preview{
.el-form{ .el-form{
.el-form-item__label{ .el-form-item__label{
color: $subMenuActiveText; color: $subMenuActiveText;
@ -611,41 +626,16 @@
border-bottom-color: $subMenuActiveText; border-bottom-color: $subMenuActiveText;
} }
.el-select .el-input .el-select__caret{ .el-select .el-input .el-select__caret{
color: #fff;
color: #339cff;
} }
}
.dialog-footer{
margin: 30px auto 0 auto;
text-align: center;
.el-button{
font-size: 16px;
padding: 8px 28px;
}
.el-button--primary{
background-color: $desPreviewColor;
.el-input.is-disabled .el-input__inner,
.el-textarea.is-disabled .el-textarea__inner{
color: $desPreviewColor !important;
border: none !important;
background-color: #02255f!important;
} }
} }
} }
.el-form{
.el-form-item__label{
line-height: 36px;
}
.el-input__inner{
height: 36px;
line-height: 36px;
}
.el-select {
height: 36px;
}
.el-select .el-input.is-disabled .el-input__inner,
.el-select .el-input.is-disabled .el-input__inner:hover,
.el-select .el-input.is-disabled .el-input__inner:focus{
border-color: #339cff;
}
}
// el-tree 最终节点不显示箭头 // el-tree 最终节点不显示箭头
.is-leaf::before { .is-leaf::before {
color: transparent; color: transparent;
@ -754,7 +744,6 @@
color: $desPreviewColor; color: $desPreviewColor;
} }
.el-input__inner{ .el-input__inner{
width: 200px;
color: $desPreviewColor; color: $desPreviewColor;
background: #021941 !important; background: #021941 !important;
border: none; border: none;
@ -766,7 +755,9 @@
} }
} }
.el-input.is-disabled .el-input__inner{ .el-input.is-disabled .el-input__inner{
color: $desPreviewColor;
color: $desPreviewColor !important;
border: none;
background-color: #02255f!important;
} }
.el-input__icon{ .el-input__icon{
color: $desPreviewColor !important; color: $desPreviewColor !important;
@ -786,7 +777,6 @@
} }
} }
span{ span{
// margin-right: 10px;
color: $desPreviewColor; color: $desPreviewColor;
} }
} }
@ -820,14 +810,15 @@
line-height: 36px; line-height: 36px;
} }
} }
// 去除element ui 中el-input type=number的上下箭头
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none !important;
}
input[type='number'] {
-moz-appearance: textfield !important;
}
}
// 去除element ui 中el-input type=number的上下箭头
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none !important;
}
input[type='number'] {
-moz-appearance: textfield !important;
} }

2
src/components/Crud/UD.operation.vue

@ -3,7 +3,7 @@
<el-button v-permission="permission.edit" :loading="crud.status.cu === 2" :disabled="disabledEdit" size="mini" type="primary" icon="el-icon-edit" @click="crud.toEdit(data)" /> <el-button v-permission="permission.edit" :loading="crud.status.cu === 2" :disabled="disabledEdit" size="mini" type="primary" icon="el-icon-edit" @click="crud.toEdit(data)" />
<el-popover v-model="pop" v-permission="permission.del" placement="top" width="180" trigger="manual" @show="onPopoverShow" @hide="onPopoverHide"> <el-popover v-model="pop" v-permission="permission.del" placement="top" width="180" trigger="manual" @show="onPopoverShow" @hide="onPopoverHide">
<p>{{ msg }}</p> <p>{{ msg }}</p>
<div style="text-align: right; margin: 0">
<div style="text-align: right; margin: 10px 0 0 0;">
<el-button size="mini" type="text" @click="doCancel">取消</el-button> <el-button size="mini" type="text" @click="doCancel">取消</el-button>
<el-button :loading="crud.dataStatus[crud.getDataId(data)].delete === 2" type="primary" size="mini" @click="crud.doDelete(data)">确定</el-button> <el-button :loading="crud.dataStatus[crud.getDataId(data)].delete === 2" type="primary" size="mini" @click="crud.doDelete(data)">确定</el-button>
</div> </div>

1661
src/views/category/descriptionPreview/data.json
File diff suppressed because it is too large
View File

180
src/views/category/descriptionPreview/form.json

@ -1,180 +0,0 @@
[{
"id": "1",
"fieldName": "qzm",
"fieldCnName": "全宗名",
"isInputClass": "select",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 1
},
{
"id": "2",
"fieldName": "bmmc",
"fieldCnName": "部门名称",
"isInputClass": "select",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 1
},
{
"id": "3",
"fieldName": "ddnd",
"fieldCnName": "归档年度",
"isInputClass": "popover",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 1
},
{
"id": "4",
"fieldName": "wh",
"fieldCnName": "文号",
"isInputClass": "text",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 1
},
{
"id": "5",
"fieldName": "jg",
"fieldCnName": "机构(问题)",
"isInputClass": "select",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "6",
"fieldName": "jh",
"fieldCnName": "件号",
"isInputClass": "number",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "7",
"fieldName": "date1",
"fieldCnName": "成交日期",
"isInputClass": "date",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 1
},
{
"id": "8",
"fieldName": "dh",
"fieldCnName": "档号",
"isInputClass": "text",
"isInputLength": 200,
"isFullRow": 1,
"isRequired": 0
},
{
"id": "9",
"fieldName": "th",
"fieldCnName": "题号",
"isInputClass": "textarea",
"isInputLength": 510,
"isFullRow": 1,
"isRequired": 1
},
{
"id": "10",
"fieldName": "bgqx",
"fieldCnName": "保管期限",
"isInputClass": "date",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "11",
"fieldName": "zrz",
"fieldCnName": "责任者",
"isInputClass": "text",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "12",
"fieldName": "ys",
"fieldCnName": "页数",
"isInputClass": "number",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "13",
"fieldName": "fs",
"fieldCnName": "份数",
"isInputClass": "number",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "14",
"fieldName": "mj",
"fieldCnName": "密级",
"isInputClass": "select",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "15",
"fieldName": "gdbz",
"fieldCnName": "归档标识",
"isInputClass": "select",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "16",
"fieldName": "ljr",
"fieldCnName": "立卷人",
"isInputClass": "text",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "17",
"fieldName": "date2",
"fieldCnName": "立卷时间",
"isInputClass": "date",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "18",
"fieldName": "jcr",
"fieldCnName": "检查人",
"isInputClass": "text",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "18",
"fieldName": "date3",
"fieldCnName": "检查时间",
"isInputClass": "date",
"isInputLength": 200,
"isFullRow": 0,
"isRequired": 0
},
{
"id": "19",
"fieldName": "bz",
"fieldCnName": "备注",
"isInputClass": "text",
"isInputLength": 510,
"isFullRow": 1,
"isRequired": 0
}]

15
src/views/category/descriptionPreview/index.vue

@ -5,7 +5,7 @@
<p>字段调整 显示字段</p> <p>字段调整 显示字段</p>
</div> </div>
<ul class="des-fields"> <ul class="des-fields">
<li v-for="(item,index) in showFields" v-show="item.isInput==1" :key="index" :class="[ fieldsActive == index ?'fields-active':'']" @click="selectField(index)">
<li v-for="(item,index) in showFields" v-show="item.isInput" :key="index" :class="[ fieldsActive == index ?'fields-active':'']" @click="selectField(index)">
<el-tooltip class="item" effect="dark" :content="item.fieldCnName" :enterable="false" placement="top"> <el-tooltip class="item" effect="dark" :content="item.fieldCnName" :enterable="false" placement="top">
<p>{{ item.fieldCnName }}</p> <p>{{ item.fieldCnName }}</p>
</el-tooltip> </el-tooltip>
@ -17,7 +17,7 @@
<!-- 收起展开 --> <!-- 收起展开 -->
<el-collapse-transition> <el-collapse-transition>
<ul v-show="isCollaspeHiddenFields" class="des-fields"> <ul v-show="isCollaspeHiddenFields" class="des-fields">
<li v-for="(item,index) in showFields" v-show="item.isInput==0" :key="index" :class="[ fieldsActive ==index ?'fields-active':'']" @click="selectField(index)">
<li v-for="(item,index) in showFields" v-show="!item.isInput" :key="index" :class="[ fieldsActive ==index ?'fields-active':'']" @click="selectField(index)">
<el-tooltip class="item" effect="dark" :content="item.fieldCnName" :enterable="false" placement="top"> <el-tooltip class="item" effect="dark" :content="item.fieldCnName" :enterable="false" placement="top">
<p>{{ item.fieldCnName }}</p> <p>{{ item.fieldCnName }}</p>
</el-tooltip> </el-tooltip>
@ -25,7 +25,7 @@
</ul> </ul>
</el-collapse-transition> </el-collapse-transition>
<div class="des-set-btn"> <div class="des-set-btn">
<el-button type="primary" icon="el-icon-edit" @click="settingFormVisible = true">修改</el-button>
<el-button type="primary" icon="el-icon-edit" @click="settingForm">修改</el-button>
<el-button class="des-set-sort" type="primary" icon="iconfont icon-paixu-fanbai" @click="previewFormVisible = true">排序</el-button> <el-button class="des-set-sort" type="primary" icon="iconfont icon-paixu-fanbai" @click="previewFormVisible = true">排序</el-button>
</div> </div>
<SettingForm :is-disabled="true" :this-fields="thisFields" /> <SettingForm :is-disabled="true" :this-fields="thisFields" />
@ -82,7 +82,7 @@ export default {
} }
}, },
mounted() { mounted() {
this.showFields = data
this.showFields = data.data
this.thisFields = this.showFields[this.fieldsActive] this.thisFields = this.showFields[this.fieldsActive]
}, },
methods: { methods: {
@ -92,6 +92,12 @@ export default {
// this.editResetForm() // this.editResetForm()
done() done()
}, },
settingForm() {
this.settingFormVisible = true
this.$nextTick(() => {
this.$refs.editForm.getDictrionaryList()
})
},
// //
selectField(index) { selectField(index) {
this.hiddenFieldsActive = -1 this.hiddenFieldsActive = -1
@ -245,6 +251,7 @@ export default {
max-height: calc(100vh - 330px); max-height: calc(100vh - 330px);
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
border: none;
.el-textarea__inner{ .el-textarea__inner{
border: 1px solid #339cff; border: 1px solid #339cff;
background-color: transparent; background-color: transparent;

73
src/views/category/descriptionPreview/module/PreviewForm.vue

@ -1,21 +1,30 @@
<template> <template>
<div class="preview-content des-form">
<div class="preview-content right-preview">
<el-row :gutter="4"> <el-row :gutter="4">
<el-form ref="addOrUpdateForm" :model="addOrUpdateForm" :rules="rules" label-width="100px"> <el-form ref="addOrUpdateForm" :model="addOrUpdateForm" :rules="rules" label-width="100px">
<draggable v-bind="{draggable:'.dragg-item',animation:500}" :disabled="!isDisabled" @update="datadragEnd"> <draggable v-bind="{draggable:'.dragg-item',animation:500}" :disabled="!isDisabled" @update="datadragEnd">
<el-col v-for="(item,index) in formPreviewData" :key="index" class="dragg-item" :span="item.isFullRow ? 24 : 12">
<el-col v-for="(item,index) in formPreviewData" :key="index" class="dragg-item" :span="item.isLine ? 24 : 12">
<el-form-item :label="item.fieldCnName" :prop="item.fieldName"> <el-form-item :label="item.fieldCnName" :prop="item.fieldName">
<!-- select --> <!-- select -->
<el-select
<!-- <el-select
v-if="item.isInputClass === 'select'" v-if="item.isInputClass === 'select'"
v-model="addOrUpdateForm[item.fieldName]" v-model="addOrUpdateForm[item.fieldName]"
placeholder="" placeholder=""
:style="{ width: item.isInputLength+'px'}"
:style="{ width: item.editLength+'px'}"
:disabled="isDisabled" :disabled="isDisabled"
:validate-event="isDisabled" :validate-event="isDisabled"
> >
<el-option v-for="option in selectData" :key="option.id" :label="option.dicName" :value="option.dicName" /> <el-option v-for="option in selectData" :key="option.id" :label="option.dicName" :value="option.dicName" />
</el-select>
</el-select> -->
<treeselect
v-if="item.isInputClass === 'select'"
:options="options"
:disable-branch-nodes="true"
placeholder=""
:style="{ width: item.editLength+'px'}"
:disabled="isDisabled"
:validate-event="isDisabled"
/>
<!-- text / number / textarea / popover --> <!-- text / number / textarea / popover -->
<el-input <el-input
v-if="item.isInputClass !== 'select' && item.isInputClass !== 'date'" v-if="item.isInputClass !== 'select' && item.isInputClass !== 'date'"
@ -23,7 +32,7 @@
:type="item.isInputClass === 'popover'? 'text' : item.isInputClass" :type="item.isInputClass === 'popover'? 'text' : item.isInputClass"
:rows="item.isInputClass === 'textarea' ? 3 : ''" :rows="item.isInputClass === 'textarea' ? 3 : ''"
:class="{'input-popover':(item.isInputClass === 'popover')}" :class="{'input-popover':(item.isInputClass === 'popover')}"
:style="{ width: item.isInputLength+'px'}"
:style="{ width: item.editLength+'px'}"
:disabled="isDisabled" :disabled="isDisabled"
:validate-event="isDisabled" :validate-event="isDisabled"
> >
@ -38,7 +47,7 @@
format="yyyy-MM-dd" format="yyyy-MM-dd"
placeholder="" placeholder=""
:clearable="false" :clearable="false"
:style="{ width: item.isInputLength+'px'}"
:style="{ width: item.editLength+'px'}"
:disabled="isDisabled" :disabled="isDisabled"
:validate-event="isDisabled" :validate-event="isDisabled"
/> />
@ -65,11 +74,15 @@
</template> </template>
<script> <script>
import formData from '../form.json'
import formData from '../data.json'
import draggable from 'vuedraggable' import draggable from 'vuedraggable'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
// import { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
import { FetchFindAllSubsetById } from '@/api/archivesConfig/dictDetail'
export default { export default {
name: 'PreviewForm', name: 'PreviewForm',
components: { draggable },
components: { draggable, Treeselect },
props: { props: {
isDisabled: { isDisabled: {
type: Boolean, type: Boolean,
@ -83,14 +96,36 @@ export default {
rules: {}, rules: {},
tableData: [], tableData: [],
selectData: {}, selectData: {},
popoverVisible: false
popoverVisible: false,
options: []
// normalizer(node) {
// return {
// id: node.key,
// label: node.name,
// children: node.subOptions
// }
// }
} }
}, },
mounted() { mounted() {
this.formPreviewData = formData
this.formPreviewData = formData.data
this.editFormRow() this.editFormRow()
this.loadDepts()
}, },
methods: { methods: {
//
loadDepts() {
FetchFindAllSubsetById({ id: '4028e3d480d116120180d116ebb60000' }).then(res => {
console.log(res)
this.options = res
// parentNode.children = res.content.map(function(obj) {
// if (obj.hasChildren) {
// obj.children = null
// }
// return obj
// })
})
},
editFormRow(row) { editFormRow(row) {
this.rules = {} this.rules = {}
this.formPreviewData.map(item => { this.formPreviewData.map(item => {
@ -139,29 +174,19 @@ export default {
padding: 20px 15px 20px 0 !important; padding: 20px 15px 20px 0 !important;
margin-top: 0 !important; margin-top: 0 !important;
border-radius: 4px; border-radius: 4px;
background-color: #02255F;
border: 1px solid #3A99FD;
::v-deep .el-input__inner{ ::v-deep .el-input__inner{
width: 100%; width: 100%;
} }
::v-deep .el-textarea__inner{
width: 100%;
color: #3A99FD;
background: #021941;
border: none;
&::placeholder{
color: #3A99FD !important;
}
&::-webkit-input-placeholder{
color: #3A99FD !important;
}
}
::v-deep .el-input__prefix{ ::v-deep .el-input__prefix{
text-align: right; text-align: right;
right: 5px !important; right: 5px !important;
color: #339cff;
} }
.input-popover { .input-popover {
::v-deep .el-input__suffix{ ::v-deep .el-input__suffix{
right: 10px; right: 10px;
color: #339cff;
} }
} }
::v-deep .el-date-editor{ ::v-deep .el-date-editor{

176
src/views/category/descriptionPreview/module/SettingForm.vue

@ -6,38 +6,48 @@
<el-form-item v-if="!isDisabled" label="中文名称" prop="fieldCnName"> <el-form-item v-if="!isDisabled" label="中文名称" prop="fieldCnName">
<el-input v-model="form.fieldCnName" :disabled="isDisabled" /> <el-input v-model="form.fieldCnName" :disabled="isDisabled" />
</el-form-item> </el-form-item>
<el-form-item v-if="!isDisabled" label="字段标识" prop="fieldName"> <el-form-item v-if="!isDisabled" label="字段标识" prop="fieldName">
<el-input v-model="form.fieldName" disabled />
<el-input v-if="isDisabled" v-model="form.fieldName" readonly />
<el-input v-else v-model="form.fieldName" disabled />
</el-form-item> </el-form-item>
<el-form-item label="字段类型" prop="isDataType"> <el-form-item label="字段类型" prop="isDataType">
<el-select v-model="form.isDataType" placeholder="" disabled>
<el-input v-if="isDisabled" v-model="form.isDataType" readonly />
<el-select v-else v-model="form.isDataType" placeholder="" disabled>
<el-option v-for="item in dataTypeOptions" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in dataTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="字段长度" prop="isColumnLength"> <el-form-item label="字段长度" prop="isColumnLength">
<el-input v-model="form.isColumnLength" placeholder="" disabled />
<el-input v-if="isDisabled" v-model="form.isColumnLength" placeholder="" readonly />
<el-input v-else v-model="form.isColumnLength" placeholder="" disabled />
</el-form-item> </el-form-item>
<el-form-item label="著录形式" prop="isInputClass"> <el-form-item label="著录形式" prop="isInputClass">
<el-select v-model="form.isInputClass" placeholder="" :disabled="isDisabled" @change="selectInputClass">
<el-input v-if="isDisabled" v-model="form.isInputClassTxt" readonly />
<el-select v-else v-model="form.isInputClass" placeholder="" @change="selectInputClass">
<el-option v-for="item in inputClassOptions" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in inputClassOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="对应字典" prop="isDefaultValueType">
<el-select v-model="form.isDefaultValueType" placeholder="" :disabled="isDisabled">
<el-option v-for="item in dictionaryData" :key="item.id" :label="item.dicName" :value="item.dicName" />
<el-form-item label="对应字典" prop="sysDictionaryId">
<el-input v-if="isDisabled" v-model="form.sysDictionaryId" readonly />
<el-select v-else v-model="form.sysDictionaryId" placeholder="">
<el-option v-for="item in dictionaryData" :key="item.id" :label="item.dicName" :value="item.dicCode" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="显示长度" prop="isInputLength">
<el-input v-model="form.isInputLength" :disabled="isDisabled" />
<el-form-item label="显示长度" prop="editLength">
<el-input v-model="form.editLength" :readonly="isDisabled" @keyup.enter.native="changEditLength" @blur="changEditLength" />
</el-form-item> </el-form-item>
<el-form-item label="默认值" prop="isDefaultValue"> <el-form-item label="默认值" prop="isDefaultValue">
<el-input v-model="form.isDefaultValue" :disabled="isDisabled" />
<el-input v-model="form.isDefaultValue" :readonly="isDisabled" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="9"> <el-col :span="9">
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>显示一整行</span> <span>显示一整行</span>
<el-checkbox v-model="form.isFullrow" label="" name="isFullrow" :disabled="isDisabled" />
<el-checkbox v-model="form.isLine" label="" name="isLine" :disabled="isDisabled" @change="changeIsLine" />
</el-form-item> </el-form-item>
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>输入字段</span> <span>输入字段</span>
@ -49,19 +59,20 @@
</el-form-item> </el-form-item>
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>自动生成</span> <span>自动生成</span>
<el-checkbox v-model="form.isAuto" label="" name="isAuto" :disabled="isDisabled" @change="changeAuto" />
<el-checkbox v-model="form.isAutomatic" label="" name="isAutomatic" :disabled="isDisabled" @change="changeAuto" />
</el-form-item> </el-form-item>
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>值不重复</span> <span>值不重复</span>
<el-checkbox v-model="form.isNoRepetition" label="" name="isNoRepetition" :disabled="isDisabled" />
<el-checkbox v-model="form.isRepeat" label="" name="isRepeat" :disabled="isDisabled" />
</el-form-item> </el-form-item>
<el-form-item class="checkbox-item"> <el-form-item class="checkbox-item">
<span>自动补零</span> <span>自动补零</span>
<el-checkbox v-model="form.isSupplement" label="" name="isSupplement" :disabled="isDisabled" @change="changeSupplement" />
<el-checkbox v-model="form.isFilling" label="" name="isFilling" :disabled="isDisabled" @change="changeSupplement" />
</el-form-item> </el-form-item>
<el-form-item class="input-num" label="位数" prop="isSupplementNum">
<!-- <el-input v-model="form.isSupplementNum" type="number" :min="1" :disabled="isDisabled || !form.isSupplement" /> -->
<el-input-number v-model="form.isSupplementNum" controls-position="right" :min="1" :disabled="isDisabled || !form.isSupplement" />
<el-form-item class="input-num" label="位数" prop="fillingDigit">
<el-input v-if="isDisabled" v-model="form.fillingDigit" readonly />
<!-- <el-input v-model="form.fillingDigit" type="number" :min="1" :disabled="isDisabled || !form.isSupplement" /> -->
<el-input-number v-else v-model="form.fillingDigit" controls-position="right" :min="1" :disabled="isDisabled || !form.isFilling" />
<span></span> <span></span>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -71,7 +82,8 @@
</template> </template>
<script> <script>
import dictionarylist from '../dictionarylist.json'
// import dictionarylist from '../dictionarylist.json'
import { getDicts } from '@/api/archivesConfig/dict'
export default { export default {
name: 'SettingForm', name: 'SettingForm',
components: {}, components: {},
@ -114,16 +126,16 @@ export default {
// isDataType: '', // isDataType: '',
// isColumnLength: '', // isColumnLength: '',
// isInputClass: '', // isInputClass: '',
// isDefaultValueType: '',
// sysDictionaryId: '',
// isInputLength: '', // isInputLength: '',
// isDefaultValue: '', // isDefaultValue: '',
// isSupplement: '',
// isFullrow: '',
// isFilling: '',
// isLine: '',
// isInput: '', // isInput: '',
// isRequired: '', // isRequired: '',
// isAuto: '',
// isNoRepetition: '',
// isSupplementNum: ''
// isAutomatic: '',
// isRepeat: '',
// fillingDigit: ''
}, },
rules: { rules: {
fieldCnName: [ fieldCnName: [
@ -165,26 +177,7 @@ export default {
} }
}, },
mounted() { mounted() {
//
this.dictionaryData = dictionarylist
this.$nextTick(() => { this.$nextTick(() => {
// this.form = {
// fieldCnName: this.thisFields.fieldCnName,
// fieldName: this.thisFields.fieldName,
// isDataType: this.thisFields.isDataType,
// isColumnLength: this.thisFields.isColumnLength,
// isInputClass: this.thisFields.isInputClass,
// isDefaultValueType: this.thisFields.isDefaultValueType,
// isInputLength: this.thisFields.isInputLength,
// isDefaultValue: this.thisFields.isDefaultValue,
// isSupplement: this.thisFields.isSupplement,
// isFullrow: this.thisFields.isFullrow,
// isInput: this.thisFields.isInput,
// isRequired: this.thisFields.isRequired,
// isAuto: this.thisFields.isAuto,
// isNoRepetition: this.thisFields.isNoRepetition,
// isSupplementNum: this.thisFields.isSupplementNum
// }
this.form = this.thisFields this.form = this.thisFields
this.getForm() this.getForm()
}) })
@ -192,27 +185,59 @@ export default {
methods: { methods: {
getForm() { getForm() {
// //
this.form.isSupplement = !!this.form.isSupplement
this.form.isFullrow = !!this.form.isFullrow
this.form.isFilling = !!this.form.isFilling
this.form.isLine = !!this.form.isLine
this.form.isInput = !!this.form.isInput this.form.isInput = !!this.form.isInput
this.form.isRequired = !!this.form.isRequired this.form.isRequired = !!this.form.isRequired
this.form.isAuto = !!this.form.isAuto
this.form.isAutomatic = !!this.form.isAutomatic
//
if (this.form.isDataType === 1) {
this.form.isDataType = '字符'
} else if (this.form.isDataType === 2) {
this.form.isDataType = '数字'
}
// -
switch (this.form.isInputClass) {
case 'select':
this.form.isInputClassTxt = '下拉框'
break
case 'popover':
this.form.isInputClassTxt = '弹出框'
break
case 'text':
this.form.isInputClassTxt = '文本框'
break
case 'number':
this.form.isInputClassTxt = '数字框'
break
case 'date':
this.form.isInputClassTxt = '日期框'
break
case 'textarea':
this.form.isInputClassTxt = '文本域'
break
}
// - - // - -
if (this.form.isInputClass === 'select' || this.form.isInputClass === 'popover') { if (this.form.isInputClass === 'select' || this.form.isInputClass === 'popover') {
this.dictionaryData = dictionarylist
this.getDictrionaryList()
} else { } else {
this.dictionaryData = [] this.dictionaryData = []
this.form.isDefaultValueType = null
} }
this.changeSupplement()
},
// list
getDictrionaryList() {
getDicts().then(res => {
this.dictionaryData = res
})
}, },
// '''' // ''''
selectInputClass(value) { selectInputClass(value) {
console.log(value)
if (value === 'select' || value === 'popover') { if (value === 'select' || value === 'popover') {
this.dictionaryData = dictionarylist
this.getDictrionaryList()
} else { } else {
this.dictionaryData = [] this.dictionaryData = []
this.form.isDefaultValueType = null
this.form.sysDictionaryId = null
} }
// //
if (this.form.isDataType === 2) { if (this.form.isDataType === 2) {
@ -221,42 +246,65 @@ export default {
this.$message.error('字段类型为数字型,且默认著录类型为数字框') this.$message.error('字段类型为数字型,且默认著录类型为数字框')
} }
}, },
// input.value>200,
changEditLength(e) {
const value = e.target.value
if (value > 200) {
this.form.isLine = true
}
if (value > 510) {
this.$message.error('显示长度最大510')
}
},
changeIsLine() {
if (!this.form.isLine) {
if (this.form.editLength > 200) {
this.form.editLength = 200
}
}
},
// '' false - // '' false -
changeSupplement() { changeSupplement() {
if (!this.form.isSupplement) {
this.form.isSupplementNum = undefined
if (!this.form.isFilling) {
this.form.fillingDigit = undefined
} }
if (this.form.isSupplement) {
if (this.form.isFilling) {
// '''' // ''''
if (this.form.isDataType === 2) { if (this.form.isDataType === 2) {
this.form.isSupplement = false
this.form.isFilling = false
this.$message.error('字段类型必须为字符型才可操作!') this.$message.error('字段类型必须为字符型才可操作!')
} }
// - // -
if (this.form.isInputClass !== 'number') { if (this.form.isInputClass !== 'number') {
this.form.isSupplement = false
this.form.isFilling = false
this.$message.error('著录形式必须为数字框才可操作!') this.$message.error('著录形式必须为数字框才可操作!')
} }
} }
}, },
// - // -
changeAuto() { changeAuto() {
if (this.form.isAutoField === 1) {
this.form.isAuto = false
if (this.form.isAutomaticField === 1) {
this.form.isAutomatic = false
this.$message.error('已经为档号组成项,不可设置为自动生成') this.$message.error('已经为档号组成项,不可设置为自动生成')
} else if (this.form.isInputClass !== 'text') { } else if (this.form.isInputClass !== 'text') {
this.form.isAuto = false
this.form.isAutomatic = false
this.$message.error('著录形式必须为文本框才可操作!') this.$message.error('著录形式必须为文本框才可操作!')
} }
}, },
submitForm(formName) { submitForm(formName) {
// '' // ''
if (this.form.isSupplement) {
if (!this.form.isSupplementNum) {
if (this.form.isFilling) {
if (!this.form.fillingDigit) {
this.$message.error('请填写位数!') this.$message.error('请填写位数!')
return return
} }
} }
if (this.form.editLength) {
if (this.form.editLength > 510) {
this.$message.error('显示长度最大510')
return
}
}
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
alert('submit!') alert('submit!')
@ -280,5 +328,11 @@ export default {
margin-top: 30px; margin-top: 30px;
border-radius: 4px; border-radius: 4px;
background-color: #02255F; background-color: #02255F;
::v-deep .el-checkbox,
::v-deep .el-checkbox__input,
::v-deep .el-checkbox__input.is-disabled .el-checkbox__inner,
::v-deep .el-checkbox__inner::after{
cursor: default;
}
} }
</style> </style>
Loading…
Cancel
Save