| | |
| | | <template> |
| | | <div> |
| | | <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag" class="app"> |
| | | |
| | | <div style="display: flex;flex-wrap: wrap; display: inline-block" v-if="this.crudArrayFlag" class="app" > |
| | | <el-button-group> |
| | | <!--新增--> |
| | | <el-button v-if="attrEditVisible == false && attrFlagChiledren==false && editOpenFlag && (!checkStatus || crudLCStatus=='Editing' )" size="small" type="primary" icon="el-icon-plus" plain @click="busineHandle">添加 {{ msg }}</el-button> |
| | |
| | | </el-button-group> |
| | | <el-button-group> |
| | | <!-- 保存--> |
| | | <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" size="small" type="success" plain @click="addsHandler" icon="el-icon-check">保存</el-button> |
| | | <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" size="small" type="success" plain @click.prevent="addsHandler" icon="el-icon-check">保存</el-button> |
| | | <!-- 预览排序--> |
| | | <el-button size="small" @click="orderHandle" icon="el-icon-arrow-down">预览排序</el-button> |
| | | <!-- 删除--> |
| | |
| | | <el-dialog :visible.sync="enumVisible" append-to-body title="枚举注入" :before-close="this.enumBeforeClose"> |
| | | <!-- 渲染表格及按钮 --> |
| | | <!-- 渲染表格及按钮 --> |
| | | <el-alert |
| | | title="请新增后点击单元格输入枚举数据" |
| | | type="success" |
| | | style="margin-bottom: 10px;display: inline-block" |
| | | :closable="false"> |
| | | </el-alert> |
| | | <div> |
| | | <el-button icon="el-icon-plus" type="primary" @click="addRow">新增</el-button> |
| | | <el-table :data="tableData" style="width: 100%" @cell-click="handleCellClick" |
| | |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 属性分组--> |
| | | <el-dialog :visible.sync="attrVisible" append-to-body style="width: 800px; left:30vw;top: 10vh ;" |
| | | <el-dialog :visible.sync="attrVisible" append-to-body :before-close="attrClose" style="width: 800px; left:30vw;top: 10vh ;" |
| | | title="输入分组的名称"> |
| | | <el-form ref="form" label-width="70px"> |
| | | <el-form-item label="属性分组"> |
| | | <el-input v-model="attrModel"></el-input> |
| | | <el-input v-model="attrModel" autofocus></el-input> |
| | | </el-form-item> |
| | | <div style="display: flex;justify-content: flex-end"> |
| | | <el-button size="small" type="primary" @click="attrHandle">提交</el-button> |
| | |
| | | </el-dialog> |
| | | <!-- 全屏编辑--> |
| | | <el-dialog :visible.sync="attrEditVisible" append-to-body fullscreen="true" :before-close="escEdit" > |
| | | <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :editStyleFlag="editStyleFlag" :editOpenFlag="editOpenFlag" :crudArrayFlag="this.crudArrayFlag"></attrCrud> |
| | | <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" @editCloseChildren="editClose" :editStyleFlag="editStyleFlag" :editOpenFlag="editOpenFlag" :crudArrayFlag="this.crudArrayFlag"></attrCrud> |
| | | </el-dialog> |
| | | <!-- 组合规则--> |
| | | <formula-editor :systemVariableTableData="systemVariableTableData" |
| | |
| | | <script> |
| | | import {AttrByBtm, gridCodeClassifyTemplateAttr, batchAddSave, copyto,listByFlag} from '@/api/template/templateAttr' |
| | | import {getList} from "@/api/refer/table"; |
| | | import func from "@/util/func"; |
| | | |
| | | export default { |
| | | name: "attrCrud .vue", |
| | |
| | | } |
| | | } |
| | | }, |
| | | crudArrayFlag:{ |
| | | handler(newval,olaval){ |
| | | console.log('crudArrayFlag',newval) |
| | | } |
| | | }, |
| | | crudArray:{ |
| | | handler(newval,oldval){ |
| | | console.log('crudArray',newval) |
| | | if(newval != undefined){ |
| | | if(newval.length>=1){ |
| | | this.crudArrayFlag=true |
| | |
| | | }else { |
| | | this.$set(this.attrSelectList[0], 'attributeGroup', this.attrModel) |
| | | } |
| | | this.attrModel = ""; |
| | | this.attrVisible = false; |
| | | this.attrClose() |
| | | }, |
| | | //属性分组清空 |
| | | attrRemove() { |
| | | this.attrModel = "" |
| | | }, |
| | | attrClose(){ |
| | | this.attrModel = ""; |
| | | this.attrVisible=false |
| | | }, |
| | | //表格数据 |
| | | CrudRend() { |
| | |
| | | this.attrRow = row; |
| | | }, |
| | | //保存 |
| | | addsHandler() { |
| | | batchAddSave(JSON.parse(JSON.stringify(this.ProData))).then(res => { |
| | | this.$message.success('保存成功') |
| | | this.editOpenFlag=false |
| | | }).catch(()=>{ |
| | | this.$message.warning('保存失败,请查看控制台输出!') |
| | | addsHandler(event) { |
| | | this.$refs.referAttrCrud.sort("orderNum"); |
| | | var ischeck = true; |
| | | console.log(this.ProData) |
| | | this.ProData.forEach((item,index)=>{ |
| | | if((item.requireFlag && item.requireFlag.toString()=='true') && (item.readOnlyFlag && item.readOnlyFlag.toString()=='true')){ |
| | | this.$message.warning(item.name+"("+item.id+")必输的属性不能是只读"); |
| | | console.log(item) |
| | | ischeck=false; |
| | | return; |
| | | } |
| | | var num=0; |
| | | if(item.componentRule){ |
| | | //组合规则 |
| | | num++ |
| | | } |
| | | if(item.enumString || item.enumId){ |
| | | //枚举 |
| | | num++ |
| | | } |
| | | if(item.referConfig || item.referBtmId){ |
| | | //参照 |
| | | num++ |
| | | } |
| | | if(item.codeDateFormat){ |
| | | //时间格式 |
| | | num++ |
| | | } |
| | | if(item.classifyInvokeLevel){ |
| | | //分类注入 |
| | | num++ |
| | | } |
| | | if(num>1 && ischeck){ |
| | | this.$message({ |
| | | showClose: true, |
| | | message: item.name+"("+item.id+") 属性只能是组合规则,枚举,参照,时间格式,分类注入中的一种", |
| | | type: 'warning' |
| | | }); |
| | | ischeck=false; |
| | | return; |
| | | } |
| | | }) |
| | | if(!ischeck){ |
| | | return ; |
| | | } |
| | | // 新函数用于执行batchAddSave方法 |
| | | const executeBatchAddSave = () => { |
| | | batchAddSave(JSON.parse(JSON.stringify(this.ProData))).then(res => { |
| | | this.$message.success('保存成功') |
| | | this.editOpenFlag=false; |
| | | // 调用父组件修改按钮状态 |
| | | this.$emit('editCloseChildren') |
| | | }).catch(()=>{ |
| | | this.$message.warning('保存失败,请查看控制台输出!') |
| | | }); |
| | | } |
| | | // 所有if条件和逻辑通过后调用executeBatchAddSave函数 |
| | | executeBatchAddSave(); |
| | | }, |
| | | |
| | | //表格行编辑 |
| | | handleCellClicks(row, column) { |
| | | if(this.editOpenFlag){ |
| | |
| | | // this.$refs.referConfigFormDialog.onloadAttrData(); |
| | | }else if(column.property == 'classifyInvokeText'){ |
| | | this.injectVisible=true; |
| | | this.injectOption.classifyInvokeAttr=this.CurrentCell.classifyInvokeAttr; |
| | | this.injectOption.classifyInvokeAttrName=this.CurrentCell.classifyInvokeAttrName; |
| | | this.injectOption.classifyInvokeEditFlag=this.CurrentCell.classifyInvokeEditFlag; |
| | | if(this.CurrentCell.classifyInvokeLevel == 'min'){ |
| | | this.injectOption.classifyInvokeLevel='min' |
| | | }else { |
| | | this.injectOption.classifyInvokeLevel='max' |
| | | this.injectOption.classifyNumber=this.CurrentCell.classifyInvokeLevel; |
| | | if (this.CurrentCell.classifyInvokeAttr != '') { |
| | | this.injectOption = { |
| | | classifyInvokeAttr: this.CurrentCell.classifyInvokeAttr, |
| | | classifyInvokeAttrName: this.CurrentCell.classifyInvokeAttrName, |
| | | classifyInvokeEditFlag: this.CurrentCell.classifyInvokeEditFlag, |
| | | classifyInvokeLevel: this.CurrentCell.classifyInvokeLevel == 'min' ? 'min' : 'max', |
| | | classifyNumber: this.CurrentCell.classifyInvokeLevel == 'min' ? '' : this.CurrentCell.classifyInvokeLevel |
| | | }; |
| | | } else { |
| | | this.injectHandleReset(); |
| | | } |
| | | }else if(column.property == 'componentRule'){ |
| | | if(this.CurrentCell){ |
| | |
| | | this.rulesVisible=true; |
| | | }else if(column.property == 'attributeGroup'){ |
| | | this.attrVisible = true; |
| | | if(this.CurrentCell.attributeGroup !== ''){ |
| | | this.attrModel=this.CurrentCell.attributeGroup |
| | | } |
| | | } |
| | | } |
| | | }, |
| | |
| | | }, |
| | | //枚举注入保存 |
| | | enumAddHandle() { |
| | | let hasError = false; // 添加一个变量 |
| | | this.tableData.forEach((item, index) => { |
| | | if (item.key === '') { |
| | | this.$message.warning(`第${index + 1}行的选项值不能为空`); |
| | | hasError = true; |
| | | return; |
| | | } else if (item.value === '') { |
| | | this.$message.warning(`第${index + 1}行的选项中文标签不能为空`); |
| | | hasError = true; |
| | | return; |
| | | } |
| | | }); |
| | | // 保存执行逻辑 |
| | | if (!hasError) { |
| | | if (this.CurrentCell) { |
| | | this.$set(this.CurrentCell, 'enumString', JSON.stringify(this.tableData)); |
| | | this.enumVisible = false; |
| | | } else { |
| | | this.$set(this.attrSelectList[0], 'enumString', JSON.stringify(this.tableData)); |
| | | this.tableData=[]; |
| | | this.enumVisible = false; |
| | | } |
| | | } |
| | | if(this.tableData.length>=1){ |
| | | let hasError = false; // 添加一个变量 |
| | | this.tableData.forEach((item, index) => { |
| | | if (item.key === '') { |
| | | this.$message.warning(`第${index + 1}行的选项值不能为空`); |
| | | hasError = true; |
| | | return; |
| | | } else if (item.value === '') { |
| | | this.$message.warning(`第${index + 1}行的选项中文标签不能为空`); |
| | | hasError = true; |
| | | return; |
| | | } |
| | | }); |
| | | // 保存执行逻辑 |
| | | if (!hasError) { |
| | | if (this.CurrentCell) { |
| | | this.$set(this.CurrentCell, 'enumString', JSON.stringify(this.tableData)); |
| | | this.enumVisible = false; |
| | | } else { |
| | | this.$set(this.attrSelectList[0], 'enumString', JSON.stringify(this.tableData)); |
| | | this.tableData=[]; |
| | | this.enumVisible = false; |
| | | } |
| | | } |
| | | }else { |
| | | this.$message.warning('请添加枚举注入数据!') |
| | | } |
| | | }, |
| | | // 将正在编辑的行的状态变为 null,即退出编辑状态 |
| | | saveRow() { |
| | |
| | | }, |
| | | // 分类注入取消 |
| | | injectRemove() { |
| | | this.injectVisible = false |
| | | this.injectVisible = false; |
| | | this.injectHandleReset() |
| | | }, |
| | | //属性模板表格单元格点击事件 |
| | | //表格操作栏删除 |
| | |
| | | editOpen(){ |
| | | this.editOpenFlag=true; |
| | | }, |
| | | //定义一个关闭编辑的方法供子组件使用 |
| | | editClose(){ |
| | | this.editOpenFlag=false; |
| | | }, |
| | | //批量设置switch |
| | | batchSetFlag(value){ |
| | | this.attrSelectList.forEach(item=>{ |