| | |
| | | <template> |
| | | <div> |
| | | <div v-if="this.crudArrayFlag" class="app" style="display: flex;flex-wrap: wrap; display: inline-block"> |
| | | <div v-if="this.crudArrayFlag" class="app" |
| | | style="display: flex;flex-wrap: wrap; display: inline-block;height: 80px"> |
| | | <el-button-group> |
| | | <!--新增--> |
| | | <span v-if="permissionList.busineStatus"> |
| | |
| | | </el-dialog> |
| | | <!-- 全屏编辑--> |
| | | <el-dialog :before-close="escEdit" :visible.sync="attrEditVisible" append-to-body fullscreen="true"> |
| | | <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :crudArrayFlag="this.crudArrayFlag" |
| | | :editOpenFlag="editOpenFlag" :editStyleFlag="editStyleFlag" |
| | | <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :btnAuthList="btnAuthList" |
| | | :crudArrayFlag="this.crudArrayFlag" :editOpenFlag="editOpenFlag" :editStyleFlag="editStyleFlag" |
| | | @editCloseChildren="editClose"></attrCrud> |
| | | </el-dialog> |
| | | <!-- 组合规则--> |
| | |
| | | :referConfigOption="referConfigOption" |
| | | @setReferConfigValue="setReferConfigValue" |
| | | ></refer-config-dialog> |
| | | <!--近义词查询规则 --> |
| | | <el-dialog :visible.sync="synonymVisible" append-to-body title="近义词查询规则"> |
| | | <avue-crud v-loading="sysonymLoading" :data="synonymData" :option="synonymOption" @selection-change="sysChange"> |
| | | <template slot="lcStatus" slot-scope="{row}"> |
| | | <el-tag v-if="row.lcStatus === 'Released'" type="success">启用</el-tag> |
| | | <el-tag v-else type="danger">停用</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="info" @click="sysClear">清空</el-button> |
| | | <el-button type="primary" @click="sysnonymSubmit">确定</el-button> |
| | | <el-button @click="sysnonymCancel">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | |
| | | <el-table v-if="this.crudArrayFlag" |
| | | ref="referAttrCrud" |
| | | v-loading="loading" |
| | | :data="ProData" |
| | | :height="this.tableHeight" |
| | | :header-cell-style="{background:'#FAFAFA',color:'#505050'}" |
| | | border |
| | | style="width: 100%" |
| | | @select="selectHandle" |
| | | @cell-click="handleCellClicks" |
| | | @selection-change="selectionChange" |
| | | @row-click="rowClick" |
| | | <el-table v-if="this.crudArrayFlag" |
| | | ref="referAttrCrud" |
| | | v-loading="loading" |
| | | :data="ProData" |
| | | :header-cell-style="{background:'#FAFAFA',color:'#505050'}" |
| | | :height="this.tableHeight" |
| | | border |
| | | style="width: 100%" |
| | | @select="selectHandle" |
| | | @cell-click="handleCellClicks" |
| | | @selection-change="selectionChange" |
| | | @row-click="rowClick" |
| | | > |
| | | <el-table-column |
| | | :fixed="!editStyleFlag ? 'left' : undefined" |
| | | type="selection" width="55"> |
| | | </el-table-column> |
| | | <!--<el-table-column fixed label="序号" type="index" width="55"></el-table-column>--> |
| | | <el-table-column v-for="(item,index) in this.option.column" v-if="item.edit !='referName'" |
| | | :key="item.id" |
| | | :fixed="!editStyleFlag ? item.fixed : undefined" |
| | | :formatter="formAttr" |
| | | :label="item.label" |
| | | :prop="item.prop" |
| | | :show-overflow-tooltip="true" |
| | | :sortable="item.sortable" |
| | | :width="item.width||(item.label.length >=4 ?'160':item.label.length==3 ?'130':'100')" |
| | | align="center" |
| | | > |
| | | <el-table-column |
| | | :fixed="!editStyleFlag ? 'left' : undefined" |
| | | type="selection" width="55"> |
| | | </el-table-column> |
| | | <!--<el-table-column fixed label="序号" type="index" width="55"></el-table-column>--> |
| | | <el-table-column v-for="(item,index) in this.option.column" v-if="item.edit !='referName'" |
| | | :key="item.id" |
| | | :fixed="!editStyleFlag ? item.fixed : undefined" |
| | | :formatter="formAttr" |
| | | :label="item.label" |
| | | :prop="item.prop" |
| | | :show-overflow-tooltip="true" |
| | | :sortable="item.sortable" |
| | | :width="item.width||(item.label.length >=4 ?'160':item.label.length==3 ?'130':'100')" |
| | | align="center" |
| | | > |
| | | <template slot-scope="{ row }"> |
| | | <el-input |
| | | v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text' ||item.edit == 'refer' )" |
| | | v-show="!AddCellFlag" |
| | | :ref="'input' + row.oid" |
| | | v-model="row[item.prop]" |
| | | @blur="saveRows(row)" |
| | | ></el-input> |
| | | <el-input-number v-if="editingRows === row && editShows== item.prop && item.edit == 'number'" |
| | | v-show="!AddCellFlag" |
| | | v-model="row[item.prop]" |
| | | :style="{width:(item.width-10)+'px'}" |
| | | controls-position="right" |
| | | size="small" @blur="saveRows"></el-input-number> |
| | | <el-select v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " slot="prepend" :clearable="true" |
| | | v-model="row[item.prop]" allow-create default-first-option |
| | | filterable v-show="!AddCellFlag" |
| | | @blur="selectChangeHandler(item.editConfig,index)"> |
| | | <el-option |
| | | v-for="optionItem in item.data" |
| | | :key="optionItem.dictValue" |
| | | :label="optionItem.dictValue" |
| | | :value="optionItem.dictValue"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-switch |
| | | v-if="item.edit === 'switch'" v-model="row[item.prop]" :disabled="!editOpenFlag" active-value="true" |
| | | inactive-value="false"> |
| | | </el-switch> |
| | | <span v-else>{{ row[item.prop] }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | fixed="right" |
| | | label="操作" |
| | | width="70"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="small" |
| | | type="text" |
| | | @click.native.prevent="CrudRowDel(scope.$index)"> |
| | | 移除 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <template slot-scope="{ row }"> |
| | | <el-input |
| | | v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text' ||item.edit == 'refer' )" |
| | | v-show="!AddCellFlag" |
| | | :ref="'input' + row.oid" |
| | | v-model="row[item.prop]" |
| | | @blur="saveRows(row)" |
| | | ></el-input> |
| | | <el-input-number v-if="editingRows === row && editShows== item.prop && item.edit == 'number'" |
| | | v-show="!AddCellFlag" |
| | | v-model="row[item.prop]" |
| | | :style="{width:(item.width-10)+'px'}" |
| | | controls-position="right" |
| | | size="small" @blur="saveRows"></el-input-number> |
| | | <el-select v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " v-show="!AddCellFlag" |
| | | slot="prepend" |
| | | v-model="row[item.prop]" :clearable="true" allow-create |
| | | default-first-option filterable |
| | | @blur="selectChangeHandler(item.editConfig,index)"> |
| | | <el-option |
| | | v-for="optionItem in item.data" |
| | | :key="optionItem.dictValue" |
| | | :label="optionItem.dictValue" |
| | | :value="optionItem.dictValue"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-switch |
| | | v-if="item.edit === 'switch'" v-model="row[item.prop]" :disabled="!editOpenFlag" active-value="true" |
| | | inactive-value="false"> |
| | | </el-switch> |
| | | <span v-else>{{ row[item.prop] }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | fixed="right" |
| | | label="操作" |
| | | width="70"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="small" |
| | | type="text" |
| | | @click.native.prevent="CrudRowDel(scope.$index)"> |
| | | 移除 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {AttrByBtm, gridCodeClassifyTemplateAttr, batchAddSave, copyto, listByFlag} from '@/api/template/templateAttr' |
| | | import { |
| | | AttrByBtm, |
| | | gridCodeClassifyTemplateAttr, |
| | | batchAddSave, |
| | | copyto, |
| | | listByFlag, |
| | | codeSynonym |
| | | } from '@/api/template/templateAttr' |
| | | import {getList} from "@/api/refer/table"; |
| | | import func from "@/util/func"; |
| | | import {getCurrentInstance} from "vue"; |
| | |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | btnAuthList: { |
| | | type: Array |
| | | } |
| | | }, |
| | | watch: { |
| | | crudOid: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | sysSelectData: [], |
| | | sysonymLoading: false, |
| | | synonymOption: { |
| | | addBtn: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | menu: false, |
| | | selection: true, |
| | | column: [ |
| | | { |
| | | label: '编码', |
| | | prop: 'id', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | label: '名称', |
| | | prop: 'name', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | label: '源值', |
| | | prop: 'sourceValue', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | label: '同义词', |
| | | prop: 'synonymValue', |
| | | align: 'center' |
| | | }, |
| | | { |
| | | label: '启停状态', |
| | | prop: 'lcStatus', |
| | | align: 'center', |
| | | slot: true |
| | | }, |
| | | ] |
| | | }, |
| | | synonymData: [], |
| | | //近义词查询规则 |
| | | synonymVisible: false, |
| | | //表格高度 |
| | | dynamicHeight: '', |
| | | // 保存单元格状态 |
| | |
| | | }, |
| | | { |
| | | label: "只读", |
| | | prop: "readonlyFlag", |
| | | prop: "readOnlyFlag", |
| | | }, |
| | | { |
| | | label: "列表排序", |
| | |
| | | indexClassName: "序号", |
| | | indexLabelClassName: '序号', |
| | | index: true, |
| | | indexFixed:false, |
| | | selectionFixed:false, |
| | | indexFixed: false, |
| | | selectionFixed: false, |
| | | columnBtn: false, |
| | | refreshBtn:false, |
| | | refreshBtn: false, |
| | | border: true, |
| | | addBtn: false, |
| | | menu: false, |
| | |
| | | edit: "switch" |
| | | }, |
| | | { |
| | | label: '近义词查询规则', |
| | | prop: 'sysonymRuleOidsText', |
| | | cell: false, |
| | | edit: 'refer' |
| | | }, |
| | | { |
| | | label: "相似查重属性", |
| | | prop: "sameRepeatAttrFlag", |
| | | width: 110, |
| | |
| | | }, |
| | | { |
| | | label: "只读", |
| | | prop: "readonlyFlag", |
| | | prop: "readOnlyFlag", |
| | | cell: false, |
| | | edit: "switch" |
| | | }, |
| | |
| | | }, |
| | | { |
| | | label: "多行文本", |
| | | prop: "textareaFlag", |
| | | prop: "textAreaFlag", |
| | | cell: false, |
| | | edit: "switch" |
| | | }, |
| | |
| | | value: 'tableDisplayFlag', |
| | | label: '列表显示' |
| | | }, { |
| | | value: 'readonlyFlag', |
| | | value: 'readOnlyFlag', |
| | | label: '只读' |
| | | }, { |
| | | value: 'sortAttrFlag', |
| | | label: '列表排序' |
| | | }, { |
| | | value: 'textareaFlag', |
| | | value: 'textAreaFlag', |
| | | label: '多行文本' |
| | | }, { |
| | | value: 'imageFlag', |
| | |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | busineStatus: this.vaildData(this.permission.classifyTree.attr_add, false), |
| | | fullscreenStatus: this.vaildData(this.permission.classifyTree.attr_view_edit, false), |
| | | ruleStatus: this.vaildData(this.permission.classifyTree.attr_rule, false), |
| | | attrStatus: this.vaildData(this.permission.classifyTree.attr_group, false), |
| | | saveStatus: this.vaildData(this.permission.classifyTree.attr_save, false), |
| | | resetStatus: this.vaildData(this.permission.classifyTree.attr_reset, false), |
| | | injectStatus: this.vaildData(this.permission.classifyTree.attr_inject, false), |
| | | isShowStatus: this.vaildData(this.permission.classifyTree.attr_formrule, false), |
| | | enumStatus: this.vaildData(this.permission.classifyTree.attr_enum, false), |
| | | cascadStatus: this.vaildData(this.permission.classifyTree.attr_parentcode, false), |
| | | syncStatus: this.vaildData(this.permission.classifyTree.attr_sync, false), |
| | | applicationStatus: this.vaildData(this.permission.classifyTree.attr_application, false), |
| | | orderStatus: this.vaildData(this.permission.classifyTree.attr_sort, false), |
| | | removeStatus: this.vaildData(this.permission.classifyTree.attr_delete, false), |
| | | busineStatus: this.vaildData(this.btnAuthList.attr_add, false), |
| | | fullscreenStatus: this.vaildData(this.btnAuthList.attr_view_edit, false), |
| | | ruleStatus: this.vaildData(this.btnAuthList.attr_rule, false), |
| | | attrStatus: this.vaildData(this.btnAuthList.attr_group, false), |
| | | saveStatus: this.vaildData(this.btnAuthList.attr_save, false), |
| | | resetStatus: this.vaildData(this.btnAuthList.attr_reset, false), |
| | | injectStatus: this.vaildData(this.btnAuthList.attr_inject, false), |
| | | isShowStatus: this.vaildData(this.btnAuthList.attr_formrule, false), |
| | | enumStatus: this.vaildData(this.btnAuthList.attr_enum, false), |
| | | cascadStatus: this.vaildData(this.btnAuthList.attr_parentcode, false), |
| | | syncStatus: this.vaildData(this.btnAuthList.attr_sync, false), |
| | | applicationStatus: this.vaildData(this.btnAuthList.attr_application, false), |
| | | orderStatus: this.vaildData(this.btnAuthList.attr_sort, false), |
| | | removeStatus: this.vaildData(this.btnAuthList.attr_delete, false), |
| | | } |
| | | }, |
| | | attrOids() { |
| | |
| | | if (this.editStyleFlag) { |
| | | return '800px' |
| | | } else { |
| | | return 'calc(100vh - 595px)' |
| | | return 'calc(100vh - 602px)' |
| | | } |
| | | } |
| | | }, |
| | |
| | | }) |
| | | }, |
| | | methods: { |
| | | //近义词查询规则取消 |
| | | sysnonymCancel() { |
| | | this.synonymVisible = false; |
| | | }, |
| | | //近义词查询规则确定 |
| | | sysnonymSubmit() { |
| | | if (this.sysSelectData.length <= 0) { |
| | | this.$message.warning('请至少选择一条数据!') |
| | | } else { |
| | | const newArray = this.sysSelectData.map(obj => obj.oid); |
| | | const newString = newArray.join(','); |
| | | const newArrayName = this.sysSelectData.map(obj => obj.name); |
| | | const newStringName = newArrayName.join(',') |
| | | this.$set(this.CurrentCell, 'sysonymRuleOids', newString) |
| | | //text |
| | | this.$set(this.CurrentCell, 'sysonymRuleOidsText', newStringName) |
| | | this.$set(this.CurrentCell, 'sysonymRuleOidsData', this.sysSelectData) |
| | | this.AddCellFlag = true; |
| | | this.synonymVisible = false; |
| | | } |
| | | }, |
| | | sysClear(){ |
| | | this.CurrentCell.sysonymRuleOidsText = ""; |
| | | this.CurrentCell.sysonymRuleOidsData = ""; |
| | | this.AddCellFlag = true; |
| | | }, |
| | | sysChange(row) { |
| | | this.sysSelectData = row; |
| | | }, |
| | | //新增搜索 |
| | | AddFindHandler() { |
| | | if (this.SelectValue == 'id') { |
| | |
| | | ts: "" |
| | | }) |
| | | // 将英文编号转换为小写 |
| | | let { id, ...res } = this.busineAddList; |
| | | this.busineAddList = { id: id.toLowerCase(), ...res }; |
| | | let {id, ...res} = this.busineAddList; |
| | | this.busineAddList = {id: id.toLowerCase(), ...res}; |
| | | this.ProData.push(JSON.parse(JSON.stringify(this.busineAddList))); |
| | | } |
| | | }) |
| | |
| | | //表格行编辑 |
| | | handleCellClicks(row, column) { |
| | | if (this.editOpenFlag) { |
| | | this.AddCellFlag = false; |
| | | this.editingRows = row; |
| | | this.editShows = column.property; |
| | | this.rowOid = row.oid; |
| | |
| | | if (this.CurrentCell.attributeGroup !== '') { |
| | | this.attrModel = this.CurrentCell.attributeGroup |
| | | } |
| | | }, |
| | | sysonymRuleOidsText: () => { |
| | | this.sysonymLoading = true |
| | | codeSynonym('1', '-1', 'Released').then(res => { |
| | | this.synonymData = res.data.data.records; |
| | | this.sysonymLoading = false; |
| | | }).catch(() => { |
| | | this.$message.error('请检查控制台错误信息!') |
| | | }) |
| | | |
| | | this.synonymVisible = true; |
| | | } |
| | | }; |
| | | |
| | |
| | | const regex = new RegExp(this.rulesData.ruleRowBds); |
| | | if (regex.test(this.RulesForm.TestContent)) { |
| | | this.$message.success('校验成功') |
| | | } else { |
| | | this.$message.error('校验失败') |
| | | } |
| | | }, |
| | | //点击分类注入按钮 |
| | | injectBtn() { |
| | | if (this.attrSelectList.length > 1) { |
| | | this.$message.warning('只能选择一条模板数据') |
| | | } else if (this.attrSelectList.length < 1) { |
| | | return; |
| | | } |
| | | if (this.attrSelectList.length < 1) { |
| | | this.$message.warning('请选择一条模板数据') |
| | | } else if (this.attrSelectList.length === 1) { |
| | | return; |
| | | ; |
| | | } |
| | | if (this.attrSelectList.length === 1) { |
| | | this.injectVisible = true; |
| | | return; |
| | | } |
| | | }, |
| | | //分类注入保存 |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | /deep/ .el-table__fixed-body-wrapper { |
| | | .el-table__body { |
| | | padding-bottom: 15px; |
| | | } |
| | | } |
| | | |
| | | //固定列高度 |
| | | /deep/ .el-table__fixed { |
| | | height: calc(100vh - 612px) !important; |
| | | height: calc(100vh - 618px) !important; |
| | | } |
| | | |
| | | ///deep/ .el-table__fixed[v-if='editStyleFlag'] { |