From 7d05c69630d066c0992368423f90e440e3638f91 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期日, 29 九月 2024 11:01:51 +0800
Subject: [PATCH] 整合代码
---
Source/UBCS-WEB/src/components/template/Stage.vue | 267 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 267 insertions(+), 0 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/template/Stage.vue b/Source/UBCS-WEB/src/components/template/Stage.vue
new file mode 100644
index 0000000..f2b9603
--- /dev/null
+++ b/Source/UBCS-WEB/src/components/template/Stage.vue
@@ -0,0 +1,267 @@
+<template>
+ <div v-if="Formlist.length>0">
+ <div style="height: calc(100vh - 553px)">
+ <avue-crud ref="crud" :data="data" :option="option" :page.sync="page" :table-loading="loading"
+ @on-load="getDataList" @size-change="handleSizePage" @current-change="handleCurrentPage"
+ @row-click="handleRowClick">
+ <template slot="menu" slot-scope="{type,size,row,index}">
+ <el-button :size="size" :type="type" icon="el-icon-check"
+ @click="handleMaintenance(row, index)">缁存姢
+ </el-button>
+ </template>
+ </avue-crud>
+ </div>
+ <el-dialog :visible.sync="dialogNode" append-to-body="true" title="妯℃澘闃舵" width="50%">
+ <avue-crud ref="crud" :data="stageData" :option="stageOption" :table-loading="loading" @on-load="getStagelist"
+ @row-click="handleRowStageClick">
+ <template slot="menu" slot-scope="{type,size,row,index}">
+ <el-button :size="size" :type="type" icon="el-icon-check"
+ @click="handleMaintenanceTransfer(row, index)">缁存姢
+ </el-button>
+ </template>
+ </avue-crud>
+ </el-dialog>
+ <table-transfer v-if="flag" v-model="attributeValue" :columns="columns" :dataList="attributeData"
+ :visible.sync="dialogTransfer" keyName="oid" @close="handelClose" @save="handleSave"></table-transfer>
+ </div>
+</template>
+
+<script>
+import {getFlowpathList, stagelist, attributeListRight, attributeList, attributeSave} from '@/api/template/flowpath.js'
+import TableTransfer from '@/components/template/TableTransfer'
+
+export default {
+ name: 'Stage',
+ components: {
+ TableTransfer
+ },
+ props: {
+ code: {
+ typeof: String,
+ required: true,
+ default: ""
+ },
+ Formlist: {
+ type: Array,
+ default: []
+ }
+ },
+ watch: {
+ code: {
+ handler(newval, oldval) {
+ this.getDataList()
+ }
+ }
+ },
+ data() {
+ const options = {
+ height:'auto',
+ border: true,
+ addBtn: false,
+ align: 'center',
+ menuAlign: 'center',
+ index: true,
+ searchMenuSpan: 8,
+ searchBtn: false,
+ emptyBtn: false,
+ columnBtn: false,
+ delBtn: false,
+ refreshBtn: false,
+ header: false,
+ editBtn: false,
+ }
+ return {
+ attributeData: [],
+ attributeValue: [],
+ flag: false,
+ dialogTransfer: false,
+ dialogNode: false,
+ visibleTable: false,
+ loading: false,
+ page: {
+ currentPage: 1,
+ pageSize: 10,
+ total: 0
+ },
+ modelKey: '',
+ data: [],
+ stageData: [],
+ saveParam: {},
+ columns: [
+ {
+ key: "oid",
+ label: "oid",
+ visible: false,
+ },
+ {
+ key: "id",
+ label: "灞炴�х紪鍙�",
+ visible: true,
+ },
+ {
+ key: "name",
+ label: "灞炴�у悕绉�",
+ visible: true,
+ },
+ {
+ key: "attributeGroup",
+ label: "灞炴�у垎缁�",
+ visible: true,
+ },
+ ],
+ option: {
+ ...options,
+ height: 330,
+ column: [
+ {label: '妯℃澘缂栧彿', prop: 'modelKey'},
+ {label: '妯℃澘鍚嶇О', prop: 'modelName'},
+ {label: '鎻忚堪', prop: 'buttonTypeValue'},
+ ]
+ },
+ stageOption: {
+ ...options,
+ height: 620,
+ column: [
+ {label: '闃舵缂栧彿', prop: 'taskId'},
+ {label: '闃舵鍚嶇О', prop: 'taskName'},
+ ]
+ },
+ }
+ },
+ methods: {
+ setTable(data, list) {
+ return data.map(item => {
+ if (list.length !== 0) {
+ list.forEach(element => {
+ if (item.id === element.attrId) item.checked = true
+ });
+ }
+ return item
+ })
+ },
+ // 鑾峰彇鍒楄〃
+ async getDataList() {
+ this.loading = false
+ if (this.code) {
+ const {pageSize, currentPage} = this.page
+ let param = {size: pageSize, current: currentPage}
+ const response = await getFlowpathList({...param, ...{templateId: this.code}})
+ if (response.status === 200) {
+ this.loading = false
+ const data = response.data.data
+ this.data = data.records
+ this.page.total = data.total
+ } else this.loading = false
+ } else {
+ this.data = []
+ }
+ },
+ // 鑾峰彇闃舵鍒楄〃
+ async getStagelist() {
+ this.loading = false
+ const response = await stagelist({modelKey: this.modelKey})
+ if (response.status === 200) {
+ this.loading = false
+ this.stageData = response.data.data
+ } else this.loading = false
+ },
+ // 鑾峰彇鍏ㄩ儴灞炴��
+ async getAttributeList() {
+ const response = await attributeList({'conditionMap[classifyTemplateOid]': this.code})
+ 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
+ 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
+ }
+ },
+ // 鑾峰彇宸蹭繚瀛樺睘鎬�
+ async getAttributeListRight() {
+ const response = await attributeListRight({
+ templateId: this.code,
+ modelKey: this.modelKey,
+ taskId: this.saveParam.taskId
+ })
+ if (response.status === 200) {
+ let data = response.data.data
+ data = data.map(item => {
+ const {attrId, attrName, attrGroup} = item
+ return {attrId, attrName, attrGroup}
+ })
+ this.listRight = data
+ }
+ },
+ // 缁存姢
+ handleMaintenance(row) {
+ this.dialogNode = true
+ this.modelKey = row.modelKey
+ this.saveParam.modelKey = row.modelKey
+ this.getStagelist()
+ },
+ // 缁存姢
+ handleMaintenanceTransfer(row) {
+ this.saveParam.taskId = row.taskId
+ this.saveParam.taskName = row.taskName
+ this.getAttributeList()
+ this.$nextTick(() => {
+ this.dialogTransfer = true
+ })
+ },
+ handleRowClick(row) {
+ this.modelKey = row.modelKey
+ this.saveParam.modelKey = row.modelKey
+ this.dialogNode = true
+ },
+ handleRowStageClick(row) {
+ this.saveParam.taskId = row.taskId
+ this.saveParam.taskName = row.taskName
+ this.getAttributeList()
+ this.$nextTick(() => {
+ this.dialogTransfer = true
+ })
+ },
+ async handleSave(event) {
+ const data = event.map(item => {
+ const {id, name, attributeGroup} = item
+ return {attrId: id, attrName: name, attrGroup: attributeGroup}
+ })
+ let param = {
+ templateId: this.code,
+ processStageAttr: data,
+ ...this.saveParam
+ }
+ const response = await attributeSave(param)
+ if (response.status === 200) {
+ // loading()
+ this.$message({
+ type: 'success',
+ message: '鏂板鏁版嵁鎴愬姛锛�'
+ })
+ this.flag = false
+ // done()
+ // this.getDataList()
+ }
+ },
+ handelClose() {
+ this.flag = false
+ }
+ }
+}
+</script>
--
Gitblit v1.9.3