| | |
| | | <template> |
| | | <el-dialog title="模板阶段" width="90%" append-to-body="true" :visible.sync="dialogVisible"> |
| | | <div> |
| | | <avue-crud ref="crud" :table-loading="loading" :data="data" :option="option" :page.sync="page" |
| | | @on-load="getDataList" @size-change="handleSizePage" @current-change="handleCurrentPage" |
| | | @row-click="handleRowClick"> |
| | |
| | | @click="handleMaintenance(row, index)">维护</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="模板阶段" width="50%" append-to-body="true" :visible.sync="dialogNode"> |
| | | <el-dialog title="模板阶段" width="50%" append-to-body="true" :visible.sync="dialogNode"> |
| | | <avue-crud ref="crud" :table-loading="loading" :data="stageData" :option="stageOption" @on-load="getStagelist" |
| | | @row-click="handleRowStageClick"> |
| | | <template slot-scope="{type,size,row,index}" slot="menu"> |
| | |
| | | </template> |
| | | </avue-crud> |
| | | </el-dialog> |
| | | <table-transfer :visible.sync="dialogTransfer" v-model="listVal" :dataList="tableData" :columns="columns" |
| | | keyName="oid" @save="handleSave"></table-transfer> |
| | | </el-dialog> |
| | | <table-transfer v-if="flag" :visible.sync="dialogTransfer" v-model="attributeValue" :dataList="attributeData" |
| | | :columns="columns" keyName="oid" @save="handleSave" @close="handelClose"></table-transfer> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | TableTransfer |
| | | }, |
| | | props: { |
| | | // 是否打开 |
| | | visible: { |
| | | typeof: Boolean, |
| | | default: false |
| | | }, |
| | | code: { |
| | | typeof: String, |
| | | required: true, |
| | |
| | | } |
| | | }, |
| | | watch: { |
| | | visible(n) { |
| | | this.dialogVisible = n; |
| | | }, |
| | | dialogVisible(n) { |
| | | this.$emit('update:visible', n) |
| | | }, |
| | | }, |
| | | computed: { |
| | | tableData() { |
| | | return this.setTable() |
| | | }, |
| | | listVal() { |
| | | let data = this.setTable() |
| | | let newdata = data.map(item => { |
| | | return item.checked ? item.oid : undefined |
| | | }) |
| | | console.log(newdata.filter(item => item)) |
| | | return newdata.filter(item => item) |
| | | } |
| | | |
| | | }, |
| | | data() { |
| | | const options = { |
| | |
| | | editBtn: false, |
| | | } |
| | | return { |
| | | list: [], |
| | | listRight: [], |
| | | dialogVisible: this.visible, |
| | | attributeData: [], |
| | | attributeValue: [], |
| | | flag: false, |
| | | dialogTransfer: false, |
| | | dialogNode: false, |
| | | visibleTable: false, |
| | |
| | | }, |
| | | stageOption: { |
| | | ...options, |
| | | height:620, |
| | | column: [ |
| | | { label: '阶段编号', prop: 'taskId' }, |
| | | { label: '阶段名称', prop: 'taskName' }, |
| | |
| | | }, |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.getAttributeList() |
| | | }, |
| | | methods: { |
| | | setTable() { |
| | | return this.list.map(item => { |
| | | if (this.listRight.length !== 0) { |
| | | this.listRight.forEach(element => { |
| | | setTable(data, list) { |
| | | return data.map(item => { |
| | | if (list.length !== 0) { |
| | | list.forEach(element => { |
| | | if (item.id === element.attrId) item.checked = true |
| | | }); |
| | | } |
| | |
| | | // 获取全部属性 |
| | | async getAttributeList() { |
| | | const response = await attributeList({ 'conditionMap[classifyTemplateOid]': this.code }) |
| | | if (response.status === 200) { |
| | | const data = response.data.data |
| | | this.list = data.records.map(item => { |
| | | const responseRight = await attributeListRight({ templateId: this.code, modelKey: this.modelKey, taskId: this.saveParam.taskId }) |
| | | if (response.status === 200 && responseRight.status === 200) { |
| | | let datas = response.data.data.records |
| | | let dataRight = responseRight.data.data |
| | | datas = datas.map(item => { |
| | | const { oid, id, name, attributeGroup } = item |
| | | return { oid, id, name, attributeGroup, ...{ checked: false } } |
| | | item = { oid, id, name, attributeGroup, ...{ checked: false } } |
| | | if (dataRight.length !== 0) { |
| | | dataRight.forEach(element => { if (item.id === element.attrId) item.checked = true }); |
| | | return item |
| | | } |
| | | }) |
| | | let dataValue = datas.map(item => item.checked ? item.oid : undefined) |
| | | this.attributeValue = dataValue.filter(item => item) |
| | | this.attributeData = datas |
| | | this.flag = true |
| | | } |
| | | }, |
| | | // 获取已保存属性 |
| | |
| | | this.saveParam.modelKey = row.modelKey |
| | | }, |
| | | handleMaintenanceTransfer(row) { |
| | | console.log(row) |
| | | this.dialogTransfer = true |
| | | this.saveParam.taskId = row.taskId |
| | | this.saveParam.taskName = row.taskName |
| | | this.getAttributeListRight() |
| | | }, |
| | | handleSizePage(event) { |
| | | this.page.pageSize = event |
| | | }, |
| | | handleCurrentPage(event) { |
| | | this.page.currentPage = event |
| | | this.getAttributeList() |
| | | this.$nextTick(() => { |
| | | this.dialogTransfer = true |
| | | }) |
| | | }, |
| | | handleRowClick(row) { |
| | | console.log(row) |
| | |
| | | this.dialogNode = true |
| | | }, |
| | | handleRowStageClick(row) { |
| | | this.dialogTransfer = true |
| | | this.saveParam.taskId = row.taskId |
| | | this.saveParam.taskName = row.taskName |
| | | this.getAttributeListRight() |
| | | this.getAttributeList() |
| | | this.$nextTick(() => { |
| | | this.dialogTransfer = true |
| | | }) |
| | | }, |
| | | async handleSave(event) { |
| | | console.log(event) |
| | |
| | | type: 'success', |
| | | message: '新增数据成功!' |
| | | }) |
| | | this.flag = false |
| | | // done() |
| | | // this.getDataList() |
| | | } |
| | | }, |
| | | handelClose() { |
| | | this.flag = false |
| | | } |
| | | } |
| | | } |