| | |
| | | <template> |
| | | <el-dialog |
| | | title="业务类型" |
| | | <el-dialog |
| | | v-loading="loading" |
| | | :visible.sync="showSubmitDialog" |
| | | append-to-body |
| | | @close="closeSubmitDialog" |
| | | width="70%" |
| | | style="height: 115vh;" |
| | | > |
| | | <el-form ref="form" :model="btmType" show-message="true" inline size="medium" label-suffix=":" class="btmTypeForm"> |
| | | |
| | | <el-form-item label="英文名称" label-width="100px" required="true"> |
| | | <el-input v-model="btmType.id" :prefix-icon="icons.key"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="中文名称" label-width="100px"> |
| | | <el-input v-model="btmType.name" :prefix-icon="icons.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据库表名" label-width="100px"> |
| | | <el-input v-model="btmType.tableName" :prefix-icon="icons.tableName"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="所属领域" label-width="100px"> |
| | | <el-select v-model="btmType.domain" :prefix-icon="icons.domain"> |
| | | <el-option v-for="item in domainOption" |
| | | :label="item.label" :value="item.value" :key="item.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="版本规则" label-width="100px"> |
| | | <el-input v-model="btmType.revisionRuleName" :prefix-icon="icons.revisionRule" class="revisionRule" |
| | | @focus="openRevision" clearable @clear="clearRevision"> |
| | | <i slot="suffix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生命周期" label-width="100px"> |
| | | <el-input v-model="btmType.lifeCycleId" :prefix-icon="icons.lifeCycle"> |
| | | <i slot="suffix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | <div> |
| | | <el-form-item label="开启视图" label-width="100px" class="viewFlag"> |
| | | <el-switch v-model="btmType.viewFlag" active-color="#13ce66" @change="viewChange"></el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="视图语句" label-width="100px"> |
| | | <el-input v-model="btmType.view" :prefix-icon="icons.view" :disabled="!btmType.viewFlag"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="描述" label-width="100px" class="description"> |
| | | <el-input v-model="btmType.description" |
| | | :prefix-icon="icons.desc" |
| | | class="descClass" |
| | | id="descId" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <avue-crud :option="option" |
| | | :data="btmType.attributes" |
| | | :page.sync="page" |
| | | ref="attrTable" |
| | | @cell-mouse-enter="cellEditClick" |
| | | @cell-mouse-leave="cellEditSave"> |
| | | <template slot-scope="scope" slot="menuLeft"> |
| | | <el-button type="danger" |
| | | icon="el-icon-plus" |
| | | size="small" |
| | | @click="rowAdd()">属性选择</el-button> |
| | | </template> |
| | | |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitBtmType">确定</el-button> |
| | | <el-button @click="cancleSubmitBtmType">取消</el-button> |
| | | </div> |
| | | title="业务类型" |
| | | top="6vh" |
| | | width="70%" |
| | | @close="closeSubmitDialog" |
| | | > |
| | | <el-form ref="form" :model="btmType" :rules="rules" class="btmTypeForm" inline label-suffix=":" show-message="true" |
| | | size="medium" status-icon="true" @resetFields="resetForm"> |
| | | <el-form-item label="英文名称" label-width="100px" prop="id" required="true"> |
| | | <el-input v-model="btmType.id" :disabled="false" :prefix-icon="icons.key"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="中文名称" label-width="100px"> |
| | | <el-input v-model="btmType.name" :prefix-icon="icons.name"></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="数据库表名" label-width="100px"> |
| | | <el-input v-model="btmType.tableName" :prefix-icon="icons.tableName"></el-input> |
| | | </el-form-item> --> |
| | | <el-form-item class="domainSelect" label="所属领域" label-width="100px" prop="domain"> |
| | | <el-select v-model="btmType.bizDomain" :prefix-icon="icons.domain" placeholder="请选择领域" @change="domainChange"> |
| | | <el-option v-for="item in domainOption" |
| | | :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="版本规则" label-width="100px"> |
| | | <el-input v-model="btmType.revisionRuleName" |
| | | :prefix-icon="icons.revisionRule" |
| | | :suffix-icon="icons.referType" |
| | | class="revisionRule" |
| | | clearable |
| | | placeholder="请选择,留空则不进行管理" |
| | | @change="ruleChange" |
| | | @clear="clearRevision" |
| | | @focus="openRevision"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生命周期" label-width="100px"> |
| | | <el-input v-model="btmType.lifeCycleName" |
| | | :prefix-icon="icons.lifeCycle" |
| | | :suffix-icon="icons.referType" |
| | | class="lifeCycle" |
| | | clearable |
| | | placeholder="请选择,留空则不进行管理" |
| | | @clear="clearLifeCycle" |
| | | @focus="openLifeCycle"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- <div>--> |
| | | <!-- <el-form-item label="开启视图" label-width="100px" class="viewFlag">--> |
| | | <!-- <el-switch v-model="btmType.viewFlag" active-color="#13ce66" @change="viewChange"></el-switch>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- <el-form-item label="视图语句" label-width="100px" class="viewInput">--> |
| | | <!-- <el-input v-model="btmType.view" :prefix-icon="icons.view" :disabled="!btmType.viewFlag"></el-input>--> |
| | | <!-- </el-form-item>--> |
| | | <!-- </div>--> |
| | | <el-form-item class="description" label="描述" label-width="100px"> |
| | | <el-input id="descId" |
| | | v-model="btmType.description" |
| | | :prefix-icon="icons.desc" |
| | | class="descClass" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <avue-crud ref="attrTable" |
| | | :data="btmType.attributes" |
| | | :option="option" |
| | | :page.sync="page"> |
| | | <template slot="menuLeft" slot-scope="scope"> |
| | | <el-button icon="el-icon-plus" |
| | | size="small" |
| | | type="danger" |
| | | @click="rowAdd()">属性选择 |
| | | </el-button> |
| | | </template> |
| | | <template slot="attrDataTypeText" slot-scope="{row}"> |
| | | <el-tag v-if=" row.attrDataTypeText">{{ row.attrDataTypeText }}</el-tag> |
| | | </template> |
| | | <template slot="isDefaultAttr" slot-scope="{row}"> |
| | | <el-tag v-if="row.isDefaultAttr" type="success">是</el-tag> |
| | | <el-tag v-else type="danger">否</el-tag> |
| | | </template> |
| | | <template slot="menu" slot-scope="{row,index}"> |
| | | <el-button v-if="!row.$cellEdit" icon="el-icon-edit" size="small" type="text" @click="cellEditClick(row,index)"> |
| | | 编辑 |
| | | </el-button> |
| | | <el-button v-if="!row.$cellEdit" icon="el-icon-delete" size="small" type="text" |
| | | @click="removeFormAttrTable(row,index)">移除 |
| | | </el-button> |
| | | <el-button v-if="row.$cellEdit" icon="el-icon-check" size="small" type="text" @click="cellEditSave(row,index)"> |
| | | 保存 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitBtmType">确定</el-button> |
| | | <el-button @click="cancleSubmitBtmType">取消</el-button> |
| | | </div> |
| | | |
| | | <!-- 属性池的选择 --> |
| | | <el-dialog title="属性池" |
| | | :visible="attrRef.visible" |
| | | append-to-body |
| | | @close="closeAttrDialog" |
| | | width="80%" |
| | | > |
| | | <avue-crud class="attrRef" |
| | | :option="attrRef.option" |
| | | :data="attrRef.data" |
| | | :page.sync="attrRef.page" |
| | | ref="attrRef" |
| | | @on-load="attrRefOnLoad" |
| | | @search-change="attrRefSearch" |
| | | @selection-change="selectionChange"> |
| | | <template slot="name" slot-scope="scope" > |
| | | <el-tag>{{scope}}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="confirmSelectAttr">确定</el-button> |
| | | <el-button @click="cancleSelectAttr">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 版本规则的参照 --> |
| | | <el-dialog title="请选择版本规则" |
| | | :visible.sync="revisionRef.visible" |
| | | append-to-body |
| | | width="80%"> |
| | | |
| | | <avue-crud class="revisionRef" |
| | | :option="revisionRef.option" |
| | | :data="revisionRef.data" |
| | | :page.sync="revisionRef.page" |
| | | ref="revisionRef" |
| | | @row-click="revisionClick"> |
| | | <template slot="radio" |
| | | slot-scope="{row}"> |
| | | <el-radio v-model="revisionRef.selectRow" |
| | | :label="row.$index"> |
| | | </el-radio> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="confirmRevision">确定</el-button> |
| | | <el-button @click="cancelRevision">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 属性池的选择 --> |
| | | <el-dialog :visible="attrRef.visible" |
| | | append-to-body |
| | | title="属性池" |
| | | width="80%" |
| | | @close="closeAttrDialog" |
| | | > |
| | | <avue-crud ref="attrRef" |
| | | v-loading="attrRef.loading" |
| | | :data="attrRef.data" |
| | | :option="attrRef.option" |
| | | :page.sync="attrRef.page" |
| | | class="attrRef" |
| | | @on-load="attrRefOnLoad" |
| | | @search-change="attrRefSearch" |
| | | @selection-change="selectionChange"> |
| | | <template slot="typeValue" slot-scope="scope"> |
| | | <el-tag v-if="scope.row.typeValue">{{ scope.row.typeValue }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="confirmSelectAttr">确定</el-button> |
| | | <el-button @click="cancleSelectAttr">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 版本规则的参照 --> |
| | | <el-dialog :visible.sync="revisionRef.visible" |
| | | append-to-body |
| | | title="请选择版本规则" |
| | | width="80%"> |
| | | |
| | | <avue-crud ref="revisionRef" |
| | | v-loading="revisionRef.loading" |
| | | :data="revisionRef.data" |
| | | :option="revisionRef.option" |
| | | :page.sync="revisionRef.page" |
| | | class="revisionRef" |
| | | @row-click="revisionClick" |
| | | @search-change="searchRevisionRule" |
| | | @search-reset="clearSearchRevisionRule"> |
| | | <template slot="radio" |
| | | slot-scope="{row}"> |
| | | <el-radio v-model="revisionRef.selectRow" |
| | | :label="row.$index"> |
| | | </el-radio> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="confirmRevision">确定</el-button> |
| | | <el-button @click="cancelRevision">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- 生命周期的参照 --> |
| | | <el-dialog :visible.sync="lifeCycleRef.visible" |
| | | append-to-body |
| | | title="请选择生命周期" |
| | | width="80%"> |
| | | |
| | | <avue-crud ref="lifeCycleRef" |
| | | v-loading="lifeCycleRef.loading" |
| | | :data="lifeCycleRef.data" |
| | | :option="lifeCycleRef.option" |
| | | :page.sync="lifeCycleRef.page" |
| | | class="lifeCycleRef" |
| | | @row-click="lifeCycleClick" |
| | | @search-change="searchLifeCycle" |
| | | @search-reset="clearSearchLifeCycle"> |
| | | <template slot="radio" |
| | | slot-scope="{row}"> |
| | | <el-radio v-model="lifeCycleRef.selectRow" |
| | | :label="row.$index"> |
| | | </el-radio> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="confirmLifeCycle">确定</el-button> |
| | | <el-button @click="cancelLifeCycle">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </el-dialog> |
| | | |
| | | |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | |
| | | import { add,update } from '@/api/omd/btmType'; |
| | | import { queryPage } from '@/api/omd/OmdAttribute'; |
| | | import { getPage } from '@/api/omd/revisionRule'; |
| | | import {add, update, defaultRequestHandler} from '@/api/omd/btmType'; |
| | | import {queryPage} from '@/api/omd/OmdAttribute'; |
| | | import {getPage} from '@/api/omd/revisionRule'; |
| | | import {getList} from '@/api/modeling/cycle'; |
| | | |
| | | export default { |
| | | name: 'BusinessAdd', |
| | | props: { |
| | | btmType:{ |
| | | type: Object |
| | | }, |
| | | domainOption:{ |
| | | type: Array |
| | | }, |
| | | icons: { |
| | | type: Array |
| | | } |
| | | name: 'BusinessAdd', |
| | | props: { |
| | | btmType: { |
| | | type: Object, |
| | | default: {} |
| | | }, |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | showSubmitDialog : false, |
| | | option: { |
| | | height: "330px", |
| | | selection: true, |
| | | headerAlign: 'center', |
| | | border: true, |
| | | index: true, |
| | | rowKey: 'id', |
| | | tabs: true, |
| | | menu: false, |
| | | addBtn:false, |
| | | highlightCurrentRow: true, |
| | | column: [ |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | align: 'center' |
| | | }, { |
| | | label: '中文名称', |
| | | prop: 'name', |
| | | align: 'center', |
| | | cell: true |
| | | }, |
| | | { |
| | | label: "类型", |
| | | prop: "attrDataType", |
| | | align: 'center', |
| | | slot: true |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | align: 'center', |
| | | cell: true |
| | | }, |
| | | { |
| | | label: "说明", |
| | | prop: "description", |
| | | align: 'center', |
| | | cell:true |
| | | } |
| | | ] |
| | | }, |
| | | attrRef:{ |
| | | visible:false, |
| | | page: { |
| | | currentPage:1, |
| | | pageSize:10, |
| | | }, |
| | | key: null, |
| | | option:{ |
| | | height: 360, |
| | | addBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | selection: true, |
| | | menu: false, |
| | | border: true, |
| | | reserveSelection: true, |
| | | searchMenuSpan:8, |
| | | highlightCurrentRow: true, |
| | | column: [ |
| | | { |
| | | label: '英文名称', |
| | | prop: 'key', |
| | | align: 'left', |
| | | search: true, |
| | | width: 230 |
| | | }, { |
| | | label: '中文名称', |
| | | prop: 'label', |
| | | align: 'center', |
| | | }, |
| | | { |
| | | label: "类型", |
| | | prop: "typeValue", |
| | | align: 'center' |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | align: 'center' |
| | | }, |
| | | { |
| | | label: '允许为空', |
| | | prop: 'nullable', |
| | | type: 'switch', |
| | | display: false, |
| | | hide: true, |
| | | labelWidth: 132, |
| | | dicData: [{ |
| | | label: '否', |
| | | value: 1 |
| | | }, { |
| | | label: '是', |
| | | value: 0 |
| | | }] |
| | | }, |
| | | { |
| | | label: "说明", |
| | | prop: "description", |
| | | cell:true, |
| | | align: 'center' |
| | | } |
| | | ] |
| | | }, |
| | | data: [], |
| | | queryNotIn: null |
| | | }, |
| | | revisionRef: { |
| | | visible: false, |
| | | page: { |
| | | currentPage:1, |
| | | pageSize: 10 |
| | | }, |
| | | selectRow:'', |
| | | searchKey: null, |
| | | option:{ |
| | | height: 360, |
| | | addBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | menu: false, |
| | | border: true, |
| | | reserveSelection: true, |
| | | searchMenuSpan:8, |
| | | searchShowBtn: false, |
| | | highlightCurrentRow: true, |
| | | column:[{ |
| | | label: '选择', |
| | | prop: 'radio', |
| | | width: 60, |
| | | hide: false |
| | | }, |
| | | { |
| | | label:'英文名称', |
| | | prop: 'id', |
| | | search:true |
| | | }, |
| | | { |
| | | label:"中文名称", |
| | | prop:"name", |
| | | search:true, |
| | | }, |
| | | { |
| | | label:"跳跃字符", |
| | | prop: "skipCode" |
| | | }, |
| | | { |
| | | label: "初始值", |
| | | prop:"startCode" |
| | | }, |
| | | { |
| | | label: "步长", |
| | | prop: "serialStep" |
| | | }, |
| | | { |
| | | label: "前缀", |
| | | prop:"prefixCode" |
| | | }, |
| | | { |
| | | label: "后缀", |
| | | prop: "suffixCode" |
| | | }, |
| | | { |
| | | label: "描述", |
| | | prop:"description", |
| | | type:"textarea" |
| | | } |
| | | ] |
| | | }, |
| | | }, |
| | | } |
| | | domainOption: { |
| | | type: Array |
| | | }, |
| | | created() { |
| | | |
| | | icons: { |
| | | type: Array |
| | | }, |
| | | methods: { |
| | | // 关闭组件弹窗 |
| | | closeSubmitDialog(){ |
| | | this.showSubmitDialog = false; |
| | | this.btmType.attributes = []; |
| | | this.btmType = {}; |
| | | this.attrRef.selectData = []; |
| | | this.attrRef.queryNotIn = null; |
| | | type: { |
| | | type: String, |
| | | }, |
| | | }, |
| | | watch: {}, |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | loading: false, |
| | | showSubmitDialog: false, |
| | | option: { |
| | | height: "330px", |
| | | selection: false, |
| | | headerAlign: 'center', |
| | | border: true, |
| | | index: true, |
| | | rowKey: 'id', |
| | | tabs: true, |
| | | menu: true, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | columnBtn: false, |
| | | refreshBtn: false, |
| | | menuWidth: 150, |
| | | addBtn: false, |
| | | highlightCurrentRow: true, |
| | | column: [ |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | align: 'center', |
| | | disabled: true |
| | | }, { |
| | | label: '中文名称', |
| | | prop: 'name', |
| | | align: 'center', |
| | | cell: true |
| | | }, { |
| | | label: "类型", |
| | | prop: "attrDataTypeText", |
| | | align: 'center', |
| | | slot: true |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | align: 'center', |
| | | cell: true |
| | | }, |
| | | { |
| | | label: "说明", |
| | | prop: "description", |
| | | align: 'center', |
| | | cell: true |
| | | }, |
| | | { |
| | | label: '默认字段', |
| | | prop: 'isDefaultAttr', |
| | | align: 'center', |
| | | cell: true, |
| | | slot: true |
| | | } |
| | | ] |
| | | }, |
| | | attrRef: { |
| | | visible: false, |
| | | page: { |
| | | currentPage: 1, |
| | | pageSize: 10, |
| | | }, |
| | | // 关闭属性池查询弹窗 |
| | | closeAttrDialog(){ |
| | | this.attrRef.visible = false; |
| | | loading: false, |
| | | key: null, |
| | | option: { |
| | | height: 360, |
| | | addBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | selection: true, |
| | | menu: false, |
| | | border: true, |
| | | reserveSelection: true, |
| | | searchMenuSpan: 8, |
| | | highlightCurrentRow: true, |
| | | rowKey: 'id', |
| | | column: [ |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | align: 'left', |
| | | search: true, |
| | | disabled: true, |
| | | width: 230 |
| | | }, { |
| | | label: '中文名称', |
| | | prop: 'name', |
| | | align: 'center', |
| | | }, |
| | | { |
| | | label: "类型", |
| | | prop: "typeValue", |
| | | align: 'center', |
| | | slot: true, |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | align: 'center' |
| | | }, |
| | | { |
| | | label: '允许为空', |
| | | prop: 'nullable', |
| | | type: 'switch', |
| | | display: false, |
| | | hide: true, |
| | | labelWidth: 132, |
| | | dicData: [{ |
| | | label: '否', |
| | | value: 1 |
| | | }, { |
| | | label: '是', |
| | | value: 0 |
| | | }] |
| | | }, |
| | | { |
| | | label: "说明", |
| | | prop: "description", |
| | | cell: true, |
| | | align: 'center' |
| | | } |
| | | ] |
| | | }, |
| | | // 添加 |
| | | rowAdd(){ |
| | | this.attrRef.visible = true; |
| | | this.attrRefOnLoad(); |
| | | data: [], |
| | | queryNotIn: '' |
| | | }, |
| | | revisionRef: { |
| | | visible: false, |
| | | page: { |
| | | currentPage: 1, |
| | | pageSize: 10 |
| | | }, |
| | | // 属性池加载 |
| | | attrRefOnLoad(){ |
| | | queryPage(this.attrRef.key,this.attrRef.queryNotIn,this.attrRef.page.currentPage, this.attrRef.page.pageSize).then(res => { |
| | | const data = res.data.data; |
| | | this.attrRef.page.total = data.total; |
| | | this.attrRef.data = data.records; |
| | | }); |
| | | this.$nextTick(() => { |
| | | this.$refs.attrRef.refreshTable(); |
| | | }); |
| | | loading: false, |
| | | selectRow: '', |
| | | searchKey: null, |
| | | option: { |
| | | height: 360, |
| | | addBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | menu: false, |
| | | border: true, |
| | | reserveSelection: true, |
| | | searchMenuSpan: 8, |
| | | searchShowBtn: false, |
| | | highlightCurrentRow: true, |
| | | column: [{ |
| | | label: '选择', |
| | | prop: 'radio', |
| | | width: 60, |
| | | hide: false |
| | | }, |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | disabled: true, |
| | | search: true |
| | | }, |
| | | { |
| | | label: "中文名称", |
| | | prop: "name", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "跳跃字符", |
| | | prop: "skipCode" |
| | | }, |
| | | { |
| | | label: "初始值", |
| | | prop: "startCode" |
| | | }, |
| | | { |
| | | label: "步长", |
| | | prop: "serialStep" |
| | | }, |
| | | { |
| | | label: "前缀", |
| | | prop: "prefixCode" |
| | | }, |
| | | { |
| | | label: "后缀", |
| | | prop: "suffixCode" |
| | | }, |
| | | { |
| | | label: "描述", |
| | | prop: "description", |
| | | type: "textarea" |
| | | } |
| | | ] |
| | | }, |
| | | // 属性池检索 |
| | | attrRefSearch(form,done){ |
| | | this.attrRef.key = form.key; |
| | | this.attrRefOnLoad(); |
| | | done(); |
| | | this.attrRef.key = null; |
| | | }, |
| | | lifeCycleRef: { |
| | | visible: false, |
| | | page: { |
| | | currentPage: 1, |
| | | pageSize: 10 |
| | | }, |
| | | // 属性池勾选事件 |
| | | selectionChange(list){ |
| | | this.attrRef.selectData = list; |
| | | loading: false, |
| | | selectRow: '', |
| | | searchKey: null, |
| | | option: { |
| | | height: 360, |
| | | addBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | menu: false, |
| | | border: true, |
| | | reserveSelection: true, |
| | | searchMenuSpan: 8, |
| | | searchShowBtn: false, |
| | | highlightCurrentRow: true, |
| | | column: [{ |
| | | label: '选择', |
| | | prop: 'radio', |
| | | width: 60, |
| | | hide: false |
| | | }, |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | disabled: true, |
| | | search: true |
| | | }, |
| | | { |
| | | label: "中文名称", |
| | | prop: "name", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "跳跃字符", |
| | | prop: "skipCode" |
| | | }, |
| | | { |
| | | label: "初始值", |
| | | prop: "startCode" |
| | | }, |
| | | { |
| | | label: "步长", |
| | | prop: "serialStep" |
| | | }, |
| | | { |
| | | label: "前缀", |
| | | prop: "prefixCode" |
| | | }, |
| | | { |
| | | label: "后缀", |
| | | prop: "suffixCode" |
| | | }, |
| | | { |
| | | label: "描述", |
| | | prop: "description", |
| | | type: "textarea" |
| | | } |
| | | ] |
| | | }, |
| | | // 确认属性池勾选 |
| | | confirmSelectAttr(){ |
| | | this.btmType.attributes = []; |
| | | this.attrRef.queryNotIn = ""; |
| | | this.attrRef.selectData.forEach(item => { |
| | | this.btmType.attributes.push({ |
| | | id: item.id, |
| | | name: item.name, |
| | | typeValue: item.typeValue, |
| | | typeKey: item.typeValue, |
| | | attrDataType : item.typeValue, |
| | | defaultValue: item.defaultValue, |
| | | description: item.description, |
| | | attributeLength: item.maxLength |
| | | }); |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }); |
| | | this.closeAttrDialog(); |
| | | }, |
| | | // 取消属性池勾选 |
| | | cancleSelectAttr(){ |
| | | this.attrRef.selectData = []; |
| | | this.closeAttrDialog(); |
| | | }, |
| | | // 添加业务类型 |
| | | submitBtmType(){ |
| | | console.log(this.btmType); |
| | | add(this.btmType,true).then(res => { |
| | | // 添加完成,回调父组件的刷新 |
| | | this.$message.success('保存成功'); |
| | | this.cancleSubmitBtmType(); |
| | | this.$emit('refreshTable'); |
| | | }) |
| | | }, |
| | | // 取消添加业务类型 |
| | | cancleSubmitBtmType(){ |
| | | this.btmType = {}; |
| | | this.btmType.attributes = []; |
| | | this.showSubmitDialog = false; |
| | | }, |
| | | // 刷新属性列表 |
| | | refreshAttrTable(){ |
| | | this.$nextTick( () => { |
| | | this.$refs.attrTable.refreshTable(); |
| | | }) |
| | | }, |
| | | // |
| | | viewChange(){ |
| | | |
| | | }, |
| | | // 列表编辑 |
| | | cellEditClick(cell){ |
| | | cell.$cellEdit = true; |
| | | }, |
| | | // 列表编辑保存 |
| | | cellEditSave(row){ |
| | | this.btmType.attributes[row.$index].name = row.name |
| | | this.btmType.attributes[row.$index].defaultValue = row.defaultValue; |
| | | this.btmType.attributes[row.$index].description = row.description; |
| | | row.$cellEdit = false; |
| | | }, |
| | | // 打开版本规则参照 |
| | | async openRevision(){ |
| | | await getPage().then(res => { |
| | | this.revisionRef.data = res.data.data.records; |
| | | }); |
| | | this.revisionRef.visible = true; |
| | | }, |
| | | // 关闭版本规则参照弹窗 |
| | | closeRevisionDialog(){ |
| | | this.revisionRef.visible = false; |
| | | }, |
| | | // 版本规则参照列表检索 |
| | | revisionRefSearch(){ |
| | | |
| | | }, |
| | | // 版本规则选中事件 |
| | | revisionChange(){}, |
| | | // 确认选中版本规则 |
| | | confirmRevision(){ |
| | | this.btmType.revisionFlag = true; |
| | | this.btmType.revisionRuleId = this.revisionRef.selectData.id; |
| | | this.btmType.revisionRuleName = this.revisionRef.selectData.name; |
| | | this.btmType.inputRevisionFlag = false; |
| | | this.cancelRevision(); |
| | | }, |
| | | // 取消选中版本规则 |
| | | cancelRevision(){ |
| | | this.revisionRef.selectRow = ''; |
| | | this.revisionRef.selectData = {}; |
| | | this.closeRevisionDialog(); |
| | | }, |
| | | // 版本规则单选 |
| | | revisionClick(row){ |
| | | this.revisionRef.selectRow = row.$index; |
| | | this.revisionRef.selectData = { |
| | | id: row.id, |
| | | name: row.name, |
| | | }; |
| | | }, |
| | | clearRevision(){ |
| | | this.$delete(this.btmType,'revisionFlag'); |
| | | this.$delete(this.btmType,'revisionRuleId'); |
| | | this.$delete(this.btmType,'revisionRuleName'); |
| | | this.$delete(this.btmType,'inputRevisionFlag'); |
| | | } |
| | | }, |
| | | rules: { |
| | | id: [ |
| | | {required: true, message: '请输入业务类型编号', trigger: 'blur'}, |
| | | {pattern: /^[A-Za-z]+$/, message: '业务类型编号只能为英文', trigger: 'blur'}, |
| | | {min: 2, max: 20, message: '长度在2到20个字符', trigger: 'blur'} |
| | | ], |
| | | name: [ |
| | | {required: true, message: '请输入业务类型中文名称', trigger: 'blur'} |
| | | ], |
| | | domain: [ |
| | | {required: true, message: '请选择所属领域', trigger: 'blur'} |
| | | ] |
| | | }, |
| | | domainData: [], |
| | | ruleData: [], |
| | | lifeData: [], |
| | | domainFirstSelection: true, |
| | | ruleFirstSelection: true, |
| | | lifeCycleSelection: true, |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | methods: { |
| | | getDefaultData(requestType, dataName, selectionName) { |
| | | if (this[selectionName]) { |
| | | defaultRequestHandler(requestType).then(res => { |
| | | this[dataName] = res.data.data; |
| | | res.data.data.forEach(item => { |
| | | let data = { |
| | | id: item.id, |
| | | name: item.name, |
| | | attrDataType: item.attrDataType, |
| | | attrDataTypeText: item.attrDataTypeText, |
| | | defaultValue: item.defaultValue, |
| | | description: item.description, |
| | | attributeLength: item.attributeLength, |
| | | referBtmTypeId: item.referTypeCode, |
| | | referBtmTypeName: item.referToName, |
| | | enumId: item.dictCode, |
| | | isDefaultAttr: item.isDefaultAttr |
| | | } |
| | | if (!this.btmType.attributes) { |
| | | this.btmType.attributes = []; |
| | | } |
| | | this.btmType.attributes.push(data); |
| | | }) |
| | | this.attrRefOnLoad() |
| | | this[selectionName] = false; |
| | | }); |
| | | } |
| | | }, |
| | | //所属领域change |
| | | domainChange() { |
| | | this.getDefaultData('defaultAttr', 'domainData', 'domainFirstSelection'); |
| | | }, |
| | | //版本规则change |
| | | ruleHandler() { |
| | | this.getDefaultData('reVersionRule', 'ruleData', 'ruleFirstSelection'); |
| | | }, |
| | | //生命周期change |
| | | lifeCycleHandler() { |
| | | this.getDefaultData('lifeCycle', 'lifeData', 'lifeCycleSelection'); |
| | | }, |
| | | //默认值请求 |
| | | defaultValueRequest() { |
| | | |
| | | }, |
| | | // 关闭组件弹窗 |
| | | closeSubmitDialog() { |
| | | this.showSubmitDialog = false; |
| | | //所属领域状态重新赋值 |
| | | this.domainFirstSelection = true; |
| | | //版本规则状态重新赋值 |
| | | this.ruleFirstSelection = true; |
| | | //生命周期状态重新赋值 |
| | | this.lifeCycleSelection = true; |
| | | //重置校验规则 |
| | | this.$refs.form.resetFields(); |
| | | }, |
| | | // 关闭属性池查询弹窗 |
| | | closeAttrDialog() { |
| | | this.attrRef.visible = false; |
| | | }, |
| | | // 属性选择添加 |
| | | async rowAdd() { |
| | | await this.attrRefOnLoad(); |
| | | this.attrRef.visible = true; |
| | | }, |
| | | // 属性池加载 |
| | | attrRefOnLoad() { |
| | | if (this.attrRef.queryNotIn != '' && this.btmType.attributes !== undefined && this.btmType.attributes.length > 0) { |
| | | this.attrRef.queryNotIn = ''; |
| | | this.btmType.attributes.forEach(item => { |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }) |
| | | } |
| | | this.attrRef.loading = true; |
| | | queryPage(this.attrRef.key, this.attrRef.queryNotIn, this.attrRef.page.currentPage, this.attrRef.page.pageSize).then(res => { |
| | | const data = res.data.data; |
| | | this.attrRef.page.total = data.total; |
| | | this.attrRef.data = data.records; |
| | | this.attrRef.loading = false; |
| | | }); |
| | | }, |
| | | // 属性池检索 |
| | | attrRefSearch(form, done) { |
| | | this.attrRef.key = form.id; |
| | | this.attrRefOnLoad(); |
| | | done(); |
| | | this.attrRef.key = null; |
| | | }, |
| | | // 从属性池中移除 |
| | | removeFormAttrTable(row, index) { |
| | | this.btmType.attributes.splice(index, 1); |
| | | this.attrRef.queryNotIn = ""; |
| | | this.btmType.attributes.forEach(item => { |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }) |
| | | }, |
| | | // 属性池勾选事件 |
| | | selectionChange(list) { |
| | | this.attrRef.selectData = list; |
| | | }, |
| | | // 确认属性池勾选 |
| | | confirmSelectAttr() { |
| | | if (!this.btmType.attributes) { |
| | | this.btmType.attributes = []; |
| | | } |
| | | // console.log(this.attrRef.selectData); |
| | | this.attrRef.selectData.forEach(item => { |
| | | this.btmType.attributes.push({ |
| | | id: item.id, |
| | | name: item.name, |
| | | attrDataType: item.typeKey, |
| | | attrDataTypeText: item.typeValue, |
| | | defaultValue: item.defaultValue, |
| | | description: item.description, |
| | | attributeLength: item.maxLength, |
| | | referBtmTypeId: item.referTypeCode, |
| | | referBtmTypeName: item.referToName, |
| | | enumId: item.dictCode, |
| | | }); |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }); |
| | | this.attrRef.data = []; |
| | | this.$refs.attrRef.selectClear(); |
| | | this.attrRef.selectData = []; |
| | | this.closeAttrDialog(); |
| | | }, |
| | | // 取消属性池勾选 |
| | | cancleSelectAttr() { |
| | | this.attrRef.selectData = []; |
| | | this.closeAttrDialog(); |
| | | }, |
| | | // 添加业务类型 |
| | | submitBtmType() { |
| | | // console.log(this.btmType); |
| | | if (!this.btmType.attributes) { |
| | | this.$message.warning("还没有为业务类型选择属性"); |
| | | return; |
| | | } else { |
| | | let nullFlag = false; |
| | | this.btmType.attributes.forEach(item => { |
| | | if (!item.name) { |
| | | this.$message.warning("第" + (item.$index + 1) + "行的中文名称不能为空"); |
| | | nullFlag = true; |
| | | return; |
| | | } |
| | | }) |
| | | if (nullFlag) { |
| | | return; |
| | | } |
| | | } |
| | | this.btmType.attributes = this.btmType.attributes.filter(item => !item.isDefaultAttr); |
| | | add(this.btmType, true).then(res => { |
| | | // console.log(res) |
| | | // 添加完成,回调父组件的刷新 |
| | | this.$message.success(res.data.msg); |
| | | this.cancleSubmitBtmType(); |
| | | this.$emit('refreshTable'); |
| | | }) |
| | | }, |
| | | // 取消添加业务类型 |
| | | cancleSubmitBtmType() { |
| | | this.btmType = {}; |
| | | this.btmType.attributes = []; |
| | | this.showSubmitDialog = false; |
| | | }, |
| | | // 刷新属性列表 |
| | | refreshAttrTable() { |
| | | this.$nextTick(() => { |
| | | this.$refs.attrTable.refreshTable(); |
| | | }) |
| | | }, |
| | | // |
| | | viewChange() { |
| | | |
| | | }, |
| | | // 列表编辑 |
| | | cellEditClick(cell) { |
| | | // console.log(cell); |
| | | cell.$cellEdit = true; |
| | | }, |
| | | // 列表编辑保存 |
| | | cellEditSave(row, index) { |
| | | this.btmType.attributes[index].name = row.name |
| | | this.btmType.attributes[index].defaultValue = row.defaultValue; |
| | | this.btmType.attributes[index].description = row.description; |
| | | row.$cellEdit = false; |
| | | // console.log(this.btmType.attributes); |
| | | this.$refs.attrTable.refreshTable(); |
| | | }, |
| | | // 打开版本规则参照 |
| | | openRevision() { |
| | | this.revisionRef.visible = true; |
| | | this.revisionRuleOnLoad(); |
| | | }, |
| | | // 版本参照列表的默认查询方法 |
| | | revisionRuleOnLoad() { |
| | | this.revisionRef.loading = true; |
| | | getPage().then(res => { |
| | | this.revisionRef.data = res.data.data.records; |
| | | this.revisionRef.loading = false; |
| | | }); |
| | | |
| | | // this.$nextTick(() => { |
| | | // this.$refs.revisionRef.refreshTable(); |
| | | // }); |
| | | }, |
| | | // 打开版本规则参照 |
| | | openLifeCycle() { |
| | | this.lifeCycleRef.visible = true; |
| | | this.lifeCycleOnLoad(); |
| | | }, |
| | | // 生命周期列表的默认查询方法 |
| | | lifeCycleOnLoad() { |
| | | this.lifeCycleRef.loading = true; |
| | | getList().then(res => { |
| | | this.lifeCycleRef.data = res.data.data.records; |
| | | this.lifeCycleRef.loading = false; |
| | | }); |
| | | this.$nextTick(() => { |
| | | this.$refs.lifeCycleRef.refreshTable(); |
| | | }); |
| | | }, |
| | | // 关闭版本规则参照弹窗 |
| | | closeRevisionDialog() { |
| | | this.revisionRef.visible = false; |
| | | }, |
| | | // 关闭生命周期参照弹窗 |
| | | closeLifeCycleDialog() { |
| | | this.lifeCycleRef.visible = false; |
| | | }, |
| | | // 确认选中版本规则 |
| | | confirmRevision() { |
| | | this.btmType.revisionFlag = true; |
| | | this.btmType.revisionRuleId = this.revisionRef.selectData.id; |
| | | this.btmType.revisionRuleName = this.revisionRef.selectData.name; |
| | | this.btmType.inputRevisionFlag = false; |
| | | this.ruleHandler() |
| | | this.cancelRevision(); |
| | | |
| | | }, |
| | | // 确认选中生命周期 |
| | | confirmLifeCycle() { |
| | | this.btmType.lifeCycleFlag = true; |
| | | this.btmType.lifeCycleId = this.lifeCycleRef.selectData.id; |
| | | this.btmType.lifeCycleName = this.lifeCycleRef.selectData.name; |
| | | this.cancelLifeCycle(); |
| | | this.lifeCycleHandler() |
| | | }, |
| | | // 取消选中版本规则 |
| | | cancelRevision() { |
| | | this.revisionRef.selectRow = ''; |
| | | this.revisionRef.selectData = {}; |
| | | this.closeRevisionDialog(); |
| | | }, |
| | | // 取消选中生命周期 |
| | | cancelLifeCycle() { |
| | | this.lifeCycleRef.selectRow = ''; |
| | | this.lifeCycleRef.selectData = {}; |
| | | this.closeLifeCycleDialog(); |
| | | }, |
| | | // 版本规则单选 |
| | | revisionClick(row) { |
| | | this.revisionRef.selectRow = row.$index; |
| | | this.revisionRef.selectData = { |
| | | id: row.id, |
| | | name: row.name, |
| | | }; |
| | | }, |
| | | // 生命周期单选 |
| | | lifeCycleClick(row) { |
| | | this.lifeCycleRef.selectRow = row.$index; |
| | | this.lifeCycleRef.selectData = { |
| | | id: row.id, |
| | | name: row.name, |
| | | }; |
| | | }, |
| | | // 取消版本规则 |
| | | clearRevision() { |
| | | this.$delete(this.btmType, 'revisionFlag'); |
| | | this.$delete(this.btmType, 'revisionRuleId'); |
| | | this.$delete(this.btmType, 'revisionRuleName'); |
| | | this.$delete(this.btmType, 'inputRevisionFlag'); |
| | | }, |
| | | // 取消生命周期 |
| | | clearLifeCycle() { |
| | | this.$delete(this.btmType, 'lifeCycleFlag'); |
| | | this.$delete(this.btmType, 'lifeCycleId'); |
| | | this.$delete(this.btmType, 'lifeCycleName'); |
| | | }, |
| | | // 表单重置 |
| | | resetForm() { |
| | | this.btmType = {}; |
| | | this.$refs.form.resetFields(); |
| | | }, |
| | | /** |
| | | * 搜索版本规则 |
| | | * @param params 搜索框输入值 {id: '',name: ''} 直接获取就行 |
| | | * @param done 执行完成后的回调 |
| | | */ |
| | | searchRevisionRule(params, done) { |
| | | let condition = {}; |
| | | if (params.id) { |
| | | condition['id_like'] = params.id; |
| | | } |
| | | if (params.name) { |
| | | condition['name_like'] = params.name; |
| | | } |
| | | this.revisionRef.loading = true; |
| | | getPage(this.revisionRef.page.currentPage, this.revisionRef.page.pageSize, condition).then(res => { |
| | | this.revisionRef.data = res.data.data.records; |
| | | }); |
| | | setTimeout(() => { |
| | | done(); |
| | | this.revisionRef.loading = false; |
| | | }, 600); |
| | | this.$nextTick(() => { |
| | | this.$refs.revisionRef.refreshTable(); |
| | | }); |
| | | }, |
| | | /** |
| | | * 搜索生命周期 |
| | | * @param params 搜索框输入值 |
| | | * @param done 执行完成后的回调 |
| | | */ |
| | | searchLifeCycle(params, done) { |
| | | let condition = {}; |
| | | if (params.id) { |
| | | condition['id_like'] = params.id; |
| | | } |
| | | if (params.name) { |
| | | condition['name_like'] = params.name; |
| | | } |
| | | this.lifeCycleRef.loading = true; |
| | | getList(this.lifeCycleRef.page.currentPage, this.lifeCycleRef.page.pageSize, condition).then(res => { |
| | | this.lifeCycleRef.data = res.data.data.records; |
| | | }); |
| | | setTimeout(() => { |
| | | done(); |
| | | this.lifeCycleRef.loading = false; |
| | | }, 600); |
| | | this.$nextTick(() => { |
| | | this.$refs.lifeCycleRef.refreshTable(); |
| | | }); |
| | | }, |
| | | // 取消版本规则搜索 |
| | | clearSearchRevisionRule(item) { |
| | | this.revisionRuleOnLoad(); |
| | | }, |
| | | // 取消生命周期搜索 |
| | | clearSearchLifeCycle(item) { |
| | | this.lifeCycleOnLoad(); |
| | | console.log(item); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | /* 属性池参照列表 */ |
| | | .attrRef > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu{ |
| | | display: none !important; |
| | | .attrRef > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu { |
| | | display: none !important; |
| | | } |
| | | |
| | | .revisionRef > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu{ |
| | | display: none !important; |
| | | .revisionRef > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu { |
| | | display: none !important; |
| | | } |
| | | |
| | | .lifeCycleRef > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu { |
| | | display: none !important; |
| | | } |
| | | |
| | | .btmTypeForm > .el-form-item > .el-form-item__content > .el-input > .el-input__inner { |
| | | width: 200px; |
| | | width: 260px; |
| | | } |
| | | |
| | | .domainSelect > .el-form-item__content > .el-select > .el-input > .el-input__inner { |
| | | width: 260px; |
| | | } |
| | | |
| | | .viewFlag { |
| | | width: 305px; |
| | | width: 360px; |
| | | } |
| | | |
| | | .viewInput > .el-form-item__content > .el-input > .el-input__inner { |
| | | width: 630px; |
| | | } |
| | | |
| | | .descClass > .el-input__inner { |
| | | width: 57vw |
| | | } |
| | | |
| | | #descId { |
| | | width: 57vw; |
| | | width: 1000px; |
| | | } |
| | | </style> |