| | |
| | | </div> |
| | | <div style="display: flex;justify-content:left;margin-top: 15px;"> |
| | | <div class="descBox" style="width: 40%"> |
| | | <el-descriptions :column="1" border class="margin-top" size="medium" title="属性信息"> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle" |
| | | <el-descriptions :column="2" border class="margin-top" size="medium" title="属性信息"> |
| | | <el-descriptions-item :span="12" :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | | <template slot="label"> |
| | | 名称 |
| | |
| | | </template> |
| | | <el-tag v-if="nodeRow.name">{{ nodeRow.name }}</el-tag> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle" |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle+';min-width: 100px;'" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | | <template slot="label"> |
| | | 图标 |
| | | </template> |
| | | <span class="avue-icon avue-icon--small" style="display: block"> |
| | | <svg v-if="nodeRow.imageName && nodeRow.imageName.indexOf('#')==0" aria-hidden="true"> |
| | | <use :xlink:href="nodeRow.imageName"></use> |
| | | </svg> |
| | | <i v-else :class="nodeRow.imageName"></i> |
| | | </span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :span="12" :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | | <template slot="label"> |
| | | 实现类 |
| | |
| | | <el-tag style="max-width: 100%;overflow: hidden;display: block">{{ nodeRow.implClass }}</el-tag> |
| | | </el-tooltip> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle" |
| | | <el-descriptions-item :span="12" :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | | <template slot="label"> |
| | | 描述 |
| | |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | </div> |
| | | <div class="descBox" style="width: 25%;"> |
| | | <div class="descBox" style="width: 24%;"> |
| | | <el-descriptions :column="1" border class="margin-top" size="medium" title="版本规则"> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | |
| | | |
| | | </el-descriptions> |
| | | </div> |
| | | <div class="descBox" style="width: calc(35% - 40px);margin-right: 0"> |
| | | <div class="descBox" style="width: calc(36% - 40px);margin-right: 0"> |
| | | <el-descriptions :column="1" border class="margin-top" size="medium" title="生命周期"> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | |
| | | 生命周期 |
| | | </template> |
| | | <el-tag v-if="nodeRow.lifeCycleId">{{ nodeRow.lifeCycleId }}</el-tag> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :contentStyle="descriptionOption.contentStyle" |
| | | :labelStyle="descriptionOption.labelStyle"> |
| | | <template slot="label"> |
| | | 备选生命周期 |
| | | </template> |
| | | <div v-if="nodeRow.lifeCycleIds"> |
| | | <el-tag v-for="item in nodeRow.lifeCycleIds.split(',')" style="margin-right: 5px;">{{ item }}</el-tag> |
| | | </div> |
| | | |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | </div> |
| | |
| | | <el-form-item label="类型名称:" prop="id"> |
| | | <el-input v-model="form.id" :readOnly="title === 'edit'"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="标签:"> |
| | | <el-input v-model="form.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="继承自:"> |
| | | <el-row :span="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="标签:" prop="name"> |
| | | <el-input v-model="form.name"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="图标:" prop="imageName"> |
| | | <input-icon v-model="form.imageName" placeholder="请选择图标"></input-icon> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form-item label="继承自:" prop="fName"> |
| | | <avue-input-tree :disabled="title === 'add'" |
| | | v-model="form.fName" |
| | | placeholder="请选择业务类型" |
| | | :props="{label: 'id', value: 'id',children: 'children'}" |
| | | :dic="inheritTreeData"></avue-input-tree> |
| | | </el-form-item> |
| | | <el-form-item label="实现类:"> |
| | | <el-form-item label="实现类:" prop="implClass"> |
| | | <el-input v-model="form.implClass"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="描述"> |
| | | <el-form-item label="描述" prop="description"> |
| | | <el-input v-model="form.description" :rows="2" type="textarea"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | |
| | | :props="{label: 'id', value: 'id'}" |
| | | :dic="lifeData"></avue-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="备选生命周期列表:" label-width="138px"> |
| | | <el-form-item label="备选生命周期列表:" label-width="138px" prop="subLifeCycleIdList"> |
| | | <avue-select multiple |
| | | :filterable="true" |
| | | v-model="form.subLifeCycleId" |
| | | v-model="form.subLifeCycleIdList" |
| | | placeholder="请选择生命周期" |
| | | :props="{label: 'id', value: 'id'}" |
| | | type="tree" |
| | | :dic="lifeData"></avue-select> |
| | | :dic="subLifeData" |
| | | @change="subLifeChange"></avue-select> |
| | | </el-form-item> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | <div class="bottomForm"> |
| | | <h3 style="margin-bottom: 10px;">属性池列表</h3> |
| | | <avue-crud |
| | | size="mini" |
| | | :data="dialogAttrData" |
| | | :option="dialogAttrOption" |
| | | @row-del="dialogBottomAttrDel"> |
| | | <template slot="menuLeft"> |
| | | <el-button icon="el-icon-plus" size="small" type="primary" @click="addDialogClickHandler">创建</el-button> |
| | | <h3 style="display: inline-block;margin-right: 20px;margin-bottom: 10px;">属性池列表</h3> |
| | | <el-button icon="el-icon-plus" size="mini" type="primary" @click="addDialogClickHandler">创建</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer avue-dialog__footer"> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="addDialogSavaHandler">确 定</el-button> |
| | | <el-button @click="addDialogClose">取 消</el-button> |
| | | </span> |
| | |
| | | > |
| | | </avue-crud> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogAttrClose">取 消</el-button> |
| | | <el-button type="primary" @click="dialogAttrAddClickHandler">确 定</el-button> |
| | | <el-button @click="dialogAttrClose">取 消</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | |
| | | index: false, |
| | | selection: false, |
| | | refreshBtn: false, |
| | | header:false, |
| | | column: [ |
| | | { |
| | | label: '类型名', |
| | |
| | | versionAddFlag: false, |
| | | inheritTreeData: [], |
| | | lifeData: [],//生命周期下拉数据 |
| | | subLifeData:[],//备选生命周期下拉数据 |
| | | allLifeData:[], |
| | | versionData: [],//版本规则数据 |
| | | dialogAttrSelectList: [], |
| | | searchAttrParams: {}, |
| | |
| | | height: 450, |
| | | searchMenuSpan: 8, |
| | | header: false, |
| | | selectable:function(row){ |
| | | return row.selectable; |
| | | }, |
| | | column: [ |
| | | { |
| | | label: '属性名', |
| | | prop: 'id', |
| | | sortable: true, |
| | | search: true, |
| | | width:260 |
| | | }, |
| | | { |
| | | label: '属性类型', |
| | |
| | | label: '初始值', |
| | | prop: 'defaultValue', |
| | | sortable: true, |
| | | width: 200 |
| | | }, |
| | | { |
| | | label: '说明', |
| | |
| | | {required: true, message: '请输类型名称', trigger: 'blur'}, |
| | | {validator: this.validateEnglishOnly, trigger: 'blur'} |
| | | ], |
| | | imageName:[ |
| | | {required: true, message: '请选择图标', trigger: 'submit'}, |
| | | ], |
| | | revLevel: [ |
| | | {required: true, message: '请选择版本规则', trigger: 'blur'}, |
| | | ], |
| | |
| | | editBtn: false, |
| | | refreshBtn: false, |
| | | selection: false, |
| | | height: 210, |
| | | height: 220, |
| | | addBtn: false, |
| | | gridBtn:false, |
| | | columnBtn:false, |
| | | menuWidth:100, |
| | | // index:false, |
| | | column: [ |
| | |
| | | label: '属性名', |
| | | prop: 'id', |
| | | sortable: true, |
| | | width:260, |
| | | }, |
| | | { |
| | | |
| | | prop: 'btmTypeId', |
| | | label: '业务类型', |
| | | sortable: true |
| | | sortable: true, |
| | | width: 200 |
| | | }, |
| | | { |
| | | label: '属性类型', |
| | |
| | | label: '初始值', |
| | | prop: 'defaultValue', |
| | | sortable: true, |
| | | width:150, |
| | | width:200, |
| | | }, |
| | | { |
| | | label: '说明', |
| | |
| | | { |
| | | prop: 'id', |
| | | label: '属性名', |
| | | sortable: true |
| | | sortable: true, |
| | | width:260 |
| | | }, |
| | | { |
| | | prop: 'btmTypeId', |
| | | label: '业务类型', |
| | | sortable: true |
| | | sortable: true, |
| | | width:200 |
| | | }, |
| | | { |
| | | prop: 'attributeDataType', |
| | | label: '属性类型', |
| | | sortable: true |
| | | sortable: true, |
| | | width:150 |
| | | }, |
| | | { |
| | | prop: 'defaultValue', |
| | | label: '默认值', |
| | | sortable: true |
| | | sortable: true, |
| | | width: 200 |
| | | }, |
| | | { |
| | | prop: 'description', |
| | |
| | | delimiter: '', // 分隔符 |
| | | versionRule: '0', // 版次号规则 |
| | | lifeCycleId: '', // 生命周期 |
| | | subLifeCycleId: [], // 生命周期备选列表, |
| | | subLifeCycleId: '', // 生命周期备选列表, |
| | | subLifeCycleIdList:[], |
| | | apNameArray: "", // 属性池列表’,‘分隔 |
| | | }, |
| | | nodeRow: {}, |
| | |
| | | } |
| | | ], |
| | | descriptionOption: { |
| | | labelStyle: 'text-align:center;width:100px;', |
| | | contentStyle: 'max-width:200px;text-align:center;word-break;break-all;' |
| | | labelStyle: 'text-align:center;width:110px;', |
| | | contentStyle: 'min-width:200px;text-align:center;word-break:break-all;' |
| | | }, |
| | | icons: { |
| | | id: 'el-icon-finished', |
| | |
| | | this.getLifeCycle(); |
| | | }, |
| | | mounted() { |
| | | }, |
| | | watch:{ |
| | | 'form.lifeCycleId':{ |
| | | handler(newval) { |
| | | if(this.form.lifeCycleId){ |
| | | this.subLifeData = this.allLifeData.filter(item=>{ |
| | | return item.id!=this.form.lifeCycleId |
| | | }); |
| | | }else { |
| | | this.subLifeData = this.allLifeData |
| | | } |
| | | }, |
| | | } |
| | | }, |
| | | methods: { |
| | | //树表查询 |
| | |
| | | //获取生命周期数据 |
| | | getLifeCycle(){ |
| | | gridLifeCycle().then(res => { |
| | | this.lifeData = res.data.data; |
| | | this.allLifeData=res.data.data; |
| | | }); |
| | | }, |
| | | // 创建按钮 |
| | |
| | | } |
| | | this.title = 'add'; |
| | | this.form.fName = this.nodeRow.id === 'topNode' ? "" : this.nodeRow.id; |
| | | this.lifeData = this.allLifeData; |
| | | this.subLifeData = this.allLifeData; |
| | | this.form.inputRevisionFlag = JSON.parse(this.form.inputRevisionFlag); // 字符串false转换为布尔值 |
| | | this.visible = true; |
| | | }, |
| | | |
| | | // 对话框 属性池列表增加按钮 |
| | | addDialogClickHandler() { |
| | | this.dialogAttrLoading = true; |
| | | this.attrPollDialogVisible = true; |
| | | this.dialogAttrReload = Math.random(); // 强制刷新表格 解决表格错行 |
| | | this.getAttrDialogDta(); |
| | | }, |
| | | |
| | | // 查询属性池列表数据 |
| | | getAttrDialogDta() { |
| | | gridAttribute(this.attrPage.currentPage, this.attrPage.pageSize, this.searchAttrParams).then(res => { |
| | | const data = res.data.data; |
| | | this.dialogAttrSaveData = data; |
| | | this.attrPage.total = res.data.total; |
| | | this.dialogAttrLoading = false; |
| | | }).catch(err => { |
| | | this.$message.error(err); |
| | | }); |
| | | }, |
| | | |
| | | // 新增属性池列表关闭对话框 |
| | | dialogAttrClose() { |
| | | this.attrPollDialogVisible = false; |
| | | this.searchAttrParams = {}; |
| | | }, |
| | | |
| | | // 添加属性池表格选择框 |
| | | dialogAttrSelectChange(row) { |
| | | this.dialogAttrSelectList = row; |
| | | }, |
| | | |
| | | // 添加属性池 行点击 |
| | | dialogAttrRowClickHandler(row) { |
| | | |
| | | func.rowClickHandler( |
| | | row, |
| | | this.$refs.dialogAttrCrud, |
| | | this.attrLastIndex, |
| | | (newIndex) => { |
| | | this.attrLastIndex = newIndex; |
| | | }, |
| | | () => { |
| | | this.selectList = []; |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | //添加属性池 条数 |
| | | attrSizeChange(val) { |
| | | this.attrPage.pageSize = val; |
| | | this.getAttrDialogDta() |
| | | }, |
| | | |
| | | //添加属性池 页码 |
| | | attrCurrentChange(val) { |
| | | this.attrPage.currentPage = val; |
| | | this.getAttrDialogDta(); |
| | | }, |
| | | |
| | | //添加属性池 搜索 |
| | | attrHandleSearch(params, done) { |
| | | if (func.isEmptyObject(params)) { |
| | | this.searchAttrParams = {}; |
| | | } else { |
| | | this.searchAttrParams = { |
| | | "conditionMap[id]": "*" + params.id + "*" |
| | | }; |
| | | } |
| | | |
| | | this.getAttrDialogDta(); |
| | | done(); |
| | | }, |
| | | |
| | | //添加属性池 清空搜索 |
| | | attrHandleReset() { |
| | | this.searchAttrParams = {}; |
| | | this.getAttrDialogDta(); |
| | | }, |
| | | |
| | | // 添加属性池 保存 |
| | | dialogAttrAddClickHandler() { |
| | | let hasDuplicate = false; |
| | | |
| | | // 先创建一个临时数组来存储不重复的项 |
| | | const newItems = []; |
| | | |
| | | this.dialogAttrSelectList.forEach(item => { |
| | | const exists = this.dialogAttrData.some(existingItem => existingItem.id === item.id); |
| | | |
| | | if (exists) { |
| | | hasDuplicate = true; |
| | | return; |
| | | } |
| | | |
| | | // 如果没有重复项,则将该项添加到临时数组中 |
| | | newItems.push({ |
| | | id: item.id, |
| | | attributeDataType: item.attributeDataType, |
| | | defaultValue: item.defaultValue, |
| | | description: item.description |
| | | }); |
| | | }); |
| | | |
| | | if (hasDuplicate) { |
| | | this.$message.error('请检查是否有添加重复项!'); |
| | | } else { |
| | | // 如果没有重复项,将新项添加到 dialogAttrData |
| | | this.dialogAttrData.push(...newItems); |
| | | this.attrPollDialogVisible = false; |
| | | } |
| | | }, |
| | | |
| | | // 属性池删除 |
| | | dialogBottomAttrDel(form, index) { |
| | | this.dialogAttrData.splice(index, 1); |
| | | }, |
| | | |
| | | // 只能输入英文正则校验 |
| | | validateEnglishOnly(rule, value, callback) { |
| | | if (!value) { |
| | | return callback(new Error('请输入类型名称')); |
| | | } |
| | | if (!/^[A-Za-z]+$/.test(value)) { |
| | | return callback(new Error('只能输入英文字母')); |
| | | } |
| | | callback(); // 验证通过 |
| | | }, |
| | | |
| | | // 清空表单 |
| | | resetForm() { |
| | | const form = { |
| | | id: '', // 类型名称 |
| | | name: '', // 标签 |
| | | fName: '', // 继承自 |
| | | implClass: '', // 实现类 |
| | | description: '', // 描述 |
| | | revLevel: '2', // 版本规则 |
| | | revisionRuleId: '',// 版本号规则 |
| | | inputRevisionFlag: 'false', // 手工输入 |
| | | delimiter: '', // 分隔符 |
| | | versionRule: '0', // 版次号规则 |
| | | lifeCycleId: '', // 生命周期 |
| | | subLifeCycleId: [], // 生命周期备选列表, |
| | | lifeCycleIds:'', |
| | | apNameArray: "", // 属性池列表’,‘分隔 |
| | | }; |
| | | this.dialogAttrData = []; // 将属性池表格置空 |
| | | this.form = {...form}; |
| | | this.$refs.form.clearValidate(); |
| | | }, |
| | | |
| | | // 新增编辑对话框取消 |
| | | addDialogClose() { |
| | | this.resetForm(); |
| | | this.visible = false; |
| | | }, |
| | | |
| | | // 版本规则切换 置空其他条件 |
| | | revLevelChange() { |
| | | this.form.inputRevisionFlag = false; |
| | | this.form.delimiter = ""; |
| | | this.form.versionRule = "0"; |
| | | this.form.revisionRuleId = ""; |
| | | }, |
| | | |
| | | // 新增编辑保存 |
| | |
| | | this.$message.error('请检查版本号规则不能为空'); |
| | | return; |
| | | } |
| | | this.form.lifeCycleIds=this.form.subLifeCycleId.join(','); |
| | | this.form.lifeCycleIds=this.form.subLifeCycleIdList.join(','); |
| | | this.form.subLifeCycleId=this.form.subLifeCycleIdList.join(','); |
| | | this.form.apNameArray = this.dialogAttrData ? this.dialogAttrData.map(item => item.id).join(',') : ""; |
| | | this.$refs.form.validate((valid) => { |
| | | const saveFunction = this.title === 'add' ? addLifeCycle : updateLifeCycle; |
| | |
| | | this.form = {...this.nodeRow}; |
| | | this.form.inputRevisionFlag = JSON.parse(this.form.inputRevisionFlag); // 字符串false转换为布尔值 |
| | | // this.form.fName = this.nodeRow.id === 'topNode' ? "" : this.nodeRow.id; |
| | | this.form.subLifeCycleId = (this.nodeRow.lifeCycleIds && this.nodeRow.lifeCycleIds.trim()) |
| | | ? this.nodeRow.lifeCycleIds.split(',').map(item => ({id: item.trim()})) |
| | | : []; |
| | | this.form.subLifeCycleIdList = this.nodeRow.lifeCycleIds?this.nodeRow.lifeCycleIds.split(','):[]; |
| | | this.dialogAttrData = this.nodeRow.attributes ? JSON.parse(this.nodeRow.attributes) : []; |
| | | function processChildren(item,fName) { |
| | | if (item.children && item.children.length > 0) { |
| | |
| | | this.inheritTreeData=inheritTreeData |
| | | this.title = 'edit'; |
| | | this.visible = true; |
| | | }, |
| | | |
| | | subLifeChange(data){ |
| | | if (data.value.length == 0) { |
| | | this.lifeData = this.allLifeData |
| | | } else { |
| | | this.lifeData = this.allLifeData.filter(item => { |
| | | return !data.value.includes(item.id) |
| | | }); |
| | | } |
| | | }, |
| | | // 对话框 属性池列表增加按钮 |
| | | addDialogClickHandler() { |
| | | this.dialogAttrLoading = true; |
| | | this.attrPollDialogVisible = true; |
| | | this.dialogAttrReload = Math.random(); // 强制刷新表格 解决表格错行 |
| | | this.getAttrDialogDta(); |
| | | }, |
| | | |
| | | // 查询属性池列表数据 |
| | | getAttrDialogDta() { |
| | | gridAttribute(this.attrPage.currentPage, this.attrPage.pageSize, this.searchAttrParams).then(res => { |
| | | const data = res.data.data.map(item=>{ |
| | | item.selectable=!this.dialogAttrData.some(existingItem => existingItem.id === item.id); |
| | | return item; |
| | | }); |
| | | this.dialogAttrSaveData=data; |
| | | this.attrPage.total = res.data.total; |
| | | this.dialogAttrLoading = false; |
| | | }).catch(err => { |
| | | this.$message.error(err); |
| | | }); |
| | | }, |
| | | |
| | | // 新增属性池列表关闭对话框 |
| | | dialogAttrClose() { |
| | | this.attrPollDialogVisible = false; |
| | | this.searchAttrParams = {}; |
| | | }, |
| | | |
| | | // 添加属性池表格选择框 |
| | | dialogAttrSelectChange(row) { |
| | | this.dialogAttrSelectList = row; |
| | | }, |
| | | |
| | | // 添加属性池 行点击 |
| | | dialogAttrRowClickHandler(row) { |
| | | if(!row.selectable){ |
| | | return; |
| | | } |
| | | func.rowClickHandler( |
| | | row, |
| | | this.$refs.dialogAttrCrud, |
| | | this.attrLastIndex, |
| | | (newIndex) => { |
| | | this.attrLastIndex = newIndex; |
| | | }, |
| | | () => { |
| | | this.selectList = []; |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | //添加属性池 条数 |
| | | attrSizeChange(val) { |
| | | this.attrPage.pageSize = val; |
| | | this.getAttrDialogDta() |
| | | }, |
| | | |
| | | //添加属性池 页码 |
| | | attrCurrentChange(val) { |
| | | this.attrPage.currentPage = val; |
| | | this.getAttrDialogDta(); |
| | | }, |
| | | |
| | | //添加属性池 搜索 |
| | | attrHandleSearch(params, done) { |
| | | if (func.isEmptyObject(params)) { |
| | | this.searchAttrParams = {}; |
| | | } else { |
| | | this.searchAttrParams = { |
| | | "conditionMap[id]": "*" + params.id + "*" |
| | | }; |
| | | } |
| | | |
| | | this.getAttrDialogDta(); |
| | | done(); |
| | | }, |
| | | |
| | | //添加属性池 清空搜索 |
| | | attrHandleReset() { |
| | | this.searchAttrParams = {}; |
| | | this.getAttrDialogDta(); |
| | | }, |
| | | |
| | | // 添加属性池 保存 |
| | | dialogAttrAddClickHandler() { |
| | | this.dialogAttrSelectList.forEach(item => { |
| | | this.dialogAttrData.push({ |
| | | id: item.id, |
| | | attributeDataType: item.attributeDataType, |
| | | defaultValue: item.defaultValue, |
| | | description: item.description |
| | | }); |
| | | }); |
| | | this.attrPollDialogVisible = false; |
| | | }, |
| | | |
| | | // 属性池删除 |
| | | dialogBottomAttrDel(form, index) { |
| | | this.dialogAttrData.splice(index, 1); |
| | | }, |
| | | |
| | | // 只能输入英文正则校验 |
| | | validateEnglishOnly(rule, value, callback) { |
| | | if (!value) { |
| | | return callback(new Error('请输入类型名称')); |
| | | } |
| | | if (!/^[A-Za-z]+$/.test(value)) { |
| | | return callback(new Error('只能输入英文字母')); |
| | | } |
| | | callback(); // 验证通过 |
| | | }, |
| | | |
| | | // 清空表单 |
| | | resetForm() { |
| | | const form = { |
| | | id: '', // 类型名称 |
| | | name: '', // 标签 |
| | | fName: '', // 继承自 |
| | | implClass: '', // 实现类 |
| | | description: '', // 描述 |
| | | revLevel: '2', // 版本规则 |
| | | revisionRuleId: '',// 版本号规则 |
| | | inputRevisionFlag: 'false', // 手工输入 |
| | | delimiter: '', // 分隔符 |
| | | versionRule: '0', // 版次号规则 |
| | | lifeCycleId: '', // 生命周期 |
| | | subLifeCycleId: '', // 生命周期备选列表, |
| | | subLifeCycleIdList:[], |
| | | lifeCycleIds:'', |
| | | apNameArray: "", // 属性池列表’,‘分隔 |
| | | }; |
| | | this.dialogAttrData = []; // 将属性池表格置空 |
| | | this.form = {...form}; |
| | | this.$refs.form.clearValidate(); |
| | | }, |
| | | |
| | | // 新增编辑对话框取消 |
| | | addDialogClose() { |
| | | this.resetForm(); |
| | | this.visible = false; |
| | | }, |
| | | |
| | | // 版本规则切换 置空其他条件 |
| | | revLevelChange() { |
| | | this.form.inputRevisionFlag = false; |
| | | this.form.delimiter = ""; |
| | | this.form.versionRule = "0"; |
| | | this.form.revisionRuleId = ""; |
| | | }, |
| | | |
| | | // 删除按钮 |
| | |
| | | .dialogForm > div { |
| | | border: 1px solid #EBEEF5; |
| | | border-radius: 2px; |
| | | padding: 25px 20px 5px 10px; /* 上 右 下 左 */ |
| | | padding: 15px 20px 0 10px; /* 上 右 下 左 */ |
| | | box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1); /* 添加阴影效果 */ |
| | | } |
| | | |