| | |
| | | <div> |
| | | </div> |
| | | <el-row style="width: 100%;margin-bottom: 10px"> |
| | | <div> |
| | | <div style="margin-bottom: 10px"> |
| | | <el-button v-for="(item, index) in masterVrBtnList" |
| | | v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)" |
| | | :key="index" plain size="small" |
| | | type="primary" |
| | | @click="handelBtnClick(item)">{{ |
| | | @click="handleBtnClick(item)">{{ |
| | | item.name |
| | | }} |
| | | </el-button> |
| | |
| | | <el-option label="审核中" value="Auditing"></el-option> |
| | | </el-select></span> |
| | | </div> |
| | | <el-table ref="dataTable" v-loading="isLoading" :data="tableData" |
| | | :height="tableHeight" border |
| | | @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick" |
| | | @select-all="handleSelectionAll" @selection-change="handleSelectionChange" |
| | | @sort-change="sortChange"> |
| | | <el-table-column v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column> |
| | | <el-table-column v-if="tableData.length != 0" fixed label="序号" type="index" width="55"> |
| | | </el-table-column> |
| | | <el-table-column v-for="item in CodeArray" v-if="!item.hidden" :label="item.label" :prop="item.prop" |
| | | :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" |
| | | align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-link type="primary" @click="CodeLinkHandler(scope.row)"> |
| | | {{ scope.row[item.prop] }} |
| | | </el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-for="item in this.tableHeadFindData" v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus'" |
| | | :key="item.id" |
| | | :formatter="item.formatter" |
| | | :label="item.label" :prop="item.prop" |
| | | :show-overflow-tooltip="true" |
| | | :sortable="item.sortable" |
| | | :width="item.width" |
| | | align="center"> |
| | | </el-table-column> |
| | | <el-table-column v-for="item in lcstatusArray" v-if="!item.hidden" label="生命周期值" prop="lcstatus" |
| | | :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" |
| | | align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.lcstatus_text }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="custom-table"> |
| | | <el-table ref="dataTable" v-loading="isLoading" :data="tableData" |
| | | :header-cell-style="{background:'#FAFAFA',color:'#505050'}" |
| | | :height="tableHeight" border |
| | | class="cus-table" @select="handleSelection" @cell-click="handleCellClick" |
| | | @row-click="handleRowClick" @select-all="handleSelectionAll" |
| | | @selection-change="handleSelectionChange" @sort-change="sortChange"> |
| | | <el-table-column v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column> |
| | | <el-table-column v-if="tableData.length != 0" fixed label="序号" type="index" width="55"> |
| | | </el-table-column> |
| | | <!-- 生命周期--> |
| | | <el-table-column v-for="(item,index) in lcstatusArray" |
| | | v-if=" lcstatusArray.length !== 0 && !item.hidden" |
| | | key="index" :show-overflow-tooltip="true" :sortable="item.sortable" |
| | | :width="item.width" align="center" label="生命周期值" |
| | | prop="lcstatus"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.lcstatus_text }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- 编号--> |
| | | <el-table-column v-for="(item, index) in CodeArray" v-if="CodeArray.length !== 0 && !item.hidden" |
| | | key="index" :label="item.label" :prop="item.prop" |
| | | :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" |
| | | align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-link type="primary" @click="CodeLinkHandler(scope.row)"> |
| | | {{ scope.row[item.prop] }} |
| | | </el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-for="item in this.tableHeadFindData" |
| | | v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus' && Object.keys(item.referConfig).length <= 0" |
| | | :key="item.id" |
| | | :formatter="item.formatter" |
| | | :label="item.label" :prop="item.prop" |
| | | :show-overflow-tooltip="true" |
| | | :sortable="item.sortable" |
| | | :width="item.width" |
| | | align="center"> |
| | | </el-table-column> |
| | | <!-- 参照数据--> |
| | | <el-table-column v-for="(item,index) in referArray" |
| | | v-if="item.referConfig && Object.keys(item.referConfig).length > 0 && !item.hidden" |
| | | :key="index" |
| | | :label="item.title" :show-overflow-tooltip="true" |
| | | :sortable="item.sortable" :width="item.width" align="center" |
| | | prop="jiliangdw"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.jiliangdwname }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-row> |
| | | <!-- 申请--> |
| | | <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid" |
| | | :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid" |
| | | :visible.sync="applyvisible" status="apply" |
| | | type="add" |
| | | @submit="applySumbit"> |
| | | </FormTemplateDialog> |
| | | <!-- 修订--> |
| | | <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" |
| | | :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'修改编码信息'" |
| | | :visible.sync="amendvisible" status="amend" |
| | | type="edit" @submit="amendSumbit"></FormTemplateDialog> |
| | | <!-- 新增--> |
| | | <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid" |
| | | :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid" |
| | |
| | | </FormTemplateDialog> |
| | | <!-- 修改--> |
| | | <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" |
| | | :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'修改编码信息'" |
| | | :disabledProp="disabledProp" :templateOid="templateOid" :title="'修改编码信息'" |
| | | :visible.sync="editvisible" |
| | | rowOid="rowOid" |
| | | type="edit" @submit="EditSumbit"></FormTemplateDialog> |
| | | <!-- 批量编辑--> |
| | | <!-- <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>--> |
| | | <!-- 数据详情--> |
| | | <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" |
| | | :rowOid="this.LinkObject.oid" :templateOid="templateOid" |
| | | :rowOid="this.LinkObject.oid" :templateOid="templateOid" |
| | | :title="'数据详情'" |
| | | :visible.sync="LinkVisible" |
| | | type="detail"></FormTemplateDialog> |
| | |
| | | :tableData="tableData" |
| | | :tableHeadData="tableHeadFindData" :templateOid="templateOid" |
| | | :visible.sync="dialogPush"></MasterTransfer> |
| | | <!-- 导入--> |
| | | <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend" |
| | | :selectRow="selectRow" :tableHeadData="tableHeadFindData" |
| | | :visible.sync="batchImportData.visible"> |
| | | </BatchImport> |
| | | <!-- 相似项--> |
| | | <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid" |
| | | :templateOid="templateOid" :visible.sync="similarVisible"></ResembleQueryDialog> |
| | |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend" |
| | | :visible.sync="batchImportData.visible"> |
| | | </BatchImport> |
| | | </div> |
| | | <div class="bottom"> |
| | | <el-collapse v-model="visibleNames" @change="handleCollapse"> |
| | |
| | | deleteCode, |
| | | upSaveCode, |
| | | applyGroupCode, |
| | | receiveEditApply |
| | | receiveEditApply, |
| | | applySaveCode |
| | | } from "@/api/GetItem"; |
| | | import {processTS, changeStatus} from "@/api/template/setPersonnel" |
| | | import {listCodeAttributeByClassId} from "@/api/integration/integration.js"; |
| | |
| | | import SetPersonnel from "@/components/template/SetPersonnel"; |
| | | import ResembleQueryDialog from "@/components/FormTemplate/ResembleQueryDialog.vue"; |
| | | import BatchImport from '@/components/BatchImport' |
| | | import MasterEditBulk from '@/components/Master/MasterEditBulk' |
| | | import {validatenull} from "@/util/validate"; |
| | | import fileInHtml from "@/components/file/inHtml.vue"; |
| | | import {getUserInfo} from "@/api/system/user"; |
| | | import func from "@/util/func"; |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | SetPersonnel, |
| | | ResembleQueryDialog, |
| | | BatchImport, |
| | | fileInHtml |
| | | fileInHtml, |
| | | MasterEditBulk |
| | | }, |
| | | name: "Crud.vue", |
| | | props: { |
| | |
| | | Treedata: { |
| | | type: Array |
| | | }, |
| | | |
| | | nodeClickList: { |
| | | type: Array, |
| | | default: [] |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | //批量编辑对话框 |
| | | bulkeditvisible: false, |
| | | LinkVisible: false, |
| | | LinkObject: {}, // 编码数据 |
| | | LinkList: [], |
| | | isCodeArrayPushed: false, // 编码数组添加标识变量 |
| | | CodeArray: [], |
| | | lcstatusArray:[], |
| | | islcstatusPushed:false, |
| | | //生命周期数组 |
| | | lcstatusArray: [], |
| | | //参照数据数组 |
| | | referArray: [], |
| | | islcstatusPushed: false, |
| | | isReferPushed: false, |
| | | // 状态搜索 |
| | | statusSelect: "all", |
| | | // 关键字查询 |
| | |
| | | label: "name", |
| | | }, |
| | | tableHeadFindDatas: [], |
| | | applyvisible: false, |
| | | amendvisible: false, |
| | | addvisible: false, |
| | | editvisible: false, |
| | | findvisible: false, |
| | |
| | | hasUpload: true, |
| | | height: 110 |
| | | }, |
| | | result: '' |
| | | result: '', |
| | | elapsedTime: '', |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | oids.push(ele.oid); |
| | | }); |
| | | return oids; |
| | | } |
| | | }, |
| | | }, |
| | | created() { |
| | | // const index = this.$route.query.id.indexOf('@name=') + '@name='.length; |
| | |
| | | } |
| | | }) |
| | | this.tableHeadFindDatas = newval; |
| | | if (!this.isCodeArrayPushed) { |
| | | this.CodeArray.push(newval.find(item => item.prop === 'id')) |
| | | this.isCodeArrayPushed = true |
| | | }; |
| | | if (!this.islcstatusPushed) { |
| | | this.lcstatusArray.push(newval.find(item => item.prop === 'lcstatus')) |
| | | this.islcstatusPushed = true |
| | | }; |
| | | // console.log('new',newval) |
| | | if (!this.isCodeArrayPushed) { |
| | | if (newval.find(item => item.prop === 'id')) { |
| | | this.CodeArray.push(newval.find(item => item.prop === 'id')); |
| | | } else { |
| | | this.CodeArray.push([]); |
| | | } |
| | | // console.log('CodeArray', this.CodeArray); |
| | | this.isCodeArrayPushed = true; |
| | | } |
| | | if (!this.islcstatusPushed) { |
| | | if (newval.find(item => item.prop === 'lcstatus')) { |
| | | this.lcstatusArray.push(newval.find(item => item.prop === 'lcstatus')); |
| | | } else { |
| | | this.lcstatusArray.push([]); |
| | | } |
| | | // console.log('lcstatusArray', this.lcstatusArray); |
| | | this.islcstatusPushed = true; |
| | | } |
| | | if (!this.isReferPushed) { |
| | | if (newval.find(item => Object.keys(item.referConfig).length > 0)) { |
| | | this.referArray.push(newval.find(item => Object.keys(item.referConfig).length > 0)); |
| | | } else { |
| | | this.referArray.push([]) |
| | | } |
| | | } |
| | | this.isReferPushed = true; |
| | | this.WupinFindValue = '' |
| | | }, |
| | | }, |
| | |
| | | }, |
| | | tableHeadBtnData: { |
| | | handler(newval) { |
| | | if (newval.length !== 0) { |
| | | this.masterVrBtnList = newval |
| | | } |
| | | this.masterVrBtnList = newval |
| | | }, |
| | | deep: true |
| | | }, |
| | |
| | | openVis(visible) { |
| | | this[visible] = true |
| | | }, |
| | | handelBtnClick(event) { |
| | | handleBtnClick(event) { |
| | | const {uniqueFlag} = event |
| | | this.$nextTick(() => { |
| | | if (uniqueFlag === 'CODEADD') return this.addvisible = true |
| | | if (uniqueFlag === 'CODEADD') return this.addSaveHandler() |
| | | if (uniqueFlag === 'CODEEDIT') return this.editHandler() |
| | | if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply') |
| | | if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport') |
| | |
| | | if (uniqueFlag === 'receiveEditApply') return this.receiveEditApply() |
| | | // 相似项查询 |
| | | // if(uniqueFlag === 'CODEEDIT') return this.similarHandler() |
| | | // 标准申请 |
| | | if (uniqueFlag === 'CODEAPPLY') return this.codeApplyHandler() |
| | | // 标准修订 |
| | | if (uniqueFlag === 'CODEAMEND') return this.codeAMENDHandler() |
| | | //批量编辑 |
| | | if (uniqueFlag === 'bulkEdit') return this.bulkEditHandler("bulkEdit") |
| | | }); |
| | | }, |
| | | //标准申请 |
| | | codeApplyHandler() { |
| | | this.$nextTick(() => { |
| | | this.applyvisible = true; |
| | | }); |
| | | }, |
| | | applySumbit(val) { |
| | | // console.log('val',val) |
| | | if (func.notEmpty(val.ts)) { |
| | | val.ts = func.formattedDateTime(val.ts); |
| | | //console.log(val.ts); |
| | | } |
| | | applySaveCode(val).then(res => { |
| | | this.$nextTick(() => { |
| | | this.applyvisible = false; |
| | | this.$message.success("保存成功"); |
| | | this.onLoad() |
| | | }) |
| | | }) |
| | | }, |
| | | amendSumbit(val) { |
| | | applySaveCode(val).then(res => { |
| | | this.$nextTick(() => { |
| | | this.amendvisible = false; |
| | | this.$message.success("保存成功"); |
| | | this.onLoad() |
| | | }) |
| | | }) |
| | | |
| | | }, |
| | | //标准修订 |
| | | codeAMENDHandler() { |
| | | let foundItem = false; |
| | | |
| | | this.tableHeadFindData.forEach(item => { |
| | | if (item.field === "oldcode" && Object.keys(item.referConfig).length >= 1) { |
| | | foundItem = true; |
| | | } |
| | | }); |
| | | |
| | | if (foundItem) { |
| | | this.amendvisible = true; |
| | | this.rowOid = this.selectRow[0].oid; |
| | | } else { |
| | | if (this.selectRow.length !== 1) { |
| | | this.$message.warning("请选择一条数据"); |
| | | } else { |
| | | this.amendvisible = true; |
| | | this.rowOid = this.selectRow[0].oid; |
| | | } |
| | | } |
| | | }, |
| | | //批量编辑 |
| | | bulkEditHandler(type) { |
| | | // console.log(this.nodeClickList) |
| | | if (this.nodeClickList.children.length >= 1) { |
| | | this.$message.warning('当前选择的分类不是叶子节点,不允许批量编辑!') |
| | | return; |
| | | } |
| | | if (this.selectRow.length <= 0) { |
| | | this.$message.warning('请选择至少一条数据!') |
| | | return; |
| | | } |
| | | const Editing = this.selectRow.every(item => item.lcstatus === 'Editing'); |
| | | |
| | | if (Editing) { |
| | | this.batchImportData.visible = true |
| | | this.batchImportData.type = type |
| | | this.batchImportData.codeClassifyOid = this.codeClassifyOid |
| | | } else { |
| | | this.$message.warning('选择的数据中有编码状态不是“编辑中”,不可编辑!'); |
| | | } |
| | | }, |
| | | addSaveHandler() { |
| | | this.$nextTick(() => { |
| | | this.addvisible = true; |
| | | }); |
| | | }, |
| | | //申请集团码数据 |
| | |
| | | // const requestData = this.selectRow.forEach(item => { |
| | | // return { oids: item.oid, btmName: item.btmname }; |
| | | // }); |
| | | |
| | | const oids = this.selectRow.map(item => item.oid).join(','); |
| | | applyGroupCode({oids, btmName: this.selectRow[0].btmname}).then(res => { |
| | | if (res.data.code == 200) { |
| | |
| | | }); |
| | | } |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.isLoading = true; |
| | | setTimeout(() => { |
| | | this.page.pageSize = val; |
| | | this.$emit("pageSize", val); |
| | | this.CrudRend(); |
| | | }, 3000); |
| | | async CrudRend() { |
| | | this.elapsedTime = 0; |
| | | const startTime = performance.now(); |
| | | const res = await TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | }); |
| | | const endTime = performance.now(); |
| | | this.elapsedTime = Math.floor(endTime - startTime) * 1; |
| | | this.page.total = res.data.total; |
| | | this.data = res.data.data; |
| | | this.tableData = res.data.data; |
| | | }, |
| | | handleCurrentChange(val) { |
| | | |
| | | async handleSizeChange(val) { |
| | | this.page.pageSize = val; |
| | | this.$emit("pageSize", val); |
| | | this.isLoading = true; |
| | | setTimeout(() => { |
| | | this.page.currentPage = val; |
| | | this.$emit("currentPage", val); |
| | | this.CrudRend(); |
| | | }, 3000); |
| | | await this.CrudRend(); |
| | | this.isLoading = false; |
| | | }, |
| | | |
| | | async handleCurrentChange(val) { |
| | | this.page.currentPage = val; |
| | | this.$emit("currentPage", val); |
| | | this.isLoading = true; |
| | | await this.CrudRend(); |
| | | this.isLoading = false; |
| | | }, |
| | | // 监听单元格点击事件并存储正在编辑的行 |
| | | handleCellClick(row, column) { |
| | |
| | | this.$refs.dataTable.doLayout(); |
| | | } |
| | | }) |
| | | }, |
| | | //表格头渲染 |
| | | CrudHeaderRend() { |
| | | if (this.codeClassifyOid != "") { |
| | | MasterTable({ |
| | | codeClassifyOid: this.codeClassifyOid |
| | | }).then((res) => { |
| | | this.options = res.data.tableDefineVO.seniorQueryColumns; |
| | | this.List = res.data.tableDefineVO.cols[0]; |
| | | this.List.forEach((item) => { |
| | | let columnItem = { |
| | | label: item.title, |
| | | prop: item.queryField, |
| | | type: this.columnType[item.type], |
| | | sortable: item.sort, |
| | | width: item.minWidth, |
| | | }; |
| | | this.option.column.push(columnItem); |
| | | this.option.column = this.tableHeadData; |
| | | this.templateOid = res.data.tableDefineVO.oid; |
| | | this.$emit("templateOid", this.templateOid); |
| | | }); |
| | | }); |
| | | } |
| | | }, |
| | | //表格数据 |
| | | CrudRend() { |
| | | TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | }).then((res) => { |
| | | this.page.total = res.data.total; |
| | | this.data = res.data.data; |
| | | this.tableData = res.data.data; |
| | | }); |
| | | }, |
| | | // 排序 |
| | | sortChange(val) { |
| | |
| | | }, |
| | | //编辑 |
| | | editHandler() { |
| | | if (this.selectRow.length <= 0) { |
| | | if (this.selectRow.length !== 1) { |
| | | this.$message.warning("请选择一条数据"); |
| | | } else if (this.selectRow.length > 1) { |
| | | this.$message.warning("只能选择一条数据"); |
| | | } else if (this.selectRow[0].lcstatus != "Editing") { |
| | | this.$message.warning("编码状态不是“编辑中”,不可编辑"); |
| | | } else if (this.selectRow[0].lcstatus !== "Editing") { |
| | | this.$message.warning("编码状态不是“编辑中”,不可编辑"); |
| | | } else { |
| | | this.editvisible = true; |
| | | this.rowOid = this.selectRow[0]['oid'] |
| | | this.rowOid = this.selectRow[0].oid; |
| | | } |
| | | }, |
| | | //高级查询按钮 |
| | |
| | | }, |
| | | //增加保存 |
| | | AddSumbit(val) { |
| | | // console.log('val',val) |
| | | if (func.notEmpty(val.ts)) { |
| | | val.ts = func.formattedDateTime(val.ts); |
| | | //console.log(val.ts); |
| | | } |
| | | addSaveCode(val).then(res => { |
| | | this.$nextTick(() => { |
| | | this.addvisible = false; |
| | |
| | | limit: this.page.pageSize, |
| | | ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*' |
| | | }).then(res => { |
| | | this.tableData = res.data.data |
| | | this.tableData = res.data.data; |
| | | // this.page.total = res.data.data.total; |
| | | }) |
| | | } |
| | | |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .testbox { |
| | | .el-table--scrollable-x .el-table__body-wrapper { |
| | | overflow: auto !important; |
| | | } |
| | | |
| | | .el-table__fixed-right-patch { |
| | | background-color: #f5f7fa !important; |
| | | } |
| | | //固定列高度 |
| | | /deep/ .el-table__fixed { |
| | | height: calc(100vh - 370px) !important; |
| | | } |
| | | |
| | | // 滚动条样式修改 |
| | | // 滚动条的宽度 |
| | | /deep/ .el-table__body-wrapper::-webkit-scrollbar { |
| | | height: 15px; // 纵向滚动条 必写 |
| | | background: white; |
| | | border: white; |
| | | width: 10px; |
| | | |
| | | } |
| | | |
| | | // 滚动条的滑块 |
| | | /deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb { |
| | | background-color: #ececec; |
| | | border-radius: 20px; |
| | | border: #ececec; |
| | | } |
| | | |
| | | |
| | | .el-button { |
| | | margin: 0 10px 10px 0; |
| | |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | .el-table__body-wrapper { |
| | | height: calc(100% - 44px) !important; |
| | | } |
| | | </style> |