Merge remote-tracking branch 'origin/master'
| | |
| | | data
|
| | | })
|
| | | }
|
| | | // 修改
|
| | | export const edit = (data) => {
|
| | | return request({
|
| | | url: '/api/ubcs-omd/lifeCycle/edit-save',
|
| | | method: 'put',
|
| | | data
|
| | | })
|
| | | }
|
| | | export const detail = (params) => {
|
| | | return request({
|
| | | url: '/api/ubcs-omd/lifeCycle/detail',
|
| | |
| | | params
|
| | | })
|
| | | }
|
| | | // 删除
|
| | | export const del = (data, isBatch) => {
|
| | | let url = '/api/ubcs-omd/lifeCycle/remove'
|
| | | if (isBatch) {
|
| | | url = '/api/ubcs-omd/lifeCycle/batch-remove'
|
| | | }
|
| | | return request({
|
| | | url,
|
| | | method: 'post',
|
| | | data
|
| | | })
|
| | | }
|
| | | export default {
|
| | | getList,
|
| | | add,
|
| | | detail
|
| | | detail,
|
| | | del,
|
| | | edit
|
| | | }
|
| | |
| | | border
|
| | | :data="tab1Table"
|
| | | style="width: 100%"
|
| | | height="400px"
|
| | | height="40vh"
|
| | | highlight-current-row
|
| | | @current-change="resembleRowChange"
|
| | | @selection-change="tab1TableSelectChange"
|
| | | v-if="cloNamesList.length > 1"
|
| | | v-loading="tab1Loading"
|
| | | >
|
| | | <el-table-column
|
| | | v-if="type !== 'batchApplyCode'"
|
| | |
| | | border
|
| | | :data="currentSelectedResemble"
|
| | | style="width: 100%"
|
| | | height="200px"
|
| | | height="20vh"
|
| | | v-loading="tab1BottomTableLoading"
|
| | | >
|
| | | <el-table-column
|
| | | v-for="item in resembleColumList"
|
| | |
| | | <el-tab-pane :label="tab2Name" name="tab2">
|
| | | <el-table
|
| | | border
|
| | | v-loading="tab2Loading"
|
| | | :data="tab2Table"
|
| | | :height="
|
| | | type === 'batchApplyCode' && tab2Table.length > 0
|
| | | ? '400px'
|
| | | : '700px'
|
| | | "
|
| | | height="60vh"
|
| | | >
|
| | | <el-table-column
|
| | | v-for="item in successTableColumns"
|
| | |
| | | </div>
|
| | | <template #footer>
|
| | | <div>
|
| | | <el-button size="small" type="primary" @click="submit"
|
| | | <el-button size="small" type="primary" @click="submit" :loading="submitLoading"
|
| | | >确定导入</el-button
|
| | | >
|
| | | <el-button size="small" @click="dialogVisible = false">取消</el-button>
|
| | |
| | | },
|
| | | batchApplyCodeTableData: {},
|
| | | savedList: [],
|
| | | tab1Loading: false,
|
| | | tab2Loading: false,
|
| | | tab1BottomTableLoading: false,
|
| | | submitLoading: false
|
| | | };
|
| | | },
|
| | |
|
| | |
| | | this.localCodeClassifyOid = data.codeClassifyOid;
|
| | | this.cloNamesList = data.cloNamesList;
|
| | | this.templateOid = data.oid;
|
| | | this.tab1Loading = true
|
| | | getResembleTable({
|
| | | codeClassifyOid:
|
| | | this.type === "batchApplyCode" ? data.codeRuleOid : this.templateOid,
|
| | | redisOid: this.redisOid + "-resemble",
|
| | | }).then((res) => {
|
| | | this.tab1Loading = false
|
| | | this.tab1Table = res.data.data.filter(
|
| | | (item) => !this.savedList.includes(item.oid)
|
| | | );
|
| | |
| | | this.tab1Table;
|
| | | }
|
| | | });
|
| | | this.tab2Loading = true
|
| | | // 获取正确数据
|
| | | getSuccessTable({
|
| | | codeClassifyOid:
|
| | | this.type === "batchApplyCode" ? data.codeRuleOid : this.templateOid,
|
| | | redisOid: this.redisOid + "-ok",
|
| | | }).then((res) => {
|
| | | this.tab2Loading = false
|
| | | this.tab2Table = res.data.data;
|
| | | if (this.tab2Table.length > 0 && this.type === "batchApplyCode") {
|
| | | this.batchApplyCodeTableData[data.codeRuleOid]["codeApply"] = {};
|
| | |
| | | if (!row || !row.oid) {
|
| | | return;
|
| | | }
|
| | | this.tab1BottomTableLoading = true
|
| | | getCurretnSelectedRowResemble({
|
| | | redisOid: this.redisOid + "-resemble-data",
|
| | | dataOid: row.oid,
|
| | | }).then((res) => {
|
| | | this.tab1BottomTableLoading = false
|
| | | this.currentSelectedResemble = res.data.data;
|
| | | });
|
| | | },
|
| | |
| | | },
|
| | | ];
|
| | | }
|
| | | this.submitLoading = true
|
| | | submitHistoryimport(params).then((res) => {
|
| | | console.log(res);
|
| | | this.submitLoading = false
|
| | | console.log(res);
|
| | | if (res.data.code === 200) {
|
| | | this.$message.success(res.data.msg);
|
| | | } else {
|
| | | this.$message.error(res.data.msg);
|
| | | }
|
| | | });
|
| | | },
|
| | |
| | | }
|
| | | }
|
| | | .right {
|
| | | transition: all 0.5s;
|
| | | margin-left: 20px;
|
| | | margin-top: 30px;
|
| | | }
|
| | |
| | | if (uniqueFlag === 'CODEEDIT') return this.editHandler() |
| | | if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply') |
| | | if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport') |
| | | if (uniqueFlag === 'batchApplyCode') return this.openBatchImport('batchApplyCode') |
| | | // 批量申请编码 |
| | | // if(uniqueFlag === 'CODEEDIT') return this.openBatchImport('batchApplyCode') |
| | | if (uniqueFlag === 'CODESTARTPROCESS') return this.setHandler() |
| | |
| | | await TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | page: val.currentPage, |
| | | limit: val.pageSize, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | }).then((res) => { |
| | | this.data = res.data.data; |
| | | this.tableData = res.data.data; |
| | | }); |
| | | }, |
| | | //多选 |
| | |
| | | console.log(val) |
| | | addSaveCode(val).then(res=>{ |
| | | console.log(res) |
| | | this.onLoad() |
| | | this.$nextTick(() => { |
| | | this.onLoad() |
| | | }) |
| | | }) |
| | | }, |
| | | EditSumbit(val) { |
| | | this.editvisible = false; |
| | | console.log(val) |
| | | editSaveCode(val).then(res=>{ |
| | | console.log(res) |
| | | this.onLoad() |
| | | editSaveCode(val).then(res=>{ |
| | | console.log(res) |
| | | this.$nextTick(() => { |
| | | this.onLoad() |
| | | }) |
| | | }) |
| | | }, |
| | | openBatchImport(type) { |
| | |
| | | const { defaultValue, formValue } = this.getDefaultValueAndFormValues( |
| | | this.form |
| | | ); |
| | | const noData = [ |
| | | "jiliangdwname", |
| | | "materialtypeText", |
| | | "morengongysname", |
| | | "$caigouwl", |
| | | "$xiaoshouwl", |
| | | "$shifoupihaoguanli", |
| | | "lcstatus_text", |
| | | "hesuanfenleiname", |
| | | "$kucunwl", |
| | | ]; |
| | | noData.forEach((item) => { |
| | | this.$delete(formValue, item); |
| | | }); |
| | | resForm.data = formValue; |
| | | resForm = Object.assign({}, resForm, defaultValue); |
| | | resForm.secDTOList = []; |
| | |
| | | let resForm = {}; |
| | | const { defaultValue, formValue } = |
| | | this.getDefaultValueAndFormValues(this.form); |
| | | noData.forEach(item => { |
| | | if (formValue[item]) { |
| | | this.$delete(formValue, item) |
| | | } |
| | | }) |
| | | noData.forEach((item) => { |
| | | this.$delete(formValue, item); |
| | | }); |
| | | resForm.data = formValue; |
| | | resForm = Object.assign({}, resForm, defaultValue); |
| | | resForm.secDTOList = this.secVOList.map((item) => { |
| | |
| | | resForm.codeClassifyOid = this.codeClassifyOid; |
| | | resForm.codeRuleOid = this.codeRuleOid; |
| | | resForm.templateOid = this.templateOid; |
| | | console.log(resForm, 'ddd'); |
| | | this.$emit("submit", resForm); |
| | | }) |
| | | .catch(() => {}); |
| | |
| | | simOid:"", |
| | | btmName:"", |
| | | btmOid:"", |
| | | btmId:"", |
| | | masterInput:'', |
| | | MasterSearchSelects:"", |
| | | masterData:[], |
| | |
| | | }, |
| | | { |
| | | label:"编码规则", |
| | | prop:"coderuleoidName", |
| | | prop:"codeRuleOidName", |
| | | labelWidth:128, |
| | | disabled: true, |
| | | }, |
| | |
| | | }, |
| | | { |
| | | label:"编码规则", |
| | | prop:"coderuleoidName", |
| | | prop:"codeRuleOidName", |
| | | labelWidth:128, |
| | | focus:this.CodeFoucus, |
| | | readonly: true, |
| | |
| | | }else { |
| | | this.MasterdialogVisible=false; |
| | | this.masterSelectList=[] |
| | | this.$set(this.loneTreeNewForm,'coderuleoidName',this.masterName) |
| | | this.$set(this.loneTreeNewForm,'coderuleoid',this.masterOid) |
| | | this.$set(this.loneTreeNewForm,'codeRuleOidName',this.masterName) |
| | | this.$set(this.loneTreeNewForm,'codeRuleOid',this.masterOid) |
| | | this.$emit('MasterHandler',this.loneTreeNewForm) |
| | | } |
| | | }, |
| | |
| | | 'conditionMap[name]':this.SelectFInd |
| | | } |
| | | this.KeydefaultRend(masterParameter) |
| | | this.SelectValue="" |
| | | this.SelectFInd="" |
| | | this.SelectValue=""; |
| | | this.SelectFInd=""; |
| | | } |
| | | }, |
| | | //关键属性接口 |
| | |
| | | this.BtmdialogVisible=false; |
| | | this.btmSelectList=[] |
| | | this.$set(this.loneTreeNewForm,'btmTypeName',this.btmName ||this.btmOid) |
| | | this.$set(this.loneTreeNewForm,'btmTypeid',this.btmOid) |
| | | this.$set(this.loneTreeNewForm,'btmTypeId',this.btmId) |
| | | this.$emit('MasterHandler',this.loneTreeNewForm) |
| | | } |
| | | }, |
| | |
| | | this.btmSelectList=row; |
| | | this.btmName=row[0].name; |
| | | this.btmOid=row[0].oid; |
| | | this.btmId=row[0].id; |
| | | }, |
| | | //业务类型接口 |
| | | btmdefaultRend(masterParameter){ |
| | |
| | | <el-form-item label="名称" prop="name"> |
| | | <el-input v-model.trim="newRowData.name" :maxLength="20" clearable /> |
| | | </el-form-item> |
| | | <el-form-item label="标签" prop="id"> |
| | | <el-form-item label="编号" prop="id"> |
| | | <el-input v-model.trim="newRowData.id" clearable /> |
| | | </el-form-item> |
| | | <el-form-item label="起始状态" prop="startStatus"> |
| | | <el-select |
| | | v-model="newRowData.startStatus" |
| | | placeholder="请选择起始状态" |
| | | :disabled="type === 'edit'" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | |
| | | <group-panel :status="status"> |
| | | <detail-form type="group" /> |
| | | </group-panel> |
| | | <multi-panel :status="status" /> |
| | | <canvas-panel :status="status" /> |
| | | <node-panel :status="status"> |
| | | <div class="event"> |
| | | <hr /> |
| | | <div class="btn_box"> |
| | | <el-button type="primary" size="mini">新增</el-button> |
| | | <el-button type="danger" size="mini">删除</el-button> |
| | | <el-button type="primary" size="mini">保存</el-button> |
| | | </div> |
| | | <div class="flex" v-for="(item, index) in eventList" :key="index" :class="{active: index === currentActive}"> |
| | | <el-select size="mini" style="width: 70%" v-if="item.isEdit"> |
| | | <el-option></el-option> |
| | | </el-select> |
| | | <span v-else style="width: 70%">{{item.evenName}}</span> |
| | | <el-button size="mini" type="text" class="red">删除</el-button> |
| | | <el-button size="mini" type="text" @click="editChange(item)">{{item.isEdit ? '暂存' : '编辑'}}</el-button> |
| | | </div> |
| | | </div> |
| | | </node-panel> |
| | | |
| | | <!-- <multi-panel :status="status" /> --> |
| | | <!-- <canvas-panel :status="status" /> --> |
| | | </template> |
| | | </detail-panel> |
| | | </div> |
| | |
| | | DetailPanel, |
| | | DetailForm, |
| | | }, |
| | | props: ["rowData", "existNodes"], |
| | | props: ["rowData", "existNodes", "type"], |
| | | data() { |
| | | return { |
| | | newRowData: { |
| | | startStatus: undefined, |
| | | name: undefined, |
| | | id: undefined, |
| | | remark: undefined |
| | | remark: undefined, |
| | | }, |
| | | rules: { |
| | | name: [{ required: true, message: "名称不能为空", trigger: "blur" }], |
| | | id: [ |
| | | { required: true, message: "标签不能为空", trigger: "blur" }, |
| | | { pattern: /^[A-z]+$/g, message: "标签只能输入英文", trigger: "blur" } |
| | | { |
| | | pattern: /^[A-z]+$/g, |
| | | message: "标签只能输入英文", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | startStatus: [ |
| | | { required: true, message: "起始状态不能为空", trigger: "change" }, |
| | | ], |
| | | }, |
| | | eventList: [{evenName: '123123'}], |
| | | currentActive: 0 |
| | | }; |
| | | }, |
| | | methods: { |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | editChange(row) { |
| | | this.$set(row, 'isEdit', !row.isEdit) |
| | | } |
| | | }, |
| | | watch: { |
| | | rowData: { |
| | |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .event { |
| | | margin-top: 20px; |
| | | text-align: center; |
| | | } |
| | | .flex { |
| | | margin-top: 10px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | .red { |
| | | color: red; |
| | | } |
| | | .active { |
| | | box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.4) |
| | | } |
| | | </style> |
| | |
| | | </div> |
| | | <div class="vfe-chart-panel" v-if="type !== 'detail'"> |
| | | <div class="vfe-chart-panel-detail"> |
| | | <editor-detail-panel :rowData="rowData" ref="EditorDetailPanel" :existNodes="existNodes"/> |
| | | <editor-detail-panel :rowData="rowData" ref="EditorDetailPanel" :existNodes="existNodes" :type="type"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | }, |
| | | tooltipShow: true, |
| | | tooltipData: [], |
| | | existNodes: [] |
| | | existNodes: this.chartData.nodes || [] |
| | | }; |
| | | }, |
| | | |
| | |
| | | width: 300px; |
| | | background-color: #fafafa; |
| | | border-left: 1px solid #e6e9ed; |
| | | overflow-y: scroll; |
| | | |
| | | .vfe-chart-panel-detail { |
| | | box-sizing: border-box; |
| | |
| | | prop: "name", |
| | | search: true, |
| | | slot: true, |
| | | span: 24, |
| | | span: 16, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | label: "名称", |
| | | prop: "label", |
| | | search: true, |
| | | align: "center", |
| | | // align: "center", |
| | | span: 16, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | // }, |
| | | { |
| | | label: "描述", |
| | | width: 150, |
| | | align: "center", |
| | | span: 16, |
| | | // width: 150, |
| | | // align: "center", |
| | | prop: "remark", |
| | | // hide: true |
| | | } |
| | |
| | | <avue-tree id="basic" :data="treeData" :option="treeOption" @node-click="nodeClick" class="businessTree"> |
| | | <span class="el-tree-node__label" slot-scope="{ node, data }"> |
| | | <span> |
| | | <i class="el-icon-star-on"></i> |
| | | <i :class="(node || {}).level === 2 ? 'el-icon-star-off' : 'el-icon-folder-opened'"></i> |
| | | {{ (node || {}).label }} |
| | | </span> |
| | | </span> |
| | |
| | | <i :class="icons.revisionRule"></i> |
| | | 版本规则 |
| | | </template> |
| | | {{ obj.revisionRuleName + '(' + obj.revisionRuleId + ')' }} |
| | | {{ obj.revisionRuleName ? obj.revisionRuleName+ '(' + obj.revisionRuleId + ')' : ''}} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | |
| | | <i :class="icons.lifeCycle"></i> |
| | | 生命周期 |
| | | </template> |
| | | {{ obj.lifeCycleName + '(' + obj.lifeCycleId + ')' }} |
| | | {{ obj.lifeCycleName ? obj.lifeCycleName + '(' + obj.lifeCycleId + ')' : ''}} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | |
| | | defaultExpandAll: true, |
| | | title: '业务类型树', |
| | | addBtn: false, |
| | | menu:false, |
| | | props: { |
| | | labelText: '', |
| | | label: 'label', |
| | |
| | | revisionRule: 'el-icon-s-check', |
| | | lifeCycle: 'el-icon-refresh-right', |
| | | view: 'el-icon-view', |
| | | desc: 'el-icon-chat-line-square' |
| | | desc: 'el-icon-chat-line-square', |
| | | referType: 'el-icon-search' |
| | | }, |
| | | ref: { |
| | | // 从表中选择dialog状态 |
| | |
| | | this.initDomainOption(); |
| | | }, |
| | | methods: { |
| | | nodeClick(data) { |
| | | nodeClick(data,node,leaf) { |
| | | if (data.oid) { |
| | | getDetail(data.oid).then(res => { |
| | | this.obj = res.data.data; |
| | |
| | | }, |
| | | businessAdd() { |
| | | this.$refs.btmAdd.showSubmitDialog = true; |
| | | this.$refs.btmAdd.btmType = {}; |
| | | this.ifRefreshBtmAddRefresh(); |
| | | }, |
| | | businessEdit() { |
| | |
| | | <el-input v-model="btmType.tableName" :prefix-icon="icons.tableName"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="所属领域" label-width="100px" prop="domain" class="domainSelect"> |
| | | <el-select v-model="btmType.bizDomain" :prefix-icon="icons.domain"> |
| | | <el-select placeholder="请选择领域" v-model="btmType.bizDomain" :prefix-icon="icons.domain"> |
| | | <el-option v-for="item in domainOption" |
| | | :label="item.label" :value="item.value" :key="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="版本规则" label-width="100px"> |
| | | <el-input v-model="btmType.revisionRuleName" :prefix-icon="icons.revisionRule" class="revisionRule" |
| | | @focus="openRevision" clearable @clear="clearRevision"> |
| | | <i slot="suffix" class="el-input__icon el-icon-search"></i> |
| | | <el-input v-model="btmType.revisionRuleName" |
| | | :prefix-icon="icons.revisionRule" |
| | | class="revisionRule" |
| | | @focus="openRevision" |
| | | clearable |
| | | @clear="clearRevision" |
| | | :suffix-icon="icons.referType" |
| | | placeholder="请选择,留空则不进行管理"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生命周期" label-width="100px"> |
| | | <el-input v-model="btmType.lifeCycleName" :prefix-icon="icons.lifeCycle" class="lifeCycle" @focus="openLifeCycle" clearable @clear="clearLifeCycle"> |
| | | <i slot="suffix" class="el-input__icon el-icon-search"></i> |
| | | <el-input v-model="btmType.lifeCycleName" |
| | | :prefix-icon="icons.lifeCycle" |
| | | class="lifeCycle" |
| | | @focus="openLifeCycle" |
| | | clearable |
| | | @clear="clearLifeCycle" |
| | | :suffix-icon="icons.referType" |
| | | placeholder="请选择,留空则不进行管理"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <div> |
| | |
| | | } |
| | | |
| | | .btmTypeForm > .el-form-item > .el-form-item__content > .el-input > .el-input__inner { |
| | | width: 200px; |
| | | width: 260px; |
| | | } |
| | | |
| | | .domainSelect > .el-form-item__content > .el-select > .el-input > .el-input__inner { |
| | | width: 200px; |
| | | width: 260px; |
| | | } |
| | | |
| | | .viewFlag { |
| | | width: 305px; |
| | | width: 360px; |
| | | } |
| | | |
| | | .viewInput > .el-form-item__content > .el-input > .el-input__inner { |
| | | width: 200px; |
| | | width: 630px; |
| | | } |
| | | |
| | | .descClass > .el-input__inner { |
| | | width: 57vw |
| | | } |
| | | |
| | | #descId { |
| | | width: 57vw; |
| | | width: 1000px; |
| | | } |
| | | </style> |
| | |
| | | :option="option" |
| | | :page="page" |
| | | :table-loading="loading" |
| | | selection |
| | | @size-change="search('size', ...arguments)" |
| | | @current-change="search('current', ...arguments)" |
| | | @refresh-change="search" |
| | | @search-change="search('search', ...arguments)" |
| | | @search-reset="search('reset', ...arguments)" |
| | | @selection-change="selectionChange" |
| | | > |
| | | <template slot-scope="scope" slot="menuLeft"> |
| | | <el-button |
| | |
| | | @click="openDialog('add', {})" |
| | | >新增</el-button |
| | | > |
| | | <el-button |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | size="small" |
| | | @click="batchDel()" |
| | | v-if="selectedData.length > 0" |
| | | :loading="delLoading" |
| | | >删除</el-button |
| | | > |
| | | </template> |
| | | <template slot-scope="{ row, index }" slot="menu"> |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :loading="row.editLoading" |
| | | @click="openDialog('edit', row)" |
| | | >编辑</el-button |
| | | > |
| | |
| | | type="text" |
| | | icon="el-icon-view" |
| | | size="mini" |
| | | :loading="row.detailLoading" |
| | | @click="openDialog('detail', row)" |
| | | >预览</el-button |
| | | > |
| | | <el-button |
| | | class="btn_link_del" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :loading="row.delLoading" |
| | | @click="rowDel(row)" |
| | | >删除</el-button |
| | | > |
| | | </template></avue-crud |
| | | > |
| | |
| | | @save-data="save" |
| | | /> |
| | | <template #footer v-if="type !== 'detail'"> |
| | | <el-button type="primary" size="mini" @click="submit">保存</el-button> |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | @click="submit" |
| | | :loading="submitLoading" |
| | | >保存</el-button |
| | | > |
| | | <el-button type="" size="mini" @click="visible = false">取消</el-button> |
| | | </template> |
| | | </el-dialog> |
| | |
| | | components: { CycleFlow }, |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | form: { |
| | | // 'contionMap[id]': 'qwe' |
| | | // contionMap: [ |
| | | // {id: 'qwe'} |
| | | // ] |
| | | }, |
| | | page: { |
| | | pageSize: 10, |
| | | total: 0, |
| | |
| | | layout: "total, sizes, prev, pager, next, jumper", |
| | | }, |
| | | option: { |
| | | searchMenuSpan: 12, |
| | | selection: true, |
| | | searchMenuSpan: 6, |
| | | searchMenuPosition: "right", |
| | | border: true, |
| | | align: "center", |
| | |
| | | { |
| | | label: "编号", |
| | | prop: "id", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "名称", |
| | |
| | | }, |
| | | { |
| | | label: "起始状态", |
| | | prop: "startStatusName", |
| | | prop: "startStatus", |
| | | search: true, |
| | | }, |
| | | { |
| | |
| | | dialogWidth: "50%", |
| | | type: "detail", |
| | | loading: false, |
| | | delLoading: false, |
| | | submitLoading: false, |
| | | selectedData: [], |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | total: 0, |
| | | currentPage: 1, |
| | | }; |
| | | } else if (type === "size") { |
| | | this.page.pageSize = params; |
| | | } else if (type === "current") { |
| | | this.page.currentPage = params; |
| | | } |
| | | this.loading = true; |
| | | const { limit, page } = this.page; |
| | | API.getList(Object.assign({}, params, { limit, page })).then((res) => { |
| | | API.getList( |
| | | Object.assign({}, params, { |
| | | size: this.page.pageSize, |
| | | current: this.page.currentPage, |
| | | }) |
| | | ).then((res) => { |
| | | this.loading = false; |
| | | this.data = res.data.data.records; |
| | | this.page.total = res.data.data.total; |
| | |
| | | this.$set(row, "detailLoading", false); |
| | | this.$set(row, "editLoading", false); |
| | | this.rowData = row; |
| | | this.nodesEdgesData = {nodes: res.nodes, edges: res.edges} |
| | | const nodes = res.data.data.nodes.map((item) => { |
| | | item.label = item.id; |
| | | item.index = item.indexNum; |
| | | return item; |
| | | }); |
| | | const edges = res.data.data.edges.map((item) => { |
| | | item.label = item.name; |
| | | item.width = 80; |
| | | item.height = 48; |
| | | item.index = 1; |
| | | item.index = item.indexNum; |
| | | return item; |
| | | }); |
| | | this.nodesEdgesData = { nodes, edges }; |
| | | this.visible = true; |
| | | }); |
| | | } else { |
| | | this.nodesEdgesData = {}; |
| | | this.rowData = {}; |
| | | this.title = "新增生命周期流程图"; |
| | | this.dialogWidth = "95%"; |
| | | this.visible = true; |
| | | } |
| | | }, |
| | | // 选中数据 |
| | | selectionChange(selectedData) { |
| | | this.selectedData = selectedData; |
| | | }, |
| | | // 删除 |
| | | rowDel(row) { |
| | | this.$confirm("确认删除该条数据?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }).then(() => { |
| | | this.$set(row, "delLoading", true); |
| | | API.del({ oid: row.oid, id: row.id }) |
| | | .then((res) => { |
| | | this.$set(row, "delLoading", false); |
| | | if (res.data.code === 200) { |
| | | this.$message.success("删除成功!"); |
| | | this.search(); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.$set(row, "delLoading", false); |
| | | }); |
| | | }); |
| | | }, |
| | | batchDel() { |
| | | this.$confirm("确认删除所选数据?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }).then(() => { |
| | | const data = this.selectedData.map((item) => { |
| | | return { |
| | | id: item.id, |
| | | oid: item.oid, |
| | | }; |
| | | }); |
| | | this.delLoading = true; |
| | | API.del(data, true) |
| | | .then((res) => { |
| | | this.delLoading = false; |
| | | if (res.data.code === 200) { |
| | | this.$message.success("删除成功!"); |
| | | this.search(); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.delLoading = false; |
| | | }); |
| | | }); |
| | | }, |
| | | async submit() { |
| | | const newRowData = await this.$refs.vueFlowchartEditor.getNewRowData(); |
| | | console.log(newRowData, "newRowDatanewRowData"); |
| | | if (!newRowData) { |
| | | return; |
| | | } |
| | | const flowData = this.$refs.vueFlowchartEditor.getFlowData(); |
| | | const flowData = await this.$refs.vueFlowchartEditor.getFlowData(); |
| | | if (Array.isArray(flowData.nodes)) { |
| | | flowData.nodes = flowData.nodes.map((item) => { |
| | | item.name = item.id; |
| | | item.indexNum = item.index; |
| | | return item; |
| | | }); |
| | | } |
| | | if (Array.isArray(flowData.edges)) { |
| | | flowData.edges = flowData.edges.map((item) => { |
| | | item.name = item.label; |
| | | item.indexNum = item.index; |
| | | return item; |
| | | }); |
| | | } |
| | | |
| | | let params = { |
| | | ...flowData, |
| | | ...newRowData, |
| | | ...flowData, |
| | | }; |
| | | console.log(flowData, newRowData); |
| | | API.add(params).then((res) => { |
| | | console.log(res, "res"); |
| | | }); |
| | | }, |
| | | }, |
| | | watch: { |
| | | page: { |
| | | deep: true, |
| | | immediate: true, |
| | | handler(newV) { |
| | | this.page.page = newV.currentPage; |
| | | this.page.limit = newV.pageSize; |
| | | }, |
| | | |
| | | this.submitLoading = true; |
| | | let APIFun = API.add; |
| | | if (this.type === "edit") { |
| | | APIFun = API.edit; |
| | | this.$delete(params, "id"); |
| | | } |
| | | APIFun(params) |
| | | .then((res) => { |
| | | this.submitLoading = false; |
| | | if (res.data.code === 200) { |
| | | this.$message.success( |
| | | this.type === "edit" ? "修改成功!" : "新增成功!" |
| | | ); |
| | | this.visible = false; |
| | | this.search(); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.submitLoading = false; |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | margin: 0; |
| | | padding: 0; |
| | | } |
| | | .btn_link_del { |
| | | color: red; |
| | | } |
| | | </style> |
| | |
| | | proxy: { |
| | | '/api': { |
| | | //本地服务接口地址 |
| | | target: 'http://localhost:37000', |
| | | // target: 'http://localhost:37000', |
| | | // target: 'http://192.168.1.51:37000', |
| | | // target: 'http://192.168.1.46:37000', |
| | | target: 'http://192.168.1.46:37000', |
| | | // target: 'http://dev.vci-tech.com:37000', |
| | | // target: 'http://192.168.1.51:37000/', |
| | | // target: 'http://192.168.1.104:37000', |
| | |
| | | |
| | | private String type; |
| | | |
| | | private Integer level; |
| | | |
| | | private List<BtmTreeVO> childList; |
| | | } |
| | |
| | | try { |
| | | Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(DomainVO::getValue, DomainVO::getLabel)); |
| | | List<BtmTypeVO> vos = BtmTypeWrapper.build().listEntityVO(baseMapper.selectAll()); |
| | | Map<String, List<BtmTypeVO>> domainMap = vos.stream().sorted(Comparator.comparing(BtmTypeVO::getId)).collect(Collectors.groupingBy(BtmTypeVO::getBizDomain)); |
| | | if (CollectionUtils.isEmpty(vos)){ |
| | | return new ArrayList<>(); |
| | | } |
| | | Map<String, List<BtmTypeVO>> domainMap = Optional.ofNullable(vos).orElseGet(ArrayList::new).stream().sorted(Comparator.comparing(BtmTypeVO::getId)).collect(Collectors.groupingBy(BtmTypeVO::getBizDomain)); |
| | | List<BtmTreeVO> treeList = new ArrayList<>(); |
| | | domainMap.forEach((k,v)-> { |
| | | if (domain.containsKey(k)){ |
| | |
| | | parent.setName(label); |
| | | parent.setLabel(label); |
| | | parent.setId(k); |
| | | parent.setLevel(1); |
| | | parent.setChildList(v.stream().map(s -> { |
| | | BtmTreeVO child = new BtmTreeVO(); |
| | | child.setOid(s.getOid()); |
| | | child.setName(s.getName()); |
| | | child.setId(s.getId()); |
| | | child.setLevel(2); |
| | | child.setLabel(s.getId() + (s.getName() == null ? "" : "(" + s.getName() + ")")); |
| | | return child; |
| | | }).collect(Collectors.toList())); |
| | |
| | | try { |
| | | Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(DomainVO::getValue, DomainVO::getLabel)); |
| | | List<LinkTypeVO> vos = LinkTypeWrapper.build().listEntityVO(baseMapper.selectAll(), null); |
| | | Map<String, List<LinkTypeVO>> domainMap = vos.stream().collect(Collectors.groupingBy(LinkTypeVO::getBizDomain)); |
| | | if (CollectionUtils.isEmpty(vos)){ |
| | | return new ArrayList<>(); |
| | | } |
| | | Map<String, List<LinkTypeVO>> domainMap = Optional.ofNullable(vos).orElseGet(ArrayList::new).stream().collect(Collectors.groupingBy(LinkTypeVO::getBizDomain)); |
| | | List<BtmTreeVO> treeList = new ArrayList<>(); |
| | | domainMap.forEach((k,v)-> { |
| | | if (domain.containsKey(k)){ |
| | |
| | | BtmTreeVO parent = new BtmTreeVO(); |
| | | parent.setName(label); |
| | | parent.setId(k); |
| | | parent.setLevel(1); |
| | | parent.setLabel(label); |
| | | parent.setChildList(v.stream().map(s -> { |
| | | BtmTreeVO child = new BtmTreeVO(); |
| | |
| | | child.setLabel(s.getId() + (s.getName() == null ? "" : "(" + s.getName() + ")")); |
| | | child.setId(s.getId()); |
| | | child.setName(s.getName()); |
| | | child.setLevel(2); |
| | | return child; |
| | | }).collect(Collectors.toList())); |
| | | treeList.add(parent); |
| | |
| | | }); |
| | | vo.setFromBtmTypes(fromBtm); |
| | | vo.setToBtmTypes(toBtm); |
| | | vo.setTableName(vo.getTableName().toUpperCase(Locale.ROOT)); |
| | | vo.setTableName(Optional.ofNullable(vo.getTableName()).orElseGet(String::new).toUpperCase(Locale.ROOT)); |
| | | // 枚举处理 |
| | | vo.setDomainText(NewAppConstantEnum.getTextByName(vo.getBizDomain())); |
| | | return vo; |
| | |
| | | <result column="last_modifier" jdbcType="VARCHAR" property="lastModifier" /> |
| | | <result column="last_modify_time" jdbcType="TIMESTAMP" property="lastModifyTime" /> |
| | | <result column="ts" jdbcType="TIMESTAMP" property="ts" /> |
| | | <result column="biz-domain" jdbcType="VARCHAR" property="bizDomain" /> |
| | | <result column="biz_domain" jdbcType="VARCHAR" property="bizDomain" /> |
| | | </resultMap> |
| | | |
| | | <sql id="base_query_column"> |
| | | oid, id, name, description, shape, impl_class, from_btm_type, from_btm_type_name, |
| | | to_btm_type, to_btm_type_name, btm_name, owner, creator, create_time, last_modifier, last_modify_time, |
| | | ts, biz-domain |
| | | ts, biz_domain |
| | | </sql> |
| | | |
| | | <sql id="tableName"> |