From fbdbcfab736a7d6ed18e032ed65cf981bbc50ee9 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期日, 17 九月 2023 21:41:32 +0800
Subject: [PATCH] 免密登录接口增加,免密登录调用方法增加
---
Source/UBCS-WEB/src/views/modeling/cycle.vue | 613 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 451 insertions(+), 162 deletions(-)
diff --git a/Source/UBCS-WEB/src/views/modeling/cycle.vue b/Source/UBCS-WEB/src/views/modeling/cycle.vue
index 5e3686d..db3bda8 100644
--- a/Source/UBCS-WEB/src/views/modeling/cycle.vue
+++ b/Source/UBCS-WEB/src/views/modeling/cycle.vue
@@ -1,190 +1,479 @@
<template>
- <el-container>
- <el-aside width="240px">
- <el-button @click="addHandlers"></el-button>
- <basic-container style="margin-top: 10px">
- <avue-tree id="basic" :data="treeData" :option="treeOption" >
- </avue-tree>
- </basic-container>
- </el-aside>
- <basic-container >
- <el-button type="primary" @click="dialogTableVisible=true" size="small">鍒涘缓妯℃澘</el-button>
- <el-button type="primary" size="small" @click="addHandlers">缂栬緫妯℃澘</el-button>
- <el-button type="primary" size="small" @click="$refs.flow.addNode('ffff')">娣诲姞鑺傜偣</el-button>
- <br/><br/>
- <avue-flow ref="flow" v-model="form" :height="703" :option="option" :width="1500">
- <template slot="header" slot-scope="scope">
- <i class="el-icon-delete" @click="$refs.flow.deleteNode(scope.node.id)" style="margin-top: 8px"></i>
+ <basic-container class="">
+ <avue-crud
+ :data="data"
+ :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
+ type="primary"
+ icon="el-icon-plus"
+ size="small"
+ @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>
- <div slot-scope="{node}">
- <span>{{ (node || {}).name }}</span>
- </div>
- </avue-flow>
- <!-- 鍒涘缓瀵硅瘽妗�-->
- <el-dialog title="鍒涘缓妯℃澘" :visible.sync="dialogTableVisible" append-to-body>
- <avue-form :data="addData" :option="addoption" v-model="forms">
-
- <template slot="filetype">
- <el-select v-model="forms.select" slot="prepend" placeholder="璇烽�夋嫨" style="max-width: 300px">
- <el-option label="娴嬭瘯1" value="1"></el-option>
- <el-option label="娴嬭瘯2" value="2"></el-option>
- <el-option label="娴嬭瘯3" value="3"></el-option>
- </el-select>
- <el-button type="primary" @click="handelLife" style="display: inline-block;margin-left: 5px">
- 娣诲姞璧峰鐘舵��
- </el-button>
- </template>
- </avue-form>
+ <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
+ >
+ <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
+ >
+ <el-dialog
+ :visible="visible"
+ :width="dialogWidth"
+ :title="title"
+ append-to-body
+ :before-close="
+ () => {
+ visible = false;
+ }
+ "
+ top="10vh"
+ >
+ <CycleFlow
+ v-if="visible"
+ class="cycle_flow"
+ :type="type"
+ :chart-data="nodesEdgesData"
+ :chart-data-node-items="flowChartNodeItems"
+ :rowData="rowData"
+ ref="vueFlowchartEditor"
+ @save-data="save"
+ />
+ <template #footer v-if="type !== 'detail'">
+ <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>
</basic-container>
-
-
- </el-container>
-
</template>
<script>
+import API from "@/api/modeling/cycle";
+import CycleFlow from "@/components/flow-cycle/flowchartEditor.vue";
export default {
name: "cycle.vue",
+ components: { CycleFlow },
data() {
return {
- //妯℃澘瀵硅瘽妗�,
- dialogTableVisible:false,
- forms:{
- select:""
+ form: {},
+ page: {
+ pageSize: 10,
+ total: 0,
+ currentPage: 1,
+ layout: "total, sizes, prev, pager, next, jumper",
},
- addData:[],
- addoption:{
- formslot:true,
- column:[
+ option: {
+ height:'auto',
+ calcHeight:20,
+ tip:false,
+ selection: true,
+ searchMenuSpan: 6,
+ searchMenuPosition: "right",
+ border: true,
+ align: "center",
+ menuAlign: "center",
+ menu: true,
+ delBtn: false,
+ editBtn: false,
+ addBtn: false,
+ column: [
{
- label:"鍚嶇О",
- prop:"name"
+ label: "缂栧彿",
+ prop: "id",
+ search: true,
},
{
- label:"鏍囩",
- prop:"tag"
+ label: "鍚嶇О",
+ prop: "name",
+ search: true,
},
{
- label:"璧峰鐘舵��",
- prop:"filetype",
- formslot: true,
- span:24
+ label: "璧峰鐘舵��",
+ prop: "startStatus",
+ search: true,
},
{
label: "鎻忚堪",
- prop:"desc",
- type:"textarea",
- span:13
- }
- ]
- },
- count: 0,
- form: {},
- treeData: [{
- value: 0,
- label: '鐢熷懡鍛ㄦ湡妯℃澘鍒楄〃',
- children: [
- {
- value: 1,
- label: 'A',
+ prop: "description",
},
- {
- value: 2,
- label: 'B',
- },
- {
- value: 3,
- label: 'C',
- },
- {
- value: 4,
- label: 'D',
- },
- {
- value: 5,
- label: 'E',
- }
- ]
- }],
- treeOption: {
- defaultExpandAll: true,
- },
- option: {
- nodeList: [
- {
- "id": "nodeA",
- "name": "娴佺▼A-鑺傜偣A",
- "left": 39,
- "top": 110,
- },
- {
- "id": "nodeB",
- "name": "娴佺▼A-鑺傜偣B",
- "left": 340,
- "top": 161,
- },
- {
- "id": "nodeC",
- "name": "娴佺▼A-鑺傜偣C",
- "left": 739,
- "top": 161,
- },
- {
- "id": "nodeD",
- "name": "鑺傜偣D",
- "left": 739,
- "top": 20,
- }
],
- lineList: [
- {
- "from": "nodeA",
- "to": "nodeB"
- },
- {
- "from": "nodeB",
- "to": "nodeC"
- },
- {
- "from": "nodeC",
- "to": "nodeD"
- }
- ]
},
- computed: {
- nodeList() {
- return this.option.nodeList
- }
- },
- mounted() {
- this.form = this.nodeList[this.count].id;
- },
- methods: {
- handleClick(node) {
- this.$message.success(JSON.stringify(node))
- console.log(node)
- },
- addHandler(){
- this.dialogTableVisible=true
- console.log(1)
- },
-
- handelLife(){
- console.log("鐐瑰嚮鎴愬姛")
- },
- addHandlers(){
- console.log(111)
- }
+ data: [],
+ title: "棰勮鐢熷懡鍛ㄦ湡娴佺▼鍥�",
+ visible: false,
+ flowChartNodeItems: [],
+ rowData: {},
+ nodesEdgesData: {},
+ dialogWidth: "50%",
+ type: "detail",
+ loading: false,
+ delLoading: false,
+ submitLoading: false,
+ selectedData: [],
+ };
+ },
+ created() {
+ this.search("search", {});
+ },
+ methods: {
+ search(type, params, done) {
+ if (type === "search") {
+ this.page.currentPage = 1;
+ } else if (type === "reset") {
+ this.page = {
+ pageSize: 10,
+ total: 0,
+ currentPage: 1,
+ };
+ } else if (type === "size") {
+ this.page.pageSize = params;
+ } else if (type === "current") {
+ this.page.currentPage = params;
}
- }
- }
-}
+ this.loading = true;
+ 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.loading = false;
+ done && done();
+ });
+ },
+ openDialog(type, row) {
+ this.type = type;
+ if (type === "edit") {
+ this.$set(row, "editLoading", true);
+ this.title = "缂栬緫鐢熷懡鍛ㄦ湡娴佺▼鍥�";
+ this.dialogWidth = "95%";
+ } else if (type === "detail") {
+ this.$set(row, "detailLoading", true);
+ this.title = "棰勮鐢熷懡鍛ㄦ湡娴佺▼鍥�";
+ this.dialogWidth = "50%";
+ }
+ if (type !== "add") {
+ API.detail({ id: row.id }).then((res) => {
+ this.$set(row, "detailLoading", false);
+ this.$set(row, "editLoading", false);
+ this.rowData = row;
+ 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 data = {
+ // startStatus: "Auditing",
+ // name: "22",
+ // id: "asas",
+ // nodes: [
+ // {
+ // type: "node",
+ // size: "80*48",
+ // shape: "flow-rect",
+ // color: "#1890FF",
+ // label: "Auditing",
+ // x: 278.60856031183397,
+ // y: 84.12841612613737,
+ // id: "Auditing",
+ // change: true,
+ // index: 0,
+ // name: "Auditing",
+ // indexNum: 0,
+ // },
+ // {
+ // type: "node",
+ // size: "80*48",
+ // shape: "flow-rect",
+ // color: "#1890FF",
+ // label: "Editing",
+ // x: 294.17388658989535,
+ // y: 299.9676071819219,
+ // id: "Editing",
+ // change: true,
+ // index: 1,
+ // name: "Editing",
+ // indexNum: 1,
+ // },
+ // {
+ // type: "node",
+ // size: "80*48",
+ // shape: "flow-rect",
+ // color: "#1890FF",
+ // label: "drg",
+ // x: 278.60856031183397,
+ // y: 463.92237731083515,
+ // id: "drg",
+ // change: true,
+ // index: 3,
+ // name: "drg",
+ // indexNum: 3,
+ // },
+ // ],
+ // edges: [
+ // {
+ // source: "Auditing",
+ // sourceAnchor: 2,
+ // target: "Editing",
+ // targetAnchor: 0,
+ // id: "3083896f",
+ // index: 2,
+ // indexNum: 2,
+ // events: [
+ // {
+ // eventFullName:
+ // "plm.bs.omd.lifecycle.server.pubimpl.TransationEvente",
+ // eventShowName: "TransationEventE",
+ // description: "",
+ // bizDomain: "mdm",
+ // oid: "5",
+ // creator: "",
+ // createTime: "",
+ // lastModifier: "",
+ // lastModifyTime: "",
+ // ts: "",
+ // },
+ // ],
+ // },
+ // {
+ // source: "Editing",
+ // sourceAnchor: 2,
+ // target: "drg",
+ // targetAnchor: 0,
+ // id: "b941a21d",
+ // index: 4,
+ // indexNum: 4,
+ // events: [
+ // {
+ // eventFullName:
+ // "plm.bs.omd.lifecycle.server.pubimpl.TransationEventf",
+ // eventShowName: "TransationEventF",
+ // description: "",
+ // bizDomain: "mdm",
+ // oid: "6",
+ // creator: "",
+ // createTime: "",
+ // lastModifier: "",
+ // lastModifyTime: "",
+ // ts: "",
+ // },
+ // {
+ // eventFullName:
+ // "plm.bs.omd.lifecycle.server.pubimpl.TransationEvente",
+ // eventShowName: "TransationEventE",
+ // description: "",
+ // bizDomain: "mdm",
+ // oid: "5",
+ // creator: "",
+ // createTime: "",
+ // lastModifier: "",
+ // lastModifyTime: "",
+ // ts: "",
+ // },
+ // ],
+ // },
+ // ],
+ // };
+ // API.add(data)
+ // .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;
+ // });
+ // return;
+ const newRowData = await this.$refs.vueFlowchartEditor.getNewRowData();
+ if (!newRowData) {
+ return;
+ }
+ // const edgeEvents = this.$refs.vueFlowchartEditor.getEdgesEvents();
+ 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;
+ // item.events = edgeEvents[item.id] || [];
+ return item;
+ });
+ }
+ let params = {
+ ...newRowData,
+ ...flowData,
+ };
+ debugger;
+ 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;
+ });
+ },
+ },
+};
</script>
-<style lang="scss">
-#basic {
- height: 761px;
- border-radius: 10px;
+<style lang="scss" scoped>
+/deep/ .el-dialog__body {
+ padding: 0 20px;
+}
+.cycle_flow {
+ height: 600px !important;
+ display: flex;
+ flex-direction: column;
+ margin: 0;
+ padding: 0;
+}
+.btn_link_del {
+ color: red;
}
</style>
--
Gitblit v1.9.3